{"hash":"604ba20bedd1fd1c","builtAt":"2026-08-07T14:38:07.930Z","stats":{"documents":1964,"ancestors":809,"bytes":7726533},"documents":[{"id":"apps","v":"f519a9a871a660ed","p":"root","f":{"id":"folder","v":"60bfdadb874a9f10","text":"Folder"},"data":{"name":"Apps","description":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null}}},"locks":[],"created":{"at":"2017-08-23T08:24:50+02:00","by":"","from":"","client":"import"},"modified":{"at":"2021-03-30T11:45:56+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1617104756448,"ct":1617104756448,"a_depth":0,"a":[],"a_forms":[],"inheritedLocks":[null],"stamps":[],"previous":{"v":"934a2441db88a83d","f":{"id":"folder","v":"initial","text":"Folder"}},"dts":1738944388554},{"id":"system","v":"959c6d4fbbaa1ab6","previous":{"v":"1ba34b3099b510df","f":{"id":"system-folder-form","v":"ab9e900950ea1bbd","text":"System"}},"p":"root","f":{"id":"system-folder-form","v":"f54cc6f019ba1689","text":"System"},"data":{"name":"System","description":"The System Folder contains common `Forms`,`Commands` and other relevant data necessary for the operation of the System."},"locks":[],"created":{"at":"2017-08-23T08:24:50+02:00","by":"","from":"","client":"import"},"modified":{"at":"2017-08-23T08:24:50+02:00","by":"","from":"","client":"import"},"t":1707217445495,"ct":1707217445495,"a_depth":0,"a":[],"a_forms":[],"inheritedLocks":[null],"stamps":[],"meta":{"modified":{"at":"2024-02-06T11:04:05+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}},"dts":1738849329451},{"a":["apps"],"a_depth":1,"a_forms":["folder"],"created":{"at":"2020-10-13T10:11:29+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1721196328174,"data":{"changes":[],"controls":[],"description":"NOT IN USE ANYWHERE. This is the first attempt for an agency app.","designs":[],"dialogForms":[],"icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"label":"","name":"Casting Agentur","namedIcon":"fa fa-book-user","namedIconColor":"","related":[],"searchFilters":[],"searchableForms":[]},"f":{"id":"application-form","text":"Application","v":"e6c4e4126877157e"},"id":"b090141a-949d-4b35-a5c2-d8f1dd937dcf","inheritedLocks":[null,null],"locks":[],"modified":{"at":"2025-09-19T10:07:39+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"apps","previous":{"v":"b726dbaa3525ce59"},"stamps":[],"t":1758276459884,"v":"7259ab448e7976ee"},{"a":["apps"],"a_depth":1,"a_forms":["folder"],"created":{"at":"2021-05-21T08:42:18+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1721196328126,"data":{"changes":[],"controls":[],"description":"","designs":[{"id":"1cc4b977-c14d-4587-af47-d6ac230f60b3","text":"Bizpin Fallback Designs","v":"initial"}],"dialogForms":[],"icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"label":"","name":"B/Core: Nachrichten","namedIcon":"","namedIconColor":"","related":[],"searchFilters":[],"searchableForms":[]},"f":{"id":"application-form","text":"Application","v":"e6c4e4126877157e"},"id":"c676e25c-4d28-48e3-9b60-811cde637ea5","inheritedLocks":[null,null],"locks":[],"modified":{"at":"2025-09-19T10:03:50+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"apps","previous":{"v":"1cc10ff347bb318f"},"stamps":[],"t":1758276230796,"v":"0a855f7ebf335f07"},{"id":"3d43a3f5-fea4-488d-9fc1-9dee5e694623","v":"cffcf6af92921761","p":"apps","f":{"id":"application-form","v":"e6c4e4126877157e","text":"Application"},"data":{"name":"DMS","label":"","description":"","namedIcon":"fas fa-folder-open","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"related":[],"searchableForms":[],"searchFilters":[],"dialogForms":[{"id":"6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2","v":"91fa57d6d0cac1e7","text":"Datei"}],"controls":[],"designs":[],"changes":[{"id":"a7c41fd3-1c22-4475-996e-1a840bf72c33","v":"initial","text":"Interaktive Dokumente"},{"id":"e7f1dfec-1434-4d29-9d9b-825983c2ac33","v":"initial","text":"Dateien"},{"id":"40e050f4-31bc-44a9-9bd3-f79c9cc29c0f","v":"initial","text":"Ordner Sortierung"},{"id":"a2a94b59-dc2b-424d-9f13-798d53fea16a","v":"initial","text":"Freigabe Workflow"},{"id":"a82293a6-c7d5-4883-bed9-1e901f6f3568","v":"initial","text":"Datei Thumbnails"},{"id":"7e4d4f55-c72f-4614-851f-377aab788136","v":"initial","text":"Lokale Suche"}]},"locks":[],"created":{"at":"2017-09-15T10:29:31+02:00","by":"","from":"","client":"import"},"modified":{"at":"2022-03-16T09:40:19+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1721196327554,"ct":1721196327554,"a_depth":1,"a":["apps"],"a_forms":["folder"],"inheritedLocks":[null,null],"stamps":[],"previous":{"v":"fd5859f333820645","f":{"id":"application-form","v":"29335d8d5cd3c1a1","text":"Application"}},"meta":{"modified":{"at":"2024-07-17T06:05:27+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}},"dts":1719235414061},{"a":["apps"],"a_depth":1,"a_forms":["folder"],"created":{"at":"2020-08-07T13:44:45+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","client":"server","from":""},"ct":1721196328124,"data":{"changes":[{"id":"88087156-acc9-4bd7-a62c-0167c352d585","text":"Klickbare Einträge","v":"76fbd7d661ce51dd"},{"id":"ecfea200-3957-4937-b452-bee50f433ece","text":"3CX Integration","v":"initial"}],"controls":[],"description":"","designs":[{"id":"1cc4b977-c14d-4587-af47-d6ac230f60b3","text":"Bizpin Fallback Designs","v":"initial"}],"dialogForms":[{"id":"6f641574-7cb6-424a-9657-4b8d652a2cf7","text":"Kontakt","v":"930a6fd78c319cd5"}],"icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"label":"Kontakte","name":"B/Core: Kontakte","namedIcon":"fa fa-address-book","namedIconColor":"","related":[],"searchFilters":[],"searchableForms":[{"id":"6f641574-7cb6-424a-9657-4b8d652a2cf7","text":"Kontakt","v":"5d65f9d1388f73e7"}]},"f":{"id":"application-form","text":"Application","v":"e6c4e4126877157e"},"id":"37fafb3d-18da-4182-af74-082971d50956","inheritedLocks":[null,null],"locks":[],"modified":{"at":"2025-09-19T10:03:07+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"apps","previous":{"v":"7f459e932044dc91"},"stamps":[],"t":1758276187978,"v":"3bda33db4d72835e"},{"a":["apps"],"a_depth":1,"a_forms":["folder"],"created":{"at":"2019-04-11T10:01:42+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","client":"server","from":""},"ct":1721196328156,"data":{"changes":[{"id":"b222b066-c8df-46ec-b591-acb4abbcacd5","text":"Vorschau mit Adresszusatz","v":"initial"},{"id":"3deb882f-b1cf-486f-9e49-8b5adfaf7d67","text":"Anrede und Titel","v":"initial"},{"id":"02c692ec-9dc5-4ea4-85a9-95feef4927df","text":"Anrede erweitert","v":"initial"},{"id":"28555e7c-fae6-4350-b3ca-867061761874","text":"Titel","v":"initial"},{"id":"dbd1f034-f2aa-4ea4-83ff-aac72cf3bc52","text":"Unterstützung direktes Erstellen","v":"initial"},{"id":"9663faf7-8639-4f8a-a7df-4a354e318a5d","text":"CSV Export","v":"initial"}],"controls":[],"description":"","designs":[{"id":"1cc4b977-c14d-4587-af47-d6ac230f60b3","text":"Bizpin Fallback Designs","v":"initial"}],"dialogForms":[{"id":"f8fd3176-4995-455f-a8a8-d2742a836816","text":"Kontakt","v":"00f78ec650af69f8"},{"id":"a2d7a5d3-7145-4743-b841-55860797481c","text":"Kategorie","v":"291acff9781bac13"},{"id":"aa3fb337-8aae-4148-b59f-30af53816479","text":"Überkategorie","v":"2c07855fa99458a0"}],"icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"label":"Kontakte","name":"Energieberater: Kontakte","namedIcon":"","namedIconColor":"","related":[],"searchFilters":[],"searchableForms":[{"id":"f8fd3176-4995-455f-a8a8-d2742a836816","text":"Kontakt","v":"1e180451c64d3cca"}]},"f":{"id":"application-form","text":"Application","v":"e6c4e4126877157e"},"id":"bc036ad0-6dbc-415b-b506-325fb0a44046","inheritedLocks":[null,null],"locks":[],"modified":{"at":"2025-09-19T10:11:35+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"apps","previous":{"v":"2dbf8ee380125fa6"},"stamps":[],"t":1758276695135,"v":"ad5d8228f21b2c45"},{"a":["apps"],"a_depth":1,"a_forms":["folder"],"created":{"at":"2017-09-15T10:29:31+02:00","by":"","client":"import","from":""},"ct":1721196328174,"data":{"changes":[],"controls":[],"description":"","designs":[{"id":"1cc4b977-c14d-4587-af47-d6ac230f60b3","text":"Bizpin Fallback Designs","v":"initial"}],"dialogForms":[{"id":"d2ac3563-3c3f-4f02-b923-9b67abf98d10","text":"Mitarbeiter","v":"0145bfc882229cb4"}],"icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"label":"","name":"Mitarbeiter","namedIcon":"fas fa-users","namedIconColor":"","related":[],"searchFilters":[],"searchableForms":[{"id":"d2ac3563-3c3f-4f02-b923-9b67abf98d10","text":"Mitarbeiter","v":"1f3cb7a329ae6df8"}]},"f":{"id":"application-form","text":"Application","v":"e6c4e4126877157e"},"id":"144e85c0-d7f9-4b20-8928-be30f0c78bda","inheritedLocks":[null,null],"locks":[],"modified":{"at":"2025-09-19T10:21:15+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"apps","previous":{"v":"b9720de185d2492c"},"stamps":[],"t":1758277275560,"v":"bfcc4524b24f9e6f"},{"a":["apps"],"a_depth":1,"a_forms":["folder"],"created":{"at":"2017-12-12T10:30:32+01:00","by":"","client":"9b5f4d7e-ac75-4759-816d-ae5ce70e69cd","from":""},"ct":1721196327553,"data":{"changes":[],"controls":[],"description":"","designs":[],"dialogForms":[],"icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"label":"Boards","name":"Boards.veryOld","namedIcon":"fas fa-columns","namedIconColor":"","related":[],"searchFilters":[],"searchableForms":[]},"f":{"id":"application-form","text":"Application","v":"e6c4e4126877157e"},"id":"aed1ba1c-9095-4aca-8176-74a37325f0e5","inheritedLocks":[null,null],"locks":[],"meta":{},"modified":{"at":"2026-03-23T13:30:01+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"p":"apps","previous":{"v":"f0d2b92450f69576"},"stamps":[],"t":1774272601956,"v":"1c8811e6ca01db0b"},{"a":["apps"],"a_depth":1,"a_forms":["folder"],"created":{"at":"2020-08-26T13:52:48+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1721196328171,"data":{"changes":[],"controls":[],"description":"","designs":[{"id":"1cc4b977-c14d-4587-af47-d6ac230f60b3","text":"Bizpin Fallback Designs","v":"initial"}],"dialogForms":[{"id":"cf155969-ede1-43a4-9b10-3a697b19db91","text":"Kommentar","v":"96b0fbc4927d8910"}],"icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"label":"","name":"Comments & Pings","namedIcon":"fa fa-comments","namedIconColor":"","related":[],"searchFilters":[{"id":"395d0864-c5cd-48ad-95af-f0b1982e03a0","text":"Kommentare","v":"initial"}],"searchableForms":[]},"f":{"id":"application-form","text":"Application","v":"e6c4e4126877157e"},"id":"14c27659-92d7-4b43-8c4f-25f4cceae591","inheritedLocks":[null,null],"locks":[],"modified":{"at":"2025-10-17T11:06:58+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"apps","previous":{"v":"1c0cb2162e953d06"},"stamps":[],"t":1760699218782,"v":"77692155146d7848"},{"id":"b2533f7b-ea85-4680-99ed-d8e11be641b9","v":"initial","p":"system","f":{"id":"folder","v":"60bfdadb874a9f10","text":"Folder"},"data":{"name":"Apps (System)","description":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null}}},"locks":[],"created":{"at":"2020-09-28T14:13:27+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2020-09-28T14:13:27+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1601302407715,"ct":1601302407714,"a_depth":1,"a":["system"],"a_forms":["system-folder-form"],"inheritedLocks":[null,null],"stamps":[],"dts":1738664905412},{"a":["apps"],"a_depth":1,"a_forms":["folder"],"created":{"at":"2020-06-23T12:00:14+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","client":"server","from":""},"ct":1721196328123,"data":{"changes":[{"id":"4ed59276-bced-417a-b00c-255c57f4b813","text":"Rechnung","v":"ae97362483502624"},{"id":"ff22262f-df98-4435-a243-002aa95e3c47","text":"PDF","v":"initial"},{"id":"3b42cdf9-f544-47b6-9650-40a8ae4e29bc","text":"Kunde","v":"initial"},{"id":"27641da4-83b9-49b5-8909-44e0137cc0a8","text":"Board & Labels","v":"initial"},{"id":"c4bb595c-d666-483b-b9fa-5816a74855d8","text":"Angebot & Vertrag","v":"initial"},{"id":"1da1ff63-65d9-4902-bfcc-556d6fa76ae3","text":"Aktivitäten","v":"initial"},{"id":"8956f66b-4930-4ccc-98b3-1af81798aefe","text":"Aktivitäten","v":"initial"},{"id":"6fffd9b3-a13c-42ab-99dd-36af4c58d401","text":"Board","v":"initial"},{"id":"ce012bd0-53d4-4742-94cd-6ccf982acd0a","text":"Termine","v":"initial"},{"id":"89ebd974-f60b-443b-9213-2eb59f011cb4","text":"Kontakt des Kunden","v":"initial"},{"id":"8404fe9c-389b-4018-93e6-c9fa3e622442","text":"Ladezeit","v":"initial"},{"id":"f7f86ffa-54ac-4f4c-9a1c-cd2d367f1e98","text":"Aktivitäten","v":"initial"},{"id":"e46014c9-c914-41e2-8888-23c1f5e8b044","text":"Verantwortlicher Aktivitäten","v":"initial"},{"id":"94758d63-5632-4189-8cea-e29f3ce25708","text":"Kategorie","v":"initial"},{"id":"fa08fce5-1911-437d-bb10-6e142cac2a05","text":"Aktivitäten","v":"initial"},{"id":"e4ff2d83-0922-4647-a93b-86b97e456a21","text":"Kontakt in Kunde","v":"initial"}],"controls":[],"description":"","designs":[{"id":"1cc4b977-c14d-4587-af47-d6ac230f60b3","text":"Bizpin Fallback Designs","v":"initial"}],"dialogForms":[{"id":"84ede5f8-c5af-4113-8235-4b7fa528e265","text":"Aktivität","v":"bfea43cd5fdd3a62"},{"id":"3d45f20b-ecb3-4dc5-aa39-67a28e3923d8","text":"Vertrag","v":"86d740f5127d6dd5"},{"id":"80fe4932-e70d-4662-897f-d11e7c066b60","text":"Branche","v":"78423b591973e2fd"},{"id":"1ea7612a-5c7b-41e0-8717-a553a17e9b62","text":"Quelle","v":"95897d9a1d160fb9"},{"id":"8fc08287-dbcc-4e41-9d5d-28e4cd828943","text":"Kunde","v":"31dc5994c2682e18"},{"id":"b12cba63-8003-4f84-a235-d67fd506b155","text":"Kategorie","v":"0ce9faf6882c8bea"}],"icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"label":"CRM","name":"B/Core: CRM","namedIcon":"fa fa-user-tag","namedIconColor":"","related":[],"searchFilters":[{"id":"b923724e-843a-4f69-9ca3-2a128785a778","text":"Kunde","v":"initial"}],"searchableForms":[{"id":"fec93a80-86e6-4ccb-a473-14046bd4336e","text":"Vertrag","v":"0ed4b28c160a74ad"},{"id":"84ede5f8-c5af-4113-8235-4b7fa528e265","text":"Aktivität","v":"e006b1eb7b70bca0"}]},"f":{"id":"application-form","text":"Application","v":"e6c4e4126877157e"},"id":"9d6ee173-26fe-4472-a271-7667f717094e","inheritedLocks":[null,null],"locks":[],"modified":{"at":"2025-08-22T09:01:18+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"apps","previous":{"v":"e4ae75f13782608b"},"stamps":[],"t":1755853278261,"v":"421041219bef2fdb"},{"id":"d4581623-f542-4ade-86be-8b3ecec56f0e","v":"8a46a65f62fac57a","p":"apps","f":{"id":"application-form","v":"e6c4e4126877157e","text":"Application"},"data":{"name":"KeepTrack","label":"","description":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"related":[],"searchableForms":[],"searchFilters":[],"dialogForms":[{"id":"204787ca-59c2-4b11-b866-aa05fa9c9891","v":"8ebfb2cd55f2b559","text":"Arbeits-Eintrag"},{"id":"0dfd4afd-f2ec-4ff0-9a79-811badf4fed5","v":"4b6a68ca48885771","text":"Teil-Eintrag"},{"id":"d7f0c56d-8e0e-4607-911b-b0789c557d40","v":"80b8b3341a987d67","text":"Arbeit"}],"controls":[],"designs":[],"changes":[{"id":"926b4401-ced7-4f37-a152-e14d58891df2","v":"initial","text":"Barcodes & NFC"},{"id":"03f45ef9-179f-4eed-894f-ed6d870cba98","v":"initial","text":"Smartphone Layout"},{"id":"51a290ae-2a59-4437-8e95-ee60c8ca3aa8","v":"initial","text":"Dashboard"},{"id":"bfd5949b-9b67-4e7a-b2f8-f4fb3fd003a4","v":"initial","text":"Dashboard"}]},"locks":[],"created":{"at":"2022-02-28T14:58:40+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-09-05T14:07:33+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1721196327555,"ct":1721196327555,"a_depth":1,"a":["apps"],"a_forms":["folder"],"inheritedLocks":[null,null],"stamps":[],"previous":{"v":"860fac4fd60c0634","f":{"id":"application-form","v":"29335d8d5cd3c1a1","text":"Application"}},"meta":{"modified":{"at":"2024-07-17T06:05:27+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}},"dts":1716385252080},{"a":["apps"],"a_depth":1,"a_forms":["folder"],"created":{"at":"2020-08-12T08:50:11+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1721196327553,"data":{"changes":[{"id":"3d6b3a0a-81c7-4350-b144-157e4532123d","text":"Detaillierte Änderungen","v":"65a6897d21fcecce"},{"id":"bd9d4c88-662b-4747-a7a1-08aa69b8e5ed","text":"Reduzierte Darstellung","v":"initial"},{"id":"60e84096-8b42-47ff-a66f-35ef869ad222","text":"Reduzierte Darstellung","v":"initial"},{"id":"fd207be9-e71c-4bb8-b062-4ed88e107f39","text":"Anzeige des \"Wo\" vereinfacht","v":"initial"},{"id":"5d8aa40a-a1c8-4474-b2d2-6c6b47bb8fe5","text":"Archiv","v":"initial"}],"controls":[],"description":"","designs":[{"id":"1cc4b977-c14d-4587-af47-d6ac230f60b3","text":"Bizpin Fallback Designs","v":"initial"}],"dialogForms":[],"icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"label":"Ereignisse","name":"B/Core: Ereignisse","namedIcon":"","namedIconColor":"","related":[],"searchFilters":[],"searchableForms":[]},"f":{"id":"application-form","text":"Application","v":"e6c4e4126877157e"},"id":"441fb0bd-959b-446d-9aee-82f1c8ede628","inheritedLocks":[null,null],"locks":[],"modified":{"at":"2025-09-19T10:02:30+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"apps","previous":{"v":"cfb4270aeb4a5de7"},"stamps":[],"t":1758276150461,"v":"d64b541deefcc178"},{"id":"fallback-designs","v":"2e78cd48a6b7d23e","previous":{"v":""},"p":"system","f":{"id":"folder","v":"f1e4977dbee77607","text":"Folder"},"data":{"name":"Fallback Designs","description":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null}}},"locks":[],"lockRefs":[],"created":{"at":"2017-08-23T08:24:50+02:00","by":"","from":"","client":"133c4b0f-80f9-43e8-a582-f95027b786bc"},"modified":{"at":"2017-08-23T08:24:50+02:00","by":"","from":"","client":"133c4b0f-80f9-43e8-a582-f95027b786bc"},"t":1503469490484,"ct":1503469490484,"a_depth":1,"a":["system"],"a_forms":["system-folder-form"],"inheritedLocks":[null,null],"stamps":[],"dts":1738072621340},{"a":["apps"],"a_depth":1,"a_forms":["folder"],"created":{"at":"2020-06-23T12:01:24+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","client":"server","from":""},"ct":1721196328123,"data":{"changes":[{"id":"5ca93c3c-367f-4c06-9962-5c6a7f510edd","text":"Dateien durchschalten","v":"initial"},{"id":"b47b7341-9d95-48b7-bbec-976ac0bf1f7c","text":"Interaktive Seiten","v":"initial"},{"id":"27187329-16ae-4204-9d5a-fcfb73a03292","text":"Ordner Sortierung","v":"initial"},{"id":"ce41acac-35bc-4128-b926-a63af783e99e","text":"Mehrere Dateien hochladen","v":"initial"},{"id":"7a4acf2f-3893-4ced-9e5a-84bc92f4b9c9","text":"Datei Thumbnails","v":"initial"}],"controls":[],"description":"","designs":[{"id":"1cc4b977-c14d-4587-af47-d6ac230f60b3","text":"Bizpin Fallback Designs","v":"initial"}],"dialogForms":[{"id":"dbee6e16-d63a-493c-bba6-505f79918f9f","text":"Datei","v":"8c66fb9923026fc8"}],"icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"label":"DMS","name":"B/Core: DMS","namedIcon":"fa fa-folders","namedIconColor":"","related":[],"searchFilters":[{"id":"9d60cdd8-b229-4290-b31e-f7779b331f52","text":"Dateien","v":"initial"}],"searchableForms":[]},"f":{"id":"application-form","text":"Application","v":"e6c4e4126877157e"},"id":"45ada186-e9fd-451d-9dbd-2defc0b4f86f","inheritedLocks":[null,null],"locks":[],"modified":{"at":"2025-08-22T09:01:12+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"apps","previous":{"v":"57376388f52fd004"},"stamps":[],"t":1755853272511,"v":"b88a294ca769380c"},{"f":{"id":"repository-folder-form","v":"28d007478e6061ed","text":"Repository Folder"},"p":"system","data":{"name":"Forms","description":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null}},"contentsForm":{"text":"Form","id":"form","v":"90e2dc64dd89195a"},"customAddCommand":{"text":"","id":"","v":0},"displayTableColumns":"name,description,semver","displayTableHeaders":",,Version","displayTableDesigns":",,version"},"id":"system-forms","v":"b4a3064c964e3288","t":1469014939085,"ct":1447333257721,"previous":{"v":"4d201d5dd2baf440"},"modified":{"at":"2017-08-23T08:24:50+02:00","by":"","from":"","client":"import"},"created":{"at":"2017-08-23T08:24:50+02:00","by":"","from":"","client":"import"},"locks":[],"lockRefs":[],"inheritedLocks":[null,null],"a":["system"],"a_forms":["system-folder-form"],"a_depth":1,"stamps":[],"dts":1738764369313},{"id":"b3191869-9bcf-440c-92be-7b013944b450","v":"20f89adda1b1afed","p":"apps","f":{"id":"application-form","v":"e6c4e4126877157e","text":"Application"},"data":{"name":"Schmiedekalender","label":"","description":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"related":[],"searchableForms":[],"searchFilters":[],"dialogForms":[],"controls":[],"designs":[],"changes":[{"id":"4412242f-a122-4994-86cc-bc10a3d2d6da","v":"initial","text":"Tagesansicht"},{"id":"470990e9-89be-4d9a-bde1-d3e1d6c9695d","v":"initial","text":"Wiederholte Termine"},{"id":"fefcab0b-a438-4415-8057-6607aba3c07b","v":"initial","text":"Verbessertes Verhalten bei ungültigen Terminen"},{"id":"208065ff-5bb0-41cc-84ab-66d5f4cdaec3","v":"initial","text":"Sommer- und Winterzeit"},{"id":"d9039189-a7bc-4d18-9cb3-4557cef8a4c2","v":"initial","text":"Termine"}]},"locks":[],"created":{"at":"2021-11-08T16:01:21+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","from":"","client":"server"},"modified":{"at":"2021-12-09T12:37:36+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1721196327555,"ct":1721196327555,"a_depth":1,"a":["apps"],"a_forms":["folder"],"inheritedLocks":[null,null],"stamps":[],"previous":{"v":"00776dfb0e3d90da","f":{"id":"application-form","v":"29335d8d5cd3c1a1","text":"Application"}},"meta":{"modified":{"at":"2024-07-17T06:05:27+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}},"dts":1738932908288},{"a":["apps"],"a_depth":1,"a_forms":["folder"],"created":{"at":"2021-01-27T11:03:03+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1721196328126,"data":{"changes":[],"controls":[],"description":"","designs":[{"id":"1cc4b977-c14d-4587-af47-d6ac230f60b3","text":"Bizpin Fallback Designs","v":"initial"}],"dialogForms":[{"id":"e2f6fe5a-cdab-41ed-a1b2-ad342ee670d1","text":"Objekt","v":"b27cc5a2d86487ec"},{"id":"c5cf96a1-40bb-44d5-a3f7-ea30706caf58","text":"Gesprächsnotiz","v":"7304f956d16262e2"},{"id":"0e84f198-6b69-4eee-aad7-f0bacf9ee676","text":"Gesprächsnotiz Kenntnisnahme: E-Mail Token Vorlage","v":"ad04379a4db61ed0"},{"id":"e3e2b913-1791-461b-9d80-be3681488a04","text":"Objekte","v":"7ce7856126f4d0b6"}],"icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"label":"","name":"B/Core: Sachverständiger","namedIcon":"","namedIconColor":"","related":[],"searchFilters":[],"searchableForms":[]},"f":{"id":"application-form","text":"Application","v":"e6c4e4126877157e"},"id":"d91078cc-874b-4410-b837-b81f47687fe9","inheritedLocks":[null,null],"locks":[],"modified":{"at":"2025-09-19T10:04:07+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"apps","previous":{"v":"5ffa611de5a12f2e"},"stamps":[],"t":1758276247277,"v":"40eb95828240d508"},{"id":"5acfd7a2-33e4-498a-9150-71e1ab772bfc","v":"785e4a707e71137f","p":"apps","f":{"id":"application-form","v":"e6c4e4126877157e","text":"Application"},"data":{"name":"Aufgabenverwaltung","label":"","description":"","namedIcon":"fas fa-tasks","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"related":[],"searchableForms":[],"searchFilters":[],"dialogForms":[{"id":"3d456c38-6282-416e-8c5e-7d20b0517a6e","v":"e4ff88ef22487536","text":"Aufgabe"},{"id":"2e3b1651-047d-47c3-841b-6f098b7bf0ff","v":"8a791c8e159cfddb","text":"Anhang"},{"id":"3ef82fa1-425d-4592-b120-1a6fc967802d","v":"initial","text":"Meilenstein"}],"controls":[],"designs":[],"changes":[{"id":"359d3894-e1dd-4ee9-be7d-ecc8112f0ae9","v":"initial","text":"Aufgabe: Zeitanzeige"}]},"locks":[],"created":{"at":"2018-12-03T15:17:21+00:00","by":"c5ed555f-cc11-463b-960b-0a60b3118e69","from":"","client":"server"},"modified":{"at":"2022-10-19T08:57:47+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1721196328115,"ct":1721196328115,"a_depth":1,"a":["apps"],"a_forms":["folder"],"inheritedLocks":[null,null],"stamps":[],"previous":{"v":"4d124e3942d55b4f","f":{"id":"application-form","v":"968f9b39f4549d90","text":"Application"}},"meta":{"modified":{"at":"2024-07-17T06:05:28+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}},"dts":1666169867199},{"a":["apps"],"a_depth":1,"a_forms":["folder"],"created":{"at":"2022-11-23T08:34:23+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1721196328127,"data":{"changes":[{"id":"5a979e68-947a-452c-840f-d708f3b47550","text":"Neues Modul","v":"initial"},{"id":"5e39faae-018a-4030-932d-71859b1309de","text":"Direkte URL für Schnellerfassung","v":"initial"},{"id":"7c562c2d-217a-40e4-b722-36ac764723b5","text":"Belege","v":"initial"}],"controls":[],"description":"","designs":[{"id":"1cc4b977-c14d-4587-af47-d6ac230f60b3","text":"Bizpin Fallback Designs","v":"initial"}],"dialogForms":[{"id":"c2d9407d-9dd6-42ff-acdc-ec2e296bea99","text":"Beleg","v":"1455118b10c1442a"},{"id":"a1e6ab82-7c13-4a74-89e4-1a23e443e350","text":"Position","v":"5f554b37aa31c5e9"},{"id":"b761a694-27e9-4b16-b048-2c9c0c4cd971","text":"Nebenkosten Abrechnung (Mieter)","v":"c275d04e1942090e"}],"icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"label":"","name":"B/Rooms: Nebenkosten","namedIcon":"","namedIconColor":"","related":[],"searchFilters":[],"searchableForms":[]},"f":{"id":"application-form","text":"Application","v":"e6c4e4126877157e"},"id":"85d3c028-a61c-4be8-93d0-4366bc45752f","inheritedLocks":[null,null],"locks":[],"modified":{"at":"2025-09-19T10:04:34+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"apps","previous":{"v":"06f18cada4edb88a"},"stamps":[],"t":1758276274598,"v":"28ecb57f8f19155e"},{"a":["apps"],"a_depth":1,"a_forms":["folder"],"created":{"at":"2019-08-22T12:20:26+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","client":"server","from":""},"ct":1721196328156,"data":{"changes":[{"id":"31f2e6a6-0086-460a-9266-a3f2261e9ec3","text":"Navigation","v":"initial"},{"id":"d688659c-58c3-450b-84c1-0f82e7063481","text":"Sortierung","v":"initial"},{"id":"aa02d207-ef04-4ce6-955b-566913221596","text":"Aktivitäten","v":"initial"},{"id":"b6a470f4-abdc-471f-96ae-14693fc6253b","text":"Aktivitäten","v":"initial"},{"id":"7962f179-ef48-4c4f-b7fc-dc76000b83df","text":"DokuShare","v":"initial"},{"id":"a624e399-ac59-41be-a887-484d033d4610","text":"Leistungen","v":"initial"},{"id":"3ff96342-d8b0-49f3-99c9-d7601c8ab2e3","text":"Zahlungen","v":"initial"},{"id":"02d1f981-7edc-479d-bf8c-6365f2f29803","text":"Projekte und Verträge","v":"initial"},{"id":"96f066e0-62f0-4bea-a21e-e7eb4676ceac","text":"DokuShare","v":"initial"},{"id":"15090134-2f60-4763-a5b4-606e63790a1f","text":"Vertrags-Zahlung","v":"initial"},{"id":"6936bd59-2182-4659-916c-754f73a53b85","text":"Leistungen","v":"initial"},{"id":"772eea42-6158-4a5c-ab41-c9cde0ed3fcb","text":"Planungs-Datum","v":"initial"},{"id":"9ffa9e12-5c50-4612-83bc-75d59a8156a3","text":"Kontakt direkt erstellen","v":"initial"},{"id":"355b821e-5966-441d-ac90-037b33a672b5","text":"Aufgabe (Leistung)","v":"initial"},{"id":"3a4b0f60-c793-4519-9eef-f18f8204f0b4","text":"","v":"initial"},{"id":"2e3a51eb-8936-4e54-8e13-1947263cc0aa","text":"Dokumenten Share","v":"initial"},{"id":"90fc4854-eda0-49d2-b8de-78f25b319c5d","text":"Aufgaben: Zeitanzeige","v":"initial"}],"controls":[],"description":"","designs":[{"id":"1cc4b977-c14d-4587-af47-d6ac230f60b3","text":"Bizpin Fallback Designs","v":"initial"}],"dialogForms":[{"id":"125d3e08-d0c5-417c-b4fe-172bf5fade99","text":"Ansprechpartner mit Bestätigung","v":"initial"},{"id":"41da8494-ec0a-4b13-bad7-162f3f1fbba4","text":"Architektur","v":"initial"},{"id":"88b1f60e-71f6-46f5-94ea-3d7bbe972950","text":"Aufgabe (Leistung)","v":"3cac4d3a2643d460"},{"id":"f69da93c-1d0b-4f18-97f4-82e61073e157","text":"Auswertung: Verträge","v":"initial"},{"id":"9f8071fd-6f25-489e-8562-4399701546b0","text":"Blower Door Test","v":"9becf7b028e79a70"},{"id":"281c6bd6-2e24-42ba-868e-b63cbba4254f","text":"Brandschutz","v":"3436195598697301"},{"id":"34d811a8-9de0-4b20-bc24-c55826a06748","text":"Brandschutzleitung","v":"8bc7d92130621bca"},{"id":"c6349b48-9561-4c06-9200-fe9df9b6fb3e","text":"Dokumenten Share","v":"0a0d46f1716e050f"},{"id":"82d9d875-0f38-4201-a44b-8a1fe7a5fefa","text":"Dokumenten Share: E-Mail Token Vorlage *Baustelle*","v":"5d5a4ba0d7a3e967"},{"id":"aba69172-0a71-41ed-8d72-8ef7a3cb016e","text":"Dokumenten Share: E-Mail Token Vorlage *Kunde*","v":"0a5cb89dd6a37d40"},{"id":"11a327ee-c8e6-453a-bcdd-f585877f2fd8","text":"Energieausweis","v":"ee0e4052667eecd6"},{"id":"fa3777b5-bfff-43ac-a5c5-ea15486dd334","text":"ENEV","v":"8a2dc4fcc62236d2"},{"id":"6c501e3a-25c4-43c1-bd96-ec99333f5930","text":"Erfüllungs-Planung","v":"initial"},{"id":"7628f42e-260d-49b9-a2d6-30cb0973c1b6","text":"Förderung","v":"dc21ac0e5789c1e5"},{"id":"10b3d98f-08ea-4423-945a-0d1650321b09","text":"Formulare Senden: E-Mail Token Vorlage","v":"664a2a90c1deef32"},{"id":"8d8f6fdb-6f78-4e2a-b585-bd80f4dbaa1d","text":"Gesprächsnotiz","v":"d724b6a57d142002"},{"id":"9fcbed35-0759-4c2d-848b-aaa1f968f3ff","text":"Gesprächsnotiz Kenntnisnahme: E-Mail Token Vorlage","v":"28b3ebbb512895af"},{"id":"4862401e-e182-451c-a855-ef2e9b9441c5","text":"KFW","v":"208b83e233c20e72"},{"id":"fb822f2f-880c-4676-be8b-cc557e822bc4","text":"Leistungen","v":"5d4724a2b60a5709"},{"id":"59b7188e-1296-4466-a9c2-d6255496e7d6","text":"Mail","v":"7f847e28709c2a05"},{"id":"2add3026-2869-40ea-9e6d-dcb14ef0ba19","text":"Projection: Projekt","v":"57a134726d46332c"},{"id":"98c77209-1245-43d6-90b5-8625183f470c","text":"Projekt","v":"befc083ffe8981f2"},{"id":"3b0389d0-78b1-4e26-adf0-20086c87ae40","text":"Projektdateien","v":"d6cd3f8852d6d658"},{"id":"e10a8072-024c-44a7-80e3-4cd75c6ec1ea","text":"Rechnung","v":"92cc998fbddd97a4"},{"id":"03c16e2b-302e-4c2c-93c1-931679919e0b","text":"Schallschutz","v":"008f81ef891e5b3b"},{"id":"2c01a15d-c14d-44c6-adc5-d9b3fdc692b7","text":"Schallschutz Kontrollen","v":"f6a1cc74ceed6721"},{"id":"328998fb-7e67-4fca-b40b-377d9a07776d","text":"Schallschutzmessung","v":"d557a49e7582048b"},{"id":"5ff471b3-1769-408b-825a-69d6416757c3","text":"Simulation (jeweils separat)","v":"ccfae3f71c637d37"},{"id":"d16936c1-7ccc-40f1-b526-d2d9ce37ebd2","text":"Teambesprechung","v":"fdc78dfed298dc36"},{"id":"859f370d-2f40-4ab0-a841-134f57513254","text":"Vertrag","v":"65fa4ea2af8be5da"},{"id":"5152f88f-3006-46f9-959a-423139accf79","text":"Zu versendende Formulare","v":"39ef9449c38b8887"},{"id":"03d12b14-6ff2-45ea-877e-6b326b319b86","text":"Protokoll der Projektübergabe","v":"f2d61d6e2aa4cba7"},{"id":"f7583ba1-ddbc-4c46-b1fe-f7bb326fded6","text":"Fragebogen: Alle Bauvorhaben","v":"924a15a44217362d"},{"id":"b6e0328c-73b0-4bb9-85b4-d9c54b8c4745","text":"Fragebogen: Brandschutz","v":"a156f261cc15b69a"},{"id":"55e4b86c-4ca0-4f39-878a-a97ba0437e40","text":"Fragebogen: Fördermittel","v":"752dcb31f54c3fa7"},{"id":"177f2216-811f-4fdf-bc4a-c2cfe18cffd7","text":"Fragebogen: Schallschutz","v":"4419e8b74422b82b"},{"id":"73729d8f-7a1f-429a-a198-13efa62ee116","text":"Fragebogen: Wärmeschutz","v":"bd42b9954852afe5"},{"id":"cd95aa7a-c646-4a2b-817c-1d05d7f360ca","text":"Frage und Antwort","v":"a601701ad6614e17"}],"icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"label":"Projekte","name":"Energieberater: Projekte","namedIcon":"fa fa-clipboard-list","namedIconColor":"","related":[],"searchFilters":[{"id":"9f8220aa-8fe3-40fd-84f1-0fe5f9707095","text":"Projekte","v":"initial"},{"id":"b672cf47-9663-4249-872b-21161d46994b","text":"Aufgaben","v":"initial"}],"searchableForms":[{"id":"98c77209-1245-43d6-90b5-8625183f470c","text":"Projekt","v":"881422e69e250e5b"}]},"f":{"id":"application-form","text":"Application","v":"e6c4e4126877157e"},"id":"94a64d89-d204-4918-b147-d717914fb03e","inheritedLocks":[null,null],"locks":[],"modified":{"at":"2025-09-19T10:11:39+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"apps","previous":{"v":"1e75a4e7de9283e2"},"stamps":[],"t":1758276699755,"v":"390a4a76ef90c06e"},{"a":["apps"],"a_depth":1,"a_forms":["folder"],"created":{"at":"2018-01-16T16:08:25+01:00","by":"","client":"server","from":""},"ct":1721196328194,"data":{"changes":[],"controls":[],"description":"","designs":[{"id":"1cc4b977-c14d-4587-af47-d6ac230f60b3","text":"Bizpin Fallback Designs","v":"initial"}],"dialogForms":[],"icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"label":"","name":"Prozesse","namedIcon":"fas fa-project-diagram","namedIconColor":"","related":[],"searchFilters":[],"searchableForms":[{"id":"527f9bb3-01bd-48cc-ad5b-08b1bba3af33","text":"Prozess","v":"30c6bd6858a52267"},{"id":"f0cf1b33-f840-4d4b-9335-c10daa7a335e","text":"Prozessordner","v":"af0a03fd44e44e63"}]},"f":{"id":"application-form","text":"Application","v":"e6c4e4126877157e"},"id":"bd4df555-2c56-4a5f-82f0-7e4745372f51","inheritedLocks":[null,null],"locks":[],"modified":{"at":"2025-09-19T10:24:06+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"apps","previous":{"v":"85107739a05efeaf"},"stamps":[],"t":1758277446439,"v":"2d693fc42d235676"},{"id":"deeef973-ce03-4557-bf75-75a059001767","v":"4d39ecfa52628efa","p":"apps","f":{"id":"application-form","v":"e6c4e4126877157e","text":"Application"},"data":{"name":"Maus GmbH","label":"","description":"","namedIcon":"fa fa-tools","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"related":[],"searchableForms":[],"searchFilters":[],"dialogForms":[{"id":"b0e3875f-43ba-475d-9c92-98ed8da7b2ef","v":"0b27b899c3c21ba8","text":"Konstruktion: Beschichtung"},{"id":"164a9d5b-53e9-448e-b9f5-d3bd3f78cbe5","v":"e1ac6235c4c74799","text":"Konstruktion: Bohrzentrierung"},{"id":"a678e4d3-a2c1-4eeb-a106-6d47479692c8","v":"a1990670bed0a6a0","text":"Konstruktion: Drehteil"},{"id":"02eaf357-29bd-45ab-a7ae-7184787bdca1","v":"aac224a9c14fb8e0","text":"Konstruktion: Gesprächsprotokoll"},{"id":"76ccd02e-b3f5-4642-991c-d908db66aa6b","v":"5d0193b079afc216","text":"Konstruktion: Insert"},{"id":"f800b4cd-7ef2-427e-9ce0-f5834126c09d","v":"89e1d288d566acdf","text":"Konstruktion: Losteil"},{"id":"bdd70340-1c59-4f92-8249-caa534e1cb15","v":"00bc29b7f6cf021e","text":"Konstruktion: Rahmen"},{"id":"df424bea-0f38-49bf-b18a-6d6fb36b8d0b","v":"3d59e6e045c6d19f","text":"Konstruktion: Sachlochformer"},{"id":"d5d0723a-5319-4dc9-956c-a39387c6c060","v":"b42fbd5fb620d59b","text":"Beschichtung: Bild Formschale"},{"id":"bf942b55-a17d-49e2-afa5-18c52b8ad324","v":"56a4a3f2d9be62f9","text":"Beschichtung: Formschale Beschichtung"},{"id":"2e9c3a08-10d0-495d-b35a-e1fe4e7f9b44","v":"c59c9aeeda239a39","text":"Bestellungen: Bestellung"},{"id":"11f71072-0815-446f-83b2-ff5662cfa7d3","v":"b90916bcfa974ea3","text":"CAM: Logo/Klebefläche"},{"id":"b9c18d3f-2e85-4aad-ac22-5bee68fc8fb9","v":"7ae76351b4743ffb","text":"CNC: Aufspannung"},{"id":"dbcc416d-bced-4cc4-89b2-7f18ef390e9e","v":"03d8ffef0a6ac859","text":"Formenbau: Formschale"},{"id":"3834e4d0-1de2-460f-b14c-a4b3b3f85e31","v":"42831ced9e314005","text":"Formenbau: Logo und Klebefläche"},{"id":"c2c9bf3d-3127-497a-8d96-cfdca483cb97","v":"19bc220dbe1d8bd5","text":"Formenbau: Standardteil"},{"id":"756a726d-56c8-452c-9a13-d47d4e04954c","v":"876f4107192324ce","text":"Formerei: Gipsherstellung"},{"id":"d886b1d3-42a8-47d7-aa6a-4be2ad2a4357","v":"47879ad354d91a15","text":"Gießerei: Formschale"},{"id":"4da4181d-2bf5-47b9-a0d2-6f0a05dcc702","v":"ad1743c55dce300c","text":"Gussputzerei: Formschalen"},{"id":"857157fa-4c9b-4f7c-bba5-7a49646e849e","v":"01bdc234ce777c46","text":"Rahmenbau: Montierpfosten"},{"id":"530cb8ec-47ef-4d15-9257-1d548798f5fe","v":"09cb6173b5b91033","text":"Vertrieb: Auftragsvorbereitung"},{"id":"a77f917d-0d75-41b5-93e3-4c9da731ddbc","v":"335eaf7393ed91d4","text":"Vertrieb: Beschichtung"}],"controls":[],"designs":[],"changes":[{}]},"locks":[],"created":{"at":"2021-12-15T12:26:36+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-07-19T11:30:42+00:00","by":"427610a9-39dc-4014-9176-5f72aeb23263","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1721196328172,"ct":1721196328172,"a_depth":1,"a":["apps"],"a_forms":["folder"],"inheritedLocks":[null,null],"stamps":[],"previous":{"v":"0519907e6b012d8d","f":{"id":"application-form","v":"494d7694e82e9921","text":"Application"}},"meta":{"modified":{"at":"2024-07-17T06:05:28+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}},"dts":1738311235601},{"a":["apps"],"a_depth":1,"a_forms":["folder"],"created":{"at":"2020-11-19T13:12:43+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1721196327552,"data":{"changes":[{"id":"0aed930a-8d2f-4b3c-815e-0ced3dabd797","text":"Fragebögen und Auswertungen","v":"initial"},{"id":"145ed06d-9c25-4764-becd-1332e3964d7c","text":"Verwaltung","v":"initial"},{"id":"79aca744-6cac-4ed5-9bbf-f9597b405168","text":"","v":"initial"}],"controls":[],"description":"","designs":[{"id":"1cc4b977-c14d-4587-af47-d6ac230f60b3","text":"Bizpin Fallback Designs","v":"initial"}],"dialogForms":[{"id":"83d025fd-16d4-472d-bbd2-36db20e832ee","text":"Unterweisungsfrage","v":"828a04d550d83e7c"},{"id":"21d736d8-1761-4fd7-b448-160ee2ede152","text":"Unterweisungsantwortsmöglichkeit","v":"5b5df58fe186daa6"}],"icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"label":"","name":"Unterweisungen","namedIcon":"fa fa-users-class","namedIconColor":"","related":[],"searchFilters":[],"searchableForms":[]},"f":{"id":"application-form","text":"Application","v":"e6c4e4126877157e"},"id":"f416e371-07cc-4987-a6de-5934ef5ff3e4","inheritedLocks":[null,null],"locks":[],"modified":{"at":"2025-09-19T10:30:15+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"apps","previous":{"v":"0c9682b4bec0ea4b"},"stamps":[],"t":1758277815188,"v":"948e455de9833037"},{"a":["apps"],"a_depth":1,"a_forms":["folder"],"created":{"at":"2020-08-10T09:28:32+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","client":"server","from":""},"ct":1721196328124,"data":{"changes":[{"id":"76486030-9f2b-4130-adbe-2ec6acfd73f1","text":"Aufgaben","v":"9b8d74d6fde2097d"},{"id":"0ca03d28-3c01-4620-9512-7e4aa115008f","text":"iCal Sycronisation","v":"initial"},{"id":"22d4276f-5c90-485c-b547-ee07a14a4977","text":"Persönlicher Kalender","v":"initial"},{"id":"515f915c-b0e2-4918-9959-d744908265b9","text":"Ladezeiten optimiert","v":"initial"}],"controls":[],"description":"","designs":[{"id":"1cc4b977-c14d-4587-af47-d6ac230f60b3","text":"Bizpin Fallback Designs","v":"initial"}],"dialogForms":[{"id":"e6b7aced-aaa0-49a4-b573-cfa307595402","text":"Termin","v":"07a303eab87a6ec7"}],"icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"label":"Kalender","name":"B/Core: Kalender","namedIcon":"fa fa-calendar","namedIconColor":"","related":[],"searchFilters":[],"searchableForms":[{"id":"e6b7aced-aaa0-49a4-b573-cfa307595402","text":"Termin","v":"4dd9e73bb0719744"}]},"f":{"id":"application-form","text":"Application","v":"e6c4e4126877157e"},"id":"d8c9a42b-e289-4c9a-97ea-801de8ab480a","inheritedLocks":[null,null],"locks":[],"modified":{"at":"2025-09-19T10:02:44+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"apps","previous":{"v":"190e2d1ee838c35e"},"stamps":[],"t":1758276164912,"v":"21817a9937ab129b"},{"a":["apps"],"a_depth":1,"a_forms":["folder"],"created":{"at":"2020-12-10T13:06:51+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1766149821169,"data":{"changes":[],"controls":[],"description":"","designs":[{"id":"1cc4b977-c14d-4587-af47-d6ac230f60b3","text":"Fallback Designs Bizpin","v":"87574c37fe2dfd86"}],"dialogForms":[{"id":"58c8b8e4-315d-4a8a-8ac3-e69d017640a6","text":"Projektlink","v":"d9caa126a84e8ae2"},{"id":"009c0da4-718f-43d0-964a-647e30074d94","text":"Bewerbung","v":"9441d5801f4c3c4b"},{"id":"2168bcf2-5523-4f2f-8053-7e7f8c3ceba8","text":"Agenturkürzel","v":"ca4f6d8824b2aff4"}],"icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"label":"","name":"Casting Agentur 2.0","namedIcon":"fa fa-book-user","namedIconColor":"","related":[],"searchFilters":[],"searchableForms":[{"id":"e170bb6c-f326-446d-870a-ada9d9f67230","text":"Projekt","v":"28b16e7b77c4aa83"},{"id":"8fef472f-9220-484b-99cd-bb80f208f795","text":"Rolle","v":"40df810d29107582"},{"id":"009c0da4-718f-43d0-964a-647e30074d94","text":"Bewerbung","v":"b88600afe62d3f8f"}]},"f":{"id":"application-form","text":"Application","v":"16dc41cbc8c00e77"},"id":"3fbe0efd-713a-457a-a34c-3a12aa19d6bb","inheritedLocks":[null,null],"locks":[],"meta":{},"modified":{"at":"2026-01-09T12:20:09+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"p":"apps","previous":{"v":"8a43b8c67fe004e7"},"stamps":[],"t":1767961209224,"v":"f36cd674e733441f"},{"id":"18da93c8-dfa2-4c21-b0fe-7e09b2b6d6c4","v":"6127090bc12cbfbf","p":"apps","f":{"id":"application-form","v":"e6c4e4126877157e","text":"Application"},"data":{"name":"Profilseite.old","label":"","description":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"related":[],"searchableForms":[],"searchFilters":[],"dialogForms":[],"controls":[],"designs":[],"changes":[]},"locks":[],"created":{"at":"2019-09-09T09:30:31+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2020-05-08T08:52:36+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1721196328193,"ct":1721196328193,"a_depth":1,"a":["apps"],"a_forms":["folder"],"inheritedLocks":[null,null],"stamps":[],"previous":{"v":"a711d48e3d5ef079","f":{"id":"application-form","v":"713ca313eb629de1","text":"Application"}},"meta":{"modified":{"at":"2024-07-17T06:05:28+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}},"dts":1593507154629},{"a":["apps"],"a_depth":1,"a_forms":["folder"],"created":{"at":"2021-09-10T13:36:07+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":""},"ct":1721196327554,"data":{"changes":[{"id":"76491fed-6f8d-4bf1-9292-620bd649c8cc","text":"Neues Modul","v":"initial"},{"id":"1c546716-e5ea-486a-b3f9-4fb834dc1a72","text":"Dashboard & Listen-Verantwortlichkeiten","v":"initial"}],"controls":[],"description":"","designs":[{"id":"1cc4b977-c14d-4587-af47-d6ac230f60b3","text":"Bizpin Fallback Designs","v":"initial"}],"dialogForms":[{"id":"e66eae7c-a9d5-4a59-a2f0-d1fa6eb90ea5","text":"Projekt","v":"ae280dd92881a1a1"},{"id":"5a88c3ad-ed61-473d-8c2d-2ce4f54db7f2","text":"Aufgaben-Listen","v":"479cb58a9a3c9d40"},{"id":"573419c5-1ab4-43c9-94ba-a831ae580d6a","text":"Vorlagen","v":"609bec5a29ea1f27"}],"icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"label":"To-dos","name":"Energieberater: To-dos","namedIcon":"","namedIconColor":"","related":[],"searchFilters":[],"searchableForms":[]},"f":{"id":"application-form","text":"Application","v":"e6c4e4126877157e"},"id":"1887a103-bf3b-473c-8cb7-4f1afad0286b","inheritedLocks":[null,null],"locks":[],"modified":{"at":"2025-09-19T10:11:45+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"apps","previous":{"v":"fef5644b905e6b55"},"stamps":[],"t":1758276705888,"v":"871e0e23eaf6ab5c"},{"a":["apps"],"a_depth":1,"a_forms":["folder"],"created":{"at":"2022-04-21T11:59:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1721196328127,"data":{"changes":[{"id":"6e860436-12c2-4f98-b8e3-59ff73a29ea7","text":"Grundriss & Mieter","v":"initial"},{"id":"b0ae7f74-e145-4c6c-9526-1e98c662341d","text":"Grundriss","v":"initial"},{"id":"124b146e-cccc-432e-a16a-e606c35f1c18","text":"Vertrag + Mieter in Grundriss","v":"initial"},{"id":"b2fc1aa7-f71d-4a54-a962-568ad39db774","text":"Verträge","v":"initial"},{"id":"85613c9e-a4ce-490e-8976-072dcbfbccb4","text":"Verträge","v":"initial"},{"id":"efc15459-b127-4eb8-8273-7e8ef04abee2","text":"Notizen","v":"initial"}],"controls":[],"description":"","designs":[{"id":"1cc4b977-c14d-4587-af47-d6ac230f60b3","text":"Bizpin Fallback Designs","v":"initial"}],"dialogForms":[{"id":"7105a939-989c-4154-96e8-44f17f556b2a","text":"Einheit","v":"07617f62d5273aab"},{"id":"b4b13fc6-7d06-4832-93b0-cd27405e269d","text":"Vertrag","v":"3550aa9759487a76"},{"id":"3c0a7011-6a65-4ed3-98e1-06e4f5a314d8","text":"Mieter","v":"c3c15b0253388dae"},{"id":"28527c6d-4f85-4881-8f5d-948021a60ad0","text":"Mängelmeldung","v":"61680ec9e0077b24"},{"id":"39cc8c10-ef0e-4780-bec0-ba6b01b4d200","text":"Geplante Vertrags-Anpassung","v":"a70f9fc245322bf1"}],"icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"label":"","name":"B/Rooms: Gebäude","namedIcon":"","namedIconColor":"","related":[],"searchFilters":[],"searchableForms":[]},"f":{"id":"application-form","text":"Application","v":"e6c4e4126877157e"},"id":"86189c5a-b9f4-445a-879f-d94574960df0","inheritedLocks":[null,null],"locks":[],"modified":{"at":"2025-09-19T10:04:22+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"apps","previous":{"v":"5d264102d7c85cfc"},"stamps":[],"t":1758276262403,"v":"36c6d668d4c449bc"},{"a":["apps"],"a_depth":1,"a_forms":["folder"],"created":{"at":"2020-06-23T12:01:27+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","client":"server","from":""},"ct":1721196328126,"data":{"changes":[{"id":"1d3f2547-8606-46e4-8a00-064fc310ee5b","text":"Labels","v":"60ab4114a2faaaaa"},{"id":"491dca95-f932-4bfb-9c71-80e925ac1c21","text":"Kommentare und Pings","v":"initial"},{"id":"3d45d76d-8081-4ebd-a663-e5064d588fe6","text":"Datei-Ordner für Teilprojekte","v":"initial"},{"id":"c2c0df2d-de8e-4876-ac1b-5889adb67920","text":"Fällig-Feld","v":"initial"},{"id":"6c4cf076-bed0-4d9d-8ae7-c048d9f0284e","text":"Meilensteine","v":"initial"}],"controls":[{"id":"605b4b46-ddbe-4ed2-99fa-537ec332dbbf","text":"Fallback Controls","v":"initial"}],"description":"","designs":[{"id":"b55eaea8-e746-4fa6-85a8-514c2268f1b8","text":"Fallback Designs","v":"4d0534e3b7fe8e93"},{"id":"1cc4b977-c14d-4587-af47-d6ac230f60b3","text":"Bizpin Fallback Designs","v":"initial"}],"dialogForms":[{"id":"0deb4864-cbb6-420c-99ee-337c7444ab24","text":"Aufgabe","v":"e5c3428719123243"},{"id":"766c24c5-542c-4887-bf65-43ad85e6c476","text":"Meilenstein","v":"initial"}],"icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"label":"Projekte","name":"B/Core: Projekte","namedIcon":"fa fa-tasks","namedIconColor":"","related":[],"searchFilters":[{"id":"e0b7bf1c-3d50-401b-b1a6-d22ae74124ae","text":"Aufgaben","v":"initial"}],"searchableForms":[]},"f":{"id":"application-form","text":"Application","v":"e6c4e4126877157e"},"id":"59edbdbc-2cab-426a-bb42-6e57c5158e4f","inheritedLocks":[null,null],"locks":[],"modified":{"at":"2025-09-15T14:48:11+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"apps","previous":{"v":"af637331cfcf4098"},"stamps":[],"t":1757947691592,"v":"b9c396b536e79fc1"},{"a":["apps"],"a_depth":1,"a_forms":["folder"],"created":{"at":"2019-10-02T14:27:06+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","client":"server","from":""},"ct":1721196328170,"data":{"changes":[],"controls":[{"id":"55541725-75d7-48c5-9558-f501a9e13040","text":"Controls","v":"initial"}],"description":"","designs":[{"id":"f1899d3b-4673-4033-afa0-2d9c540c326d","text":"Fallback Designs","v":"initial"}],"dialogForms":[],"icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"label":"","name":"IT-Mitbestimmung","namedIcon":"far fa-clipboard-list","namedIconColor":"","related":[],"searchFilters":[],"searchableForms":[{"id":"0bb3d600-faf0-4a5c-b49f-7994d234ae76","text":"Antrag","v":"db4a6f28fbadcc39"},{"id":"50c3c7c5-c3d4-460c-b34d-0d61a4cb09ae","text":"Bestandseintrag","v":"0ce86b4dbf1fff41"}]},"f":{"id":"application-form","text":"Application","v":"e6c4e4126877157e"},"id":"009b3a60-72d5-46f6-8dc6-7f9001e03283","inheritedLocks":[null,null],"locks":[],"modified":{"at":"2025-03-14T15:12:36+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"apps","previous":{"v":"f6bf962233887952"},"stamps":[],"t":1741965156938,"v":"8300542fe566949f"},{"id":"system-folder-forms-folder","v":"762dd75e17bcae8b","previous":{"v":"0401cd29f691702f"},"p":"system","f":{"id":"form-folder","v":"577dbed0412b397a","text":"Form Folder"},"data":{"name":"Folder Forms","structural":true,"description":"This `Folder` contains all `Forms` required for the System to work."},"locks":[],"created":{"at":"2017-08-23T08:24:50+02:00","by":"","from":"","client":"import"},"modified":{"at":"2020-07-03T08:11:45+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1593763905981,"ct":1593763904404,"a_depth":1,"a":["system"],"a_forms":["system-folder-form"],"inheritedLocks":[null,null],"stamps":[],"dts":1720678163001},{"a":["apps"],"a_depth":1,"a_forms":["folder"],"created":{"at":"2019-03-08T14:03:53+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","client":"server","from":""},"ct":1721196328156,"data":{"changes":[{"id":"a05e9217-5499-4997-b4ba-2d18ccd3cd56","text":"Layout","v":"initial"}],"controls":[],"description":"","designs":[{"id":"1cc4b977-c14d-4587-af47-d6ac230f60b3","text":"Bizpin Fallback Designs","v":"initial"}],"dialogForms":[{"id":"929d4384-92b3-4450-aa3b-0e7f20e2103c","text":"Akte","v":"cc7efe00bce39e00"},{"id":"4b1bce8a-884e-44de-a2cd-352a7f89baa7","text":"Patient","v":"57a628b36579001c"},{"id":"3f5de83a-40e4-4662-b436-3ed4879edb10","text":"Behandlung","v":"initial"}],"icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"label":"","name":"Digitale Akte","namedIcon":"fas fa-archive","namedIconColor":"","related":[],"searchFilters":[],"searchableForms":[{"id":"929d4384-92b3-4450-aa3b-0e7f20e2103c","text":"Akte","v":"318737cab54156f8"},{"id":"4b1bce8a-884e-44de-a2cd-352a7f89baa7","text":"Patient","v":"88cd1c1669650495"}]},"f":{"id":"application-form","text":"Application","v":"e6c4e4126877157e"},"id":"5ec4fefb-1235-484e-8d6f-4fd645bae372","inheritedLocks":[null,null],"locks":[],"modified":{"at":"2025-09-19T10:10:10+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"apps","previous":{"v":"2cc65ade6d68ce3b"},"stamps":[],"t":1758276610139,"v":"08c8db0c1f1585be"},{"id":"b9df606f-b33a-48ad-ba91-a82fa7868fa4","v":"7edc52c574fe6577","p":"apps","f":{"id":"application-form","v":"e6c4e4126877157e","text":"Application"},"data":{"name":"Mails","label":"","description":"","namedIcon":"fa fa-envelope","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"related":[],"searchableForms":[],"searchFilters":[],"dialogForms":[{"id":"59b7188e-1296-4466-a9c2-d6255496e7d6","v":"a9527789ad2a7a7d","text":"Mail"}],"controls":[],"designs":[],"changes":[{}]},"locks":[],"created":{"at":"2021-11-23T14:02:26+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-11-23T15:30:09+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1721196328172,"ct":1721196328172,"a_depth":1,"a":["apps"],"a_forms":["folder"],"inheritedLocks":[null,null],"stamps":[],"previous":{"v":"08b775f869eab256","f":{"id":"application-form","v":"494d7694e82e9921","text":"Application"}},"meta":{"modified":{"at":"2024-07-17T06:05:28+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}},"dts":1738331113346},{"a":["apps"],"a_depth":1,"a_forms":["folder"],"created":{"at":"2022-11-17T15:36:19+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1721196328127,"data":{"changes":[{"id":"8b01e589-2486-4dc8-8503-6b618e887153","text":"Neues Modul","v":"initial"},{"id":"ac56a8c7-35fc-4fb4-88e5-29aaa0edc1ec","text":"Anzeige & Änderbarkeit ","v":"initial"},{"id":"1d9f4524-6fb5-4f66-8e88-85b1b57c9cec","text":"Geldsack & Suche","v":"initial"},{"id":"7e101cc5-026a-4298-ba3b-4a1a701aba14","text":"Verträge & Darstellung","v":"initial"}],"controls":[],"description":"","designs":[{"id":"1cc4b977-c14d-4587-af47-d6ac230f60b3","text":"Bizpin Fallback Designs","v":"initial"}],"dialogForms":[{"id":"8b4121d2-1838-46b6-833f-43f6ded78011","text":"Mieteingang","v":"f09e367b571a202b"}],"icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"label":"","name":"B/Rooms: Mieteingänge","namedIcon":"","namedIconColor":"","related":[],"searchFilters":[],"searchableForms":[]},"f":{"id":"application-form","text":"Application","v":"e6c4e4126877157e"},"id":"253003a3-5cbd-4d84-bfb2-38f60a741fb5","inheritedLocks":[null,null],"locks":[],"modified":{"at":"2025-09-19T10:04:29+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"apps","previous":{"v":"6cd16c2e92fbe370"},"stamps":[],"t":1758276269790,"v":"db3f1d319f4735ea"},{"a":["apps"],"a_depth":1,"a_forms":["folder"],"created":{"at":"2021-03-30T11:51:19+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1721196328122,"data":{"changes":[],"controls":[],"description":"","designs":[{"id":"1cc4b977-c14d-4587-af47-d6ac230f60b3","text":"Fallback Designs Bizpin","v":"87574c37fe2dfd86"}],"dialogForms":[],"icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"label":"","name":"Auswertungen","namedIcon":"fa fa-chart-pie","namedIconColor":"","related":[],"searchFilters":[],"searchableForms":[]},"f":{"id":"application-form","text":"Application","v":"e6c4e4126877157e"},"id":"75c6f72a-08a2-44f4-a29c-86b58be26f96","inheritedLocks":[null,null],"locks":[],"meta":{},"modified":{"at":"2026-01-12T08:34:38+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"p":"apps","previous":{"v":"54101fa2fd506865"},"stamps":[],"t":1768206878306,"v":"2615f07ecfc49533"},{"id":"781ff5de-69db-49dc-99f0-f328b308cd7d","v":"725101d05a73c84d","p":"apps","f":{"id":"application-form","v":"e6c4e4126877157e","text":"Application"},"data":{"name":"Products","label":"","description":"","namedIcon":"fas fa-box-heart","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"related":[],"searchableForms":[],"searchFilters":[],"dialogForms":[{"id":"0a401e72-7ef0-40f4-ac90-360b8694a2aa","v":"8b0a6b6bf87280ff","text":"Component"}],"controls":[],"designs":[],"changes":[]},"locks":[],"created":{"at":"2018-12-07T12:11:00+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2021-11-02T09:38:31+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1721196328192,"ct":1721196328192,"a_depth":1,"a":["apps"],"a_forms":["folder"],"inheritedLocks":[null,null],"stamps":[],"previous":{"v":"ebb51cc1fa3596c3","f":{"id":"application-form","v":"cc7463f7bb2b4de6","text":"Application"}},"meta":{"modified":{"at":"2024-07-17T06:05:28+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}},"dts":1635845921614},{"a":["apps"],"a_depth":1,"a_forms":["folder"],"created":{"at":"2021-10-04T11:07:17+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1721196328132,"data":{"changes":[],"controls":[],"description":"","designs":[{"id":"1cc4b977-c14d-4587-af47-d6ac230f60b3","text":"Bizpin Fallback Designs","v":"initial"}],"dialogForms":[],"icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"label":"","name":"Boards old","namedIcon":"fa fa-columns","namedIconColor":"","related":[],"searchFilters":[],"searchableForms":[]},"f":{"id":"application-form","text":"Application","v":"e6c4e4126877157e"},"id":"089481c4-a42f-4a98-9bc9-12e9f1131f4b","inheritedLocks":[null,null],"locks":[],"modified":{"at":"2026-03-24T13:19:54+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"p":"apps","previous":{"v":"f741ee205d8df226"},"stamps":[],"t":1774358394398,"v":"de1d4a8e831cb3a1"},{"id":"b791df37-6eef-4a3e-9066-1b79e0bdad31","v":"7e7e291e53b696b8","p":"apps","f":{"id":"application-form","v":"e6c4e4126877157e","text":"Application"},"data":{"name":"Gilbrin","label":"","description":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"related":[],"searchableForms":[],"searchFilters":[],"dialogForms":[],"controls":[],"designs":[],"changes":[]},"locks":[],"created":{"at":"2018-02-06T09:42:13+01:00","by":"","from":"","client":"server"},"modified":{"at":"2020-05-08T08:51:05+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1721196328169,"ct":1721196328169,"a_depth":1,"a":["apps"],"a_forms":["folder"],"inheritedLocks":[null,null],"stamps":[],"previous":{"v":"2b445f37d60762db","f":{"id":"application-form","v":"7afdc5922f8d042f","text":"Application"}},"meta":{"modified":{"at":"2024-07-17T06:05:28+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}},"dts":1593507154591},{"a":["apps"],"a_depth":1,"a_forms":["folder"],"created":{"at":"2020-05-08T08:51:05+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":""},"ct":1721196327553,"data":{"changes":[],"controls":[],"description":"","designs":[{"id":"1cc4b977-c14d-4587-af47-d6ac230f60b3","text":"Bizpin Fallback Designs","v":"initial"}],"dialogForms":[{"id":"5c3d462b-b1fa-4323-8457-cee88cfdf51f","text":"Beschwerde","v":"a20931f3a49096f8"},{"id":"674d8994-c7b4-4f40-aaea-ca361e8490de","text":"Grund der Beschwerde","v":"923051d11cbc020d"},{"id":"8d5743bf-228b-4214-8ee3-8089ab480678","text":"Interaktion","v":"initial"}],"icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"label":"","name":"Beschwerdemanagement","namedIcon":"fa fa-siren-on","namedIconColor":"","related":[],"searchFilters":[],"searchableForms":[]},"f":{"id":"application-form","text":"Application","v":"e6c4e4126877157e"},"id":"f93ac233-7aa7-4561-a3b3-d8ebda0ee514","inheritedLocks":[null,null],"locks":[],"modified":{"at":"2025-09-19T10:05:44+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"apps","previous":{"v":"07d7ad24a4b4d931"},"stamps":[],"t":1758276344781,"v":"9a8a9db5e24a6546"},{"id":"81a6e9c3-754a-4964-8557-68edfe57053e","v":"1d94078a9f9d7145","p":"apps","f":{"id":"application-form","v":"e6c4e4126877157e","text":"Application"},"data":{"name":"Charts","label":"","description":"","namedIcon":"fas fa-chart-bar","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"related":[],"searchableForms":[],"searchFilters":[],"dialogForms":[],"controls":[],"designs":[],"changes":[]},"locks":[],"created":{"at":"2018-01-04T10:13:32+01:00","by":"","from":"","client":"c07d912c-c8c6-4a29-bbb2-1dd13a4178a7"},"modified":{"at":"2020-05-08T08:52:49+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1721196328140,"ct":1721196328140,"a_depth":1,"a":["apps"],"a_forms":["folder"],"inheritedLocks":[null,null],"stamps":[],"previous":{"v":"69379a8e75c76686","f":{"id":"application-form","v":"7afdc5922f8d042f","text":"Application"}},"meta":{"modified":{"at":"2024-07-17T06:05:28+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}},"dts":1524058904998},{"a":["apps"],"a_depth":1,"a_forms":["folder"],"created":{"at":"2019-04-16T13:17:34+00:00","by":"8e6c22aa-8c69-4ff8-919a-7032841cf636","client":"server","from":""},"ct":1767871732397,"data":{"changes":[{"id":"d50e4079-21f8-400a-82c2-cda38594e773","text":"Such-, Sortier-, Filterleiste","v":"03cc1eadf820d10e"},{"id":"0be3ca30-b011-40d9-a03f-c2726d823bf6","text":"PDF Anzeige","v":"initial"},{"id":"47939799-967d-4117-9269-33dc24b8fdc4","text":"Navigation","v":"initial"},{"id":"a3add107-ea9e-4887-88c5-27d48d30361a","text":"Filterleiste","v":"initial"},{"id":"949024ac-d344-4d69-bbbf-e0164b2f7b04","text":"Menü-Leiste","v":"initial"},{"id":"41067d24-88e1-4125-98b7-ae1dcfd3af2a","text":"Datei-Anzeige","v":"initial"},{"id":"b078e945-3531-42ae-840c-b9bcf94208f0","text":"Kommentare","v":"initial"},{"id":"24b16fed-59b2-4e11-b359-46d32c0acf7e","text":"Referenz-Felder","v":"initial"},{"id":"65ee376c-7189-4339-ba99-b4f3cd54d249","text":"E-Mail Felder","v":"initial"},{"id":"a76a5aa1-bd72-4fbf-8897-15dde597bc9e","text":"Datum & Dauer Felder","v":"initial"},{"id":"cc9802f2-237a-4767-b053-2ef1a911c161","text":"Zeiterfassung","v":"initial"},{"id":"f30592df-8bf5-4d16-b4b3-4e87ca55d2b5","text":"Pings","v":"initial"},{"id":"2cab0a53-9be7-479d-8415-c4beda2701e8","text":"E-Mail Benachrichtigungen","v":"initial"},{"id":"f96bcf41-1e8d-43f5-9125-b47db3ed2c68","text":"Select-Felder","v":"initial"},{"id":"ca6fa776-6e49-4b7b-9171-48dae3faaad5","text":"Pings","v":"initial"},{"id":"a0c8e445-557f-4db0-af0a-b276e16551e9","text":"E-Mail Benachrichtigungen","v":"initial"},{"id":"b5b5400c-7ae6-4365-aac0-e7be8e94b4e7","text":"Dialoge","v":"initial"},{"id":"c0205a6d-f9b3-4129-8176-84f6a3921c44","text":"\"Neu\" zeigt erstelltes Dokument direkt an","v":"initial"},{"id":"0c2e7a59-f044-4e29-93be-4cd596344d6d","text":"Zeiterfassung","v":"initial"},{"id":"d25b9e6e-5e41-42a1-be6d-3751b9f9ab87","text":"Arbeitszeit & Zeiterfassung","v":"initial"}],"controls":[],"description":"","designs":[{"id":"1cc4b977-c14d-4587-af47-d6ac230f60b3","text":"Bizpin Fallback Designs","v":"initial"}],"dialogForms":[],"icon":{"dataUrl":"aeppic-local://64df0064-51b0-4b11-8f76-48e5487b8927/1","fileInfo":{"created":null,"imported":1627649015126,"modified":1627649008691,"read":null},"iconUrl":null,"mediaInfo":{},"name":"Bizpin_Logo_Signet_color_01.svg","sha1":null,"size":1060,"thumbnailUrl":null,"type":"image/svg+xml"},"label":"","name":"Bizpin ","namedIcon":"","namedIconColor":"","related":[],"searchFilters":[],"searchableForms":[]},"f":{"id":"application-form","text":"Application","v":"16dc41cbc8c00e77"},"id":"77ee8815-2c3a-4bb5-abd9-90541a545a24","inheritedLocks":[null,null],"locks":[],"meta":{},"modified":{"at":"2026-01-08T11:30:33+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"p":"apps","previous":{"v":"7a09f5c41b7dd910"},"stamps":[],"t":1767871833680,"v":"3ee67246f6da5d2d"},{"id":"5cff2cfd-1083-47f1-acc2-46e6440304cc","v":"70ef7c4dc633635e","p":"apps","f":{"id":"application-form","v":"e6c4e4126877157e","text":"Application"},"data":{"name":"Firmen Vorstellung","label":"","description":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"related":[],"searchableForms":[],"searchFilters":[],"dialogForms":[],"controls":[],"designs":[],"changes":[]},"locks":[],"created":{"at":"2019-07-09T13:31:43+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2019-07-09T13:31:43+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1721196328163,"ct":1721196328163,"a_depth":1,"a":["apps"],"a_forms":["folder"],"inheritedLocks":[null,null],"stamps":[],"previous":{"v":"e15183d9317332d6","f":{"id":"application-form","v":"bf5e1ea238368934","text":"Application"}},"meta":{"modified":{"at":"2024-07-17T06:05:28+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}},"dts":1593507154627},{"id":"b0eb4a71-010b-4d65-b79b-bb984a57c10f","v":"a6ce10ff1c5fec11","previous":{"v":"ef0ceb9e82d63678"},"p":"apps","f":{"id":"application-form","v":"e6c4e4126877157e","text":"Application"},"data":{"name":"Wissen","label":"","description":"","namedIcon":"fa fa-file-alt","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"related":[],"searchableForms":[{"id":"d6f1cc99-f34e-4cb8-99b3-11f917485c25","v":"9aa11ccef341ccbb","text":"Seite"},{"id":"24523534-125d-4ebe-9a83-bd7fed39ff92","v":"3a968bbb189b6035","text":"Ordner"}],"searchFilters":[{"id":"30f248ac-4a31-42a5-a9c9-b103ea850acc","v":"initial","text":"Wissen"}],"dialogForms":[{"id":"d6f1cc99-f34e-4cb8-99b3-11f917485c25","v":"d5ad9530c7dc030e","text":"Seite"}],"controls":[],"designs":[{"id":"1cc4b977-c14d-4587-af47-d6ac230f60b3","v":"initial","text":"Bizpin Fallback Designs"}],"changes":[]},"locks":[],"created":{"at":"2020-09-02T08:32:20+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2026-01-12T14:46:28+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":"","impersonatedBy":"","from":"","client":"server"},"t":1768229188366,"ct":1721196328197,"a_depth":1,"a":["apps"],"a_forms":["folder"],"inheritedLocks":[null,null],"stamps":[]},{"id":"c9b12874-99d0-40e8-86cc-c3fe0477a15a","v":"f33aba566bbf8baa","p":"apps","f":{"id":"application-form","v":"e6c4e4126877157e","text":"Application"},"data":{"name":"Benachrichtigungen","label":"","description":"","namedIcon":"fas fa-bell","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"related":[],"searchableForms":[],"searchFilters":[],"dialogForms":[],"controls":[],"designs":[],"changes":[{}]},"locks":[],"created":{"at":"2018-12-03T13:31:53+00:00","by":"c5ed555f-cc11-463b-960b-0a60b3118e69","from":"","client":"server"},"modified":{"at":"2021-08-03T11:07:19+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1721196328128,"ct":1721196328128,"a_depth":1,"a":["apps"],"a_forms":["folder"],"inheritedLocks":[null,null],"stamps":[],"previous":{"v":"0d2a39a5aeb20f3e","f":{"id":"application-form","v":"494d7694e82e9921","text":"Application"}},"meta":{"modified":{"at":"2024-07-17T06:05:28+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}},"dts":1737111143549},{"id":"cf914a7f-ff5f-4598-80f1-63c9129e0a71","v":"fa2dd3e4493e419a","p":"apps","f":{"id":"application-form","v":"e6c4e4126877157e","text":"Application"},"data":{"name":"Knowledge Base","label":"","description":"Wiki","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"related":[],"searchableForms":[{"id":"cb2adf77-7636-41a7-9a16-1610b06fa91e","v":"f879886138717b72","text":"Page"}],"searchFilters":[],"dialogForms":[],"controls":[],"designs":[],"changes":[]},"locks":[],"created":{"at":"2021-07-07T11:16:50+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","from":"","client":"server"},"modified":{"at":"2023-03-17T13:27:33+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1721196328171,"ct":1721196328171,"a_depth":1,"a":["apps"],"a_forms":["folder"],"inheritedLocks":[null,null],"stamps":[],"previous":{"v":"3ae199689d8c5b75","f":{"id":"application-form","v":"6dea3f1e900f307b","text":"Application"}},"meta":{"modified":{"at":"2024-07-17T06:05:28+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}},"dts":1636118306611},{"a":["apps"],"a_depth":1,"a_forms":["folder"],"created":{"at":"2019-06-05T12:08:17+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","client":"server","from":""},"ct":1721196328193,"data":{"changes":[],"controls":[],"description":"","designs":[{"id":"1cc4b977-c14d-4587-af47-d6ac230f60b3","text":"Bizpin Fallback Designs","v":"initial"}],"dialogForms":[{"id":"8dbe21a7-7642-4884-986b-a119c6498bd3","text":"Protokoll","v":"4bf56225434a21a2"}],"icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"label":"","name":"Protokolle","namedIcon":"fa fa-comments-alt","namedIconColor":"","related":[],"searchFilters":[],"searchableForms":[{"id":"8dbe21a7-7642-4884-986b-a119c6498bd3","text":"Protokoll","v":"cd6729303359a97f"},{"id":"954212d9-9cc7-4356-82e3-a80cf745da4d","text":"Protokoll Gruppe","v":"a8d7221bbbd41a2e"}]},"f":{"id":"application-form","text":"Application","v":"e6c4e4126877157e"},"id":"91a90288-37bc-4f86-be38-4283833717d2","inheritedLocks":[null,null],"locks":[],"modified":{"at":"2025-09-19T10:23:50+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"apps","previous":{"v":"c8d61f9c168de473"},"stamps":[],"t":1758277430541,"v":"a65fde3ae6d3dcb2"},{"a":["apps"],"a_depth":1,"a_forms":["folder"],"created":{"at":"2017-09-15T10:29:31+02:00","by":"","client":"import","from":""},"ct":1767875783144,"data":{"changes":[],"controls":[],"description":"","designs":[{"id":"1cc4b977-c14d-4587-af47-d6ac230f60b3","text":"Fallback Designs Bizpin","v":"87574c37fe2dfd86"}],"dialogForms":[],"icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"label":"","name":"Unternehmen","namedIcon":"fas fa-building","namedIconColor":"","related":[],"searchFilters":[],"searchableForms":[]},"f":{"id":"application-form","text":"Application","v":"16dc41cbc8c00e77"},"id":"8f8c9ed7-a7ed-4150-b162-92d6f19a05b0","inheritedLocks":[null,null],"locks":[],"meta":{},"modified":{"at":"2026-01-08T12:36:36+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"p":"apps","previous":{"v":"b1afddae43e9fff5"},"stamps":[],"t":1767875796769,"v":"133b82913dda9a8b"},{"a":["apps"],"a_depth":1,"a_forms":["folder"],"created":{"at":"2023-10-09T14:35:10+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1721196328197,"data":{"changes":[],"controls":[],"description":"Verzeichnisse der Tierkliniken","designs":[{"id":"1cc4b977-c14d-4587-af47-d6ac230f60b3","text":"Bizpin Fallback Designs","v":"initial"}],"dialogForms":[],"icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"label":"","name":"Verzeichnisse","namedIcon":"far fa-folder-tree","namedIconColor":"","related":[],"searchFilters":[],"searchableForms":[{"id":"da7fd443-da96-4fa3-83d9-bdbb188f09f1","text":"Futtermittel","v":"74702085ef4243e7"},{"id":"69e7c51e-ba71-4a0e-9134-15a020100648","text":"Externer Telefonverzeichniseintrag","v":"01bbeeec929802fc"},{"id":"90bcd87b-ca52-4533-9a9e-dff73b31c2fc","text":"Futtermittel","v":"6743d580b151eb75"},{"id":"e4af0e46-8a46-4741-935d-13e29befd300","text":"Medikament","v":"1ef2b32225e733e3"},{"id":"38aab2e1-ee5c-4fc2-90e9-962b4161ac22","text":"Medikament","v":"0fa5a3c8bfc55fdb"},{"id":"6845a5ba-141b-4b6b-a14a-7b9854c5bb0e","text":"Medizinprodukt","v":"04f1c6da6a4e9287"},{"id":"7894afb7-cbf3-4c0d-96d7-8c48efc1e227","text":"Verarbeitungstätigkeit","v":"89e768ea12c1828f"},{"id":"976f1ac4-4831-4924-8b5a-c7241d9ffe31","text":"Zugeordnete Mitarbeiter","v":"ad271f86afc7b89d"},{"id":"08c34da9-1d5d-4b91-a9e9-a9147d7dec6b","text":"Desinfektionsmittel","v":"7e4d6f628929908b"},{"id":"219525e1-3d7e-4e00-93df-7a751c36195a","text":"Interner Telefonverzeichniseintrag","v":"d4ce4087d1462f9e"},{"id":"e90e5e3c-3eac-4544-8be0-57dea64e6f56","text":"Vertrag","v":"d912755c22a1ffc1"}]},"f":{"id":"application-form","text":"Application","v":"e6c4e4126877157e"},"id":"83c76376-420e-4231-9275-d0fe2ab47c32","inheritedLocks":[null,null],"locks":[],"modified":{"at":"2025-09-19T10:30:39+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"apps","previous":{"v":"b6abbc43c8e303c8"},"stamps":[],"t":1758277839804,"v":"2aea7ad56a72552e"},{"a":["apps"],"a_depth":1,"a_forms":["folder"],"created":{"at":"2020-09-04T08:31:26+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1721196328123,"data":{"changes":[],"controls":[],"description":"","designs":[{"id":"1cc4b977-c14d-4587-af47-d6ac230f60b3","text":"Bizpin Fallback Designs","v":"initial"}],"dialogForms":[{"id":"e24202d4-aa6f-4ea9-933c-5c1be7e38556","text":"Abrechnung","v":"da28cd5694b8db62"},{"id":"8d1804b0-c5c6-4acf-a15f-1b02872e792e","text":"Leistung","v":"d94e5e3ba922f9aa"},{"id":"ea3fb00c-4b3e-44ed-8bfb-7dce7f8a8f4c","text":"Angebot","v":"e858f7c3f1fdbcdc"},{"id":"ccf254f6-4115-40fb-8b32-5cf86cc04231","text":"Produkt","v":"392787ac2618ccdc"},{"id":"6c32dee9-2d3a-49d8-8b55-0ad9315f898c","text":"Projekt","v":"342b9f5767e4c4a9"},{"id":"d48baecb-5aa1-4165-bb40-4e4a57e0cb12","text":"Textblock","v":"8f6acf7b7c5534ad"},{"id":"a40633b4-c769-4457-a267-830738d4b549","text":"Position (Rechnung)","v":"f3d18c66c9a3c8b1"},{"id":"651d8603-6d29-4534-be59-4449387e857c","text":"Abzurechnende Position","v":"affca48e8044e3ee"}],"icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"label":"Fakturierung","name":"B/Core: Fakturierung","namedIcon":"fa fa-money-check","namedIconColor":"","related":[],"searchFilters":[],"searchableForms":[]},"f":{"id":"application-form","text":"Application","v":"e6c4e4126877157e"},"id":"0924db0f-7095-4b51-8966-bad1e45d68ec","inheritedLocks":[null,null],"locks":[],"modified":{"at":"2026-03-05T10:44:10+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"p":"apps","previous":{"v":"4b3d4e924772bc4b"},"stamps":[],"t":1772707450938,"v":"b77d75a1b15c8241"},{"a":["apps"],"a_depth":1,"a_forms":["folder"],"created":{"at":"2019-09-20T08:59:30+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","client":"server","from":""},"ct":1721196328179,"data":{"changes":[],"controls":[],"description":"","designs":[],"dialogForms":[],"icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"label":"","name":"xPersönliches Dashboard (reworked, but never used)","namedIcon":"fas fa-user-circle","namedIconColor":"","related":[],"searchFilters":[],"searchableForms":[]},"f":{"id":"application-form","text":"Application","v":"e6c4e4126877157e"},"id":"8fa52498-fa07-4bad-87b3-5c8df671aca4","inheritedLocks":[null,null],"locks":[],"modified":{"at":"2025-09-04T08:15:33+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"apps","previous":{"v":"05d667a8a29927ff"},"stamps":[],"t":1756973733206,"v":"0cc7dd67bf994b77"},{"a":["apps"],"a_depth":1,"a_forms":["folder"],"created":{"at":"2018-11-29T13:57:49+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","client":"server","from":""},"ct":1721196328175,"data":{"changes":[],"controls":[],"description":"","designs":[],"dialogForms":[],"icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"label":"","name":"xPersönliches Dashboard","namedIcon":"fas fa-user-circle","namedIconColor":"","related":[],"searchFilters":[],"searchableForms":[]},"f":{"id":"application-form","text":"Application","v":"e6c4e4126877157e"},"id":"43f84041-0fd7-4ccb-b7b5-7a38f89ada37","inheritedLocks":[null,null],"locks":[],"modified":{"at":"2025-09-04T08:15:29+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"apps","previous":{"v":"68cddd19a9849418"},"stamps":[],"t":1756973729356,"v":"179dc80744a0f666"},{"a":["apps"],"a_depth":1,"a_forms":["folder"],"cloneOf":{"id":"ac9bae39-01ed-4684-b320-44da554ae085","text":"[App Template]","v":"ad3f8a0084adc076"},"created":{"at":"2025-03-18T15:52:25+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1742313145901,"data":{"changes":[],"controls":[],"description":"Mit Wartungsplanung","designs":[{"id":"1cc4b977-c14d-4587-af47-d6ac230f60b3","text":"Bizpin Fallback Designs","v":"initial"},{"id":"02132d06-c73b-4101-bde0-2fe98224a35a","text":"KeepTrack Fallback Design","v":"initial"}],"dialogForms":[],"icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"label":"","name":"KeepTrack 2.0","namedIcon":"","namedIconColor":"","related":[],"searchFilters":[],"searchableForms":[]},"f":{"id":"application-form","text":"Application","v":"e6c4e4126877157e"},"id":"af6c380d-2ab5-409a-802f-46dba2b426e3","inheritedLocks":[null,null],"locks":[],"modified":{"at":"2025-11-11T10:41:07+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"ac9bae39-01ed-4684-b320-44da554ae085","text":"[App Template]","v":"ad3f8a0084adc076"},"p":"apps","previous":{"v":"4e2e5c933e75337b"},"stamps":[],"t":1762857667938,"v":"2fe1a2eed02483bd"},{"a":["apps"],"a_depth":1,"a_forms":["folder"],"created":{"at":"2020-05-08T08:52:35+00:00","backedBy":null,"by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":null},"ct":1721196328197,"data":{"changes":[],"controls":[],"description":"","designs":[{"id":"1cc4b977-c14d-4587-af47-d6ac230f60b3","text":"Bizpin Fallback Designs","v":"initial"}],"dialogForms":[],"icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"label":"","name":"Wiedervorlage","namedIcon":"","namedIconColor":"","related":[],"searchFilters":[],"searchableForms":[]},"f":{"id":"application-form","text":"Application","v":"e6c4e4126877157e"},"id":"8884dd6d-4320-4de2-91fe-6777ecfebec9","inheritedLocks":[null,null],"locks":[],"modified":{"at":"2025-09-19T10:31:10+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"apps","previous":{"v":"b9848abb8e0e1d03"},"stamps":[],"t":1758277870922,"v":"03a07ed624cbe01c"},{"a":["apps"],"a_depth":1,"a_forms":["folder"],"created":{"at":"2019-09-13T09:20:41+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","client":"server","from":""},"ct":1721196328200,"data":{"changes":[],"controls":[],"description":"","designs":[{"id":"9ee77d5e-cff4-42a8-a86e-447a18bbceba","text":"Fallback Design","v":"initial"},{"id":"1cc4b977-c14d-4587-af47-d6ac230f60b3","text":"Bizpin Fallback Designs","v":"initial"}],"dialogForms":[{"id":"f9279010-1935-4139-abbb-82d928aa09dc","text":"Erfasste Zeit","v":"8f7f2a54b77795e6"},{"id":"32db2e83-2e88-4162-b680-698423aef2c3","text":"Arbeitszeit","v":"81d4be3f632aa424"}],"icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"label":"","name":"Zeiterfassung","namedIcon":"far fa-stopwatch","namedIconColor":"","related":[],"searchFilters":[],"searchableForms":[]},"f":{"id":"application-form","text":"Application","v":"e6c4e4126877157e"},"id":"0c440c7a-219d-4465-9cbe-2d0eff6ec7ad","inheritedLocks":[null,null],"locks":[],"modified":{"at":"2025-09-19T10:32:03+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"apps","previous":{"v":"37708c9468eda8e2"},"stamps":[],"t":1758277923690,"v":"3a9c80be82b23e79"},{"a":["apps"],"a_depth":1,"a_forms":["folder"],"created":{"at":"2017-09-15T10:29:31+02:00","by":"","client":"import","from":""},"ct":1721196328174,"data":{"changes":[{"id":"33b1420a-9193-4f3c-a7c2-1d28ac0972eb","text":"Neuigkeit","v":"initial"},{"id":"2efe97bd-075a-4a51-aaa2-709e1b2714d2","text":"Bearbeiten","v":"initial"},{"id":"0777c4a2-dc49-4f4b-9363-2c3f17674e8c","text":"Editor-Größe","v":"initial"}],"controls":[],"description":"","designs":[{"id":"1cc4b977-c14d-4587-af47-d6ac230f60b3","text":"Bizpin Fallback Designs","v":"initial"}],"dialogForms":[{"id":"86966584-6ee3-4351-8e6e-ff6e695b970a","text":"News","v":"dc484ffebe0de21e"}],"icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"label":"","name":"News","namedIcon":"fas fa-newspaper","namedIconColor":"","related":[],"searchFilters":[],"searchableForms":[{"id":"86966584-6ee3-4351-8e6e-ff6e695b970a","text":"News","v":"af2e47ca3a448e93"}]},"f":{"id":"application-form","text":"Application","v":"e6c4e4126877157e"},"id":"b91e3079-75ae-49cd-981b-3053bf47208c","inheritedLocks":[null,null],"locks":[],"modified":{"at":"2025-09-19T10:22:03+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"apps","previous":{"v":"579aea85c55c350a"},"stamps":[],"t":1758277323009,"v":"4cd98f0a42779d98"},{"a":["apps"],"a_depth":1,"a_forms":["folder"],"created":{"at":"2023-04-20T13:12:29+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1721196328175,"data":{"changes":[],"controls":[],"description":"","designs":[{"id":"1cc4b977-c14d-4587-af47-d6ac230f60b3","text":"Bizpin Fallback Designs","v":"initial"}],"dialogForms":[],"icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"label":"","name":"Personalverwaltung","namedIcon":"far fa-user-cog","namedIconColor":"","related":[],"searchFilters":[],"searchableForms":[{"id":"3090c06d-faea-41f6-a6ea-846b900faad5","text":"Personaldaten","v":"5922a35f538c4a09"},{"id":"4f3c48aa-8d12-4dfa-8a66-064d8a851a5b","text":"Personalordner","v":"87593775655e62df"},{"id":"b2030eae-0210-474c-bf24-9b5c6f0a0d3b","text":"Bewerberordner","v":"26be2f5cceea2270"},{"id":"764f746e-a836-4e9d-a770-1d8d5ccad49b","text":"Bewerbungsunterlage","v":"4ac6cc0a69557f01"}]},"f":{"id":"application-form","text":"Application","v":"e6c4e4126877157e"},"id":"a590ce5b-28fc-4f85-9049-d006e1b8f880","inheritedLocks":[null,null],"locks":[],"modified":{"at":"2025-09-19T10:22:11+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"apps","previous":{"v":"0ed3789a5c352f32"},"stamps":[],"t":1758277331358,"v":"923c5d9e97637408"},{"id":"d10eebac-6285-4412-8451-55d1bf2fc849","v":"e7f42e7d7cac222e","p":"apps","f":{"id":"application-form","v":"e6c4e4126877157e","text":"Application"},"data":{"name":"Charité - Nuklearmedizin","label":"","description":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"related":[],"searchableForms":[],"searchFilters":[],"dialogForms":[],"controls":[],"designs":[],"changes":[]},"locks":[],"created":{"at":"2019-01-31T15:06:45+00:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2019-01-31T15:06:45+00:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1721196328139,"ct":1721196328139,"a_depth":1,"a":["apps"],"a_forms":["folder"],"inheritedLocks":[null,null],"stamps":[],"previous":{"v":"initial","f":{"id":"application-form","v":"d5a80eb811cda264","text":"Application"}},"meta":{"modified":{"at":"2024-07-17T06:05:28+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}},"dts":1548949058672},{"a":["apps"],"a_depth":1,"a_forms":["folder"],"created":{"at":"2017-09-15T10:29:31+02:00","by":"","client":"import","from":""},"ct":1721196328175,"data":{"changes":[{"id":"6ac8124b-9d78-4573-92e4-cd60ec9d8437","text":"CORVID-19","v":"initial"},{"id":"61f12ecd-93f9-4916-8261-2d11da5e27bc","text":"Schlüssel und SSR","v":"initial"},{"id":"837e08f0-91c6-4d0d-98b8-39f410689db9","text":"Neue Felder","v":"initial"}],"controls":[],"description":"","designs":[{"id":"1cc4b977-c14d-4587-af47-d6ac230f60b3","text":"Bizpin Fallback Designs","v":"initial"}],"dialogForms":[{"id":"e35c0aed-fc11-4208-bb76-ce5aed2a2bc6","text":"Arbeitsunfähigkeitsbescheinigung","v":"b7c507f4cf4e231d"},{"id":"aead29b3-1293-413d-a70e-f1b2c68fa193","text":"Abmahnungen","v":"958889f6bd00c742"},{"id":"170f4396-463e-4f28-8b19-01d2bca2b14b","text":"Arbeitsvertrag","v":"1431e56ecc2c9a44"},{"id":"fbd71e49-5291-45f0-8edc-6a6830779afd","text":"Aus- und Weiterbildung","v":"initial"},{"id":"69f6deb6-fc05-471f-b60e-1a91653dfcf8","text":"Aushändigungen/Belehrungen/Arbeitsmittel","v":"initial"},{"id":"3c1a4c38-e244-4299-94c6-f8ca7ee4db7a","text":"Bescheinigungen","v":"initial"},{"id":"c72c2c54-599c-4756-87e9-de2726874b9c","text":"Betriebliche Altersversorgung/Versicherungen","v":"initial"},{"id":"aa40350f-b984-4539-821b-4c0b97e62d1c","text":"Beurteilungen","v":"initial"},{"id":"374d5754-a880-4ad6-8ba7-c5624204f158","text":"Bewerbungsunterlagen","v":"initial"},{"id":"1bd8882e-5919-40bc-92a8-09feac9f011c","text":"Entgelt","v":"initial"},{"id":"c19b3733-4cb8-48a4-80fa-b7ab9fe44217","text":"Firmen-PKW","v":"initial"},{"id":"ac16bc91-bbcf-41fc-9754-aaca03b34c41","text":"Funktionsbeschreibung","v":"42a7fc11a47e3bbb"},{"id":"874b00cc-5436-4d47-8ff3-ad26e6637bce","text":"Mitarbeitergespräch","v":"39691597b4a04cf5"},{"id":"2fdf2bd3-8a0a-4933-b808-f3eca82b03ea","text":"Mitarbeitergespräche","v":"initial"},{"id":"da18ed53-47e1-4d39-bc02-7e02ef1c22bc","text":"Personaldaten","v":"3e0b7213c2476f09"},{"id":"cc674381-1d0c-40ca-8113-80dcc639d337","text":"Sozialversicherungsunterlagen","v":"initial"},{"id":"0290954f-fe80-434b-aa59-e53d2371ee8e","text":"Unterweisung","v":"33e5454f5c64880b"},{"id":"2aaf26d1-7db3-4121-af75-bafe525d096a","text":"Vertrag","v":"d40314f6d6b3cffc"},{"id":"925e9bf5-2a2c-4f49-ad56-505d137e62ad","text":"Sonstiges","v":"8020981821828fb9"},{"id":"83e172ca-8e87-472b-901e-c32cdc99bb4a","text":"Persönliche Ereignisse","v":"initial"},{"id":"3090c06d-faea-41f6-a6ea-846b900faad5","text":"Personaldaten","v":"a9e581a46b4377b7"}],"icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"label":"","name":"Personalverwaltung: Mitarbeiter","namedIcon":"far fa-user-cog","namedIconColor":"","related":[],"searchFilters":[],"searchableForms":[{"id":"3090c06d-faea-41f6-a6ea-846b900faad5","text":"Personaldaten","v":"eef4b1ddd2b83238"}]},"f":{"id":"application-form","text":"Application","v":"e6c4e4126877157e"},"id":"c978f91a-22e9-434c-9ad0-c9781eeae198","inheritedLocks":[null,null],"locks":[],"modified":{"at":"2025-09-19T10:22:20+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"apps","previous":{"v":"5163cf865c064347"},"stamps":[],"t":1758277340961,"v":"fe91be3edb0acf51"},{"a":["apps"],"a_depth":1,"a_forms":["folder"],"created":{"at":"2018-09-12T08:41:05+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","client":"server","from":""},"ct":1721196328171,"data":{"changes":[],"controls":[],"description":"","designs":[{"id":"1cc4b977-c14d-4587-af47-d6ac230f60b3","text":"Bizpin Fallback Designs","v":"initial"}],"dialogForms":[],"icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"label":"","name":"Leitsätze","namedIcon":"fas fa-book-open","namedIconColor":"","related":[],"searchFilters":[],"searchableForms":[]},"f":{"id":"application-form","text":"Application","v":"e6c4e4126877157e"},"id":"e83af4c0-db7e-438f-bf78-60a14245d6d9","inheritedLocks":[null,null],"locks":[],"modified":{"at":"2025-09-19T10:18:26+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"apps","previous":{"v":"1d02590d9dcc023c"},"stamps":[],"t":1758277106873,"v":"7d6a7330e35054f9"},{"a":["apps"],"a_depth":1,"a_forms":["folder"],"created":{"at":"2019-02-19T08:54:34+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","client":"server","from":""},"ct":1721196328172,"data":{"changes":[],"controls":[],"description":"","designs":[{"id":"1cc4b977-c14d-4587-af47-d6ac230f60b3","text":"Bizpin Fallback Designs","v":"initial"}],"dialogForms":[],"icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"label":"","name":"Meetings","namedIcon":"far fa-video","namedIconColor":"","related":[],"searchFilters":[],"searchableForms":[]},"f":{"id":"application-form","text":"Application","v":"e6c4e4126877157e"},"id":"69555db0-1399-48c4-b87f-d8fa2f7b656f","inheritedLocks":[null,null],"locks":[],"modified":{"at":"2025-09-19T10:20:42+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"apps","previous":{"v":"fc6beb72e29bde1f"},"stamps":[],"t":1758277242507,"v":"01e7d1f153fb527f"},{"id":"13d49bff-7e17-4694-b28f-de734b9abd9b","v":"0e18dc8688226c89","p":"apps","f":{"id":"application-form","v":"e6c4e4126877157e","text":"Application"},"data":{"name":"Archiv","label":"","description":"Ordner mit Menü-Einträgen vom Unternehmens-Formular","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"related":[],"searchableForms":[],"searchFilters":[],"dialogForms":[],"controls":[],"designs":[],"changes":[]},"locks":[],"created":{"at":"2020-09-01T09:49:49+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-03-18T14:07:56+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1721196328105,"ct":1721196328105,"a_depth":1,"a":["apps"],"a_forms":["folder"],"inheritedLocks":[null,null],"stamps":[],"previous":{"v":"4ab349c74c36424e","f":{"id":"application-form","v":"446db432cfe8bb66","text":"Application"}},"meta":{"modified":{"at":"2024-07-17T06:05:28+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}},"dts":1598953790319},{"a":["apps"],"a_depth":1,"a_forms":["folder"],"created":{"at":"2021-10-01T09:50:28+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1768315066492,"data":{"changes":[],"controls":[],"description":"","designs":[{"id":"1cc4b977-c14d-4587-af47-d6ac230f60b3","text":"Fallback Designs Bizpin","v":"87574c37fe2dfd86"}],"dialogForms":[{"id":"43551782-1b7f-47ef-a694-9e9824c97091","text":"Label","v":"24afd47add0bfadf"}],"icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"label":"Labels","name":"B/Core: Labels","namedIcon":"fa fa-tag","namedIconColor":"","related":[],"searchFilters":[],"searchableForms":[]},"f":{"id":"application-form","text":"Application","v":"16dc41cbc8c00e77"},"id":"4a58cfdb-e1ef-40a2-8a89-57157ddda7d0","inheritedLocks":[null,null],"locks":[],"meta":{},"modified":{"at":"2026-01-13T14:47:05+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"p":"apps","previous":{"v":"a00738191f7b461c"},"stamps":[],"t":1768315625902,"v":"396929a3678af307"},{"id":"30363d01-3c4c-407b-861e-c0ef1ca6be75","v":"177698d8bcd03263","p":"apps","f":{"id":"application-form","v":"e6c4e4126877157e","text":"Application"},"data":{"name":"Design","label":"","description":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"related":[],"searchableForms":[],"searchFilters":[],"dialogForms":[],"controls":[],"designs":[],"changes":[]},"locks":[],"created":{"at":"2019-03-27T09:05:22+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2020-05-08T08:52:50+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1721196328156,"ct":1721196328156,"a_depth":1,"a":["apps"],"a_forms":["folder"],"inheritedLocks":[null,null],"stamps":[],"previous":{"v":"2bc90e2d1a25fa1c","f":{"id":"application-form","v":"7afdc5922f8d042f","text":"Application"}},"meta":{"modified":{"at":"2024-07-17T06:05:28+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}},"dts":1660918269331},{"a":["apps"],"a_depth":1,"a_forms":["folder"],"created":{"at":"2020-05-08T08:50:47+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":""},"ct":1721196328084,"data":{"changes":[],"controls":[],"description":"","designs":[{"id":"1cc4b977-c14d-4587-af47-d6ac230f60b3","text":"Bizpin Fallback Designs","v":"initial"}],"dialogForms":[{"id":"5d0ac040-1428-48bc-9b4f-28c69e098b3c","text":"Search","v":"initial"}],"icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"label":"","name":"Suche","namedIcon":"fa fa-search","namedIconColor":"","related":[],"searchFilters":[],"searchableForms":[]},"f":{"id":"application-form","text":"Application","v":"e6c4e4126877157e"},"id":"9302d29e-bf32-4350-a5fd-18b542d1b5db","inheritedLocks":[null,null],"locks":[],"modified":{"at":"2025-09-19T10:28:09+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"apps","previous":{"v":"8e63e14dd3890623"},"stamps":[],"t":1758277689932,"v":"0fa10c006792ad7f"},{"id":"21ba9d78-2545-4495-a24b-129f934de2f1","v":"1eab80444d15c258","p":"apps","f":{"id":"application-form","v":"e6c4e4126877157e","text":"Application"},"data":{"name":"Termine","label":"","description":"","namedIcon":"fas fa-thumbtack","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"related":[],"searchableForms":[],"searchFilters":[],"dialogForms":[],"controls":[],"designs":[],"changes":[]},"locks":[],"created":{"at":"2017-09-15T10:29:32+02:00","by":"","from":"","client":"import"},"modified":{"at":"2020-05-08T08:52:36+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1721196328196,"ct":1721196328196,"a_depth":1,"a":["apps"],"a_forms":["folder"],"inheritedLocks":[null,null],"stamps":[],"previous":{"v":"063e61f7457b18ec","f":{"id":"application-form","v":"7afdc5922f8d042f","text":"Application"}},"meta":{"modified":{"at":"2024-07-17T06:05:28+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}},"dts":1467644303014},{"id":"9c1db9f8-e61a-46ef-9fb2-ca409e980f45","v":"58f31c8016ff349e","p":"apps","f":{"id":"application-form","v":"e6c4e4126877157e","text":"Application"},"data":{"name":"CRM","label":"","description":"","namedIcon":"fas fa-handshake-alt","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"related":[],"searchableForms":[],"searchFilters":[],"dialogForms":[{"id":"075a7572-a80e-47ef-8b51-0c484b773e82","v":"55f5f92e28a0003c","text":"Kunden/Interessenten Daten"},{"id":"7705ef57-efa8-4add-8688-129142b9b1dd","v":"dde567c08cb1f983","text":"Kunden/Interessenten Daten.old"}],"controls":[],"designs":[],"changes":[]},"locks":[],"created":{"at":"2019-09-04T11:30:13+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2020-06-23T11:54:33+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1721196328151,"ct":1721196328151,"a_depth":1,"a":["apps"],"a_forms":["folder"],"inheritedLocks":[null,null],"stamps":[],"previous":{"v":"50a5bef7e8f33862","f":{"id":"application-form","v":"713ddb8f3bf7cfca","text":"Application"}},"meta":{"modified":{"at":"2024-07-17T06:05:28+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}},"dts":1593507154254},{"a":["apps"],"a_depth":1,"a_forms":["folder"],"created":{"at":"2024-03-18T15:13:23+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1721196328156,"data":{"changes":[],"controls":[],"description":"","designs":[{"id":"1cc4b977-c14d-4587-af47-d6ac230f60b3","text":"Bizpin Fallback Designs","v":"initial"}],"dialogForms":[],"icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"label":"Auswertungen","name":"Energieberater: Auswertungen","namedIcon":"far fa-chart-area","namedIconColor":"","related":[],"searchFilters":[],"searchableForms":[]},"f":{"id":"application-form","text":"Application","v":"e6c4e4126877157e"},"id":"bfeee3b0-ad25-4bba-a51c-01584d72c45a","inheritedLocks":[null,null],"locks":[],"modified":{"at":"2025-09-19T10:11:29+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"apps","previous":{"v":"abd3d7d2387b41aa"},"stamps":[],"t":1758276689008,"v":"7a399b58c070ff43"},{"id":"04632e3e-9132-4927-b91d-3c28d1afe3e9","v":"e3c9656461c5180e","p":"system","f":{"id":"folder","v":"60bfdadb874a9f10","text":"Folder"},"data":{"name":"Test Bench","description":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null}}},"locks":[],"created":{"at":"2018-08-07T12:18:27+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2018-08-07T12:18:27+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1719319448800,"ct":1719319448800,"a_depth":1,"a":["system"],"a_forms":["system-folder-form"],"inheritedLocks":[null,null],"stamps":[],"previous":{"v":"initial","f":{"id":"folder","v":"f1e4977dbee77607","text":"Folder"}},"meta":{"modified":{"at":"2024-06-25T14:44:08+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}},"dts":1719319448511},{"id":"fb23c419-a6bb-4f45-9f62-e79baa359f89","v":"fd72ecce7983bdc5","p":"apps","f":{"id":"application-form","v":"e6c4e4126877157e","text":"Application"},"data":{"name":"Prototyp: membra","label":"","description":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"related":[],"searchableForms":[],"searchFilters":[],"dialogForms":[],"controls":[],"designs":[],"changes":[]},"locks":[],"created":{"at":"2020-05-08T08:52:36+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2020-05-08T08:52:36+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1721196328193,"ct":1721196328193,"a_depth":1,"a":["apps"],"a_forms":["folder"],"inheritedLocks":[null,null],"stamps":[],"previous":{"v":"initial","f":{"id":"application-form","v":"7afdc5922f8d042f","text":"Application"}},"meta":{"modified":{"at":"2024-07-17T06:05:28+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}},"dts":1593507154631},{"a":["apps"],"a_depth":1,"a_forms":["folder"],"created":{"at":"2018-04-18T15:40:54+02:00","by":"","client":"server","from":""},"ct":1721196328170,"data":{"changes":[],"controls":[],"description":"","designs":[{"id":"1cc4b977-c14d-4587-af47-d6ac230f60b3","text":"Bizpin Fallback Designs","v":"initial"}],"dialogForms":[],"icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"label":"","name":"Hilfe","namedIcon":"fas fa-question-circle","namedIconColor":"","related":[],"searchFilters":[],"searchableForms":[]},"f":{"id":"application-form","text":"Application","v":"e6c4e4126877157e"},"id":"9e7fd821-5bd9-4314-a542-34431752f51f","inheritedLocks":[null,null],"locks":[],"modified":{"at":"2025-09-19T10:16:06+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"apps","previous":{"v":"3b5c05ec6db9673f"},"stamps":[],"t":1758276966602,"v":"d48c12d3bb4c5f91"},{"a":["apps"],"a_depth":1,"a_forms":["folder"],"created":{"at":"2020-05-08T08:51:37+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":""},"ct":1721196327555,"data":{"changes":[{"id":"b6f2eebe-d6d5-43d8-ac22-aa6414d98079","text":"Kalender","v":"initial"},{"id":"d6a24aa3-705a-4a9a-bba8-5bfb4453c072","text":"Größe","v":"initial"}],"controls":[],"description":"","designs":[{"id":"1cc4b977-c14d-4587-af47-d6ac230f60b3","text":"Bizpin Fallback Designs","v":"initial"}],"dialogForms":[],"icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"label":"","name":"Ressourcenplaner","namedIcon":"far fa-calendar-alt","namedIconColor":"","related":[],"searchFilters":[],"searchableForms":[]},"f":{"id":"application-form","text":"Application","v":"e6c4e4126877157e"},"id":"49babc91-9123-4d92-b850-ce4d10f0e1b4","inheritedLocks":[null,null],"locks":[],"modified":{"at":"2025-09-19T10:25:36+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"apps","previous":{"v":"e7421c0d90d7b8bf"},"stamps":[],"t":1758277536943,"v":"7a1c019cd1a370f7"},{"id":"02c3f939-f382-4e27-b3d4-bea5fdd6e092","v":"09f2533daf072795","p":"apps","f":{"id":"application-form","v":"e6c4e4126877157e","text":"Application"},"data":{"name":"Experiment: Native File System API","label":"","description":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"related":[],"searchableForms":[],"searchFilters":[],"dialogForms":[],"controls":[],"designs":[],"changes":[]},"locks":[],"created":{"at":"2020-09-18T14:43:25+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2020-09-18T14:43:45+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1721196328157,"ct":1721196328157,"a_depth":1,"a":["apps"],"a_forms":["folder"],"inheritedLocks":[null,null],"stamps":[],"previous":{"v":"b4e6df1169ca5386","f":{"id":"application-form","v":"3f37198777739577","text":"Application"}},"meta":{"modified":{"at":"2024-07-17T06:05:28+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}},"dts":1600440205708},{"a":["apps"],"a_depth":1,"a_forms":["folder"],"created":{"at":"2020-05-08T08:51:32+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":""},"ct":1721196328175,"data":{"changes":[{"id":"02fc85f5-af88-47ad-9b42-a4586abcf0dc","text":"Aufgaben","v":"initial"},{"id":"f936bad8-9fa7-4c21-b2cf-c3ca2c7a07ce","text":"Überfällige/Meine Aufgaben","v":"initial"},{"id":"163f3365-1b56-4f29-a5df-82efa7194e76","text":"Benachrichtigungen","v":"initial"},{"id":"19f474da-fdb6-44bd-ab75-db3ce322511d","text":"Überfällige Aufgaben","v":"initial"}],"controls":[],"description":"","designs":[{"id":"1cc4b977-c14d-4587-af47-d6ac230f60b3","text":"Bizpin Fallback Designs","v":"initial"}],"dialogForms":[{"id":"90877d25-bbae-421e-9ea7-0631dcbf11c2","text":"Aufgabe","v":"314e110686473d68"},{"id":"544d11b1-a156-4568-aeb3-2a60b2b57807","text":"Aufgabe","v":"7ef0dd2be64c963b"},{"id":"4e338459-2110-4799-8f04-1ead4cc647d0","text":"Aufgaben","v":"3046b3d758ecec8b"},{"id":"65abdd36-c20f-4742-8744-3995211cdd2f","text":"Aufgaben","v":"50b0804a470db09b"}],"icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"label":"Persönliches Dashboard","name":"Dashboard (Mobile/Performance optimized)","namedIcon":"fa fa-user-circle","namedIconColor":"","related":[],"searchFilters":[],"searchableForms":[]},"f":{"id":"application-form","text":"Application","v":"e6c4e4126877157e"},"id":"599db2de-4e07-4722-98bd-7f42d498b352","inheritedLocks":[null,null],"locks":[],"modified":{"at":"2025-09-19T10:08:41+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"apps","previous":{"v":"15decfe68b127718"},"stamps":[],"t":1758276521480,"v":"5eaf31415e487cdd"},{"a":["apps"],"a_depth":1,"a_forms":["folder"],"created":{"at":"2020-09-16T13:21:34+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1721196328124,"data":{"changes":[],"controls":[],"description":"","designs":[{"id":"1cc4b977-c14d-4587-af47-d6ac230f60b3","text":"Bizpin Fallback Designs","v":"initial"}],"dialogForms":[],"icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"label":"","name":"B/Core: Einstellungen","namedIcon":"fa fa-cog","namedIconColor":"","related":[],"searchFilters":[],"searchableForms":[]},"f":{"id":"application-form","text":"Application","v":"e6c4e4126877157e"},"id":"a4f3e35e-f945-4c8b-a7a4-81e987585974","inheritedLocks":[null,null],"locks":[],"modified":{"at":"2025-09-19T10:02:22+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"apps","previous":{"v":"c8a6a5b513aa6c97"},"stamps":[],"t":1758276142457,"v":"ee825f395ba251d2"},{"id":"90340217-c9b1-46fe-9b56-163953318522","v":"fd4516fdf97081a6","p":"apps","f":{"id":"application-form","v":"e6c4e4126877157e","text":"Application"},"data":{"name":"Merge View","label":"","description":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"related":[],"searchableForms":[],"searchFilters":[],"dialogForms":[],"controls":[],"designs":[],"changes":[]},"locks":[],"created":{"at":"2017-12-22T10:18:56+01:00","by":"","from":"","client":"f850c977-4f2e-4f6c-8389-ad1230848f0e"},"modified":{"at":"2020-05-08T08:52:50+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1721196328174,"ct":1721196328174,"a_depth":1,"a":["apps"],"a_forms":["folder"],"inheritedLocks":[null,null],"stamps":[],"previous":{"v":"0db8a62d474c420a","f":{"id":"application-form","v":"7afdc5922f8d042f","text":"Application"}},"meta":{"modified":{"at":"2024-07-17T06:05:28+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}},"dts":1540904355554},{"id":"bafa23ba-a0dc-406d-8854-77ea31b4ea4b","v":"05fe730baf8c84f1","p":"apps","f":{"id":"application-form","v":"e6c4e4126877157e","text":"Application"},"data":{"name":"Business Rules","label":"","description":"","namedIcon":"fa fa-abacus","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"related":[],"searchableForms":[],"searchFilters":[],"dialogForms":[],"controls":[],"designs":[],"changes":[]},"locks":[],"created":{"at":"2019-03-13T14:55:58+00:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","from":"","client":"server"},"modified":{"at":"2022-08-15T13:34:27+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1721196327554,"ct":1721196327554,"a_depth":1,"a":["apps"],"a_forms":["folder"],"inheritedLocks":[null,null],"stamps":[],"previous":{"v":"fef3dc775f1b961b","f":{"id":"application-form","v":"29335d8d5cd3c1a1","text":"Application"}},"meta":{"modified":{"at":"2024-07-17T06:05:27+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}},"dts":1731921989390},{"a":["apps"],"a_depth":1,"a_forms":["folder"],"created":{"at":"2020-12-14T10:29:16+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1721196328122,"data":{"changes":[],"controls":[],"description":"","designs":[{"id":"1cc4b977-c14d-4587-af47-d6ac230f60b3","text":"Fallback Designs Bizpin","v":"87574c37fe2dfd86"}],"dialogForms":[{"id":"5a5c8705-67dd-4bd9-b74d-a4d48aef5e07","text":"Anruf","v":"15a7b84fa1ec9abe"}],"icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"label":"3CX","name":"B/Core: 3CX","namedIcon":"fa fa-phone","namedIconColor":"","related":[],"searchFilters":[],"searchableForms":[]},"f":{"id":"application-form","text":"Application","v":"e6c4e4126877157e"},"id":"9e6696fa-9328-4499-9fcd-ff1c176d5615","inheritedLocks":[null,null],"locks":[],"meta":{},"modified":{"at":"2026-01-13T15:26:35+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"p":"apps","previous":{"v":"d490ea20aa519f07"},"stamps":[],"t":1768317995674,"v":"23d731b82ec0a40f"},{"id":"e4a62254-c6ab-4d0d-a9ae-81934093f6e2","v":"f6337359600ca792","p":"apps","f":{"id":"application-form","v":"e6c4e4126877157e","text":"Application"},"data":{"name":"Developer","label":"","description":"","namedIcon":"fa fa-code","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"related":[],"searchableForms":[],"searchFilters":[],"dialogForms":[],"controls":[],"designs":[],"changes":[]},"locks":[],"created":{"at":"2018-04-18T15:37:55+02:00","by":"","from":"","client":"server"},"modified":{"at":"2020-09-03T07:37:53+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1721196328156,"ct":1721196328156,"a_depth":1,"a":["apps"],"a_forms":["folder"],"inheritedLocks":[null,null],"stamps":[],"previous":{"v":"66d1158338e4525a","f":{"id":"application-form","v":"7afdc5922f8d042f","text":"Application"}},"meta":{"modified":{"at":"2024-07-17T06:05:28+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}},"dts":1732110798927},{"id":"7ba1fc90-8094-44ce-8f5a-54a0da3999ed","v":"b6d569475aac5fe2","p":"apps","f":{"id":"application-form","v":"e6c4e4126877157e","text":"Application"},"data":{"name":"Kundenmaschinen","label":"","description":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"related":[],"searchableForms":[],"searchFilters":[],"dialogForms":[],"controls":[],"designs":[],"changes":[]},"locks":[],"created":{"at":"2019-01-30T16:07:25+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2019-01-30T16:07:25+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1721196328171,"ct":1721196328171,"a_depth":1,"a":["apps"],"a_forms":["folder"],"inheritedLocks":[null,null],"stamps":[],"previous":{"v":"initial","f":{"id":"application-form","v":"d5a80eb811cda264","text":"Application"}},"meta":{"modified":{"at":"2024-07-17T06:05:28+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}},"dts":1610448758884},{"id":"41360031-739e-4d68-802b-6af6d89247a3","v":"d1dce194cc56c463","p":"apps","f":{"id":"application-form","v":"e6c4e4126877157e","text":"Application"},"data":{"name":"Prototyp: Prozesse","label":"","description":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"related":[],"searchableForms":[],"searchFilters":[],"dialogForms":[],"controls":[],"designs":[],"changes":[]},"locks":[],"created":{"at":"2021-04-15T07:26:53+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-04-15T07:27:47+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1721196328193,"ct":1721196328193,"a_depth":1,"a":["apps"],"a_forms":["folder"],"inheritedLocks":[null,null],"stamps":[],"previous":{"v":"78082a69f5e92a74","f":{"id":"application-form","v":"3f37198777739577","text":"Application"}},"meta":{"modified":{"at":"2024-07-17T06:05:28+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}},"dts":1618471613952},{"a":["apps"],"a_depth":1,"a_forms":["folder"],"created":{"at":"2023-06-16T10:12:46+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1721196328169,"data":{"changes":[],"controls":[],"description":"","designs":[{"id":"1cc4b977-c14d-4587-af47-d6ac230f60b3","text":"Bizpin Fallback Designs","v":"initial"}],"dialogForms":[],"icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"label":"","name":"Gefährdungsbeurteilung","namedIcon":"","namedIconColor":"","related":[],"searchFilters":[],"searchableForms":[]},"f":{"id":"application-form","text":"Application","v":"e6c4e4126877157e"},"id":"075a56a2-3d34-402e-82ef-bd1fc7df456a","inheritedLocks":[null,null],"locks":[],"modified":{"at":"2025-09-19T10:14:39+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"apps","previous":{"v":"5ff4bcf2ee13cbc5"},"stamps":[],"t":1758276879548,"v":"7d39a35622c92a8a"},{"id":"90a38bb1-5683-49d1-b519-203876cc6967","v":"3a6b68511a2dee80","p":"apps","f":{"id":"application-form","v":"e6c4e4126877157e","text":"Application"},"data":{"name":"Board with Folders","label":"","description":"A quick Prototype for Customer \"Raumzeitlast\"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"related":[],"searchableForms":[{"id":"27a5cf6e-22f8-44d2-8107-400b27382690","v":"6ac52f68c142f714","text":"Projekt"}],"searchFilters":[],"dialogForms":[],"controls":[],"designs":[],"changes":[]},"locks":[],"created":{"at":"2024-01-19T13:34:12+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-01-23T12:13:16+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1721196328132,"ct":1721196328132,"a_depth":1,"a":["apps"],"a_forms":["folder"],"inheritedLocks":[null,null],"stamps":[],"previous":{"v":"a74bba05aefcd5b0","f":{"id":"application-form","v":"6dea3f1e900f307b","text":"Application"}},"meta":{"modified":{"at":"2024-07-17T06:05:28+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}},"dts":1705673326072},{"a":["apps"],"a_depth":1,"a_forms":["folder"],"cloneOf":{"id":"089481c4-a42f-4a98-9bc9-12e9f1131f4b","text":"Boards","v":"f741ee205d8df226"},"created":{"at":"2026-03-23T13:30:09+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"ct":1774272609714,"data":{"changes":[],"controls":[],"description":"","designs":[{"id":"1cc4b977-c14d-4587-af47-d6ac230f60b3","text":"Bizpin Fallback Designs","v":"initial"},{"id":"c5dc85a6-3516-49d2-bf7f-810f2a75a141","text":"Fallback Designs","v":"initial"}],"dialogForms":[],"icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"label":"","name":"Boards","namedIcon":"fa fa-columns","namedIconColor":"","related":[],"searchFilters":[],"searchableForms":[]},"f":{"id":"application-form","text":"Application","v":"e6c4e4126877157e"},"id":"e1bc93d1-b6c6-4711-a98f-675371c40326","inheritedLocks":[null,null],"locks":[],"modified":{"at":"2026-03-24T13:20:01+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"089481c4-a42f-4a98-9bc9-12e9f1131f4b","text":"Boards","v":"f741ee205d8df226"},"p":"apps","previous":{"v":"e200bf9817da6af7"},"stamps":[],"t":1774358401264,"v":"e9bcf29ba3f81c46"},{"a":["apps"],"a_depth":1,"a_forms":["folder"],"cloneOf":{"id":"ac9bae39-01ed-4684-b320-44da554ae085","text":"[Bizpin App Template]","v":"ffe6dc0d762dfff8"},"created":{"at":"2026-01-08T11:43:12+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"ct":1767872592440,"data":{"changes":[],"controls":[],"description":"Aeppic Component Tester","designs":[{"id":"1cc4b977-c14d-4587-af47-d6ac230f60b3","text":"Bizpin Fallback Designs","v":"initial"}],"dialogForms":[],"icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"label":"","name":"Epic Pages ","namedIcon":"","namedIconColor":"","related":[],"searchFilters":[],"searchableForms":[]},"f":{"id":"application-form","text":"Application","v":"e6c4e4126877157e"},"id":"0af4f8a7-729e-4318-8f82-7e976555004e","inheritedLocks":[null,null],"locks":[],"modified":{"at":"2026-01-08T11:44:32+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"ac9bae39-01ed-4684-b320-44da554ae085","text":"[Bizpin App Template]","v":"ffe6dc0d762dfff8"},"p":"apps","previous":{"v":"88fced03e011634f"},"stamps":[],"t":1767872672924,"v":"0faa2c3c4d13b7c6"},{"a":["apps"],"a_depth":1,"a_forms":["folder"],"created":{"at":"2020-05-08T08:52:45+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":""},"ct":1721196328156,"data":{"changes":[{"id":"c25d558d-18b0-446f-929d-ebf12cadc2c4","text":"Anzeige in Stammdaten","v":"initial"},{"id":"f54baf49-0315-48d5-9369-e1f990cd9793","text":"Download und Status","v":"initial"}],"controls":[],"description":"Allgemeine Funktionsweise\n\nDie App Apps/Docx Template Processor stellt folgende Funktionalität bereit:\n\nIn einer normalen Word Datei (docx-Datei) können spezielle Wörter, sogenannte Tokens, geschrieben werden. Diese werden an einer gewissen Stelle im Prozess von einem Service durch bereitgestellte Daten ersetzt.\n\nSind die Token falsch geschrieben oder es gibt keine bereitgestellte Daten für ein Token, dann wird dieser NICHT ersetzt/entfernt.\n\nDas Document hat folgende Felder\n\nname - Titel der Vorlage\ntemplate - Word Vorlage (.docx) - wird vom Nutzer hinzugefügt, die Vorlage.\ngenerated - Die Word Datei mit (ggf.) ersetzten Token\ndocument - Referenz auf das primäre Daten-Dokument dieser Vorlage\ndataDocuments - Beliebig viele Referenzen auf Daten-Dokumente\n\nDer Status des Prozesses wird über Stempel (Processing, Error, Done) an dem Vorlagen Document gekennzeichnet.","designs":[{"id":"1cc4b977-c14d-4587-af47-d6ac230f60b3","text":"Bizpin Fallback Designs","v":"initial"}],"dialogForms":[{"id":"a37b2d75-d9d3-495a-a31c-52094d82e7bb","text":"Word Vorlage (.docx)","v":"initial"}],"icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"label":"Word (.docx)-Vorlagen","name":"Docx Template Processor","namedIcon":"fa fa-file-word","namedIconColor":"","related":[],"searchFilters":[],"searchableForms":[]},"f":{"id":"application-form","text":"Application","v":"e6c4e4126877157e"},"id":"fb62ad28-07b0-4a99-91bd-43c297656f12","inheritedLocks":[null,null],"locks":[],"modified":{"at":"2025-09-19T10:10:30+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"apps","previous":{"v":"bc1062451d4afe5c"},"stamps":[],"t":1758276630849,"v":"a21bb16c90a36843"},{"id":"ce1b84c6-f411-40f5-9783-2dd35230fd5d","v":"initial","p":"system","f":{"id":"folder","v":"60bfdadb874a9f10","text":"Folder"},"data":{"name":"Theming","description":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null}}},"locks":[],"created":{"at":"2022-02-21T14:45:29+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2022-02-21T14:45:29+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1645454729980,"ct":1645454729979,"a_depth":1,"a":["system"],"a_forms":["system-folder-form"],"inheritedLocks":[null,null],"stamps":[],"dts":1645454751268},{"id":"ddf56c14-1ba6-40cf-8b23-7e0ce10ac12d","v":"d6a21294fc5dd595","cloneOf":{"id":"ac9bae39-01ed-4684-b320-44da554ae085","v":"ffe6dc0d762dfff8","text":"[Bizpin App Template]"},"originalCloneOf":{"id":"ac9bae39-01ed-4684-b320-44da554ae085","v":"ffe6dc0d762dfff8","text":"[Bizpin App Template]"},"previous":{"v":"d51bc2edaadf85fe","f":{"id":"application-form","v":"e6c4e4126877157e","text":"Application"}},"p":"apps","f":{"id":"application-form","v":"16dc41cbc8c00e77","text":"Application"},"data":{"name":"Automatic Document Separation","label":"","description":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"related":[],"searchableForms":[],"searchFilters":[],"dialogForms":[],"controls":[],"designs":[{"id":"1cc4b977-c14d-4587-af47-d6ac230f60b3","v":"initial","text":"Bizpin Fallback Designs"}],"changes":[]},"locks":[],"created":{"at":"2026-02-03T12:07:52+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"modified":{"at":"2026-02-03T12:12:14+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"t":1779183239674,"ct":1779183239673,"a_depth":1,"a":["apps"],"a_forms":["folder"],"inheritedLocks":[null,null],"stamps":[],"meta":{"modified":{"at":"2026-05-19T09:33:59+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":"","impersonatedBy":"","from":"","client":"server"}}},{"a":["apps"],"a_depth":1,"a_forms":["folder"],"created":{"at":"2023-10-09T15:04:41+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1721196328170,"data":{"changes":[],"controls":[],"description":"This app is just a \"wrapper\" for Ressourcenplaner App (49babc91-9123-4d92-b850-ce4d10f0e1b4).\nIt is jused to allow for easy install of a Tierklinik specific menu.","designs":[{"id":"1cc4b977-c14d-4587-af47-d6ac230f60b3","text":"Bizpin Fallback Designs","v":"initial"}],"dialogForms":[],"icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"label":"Kalender","name":"Kalender (Tierkliniken)","namedIcon":"far fa-calendar","namedIconColor":"","related":[],"searchFilters":[],"searchableForms":[]},"f":{"id":"application-form","text":"Application","v":"e6c4e4126877157e"},"id":"5093ea32-8d03-430d-afce-fd4f6c34675e","inheritedLocks":[null,null],"locks":[],"modified":{"at":"2025-09-19T10:16:46+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"apps","previous":{"v":"026c8f1bf2430d80"},"stamps":[],"t":1758277006456,"v":"ba1d8fe2d616abbb"},{"a":["apps"],"a_depth":1,"a_forms":["folder"],"created":{"at":"2020-08-06T08:38:12+00:00","by":"77031fd1-c20d-4484-b4b4-46c01bdab986","client":"server","from":""},"ct":1721196328194,"data":{"changes":[],"controls":[],"description":"","designs":[{"id":"1cc4b977-c14d-4587-af47-d6ac230f60b3","text":"Bizpin Fallback Designs","v":"initial"}],"dialogForms":[{"id":"f66b823a-4dd9-4002-9684-388747c4f26f","text":"Reparaturauftrag","v":"c90d58e6c0016d88"},{"id":"2cea1044-a33a-4d05-9139-12c9a4fe0627","text":"Klärung","v":"242da2505a9180c8"}],"icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"label":"","name":"Reparaturaufträge","namedIcon":"fas fa-hammer","namedIconColor":"","related":[],"searchFilters":[],"searchableForms":[]},"f":{"id":"application-form","text":"Application","v":"e6c4e4126877157e"},"id":"cf08a83c-2872-47fb-8886-6009ac1e19e5","inheritedLocks":[null,null],"locks":[],"modified":{"at":"2025-09-19T10:24:28+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"apps","previous":{"v":"2898bb81eb0181ea"},"stamps":[],"t":1758277468039,"v":"dfb32d9e53ac892f"},{"id":"47dd3677-407a-42ac-8542-20d8ecf10e4f","v":"0f473b157dd1b554","p":"apps","f":{"id":"application-form","v":"e6c4e4126877157e","text":"Application"},"data":{"name":"Workflow Processes","label":"","description":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"related":[],"searchableForms":[],"searchFilters":[],"dialogForms":[],"controls":[],"designs":[],"changes":[]},"locks":[],"created":{"at":"2019-04-02T15:44:40+00:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2019-04-02T15:44:40+00:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1721196328197,"ct":1721196328197,"a_depth":1,"a":["apps"],"a_forms":["folder"],"inheritedLocks":[null,null],"stamps":[],"previous":{"v":"initial","f":{"id":"application-form","v":"713ca313eb629de1","text":"Application"}},"meta":{"modified":{"at":"2024-07-17T06:05:28+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}},"dts":1734441928143},{"id":"2a9f2f9c-28df-4418-8b85-b4158b35ed3d","v":"e11ae056e0619230","p":"apps","f":{"id":"application-form","v":"e6c4e4126877157e","text":"Application"},"data":{"name":"Erinnerungen","label":"","description":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"related":[],"searchableForms":[],"searchFilters":[],"dialogForms":[],"controls":[],"designs":[],"changes":[]},"locks":[],"created":{"at":"2017-09-15T10:29:31+02:00","by":"","from":"","client":"import"},"modified":{"at":"2020-05-08T08:52:49+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1721196328156,"ct":1721196328156,"a_depth":1,"a":["apps"],"a_forms":["folder"],"inheritedLocks":[null,null],"stamps":[],"previous":{"v":"c6f2940e745c8c52","f":{"id":"application-form","v":"7afdc5922f8d042f","text":"Application"}},"meta":{"modified":{"at":"2024-07-17T06:05:28+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}},"dts":1467644265255},{"a":["apps"],"a_depth":1,"a_forms":["folder"],"created":{"at":"2017-09-15T10:29:31+02:00","by":"","client":"import","from":""},"ct":1721196328195,"data":{"changes":[],"controls":[],"description":"Not needed anymore.","designs":[{"id":"1cc4b977-c14d-4587-af47-d6ac230f60b3","text":"Bizpin Fallback Designs","v":"initial"}],"dialogForms":[],"icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"label":"","name":"Schulungsverwaltung","namedIcon":"","namedIconColor":"","related":[],"searchFilters":[],"searchableForms":[]},"f":{"id":"application-form","text":"Application","v":"e6c4e4126877157e"},"id":"3a8b08c2-14ef-48ee-a5b8-2ede237892a9","inheritedLocks":[null,null],"locks":[],"modified":{"at":"2025-09-19T10:25:59+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"apps","previous":{"v":"02c60a46671364dc"},"stamps":[],"t":1758277559065,"v":"2b2b46ed1843f5c3"},{"id":"6a2e3a55-42ca-4f04-ae62-0a2447c5f759","v":"83f1b66fc42b9418","p":"apps","f":{"id":"application-form","v":"e6c4e4126877157e","text":"Application"},"data":{"name":"Curasystems","label":"","description":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"related":[],"searchableForms":[],"searchFilters":[],"dialogForms":[{"id":"62b0cd19-3103-4de3-a64e-b4bbfda6156a","v":"a55ac75cba7749b7","text":"Machine"}],"controls":[],"designs":[],"changes":[]},"locks":[],"created":{"at":"2021-11-02T09:38:59+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-11-02T09:38:59+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1721196328155,"ct":1721196328155,"a_depth":1,"a":["apps"],"a_forms":["folder"],"inheritedLocks":[null,null],"stamps":[],"previous":{"v":"initial","f":{"id":"application-form","v":"e9e0e585d09f8321","text":"Application"}},"meta":{"modified":{"at":"2024-07-17T06:05:28+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}},"dts":1635845939265},{"id":"a9cb5a02-4c8f-4f0e-a29a-dfa9a977cecd","v":"bd713d1fdfbe9ad8","previous":{"v":"df66270daa9a2235"},"p":"system","f":{"id":"folder","v":"f1e4977dbee77607","text":"Folder"},"data":{"name":"Services Descriptions","description":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null}}},"locks":[],"created":{"at":"2018-05-23T11:46:00+02:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","from":"","client":"server"},"modified":{"at":"2018-05-24T13:40:06+02:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","backedBy":null,"from":"","client":"server"},"t":1527162006238,"ct":1527068760410,"a_depth":1,"a":["system"],"a_forms":["system-folder-form"],"inheritedLocks":[null,null],"stamps":[],"dts":1611142019457},{"id":"e89b29a9-6ab9-47dc-a6fe-91ebda92871d","v":"5b696e3ef33e89e1","previous":{"v":"initial","p":"60c45486-4b82-4a56-8bd5-cd30cde73d47"},"p":"b090141a-949d-4b35-a5c2-d8f1dd937dcf","f":{"id":"folder","v":"f1e4977dbee77607","text":"Folder"},"data":{"name":"Forms","description":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null}}},"locks":[],"created":{"at":"2018-05-24T16:34:35+02:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","from":"","client":"server"},"modified":{"at":"2020-10-13T10:11:31+00:00","by":null,"backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1602583891615,"ct":1527172475590,"a_depth":2,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf"],"a_forms":["folder","application-form"],"inheritedLocks":[null,null,null],"stamps":[]},{"id":"fd2312bb-54bc-41a9-8fc7-b65b22ecb1d5","v":"initial","cloneOf":{"id":"286fef33-fdfd-4fcf-a5c6-bd5415bc1fc8","v":"e2f711326de79b99","text":"Forms"},"originalCloneOf":{"id":"286fef33-fdfd-4fcf-a5c6-bd5415bc1fc8","v":"e2f711326de79b99","text":"Forms"},"p":"c676e25c-4d28-48e3-9b60-811cde637ea5","f":{"id":"form-folder","v":"577dbed0412b397a","text":"Form Folder"},"data":{"name":"Forms","structural":false,"description":""},"locks":[],"created":{"at":"2021-05-21T08:42:19+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-05-21T08:42:19+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1621586539015,"ct":1621586539015,"a_depth":2,"a":["apps","c676e25c-4d28-48e3-9b60-811cde637ea5"],"a_forms":["folder","application-form"],"inheritedLocks":[null,null,null],"stamps":[],"dts":1680707042093},{"f":{"id":"folder","v":"f1e4977dbee77607","text":"Folder"},"p":"3d43a3f5-fea4-488d-9fc1-9dee5e694623","data":{"name":"Formulare","description":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null}}},"id":"7c30f282-2b84-4976-8735-ba78662ea5e6","v":"ace955fdb6bd62ce","t":1467644267945,"ct":1467644267929,"previous":{"v":"initial"},"modified":{"at":"2017-09-15T10:29:31+02:00","by":"","from":"","client":"import"},"created":{"at":"2017-09-15T10:29:31+02:00","by":"","from":"","client":"import"},"locks":[],"lockRefs":[],"inheritedLocks":[null,null,null],"a":["apps","3d43a3f5-fea4-488d-9fc1-9dee5e694623"],"a_forms":["folder","application-form"],"a_depth":2,"stamps":[]},{"id":"c27d5f5f-22ff-4341-935c-02bfdc3e1ee0","v":"initial","cloneOf":{"id":"286fef33-fdfd-4fcf-a5c6-bd5415bc1fc8","v":"e2f711326de79b99","text":"Forms"},"originalCloneOf":{"id":"286fef33-fdfd-4fcf-a5c6-bd5415bc1fc8","v":"e2f711326de79b99","text":"Forms"},"p":"37fafb3d-18da-4182-af74-082971d50956","f":{"id":"form-folder","v":"577dbed0412b397a","text":"Form Folder"},"data":{"name":"Forms","structural":false,"description":""},"locks":[],"created":{"at":"2020-08-07T13:44:45+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2020-08-07T13:44:45+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1596807885786,"ct":1596807885786,"a_depth":2,"a":["apps","37fafb3d-18da-4182-af74-082971d50956"],"a_forms":["folder","application-form"],"inheritedLocks":[null,null,null],"stamps":[],"dts":1693816489044},{"id":"8ffb21f4-3d63-4824-a633-10a19d7aa7d8","v":"initial","cloneOf":{"id":"286fef33-fdfd-4fcf-a5c6-bd5415bc1fc8","v":"initial","text":"Forms"},"originalCloneOf":{"id":"286fef33-fdfd-4fcf-a5c6-bd5415bc1fc8","v":"initial","text":"Forms"},"p":"bc036ad0-6dbc-415b-b506-325fb0a44046","f":{"id":"form-folder","v":"e2e87df32e325504","text":"Form Folder"},"data":{"name":"Forms","description":""},"locks":[],"created":{"at":"2019-04-11T10:01:42+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2019-04-11T10:01:42+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1554976902629,"ct":1554976902629,"a_depth":2,"a":["apps","bc036ad0-6dbc-415b-b506-325fb0a44046"],"a_forms":["folder","application-form"],"inheritedLocks":[null,null,null],"stamps":[],"dts":1737723945286},{"id":"8e6ee7d3-9122-4a2e-8aaf-9fb3bd204b23","v":"96281b2d6434a00b","previous":{"v":"0e85c366b924e6c9"},"p":"144e85c0-d7f9-4b20-8928-be30f0c78bda","f":{"id":"folder","v":"f1e4977dbee77607","text":"Folder"},"data":{"name":"Forms","description":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null}}},"locks":[],"created":{"at":"2017-09-15T10:29:31+02:00","by":"","from":"","client":"import"},"modified":{"at":"2019-05-31T12:50:47+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1559307047967,"ct":1467644271038,"a_depth":2,"a":["apps","144e85c0-d7f9-4b20-8928-be30f0c78bda"],"a_forms":["folder","application-form"],"inheritedLocks":[null,null,null],"stamps":[]},{"id":"58cc45fb-3fb3-45e8-b61d-4b89899e357a","v":"initial","previous":{"v":""},"p":"aed1ba1c-9095-4aca-8176-74a37325f0e5","f":{"id":"folder","v":"f1e4977dbee77607","text":"Folder"},"data":{"name":"Formulare","description":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null}}},"locks":[],"lockRefs":[],"created":{"at":"2017-12-14T15:39:47+01:00","by":"","from":"","client":"64e35a85-527c-4d1c-947c-c1ad0dcec14d"},"modified":{"at":"2017-12-14T15:39:47+01:00","by":"","from":"","client":"64e35a85-527c-4d1c-947c-c1ad0dcec14d"},"t":1513262387293,"ct":1513262384238,"a_depth":2,"a":["apps","aed1ba1c-9095-4aca-8176-74a37325f0e5"],"a_forms":["folder","application-form"],"inheritedLocks":[null,null,null],"stamps":[]},{"id":"2e759bfa-c685-48e8-81b4-cec70e93c521","v":"initial","cloneOf":{"id":"286fef33-fdfd-4fcf-a5c6-bd5415bc1fc8","v":"e2f711326de79b99","text":"Forms"},"originalCloneOf":{"id":"286fef33-fdfd-4fcf-a5c6-bd5415bc1fc8","v":"e2f711326de79b99","text":"Forms"},"p":"14c27659-92d7-4b43-8c4f-25f4cceae591","f":{"id":"form-folder","v":"577dbed0412b397a","text":"Form Folder"},"data":{"name":"Forms","structural":false,"description":""},"locks":[],"created":{"at":"2020-08-26T13:52:49+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2020-08-26T13:52:49+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1598449969031,"ct":1598449969031,"a_depth":2,"a":["apps","14c27659-92d7-4b43-8c4f-25f4cceae591"],"a_forms":["folder","application-form"],"inheritedLocks":[null,null,null],"stamps":[],"dts":1732285537532},{"a":["system","b2533f7b-ea85-4680-99ed-d8e11be641b9"],"a_depth":2,"a_forms":["system-folder-form","folder"],"created":{"at":"2020-09-28T14:13:27+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1768817812268,"data":{"changes":[{"id":"df6704be-1f53-4365-a5e1-06bc6b68438a","text":"Deaktivierte Accounts","v":"initial"},{"id":"78920780-f79b-40c7-a751-6a8a3ded1a61","text":"Willkommens E-Mail","v":"initial"}],"controls":[],"description":"","designs":[{"id":"1cc4b977-c14d-4587-af47-d6ac230f60b3","text":"Fallback Designs Bizpin","v":"87574c37fe2dfd86"}],"dialogForms":[{"id":"account","text":"Account","v":"ec1429c9b3080c57"},{"id":"group","text":"Group","v":"9a53ee6645ca2835"}],"icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"label":"Sicherheit","name":"Security","namedIcon":"fa fa-user-shield","namedIconColor":"","related":[],"searchFilters":[],"searchableForms":[]},"f":{"id":"application-form","text":"Application","v":"16dc41cbc8c00e77"},"id":"0e6939d6-9b93-4165-b6bd-977e4da881f3","inheritedLocks":[null,null,null],"locks":[],"meta":{},"modified":{"at":"2026-01-19T10:19:31+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"p":"b2533f7b-ea85-4680-99ed-d8e11be641b9","previous":{"v":"57450d2b57ee43b5"},"stamps":[],"t":1768817971453,"v":"9aec5b62d22bbbeb"},{"id":"6743ef9a-c21b-443f-91b8-4dd86886ee8c","v":"0ec4059a29b7338f","previous":{"v":"bcb837b611d39ceb"},"p":"9d6ee173-26fe-4472-a271-7667f717094e","f":{"id":"form-folder","v":"577dbed0412b397a","text":"Form Folder"},"data":{"name":"Folder Forms","structural":true,"description":""},"locks":[],"created":{"at":"2020-07-02T14:49:44+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2020-07-02T14:51:09+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1593701469757,"ct":1593701466549,"a_depth":2,"a":["apps","9d6ee173-26fe-4472-a271-7667f717094e"],"a_forms":["folder","application-form"],"inheritedLocks":[null,null,null],"stamps":[],"dts":1702376409748},{"id":"9b024049-2573-4921-acaa-3e172e9332d7","v":"initial","cloneOf":{"id":"286fef33-fdfd-4fcf-a5c6-bd5415bc1fc8","v":"fcb05ac4bb627d15","text":"Forms"},"originalCloneOf":{"id":"286fef33-fdfd-4fcf-a5c6-bd5415bc1fc8","v":"fcb05ac4bb627d15","text":"Forms"},"p":"d4581623-f542-4ade-86be-8b3ecec56f0e","f":{"id":"form-folder","v":"cb7204e5b9d8da77","text":"Form Folder"},"data":{"name":"Forms","description":""},"locks":[],"created":{"at":"2022-02-28T14:58:40+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2022-02-28T14:58:40+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1646060320132,"ct":1646060320132,"a_depth":2,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e"],"a_forms":["folder","application-form"],"inheritedLocks":[null,null,null],"stamps":[],"dts":1662386763430},{"id":"f9e0c42b-8179-4d08-ad6d-452eed6eb855","v":"initial","cloneOf":{"id":"286fef33-fdfd-4fcf-a5c6-bd5415bc1fc8","v":"e2f711326de79b99","text":"Forms"},"originalCloneOf":{"id":"286fef33-fdfd-4fcf-a5c6-bd5415bc1fc8","v":"e2f711326de79b99","text":"Forms"},"p":"441fb0bd-959b-446d-9aee-82f1c8ede628","f":{"id":"form-folder","v":"577dbed0412b397a","text":"Form Folder"},"data":{"name":"Forms","structural":false,"description":""},"locks":[],"created":{"at":"2020-08-12T08:50:11+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2020-08-12T08:50:11+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1597222211446,"ct":1597222211446,"a_depth":2,"a":["apps","441fb0bd-959b-446d-9aee-82f1c8ede628"],"a_forms":["folder","application-form"],"inheritedLocks":[null,null,null],"stamps":[],"dts":1645779676326},{"id":"4ec6a0e5-cf2d-4095-9b70-2e31a64d5679","v":"initial","cloneOf":{"id":"286fef33-fdfd-4fcf-a5c6-bd5415bc1fc8","v":"initial","text":"Forms"},"originalCloneOf":{"id":"286fef33-fdfd-4fcf-a5c6-bd5415bc1fc8","v":"initial","text":"Forms"},"p":"45ada186-e9fd-451d-9dbd-2defc0b4f86f","f":{"id":"form-folder","v":"e2e87df32e325504","text":"Form Folder"},"data":{"name":"Forms","description":""},"locks":[],"created":{"at":"2020-06-23T12:01:24+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2020-06-23T12:01:24+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1592913684888,"ct":1592913684888,"a_depth":2,"a":["apps","45ada186-e9fd-451d-9dbd-2defc0b4f86f"],"a_forms":["folder","application-form"],"inheritedLocks":[null,null,null],"stamps":[],"dts":1738326978699},{"id":"package-form","v":"8f892246253bfb6f","previous":{"v":"b433beebb2cd2c9b"},"p":"system-forms","f":{"id":"form","v":"2e7e396282349d68","text":"Form"},"data":{"name":"Package","label":"","tags":"","namedIcon":"fa fa-box","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Name][name]\n[Semver][semver]\n[Content][content]\n\n[content]: file","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2017-08-23T08:24:50+02:00","by":"","from":"","client":"import"},"modified":{"at":"2021-05-25T09:38:00+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1621935480452,"ct":1621935445321,"a_depth":2,"a":["system","system-forms"],"a_forms":["system-folder-form","repository-folder-form"],"inheritedLocks":[null,null,null],"stamps":[]},{"a":["system","system-forms"],"a_depth":2,"a_forms":["system-folder-form","repository-folder-form"],"created":{"at":"2017-08-23T08:24:50+02:00","by":"","client":"import","from":""},"ct":1721196190632,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[],"commands":[],"defaults":"","definition":"[Namespace][namespace] [Name][name]\n\n# Template\n\n{Html}\n[Html Template][template]\n\n# Styles\n\n{css}\n[CSS][css]\n\n# Controller\n\n{aeppic:code-design-controller}\n[Controller][controller]\n\n# Usage\n\n## Parameters\n\n{table}\n[Parameters][parameters]\n[parameters]: /5e94bf39-a8b6-42e4-ab9c-80809a7ef361 (0-n)\n\n## Types and cardinality\n\n[Standalone][standalone]\n\n{hidden if standalone == 'REQUIRED'}\n######\n[Cardinality Limitation][cardinality]\n\n[Limit Types][limitTypes]\n\n{show if limitTypes}[Types][types]\n\n[limitTypes]: Switch\n\n[cardinality]: select \n  - BOTH: Supports fields with and without cardinality (single values and multiple values)\n  - SINGLE: Fields without cardinality \n  - MULTIPLE: Fields with cardinality \"(0-n)\" or \"(1-10)\"\n\n[standalone]: select\n  - SUPPORTED: Supported (Can be used standalone and without being applied to a field)\n  - FIELD: No Support for standalone. Control can be applied to fields only \n  - REQUIRED: Required (Can ONLY be used standalone) \n\n[types]: Select (0-n)\n  - string: Any String\n  - text: Text\n  - password: Password\n  - number: Number\n  - boolean: Switch (Boolean)\n  - date: Date\n  - datetime: Date Time\n  - time: Time\n  - duration: Duration\n  - select_any: Any select field\n  - select_string: A text select field\n  - select_number: A numbered select field\n  - file: File\n  - image: Image\n  - ref: Reference\n  - address: Address\n  - geolocation: Geolocation\n  - currency: Currency\n  \n# Dependencies\n\n[Packages][packages]\n[packages]: /package-form (0-n)\n\n## Devices or Screen Sizes\n\n[Device Support][device]\n[device]: Select\n  - ALL: Any device\n  - HANDHELD: Any handheld device \n  - DESKTOP: Any desktop device\n\n# Details\n\n[Label][label]\n\n{multiline}\n[Description][description]\n \n","description":"","functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Control","namedIcon":"","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"tags":"","theme":{"id":"","text":"","v":""},"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"e9315f7e2d1f8a7a"},"id":"control-form","inheritedLocks":[null,null,null],"locks":[],"modified":{"at":"2024-07-17T09:52:08+00:00","backedBy":null,"by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","client":"server","from":"","impersonatedBy":null},"p":"system-forms","previous":{"v":"9bddead515b3a305"},"stamps":[],"t":1721209928376,"v":"eb9d3505503100c4"},{"id":"3555bef3-1cf0-4f7d-b3ce-5346fb8cbff4","v":"initial","p":"b3191869-9bcf-440c-92be-7b013944b450","f":{"id":"form-folder","v":"cb7204e5b9d8da77","text":"Form Folder"},"data":{"name":"Forms","description":""},"locks":[],"created":{"at":"2021-11-08T16:01:37+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-11-08T16:01:37+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1636387297309,"ct":1636387297306,"a_depth":2,"a":["apps","b3191869-9bcf-440c-92be-7b013944b450"],"a_forms":["folder","application-form"],"inheritedLocks":[null,null,null],"stamps":[],"dts":1738932902662},{"id":"6b513a0c-498f-4eac-804d-aa8e0e99caac","v":"initial","cloneOf":{"id":"286fef33-fdfd-4fcf-a5c6-bd5415bc1fc8","v":"e2f711326de79b99","text":"Forms"},"originalCloneOf":{"id":"286fef33-fdfd-4fcf-a5c6-bd5415bc1fc8","v":"e2f711326de79b99","text":"Forms"},"p":"d91078cc-874b-4410-b837-b81f47687fe9","f":{"id":"form-folder","v":"577dbed0412b397a","text":"Form Folder"},"data":{"name":"Forms","structural":false,"description":""},"locks":[],"created":{"at":"2021-01-27T11:03:03+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-01-27T11:03:03+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1611745383335,"ct":1611745383335,"a_depth":2,"a":["apps","d91078cc-874b-4410-b837-b81f47687fe9"],"a_forms":["folder","application-form"],"inheritedLocks":[null,null,null],"stamps":[],"dts":1633596712329},{"id":"20c92864-6a81-4006-96f9-b78f473cd129","v":"c280e92d289ffb82","previous":{"v":"initial","p":"eaa57aeb-bb30-49f1-a5c9-a8c0fe1879e4"},"p":"5acfd7a2-33e4-498a-9150-71e1ab772bfc","f":{"id":"form-folder","v":"e2e87df32e325504","text":"Form Folder"},"data":{"name":"Forms","description":""},"locks":[],"created":{"at":"2017-09-15T10:29:31+02:00","by":"","from":"","client":"import"},"modified":{"at":"2018-12-03T15:17:37+00:00","by":null,"backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1543850257658,"ct":1467644280027,"a_depth":2,"a":["apps","5acfd7a2-33e4-498a-9150-71e1ab772bfc"],"a_forms":["folder","application-form"],"inheritedLocks":[null,null,null],"stamps":[],"dts":1634031807207},{"id":"25fda732-5296-4fab-8d4e-92c3e32ca2c0","v":"initial","cloneOf":{"id":"286fef33-fdfd-4fcf-a5c6-bd5415bc1fc8","v":"fcb05ac4bb627d15","text":"Forms"},"originalCloneOf":{"id":"286fef33-fdfd-4fcf-a5c6-bd5415bc1fc8","v":"fcb05ac4bb627d15","text":"Forms"},"p":"85d3c028-a61c-4be8-93d0-4366bc45752f","f":{"id":"form-folder","v":"cb7204e5b9d8da77","text":"Form Folder"},"data":{"name":"Forms","description":""},"locks":[],"created":{"at":"2022-11-23T08:34:30+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2022-11-23T08:34:30+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1669192470497,"ct":1669192470497,"a_depth":2,"a":["apps","85d3c028-a61c-4be8-93d0-4366bc45752f"],"a_forms":["folder","application-form"],"inheritedLocks":[null,null,null],"stamps":[],"dts":1671625445394},{"id":"f254ce25-42f1-4333-8ee7-23554bf746c1","v":"initial","p":"94a64d89-d204-4918-b147-d717914fb03e","f":{"id":"form-folder","v":"e2e87df32e325504","text":"Form Folder"},"data":{"name":"Forms","description":""},"locks":[],"created":{"at":"2019-05-03T14:14:36+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2019-05-03T14:14:36+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1556885676008,"ct":1556885676007,"a_depth":2,"a":["apps","94a64d89-d204-4918-b147-d717914fb03e"],"a_forms":["folder","application-form"],"inheritedLocks":[null,null,null],"stamps":[],"dts":1738854888752},{"id":"b42c9135-e564-4d50-abd1-4d753921120f","v":"initial","previous":{"v":""},"p":"bd4df555-2c56-4a5f-82f0-7e4745372f51","f":{"id":"folder","v":"f1e4977dbee77607","text":"Folder"},"data":{"name":"Formulare","description":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null}}},"locks":[],"lockRefs":[],"created":{"at":"2018-01-16T16:08:31+01:00","by":"","from":"","client":"server"},"modified":{"at":"2018-01-16T16:08:31+01:00","by":"","from":"","client":"server"},"t":1516115311941,"ct":1516115311941,"a_depth":2,"a":["apps","bd4df555-2c56-4a5f-82f0-7e4745372f51"],"a_forms":["folder","application-form"],"inheritedLocks":[null,null,null],"stamps":[]},{"id":"e7de598c-6f5a-4ab4-a33b-213ca86e489d","v":"19ed5c4452ad64f0","p":"deeef973-ce03-4557-bf75-75a059001767","f":{"id":"form-folder","v":"cb7204e5b9d8da77","text":"Form Folder"},"data":{"name":"Forms","description":""},"locks":[],"created":{"at":"2021-12-15T12:26:36+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-12-15T12:26:36+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1718866006700,"ct":1718866006700,"a_depth":2,"a":["apps","deeef973-ce03-4557-bf75-75a059001767"],"a_forms":["folder","application-form"],"inheritedLocks":[null,null,null],"stamps":[],"previous":{"v":"initial","f":{"id":"form-folder","v":"577dbed0412b397a","text":"Form Folder"}},"meta":{"modified":{"at":"2024-06-20T08:46:46+02:00","by":"427610a9-39dc-4014-9176-5f72aeb23263","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}},"dts":1686740901272},{"id":"1096c5df-2773-4914-9455-dc54e0f3e0e5","v":"initial","cloneOf":{"id":"286fef33-fdfd-4fcf-a5c6-bd5415bc1fc8","v":"e2f711326de79b99","text":"Forms"},"originalCloneOf":{"id":"286fef33-fdfd-4fcf-a5c6-bd5415bc1fc8","v":"e2f711326de79b99","text":"Forms"},"p":"f416e371-07cc-4987-a6de-5934ef5ff3e4","f":{"id":"form-folder","v":"577dbed0412b397a","text":"Form Folder"},"data":{"name":"Forms","structural":false,"description":""},"locks":[],"created":{"at":"2020-11-19T13:12:43+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2020-11-19T13:12:43+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1605791563350,"ct":1605791563350,"a_depth":2,"a":["apps","f416e371-07cc-4987-a6de-5934ef5ff3e4"],"a_forms":["folder","application-form"],"inheritedLocks":[null,null,null],"stamps":[],"dts":1622112272925},{"id":"db8e20d1-732c-4c6b-9cfc-b323f83fa378","v":"initial","cloneOf":{"id":"286fef33-fdfd-4fcf-a5c6-bd5415bc1fc8","v":"e2f711326de79b99","text":"Forms"},"originalCloneOf":{"id":"286fef33-fdfd-4fcf-a5c6-bd5415bc1fc8","v":"e2f711326de79b99","text":"Forms"},"p":"d8c9a42b-e289-4c9a-97ea-801de8ab480a","f":{"id":"form-folder","v":"577dbed0412b397a","text":"Form Folder"},"data":{"name":"Forms","structural":false,"description":""},"locks":[],"created":{"at":"2020-08-10T09:28:32+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2020-08-10T09:28:32+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1597051712267,"ct":1597051712267,"a_depth":2,"a":["apps","d8c9a42b-e289-4c9a-97ea-801de8ab480a"],"a_forms":["folder","application-form"],"inheritedLocks":[null,null,null],"stamps":[],"dts":1738944195814},{"id":"0fb162f4-0f78-4c1e-aad2-43c27e6d98cb","v":"initial","p":"3fbe0efd-713a-457a-a34c-3a12aa19d6bb","f":{"id":"form-folder","v":"577dbed0412b397a","text":"Form Folder"},"data":{"name":"Forms","structural":false,"description":""},"locks":[],"created":{"at":"2020-12-10T13:06:52+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2020-12-10T13:06:52+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1607605612159,"ct":1607605612158,"a_depth":2,"a":["apps","3fbe0efd-713a-457a-a34c-3a12aa19d6bb"],"a_forms":["folder","application-form"],"inheritedLocks":[null,null,null],"stamps":[],"dts":1737472333599},{"id":"bd0159cd-1362-4c50-916d-26aa2bb1ae24","v":"initial","p":"18da93c8-dfa2-4c21-b0fe-7e09b2b6d6c4","f":{"id":"form-folder","v":"e2e87df32e325504","text":"Form Folder"},"data":{"name":"Forms","description":""},"locks":[],"created":{"at":"2019-09-09T09:30:31+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2019-09-09T09:30:31+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1568021431454,"ct":1568021431454,"a_depth":2,"a":["apps","18da93c8-dfa2-4c21-b0fe-7e09b2b6d6c4"],"a_forms":["folder","application-form"],"inheritedLocks":[null,null,null],"stamps":[],"dts":1568021433595},{"id":"9b02b1b6-e32b-41ec-b451-dba59bc5847b","v":"initial","cloneOf":{"id":"286fef33-fdfd-4fcf-a5c6-bd5415bc1fc8","v":"e2f711326de79b99","text":"Forms"},"originalCloneOf":{"id":"286fef33-fdfd-4fcf-a5c6-bd5415bc1fc8","v":"e2f711326de79b99","text":"Forms"},"p":"1887a103-bf3b-473c-8cb7-4f1afad0286b","f":{"id":"form-folder","v":"577dbed0412b397a","text":"Form Folder"},"data":{"name":"Forms","structural":false,"description":""},"locks":[],"created":{"at":"2021-09-10T13:36:07+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-09-10T13:36:07+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1631280967188,"ct":1631280967187,"a_depth":2,"a":["apps","1887a103-bf3b-473c-8cb7-4f1afad0286b"],"a_forms":["folder","application-form"],"inheritedLocks":[null,null,null],"stamps":[],"dts":1731942660198},{"id":"15292d56-6806-4263-b6d0-9194687203e1","v":"initial","cloneOf":{"id":"286fef33-fdfd-4fcf-a5c6-bd5415bc1fc8","v":"fcb05ac4bb627d15","text":"Forms"},"originalCloneOf":{"id":"286fef33-fdfd-4fcf-a5c6-bd5415bc1fc8","v":"fcb05ac4bb627d15","text":"Forms"},"p":"86189c5a-b9f4-445a-879f-d94574960df0","f":{"id":"form-folder","v":"cb7204e5b9d8da77","text":"Form Folder"},"data":{"name":"Forms","description":""},"locks":[],"created":{"at":"2022-04-21T11:59:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2022-04-21T11:59:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1650542372208,"ct":1650542372208,"a_depth":2,"a":["apps","86189c5a-b9f4-445a-879f-d94574960df0"],"a_forms":["folder","application-form"],"inheritedLocks":[null,null,null],"stamps":[],"dts":1660907988185},{"id":"3be7e887-1bcd-4c3c-979f-b20a986c4c48","v":"24046115d654c0ec","cloneOf":{"id":"20c92864-6a81-4006-96f9-b78f473cd129","v":"c280e92d289ffb82","text":"Forms"},"originalCloneOf":{"id":"20c92864-6a81-4006-96f9-b78f473cd129","v":"c280e92d289ffb82","text":"Forms"},"previous":{"v":"ff3b74a879c7cf03"},"p":"59edbdbc-2cab-426a-bb42-6e57c5158e4f","f":{"id":"form-folder","v":"e2e87df32e325504","text":"Form Folder"},"data":{"name":"Forms","description":""},"locks":[],"created":{"at":"2020-07-01T14:40:04+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2020-07-01T14:40:26+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1593614426158,"ct":1593614404527,"a_depth":2,"a":["apps","59edbdbc-2cab-426a-bb42-6e57c5158e4f"],"a_forms":["folder","application-form"],"inheritedLocks":[null,null,null],"stamps":[],"dts":1737984304296},{"id":"76983fec-9e9a-4ab9-b7d0-e2f9923b8bd8","v":"011699d8e1247f65","p":"009b3a60-72d5-46f6-8dc6-7f9001e03283","f":{"id":"form-folder","v":"cb7204e5b9d8da77","text":"Form Folder"},"data":{"name":"Forms (Prototyping)","description":""},"locks":[],"created":{"at":"2019-10-02T14:27:06+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2022-11-14T13:06:12+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1668431172895,"ct":1668431172895,"a_depth":2,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283"],"a_forms":["folder","application-form"],"inheritedLocks":[null,null,null],"stamps":[],"previous":{"v":"b7d3fc2a824403ad","f":{"id":"form-folder","v":"e2e87df32e325504","text":"Form Folder"}},"dts":1668431172895},{"id":"repository-folder-form","v":"ad03521affef6500","previous":{"v":"0b6ad8d0c1f380ba","f":{"id":"form","v":"d38c7ea672c72204","text":"Form"}},"p":"system-folder-forms-folder","f":{"id":"form","v":"42ef1fd37c206edb","text":"Form"},"data":{"name":"Repository Folder","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"# Folder\n\n[Name][name]\n\n[Description][description]\n[description]: Text\n\n[Icon][icon]\n\n[icon]: File\n\n# Contents\n\n[Form of contained Documents][contentsForm]\n[contentsForm]: /form\n\n{child}\n[Custom Add-Command][customAddCommand]\n[customAddCommand]: /command-form\n\n## Configuration document\n\n> If some configuration is possible, it might be useful to allow the user to navigate there.\n> \n> Only displayed if a target is selected.\n\n[Target of settings cog][configurationDocument]\n[configurationDocument]: ref\n\n## Display Table\n\n> Row height sets a fixed height to each row, regardless of its content.\n>\n> This value is required.\n\n[Row height][rowHeight]\n[rowHeight]: number <required>\n\n> Fields of a document's data need `data.` before the name of the field. e.g. for field of name `position` you shall write `data.position`\n>\n> Documents meta data e.g. `id`, `created.at`, ... can be addressed to, without any preceding text.\n\n[Fields to display as Columns (,)][displayTableColumns]\n\n[Column Headers (,)][displayTableHeaders]\n\n[Column Designs (,)][displayTableDesigns]\n\n### Sorting\n\n[Disable sort][disableSort]\n[disableSort]: switch\n\n[Fields available to sort (,)][sortFields]\n\n#### Initial\n\n> Defaults to `data.name`\n\n[Sort by][sortBy]\n\n[Sort ascending][sortAsc]\n[sortAsc]: switch\n\n### Filters\n\n[Fields available to filter (,)][filterFields]\n\n[Disable filter][disableFilter]\n[disableFilter]: switch","functions":"","allowedChildrenForms":[],"commands":[],"description":"","theme":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2019-03-27T11:46:11+01:00","by":"21755d65-c561-473a-ad0d-bac9a744d145","from":"","client":"server"},"modified":{"at":"2022-12-01T14:50:26+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1669906226817,"ct":1669906226816,"a_depth":2,"a":["system","system-folder-forms-folder"],"a_forms":["system-folder-form","form-folder"],"inheritedLocks":[null,null,null],"stamps":[]},{"id":"75920050-07b1-4e79-9742-54abcc235e91","v":"initial","p":"5ec4fefb-1235-484e-8d6f-4fd645bae372","f":{"id":"folder","v":"f1e4977dbee77607","text":"Folder"},"data":{"name":"Formulare","description":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null}}},"locks":[],"created":{"at":"2019-03-08T14:03:53+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2019-03-08T14:03:53+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1552053833263,"ct":1552053833263,"a_depth":2,"a":["apps","5ec4fefb-1235-484e-8d6f-4fd645bae372"],"a_forms":["folder","application-form"],"inheritedLocks":[null,null,null],"stamps":[]},{"id":"f0010376-2737-42c5-aaf8-f8b8e1cd0449","v":"initial","cloneOf":{"id":"286fef33-fdfd-4fcf-a5c6-bd5415bc1fc8","v":"e2f711326de79b99","text":"Forms"},"originalCloneOf":{"id":"286fef33-fdfd-4fcf-a5c6-bd5415bc1fc8","v":"e2f711326de79b99","text":"Forms"},"p":"b9df606f-b33a-48ad-ba91-a82fa7868fa4","f":{"id":"form-folder","v":"577dbed0412b397a","text":"Form Folder"},"data":{"name":"Forms","structural":false,"description":""},"locks":[],"created":{"at":"2021-11-23T14:02:27+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-11-23T14:02:27+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1637676147082,"ct":1637676147082,"a_depth":2,"a":["apps","b9df606f-b33a-48ad-ba91-a82fa7868fa4"],"a_forms":["folder","application-form"],"inheritedLocks":[null,null,null],"stamps":[],"dts":1738331113346},{"id":"06b46bf8-ceeb-4fd4-bf6a-4a3da0cab4ad","v":"initial","cloneOf":{"id":"286fef33-fdfd-4fcf-a5c6-bd5415bc1fc8","v":"fcb05ac4bb627d15","text":"Forms"},"originalCloneOf":{"id":"286fef33-fdfd-4fcf-a5c6-bd5415bc1fc8","v":"fcb05ac4bb627d15","text":"Forms"},"p":"253003a3-5cbd-4d84-bfb2-38f60a741fb5","f":{"id":"form-folder","v":"cb7204e5b9d8da77","text":"Form Folder"},"data":{"name":"Forms","description":""},"locks":[],"created":{"at":"2022-11-17T15:36:20+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2022-11-17T15:36:20+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1668699380712,"ct":1668699380711,"a_depth":2,"a":["apps","253003a3-5cbd-4d84-bfb2-38f60a741fb5"],"a_forms":["folder","application-form"],"inheritedLocks":[null,null,null],"stamps":[],"dts":1676374513200},{"id":"53b70eca-0cef-448b-9674-22a70a937eb1","v":"78091b1ba1298e5a","p":"9d6ee173-26fe-4472-a271-7667f717094e","f":{"id":"form-folder","v":"577dbed0412b397a","text":"Form Folder"},"data":{"name":"Forms","structural":false,"description":""},"locks":[],"created":{"at":"2020-06-23T12:00:14+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2020-07-03T07:58:25+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1593763105490,"ct":1593763105490,"a_depth":2,"a":["apps","9d6ee173-26fe-4472-a271-7667f717094e"],"a_forms":["folder","application-form"],"inheritedLocks":[null,null,null],"stamps":[],"previous":{"v":"initial","f":{"id":"form-folder","v":"e2e87df32e325504","text":"Form Folder"}},"dts":1736850882476},{"id":"d0e84149-815a-4c38-a801-1664583fef16","v":"initial","cloneOf":{"id":"286fef33-fdfd-4fcf-a5c6-bd5415bc1fc8","v":"e2f711326de79b99","text":"Forms"},"originalCloneOf":{"id":"286fef33-fdfd-4fcf-a5c6-bd5415bc1fc8","v":"e2f711326de79b99","text":"Forms"},"p":"75c6f72a-08a2-44f4-a29c-86b58be26f96","f":{"id":"form-folder","v":"577dbed0412b397a","text":"Form Folder"},"data":{"name":"Forms","structural":false,"description":""},"locks":[],"created":{"at":"2021-03-30T11:51:19+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-03-30T11:51:19+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1617105079176,"ct":1617105079175,"a_depth":2,"a":["apps","75c6f72a-08a2-44f4-a29c-86b58be26f96"],"a_forms":["folder","application-form"],"inheritedLocks":[null,null,null],"stamps":[],"dts":1734001738157},{"id":"dbd0bd68-3479-4032-9303-9d51615c27a7","v":"initial","p":"781ff5de-69db-49dc-99f0-f328b308cd7d","f":{"id":"form-folder","v":"e2e87df32e325504","text":"Form Folder"},"data":{"name":"Forms","description":""},"locks":[],"created":{"at":"2018-12-07T12:11:00+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2018-12-07T12:11:00+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1544184660108,"ct":1544184660107,"a_depth":2,"a":["apps","781ff5de-69db-49dc-99f0-f328b308cd7d"],"a_forms":["folder","application-form"],"inheritedLocks":[null,null,null],"stamps":[],"dts":1635845920255},{"id":"5fa71c32-0186-4007-92a9-f03a32b0ff33","v":"initial","cloneOf":{"id":"286fef33-fdfd-4fcf-a5c6-bd5415bc1fc8","v":"e2f711326de79b99","text":"Forms"},"originalCloneOf":{"id":"286fef33-fdfd-4fcf-a5c6-bd5415bc1fc8","v":"e2f711326de79b99","text":"Forms"},"p":"089481c4-a42f-4a98-9bc9-12e9f1131f4b","f":{"id":"form-folder","v":"577dbed0412b397a","text":"Form Folder"},"data":{"name":"Forms","structural":false,"description":""},"locks":[],"created":{"at":"2021-10-04T11:07:17+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-10-04T11:07:17+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1633345637332,"ct":1633345637332,"a_depth":2,"a":["apps","089481c4-a42f-4a98-9bc9-12e9f1131f4b"],"a_forms":["folder","application-form"],"inheritedLocks":[null,null,null],"stamps":[],"dts":1662033144176},{"id":"cd0dc80e-74a7-44b2-ac65-972cbf47562e","v":"initial","p":"009b3a60-72d5-46f6-8dc6-7f9001e03283","f":{"id":"form-folder","v":"cb7204e5b9d8da77","text":"Form Folder"},"data":{"name":"Forms","description":""},"locks":[],"created":{"at":"2022-11-14T13:06:41+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2022-11-14T13:06:41+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1668431201785,"ct":1668431201785,"a_depth":2,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283"],"a_forms":["folder","application-form"],"inheritedLocks":[null,null,null],"stamps":[],"dts":1736781268453},{"id":"35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f","v":"initial","previous":{"v":""},"p":"b791df37-6eef-4a3e-9066-1b79e0bdad31","f":{"id":"form-folder","v":"e2e87df32e325504","text":"Form Folder"},"data":{"name":"Forms","description":""},"locks":[],"lockRefs":[],"created":{"at":"2018-02-06T09:42:43+01:00","by":"","from":"","client":"server"},"modified":{"at":"2018-02-06T09:42:43+01:00","by":"","from":"","client":"server"},"t":1517906563006,"ct":1517906562995,"a_depth":2,"a":["apps","b791df37-6eef-4a3e-9066-1b79e0bdad31"],"a_forms":["folder","application-form"],"inheritedLocks":[null,null,null],"stamps":[],"dts":1545390397278},{"id":"fc09d59c-bdef-4b1e-854e-d907bc11b295","v":"initial","p":"f93ac233-7aa7-4561-a3b3-d8ebda0ee514","f":{"id":"form-folder","v":"e2e87df32e325504","text":"Form Folder"},"data":{"name":"Forms","description":""},"locks":[],"created":{"at":"2020-05-08T08:51:11+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2020-05-08T08:51:11+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1588927871927,"ct":1588927871926,"a_depth":2,"a":["apps","f93ac233-7aa7-4561-a3b3-d8ebda0ee514"],"a_forms":["folder","application-form"],"inheritedLocks":[null,null,null],"stamps":[],"dts":1588927872221},{"id":"d49bc831-377c-4f1c-b52b-54a5b2814dde","v":"initial","previous":{"v":""},"p":"81a6e9c3-754a-4964-8557-68edfe57053e","f":{"id":"folder","v":"f1e4977dbee77607","text":"Folder"},"data":{"name":"Formulare","description":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null}}},"locks":[],"lockRefs":[],"created":{"at":"2018-01-04T10:14:11+01:00","by":"","from":"","client":"c07d912c-c8c6-4a29-bbb2-1dd13a4178a7"},"modified":{"at":"2018-01-04T10:14:11+01:00","by":"","from":"","client":"c07d912c-c8c6-4a29-bbb2-1dd13a4178a7"},"t":1515057251040,"ct":1515057247086,"a_depth":2,"a":["apps","81a6e9c3-754a-4964-8557-68edfe57053e"],"a_forms":["folder","application-form"],"inheritedLocks":[null,null,null],"stamps":[]},{"id":"ff13ca04-7a64-4d12-ab9a-edee939ca478","v":"initial","p":"77ee8815-2c3a-4bb5-abd9-90541a545a24","f":{"id":"folder","v":"60bfdadb874a9f10","text":"Folder"},"data":{"name":"Forms (old)","description":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null}}},"locks":[],"created":{"at":"2021-11-04T08:46:33+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-11-04T08:46:33+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1636015593322,"ct":1636015593319,"a_depth":2,"a":["apps","77ee8815-2c3a-4bb5-abd9-90541a545a24"],"a_forms":["folder","application-form"],"inheritedLocks":[null,null,null],"stamps":[]},{"id":"43976185-12d8-4a50-9a93-9b42e455838d","v":"initial","cloneOf":{"id":"286fef33-fdfd-4fcf-a5c6-bd5415bc1fc8","v":"initial","text":"Forms"},"originalCloneOf":{"id":"286fef33-fdfd-4fcf-a5c6-bd5415bc1fc8","v":"initial","text":"Forms"},"p":"5cff2cfd-1083-47f1-acc2-46e6440304cc","f":{"id":"form-folder","v":"e2e87df32e325504","text":"Form Folder"},"data":{"name":"Forms","description":""},"locks":[],"created":{"at":"2018-12-05T11:22:20+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2018-12-05T11:22:20+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1544008940418,"ct":1544008940417,"a_depth":2,"a":["apps","5cff2cfd-1083-47f1-acc2-46e6440304cc"],"a_forms":["folder","application-form"],"inheritedLocks":[null,null,null],"stamps":[],"dts":1544016641210},{"id":"a6c009e7-a2c9-4e84-a992-4ad09134d39d","v":"initial","cloneOf":{"id":"286fef33-fdfd-4fcf-a5c6-bd5415bc1fc8","v":"e2f711326de79b99","text":"Forms"},"originalCloneOf":{"id":"286fef33-fdfd-4fcf-a5c6-bd5415bc1fc8","v":"e2f711326de79b99","text":"Forms"},"p":"b0eb4a71-010b-4d65-b79b-bb984a57c10f","f":{"id":"form-folder","v":"577dbed0412b397a","text":"Form Folder"},"data":{"name":"Forms","structural":false,"description":""},"locks":[],"created":{"at":"2020-09-02T08:32:20+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2020-09-02T08:32:20+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1599035540075,"ct":1599035540075,"a_depth":2,"a":["apps","b0eb4a71-010b-4d65-b79b-bb984a57c10f"],"a_forms":["folder","application-form"],"inheritedLocks":[null,null,null],"stamps":[],"dts":1738748871750},{"id":"9b5518e5-c3ea-4446-9dc8-8628d8e8fabe","v":"initial","p":"c9b12874-99d0-40e8-86cc-c3fe0477a15a","f":{"id":"form-folder","v":"e2e87df32e325504","text":"Form Folder"},"data":{"name":"Forms","description":""},"locks":[],"created":{"at":"2018-12-03T13:32:02+00:00","by":"c5ed555f-cc11-463b-960b-0a60b3118e69","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2018-12-03T13:32:02+00:00","by":"c5ed555f-cc11-463b-960b-0a60b3118e69","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1543843922624,"ct":1543843922610,"a_depth":2,"a":["apps","c9b12874-99d0-40e8-86cc-c3fe0477a15a"],"a_forms":["folder","application-form"],"inheritedLocks":[null,null,null],"stamps":[],"dts":1702471941318},{"id":"ac1c3cae-65ab-45cf-8bdc-c00b1dc93012","v":"971c98f3fe64e660","p":"system-forms","f":{"id":"form","v":"cac2c00e9d3adbaa","text":"Form"},"data":{"name":"Changelog Change","tags":"","allowUndefinedFields":false,"definition":"[Name][name] {now}[Date][date]\n\n{markdown}\n[Changes][changes]\n\n{attachment form-id=\"8bf0fb31-716d-4b76-98d8-b7349f1d7529\" file-field=\"file\" name-field=\"name\" delete-on-remove=true}\n[Attachments][attachments]\n[attachments]: /8bf0fb31-716d-4b76-98d8-b7349f1d7529 (0-n)","functions":"","defaults":"","newTemplate":{"id":"","v":"","text":""},"newAction":{"id":"","v":"","text":""},"allowedChildrenForms":[],"commands":[],"namedIcon":"fa fa-book","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"","v":"","text":""},"description":""},"locks":[],"created":{"at":"2021-07-23T11:28:36+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-07-23T13:44:34+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1719473825358,"ct":1719473825358,"a_depth":2,"a":["system","system-forms"],"a_forms":["system-folder-form","repository-folder-form"],"inheritedLocks":[null,null,null],"stamps":[],"previous":{"v":"997e7bebf25af410","f":{"id":"form","v":"275741f6b713eb00","text":"Form"}},"meta":{"modified":{"at":"2024-06-27T07:37:05+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"d69a62e9-a61f-42bf-9ae9-7983b87bf587","v":"initial","p":"cf914a7f-ff5f-4598-80f1-63c9129e0a71","f":{"id":"form-folder","v":"cb7204e5b9d8da77","text":"Form Folder"},"data":{"name":"Forms","description":""},"locks":[],"created":{"at":"2021-07-07T11:16:56+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-07-07T11:16:56+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1625656616126,"ct":1625656616117,"a_depth":2,"a":["apps","cf914a7f-ff5f-4598-80f1-63c9129e0a71"],"a_forms":["folder","application-form"],"inheritedLocks":[null,null,null],"stamps":[],"dts":1625656617002},{"id":"cb7a4c1b-703a-4b16-9190-aa2a26532688","v":"initial","cloneOf":{"id":"286fef33-fdfd-4fcf-a5c6-bd5415bc1fc8","v":"initial","text":"Forms"},"originalCloneOf":{"id":"286fef33-fdfd-4fcf-a5c6-bd5415bc1fc8","v":"initial","text":"Forms"},"p":"91a90288-37bc-4f86-be38-4283833717d2","f":{"id":"form-folder","v":"e2e87df32e325504","text":"Form Folder"},"data":{"name":"Forms","description":""},"locks":[],"created":{"at":"2019-06-05T12:08:17+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2019-06-05T12:08:17+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1559736497427,"ct":1559736497425,"a_depth":2,"a":["apps","91a90288-37bc-4f86-be38-4283833717d2"],"a_forms":["folder","application-form"],"inheritedLocks":[null,null,null],"stamps":[],"dts":1734622045158},{"id":"804bed89-803a-4090-8b1b-857cab8ec6dd","v":"e9538f7ca7a85aaf","previous":{"v":"46164d472752096d","f":{"id":"form","v":"84ffcfcc2f925959","text":"Form"}},"p":"system-forms","f":{"id":"form","v":"8c1496d16c344c2e","text":"Form"},"data":{"name":"Shared Document","tags":"","definition":"[Name][name]\r\n\r\n[Identifier][identifier]\r\n\r\n{editor}\r\n[Description][description]\r\n\r\n[Target Document][target]\r\n[Target Info][targetInfo]\r\n\r\n[target]: Ref\r\n\r\n[Backing Account][backingAccount]\r\n[backingAccount]: /account","functions":"","allowedChildrenForms":[],"description":""},"locks":[],"created":{"at":"2019-06-24T14:51:39+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2020-12-10T13:06:54+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1607605614778,"ct":1602584202438,"a_depth":2,"a":["system","system-forms"],"a_forms":["system-folder-form","repository-folder-form"],"inheritedLocks":[null,null,null],"stamps":[]},{"f":{"id":"form-folder","v":"e2e87df32e325504","text":"Form Folder"},"p":"8f8c9ed7-a7ed-4150-b162-92d6f19a05b0","data":{"name":"Formulare","description":""},"id":"526d9710-b2bd-4fa7-9341-d780ead102c1","v":"12f2e2d5cb3ce33f","t":1467644265228,"ct":1467644265204,"previous":{"v":"5f98e4d435d5be18"},"modified":{"at":"2017-09-15T10:29:31+02:00","by":"","from":"","client":"import"},"created":{"at":"2017-09-15T10:29:31+02:00","by":"","from":"","client":"import"},"locks":[],"lockRefs":[],"inheritedLocks":[null,null,null],"a":["apps","8f8c9ed7-a7ed-4150-b162-92d6f19a05b0"],"a_forms":["folder","application-form"],"a_depth":2,"stamps":[],"dts":1708076573004},{"id":"5f76a5c6-0ebc-4a08-b5ae-84fd3176f9c9","v":"084c30a16ed10214","previous":{"v":"aec61e00d4f6ab90","p":"apps","a":["apps"],"a_forms":["folder"]},"p":"83c76376-420e-4231-9275-d0fe2ab47c32","f":{"id":"application-form","v":"713ddb8f3bf7cfca","text":"Application"},"data":{"name":"OP Planung","description":"","namedIcon":"fas fa-scalpel-path","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"stylesheets":[],"controls":[],"routingPrefixAlias":"","routingTables":[],"globalRoutingTables":[],"aliases":{"id":"","v":"","text":""},"dialogForms":[{"id":"77bb245a-dcb6-44d4-9baa-149185d6892c","v":"d188cd4a5fdc6fb7","text":"OP Art"},{"id":"093b2f65-2a18-4639-9a6a-59b9006d52ee","v":"b9061437a48a906f","text":"OP Kategorie"},{"id":"62ab4c96-e384-46b4-9d70-cd686193f3d7","v":"0feebc4995b99177","text":"OP Saal"}]},"locks":[],"created":{"at":"2018-09-03T09:57:14+00:00","by":"2695f56c-96e6-4009-8e2f-d545ea1e02aa","from":"","client":"server"},"modified":{"at":"2020-06-23T11:54:00+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1707830779444,"ct":1592913233214,"a_depth":2,"a":["apps","83c76376-420e-4231-9275-d0fe2ab47c32"],"a_forms":["folder","application-form"],"inheritedLocks":[null,null,null],"stamps":[],"meta":{"modified":{"at":"2024-02-13T13:26:19+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}},"dts":1707830941837},{"id":"acba7314-8507-4720-9781-3189575ae343","v":"f47fd412a88b74a3","p":"system-forms","f":{"id":"form","v":"cac2c00e9d3adbaa","text":"Form"},"data":{"name":"Dashboard Column","tags":"","allowUndefinedFields":false,"definition":"[Name][name]\n\n[Design][design]\n\n{child}\n[Query][query]\n[query]: /system/forms/query\n\n[Order][order]\n\n[Show Account Filter][showAccountFilter]\n[showAccountFilter]: switch\n\n[Default filter state][defaultAccountFilterState]\n[defaultAccountFilterState]: select\n  - on: On\n  - off: Off\n\n[Account filter field (if not created.by)][accountFilterField]","functions":"","defaults":"","newTemplate":{"id":"","v":"","text":""},"newAction":{"id":"","v":"","text":""},"allowedChildrenForms":[],"commands":[],"namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"","v":"","text":""},"description":""},"locks":[],"created":{"at":"2017-08-23T08:24:50+02:00","by":"","from":"","client":"import"},"modified":{"at":"2020-07-06T19:07:35+00:00","by":"8e6c22aa-8c69-4ff8-919a-7032841cf636","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1719473825405,"ct":1719473825405,"a_depth":2,"a":["system","system-forms"],"a_forms":["system-folder-form","repository-folder-form"],"inheritedLocks":[null,null,null],"stamps":[],"previous":{"v":"25f67ecc3baf6317","f":{"id":"form","v":"24ab84939535fdcd","text":"Form"}},"meta":{"modified":{"at":"2024-06-27T07:37:05+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"a3b935e7-60bc-4996-9b18-668e4361067f","v":"initial","cloneOf":{"id":"286fef33-fdfd-4fcf-a5c6-bd5415bc1fc8","v":"e2f711326de79b99","text":"Forms"},"originalCloneOf":{"id":"286fef33-fdfd-4fcf-a5c6-bd5415bc1fc8","v":"e2f711326de79b99","text":"Forms"},"p":"0924db0f-7095-4b51-8966-bad1e45d68ec","f":{"id":"form-folder","v":"577dbed0412b397a","text":"Form Folder"},"data":{"name":"Forms","structural":false,"description":""},"locks":[],"created":{"at":"2020-09-04T08:31:26+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2020-09-04T08:31:26+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1599208286714,"ct":1599208286714,"a_depth":2,"a":["apps","0924db0f-7095-4b51-8966-bad1e45d68ec"],"a_forms":["folder","application-form"],"inheritedLocks":[null,null,null],"stamps":[],"dts":1738673949827},{"id":"2540faf9-e3fd-4b52-aad8-53f43274e0a2","v":"initial","p":"8fa52498-fa07-4bad-87b3-5c8df671aca4","f":{"id":"form-folder","v":"e2e87df32e325504","text":"Form Folder"},"data":{"name":"Forms","description":""},"locks":[],"created":{"at":"2019-09-20T08:59:30+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2019-09-20T08:59:30+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1568969970862,"ct":1568969970858,"a_depth":2,"a":["apps","8fa52498-fa07-4bad-87b3-5c8df671aca4"],"a_forms":["folder","application-form"],"inheritedLocks":[null,null,null],"stamps":[],"dts":1568969971244},{"id":"5d6fa6d3-7580-4c6f-9487-fff961f9c751","v":"initial","p":"43f84041-0fd7-4ccb-b7b5-7a38f89ada37","f":{"id":"form-folder","v":"e2e87df32e325504","text":"Form Folder"},"data":{"name":"Forms","description":""},"locks":[],"created":{"at":"2018-11-29T14:19:04+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2018-11-29T14:19:04+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1543501144029,"ct":1543501144014,"a_depth":2,"a":["apps","43f84041-0fd7-4ccb-b7b5-7a38f89ada37"],"a_forms":["folder","application-form"],"inheritedLocks":[null,null,null],"stamps":[],"dts":1543933794214},{"id":"1116d922-d8df-4da5-a7c2-70191d07d929","v":"e199231e93b27145","previous":{"v":"90e09545b8b75e96"},"p":"b090141a-949d-4b35-a5c2-d8f1dd937dcf","f":{"id":"folder","v":"f1e4977dbee77607","text":"Folder"},"data":{"name":"E-Mails","description":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null}}},"locks":[],"created":{"at":"2018-10-30T12:55:48+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2020-10-13T10:11:30+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1602583890789,"ct":1540904148992,"a_depth":2,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf"],"a_forms":["folder","application-form"],"inheritedLocks":[null,null,null],"stamps":[]},{"id":"key-ref-form","v":"275dfcee36ad8b05","previous":{"v":"initial"},"p":"system-forms","f":{"id":"form","v":"7bfd4bec296acf0a","text":"Form"},"data":{"name":"Key Ref (deprecated)","description":"","definition":"[Name][name]\n\n[Description][description]\n[description]: Text\n\n[Key][key]\n[key]: /key-form","semver":"1.0.0","color":{"id":"","v":null,"text":""},"icon":{"name":"iconmonstr-key-icon.svg","size":1212,"type":"image/svg+xml","sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":1416219582000,"read":null,"modified":1416219582000,"imported":1416221171446}},"headerInfoStyle":"auto","defaultDesignStyle":"auto"},"locks":[],"created":{"at":"2017-08-23T08:24:50+02:00","by":"","from":"","client":"import"},"modified":{"at":"2022-01-26T09:44:10+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1643190250359,"ct":1447333431780,"a_depth":2,"a":["system","system-forms"],"a_forms":["system-folder-form","repository-folder-form"],"inheritedLocks":[null,null,null],"stamps":[]},{"id":"bbe4e999-ca2c-4be4-8740-d07f051be556","v":"36432b7952202500","previous":{"v":"2b38ca90875c25f7","p":"apps","a":["apps"],"a_forms":["folder"]},"p":"83c76376-420e-4231-9275-d0fe2ab47c32","f":{"id":"application-form","v":"713ddb8f3bf7cfca","text":"Application"},"data":{"name":"Übersicht Tierärzte","description":"","namedIcon":"fas fa-user-md","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"stylesheets":[],"controls":[],"routingPrefixAlias":"","routingTables":[],"globalRoutingTables":[],"aliases":{"id":"","v":"","text":""},"dialogForms":[{"id":"f56e0113-f097-4665-b04d-70d59acf8262","v":"d7c64efb74eb9a21","text":"Tierarzt Terminvergabe"}]},"locks":[],"created":{"at":"2018-09-03T12:42:36+00:00","by":"2695f56c-96e6-4009-8e2f-d545ea1e02aa","from":"","client":"server"},"modified":{"at":"2020-06-23T11:55:36+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1707830776562,"ct":1592913333881,"a_depth":2,"a":["apps","83c76376-420e-4231-9275-d0fe2ab47c32"],"a_forms":["folder","application-form"],"inheritedLocks":[null,null,null],"stamps":[],"meta":{"modified":{"at":"2024-02-13T13:26:16+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}},"dts":1611934137620},{"id":"document-picker-form","v":"97547060f3e347ab","p":"system-forms","f":{"id":"form","v":"cac2c00e9d3adbaa","text":"Form"},"data":{"name":"Document Picker","tags":"","allowUndefinedFields":false,"definition":"[Name][name]\n\n##Source settings\n\n\n[Folder][sourceFolder]\n[sourceFolder]: Ref\n\n[Query][sourceQuery]\n\n[sourceQuery]: /query-form\n\n>The query defines the list of documents, from which to pick. The specified folder is used as the root of the query. If no query is specified, a default children-query is used.\n\n\n##Target settings\n\n[Folder][targetFolder]\n[targetFolder]: Ref\n\n[Reference Form][targetReferenceForm]\n[targetReferenceForm]: /form\n\n[Reference Field][targetReferenceField]\n\n>The location where references to the picked documents are stored. By default they are stored as child documents.\n> By default ``Document References`` are created, but you can specify a different form and field to use for the reference. The default field used is ``referencedDocument``\n\n## Designs\n\n[Pickable Document Design][pickableDocumentDesign]\n\n>The design to use for documents in the list of items that can be picked. The default\nis ``list-design``\n\n[Picked Document Design (dynamic)][dynamicPickedDocumentDesign]\n\n>The design to use for documents in the list of items that can be picked, once \nthey have been picked. This is used by the ``dynamic`` design of the document-picker,\nwhich allows changing the selection. The default is ``list-design``\n\n[Picked Document Design (static)][staticPickedDocumentDesign]\n\n>The design to use for documents in the list of items that have been picked. This\nis used by the ``static`` design of the document-picker, which does not allow\nchanging the selection. The default is ``list-design``\n\n[Show Reference Document instead of Original Document when picked][showReferences]\n\n[showReferences]: switch\n","functions":"","defaults":"","newTemplate":{"id":"","v":"","text":""},"newAction":{"id":"","v":"","text":""},"allowedChildrenForms":[],"commands":[],"namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"","v":"","text":""},"description":""},"locks":[],"created":{"at":"2017-08-23T08:24:50+02:00","by":"","from":"","client":"import"},"modified":{"at":"2020-06-30T10:53:26+00:00","by":"8e6c22aa-8c69-4ff8-919a-7032841cf636","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1719473825445,"ct":1719473825445,"a_depth":2,"a":["system","system-forms"],"a_forms":["system-folder-form","repository-folder-form"],"inheritedLocks":[null,null,null],"stamps":[],"previous":{"v":"bb3184b9df5abb40","f":{"id":"form","v":"dcc8032a347c59c7","text":"Form"}},"meta":{"modified":{"at":"2024-06-27T07:37:05+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"a":["system","system-forms"],"a_depth":2,"a_forms":["system-folder-form","repository-folder-form"],"created":{"at":"2019-07-03T07:26:21+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":""},"ct":1778079324308,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[],"commands":[{"id":"175a935c-c174-4bd4-a876-40581cbe7461","text":"rd:Duplicate","v":"f201fbe14d554d43"}],"defaults":"","definition":"[Name][name]\n\n[Tags][tags]\n\n[Allow undefined fields][allowUndefinedFields]\n[allowUndefinedFields]: Switch\n\n# Definition\n\n{Form rows=30}\n[Definition][definition]\n\n# Functions\n\n{aeppic:code-form-functions-controller}\n[Functions][functions]\n\n\n# Related\n \n{children}\n[Related documents][relatedDocuments]\n[relatedDocuments]: /related (0-n)\n\n# Defaults\n\nWhen `Aeppic.new(documentIdOrRef, parentIdOrRef, options?)` is called with just an id to a form (not a ref) it uses the information in this section\nto decide what form version to use. Either cloning a template or running an action. Both must result in document of the correct form type of course.\n\nThe action has no write access to `Aeppic` though and must return an `EditableDocument` of the matching form type.\n\n[Defaults][defaults]\n\n[defaults]: Select\n  - : Empty\n  - TEMPLATE: Clone template\n  - ACTION: Run action\n\n{show if defaults === 'TEMPLATE'}\n[Template][newTemplate]\n\n{show if defaults === 'ACTION'}\n[New Action][newAction]\n\n[newTemplate]: /ref\n[newAction]: /action-form\n\n# Children\n\n{ref keep-open-after-selection}\n[][allowedChildrenForms]\n \n[allowedChildrenForms]: /form (0-n)\n\nOptionally limit what kind of children are expected. This is used by the default page design for example.\n\n# Commands\n\n{ref forms=command-form,command-group-form}\n[Commands][commands]\n[commands]: /ref (0-n)\n\n{children}\n[Descendant commands][descendantCommands]\n[descendantCommands]: /62151777-a006-4796-b3d3-8e74a44fdec8 (0-n)\n\n# Convert\n\nConversion maps are defined to ensure a\ndocument of a certain form can be converted\ninto another form or form version.\n\nConversions **to** a specific form version\ntake precendent and get used first. Each conversion\nis checked in order. The first match wins.\n\n{children}\n[To][to]\n[to]: /3d24b889-4f90-4b29-982d-27a3e6831108 (0-n)\n\nIf no matching conversion was found in the origin form,\nthe from conversions of the target form are looked through\nalso in order.\n\n{children}\n[From][from]\n[from]: /d605faf3-ac57-4ef3-9fc8-383f0eaf34e6 (0-n)\n\n\n# User Interface Options\n\n{hidden if icon.dataUrl}\n[Named Icon][namedIcon]\n\n{hidden if !namedIcon | color}\n[Named Icon Prefered Color][namedIconColor]\n\n{hidden if namedIcon}\n[Icon][icon]\n\n[Options][uiOptions]\n\n[Theme][theme]\n\n\n[uiOptions]: /234d58a9-6a0a-463a-bb53-723e1c46a0e8\n[icon]: Image\n[theme]: /57650eb1-4dc7-413e-8e41-307ff96a25e2\n\n# Details\n\n{multiline}\n[Description][description]\n\n","descendantCommands":[],"description":"","from":[],"functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Form","namedIcon":"far fa-file-invoice","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"relatedDocuments":[],"tags":"","theme":{"id":"","text":"","v":""},"to":[],"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"091409068fa04e57"},"id":"form","inheritedLocks":[null,null,null],"locks":[],"meta":{"modified":{"at":"2026-05-06T14:55:24+00:00","backedBy":"","by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":""}},"modified":{"at":"2025-12-08T08:26:28+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"p":"system-forms","previous":{"f":{"id":"form","text":"Form","v":"5cc8b1b3ef8bba14"},"v":"091409068fa04e57"},"stamps":[],"t":1778079324308,"v":"c2759612aee0e8c4"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3"],"a_depth":2,"a_forms":["folder","application-form"],"created":{"at":"2025-08-06T13:09:17+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1754485765679,"data":{"description":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Wartungspunkt Forms"},"f":{"id":"folder","text":"Folder","v":"5bc49cc541bc2b80"},"id":"d86dc31e-ad2c-45b7-8606-a6ce35580b10","inheritedLocks":[null,null,null],"locks":[],"meta":{"modified":{"at":"2025-08-06T13:09:25+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null}},"modified":{"at":"2025-08-06T13:09:17+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"af6c380d-2ab5-409a-802f-46dba2b426e3","previous":{"f":{"id":"folder","text":"Folder","v":"60bfdadb874a9f10"},"v":"initial"},"stamps":[],"t":1754485765679,"v":"251d2264b186d161"},{"id":"0614d9ba-fc1d-496b-8659-0a357871ae44","v":"initial","p":"d4581623-f542-4ade-86be-8b3ecec56f0e","f":{"id":"folder","v":"60bfdadb874a9f10","text":"Folder"},"data":{"name":"Wartungspunkt Forms","description":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null}}},"locks":[],"created":{"at":"2022-06-28T14:07:09+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2022-06-28T14:07:09+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1656425229994,"ct":1656425229988,"a_depth":2,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e"],"a_forms":["folder","application-form"],"inheritedLocks":[null,null,null],"stamps":[]},{"id":"2c872bc9-30dc-45b4-9aed-8c1c89a69baa","v":"50b4ba3afa795a8d","previous":{"v":"ae1a80d5875f48d8","p":"apps","a":["apps"],"a_forms":["folder"]},"p":"83c76376-420e-4231-9275-d0fe2ab47c32","f":{"id":"application-form","v":"6dea3f1e900f307b","text":"Application"},"data":{"name":"Medikamentenverzeichnis","label":"","description":"","namedIcon":"fas fa-notes-medical","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"stylesheets":[],"controls":[],"routingPrefixAlias":"","routingTables":[],"globalRoutingTables":[],"aliases":{"id":"","v":"","text":""},"dialogForms":[{"id":"e4af0e46-8a46-4741-935d-13e29befd300","v":"32fa4dd1aaed982f","text":"Medikament"},{"id":"38aab2e1-ee5c-4fc2-90e9-962b4161ac22","v":"0e6c8764e1466fa4","text":"Medikament"}],"searchableForms":[{"id":"e4af0e46-8a46-4741-935d-13e29befd300","v":"1ef2b32225e733e3","text":"Medikament"},{"id":"38aab2e1-ee5c-4fc2-90e9-962b4161ac22","v":"0fa5a3c8bfc55fdb","text":"Medikament"}],"searchFilters":[],"changes":[]},"locks":[],"created":{"at":"2017-09-15T10:29:31+02:00","by":"","from":"","client":"import"},"modified":{"at":"2023-10-12T10:52:10+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1697107930908,"ct":1697107493677,"a_depth":2,"a":["apps","83c76376-420e-4231-9275-d0fe2ab47c32"],"a_forms":["folder","application-form"],"inheritedLocks":[null,null,null],"stamps":[],"dts":1603985515444},{"a":["system","system-forms"],"a_depth":2,"a_forms":["system-folder-form","repository-folder-form"],"created":{"at":"2017-08-23T08:24:50+02:00","by":"","client":"import","from":""},"ct":1755850182981,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[],"commands":[],"defaults":"","definition":"[Name][name]\n\n[Description][description]\n[description]: Text\n\n[Icon][icon]\n\n[icon]: File","descendantCommands":[],"description":"","from":[],"functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Folder","namedIcon":"","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"relatedDocuments":[],"tags":"","theme":{"id":"","text":"","v":""},"to":[],"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"16a1fc2c7a734357"},"id":"folder","inheritedLocks":[null,null,null],"locks":[],"modified":{"at":"2025-08-22T08:09:48+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"system-forms","previous":{"v":"8485b710e8801c21"},"stamps":[],"t":1755850188326,"v":"602501509abc77b3"},{"id":"document-reference-form","v":"f0d7824141a9fc7b","p":"system-forms","f":{"id":"form","v":"cac2c00e9d3adbaa","text":"Form"},"data":{"name":"Document Reference","tags":"","allowUndefinedFields":false,"definition":"[Name][name]\n\n[Document][referencedDocument]\n[referencedDocument]: Ref","functions":"","defaults":"","newTemplate":{"id":"","v":"","text":""},"newAction":{"id":"","v":"","text":""},"allowedChildrenForms":[],"commands":[],"namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"","v":"","text":""},"description":""},"locks":[],"created":{"at":"2017-08-23T08:24:50+02:00","by":"","from":"","client":"import"},"modified":{"at":"2020-06-30T10:53:26+00:00","by":"8e6c22aa-8c69-4ff8-919a-7032841cf636","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1719473825446,"ct":1719473825446,"a_depth":2,"a":["system","system-forms"],"a_forms":["system-folder-form","repository-folder-form"],"inheritedLocks":[null,null,null],"stamps":[],"previous":{"v":"4cff9b9e2c2355ce","f":{"id":"form","v":"dcc8032a347c59c7","text":"Form"}},"meta":{"modified":{"at":"2024-06-27T07:37:05+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"list-form","v":"127235d96f4020d0","previous":{"v":"1d2193894db22761"},"p":"system-forms","f":{"id":"form","v":"4fa42fcff3786d1e","text":"Form"},"data":{"name":"List","tags":"","namedIcon":"fad fa-th-list","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Name][name]\n\n[Icon][icon]\n[icon]: File\n\n[Description][description]\n[description]: Text\n\n# Template\n\n{Html}\n[Html Template][template]\n\n# Styles\n\n{css}\n[CSS][css]\n\n# Controller\n\n{aeppic:code-design-controller}\n[Controller][controller]\n\n# Dependencies\n\n[Packages][packages]\n[packages]: /package-form (0-n)","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2019-08-28T12:53:54+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2020-12-02T16:44:03+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1606927443551,"ct":1566996834351,"a_depth":2,"a":["system","system-forms"],"a_forms":["system-folder-form","repository-folder-form"],"inheritedLocks":[null,null,null],"stamps":[]},{"id":"color","v":"941f491d5973538a","p":"system-forms","f":{"id":"form","v":"cac2c00e9d3adbaa","text":"Form"},"data":{"name":"Color","tags":"","allowUndefinedFields":false,"definition":"[Name][name]\n\n{Color}\n[Color][color]\n\n{Markdown}\n[Description][description]\n[description]: Text","functions":"","defaults":"","newTemplate":{"id":"","v":"","text":""},"newAction":{"id":"","v":"","text":""},"allowedChildrenForms":[],"commands":[],"namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"","v":"","text":""},"description":"A single color"},"locks":[],"created":{"at":"2017-08-23T08:24:50+02:00","by":"","from":"","client":"import"},"modified":{"at":"2020-06-30T10:59:02+00:00","by":"8e6c22aa-8c69-4ff8-919a-7032841cf636","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1719473825370,"ct":1719473825370,"a_depth":2,"a":["system","system-forms"],"a_forms":["system-folder-form","repository-folder-form"],"inheritedLocks":[null,null,null],"stamps":[],"previous":{"v":"70a58ecb5473599b","f":{"id":"form","v":"24ab84939535fdcd","text":"Form"}},"meta":{"modified":{"at":"2024-06-27T07:37:05+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"stamp","v":"db0412bcb191cbc6","previous":{"v":"b63a9a5c5b479a1c"},"p":"system-forms","f":{"id":"form","v":"4fa42fcff3786d1e","text":"Form"},"data":{"name":"Stamp","tags":"","namedIcon":"far fa-badge-check","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Type][type]\r\n\r\n[Workflow][workflow] [Workflow Correlation Uid][workflowUid]\r\n\r\n{multiline}\r\n[Comment][comment]\r\n\r\n{json}\r\n[Additional Data][additionalData]\r\n\r\n[type]: /stamp-type\r\n[workflow]: Ref","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2020-06-26T12:11:13+00:00","by":"8e6c22aa-8c69-4ff8-919a-7032841cf636","from":"","client":"server"},"modified":{"at":"2023-09-21T12:37:27+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1695299847444,"ct":1593173473238,"a_depth":2,"a":["system","system-forms"],"a_forms":["system-folder-form","repository-folder-form"],"inheritedLocks":[null,null,null],"stamps":[]},{"id":"805f465c-d7d7-4ab6-9f5e-e7d208cbaea7","v":"3426d3136046c23d","previous":{"v":"initial"},"p":"system-forms","f":{"id":"form","v":"af06aca6217d20c5","text":"Form"},"data":{"name":"Right (deprecated)","description":"","definition":"[Name][name]\r\n\r\n{multiline}\r\n[Description][description]\r\n\r\n\r\n","functions":"","semver":"","allowedChildrenForms":[],"layout":{"id":"","v":"","text":""},"color":{"id":"","v":"","text":""},"iconName":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null}},"applicationLayoutOptions":{"id":"","v":"","text":""},"documentLayoutOptions":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2018-04-18T15:45:15+02:00","by":"","from":"","client":"server"},"modified":{"at":"2019-03-27T11:46:15+01:00","by":"21755d65-c561-473a-ad0d-bac9a744d145","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1553683575355,"ct":1524059115308,"a_depth":2,"a":["system","system-forms"],"a_forms":["system-folder-form","repository-folder-form"],"inheritedLocks":[null,null,null],"stamps":[]},{"id":"8bf0fb31-716d-4b76-98d8-b7349f1d7529","v":"5e9a2adfe9d58b12","p":"system-forms","f":{"id":"form","v":"62871a5daaaf4cd9","text":"Form"},"data":{"name":"File","tags":"","allowUndefinedFields":false,"definition":"[Title][name]\n\n[File][file]\n\n[file]: file","functions":"","formattingFunctions":"","validationFunctions":"","relatedDocuments":[],"defaults":"","newTemplate":{"id":"","v":"","text":""},"newAction":{"id":"","v":"","text":""},"allowedChildrenForms":[],"commands":[],"descendantCommands":[],"to":[],"from":[],"namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"","v":"","text":""},"description":""},"locks":[],"created":{"at":"2017-08-23T08:24:50+02:00","by":"","from":"","client":"import"},"modified":{"at":"2021-07-13T14:29:23+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1721810229132,"ct":1721810229132,"a_depth":2,"a":["system","system-forms"],"a_forms":["system-folder-form","repository-folder-form"],"inheritedLocks":[null,null,null],"stamps":[],"previous":{"v":"3099a0e6bbbe023e","f":{"id":"form","v":"b89558844233d84a","text":"Form"}},"meta":{"modified":{"at":"2024-07-24T10:37:09+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"recycler-form","v":"eb323408d6ce5682","previous":{"v":"initial"},"p":"system-folder-forms-folder","f":{"id":"form","v":"2fdeefb16b174a3a","text":"Form"},"data":{"name":"Recycler","description":"","definition":"[Name][name]","functions":"","semver":"1.0.0","children":[],"color":{"id":"","v":0,"text":""},"iconName":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null}},"applicationLayoutOptions":{"id":"","v":0,"text":""},"documentLayoutOptions":{"id":"","v":0,"text":""}},"locks":[],"lockRefs":[],"created":{"at":"2017-08-23T08:24:50+02:00","by":"","from":"","client":"import"},"modified":{"at":"2018-01-25T11:53:43+01:00","by":"","from":"","client":"server"},"t":1516877623146,"ct":1478183386922,"a_depth":2,"a":["system","system-folder-forms-folder"],"a_forms":["system-folder-form","form-folder"],"inheritedLocks":[null,null,null],"stamps":[]},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283"],"a_depth":2,"a_forms":["folder","application-form"],"created":{"at":"2025-03-14T15:12:23+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1741965143669,"data":{"description":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Fallback Designs"},"f":{"id":"design-folder","text":"Design Folder","v":"4fccf7c8ead30dd3"},"id":"f1899d3b-4673-4033-afa0-2d9c540c326d","inheritedLocks":[null,null,null],"locks":[],"modified":{"at":"2025-03-14T15:12:23+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"009b3a60-72d5-46f6-8dc6-7f9001e03283","stamps":[],"t":1741965143672,"v":"initial"},{"id":"b9b17d13-b861-425a-9c17-d27d18d5be06","v":"initial","p":"8884dd6d-4320-4de2-91fe-6777ecfebec9","f":{"id":"form-folder","v":"e2e87df32e325504","text":"Form Folder"},"data":{"name":"Forms","description":""},"locks":[],"created":{"at":"2020-05-08T08:52:36+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2020-05-08T08:52:36+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1588927956513,"ct":1588927956513,"a_depth":2,"a":["apps","8884dd6d-4320-4de2-91fe-6777ecfebec9"],"a_forms":["folder","application-form"],"inheritedLocks":[null,null,null],"stamps":[],"dts":1692186558804},{"id":"e25401a7-eca4-4c53-a20e-b30df594d3a7","v":"ae530edad64cde0e","p":"0c440c7a-219d-4465-9cbe-2d0eff6ec7ad","f":{"id":"form-folder","v":"9b1a050f5d4e0dec","text":"Form Folder"},"data":{"name":"Forms","description":"","controls":[],"designs":[]},"locks":[],"created":{"at":"2019-09-13T09:20:42+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2019-09-13T09:20:42+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1740666014599,"ct":1740666014599,"a_depth":2,"a":["apps","0c440c7a-219d-4465-9cbe-2d0eff6ec7ad"],"a_forms":["folder","application-form"],"inheritedLocks":[null,null,null],"stamps":[],"previous":{"v":"initial","f":{"id":"form-folder","v":"e2e87df32e325504","text":"Form Folder"}},"meta":{"modified":{"at":"2025-02-27T14:20:14+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"command-execution-right-form","v":"fea4b3b7a1c967e0","p":"system-forms","f":{"id":"form","v":"cac2c00e9d3adbaa","text":"Form"},"data":{"name":"Command Execution Right","tags":"","allowUndefinedFields":false,"definition":"[Name (optional)][name]\n\n[Description][description]\n[description]: Text\n\n## Target Forms\n\n[Apply to all Forms][applyToAllForms]\n[applyToAllForms]: switch\n\n[Apply only to these Forms][targetForms]\n[targetForms]: /form (0-n)\n\n## Commands\n\n[Allow Execution of all Commands][allowAllCommands]\n[allowAllCommands]: switch\n\n[Allow Execution of only these Commands][allowedCommands]\n[allowedCommands]: /command-form (0-n)\n\n","functions":"","defaults":"","newTemplate":{"id":"","v":"","text":""},"newAction":{"id":"","v":"","text":""},"allowedChildrenForms":[],"commands":[],"namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"","v":"","text":""},"description":""},"locks":[],"created":{"at":"2017-08-23T08:24:50+02:00","by":"","from":"","client":"import"},"modified":{"at":"2023-08-14T11:31:45+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1719473825370,"ct":1719473825370,"a_depth":2,"a":["system","system-forms"],"a_forms":["system-folder-form","repository-folder-form"],"inheritedLocks":[null,null,null],"stamps":[],"previous":{"v":"829789b8e1a263e3","f":{"id":"form","v":"24ab84939535fdcd","text":"Form"}},"meta":{"modified":{"at":"2024-06-27T07:37:05+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"a":["system","system-forms"],"a_depth":2,"a_forms":["system-folder-form","repository-folder-form"],"created":{"at":"2018-04-19T18:20:52+02:00","by":"","client":"server","from":""},"ct":1645019726849,"data":{"allowedChildrenForms":[],"commands":[],"definition":"[Name][name] [Applies to][applies]\n\n# Template\n\n{Html}\n[Template][template]\n\n# Styles\n\n{css}\n[CSS][css]\n\n# Controller\n\n{aeppic:code-layout-controller}\n[Controller][controller]\n\n# Dependencies\n\n[Packages][packages]\n[packages]: /package-form (0-n)\n\n# Parameters\n\n[Parameters][parameters]\n[parameters]: text (0-n)\n\n[Parameters Description][parametersDescriptions]\n[parametersDescriptions]: text (0-n)\n\n[Parameters Types][parametersTypes]\n[parametersTypes]: text (0-n) \"string, number, object, boolean\"\n\n[Parameters Controls][parametersControls]\n[parametersControls]: text (0-n) \"Custom control to render the parameter (color, email, phone, address, ...)\"\n\n[Parameters Cardinalities][parametersCardinalities]\n[parametersCardinalities]: text (0-n)\n","description":"","functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Layout","namedIcon":"fab fa-html5","namedIconColor":"","tags":"","theme":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"12ceedaed4c81b21"},"id":"layout-form","inheritedLocks":[null,null,null],"locks":[],"modified":{"at":"2025-10-09T06:47:41+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"system-forms","previous":{"v":"239129c22623e2fc"},"stamps":[],"t":1759992461197,"v":"009ca1eb13023717"},{"id":"4149285b-f8da-44a0-9d06-eff1e81fcb1b","f":{"id":"form","v":"7bfd4bec296acf0a","text":"Form"},"v":"cd1c23aa7f794f6e","p":"system-forms","previous":{"v":"0d792032cff6c171"},"data":{"name":"Navigation Target","description":"","definition":"[Title][title]\n\nTitle to display.\n\n[Navigate To][target]\n\nWhere clicking to will navigate to.\n\n[Sort Order][order]\n\nSort order index in navigation list\n\n[Display Style][style]\n\nHow to display the target in the navigation.\n\n[Designs To Use][designs]\n\nComma separated list of design names to use\nfor showing the target. Defaults to `nav`.\n\n{markdown}\n[Description][description]\n\n[order]: Number\n[target]: Ref\n[style]: Select\n  - title: Show Title\n  - design: Show Design","color":{"text":"Light Blue - 500","id":"dee7226d-4935-44a8-855a-46ef176f0b10","v":"initial"},"icon":{"name":"iconmonstr-arrow-24-icon.svg","size":785,"type":"image/svg+xml","sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":1412957255000,"modified":1412957255000,"read":null,"imported":1414517813288}},"headerInfoStyle":"auto","defaultDesignStyle":"auto","semver":"3.0.0"},"locks":[],"lockRefs":[],"created":{"at":"2017-08-23T08:24:50+02:00","by":"","from":"","client":"import"},"modified":{"at":"2017-08-23T08:24:50+02:00","by":"","from":"","client":"import"},"t":1447333423375,"ct":1447333413651,"a":["system","system-forms"],"a_forms":["system-folder-form","repository-folder-form"],"a_depth":2,"inheritedLocks":[null,null,null],"stamps":[]},{"id":"all-commands-execution-right-form","v":"28e8958d81423bc5","p":"system-forms","f":{"id":"form","v":"cac2c00e9d3adbaa","text":"Form"},"data":{"name":"All Commands Execution Right (deprecated)","tags":"","allowUndefinedFields":false,"definition":"[Name (optional)][name]\n\n[Description][description]\n[description]: Text\n\n[Except these Commands][exceptions]\n[exceptions]: /command-form (1-n)","functions":"","defaults":"","newTemplate":{"id":"","v":"","text":""},"newAction":{"id":"","v":"","text":""},"allowedChildrenForms":[],"commands":[],"namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"","v":"","text":""},"description":""},"locks":[],"created":{"at":"2017-08-23T08:24:50+02:00","by":"","from":"","client":"import"},"modified":{"at":"2020-06-30T10:59:02+00:00","by":"8e6c22aa-8c69-4ff8-919a-7032841cf636","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1719473825288,"ct":1719473825288,"a_depth":2,"a":["system","system-forms"],"a_forms":["system-folder-form","repository-folder-form"],"inheritedLocks":[null,null,null],"stamps":[],"previous":{"v":"9019386df2756be6","f":{"id":"form","v":"24ab84939535fdcd","text":"Form"}},"meta":{"modified":{"at":"2024-06-27T07:37:05+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"a":["system","system-forms"],"a_depth":2,"a_forms":["system-folder-form","repository-folder-form"],"created":{"at":"2019-01-24T16:08:59+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","client":"server","from":""},"ct":1719473825370,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[],"commands":[],"defaults":"","definition":"# General\n\n[Name][name]\n\n[Label][label]\n\n{hidden if icon.dataUrl}\n####### \n[Named Icon][namedIcon]\n\n{hidden if !namedIcon}\n######## \n{color}\n[Named Icon Prefered Color][namedIconColor]\n\n\n{hidden if namedIcon}\n####### \n\n[Icon][icon]\n\n[Description][description]\n\n[description]: Text\n[icon]: Image\n\n# Security\n\n{hidden if account.id} \n[Always run on server][serverOnly]\n[serverOnly]: Switch\n\n[Run as][account]\n[account]: /account\n \n{hidden if account.id}\n##### \n> Since no `Account` is selected, the currently logged in `Account` is used (or the backing account).\n> Specifying one means the `Command` and all its `Actions` will have to be executed on the server.\n>\n> In standalone mode (without server) this does not apply and the `Command` will always run locally\n\n{hidden if !account.id}\n##### \n> An `Account` was selected and the `Command` will always run on the server to enforce correct \n> security.\n>\n> In standalon mode (wihtout server at all) this does not apply and the `Command` will always run locally\n\n# Conditions\n\n<blockquote>\n<p>\nThe command is only visible or enabled if all of the specified conditions are true\n</p>\n</blockquote>\n\n{children}\n[Visible Conditions][visibleConditions]\n\n{children}\n[Enabled Conditions][enabledConditions]\n\n[visibleConditions]: /condition-form (0-n)\n[enabledConditions]: /condition-form (0-n)\n\n# Document\n\n\n<blockquote>\n<p>\nA `Command` always has a `Document`, it will be used for processing below. It defaults to the target of the `Command`.\n</p>\n</blockquote>\n\n[Document][document]\n\n> Using the Document field overrides the `document` to use. \n\n{hidden if templateDocument.id}\n[Form][form]\n\n> Specifying a `Form` will create a **new** document with the command's target as the parent. If a `Document` is selected\nabove that document will become the parent\n\n{hidden if form.id}\n#########\n[Template][templateDocument] \n\n> Specifying a `Template` will create a **clone** of the referenced template as a\nchild of the command's target. If a `Document` is selected\nthat will become the parent.\n\n[Clone template only][cloneTemplateDocumentOnly]\n[cloneTemplateDocumentOnly]: switch\n\n> The `Template` will be cloned with all its childrens by default. `Clone template only` will only clone the template, no children.\n\n[document]: Ref\n[form]: /form\n[templateDocument]: Ref\n\n# Actions\n\n<blockquote>\n<p>\nA `Command` can optionally run an `Action` or multiple ones in order. In its scope the following \nproperties will be available.<br><br>\n\n`context.document` - the `Document` as defined above<br>\n`context.target` - the document the `Command` executes on<br>\n`context.command` - the `Command` excecuting<br><br> \n\nAll instances of `Action` will have access to the same `context.document` but not have access to\nany other output of the preceding code. Meaning if an `Action` modifies some other document, the next `Actions`\ncannot read that state. Use `Business Rules` to run change dependendent code.\n\nAll `Actions` will be executed in order. If an `Action` or any of them fail none of the changes will be applied at all. An `Action`\nwill be considered failed if it takes longer than the default timeout to run, throws an Exception or returns a rejected Promise.\n\n<footer>Should the last `Action` return a `Document` (or a Promise of a document) it will be used below.\nIf it doesn't return anything, the `Command` is completed.</footer>\n\n</p>\n</blockquote> \n\n{deprecated|ref}[Action to execute][action] {children}[Action to execute][action]\n[action]: /action-form \n\n{ref list=true}[Actions to execute][actions] {children}[Actions to execute][actions]\n[actions]: /action-form (0-n)\n\n# Result\n\n> If the `Command` results in a `Document`. Either as configured in the\nCommand or as output of the last `Action`.\n\n## Handle Document\n\n[Save the Document][save]\n[save]: Switch\n\n## Navigate to Document\n[Navigation][navigation]\n\n[navigation]: Select\n  - no: \"Don't do anything\"\n  - drillInto: \"Drill into\"\n  - navigate: \"Navigate to it\"\n  - dialog: \"Show in Dialog\"\n  - back: \"Navigate Back\"\n\n{hidden if navigation !== 'dialog'}\n[Dialog][navigationTarget]\n[navigationTarget]: /dialog-form\n  ","description":"","functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Command","namedIcon":"fa fa-terminal","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"tags":"","theme":{"id":"","text":"","v":""},"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"cac2c00e9d3adbaa"},"id":"command-form","inheritedLocks":[null,null,null],"locks":[],"modified":{"at":"2024-11-13T15:53:35+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"system-forms","previous":{"v":"50a122fed1d3be5e"},"stamps":[],"t":1731513215636,"v":"abb4502137c21107"},{"a":["apps","77ee8815-2c3a-4bb5-abd9-90541a545a24"],"a_depth":2,"a_forms":["folder","application-form"],"created":{"at":"2017-10-12T17:12:23+02:00","by":"","client":"c36ba150-84c6-4bd2-9239-34164bdf8de5","from":""},"ct":1755681794819,"data":{"controls":[],"description":"","designs":[],"name":"Forms"},"f":{"id":"form-folder","text":"Form Folder","v":"9b1a050f5d4e0dec"},"id":"b42e5a69-6cf0-4b55-928a-755011005b5a","inheritedLocks":[null,null,null],"locks":[],"meta":{"modified":{"at":"2025-08-20T09:23:14+00:00","backedBy":null,"by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","client":"server","from":"","impersonatedBy":null}},"modified":{"at":"2017-10-12T17:12:30+02:00","by":"","client":"c36ba150-84c6-4bd2-9239-34164bdf8de5","from":""},"p":"77ee8815-2c3a-4bb5-abd9-90541a545a24","previous":{"f":{"id":"form-folder","text":"Form Folder","v":"e2e87df32e325504"},"v":"7abe642c34a17d6d"},"stamps":[],"t":1755681794819,"v":"62ef5392e89e596f"},{"f":{"id":"folder","v":"f1e4977dbee77607","text":"Folder"},"p":"b91e3079-75ae-49cd-981b-3053bf47208c","data":{"name":"Formulare","description":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null}}},"id":"e7a0be94-cd94-4210-875e-0cceb7e8bc6c","v":"e08ca8d466f11cfa","t":1467644279217,"ct":1467644279190,"previous":{"v":"initial"},"modified":{"at":"2017-09-15T10:29:31+02:00","by":"","from":"","client":"import"},"created":{"at":"2017-09-15T10:29:31+02:00","by":"","from":"","client":"import"},"locks":[],"lockRefs":[],"inheritedLocks":[null,null,null],"a":["apps","b91e3079-75ae-49cd-981b-3053bf47208c"],"a_forms":["folder","application-form"],"a_depth":2,"stamps":[]},{"id":"169e87e0-0379-48e1-8c94-8fadac5969bb","v":"initial","cloneOf":{"id":"286fef33-fdfd-4fcf-a5c6-bd5415bc1fc8","v":"fcb05ac4bb627d15","text":"Forms"},"originalCloneOf":{"id":"286fef33-fdfd-4fcf-a5c6-bd5415bc1fc8","v":"fcb05ac4bb627d15","text":"Forms"},"p":"a590ce5b-28fc-4f85-9049-d006e1b8f880","f":{"id":"form-folder","v":"cb7204e5b9d8da77","text":"Form Folder"},"data":{"name":"Forms","description":""},"locks":[],"created":{"at":"2023-04-20T13:12:29+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2023-04-20T13:12:29+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1681996349889,"ct":1681996349889,"a_depth":2,"a":["apps","a590ce5b-28fc-4f85-9049-d006e1b8f880"],"a_forms":["folder","application-form"],"inheritedLocks":[null,null,null],"stamps":[],"dts":1738920021877},{"id":"f5966f1d-7108-4be4-801e-8f957c6f4150","v":"initial","p":"d10eebac-6285-4412-8451-55d1bf2fc849","f":{"id":"form-folder","v":"e2e87df32e325504","text":"Form Folder"},"data":{"name":"Ordner Formulare","description":""},"locks":[],"created":{"at":"2019-01-31T15:06:51+00:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2019-01-31T15:06:51+00:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1548947211242,"ct":1548947211241,"a_depth":2,"a":["apps","d10eebac-6285-4412-8451-55d1bf2fc849"],"a_forms":["folder","application-form"],"inheritedLocks":[null,null,null],"stamps":[],"dts":1568733283419},{"id":"dashboard-form","v":"975321c0c04fb8dc","p":"system-forms","f":{"id":"form","v":"cac2c00e9d3adbaa","text":"Form"},"data":{"name":"Dashboard","tags":"","allowUndefinedFields":false,"definition":"[Name][name]\n\n[Description][description]\n\n[description]: Text","functions":"","defaults":"","newTemplate":{"id":"","v":"","text":""},"newAction":{"id":"","v":"","text":""},"allowedChildrenForms":[],"commands":[],"namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"","v":"","text":""},"description":""},"locks":[],"created":{"at":"2017-08-23T08:24:50+02:00","by":"","from":"","client":"import"},"modified":{"at":"2020-07-06T19:07:35+00:00","by":"8e6c22aa-8c69-4ff8-919a-7032841cf636","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1719473825405,"ct":1719473825405,"a_depth":2,"a":["system","system-forms"],"a_forms":["system-folder-form","repository-folder-form"],"inheritedLocks":[null,null,null],"stamps":[],"previous":{"v":"86f796b6c7b3e7f1","f":{"id":"form","v":"24ab84939535fdcd","text":"Form"}},"meta":{"modified":{"at":"2024-06-27T07:37:05+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"08a88408-534b-4ca2-b96e-7ee12b00e6d2","v":"initial","p":"c978f91a-22e9-434c-9ad0-c9781eeae198","f":{"id":"form-folder","v":"e2e87df32e325504","text":"Form Folder"},"data":{"name":"Formulare.old","description":""},"locks":[],"created":{"at":"2020-05-08T08:51:32+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2020-05-08T08:51:32+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1588927892448,"ct":1588927892448,"a_depth":2,"a":["apps","c978f91a-22e9-434c-9ad0-c9781eeae198"],"a_forms":["folder","application-form"],"inheritedLocks":[null,null,null],"stamps":[],"dts":1588927892244},{"id":"5358044d-ffd1-4e97-887d-c18c22120229","v":"c9f286226c748cce","p":"e83af4c0-db7e-438f-bf78-60a14245d6d9","f":{"id":"folder","v":"60bfdadb874a9f10","text":"Folder"},"data":{"name":"Forms","description":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null}}},"locks":[],"created":{"at":"2018-09-12T08:41:05+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2021-01-29T13:46:21+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1611927981412,"ct":1611927981412,"a_depth":2,"a":["apps","e83af4c0-db7e-438f-bf78-60a14245d6d9"],"a_forms":["folder","application-form"],"inheritedLocks":[null,null,null],"stamps":[],"previous":{"v":"initial","f":{"id":"folder","v":"f1e4977dbee77607","text":"Folder"}}},{"id":"ca4c359f-4705-4ab0-b018-b39e0d324486","v":"initial","cloneOf":{"id":"286fef33-fdfd-4fcf-a5c6-bd5415bc1fc8","v":"initial","text":"Forms"},"originalCloneOf":{"id":"286fef33-fdfd-4fcf-a5c6-bd5415bc1fc8","v":"initial","text":"Forms"},"p":"69555db0-1399-48c4-b87f-d8fa2f7b656f","f":{"id":"form-folder","v":"e2e87df32e325504","text":"Form Folder"},"data":{"name":"Forms","description":""},"locks":[],"created":{"at":"2019-02-19T08:54:34+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2019-02-19T08:54:34+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1550566474057,"ct":1550566474055,"a_depth":2,"a":["apps","69555db0-1399-48c4-b87f-d8fa2f7b656f"],"a_forms":["folder","application-form"],"inheritedLocks":[null,null,null],"stamps":[],"dts":1677596469297},{"a":["apps","83c76376-420e-4231-9275-d0fe2ab47c32"],"a_depth":2,"a_forms":["folder","application-form"],"created":{"at":"2018-05-24T16:28:35+02:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","client":"server","from":""},"ct":1592912873790,"data":{"aliases":{"id":"","text":"","v":""},"controls":[],"description":"","dialogForms":[{"id":"20b72958-7c4e-4292-b55c-7234d6f18638","text":"Abhilfemaßnahme","v":"073a054bb8379458"},{"id":"5a5bfb3c-6aed-478f-a3bf-ab40dc7c8f62","text":"Ausnahmen für Datenübermittlung","v":"dcfbe17c822a829a"},{"id":"0697d5e8-13be-40b8-bfb7-1159a5de5795","text":"Berechtigte Rollen","v":"000977b736d28e5b"},{"id":"f1edd886-631d-40d3-b2a2-807112d6ab2d","text":"AV-Verträge","v":"0e15b83bf1e9f1b0"},{"id":"451d02a6-cc3f-4d89-b8c3-2c30655372c6","text":"Datenschutzfolgeabschätzung","v":"4fc49084d32d20bc"},{"id":"45572470-7113-4550-aa45-26577acfa35e","text":"Evaluierung","v":"2fdf0035fbfec980"},{"id":"51ac1f44-c6fe-4a28-b4fa-7291e4581b1d","text":"Garantien Datenüberlassung an Drittland","v":"00de65634829ea8d"},{"id":"468454dc-b105-4978-ab8b-604cefc3025f","text":"Gewährleistung Belastbarkeit","v":"5750d794306ed5cb"},{"id":"49aaa4b8-995a-4e83-b851-dcd081c574d8","text":"Integrität","v":"58d0f30060b33af7"},{"id":"c91f85c0-63af-48ac-bc69-94561b27025a","text":"IT-Systeme","v":"f1f06023271151a2"},{"id":"1aecf438-fa25-4295-b753-55253ff04f87","text":"Kategorie betroffener Personengruppe","v":"867cf3fabb1b391b"},{"id":"3e8f2e25-3e2a-4559-befb-3c65a630f4b2","text":"Löschungsfristen","v":"d3f4fb7cc95e66a7"},{"id":"2a99ea0c-553f-4891-833e-db02956e0b57","text":"Maßnahmen zur Verschlüsselung","v":"8764368cc59a09ca"},{"id":"0cf453d1-8428-4f0a-b820-f31b22bfbfff","text":"Maßnahmenvertraulichkeit","v":"ddf6f3d4afffd222"},{"id":"405d43a4-7d0f-4ee5-a704-834485a49e05","text":"Pseudonymisierung","v":"1e56bc19f8d481c5"},{"id":"e86d03d7-1711-4138-b4ee-990efbd1a988","text":"Rechtsgrundlage","v":"8f74e162baee7aa9"},{"id":"e3489c24-44d2-4407-880a-a501ec8be8b0","text":"Verfügbarkeit","v":"a2c6a52472ca99b8"},{"id":"29c7a599-f793-4654-8ab3-86fc91d3b50d","text":"Verfügbarkeit nach Zwischenfall","v":"9fb5dca1f57337c4"},{"id":"976f1ac4-4831-4924-8b5a-c7241d9ffe31","text":"Zugeordnete Mitarbeiter","v":"68131e77aac29f67"}],"globalRoutingTables":[],"icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"DSGVO","namedIcon":"far fa-shield-halved","namedIconColor":"","routingPrefixAlias":"","routingTables":[],"stylesheets":[]},"f":{"id":"application-form","text":"Application","v":"713ddb8f3bf7cfca"},"id":"ba440134-1703-495e-b869-0f0c8d447f75","inheritedLocks":[null,null,null],"locks":[],"modified":{"at":"2025-11-28T11:45:13+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"83c76376-420e-4231-9275-d0fe2ab47c32","previous":{"v":"3fee4305cdadda7c"},"stamps":[],"t":1764330313030,"v":"3298ca554ab34e6b"},{"id":"726c1664-cf32-4036-94b2-5508e10c0ecd","v":"initial","p":"13d49bff-7e17-4694-b28f-de734b9abd9b","f":{"id":"form-folder","v":"577dbed0412b397a","text":"Form Folder"},"data":{"name":"Forms","structural":false,"description":""},"locks":[],"created":{"at":"2020-09-01T09:49:49+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2020-09-01T09:49:49+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1598953789808,"ct":1598953789807,"a_depth":2,"a":["apps","13d49bff-7e17-4694-b28f-de734b9abd9b"],"a_forms":["folder","application-form"],"inheritedLocks":[null,null,null],"stamps":[],"dts":1623742937868},{"id":"fe411da7-3843-4c17-acf5-aaeba96d1a85","v":"initial","cloneOf":{"id":"4ff1ed85-3f7e-487a-a5bf-6f311dd8d08e","v":"a9bef99e97c3e7fb","text":"Folder Forms"},"originalCloneOf":{"id":"4ff1ed85-3f7e-487a-a5bf-6f311dd8d08e","v":"a9bef99e97c3e7fb","text":"Folder Forms"},"p":"4a58cfdb-e1ef-40a2-8a89-57157ddda7d0","f":{"id":"form-folder","v":"577dbed0412b397a","text":"Form Folder"},"data":{"name":"Folder Forms","structural":true,"description":""},"locks":[],"created":{"at":"2021-10-01T09:50:28+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-10-01T09:50:28+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1633081828180,"ct":1633081828178,"a_depth":2,"a":["apps","4a58cfdb-e1ef-40a2-8a89-57157ddda7d0"],"a_forms":["folder","application-form"],"inheritedLocks":[null,null,null],"stamps":[],"dts":1702376750536},{"id":"3ec659f4-8a0c-4f01-a2ce-aed6bafad038","v":"initial","p":"30363d01-3c4c-407b-861e-c0ef1ca6be75","f":{"id":"form","v":"4fa42fcff3786d1e","text":"Form"},"data":{"name":"icon checker","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2020-05-08T08:52:50+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2020-05-08T08:52:50+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1588927970980,"ct":1588927970980,"a_depth":2,"a":["apps","30363d01-3c4c-407b-861e-c0ef1ca6be75"],"a_forms":["folder","application-form"],"inheritedLocks":[null,null,null],"stamps":[]},{"id":"97851ae4-ed6d-45fa-b1a0-4cab2145f189","v":"initial","p":"9302d29e-bf32-4350-a5fd-18b542d1b5db","f":{"id":"form-folder","v":"e2e87df32e325504","text":"Form Folder"},"data":{"name":"Forms","description":""},"locks":[],"created":{"at":"2020-05-08T08:50:48+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2020-05-08T08:50:48+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1588927848558,"ct":1588927848558,"a_depth":2,"a":["apps","9302d29e-bf32-4350-a5fd-18b542d1b5db"],"a_forms":["folder","application-form"],"inheritedLocks":[null,null,null],"stamps":[],"dts":1636040939946},{"f":{"id":"form-folder","v":"e2e87df32e325504","text":"Form Folder"},"p":"21ba9d78-2545-4495-a24b-129f934de2f1","data":{"name":"Forms","description":""},"id":"252f693f-4fdd-4aa4-8185-95c2e0539c62","v":"initial","t":1467644302756,"ct":1467644302756,"modified":{"at":"2017-09-15T10:29:32+02:00","by":"","from":"","client":"import"},"created":{"at":"2017-09-15T10:29:32+02:00","by":"","from":"","client":"import"},"locks":[],"lockRefs":[],"inheritedLocks":[null,null,null],"a":["apps","21ba9d78-2545-4495-a24b-129f934de2f1"],"a_forms":["folder","application-form"],"a_depth":2,"stamps":[],"dts":1467644306525},{"id":"83e0eafe-40b0-4a4d-a4bf-88940f2d098b","v":"c720749d57305335","previous":{"v":"initial","p":"d0cb8033-d9c9-4884-99f5-a402ba34c3fc"},"p":"9c1db9f8-e61a-46ef-9fb2-ca409e980f45","f":{"id":"form-folder","v":"e2e87df32e325504","text":"Form Folder"},"data":{"name":"Formulare","description":""},"locks":[],"created":{"at":"2018-11-27T14:57:39+00:00","by":"2695f56c-96e6-4009-8e2f-d545ea1e02aa","from":"","client":"server"},"modified":{"at":"2019-09-04T11:30:25+00:00","by":null,"backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1567596625940,"ct":1543330659267,"a_depth":2,"a":["apps","9c1db9f8-e61a-46ef-9fb2-ca409e980f45"],"a_forms":["folder","application-form"],"inheritedLocks":[null,null,null],"stamps":[],"dts":1554372075641},{"id":"2fee3f35-6446-483d-aafe-4d2bc1deb83e","v":"initial","cloneOf":{"id":"286fef33-fdfd-4fcf-a5c6-bd5415bc1fc8","v":"fcb05ac4bb627d15","text":"Forms"},"originalCloneOf":{"id":"286fef33-fdfd-4fcf-a5c6-bd5415bc1fc8","v":"fcb05ac4bb627d15","text":"Forms"},"p":"bfeee3b0-ad25-4bba-a51c-01584d72c45a","f":{"id":"form-folder","v":"cb7204e5b9d8da77","text":"Form Folder"},"data":{"name":"Forms","description":""},"locks":[],"created":{"at":"2024-03-18T15:13:24+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-03-18T15:13:24+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1710774804736,"ct":1710774804736,"a_depth":2,"a":["apps","bfeee3b0-ad25-4bba-a51c-01584d72c45a"],"a_forms":["folder","application-form"],"inheritedLocks":[null,null,null],"stamps":[],"dts":1732194103684},{"id":"2b5725a7-9e8f-4993-a3e8-ef9c1ff0be8c","v":"1d50a45e397a34d9","p":"04632e3e-9132-4927-b91d-3c28d1afe3e9","f":{"id":"form-folder","v":"cb7204e5b9d8da77","text":"Form Folder"},"data":{"name":"Forms","description":""},"locks":[],"created":{"at":"2018-08-07T12:19:04+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2018-08-07T12:19:13+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1719319448726,"ct":1719319448726,"a_depth":2,"a":["system","04632e3e-9132-4927-b91d-3c28d1afe3e9"],"a_forms":["system-folder-form","folder"],"inheritedLocks":[null,null,null],"stamps":[],"previous":{"v":"30c4c4745b761e6c","f":{"id":"form-folder","v":"e2e87df32e325504","text":"Form Folder"}},"meta":{"modified":{"at":"2024-06-25T14:44:08+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}},"dts":1719319448511},{"id":"55112711-674e-46d1-a76a-3660e0862851","v":"initial","p":"fb23c419-a6bb-4f45-9f62-e79baa359f89","f":{"id":"form-folder","v":"e2e87df32e325504","text":"Form Folder"},"data":{"name":"Forms","description":""},"locks":[],"created":{"at":"2020-05-08T08:52:36+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2020-05-08T08:52:36+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1588927956711,"ct":1588927956711,"a_depth":2,"a":["apps","fb23c419-a6bb-4f45-9f62-e79baa359f89"],"a_forms":["folder","application-form"],"inheritedLocks":[null,null,null],"stamps":[],"dts":1588927956741},{"a":["system","system-folder-forms-folder"],"a_depth":2,"a_forms":["system-folder-form","form-folder"],"created":{"at":"2019-03-12T14:17:48+00:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","client":"server","from":""},"ct":1552400268859,"data":{"allowedChildrenForms":[],"definition":"[Name][name]\n\n[Description][description]\n[description]: Text\n\n# Styling\n\n## Themes \n\n[Base Themes][baseThemes]\n[baseThemes]: /theme-form (0-n)\n\n> Base Themes are used by the unified stylesheet builder. They must\n> be selected to match the unified stylesheet builder type. \n \n[Theme Components][themeComponents]\n[themeComponents]: /theme-form (0-n)\n\n> Theme components can define additional theme rules and layers.\n\n[Default Theme][defaultTheme]\n[defaultTheme]: /theme-form\n\n[Available Themes][availableThemes]\n[availableThemes]: /theme-form (0-n)\n\n## Styles\n\n[Default Stylesheets][stylesheets]\n[stylesheets]: /stylesheet-form (0-n)\n\n[Additional Control Folders][controls]\n[controls]: /control-folder (0-n)\n\n[Additional Design Folders][designs]\n[designs]: /design-folder (0-n)\n\n# Layouts\n\n{ref list=true}\n[Additional global layouts][globalLayouts]\n[globalLayouts]: /layout-form (0-n)\n\n[Fallback Layout][fallbackLayout]\n[fallbackLayout]: /layout-form\n\n# Routing\n\n[Default Application][defaultApp]\n[defaultApp]: /application-form\n\n[Ignored Application Routes][ignoredApps]\n[ignoredApps]: /application-form (0-n)\n\n[Global Routing Tables][routingTables]\n[routingTables]: /225957b2-bb4a-4b11-954e-66cc41ab1b6d (0-n)\n\n{hidden}\n#\n\n[Anonymous Access List][anonymousAccessList]\n[anonymousAccessList]: Ref (0-n)\n\n# Translations\n\n{ref list=true}\n[Default Translations][translations]\n[translations]: /b29709d0-8fd5-4da8-8bbc-4f61fb9f82d9 (0-n)\n","description":"","functions":"","name":"Root Folder","tags":""},"f":{"id":"form","text":"Form","v":"e536340ccf6b237c"},"id":"root-folder-form","inheritedLocks":[null,null,null],"locks":[],"modified":{"at":"2025-09-05T12:39:11+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"system-folder-forms-folder","previous":{"v":"9bd2f0a6714a0c3f"},"stamps":[],"t":1757075951737,"v":"519f32454afc29f4"},{"id":"46c5b63b-50ff-47ea-83a8-72c35dc21618","v":"initial","previous":{"v":""},"p":"9e7fd821-5bd9-4314-a542-34431752f51f","f":{"id":"form-folder","v":"e2e87df32e325504","text":"Form Folder"},"data":{"name":"Forms","description":""},"locks":[],"created":{"at":"2018-04-18T15:40:54+02:00","by":"","backedBy":"","from":"","client":"server"},"modified":{"at":"2018-04-18T15:40:54+02:00","by":"","backedBy":"","from":"","client":"server"},"t":1524058854441,"ct":1524058854429,"a_depth":2,"a":["apps","9e7fd821-5bd9-4314-a542-34431752f51f"],"a_forms":["folder","application-form"],"inheritedLocks":[null,null,null],"stamps":[],"dts":1689236549706},{"id":"b6b5ad5b-124f-4b1c-8f55-74294451a2ba","v":"initial","p":"49babc91-9123-4d92-b850-ce4d10f0e1b4","f":{"id":"form-folder","v":"e2e87df32e325504","text":"Form Folder"},"data":{"name":"Forms","description":""},"locks":[],"created":{"at":"2020-05-08T08:51:39+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2020-05-08T08:51:39+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1588927899948,"ct":1588927899948,"a_depth":2,"a":["apps","49babc91-9123-4d92-b850-ce4d10f0e1b4"],"a_forms":["folder","application-form"],"inheritedLocks":[null,null,null],"stamps":[],"dts":1738944388554},{"id":"page-form","v":"a77a8b9942ec9d62","previous":{"v":"0737c82cebbfea6d","f":{"id":"form","v":"7bfd4bec296acf0a","text":"Form"}},"p":"system-forms","f":{"id":"form","v":"85261b4ecd01c3ab","text":"Form"},"data":{"name":"Page","tags":"","definition":"[Name][name]\n\n{markdown}\n[Content][content]\n\n[content]: Text","functions":"","allowedChildrenForms":[],"description":"Markdown Content Page"},"locks":[],"created":{"at":"2018-12-11T14:38:27+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2019-12-10T18:25:51+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1576002351901,"ct":1544539107194,"a_depth":2,"a":["system","system-forms"],"a_forms":["system-folder-form","repository-folder-form"],"inheritedLocks":[null,null,null],"stamps":[]},{"id":"9d7c3582-4c41-47ef-938e-2cb3880ab789","v":"initial","cloneOf":{"id":"286fef33-fdfd-4fcf-a5c6-bd5415bc1fc8","v":"e2f711326de79b99","text":"Forms"},"originalCloneOf":{"id":"286fef33-fdfd-4fcf-a5c6-bd5415bc1fc8","v":"e2f711326de79b99","text":"Forms"},"p":"02c3f939-f382-4e27-b3d4-bea5fdd6e092","f":{"id":"form-folder","v":"577dbed0412b397a","text":"Form Folder"},"data":{"name":"Forms","structural":false,"description":""},"locks":[],"created":{"at":"2020-09-18T14:43:25+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2020-09-18T14:43:25+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1600440205690,"ct":1600440205689,"a_depth":2,"a":["apps","02c3f939-f382-4e27-b3d4-bea5fdd6e092"],"a_forms":["folder","application-form"],"inheritedLocks":[null,null,null],"stamps":[],"dts":1601304520298},{"id":"50c9b51e-f477-48c0-94a9-b1445b287fd7","v":"initial","previous":{"v":""},"p":"system-forms","f":{"id":"form","v":"af06aca6217d20c5","text":"Form"},"data":{"name":"System Preferences","description":"","definition":"[Name][name]\n\n[Preferences][preferences]\n[preferences]: /643508ca-fc18-4d2e-bb13-b3c3f2ac053b (0-n)\n","functions":"","semver":"","allowedChildrenForms":[],"layout":{"id":"","v":"","text":""},"color":{"id":"","v":"","text":""},"iconName":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null}},"applicationLayoutOptions":{"id":"","v":"","text":""},"documentLayoutOptions":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2018-04-18T15:35:28+02:00","by":"","backedBy":"","from":"","client":"server"},"modified":{"at":"2018-04-18T15:35:28+02:00","by":"","backedBy":"","from":"","client":"server"},"t":1524058528257,"ct":1524058528209,"a_depth":2,"a":["system","system-forms"],"a_forms":["system-folder-form","repository-folder-form"],"inheritedLocks":[null,null,null],"stamps":[]},{"id":"79718664-ed22-4b52-9c10-037881df3578","v":"initial","p":"599db2de-4e07-4722-98bd-7f42d498b352","f":{"id":"form-folder","v":"e2e87df32e325504","text":"Form Folder"},"data":{"name":"Forms","description":""},"locks":[],"created":{"at":"2020-05-08T08:51:33+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2020-05-08T08:51:33+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1588927893357,"ct":1588927893357,"a_depth":2,"a":["apps","599db2de-4e07-4722-98bd-7f42d498b352"],"a_forms":["folder","application-form"],"inheritedLocks":[null,null,null],"stamps":[],"dts":1738336213820},{"id":"7a20d482-9f09-47a0-984e-f9aaec24e338","v":"initial","p":"94a64d89-d204-4918-b147-d717914fb03e","f":{"id":"folder","v":"60bfdadb874a9f10","text":"Folder"},"data":{"name":"Forms (Fragebögen)","description":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null}}},"locks":[],"created":{"at":"2022-11-08T15:31:18+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2022-11-08T15:31:18+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1667921478335,"ct":1667921478335,"a_depth":2,"a":["apps","94a64d89-d204-4918-b147-d717914fb03e"],"a_forms":["folder","application-form"],"inheritedLocks":[null,null,null],"stamps":[]},{"id":"13525440-3a25-44be-851b-1bcd803bff80","v":"initial","cloneOf":{"id":"286fef33-fdfd-4fcf-a5c6-bd5415bc1fc8","v":"e2f711326de79b99","text":"Forms"},"originalCloneOf":{"id":"286fef33-fdfd-4fcf-a5c6-bd5415bc1fc8","v":"e2f711326de79b99","text":"Forms"},"p":"a4f3e35e-f945-4c8b-a7a4-81e987585974","f":{"id":"form-folder","v":"577dbed0412b397a","text":"Form Folder"},"data":{"name":"Forms","structural":false,"description":""},"locks":[],"created":{"at":"2020-09-16T13:21:34+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2020-09-16T13:21:34+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1600262494307,"ct":1600262494307,"a_depth":2,"a":["apps","a4f3e35e-f945-4c8b-a7a4-81e987585974"],"a_forms":["folder","application-form"],"inheritedLocks":[null,null,null],"stamps":[],"dts":1708338966441},{"id":"35131030-70b7-4f91-a70d-5e424770d2e3","v":"initial","p":"30363d01-3c4c-407b-861e-c0ef1ca6be75","f":{"id":"form","v":"8c1496d16c344c2e","text":"Form"},"data":{"name":"new-design","tags":"","definition":"","functions":"","allowedChildrenForms":[],"description":""},"locks":[],"created":{"at":"2019-03-27T09:05:36+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2019-03-27T09:05:36+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1553677536448,"ct":1553677536447,"a_depth":2,"a":["apps","30363d01-3c4c-407b-861e-c0ef1ca6be75"],"a_forms":["folder","application-form"],"inheritedLocks":[null,null,null],"stamps":[]},{"id":"2acd7a85-e378-49d3-a959-75ea2cab13a4","v":"initial","previous":{"v":""},"p":"90340217-c9b1-46fe-9b56-163953318522","f":{"id":"folder","v":"f1e4977dbee77607","text":"Folder"},"data":{"name":"Forms","description":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null}}},"locks":[],"lockRefs":[],"created":{"at":"2017-12-22T10:19:13+01:00","by":"","from":"","client":"f850c977-4f2e-4f6c-8389-ad1230848f0e"},"modified":{"at":"2017-12-22T10:19:13+01:00","by":"","from":"","client":"f850c977-4f2e-4f6c-8389-ad1230848f0e"},"t":1513934353342,"ct":1513934349453,"a_depth":2,"a":["apps","90340217-c9b1-46fe-9b56-163953318522"],"a_forms":["folder","application-form"],"inheritedLocks":[null,null,null],"stamps":[]},{"id":"bd0803a8-829f-47b0-973c-c2d9f29cb94d","v":"initial","p":"bafa23ba-a0dc-406d-8854-77ea31b4ea4b","f":{"id":"form-folder","v":"e2e87df32e325504","text":"Form Folder"},"data":{"name":"Forms","description":""},"locks":[],"created":{"at":"2019-03-11T13:45:01+00:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2019-03-11T13:45:01+00:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1552311901232,"ct":1552311901232,"a_depth":2,"a":["apps","bafa23ba-a0dc-406d-8854-77ea31b4ea4b"],"a_forms":["folder","application-form"],"inheritedLocks":[null,null,null],"stamps":[],"dts":1731921989390},{"id":"23f1e515-5ea7-455e-b0a7-13649bece902","v":"initial","cloneOf":{"id":"286fef33-fdfd-4fcf-a5c6-bd5415bc1fc8","v":"e2f711326de79b99","text":"Forms"},"originalCloneOf":{"id":"286fef33-fdfd-4fcf-a5c6-bd5415bc1fc8","v":"e2f711326de79b99","text":"Forms"},"p":"9e6696fa-9328-4499-9fcd-ff1c176d5615","f":{"id":"form-folder","v":"577dbed0412b397a","text":"Form Folder"},"data":{"name":"Forms","structural":false,"description":""},"locks":[],"created":{"at":"2020-12-14T10:29:16+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2020-12-14T10:29:16+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1607941756630,"ct":1607941756630,"a_depth":2,"a":["apps","9e6696fa-9328-4499-9fcd-ff1c176d5615"],"a_forms":["folder","application-form"],"inheritedLocks":[null,null,null],"stamps":[],"dts":1642587565603},{"id":"f6d2a869-980d-4654-ad06-0564b9aa747c","v":"initial","previous":{"v":""},"p":"e4a62254-c6ab-4d0d-a9ae-81934093f6e2","f":{"id":"folder","v":"f1e4977dbee77607","text":"Folder"},"data":{"name":"Forms","description":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null}}},"locks":[],"created":{"at":"2018-04-18T15:37:55+02:00","by":"","backedBy":"","from":"","client":"server"},"modified":{"at":"2018-04-18T15:37:55+02:00","by":"","backedBy":"","from":"","client":"server"},"t":1524058675616,"ct":1524058675616,"a_depth":2,"a":["apps","e4a62254-c6ab-4d0d-a9ae-81934093f6e2"],"a_forms":["folder","application-form"],"inheritedLocks":[null,null,null],"stamps":[]},{"id":"710a1fcc-d225-4fb3-a1aa-64684f397ee6","v":"initial","p":"7ba1fc90-8094-44ce-8f5a-54a0da3999ed","f":{"id":"form-folder","v":"e2e87df32e325504","text":"Form Folder"},"data":{"name":"Forms","description":""},"locks":[],"created":{"at":"2019-01-30T16:07:25+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2019-01-30T16:07:25+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1548864445862,"ct":1548864445859,"a_depth":2,"a":["apps","7ba1fc90-8094-44ce-8f5a-54a0da3999ed"],"a_forms":["folder","application-form"],"inheritedLocks":[null,null,null],"stamps":[],"dts":1610449162910},{"id":"f00d03b9-e59a-4ccc-837a-cbd6a1fca3d3","v":"initial","cloneOf":{"id":"286fef33-fdfd-4fcf-a5c6-bd5415bc1fc8","v":"e2f711326de79b99","text":"Forms"},"originalCloneOf":{"id":"286fef33-fdfd-4fcf-a5c6-bd5415bc1fc8","v":"e2f711326de79b99","text":"Forms"},"p":"41360031-739e-4d68-802b-6af6d89247a3","f":{"id":"form-folder","v":"577dbed0412b397a","text":"Form Folder"},"data":{"name":"Forms","structural":false,"description":""},"locks":[],"created":{"at":"2021-04-15T07:26:53+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-04-15T07:26:53+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1618471613933,"ct":1618471613933,"a_depth":2,"a":["apps","41360031-739e-4d68-802b-6af6d89247a3"],"a_forms":["folder","application-form"],"inheritedLocks":[null,null,null],"stamps":[],"dts":1618472907529},{"id":"df40153d-10cf-4b01-b94f-589eabd75696","v":"ea783813b959594a","previous":{"v":"b68b3b342b54dd47"},"p":"d10eebac-6285-4412-8451-55d1bf2fc849","f":{"id":"form-folder","v":"da674238a5cc9476","text":"Form Folder"},"data":{"name":"Untersuchungsformulare","description":""},"locks":[],"created":{"at":"2018-06-07T15:11:08+00:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","from":"","client":"server"},"modified":{"at":"2019-01-31T15:33:00+00:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1548948780613,"ct":1528384268001,"a_depth":2,"a":["apps","d10eebac-6285-4412-8451-55d1bf2fc849"],"a_forms":["folder","application-form"],"inheritedLocks":[null,null,null],"stamps":[],"dts":1548949058672},{"a":["apps","77ee8815-2c3a-4bb5-abd9-90541a545a24"],"a_depth":2,"a_forms":["folder","application-form"],"created":{"at":"2025-08-22T08:38:24+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1770203689839,"data":{"description":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Fallback Designs Bizpin"},"f":{"id":"design-folder","text":"Design Folder","v":"fa3a66b4a06ff90c"},"id":"1cc4b977-c14d-4587-af47-d6ac230f60b3","inheritedLocks":[null,null,null],"locks":[],"meta":{"modified":{"at":"2026-02-04T11:14:49+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""}},"modified":{"at":"2025-09-22T07:45:33+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"77ee8815-2c3a-4bb5-abd9-90541a545a24","previous":{"f":{"id":"design-folder","text":"Design Folder","v":"4fccf7c8ead30dd3"},"v":"87574c37fe2dfd86"},"stamps":[],"t":1770203689839,"v":"dd3eace64ddefb98"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3"],"a_depth":2,"a_forms":["folder","application-form"],"created":{"at":"2025-08-01T11:50:41+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1754049041575,"data":{"controls":[],"description":"","designs":[],"name":"Forms"},"f":{"id":"form-folder","text":"Form Folder","v":"9b1a050f5d4e0dec"},"id":"05787127-986a-494f-a69e-8733c1176596","inheritedLocks":[null,null,null],"locks":[],"modified":{"at":"2025-08-25T11:57:50+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"af6c380d-2ab5-409a-802f-46dba2b426e3","previous":{"v":"initial"},"stamps":[],"t":1756123070649,"v":"0e3a5ea39b814f53"},{"a":["apps","59edbdbc-2cab-426a-bb42-6e57c5158e4f"],"a_depth":2,"a_forms":["folder","application-form"],"created":{"at":"2025-04-11T07:25:12+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"ct":1744356312547,"data":{"description":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Fallback Designs"},"f":{"id":"design-folder","text":"Design Folder","v":"4fccf7c8ead30dd3"},"id":"b55eaea8-e746-4fa6-85a8-514c2268f1b8","inheritedLocks":[null,null,null],"locks":[],"modified":{"at":"2025-04-11T07:25:27+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"59edbdbc-2cab-426a-bb42-6e57c5158e4f","previous":{"v":"initial"},"stamps":[],"t":1744356327572,"v":"4d0534e3b7fe8e93"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3"],"a_depth":2,"a_forms":["folder","application-form"],"created":{"at":"2025-11-11T10:40:55+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1762857655871,"data":{"description":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"KeepTrack Fallback Design"},"f":{"id":"design-folder","text":"Design Folder","v":"fa3a66b4a06ff90c"},"id":"02132d06-c73b-4101-bde0-2fe98224a35a","inheritedLocks":[null,null,null],"locks":[],"modified":{"at":"2025-11-11T10:40:55+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"af6c380d-2ab5-409a-802f-46dba2b426e3","stamps":[],"t":1762857655873,"v":"initial"},{"id":"efe6c460-ec94-41c6-994b-c27d08d74381","v":"initial","cloneOf":{"id":"286fef33-fdfd-4fcf-a5c6-bd5415bc1fc8","v":"fcb05ac4bb627d15","text":"Forms"},"originalCloneOf":{"id":"286fef33-fdfd-4fcf-a5c6-bd5415bc1fc8","v":"fcb05ac4bb627d15","text":"Forms"},"p":"075a56a2-3d34-402e-82ef-bd1fc7df456a","f":{"id":"form-folder","v":"cb7204e5b9d8da77","text":"Form Folder"},"data":{"name":"Forms","description":""},"locks":[],"created":{"at":"2023-06-16T10:12:46+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2023-06-16T10:12:46+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1686910366996,"ct":1646060310614,"a_depth":2,"a":["apps","075a56a2-3d34-402e-82ef-bd1fc7df456a"],"a_forms":["folder","application-form"],"inheritedLocks":[null,null,null],"stamps":[],"dts":1686912710542},{"id":"4bfbe5fd-cf64-4b07-b91f-17bade3f41f9","v":"initial","cloneOf":{"id":"286fef33-fdfd-4fcf-a5c6-bd5415bc1fc8","v":"fcb05ac4bb627d15","text":"Forms"},"originalCloneOf":{"id":"286fef33-fdfd-4fcf-a5c6-bd5415bc1fc8","v":"fcb05ac4bb627d15","text":"Forms"},"p":"90a38bb1-5683-49d1-b519-203876cc6967","f":{"id":"form-folder","v":"cb7204e5b9d8da77","text":"Form Folder"},"data":{"name":"Forms","description":""},"locks":[],"created":{"at":"2024-01-19T13:34:45+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-01-19T13:34:45+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1705671285611,"ct":1705671285611,"a_depth":2,"a":["apps","90a38bb1-5683-49d1-b519-203876cc6967"],"a_forms":["folder","application-form"],"inheritedLocks":[null,null,null],"stamps":[],"dts":1706182734520},{"a":["apps","e1bc93d1-b6c6-4711-a98f-675371c40326"],"a_depth":2,"a_forms":["folder","application-form"],"created":{"at":"2026-03-23T13:36:48+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"ct":1774273008751,"data":{"description":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Fallback Designs"},"f":{"id":"design-folder","text":"Design Folder","v":"fa3a66b4a06ff90c"},"id":"c5dc85a6-3516-49d2-bf7f-810f2a75a141","inheritedLocks":[null,null,null],"locks":[],"modified":{"at":"2026-03-23T13:36:48+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"p":"e1bc93d1-b6c6-4711-a98f-675371c40326","stamps":[],"t":1774273008752,"v":"initial"},{"a":["apps","94a64d89-d204-4918-b147-d717914fb03e"],"a_depth":2,"a_forms":["folder","application-form"],"created":{"at":"2019-05-03T14:14:37+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":""},"ct":1759147982303,"data":{"controls":[],"description":"","designs":[{"id":"7c0dc244-592b-4950-9539-e451c1fa5ca1","text":"Fallback Designs (Leistungen)","v":"initial"}],"name":"Forms (Leistungen)"},"f":{"id":"form-folder","text":"Form Folder","v":"9b1a050f5d4e0dec"},"id":"da519a4d-e51d-46ae-9ce7-bd3f494d2e8a","inheritedLocks":[null,null,null],"locks":[],"modified":{"at":"2025-09-29T12:14:29+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"94a64d89-d204-4918-b147-d717914fb03e","previous":{"v":"34578b67e2031d1a"},"stamps":[],"t":1759148069983,"v":"bf643586b3f79f71"},{"a":["system","04632e3e-9132-4927-b91d-3c28d1afe3e9"],"a_depth":2,"a_forms":["system-folder-form","folder"],"created":{"at":"2025-11-18T07:45:23+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"ct":1763451923162,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[],"commands":[],"defaults":"","definition":"[name][name]","descendantCommands":[],"description":"","from":[],"functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"List Grouping","namedIcon":"","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"relatedDocuments":[],"tags":"","theme":{"id":"","text":"","v":""},"to":[],"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"16a1fc2c7a734357"},"id":"e9f6cbce-0b0f-4ef3-a7cf-ae0b2ddbce03","inheritedLocks":[null,null,null],"locks":[],"modified":{"at":"2025-11-18T13:52:34+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"04632e3e-9132-4927-b91d-3c28d1afe3e9","previous":{"v":"13725ecf16658f06"},"stamps":[],"t":1763473954995,"v":"436a8885753ba80d"},{"a":["apps","0af4f8a7-729e-4318-8f82-7e976555004e"],"a_depth":2,"a_forms":["folder","application-form"],"created":{"at":"2025-08-15T14:36:37+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1755268597878,"data":{"description":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Forms"},"f":{"id":"folder","text":"Folder","v":"5bc49cc541bc2b80"},"id":"0ae4ef2a-62fc-4042-b07e-e93a134fe055","inheritedLocks":[null,null,null],"locks":[],"meta":{"modified":{"at":"2026-01-08T11:44:06+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""}},"modified":{"at":"2026-01-06T14:41:05+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"p":"0af4f8a7-729e-4318-8f82-7e976555004e","previous":{"a":["apps","77ee8815-2c3a-4bb5-abd9-90541a545a24","da055236-00cd-4165-a0af-1196cca3dd6a"],"a_forms":["folder","application-form","folder"],"p":"da055236-00cd-4165-a0af-1196cca3dd6a","v":"e8eb0528258f13c8"},"stamps":[],"t":1767872646282,"v":"03234f67cc437afc"},{"id":"4e988078-8eed-4c34-9cc2-9b6c3e2cdb2a","v":"initial","p":"fb62ad28-07b0-4a99-91bd-43c297656f12","f":{"id":"form-folder","v":"e2e87df32e325504","text":"Form Folder"},"data":{"name":"Forms","description":""},"locks":[],"created":{"at":"2020-05-08T08:52:46+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2020-05-08T08:52:46+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1588927966703,"ct":1588927966702,"a_depth":2,"a":["apps","fb62ad28-07b0-4a99-91bd-43c297656f12"],"a_forms":["folder","application-form"],"inheritedLocks":[null,null,null],"stamps":[],"dts":1715608110177},{"a":["system","04632e3e-9132-4927-b91d-3c28d1afe3e9"],"a_depth":2,"a_forms":["system-folder-form","folder"],"created":{"at":"2025-10-07T13:43:52+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"ct":1759844632339,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[],"commands":[],"defaults":"","definition":"[name][name]","descendantCommands":[],"description":"","from":[],"functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Material Design 3","namedIcon":"","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"relatedDocuments":[],"tags":"","theme":{"id":"","text":"","v":""},"to":[],"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"16a1fc2c7a734357"},"id":"a9dbf1ad-0428-403e-b88b-bd73c35cf381","inheritedLocks":[null,null,null],"locks":[],"modified":{"at":"2025-10-07T13:44:01+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"04632e3e-9132-4927-b91d-3c28d1afe3e9","previous":{"v":"initial"},"stamps":[],"t":1759844641188,"v":"abafda3e38d21712"},{"a":["system","04632e3e-9132-4927-b91d-3c28d1afe3e9"],"a_depth":2,"a_forms":["system-folder-form","folder"],"created":{"at":"2025-10-10T13:08:37+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"ct":1760101717715,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[],"commands":[],"defaults":"","definition":"[name][name]\n\n[Files][files]\n[files]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)","descendantCommands":[],"description":"","from":[],"functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Thumbnail","namedIcon":"","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"relatedDocuments":[],"tags":"","theme":{"id":"","text":"","v":""},"to":[],"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"16a1fc2c7a734357"},"id":"7ae6e0d2-3c3d-4df1-93d0-a878624d77c4","inheritedLocks":[null,null,null],"locks":[],"modified":{"at":"2025-10-10T13:18:12+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"04632e3e-9132-4927-b91d-3c28d1afe3e9","previous":{"v":"bbc67ab22e88bffd"},"stamps":[],"t":1760102292993,"v":"d3b00fecabd3c420"},{"a":["system","ce1b84c6-f411-40f5-9783-2dd35230fd5d"],"a_depth":2,"a_forms":["system-folder-form","folder"],"created":{"at":"2025-10-07T13:27:19+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"ct":1759843639937,"data":{"controls":[],"description":"","designs":[],"name":"Forms"},"f":{"id":"form-folder","text":"Form Folder","v":"9b1a050f5d4e0dec"},"id":"af333f9b-2d8e-4a62-bd6a-5b842a953e0d","inheritedLocks":[null,null,null],"locks":[],"modified":{"at":"2025-10-07T13:27:19+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"ce1b84c6-f411-40f5-9783-2dd35230fd5d","stamps":[],"t":1759843639940,"v":"initial"},{"id":"cf902943-ef72-48e8-b64e-12204c5ca39b","v":"initial","cloneOf":{"id":"286fef33-fdfd-4fcf-a5c6-bd5415bc1fc8","v":"b32879b8fb569e33","text":"Forms"},"originalCloneOf":{"id":"286fef33-fdfd-4fcf-a5c6-bd5415bc1fc8","v":"b32879b8fb569e33","text":"Forms"},"p":"ddf56c14-1ba6-40cf-8b23-7e0ce10ac12d","f":{"id":"form-folder","v":"9b1a050f5d4e0dec","text":"Form Folder"},"data":{"name":"Forms","description":"","controls":[],"designs":[]},"locks":[],"created":{"at":"2026-02-03T12:07:52+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":"","impersonatedBy":"","from":"","client":"server"},"modified":{"at":"2026-02-03T12:07:52+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":"","impersonatedBy":"","from":"","client":"server"},"t":1770120472770,"ct":1770120472764,"a_depth":2,"a":["apps","ddf56c14-1ba6-40cf-8b23-7e0ce10ac12d"],"a_forms":["folder","application-form"],"inheritedLocks":[null,null,null],"stamps":[]},{"id":"d68e003c-a6b5-40c5-8420-4ea98e4cb533","v":"initial","p":"30363d01-3c4c-407b-861e-c0ef1ca6be75","f":{"id":"form","v":"42ef1fd37c206edb","text":"Form"},"data":{"name":"form layout 2.0","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"","functions":"","allowedChildrenForms":[],"commands":[],"description":"","theme":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2022-08-19T14:11:00+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2022-08-19T14:11:00+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1660918260303,"ct":1660918260301,"a_depth":2,"a":["apps","30363d01-3c4c-407b-861e-c0ef1ca6be75"],"a_forms":["folder","application-form"],"inheritedLocks":[null,null,null],"stamps":[]},{"id":"7643c1eb-d4fa-4bb1-a4c4-b65838cf989d","v":"initial","cloneOf":{"id":"286fef33-fdfd-4fcf-a5c6-bd5415bc1fc8","v":"e2f711326de79b99","text":"Forms"},"originalCloneOf":{"id":"286fef33-fdfd-4fcf-a5c6-bd5415bc1fc8","v":"e2f711326de79b99","text":"Forms"},"p":"4a58cfdb-e1ef-40a2-8a89-57157ddda7d0","f":{"id":"form-folder","v":"577dbed0412b397a","text":"Form Folder"},"data":{"name":"Forms","structural":false,"description":""},"locks":[],"created":{"at":"2021-10-01T09:50:28+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-10-01T09:50:28+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1633081828186,"ct":1633081828185,"a_depth":2,"a":["apps","4a58cfdb-e1ef-40a2-8a89-57157ddda7d0"],"a_forms":["folder","application-form"],"inheritedLocks":[null,null,null],"stamps":[],"dts":1633084374412},{"a":["system","04632e3e-9132-4927-b91d-3c28d1afe3e9"],"a_depth":2,"a_forms":["system-folder-form","folder"],"created":{"at":"2025-07-04T06:38:19+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"ct":1751611098685,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[],"commands":[],"defaults":"","definition":"[name][name]","descendantCommands":[],"description":"","from":[],"functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"ae-list-selector","namedIcon":"","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"relatedDocuments":[],"tags":"","theme":{"id":"","text":"","v":""},"to":[],"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"b0b69a951dde83ea"},"id":"185bdb84-b4e7-478a-848f-2a364eceb184","inheritedLocks":[null,null,null],"locks":[],"meta":{"modified":{"at":"2025-07-04T07:06:30+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null}},"modified":{"at":"2025-07-04T06:39:36+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"04632e3e-9132-4927-b91d-3c28d1afe3e9","previous":{"a":["root-test-folder","d887dc55-f6f0-48bc-8373-7c10a1a66800"],"a_forms":["folder","folder"],"p":"d887dc55-f6f0-48bc-8373-7c10a1a66800","v":"59d625c32ef2c6ee"},"stamps":[],"t":1751612790487,"v":"03434118c647a000"},{"a":["system","system-forms"],"a_depth":2,"a_forms":["system-folder-form","repository-folder-form"],"created":{"at":"2019-03-13T15:05:33+00:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","client":"server","from":""},"ct":1719473825416,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[],"commands":[],"defaults":"","definition":"[Name][name]\n\n# Template\n\n{html}\n[Template][template]\n\n# Styles\n\n{css}\n[CSS][css]\n\n# Controller\n\n{aeppic:code-design-controller}\n[Controller][controller]\n\n# Dependencies\n\n[Packages][packages]\n[packages]: /package-form (0-n)\n\n# Parameters\n\n[Parameters][parameters]\n[parameters]: text (0-n)\n\n[Parameters Description][parametersDescriptions]\n[parametersDescriptions]: text (0-n)\n\n[Parameters Types][parametersTypes]\n[parametersTypes]: text (0-n) \"string, number, object, boolean\"\n\n[Parameters Controls][parametersControls]\n[parametersControls]: text (0-n) \"Custom control to render the parameter (color, email, phone, address, ...)\"\n\n[Parameters Cardinalities][parametersCardinalities]\n[parametersCardinalities]: text (0-n)\n\n\n# Aliases\n\n{children}\n[Aliases][aliases]\n\n[aliases]: /cbb7325f-8f35-451c-8f45-ab92d9136f4f (0-n)\n\n# Documentation\n\n{multiline}\n[Description][description]\n\n","description":"","functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Design","namedIcon":"fa fa-eye","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"tags":"","theme":{"id":"","text":"","v":""},"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"cac2c00e9d3adbaa"},"id":"design-form","inheritedLocks":[null,null,null],"locks":[],"modified":{"at":"2025-08-25T09:41:08+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"system-forms","previous":{"v":"a6b987f8c80dc07f"},"stamps":[],"t":1756114868634,"v":"4b1c7a4912f80103"},{"id":"1aaeb13c-eaeb-41f4-b07e-af972bef35bc","v":"initial","cloneOf":{"id":"5fa71c32-0186-4007-92a9-f03a32b0ff33","v":"initial","text":"Forms"},"originalCloneOf":{"id":"5fa71c32-0186-4007-92a9-f03a32b0ff33","v":"initial","text":"Forms"},"p":"e1bc93d1-b6c6-4711-a98f-675371c40326","f":{"id":"form-folder","v":"577dbed0412b397a","text":"Form Folder"},"data":{"name":"Forms","structural":false,"description":""},"locks":[],"created":{"at":"2026-03-23T13:30:09+00:00","by":"729fa027-7e7e-4b06-9602-f535c43824f0","backedBy":"","impersonatedBy":"","from":"","client":"server"},"modified":{"at":"2026-03-23T13:30:09+00:00","by":"729fa027-7e7e-4b06-9602-f535c43824f0","backedBy":"","impersonatedBy":"","from":"","client":"server"},"t":1774272609722,"ct":1774272609721,"a_depth":2,"a":["apps","e1bc93d1-b6c6-4711-a98f-675371c40326"],"a_forms":["folder","application-form"],"inheritedLocks":[null,null,null],"stamps":[]},{"id":"6f523f5c-5db0-4071-b16b-132f4cf642ac","v":"initial","cloneOf":{"id":"286fef33-fdfd-4fcf-a5c6-bd5415bc1fc8","v":"fcb05ac4bb627d15","text":"Forms"},"originalCloneOf":{"id":"286fef33-fdfd-4fcf-a5c6-bd5415bc1fc8","v":"fcb05ac4bb627d15","text":"Forms"},"p":"5093ea32-8d03-430d-afce-fd4f6c34675e","f":{"id":"form-folder","v":"cb7204e5b9d8da77","text":"Form Folder"},"data":{"name":"Forms","description":""},"locks":[],"created":{"at":"2023-10-09T15:04:41+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2023-10-09T15:04:41+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1696863881923,"ct":1696863881923,"a_depth":2,"a":["apps","5093ea32-8d03-430d-afce-fd4f6c34675e"],"a_forms":["folder","application-form"],"inheritedLocks":[null,null,null],"stamps":[],"dts":1738932958680},{"a":["apps","0c440c7a-219d-4465-9cbe-2d0eff6ec7ad"],"a_depth":2,"a_forms":["folder","application-form"],"created":{"at":"2025-06-30T08:38:14+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"ct":1751272694682,"data":{"description":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Fallback Design"},"f":{"id":"design-folder","text":"Design Folder","v":"4fccf7c8ead30dd3"},"id":"9ee77d5e-cff4-42a8-a86e-447a18bbceba","inheritedLocks":[null,null,null],"locks":[],"meta":{"modified":{"at":"2025-06-30T08:39:09+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null}},"modified":{"at":"2025-06-30T08:38:14+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"0c440c7a-219d-4465-9cbe-2d0eff6ec7ad","previous":{"a":["apps","0c440c7a-219d-4465-9cbe-2d0eff6ec7ad","e25401a7-eca4-4c53-a20e-b30df594d3a7"],"a_forms":["folder","application-form","form-folder"],"p":"e25401a7-eca4-4c53-a20e-b30df594d3a7","v":"initial"},"stamps":[],"t":1751272749751,"v":"9969758caa573276"},{"id":"b8fe3038-b9dc-4eb6-a141-8b80ed39748e","v":"initial","cloneOf":{"id":"fc09d59c-bdef-4b1e-854e-d907bc11b295","v":"initial","text":"Forms"},"originalCloneOf":{"id":"fc09d59c-bdef-4b1e-854e-d907bc11b295","v":"initial","text":"Forms"},"p":"cf08a83c-2872-47fb-8886-6009ac1e19e5","f":{"id":"form-folder","v":"e2e87df32e325504","text":"Form Folder"},"data":{"name":"Forms","description":""},"locks":[],"created":{"at":"2020-08-06T08:38:12+00:00","by":"77031fd1-c20d-4484-b4b4-46c01bdab986","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2020-08-06T08:38:12+00:00","by":"77031fd1-c20d-4484-b4b4-46c01bdab986","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1596703092289,"ct":1596703092289,"a_depth":2,"a":["apps","cf08a83c-2872-47fb-8886-6009ac1e19e5"],"a_forms":["folder","application-form"],"inheritedLocks":[null,null,null],"stamps":[],"dts":1708696324815},{"id":"fdd2f0b2-d628-48b9-a976-1acbf9f1de94","v":"4b32fedcb635f94b","cloneOf":{"id":"ac9bae39-01ed-4684-b320-44da554ae085","v":"2ff17b82c923fca9","text":"[App Template]"},"originalCloneOf":{"id":"ac9bae39-01ed-4684-b320-44da554ae085","v":"2ff17b82c923fca9","text":"[App Template]"},"previous":{"v":"525d5dc2152c4662","p":"apps","a":["apps"],"a_forms":["folder"]},"p":"83c76376-420e-4231-9275-d0fe2ab47c32","f":{"id":"application-form","v":"494d7694e82e9921","text":"Application"},"data":{"name":"Medizinproduktebuch","label":"","description":"","namedIcon":"fa fa-wrench","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"stylesheets":[],"controls":[],"routingPrefixAlias":"","routingTables":[],"globalRoutingTables":[],"aliases":{"id":"","v":"","text":""},"dialogForms":[],"changes":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2022-06-22T08:40:27+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-10-12T10:53:13+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1697107993807,"ct":1655887227533,"a_depth":2,"a":["apps","83c76376-420e-4231-9275-d0fe2ab47c32"],"a_forms":["folder","application-form"],"inheritedLocks":[null,null,null],"stamps":[],"dts":1734525782719},{"a":["system","system-forms"],"a_depth":2,"a_forms":["system-folder-form","repository-folder-form"],"created":{"at":"2018-05-23T11:29:03+02:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","client":"server","from":""},"ct":1779799144595,"data":{"allowUndefinedFields":true,"allowedChildrenForms":[],"commands":[],"defaults":"","definition":"[Name][name]\n\n[Available][available]\n[available]: Switch\n\n# Infos\n\n{multiline}\n[Description][description]\n\n# Packages\n\n[Type][type]\n[type]: Select\n  - SERVER\n  - NATIVE_CLIENT\n\n[Package][package]\n[package]: /package-form\n\n[Client-side package][clientPackage]\n[clientPackage]: /package-form\n\n# Execution\n\n[Execute as account][account]\n[account]: /account\n\n[Shared Settings][settings]\n[settings]: /ref\n\n# API\n\nA service can expose a HTTP Api. Each service instance is thus available\nunder `<API_URL>/services/<instance-id>/*`. \n\n[Expose HTTP API][exposeHTTPApi]\n[exposeHTTPApi]: Switch\n\nThe forwarded URL can either be the complete URL with the service instance id:\n\n`http://localhost:<service-port>/api/services/<service-instance-id>/*`\n\nor a local version:\n\n`http://localhost:<service-port>/*`\n\n[Forward Full Urls][forwardFullUrls]\n[forwardFullUrls]: Switch <optional> \"Forward the full urls\"\n\n\n# Networking\n\n[Incoming Raw TCP Port Required][tcpPortRequired]\n[tcpPortRequired]: Switch\n\n[Incoming Raw UDP Port Required][udpPortRequired]\n[udpPortRequired]: Switch\n\n[Outgoing TCP Ports][outgoingTcpPortsRequired]\n[outgoingTcpPortsRequired]: Switch\n","descendantCommands":[],"description":"","from":[],"functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Service Description","namedIcon":"","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"relatedDocuments":[],"tags":"","theme":{"id":"","text":"","v":""},"to":[],"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"c2759612aee0e8c4"},"id":"c0d56b6e-a7f6-4eaf-9e3b-cfc592ade3be","inheritedLocks":[null,null,null],"locks":[],"meta":{},"modified":{"at":"2026-05-26T12:39:07+00:00","backedBy":"","by":"6b5e19d2-aa43-46cd-b486-0182161b6a85","client":"server","from":"","impersonatedBy":""},"p":"system-forms","previous":{"v":"4b705652f0484f6b"},"stamps":[],"t":1779799147077,"v":"72bffbac6f6bee46"},{"id":"stamp-type","v":"3e0964d9b611ea9d","previous":{"v":"initial"},"p":"system-forms","f":{"id":"form","v":"4fa42fcff3786d1e","text":"Form"},"data":{"name":"Stamp Type","tags":"","namedIcon":"fal fa-badge","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Name][name]\r\n\r\n[Label][label]\r\n\r\n{tags}\r\n[Tags][tags]\r\n\r\n[Icon][icon] {color}[Color][color]\r\n\r\n[Requires Comment][requiresComment]\r\n[requiresComment]: Switch\r\n\r\n[Requires additional data][requiresData]\r\n[requiresData]: Switch\r\n\r\n{show if requiresData}\r\n[Additional data form][additionalDataForm]\r\n[additionalDataForm]: /form\r\n","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2020-07-07T15:32:49+00:00","by":"8e6c22aa-8c69-4ff8-919a-7032841cf636","from":"","client":"server"},"modified":{"at":"2021-11-02T09:38:40+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1635845920620,"ct":1594135969571,"a_depth":2,"a":["system","system-forms"],"a_forms":["system-folder-form","repository-folder-form"],"inheritedLocks":[null,null,null],"stamps":[]},{"id":"e117ae4b-b53a-4d37-8e3b-a2764606fd7b","v":"b34b9aa9b1f18927","previous":{"v":"dea0dccd434f2448","p":"apps","a":["apps"],"a_forms":["folder"]},"p":"83c76376-420e-4231-9275-d0fe2ab47c32","f":{"id":"application-form","v":"713ddb8f3bf7cfca","text":"Application"},"data":{"name":"Vertragsmanagement","description":"","namedIcon":"fas fa-file-signature","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"stylesheets":[],"controls":[],"routingPrefixAlias":"","routingTables":[],"globalRoutingTables":[],"aliases":{"id":"","v":"","text":""},"dialogForms":[{"id":"e90e5e3c-3eac-4544-8be0-57dea64e6f56","v":"21ed24f062058095","text":"Vertrag"}]},"locks":[],"created":{"at":"2020-05-08T08:52:51+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2024-01-08T08:51:36+01:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1704700296664,"ct":1592913349596,"a_depth":2,"a":["apps","83c76376-420e-4231-9275-d0fe2ab47c32"],"a_forms":["folder","application-form"],"inheritedLocks":[null,null,null],"stamps":[],"dts":1737634457688},{"id":"81067257-819c-43ae-815b-97f60f08ac2e","v":"initial","p":"deeef973-ce03-4557-bf75-75a059001767","f":{"id":"design-folder","v":"828ce4ccf9d4bac3","text":"Design Folder"},"data":{"name":"Designs","description":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null}}},"locks":[],"created":{"at":"2024-07-09T12:19:34+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-07-09T12:19:34+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720520374587,"ct":1720520374583,"a_depth":2,"a":["apps","deeef973-ce03-4557-bf75-75a059001767"],"a_forms":["folder","application-form"],"inheritedLocks":[null,null,null],"stamps":[]},{"id":"d646d88a-6eea-424b-81a1-2df3c44993c4","v":"initial","p":"47dd3677-407a-42ac-8542-20d8ecf10e4f","f":{"id":"form-folder","v":"e2e87df32e325504","text":"Form Folder"},"data":{"name":"Forms","description":""},"locks":[],"created":{"at":"2019-04-02T15:44:54+00:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2019-04-02T15:44:54+00:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1554219894483,"ct":1554219894478,"a_depth":2,"a":["apps","47dd3677-407a-42ac-8542-20d8ecf10e4f"],"a_forms":["folder","application-form"],"inheritedLocks":[null,null,null],"stamps":[],"dts":1734441928143},{"f":{"id":"form-folder","v":"e2e87df32e325504","text":"Form Folder"},"p":"2a9f2f9c-28df-4418-8b85-b4158b35ed3d","data":{"name":"Formulare","description":"","$promise":{},"$resolved":true},"id":"4c4390dd-b593-4bd1-8e6f-6a791cd234af","v":"initial","t":1467644264825,"ct":1467644264824,"modified":{"at":"2017-09-15T10:29:31+02:00","by":"","from":"","client":"import"},"created":{"at":"2017-09-15T10:29:31+02:00","by":"","from":"","client":"import"},"locks":[],"lockRefs":[],"inheritedLocks":[null,null,null],"a":["apps","2a9f2f9c-28df-4418-8b85-b4158b35ed3d"],"a_forms":["folder","application-form"],"a_depth":2,"stamps":[],"dts":1467644255606},{"id":"921c912f-d932-46d2-b061-ae7539e9a5a8","v":"474c1323e91b1035","previous":{"v":"52743f07f38fa742","p":"apps","a":["apps"],"a_forms":["folder"]},"p":"83c76376-420e-4231-9275-d0fe2ab47c32","f":{"id":"application-form","v":"3f37198777739577","text":"Application"},"data":{"name":"Telefonverzeichnis","description":"","namedIcon":"fas fa-phone-office","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"stylesheets":[],"controls":[],"routingPrefixAlias":"","routingTables":[],"globalRoutingTables":[],"aliases":{"id":"","v":"","text":""},"dialogForms":[{"id":"219525e1-3d7e-4e00-93df-7a751c36195a","v":"0c35c93db3a5db58","text":"Interner Telefonverzeichniseintrag"},{"id":"69e7c51e-ba71-4a0e-9134-15a020100648","v":"b552910eaf31ad44","text":"Externer Telefonverzeichniseintrag"}]},"locks":[],"created":{"at":"2017-09-15T10:29:31+02:00","by":"","from":"","client":"import"},"modified":{"at":"2023-10-12T10:54:04+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1697108044197,"ct":1611930688074,"a_depth":2,"a":["apps","83c76376-420e-4231-9275-d0fe2ab47c32"],"a_forms":["folder","application-form"],"inheritedLocks":[null,null,null],"stamps":[],"dts":1696927680283},{"f":{"id":"folder","v":"f1e4977dbee77607","text":"Folder"},"p":"3a8b08c2-14ef-48ee-a5b8-2ede237892a9","data":{"name":"Formulare","description":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null}}},"id":"2d5b3e1c-5a2f-4e5a-8005-47373ea61666","v":"initial","t":1467644258688,"ct":1467644258687,"modified":{"at":"2017-09-15T10:29:31+02:00","by":"","from":"","client":"import"},"created":{"at":"2017-09-15T10:29:31+02:00","by":"","from":"","client":"import"},"locks":[],"lockRefs":[],"inheritedLocks":[null,null,null],"a":["apps","3a8b08c2-14ef-48ee-a5b8-2ede237892a9"],"a_forms":["folder","application-form"],"a_depth":2,"stamps":[]},{"id":"962b8959-5d31-4343-9ffc-73acd37cc437","f":{"id":"form","v":"7bfd4bec296acf0a","text":"Form"},"v":"initial","p":"system-forms","data":{"name":"Indexed Text Content","description":"","definition":"[Source  Document][source]\n\n[source]: Ref\n\nReference  of  the  document  where  content  was  extracted  from.  A  document  might  have  multiple  files.\n\n[File Field][fileField]\n\nName  of  the  field  the  content  was  extracted  from.\n\n[Mime][mime]\n\nMime  Type  of  the  indexed  file.\n\n{sha1}\n[SHA-1][contentSha1]\n\nIndexers  can  optionally  save  the  sha-1  of  the  indexed  document  content  data  here  for  high-level  validation,  though  the  reference  should  be  enough.\n\n{Json}\n[Meta][meta]\n\nThe  extracted  meta  header  in   JSON  format.\n\n[Text][text]\n\nThe  extracted  text  inside  the  file.\n","color":{"text":"Light Blue - 500","id":"dee7226d-4935-44a8-855a-46ef176f0b10","v":"initial"},"icon":{"name":"iconmonstr-text-file-3-icon.svg","size":936,"type":"image/svg+xml","sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":1412957255000,"modified":1412957255000,"read":null,"imported":1412961417299}},"headerInfoStyle":"auto","defaultDesignStyle":"auto","semver":"1.0.0"},"locks":[],"lockRefs":[],"created":{"at":"2017-08-23T08:24:50+02:00","by":"","from":"","client":"import"},"modified":{"at":"2017-08-23T08:24:50+02:00","by":"","from":"","client":"import"},"t":1447333397183,"ct":1447333397182,"a":["system","system-forms"],"a_forms":["system-folder-form","repository-folder-form"],"a_depth":2,"inheritedLocks":[null,null,null],"stamps":[]},{"id":"d73c1511-5bc0-4e4f-9e3b-b7ae22cd349b","v":"initial","p":"6a2e3a55-42ca-4f04-ae62-0a2447c5f759","f":{"id":"form-folder","v":"e2e87df32e325504","text":"Form Folder"},"data":{"name":"Forms","description":""},"locks":[],"created":{"at":"2021-11-02T09:38:59+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-11-02T09:38:59+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1635845939089,"ct":1635845939089,"a_depth":2,"a":["apps","6a2e3a55-42ca-4f04-ae62-0a2447c5f759"],"a_forms":["folder","application-form"],"inheritedLocks":[null,null,null],"stamps":[],"dts":1635845939265},{"id":"ee59298b-ba97-4f92-9c29-c7db3d4dd7b7","v":"initial","p":"bafa23ba-a0dc-406d-8854-77ea31b4ea4b","f":{"id":"form-folder","v":"e2e87df32e325504","text":"Form Folder"},"data":{"name":"Condition Forms","description":""},"locks":[],"created":{"at":"2019-03-11T13:47:48+00:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2019-03-11T13:47:48+00:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1552312068094,"ct":1552312068094,"a_depth":2,"a":["apps","bafa23ba-a0dc-406d-8854-77ea31b4ea4b"],"a_forms":["folder","application-form"],"inheritedLocks":[null,null,null],"stamps":[],"dts":1682601886027},{"id":"d5af4a55-e134-47cc-a10c-da22b8645ffb","v":"4758b159b3839c85","previous":{"v":"initial"},"p":"a9cb5a02-4c8f-4f0e-a29a-dfa9a977cecd","f":{"id":"c0d56b6e-a7f6-4eaf-9e3b-cfc592ade3be","v":"761fe74b9e2c8538","text":"Service Description"},"data":{"name":"service-sms-sender","available":false,"description":"","type":"SERVER","package":{"id":"","v":"","text":""},"clientPackage":{"id":"","v":"","text":""},"account":{"id":"","v":"","text":""},"settings":{"id":"","v":"","text":""},"exposeHTTPApi":false,"httpApiRootUrl":""},"locks":[],"created":{"at":"2018-08-16T05:41:33+00:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","from":"","client":"server"},"modified":{"at":"2021-10-08T12:51:55+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1633697515735,"ct":1534398093421,"a_depth":2,"a":["system","a9cb5a02-4c8f-4f0e-a29a-dfa9a977cecd"],"a_forms":["system-folder-form","folder"],"inheritedLocks":[null,null,null],"stamps":[]},{"id":"247b574c-24bd-4cf1-88e6-69944b56e161","v":"initial","cloneOf":{"id":"286fef33-fdfd-4fcf-a5c6-bd5415bc1fc8","v":"fcb05ac4bb627d15","text":"Forms"},"originalCloneOf":{"id":"286fef33-fdfd-4fcf-a5c6-bd5415bc1fc8","v":"fcb05ac4bb627d15","text":"Forms"},"p":"83c76376-420e-4231-9275-d0fe2ab47c32","f":{"id":"form-folder","v":"cb7204e5b9d8da77","text":"Form Folder"},"data":{"name":"Forms","description":""},"locks":[],"created":{"at":"2023-10-09T14:35:12+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2023-10-09T14:35:12+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1696862112863,"ct":1696862112863,"a_depth":2,"a":["apps","83c76376-420e-4231-9275-d0fe2ab47c32"],"a_forms":["folder","application-form"],"inheritedLocks":[null,null,null],"stamps":[],"dts":1705333799085},{"id":"61ccaf6b-af84-4908-aa73-785dffd83c5f","v":"365f3688fada736d","previous":{"v":"e0ae2ae97e50e2e0"},"p":"e89b29a9-6ab9-47dc-a6fe-91ebda92871d","f":{"id":"form","v":"636c28c49e0bd3c5","text":"Form"},"data":{"name":"eCasting (Vorauswahl)","description":"","tags":"","definition":"[Name][name]\n\n{children}\n[Model Bewerbungen][models]\n\n[models]: /275b807f-7dbb-4351-b731-669e275fa97d (0-n)\n\n[Zu kopierende Felder beim Hinzufügen eines Models][fieldsToCopy]\n[fieldsToCopy]: /1f08e101-d725-4d4c-af63-66cfab892ef3\n\n[Anzuzeigende Felder eines Models auf der Laufliste][fieldsToShowOnECastingList]\n[fieldsToShowOnECastingList]: /05f7c527-42aa-4b68-ba72-cfb62a9e0a84\n\n{datetime}\n[Bewerbungen/Dateien als neu markieren ab][highlightStartingDate]\n[highlightStartingDate]: date","functions":"","semver":"","allowedChildrenForms":[],"layout":{"id":"","v":"","text":""},"color":{"id":"","v":"","text":""},"iconName":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null}},"applicationLayoutOptions":{"id":"","v":"","text":""},"documentLayoutOptions":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2018-04-20T12:29:48+02:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"f8312258-bdc9-438a-a510-de77a69e61e9"},"modified":{"at":"2020-10-13T10:11:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1602583892092,"ct":null,"a_depth":3,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d"],"a_forms":["folder","application-form","folder"],"inheritedLocks":[null,null,null,null],"stamps":[]},{"id":"582f2701-c678-4770-bcba-e5ff84e06752","v":"initial","p":"fd2312bb-54bc-41a9-8fc7-b65b22ecb1d5","f":{"id":"form","v":"2e7e396282349d68","text":"Form"},"data":{"name":"Nachrichten","label":"","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2021-05-21T08:42:41+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-05-21T08:42:41+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1621586561075,"ct":1621586561069,"a_depth":3,"a":["apps","c676e25c-4d28-48e3-9b60-811cde637ea5","fd2312bb-54bc-41a9-8fc7-b65b22ecb1d5"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1680707042093},{"id":"6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2","v":"ecb168b71b3e37b7","previous":{"v":"2be5f7fbc68ac576"},"p":"7c30f282-2b84-4976-8735-ba78662ea5e6","f":{"id":"form","v":"4fa42fcff3786d1e","text":"Form"},"data":{"name":"Datei","tags":"","namedIcon":"fa fa-file","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"{file file-name-to-field=[name]}\n[Datei][datei]\n[datei]: file\n\n[Name][name]\n\n{hidden}\n[Freigabe][freigabe]\n[freigabe]: switch\n\n[Autor][autor]\n\n[Gültig ab][gueltigab]\n[gueltigab]: date\n","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2017-11-28T17:36:05+01:00","by":"","from":"","client":"2d10490a-46c9-46dc-a584-14fa8b5654bf"},"modified":{"at":"2021-07-13T14:29:23+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1626186563368,"ct":1584006872536,"a_depth":3,"a":["apps","3d43a3f5-fea4-488d-9fc1-9dee5e694623","7c30f282-2b84-4976-8735-ba78662ea5e6"],"a_forms":["folder","application-form","folder"],"inheritedLocks":[null,null,null,null],"stamps":[]},{"id":"6f641574-7cb6-424a-9657-4b8d652a2cf7","v":"05f9b241346c90ee","previous":{"v":"4411281eb6fef704"},"p":"c27d5f5f-22ff-4341-935c-02bfdc3e1ee0","f":{"id":"form","v":"24ab84939535fdcd","text":"Form"},"data":{"name":"Kontakt","tags":"","namedIcon":"fa fa-address-card","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"{hidden}\n[Name][name]\n[name]: text <editable=nachname> = functions.name(unternehmen, ansprechpartner)\n\n{hidden}\n[Ansprechpartner][ansprechpartner]\n[ansprechpartner]:= functions.ansprechpartner(titel, vorname, nachname)\n\n{10}[Anrede][anrede] {15}[Titel][titel] {35}[Vorname][vorname] {40}[Nachname][nachname]\n\n[anrede]: select\n  - NONE: \n  - MALE: Herr\n  - FEMALE: Frau\n\n\n[Unternehmen][unternehmen] \n\n[Position][position] [Abteilung][abteilung]\n\n[Foto][foto]\n[foto]:file\n\n{phone}\n[Telefon][telefon]\n[telefon]: text (0-n)\n\n{email}\n[E-Mail][email]\n[email]: text (0-n)\n\n\n{url}\n[URL][url]\n[url]: text (0-n)\n\n\n{address button-navigation=true}\n[Adresse][adresse]\n[adresse]: address\n\n{multiline auto-grow=true}\n[Notizen][notizen]\n","functions":"name(firma, ansprechpartner) {\n  if (!firma && !ansprechpartner) {\n    return ''\n  }\n\n  if (firma && ansprechpartner) {\n    return `${firma} (${ansprechpartner})`\n  }\n\n  return ansprechpartner || firma\n}\n\n\nansprechpartner(titel, vorname, nachname) {\n  const parts = []\n  if (titel) {\n    parts.push(titel)\n  }\n  if (vorname) {\n    parts.push(vorname)\n  }\n  if (nachname) {\n    parts.push(nachname)\n  }\n\n  return parts.join(' ')\n}","allowedChildrenForms":[],"commands":[{"id":"baf098a6-126f-4b56-8ab8-f819e49960c8","v":"ab053c1468c00afd","text":"Open Transform to Kontakt"}],"description":""},"locks":[],"created":{"at":"2020-08-07T13:45:42+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2023-12-19T13:46:48+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1702993608181,"ct":1596807942180,"a_depth":3,"a":["apps","37fafb3d-18da-4182-af74-082971d50956","c27d5f5f-22ff-4341-935c-02bfdc3e1ee0"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1702993693451},{"id":"f8fd3176-4995-455f-a8a8-d2742a836816","v":"d5873f53db399b6c","previous":{"v":"63c62584b09c68df"},"p":"8ffb21f4-3d63-4824-a633-10a19d7aa7d8","f":{"id":"form","v":"a57e5af653d72344","text":"Form"},"data":{"name":"Kontakt","tags":"","namedIcon":"far fa-address-book","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"{hidden}\n[Name][name]\n[name]: = functions.name(firma, ansprechpartnerMitAnrede)\n\n[Firma / Name][firma]\n\n{hidden}\n[Ansprechpartner mit Anrede][ansprechpartnerMitAnrede]\n[ansprechpartnerMitAnrede]: = functions.ansprechpartnerMitAnrede(anrede, titel, ansprechpartner)\n\n{10}[Anrede][anrede] {15}[Titel][titel] [Ansprechpartner][ansprechpartner]\n\n[anrede]: select\n  - NONE: \n  - MALE: Herr\n  - FEMALE: Frau\n  - HOMEOWNER_ASSOCIATION <help=\"Wohnungseigentümergemeinschaft\">: WEG\n  - FAMILY: Familie\n\n[Geburtsdatum][geburtsdatum]\n[geburtsdatum]: date\n\n[Krönchen][bewertung]\n[bewertung]: Select\n  - 0:\n  - 1: 1 Krönchen\n  - 2: 2 Krönchen\n  - 3: 3 Krönchen\n\n{ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true}\n[Kategorie][kategorie]\n[kategorie]: /a2d7a5d3-7145-4743-b841-55860797481c (0-n)\n\n{phone}[Festnetz][festnetz] {phone}[Mobil][mobil] {phone}[Telefon 3][telefon3]\n\n[E-Mail][email] {hidden if !email}[E-Mail 2][email2] {hidden if !email2}[E-Mail 3][email3]\n\n{address button-navigation=true}\n[Adresse][adresse]\n[adresse]: address\n","functions":"name(firma, ansprechpartner) {\n  if (!firma && !ansprechpartner) {\n    return ''\n  }\n\n  if (firma && ansprechpartner) {\n    return `${firma} (${ansprechpartner})`\n  }\n\n  return ansprechpartner || firma\n}\n\n\nansprechpartnerMitAnrede(anrede, titel, ansprechpartner) {\n  const parts = []\n\n  if (anrede) {\n    switch(anrede) {\n      case 'MALE':\n        parts.push('Herr')\n        break\n      case 'FEMALE': \n        parts.push('Frau')\n        break\n      case 'NONE':\n        // ignore\n        break\n      case 'HOMEOWNER_ASSOCIATION':\n        parts.push('Wohnungseigentümergemeinschaft')\n        break\n      case 'FAMILY':\n        parts.push('Familie')\n        break\n      default: \n        parts.push(anrede)\n    }\n  }\n\n  if (titel) {\n    parts.push(titel)\n  }\n\n  if (ansprechpartner) {\n    parts.push(ansprechpartner)\n  }\n\n  return parts.join(' ')\n}","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2019-08-30T12:27:30+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2024-08-14T07:46:48+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1723621608553,"ct":1567168050892,"a_depth":3,"a":["apps","bc036ad0-6dbc-415b-b506-325fb0a44046","8ffb21f4-3d63-4824-a633-10a19d7aa7d8"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1737563815587},{"id":"d2ac3563-3c3f-4f02-b923-9b67abf98d10","v":"1f5a53f442522694","previous":{"v":"1f3cb7a329ae6df8"},"p":"8e6ee7d3-9122-4a2e-8aaf-9fb3bd204b23","f":{"id":"form","v":"a57e5af653d72344","text":"Form"},"data":{"name":"Mitarbeiter","tags":"","namedIcon":"fa fa-user","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"{hidden}\n[Name][name]\n[name]: = functions.name(vorname, nachname)\n\n{hidden}\n[Externer Mitarbeiter][externerMitarbeiter]\n[externerMitarbeiter]: switch\n\n[Vorname][vorname] [Nachname][nachname] [Kürzel][kuerzel]\n[Position][position]\n\n[Foto][foto]\n[foto]:file\n\n{multiline auto-grow}\n[Beschreibung][beschreibung]\n[beschreibung]: text\n","functions":"name(vorname, nachname) {\n  if (!vorname && !nachname) {\n    return ''\n  }\n\n  if (vorname) {\n    return `${vorname} ${nachname}`\n  }\n\n  return nachname\n}","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2019-09-20T09:00:54+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2023-08-22T08:24:36+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1692692676156,"ct":1568970054501,"a_depth":3,"a":["apps","144e85c0-d7f9-4b20-8928-be30f0c78bda","8e6ee7d3-9122-4a2e-8aaf-9fb3bd204b23"],"a_forms":["folder","application-form","folder"],"inheritedLocks":[null,null,null,null],"stamps":[]},{"id":"fee1d6a3-fd7b-416c-a42a-e11c9585bcf5","v":"initial","previous":{"v":""},"p":"58cc45fb-3fb3-45e8-b61d-4b89899e357a","f":{"id":"form","v":"af06aca6217d20c5","text":"Form"},"data":{"name":"Sprint","description":"","definition":"[Titel][name]\n\n[Start][start]\n[Ende][end]\n\n[Sprint Aufgaben][workItems]\n\n[start]: date\n[end]: date\n[workItems]: /a1a03095-df18-418e-8353-e8ac14b83ebe (0-n)","functions":"","semver":"","allowedChildrenForms":[],"layout":{"id":"","v":"","text":""},"color":{"id":"","v":"","text":""},"iconName":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null}},"applicationLayoutOptions":{"id":"","v":"","text":""},"documentLayoutOptions":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2018-04-18T15:41:56+02:00","by":"","backedBy":"","from":"","client":"server"},"modified":{"at":"2018-04-18T15:41:56+02:00","by":"","backedBy":"","from":"","client":"server"},"t":1524058916493,"ct":1524058916493,"a_depth":3,"a":["apps","aed1ba1c-9095-4aca-8176-74a37325f0e5","58cc45fb-3fb3-45e8-b61d-4b89899e357a"],"a_forms":["folder","application-form","folder"],"inheritedLocks":[null,null,null,null],"stamps":[]},{"a":["apps","14c27659-92d7-4b43-8c4f-25f4cceae591","2e759bfa-c685-48e8-81b4-cec70e93c521"],"a_depth":3,"a_forms":["folder","application-form","form-folder"],"created":{"at":"2019-03-21T13:24:42+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":""},"ct":1763380750578,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[],"commands":[],"defaults":"","definition":"{readonly}\n[Titel][name]\n\n{hidden}[Kommentar (HTML)][contentHtml]\n\n{editor-comment html-to=contentHtml}[Kommentar][content]\n\n{attachment form-id=\"6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2\" file-field=\"datei\" name-field=\"name\" delete-on-remove=true save-new-documents=true}\n[Anhänge][attachments]\n[attachments]: /6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2 (0-n)\n\n\n{hidden}[Referenced documents][references]\n[references]: ref (0-n)\n\n[name]: = functions.shortenContent(content, 45)","descendantCommands":[],"description":"","from":[],"functions":"shortenContent(content, maxLength) {\r\n  if (!content || content[0] !== '{') {\r\n    return ''\r\n  }\r\n  \r\n  let resultingText = ''\r\n\r\n  const data = JSON.parse(content)\r\n\r\n  for (const paragraph of data.content) {\r\n    if (paragraph.type !== 'paragraph' || !paragraph.content) {\r\n      continue\r\n    }\r\n\r\n    for (const content of paragraph.content) {\r\n      if (content.type !== 'text') {\r\n        continue\r\n      }\r\n\r\n      resultingText += ' ' + content.text\r\n\r\n      if (resultingText.length >= maxLength) {\r\n        return resultingText.substr(0, maxLength).trim() + '...'\r\n      }\r\n    }\r\n  }\r\n\r\n  return resultingText.trim()\r\n}","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Kommentar","namedIcon":"fa fa-comment","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"relatedDocuments":[],"tags":"","theme":{"id":"","text":"","v":""},"to":[],"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"16a1fc2c7a734357"},"id":"cf155969-ede1-43a4-9b10-3a697b19db91","inheritedLocks":[null,null,null,null],"locks":[],"meta":{"modified":{"at":"2025-11-17T11:59:10+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null}},"modified":{"at":"2021-12-17T10:23:32+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"2e759bfa-c685-48e8-81b4-cec70e93c521","previous":{"f":{"id":"form","text":"Form","v":"4fa42fcff3786d1e"},"v":"cc8e9b20f7926597"},"stamps":[],"t":1763380750578,"v":"b505b8b14545c3e9"},{"a":["system","b2533f7b-ea85-4680-99ed-d8e11be641b9","0e6939d6-9b93-4165-b6bd-977e4da881f3"],"a_depth":3,"a_forms":["system-folder-form","folder","application-form"],"created":{"at":"2018-07-02T08:53:55+00:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","client":"server","from":""},"ct":1685613783660,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[],"commands":[],"defaults":"","definition":"{readonly}\n[Name][name]\n[name]:=functions.genName(lock, rights, roles)\n\n[Lock][lock]\n[lock]: /lock-form\n\n[Groups][groups]\n[groups]: /group (0-n)\n\n[Accounts][accounts]\n[accounts]: /account (0-n)\n\n[Roles][roles]\n[roles]: /role (0-n)\n\n{ref prominent-pick-command=61f15b2a-0c44-48f1-8a33-f384ee1ccadb}\n[Rights][rights]\n[rights]: /ref (0-n)\n\n","description":"","functions":"genName(lock,rights, roles) {\n  let what = ''\n\n  if (rights) {\n    for (const r of rights) {\n      what += r.text + ' on '\n    }\n  }\n  if (lock && lock.id) {\n    what += lock.text\n  }\n  if (roles) {\n    for (const r of roles) {\n      what += ' as ' + r.text\n    }\n  }\n\n  return what\n}\n\n\n","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Key","namedIcon":"fal fa-key","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"tags":"","theme":{"id":"","text":"","v":""},"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"d497194b29933d26"},"id":"key-form","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2025-07-29T12:07:28+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"0e6939d6-9b93-4165-b6bd-977e4da881f3","previous":{"v":"aa7504a4273ef17f"},"stamps":[],"t":1753790848466,"v":"03114782ec4bc789"},{"id":"5475727b-0e0c-412a-8452-23b9c5b242f2","v":"1f1606689ace2b29","previous":{"v":"c099f8c39f873233"},"p":"6743ef9a-c21b-443f-91b8-4dd86886ee8c","f":{"id":"form","v":"4fa42fcff3786d1e","text":"Form"},"data":{"name":"CRM Ordner","tags":"","namedIcon":"far fa-user-tag","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Name][name]\n\n[DMS Folder to duplicate offers/invoices to][accountingFolder]\n[accountingFolder]: /a04c8913-db48-4e80-b20d-0f3cc17a778c\n\n[Default Activity Assignees][defaultActivityAssignees]\n[defaultActivityAssignees]: /group\n\n[Default Assignees for API created customers][defaultAssigneesApi]\n[defaultAssigneesApi]: /group\n\n## DMS\n\n[DMS root folder][dms]\n[dms]: /ref\n\n## Project\n\n[Project root folder][project]\n[project]: /ref\n\n<!-- [Allow additional projects][allowAdditionalProjects] -->\n<!-- [allowAdditionalProjects]: switch -->","functions":"","allowedChildrenForms":[],"commands":[{"id":"92249a09-237c-481f-9e1f-a26941a4ecbd","v":"8f5026737e1689c1","text":"rd:Neu"}],"description":""},"locks":[],"created":{"at":"2020-06-23T12:02:33+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2024-02-09T12:14:31+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1707480871692,"ct":1592913753278,"a_depth":3,"a":["apps","9d6ee173-26fe-4472-a271-7667f717094e","6743ef9a-c21b-443f-91b8-4dd86886ee8c"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1721053273458},{"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7"],"a_depth":3,"a_forms":["folder","application-form","form-folder"],"created":{"at":"2022-02-28T15:00:34+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1646060434247,"data":{"allowedChildrenForms":[],"commands":[],"definition":"{ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df}\n[Firma][firma]\n[firma]: /3592ceee-ae9a-47a9-8488-7bad5b0d9ff5\n\n{ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df}\n[Objekt][objekt]\n[objekt]: /3d678f2a-65f5-4dc1-a643-c5998fa33f32\n\n[Status][status]\n[status]: Select\n  - 0: Begonnen\n  - 1: Abgebrochen\n  - 2: Abgeschlossen\n  - 3: Zur Kenntnis genommen\n\n{ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df}\n[Plan (in Stammdaten)][plan]\n[plan]: /522ca40d-810b-4021-835f-beeace3af7fa\n\n[Kommentar][kommentar]\n\n{sct:rueckgabe-signieren}\n[Unterschrift][unterschrift]\n[unterschrift]: File\n\n{ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df}\n[Zur Kenntnis genommen von][kenntnis]\n[kenntnis]: /account\n\n{sct:goto-anlage-scan}\n[][anlage]","description":"","functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Wartung","namedIcon":"","namedIconColor":"","tags":"","theme":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"12ceedaed4c81b21"},"id":"c211ffaa-14f8-4439-9126-f42f65ac4424","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2026-03-23T08:33:16+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"p":"9b024049-2573-4921-acaa-3e172e9332d7","previous":{"v":"22131f4cffa3d936"},"stamps":[],"t":1774254796822,"v":"0afe12968a403e90"},{"id":"522ca40d-810b-4021-835f-beeace3af7fa","v":"4cd2d856d2bcde3a","previous":{"v":"cbe784ee10dfcbc5"},"p":"9b024049-2573-4921-acaa-3e172e9332d7","f":{"id":"form","v":"12ceedaed4c81b21","text":"Form"},"data":{"name":"Wartungsplan","tags":"","namedIcon":"fa fa-ruler-triangle","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Name][name]\n\n{multiline}\n[Beschreibung][beschreibung]\n\n{children new-command=75ee6c17-ae61-464e-8504-be8c687158b8}\n[Anlagen][anlagen]\n[anlagen]: /5150f703-e93a-4e54-a998-a06c0e962e71 (0-n)\n\n{hidden|sct:goto-anlage-scan}\n[Anlage][anlage]\n","functions":"","allowedChildrenForms":[],"commands":[],"description":"","theme":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2022-02-28T15:01:10+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-06-23T15:01:58+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1655996518669,"ct":1646060470280,"a_depth":3,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1716458273293},{"id":"16c72ee3-d247-4812-bb98-72a0763460a9","v":"0d0a39403516fb1c","previous":{"v":"49dec5742bac1df2"},"p":"f9e0c42b-8179-4d08-ad6d-452eed6eb855","f":{"id":"form","v":"24ab84939535fdcd","text":"Form"},"data":{"name":"Activity","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Title][name]\n\n[Type][type]\n[type]: Select\n  - CHANGED\n  - NEW\n  - DELETED\n\n[What did the activity modify][what]\n\n[What did the activity modify (Transition stamp)][whatTransition]\n[whatTransition]: /stamp\n\n[Target document][targetDocument]\n[targetDocument]: ref\n\n[targetDocumentAncestors][targetDocumentAncestors]\n[targetDocumentAncestors]: text (0-n)\n\n[Causing document][causingDocument]\n[causingDocument]: ref\n\n[Causing account][who]\n[who]: /account\n\n{datetime}\n[When][when]\n[when]: date","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2020-08-12T08:50:36+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-07-15T12:00:40+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1626350440461,"ct":1597222236488,"a_depth":3,"a":["apps","441fb0bd-959b-446d-9aee-82f1c8ede628","f9e0c42b-8179-4d08-ad6d-452eed6eb855"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1645779676326},{"a":["apps","45ada186-e9fd-451d-9dbd-2defc0b4f86f","4ec6a0e5-cf2d-4095-9b70-2e31a64d5679"],"a_depth":3,"a_forms":["folder","application-form","form-folder"],"cloneOf":{"id":"6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2","text":"Datei","v":"2a5eb7cfff4f813c"},"created":{"at":"2020-06-24T12:54:35+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","client":"server","from":""},"ct":1593003275110,"data":{"allowedChildrenForms":[],"commands":[],"definition":"{hidden}\n[syncTo][syncTo]\n[syncTo]: /ref\n\n{file file-name-to-field=[name]}\n[Datei][datei]\n[datei]: file\n\n{image-rotate}\n[Bild-Datei][datei]\n\n{multiline remove-newline}\n[Name][name]\n\n[Autor][autor]","description":"","functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Datei","namedIcon":"far fa-file","namedIconColor":"","tags":""},"f":{"id":"form","text":"Form","v":"4fa42fcff3786d1e"},"id":"dbee6e16-d63a-493c-bba6-505f79918f9f","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2025-04-14T08:33:44+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2","text":"Datei","v":"2a5eb7cfff4f813c"},"p":"4ec6a0e5-cf2d-4095-9b70-2e31a64d5679","previous":{"v":"89c8c608b116bbd6"},"stamps":[],"t":1744619624822,"v":"06a09dff703a88a4"},{"id":"43f2603c-e6b0-4a91-9087-4f103c96a2b4","v":"dc3294a667e99b5a","previous":{"v":"7411bea9b09b4b5a"},"p":"3555bef3-1cf0-4f7d-b3ce-5346fb8cbff4","f":{"id":"form","v":"230b4040236561b6","text":"Form"},"data":{"name":"Schmiedekalender","tags":"","allowUndefinedFields":false,"definition":"{hidden}\r\n[Identifier][identifier]\r\n\r\n[Name][name]\r\n\r\n[Tierärzte][tieraerzte]\r\n\r\n{children}\r\n[tieraerzte]: /7689ac8d-46f3-4d0e-a8e8-6efe9f84b474 (0-n)","functions":"","relatedDocuments":[],"defaults":"TEMPLATE","newTemplate":{"id":"ed391624-692e-47ee-855f-d355a3b5da5e","v":"initial","text":""},"newAction":{"id":"7cf98bbb-285b-4dc2-bda2-f08331a3dbaf","v":"initial","text":"New Schmiedekalender"},"allowedChildrenForms":[],"commands":[],"descendantCommands":[],"to":[],"from":[],"namedIcon":"fa fa-calendar","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"","v":"","text":""},"description":""},"locks":[],"created":{"at":"2021-11-08T16:29:12+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","from":"","client":"server"},"modified":{"at":"2025-02-07T12:55:02+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1738932902662,"ct":1738932050623,"a_depth":3,"a":["apps","b3191869-9bcf-440c-92be-7b013944b450","3555bef3-1cf0-4f7d-b3ce-5346fb8cbff4"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[]},{"a":["apps","45ada186-e9fd-451d-9dbd-2defc0b4f86f","4ec6a0e5-cf2d-4095-9b70-2e31a64d5679"],"a_depth":3,"a_forms":["folder","application-form","form-folder"],"created":{"at":"2020-06-23T14:54:58+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","client":"server","from":""},"ct":1597217469054,"data":{"allowedChildrenForms":[{"id":"dbee6e16-d63a-493c-bba6-505f79918f9f","text":"Datei","v":"ffffb258b9fbf10a"},{"id":"a04c8913-db48-4e80-b20d-0f3cc17a778c","text":"Ordner","v":"0079be408830d21b"}],"commands":[{"id":"9371c567-94ff-4f61-b3bc-1903a0a33415","text":"rd:Neu","v":"07ce49e048c8859a"}],"definition":"{hidden if !client.id|readonly}\r\n[Verknüpfter Kunde][client]\r\n[client]: /8fc08287-dbcc-4e41-9d5d-28e4cd828943\r\n\r\n{hidden if !project.id|readonly}\r\n[Verknüpftes Projekt][project]\r\n[project]: /0b6a2b21-9425-466e-9e8d-57ec39cc95e1\r\n\r\n{readonly if project.id || client.id}[Name][name] \r\n\r\n{100px|color}[Farbe][namedIconColor] \r\n\r\n{icon collections=file,folder}[Icon][namedIcon]\r\n\r\n{multiline}\r\n[Beschreibung][beschreibung]\r\n","description":"","functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Ordner","namedIcon":"far fa-folder","namedIconColor":"","tags":""},"f":{"id":"form","text":"Form","v":"24ab84939535fdcd"},"id":"a04c8913-db48-4e80-b20d-0f3cc17a778c","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2025-09-18T09:29:53+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"4ec6a0e5-cf2d-4095-9b70-2e31a64d5679","previous":{"v":"fe0fbc0754b0d666"},"stamps":[],"t":1758187793408,"v":"00b4e684028a5f95"},{"id":"3e134a66-4611-456c-88e9-be8ae3d75dff","v":"69d28f8f3531259e","cloneOf":{"id":"8fc08287-dbcc-4e41-9d5d-28e4cd828943","v":"364985c8da52fef0","text":"Kunde"},"originalCloneOf":{"id":"8fc08287-dbcc-4e41-9d5d-28e4cd828943","v":"364985c8da52fef0","text":"Kunde"},"previous":{"v":"f0d993edb6142168"},"p":"6b513a0c-498f-4eac-804d-aa8e0e99caac","f":{"id":"form","v":"4fa42fcff3786d1e","text":"Form"},"data":{"name":"[WIP] Kunde","tags":"","namedIcon":"fa fa-user-tag","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"{hidden|readonly}\n[Verknüpfte Dokumente][dmsFolder]\n[dmsFolder]: /a04c8913-db48-4e80-b20d-0f3cc17a778c\n\n{hidden}\n[Name][name]\n[name]: = functions.name(unternehmen)\n \n# Kunde\n\n{x=1|y=1|w=1}\n######## \n{ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true default-value-command=49a26db7-f4f3-41fb-ad26-e45f40d7de83}\n[Verantwortlich][verantwortlich]\n[verantwortlich]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n)\n\n[Kategorie][kategorie]\n\n\n{hidden if kategorie !== 'PRIVATKUNDE'}[Name des Kunden][unternehmen] {hidden if kategorie === 'PRIVATKUNDE'}[Unternehmen][unternehmen] {30}[Kundennummer][kundennummer]\n\n{ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true creation-location-local-setting=apps:9d6ee173-26fe-4472-a271-7667f717094e:branchen}\n[Branche][branche]\n[branche]: /80fe4932-e70d-4662-897f-d11e7c066b60 (0-n)\n\n[Hotness][hotness] [Auftragsvolumen (jährlich)][auftragsvolumen]\n\n[auftragsvolumen]: currency\n\n[kategorie]: select\n  - INTERESSENTEN: Interessenten\n  - KOOPERATIONSPARTNER: Kooperationspartner\n  - KUNDEN: Kunde (B2B)\n  - PRIVATKUNDE: Kunde (B2C)\n\n[hotness]: select\n  - \n  - COLD: kalt\n  - WARM: warm\n  - HOT: heiß\n\n[Interesse an][interesseAn] {ref ancestor-search-limit=1 hide-path=true creation-location-local-setting=apps:9d6ee173-26fe-4472-a271-7667f717094e:quellen}[Quelle][quelle]\n\n[quelle]: /1ea7612a-5c7b-41e0-8717-a553a17e9b62 (0-n)\n\n{address button-navigation=true fields=street,streetNumber,supplement,postalCode,city}\n[Adresse][adresse]\n[adresse]: address\n\n{x=2|y=1|w=1}\n######## \n{children add-to-beginning=true disable-sorting=true initial-sort-field=created.at initial-sort-descending=true}\n[Aktivitäten][aktivitaeten]\n[aktivitaeten]: /84ede5f8-c5af-4113-8235-4b7fa528e265 (0-n)\n\n# Dateien\n\n{page}\n[Dateien][dmsFolder]\n\n# Objekte\n\n{children}\n[Objekte][project]\n[project]: /e2f6fe5a-cdab-41ed-a1b2-ad342ee670d1 (0-n)","functions":"name(firma) {\n  if (!firma) {\n    return ''\n  }\n\n  return `${firma}`\n}\n","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2021-01-27T11:02:53+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-03-08T14:05:33+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1615212333385,"ct":1611745373565,"a_depth":3,"a":["apps","d91078cc-874b-4410-b837-b81f47687fe9","6b513a0c-498f-4eac-804d-aa8e0e99caac"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1611745373672},{"id":"3592ceee-ae9a-47a9-8488-7bad5b0d9ff5","v":"15c6bafd14aeffb5","previous":{"v":"ccc9980ceee16386"},"p":"9b024049-2573-4921-acaa-3e172e9332d7","f":{"id":"form","v":"12ceedaed4c81b21","text":"Form"},"data":{"name":"Wartungsfirma","tags":"","namedIcon":"fa fa-user-hard-hat","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Name][name] {30}[Telefonnummer][tel]\n\n[Ansprechpartner][ansprechpartner]\n\n[Anschrift][anschrift]\n[anschrift]: Address\n","functions":"","allowedChildrenForms":[],"commands":[],"description":"","theme":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2022-02-28T15:00:54+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-04-05T13:36:48+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1649165808708,"ct":1646060454626,"a_depth":3,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1716457859717},{"id":"17c3a5d3-90ba-4592-961b-0800873ef9c1","v":"c767d9d2bd520971","previous":{"v":"929fff49dc61d9c8"},"p":"20c92864-6a81-4006-96f9-b78f473cd129","f":{"id":"form","v":"4fa42fcff3786d1e","text":"Form"},"data":{"name":"Projekt","tags":"","namedIcon":"fa fa-tasks","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Name][name]\n[Beschreibung][beschreibung]\n\n[Bis][bis]\n[bis]: Date\n\n{ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true}\n[Verantwortlich][verantwortlich]\n[verantwortlich]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n)\n\n[Erledigt][erledigt]\n[erledigt]: Switch\n\n{attachment form-id=\"6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2\" file-field=\"datei\" file-name-field=\"name\"}\n[Anhänge][anhaenge]\n[anhaenge]: /6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2 (0-n)\n\n{hidden|children no-add=true no-templates=true delete-on-remove=true add-to-beginning=true show-filter=true readonly=true design=ref-selectable}\n[Aufgaben][aufgaben]\n[aufgaben]: /3d456c38-6282-416e-8c5e-7d20b0517a6e (0-n) ","functions":"","allowedChildrenForms":[],"commands":[{"id":"c28b1f67-c11e-4584-9aa9-3a6fa3ee6c1c","v":"71766609665ddf67","text":"Neu"}],"description":""},"locks":[],"created":{"at":"2019-07-03T07:27:01+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2021-07-13T14:29:14+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1626186554121,"ct":1562138821416,"a_depth":3,"a":["apps","5acfd7a2-33e4-498a-9150-71e1ab772bfc","20c92864-6a81-4006-96f9-b78f473cd129"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1634031740153},{"id":"f6f822ec-eff4-4dc9-9ca6-8131004688da","v":"ccc3d7511aa03f24","previous":{"v":"initial"},"p":"25fda732-5296-4fab-8d4e-92c3e32ca2c0","f":{"id":"form","v":"42ef1fd37c206edb","text":"Form"},"data":{"name":"Belege","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"","functions":"","allowedChildrenForms":[],"commands":[],"description":"","theme":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2022-11-23T09:40:17+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-12-19T10:15:12+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1671444912398,"ct":1669196417236,"a_depth":3,"a":["apps","85d3c028-a61c-4be8-93d0-4366bc45752f","25fda732-5296-4fab-8d4e-92c3e32ca2c0"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1675334624900},{"id":"5152f88f-3006-46f9-959a-423139accf79","v":"19d022c22e978d09","previous":{"v":"d455627ac784563d"},"p":"f254ce25-42f1-4333-8ee7-23554bf746c1","f":{"id":"form","v":"a57e5af653d72344","text":"Form"},"data":{"name":"Zu versendende Formulare","tags":"","namedIcon":"far fa-envelope","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Betreff][name]\n\n{readonly}\n[Empfänger][empfaenger]\n[empfaenger]: /f8fd3176-4995-455f-a8a8-d2742a836816 (0-n)\n  help:\n  ---\n  Der Empfänger wird aus dem Projekt in folgenden Reihenfolge ausgelesen: `Ansprechpartner` mit Rückfall auf `Bauherr`.\n\n  Sind beide nicht ausgewählt, wird auf einen leeren Kontakt zurückgegriffen.\n\n{attachment form-id=dbee6e16-d63a-493c-bba6-505f79918f9f file-field=datei name-field=name delete-on-remove=true list=true direct-preview=true}\n[Anhänge][anhaenge]\n[anhaenge]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n  help:\n  ---\n  Es können weitere Anhänge hinzugefügt werden, welche der Kunde zusätzlich herunterladen kann.\n  \n  Folgende *Dateien* und *Word-Vorlagen* aus den *Stammdaten* wurden automatisch hinzugefügt, sofern hinterlegt:\n  - Alle aus *Projektdateien*\n  - Von jeder im Projekt ausgewählten Leistung\n\n{readonly|attachment form-id=dbee6e16-d63a-493c-bba6-505f79918f9f file-field=datei name-field=name delete-on-remove=true list=true direct-preview=true}\n[Uploads des Kunden][uploads]\n[uploads]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2019-08-22T12:20:33+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2024-05-17T11:04:13+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":"1cdca864-ebbd-4574-a524-1060843e275f","impersonatedBy":null,"from":"","client":"server"},"t":1715943853870,"ct":1566476433361,"a_depth":3,"a":["apps","94a64d89-d204-4918-b147-d717914fb03e","f254ce25-42f1-4333-8ee7-23554bf746c1"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1733474963028},{"a":["apps","bd4df555-2c56-4a5f-82f0-7e4745372f51","b42c9135-e564-4d50-abd1-4d753921120f"],"a_depth":3,"a_forms":["folder","application-form","folder"],"created":{"at":"2018-01-16T16:08:37+01:00","by":"","client":"server","from":""},"ct":1755509432462,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[],"commands":[],"defaults":"","definition":"[Name][name]\n\n{bpmn}[Prozess][prozess]","descendantCommands":[],"description":"","from":[],"functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Prozess","namedIcon":"fa fa-object-group","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"relatedDocuments":[],"tags":"","theme":{"id":"","text":"","v":""},"to":[],"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"16a1fc2c7a734357"},"id":"527f9bb3-01bd-48cc-ad5b-08b1bba3af33","inheritedLocks":[null,null,null,null],"locks":[],"meta":{"modified":{"at":"2025-08-18T09:30:32+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null}},"modified":{"at":"2022-03-01T09:38:17+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"b42c9135-e564-4d50-abd1-4d753921120f","previous":{"f":{"id":"form","text":"Form","v":"52e8a26ebfb7015e"},"v":"d13ab20545497d6d"},"stamps":[],"t":1755509432462,"v":"09c4a0f2b28a59cc"},{"id":"c0574720-6967-4293-94a8-e7b32a40fc6f","v":"0e12953ecfb6a805","previous":{"v":"427daa16c73376a9"},"p":"7c30f282-2b84-4976-8735-ba78662ea5e6","f":{"id":"form","v":"4fa42fcff3786d1e","text":"Form"},"data":{"name":"Ordner","tags":"","namedIcon":"fa fa-folder","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Name][name] {100px}{color}[Farbe][farbe]\r\n\r\n{multiline auto-grow=true}\r\n[Beschreibung][beschreibung]\r\n\r\n[Icon][icon] \r\n[icon]: Image\r\n\r\n{hidden|workflows}\r\n[][_]\r\n\r\n#### Sortierung\r\n\r\n{field-picker source-form-id=6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2 fields=data.name,created.at,modified.at}\r\n[Feld][sortierungFelder]\r\n[sortierungFelder]: string (0-n) \"Die Sortierung erfolgt in der **Reihenfolge** der ausgewählten Felder\"\r\n\r\n[Absteigend][sortierungAbsteigend]\r\n[sortierungAbsteigend]: switch \"Die Sortierung erfolgt standardmäßig aufsteigend\"","functions":"","allowedChildrenForms":[{"id":"6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2","v":"e4ecbf23cc228421","text":"Datei"},{"id":"cb2adf77-7636-41a7-9a16-1610b06fa91e","v":"f879886138717b72","text":"Page"},{"id":"c0574720-6967-4293-94a8-e7b32a40fc6f","v":"e9b7f9cd5cf4e5a0","text":"Ordner"}],"commands":[],"description":""},"locks":[],"created":{"at":"2019-03-08T10:42:14+00:00","by":"c28abfb5-e53a-40df-8454-8cc8666cbe15","from":"","client":"server"},"modified":{"at":"2021-12-21T13:13:50+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1640092430724,"ct":1584006872676,"a_depth":3,"a":["apps","3d43a3f5-fea4-488d-9fc1-9dee5e694623","7c30f282-2b84-4976-8735-ba78662ea5e6"],"a_forms":["folder","application-form","folder"],"inheritedLocks":[null,null,null,null],"stamps":[]},{"id":"d0ad2406-e22b-4ee0-be37-0a782be68d11","v":"be4cccbbb21cf13e","previous":{"v":"5e366e7259e0a9bc"},"p":"e7de598c-6f5a-4ab4-a33b-213ca86e489d","f":{"id":"form","v":"d497194b29933d26","text":"Form"},"data":{"name":"Konstruktion","tags":"experimental-rendering","allowUndefinedFields":false,"definition":"\n{collapsible}\n## Projekt\n\n[Revisionsdaten][revisionFiles]\n\n{readonly}\n{ae:files}\n[revisionFiles]: /b3fd0549-f4fe-4737-b804-433f75688448 (0-n)\n\n{collapsible}\n### Schwundzugabe Kunststoff \n \n{readonly|embedded document-query=\"p -> data.vertrieb\" inline-only-fields=plasticShrinkageAllowanceX,plasticShrinkageAllowanceY,plasticShrinkageAllowanceZ,plasticShrinkageAllowancePercent}\n[Vertrieb][vertrieb]\n\n{collapsible|subtitle=\"number of mould- & loose parts\"}\n### Anzahl der Form- & Losteile \n\n{readonly|embedded document-query=\"p -> data.vertrieb\" inline-only-fields=numberOfMouldParts,numberOfLooseParts,manufacturingProcess,toolQuality}\n[Vertrieb][vertrieb]\n\n<!-- Ende Seite -3- -->\n\n{collapsible|subtitle=\"demolding direction / mould split\"}\n## Entformungsrichtung / Trennung \n\n{readonly|embedded document-query=\"p -> data.vertrieb\" inline-only-fields=demoulding,mouldSplitLine}\n[Vertrieb][vertrieb]\n\n{collapsible|subtitle=\"CAD-images with mould-split proposal and opening sequence\"}\n### CAD- Bilder des Trennungsverlaufs mit Öffnungsreihenfolge \n\n{readonly|embedded document-query=\"p -> data.vertrieb\" inline-only-fields=numberOfMouldParts}\n[Vertrieb][vertrieb]\n\n[Formschalen auf Führungen][guidedMouldHalves]\n\n{ae:select}\n[guidedMouldHalves]: Select (0-n) \"Guided mould halves\"\n  - FS01: FS01\n  - FS02: FS02\n  - FS03: FS03\n  - FS04: FS04\n  - FS05: FS05\n  - FS06: FS06\n  - FS07: FS07\n  - FS08: FS08\n  - FS09: FS09\n  - FS10: FS10\n\n[Bezeichnung der Formschalen auf Führungen][guidedMouldHalvesDescription]\n[guidedMouldHalvesDescription]: text \"Guided mould halves description\"\n  help:\n  ---\n  Bezeichnung der Formschalen orientiert sich an der Öffnungsreihenfolge. Die Formschale auf der Maschinenseite ist immer die letzte \n\n{attachment always-show-title=true size=400px form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove=true}\n[CAD- Bilder des Trennungsverlaufs mit Öffnungsreihenfolge][cadImagesWithMouldSplitProposalAndOpeningSequence]\n[cadImagesWithMouldSplitProposalAndOpeningSequence]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) \"CAD-images with mould-split proposal and opening sequence\"\n\n<!-- Ende Seite -5- -->\n\n{collapsible|subtitle=\"number of mould- & loose parts\"}\n## Anzahl der Form- & Losteile \n\n{readonly|embedded document-query=\"p -> data.vertrieb\" inline-only-fields=numberOfLooseParts}\n[Vertrieb][vertrieb]\n\n{ae:select keep-open-after-selection=true}\n[Losteil auf Führungen][guidedLooseParts]\n\n{ae:select}\n[guidedLooseParts]: Select (0-n) \"Loose parts guided\"\n  - LS01: LS01\n  - LS02: LS02\n  - LS03: LS03\n  - LS04: LS04\n  - LS05: LS05\n  - LS06: LS06\n  - LS07: LS07\n  - LS08: LS08\n  - LS09: LS09\n  - LS10: LS10\n\n{children delete-on-remove}\n[Losteile][looseParts]\n[looseParts]: /f800b4cd-7ef2-427e-9ce0-f5834126c09d (0-n) \"Loose parts\"\n\n<!-- Ende Seite -6- -->\n\n\n{collapsible|subtitle=\"turned parts\"}\n## 2.3 Anzahl der Drehteile \n\n[Anzahl der Drehteile][piecesOfTurnedParts]\n[piecesOfTurnedParts]: number \"Pieces of turned parts\"\n\n{children delete-on-remove=true}\n[Drehteile][turnedParts]\n[turnedParts]: /a678e4d3-a2c1-4eeb-a106-6d47479692c8 (0-n) \"turned parts\"\n\n<!-- Ende Seite -7- -->\n<!-- Ende Seite -8- -->\n\n{collapsible|subtitle=\"informations of flange, wall thickness & mountingposts\"}\n## 2.4 Informationen zu Flansch, Wandung und Montierpfosten \n\n[Wandung][wallThickness] {hidden if wallThickness == 'NONE'}[Kommentar][wallThicknessComment]\n\n{ae:select}\n[wallThickness]: Select  \"wall thickness\"\n  - NONE:\n  - 5: 5mm (+/-1mm) \n  - 6: 6mm (+/-1mm)\n  - 7: 7mm (+/-1mm)\n  - 8: 8mm (+/-1mm)\n  - 9: 9mm (+/-1mm)\n  - 10: 10mm (+/-1mm)\n\n{readonly|embedded document-query=\"p -> data.vertrieb\" inline-only-fields=flange,flangeRecessed,flangeInWhichMouldHalf}\n[Vertrieb][vertrieb]\n\n{switched-field field-label=\"in welcher Formschale\" field-name=flangeInWhichMouldHalf}\n[sealingGroove]: switch \"sealing groove\"\n\n{ae:select}\n[flangeInWhichMouldHalf]: Select  (0-n) <only-if=sealingGroove> \"in which mould half\"\n  - FS01: FS01\n  - FS02: FS02\n  - FS03: FS03\n  - FS04: FS04\n  - FS05: FS05\n  - FS06: FS06\n  - FS07: FS07\n  - FS08: FS08\n  - LS01: LS01\n  - LS02: LS02\n  - LS03: LS03\n  - LS04: LS04\n  - LS05: LS05\n  - LS06: LS06\n  - LS07: LS07\n  - LS08: LS08\n\n{ae:select}\n[Montierpfosten][mountingposts]\n[mountingposts]: Select \"mounting posts\"\n  - NONE: \n  - 25_THREAD_M8 <help=\"With thread M8\">: Ø 25mm mit Gewinde M8\n  - 25_HELICOIL_M8 <help=\"with Helicoil M8\">: Ø 25mm mit HeliCoil M8\n  - 30_THREAD_M8 <help=\"with thread M8\">: Ø 30mm mit Gewinde M8 \n  - 30_HELICOIL_M8 <help=\"with HeliCoil M8\">: Ø 30mm mit HeliCoil M8 \n\n  help(25_THREAD_M8):\n  ---\n  **Montierpfosten mit Gewinde**\n\n  <img src=\"/api/docs/597f9c65-1ebe-40f7-bd8b-7099d1f62398/fields/datei/_content\" width=\"600\">\n\n  help(25_HELICOIL_M8):\n  ---\n  **Montierpfosten mit HeliCoil**\n\n  <img src=\"/api/docs/589fa90a-1dca-4a93-96ab-9cf84bd580c6/fields/datei/_content\" width=\"600\">\n\n  help(30_THREAD_M8):\n  ---\n  **Montierpfosten mit Gewinde**\n\n  <img src=\"/api/docs/597f9c65-1ebe-40f7-bd8b-7099d1f62398/fields/datei/_content\" width=\"600\">\n\n  help(30_HELICOIL_M8):\n  ---\n  **Montierpfosten mit HeliCoil**\n\n  <img src=\"/api/docs/589fa90a-1dca-4a93-96ab-9cf84bd580c6/fields/datei/_content\" width=\"600\">\n\n<!-- Ende Seite -9- -->\n\n{collapsible|help=\"centering of the flanges\"}\n## 2.5 Zentrierung der Formflansche\n\n{readonly|embedded document-query=\"p -> data.vertrieb\" inline-only-fields=specificationsOfDowels,tongueAndGroove}\n[Vertrieb][vertrieb]\n\n{collapsible|subtitle=\"Further specifications\"}\n## 2.6 Weitere Spezifikationen \n\n{children delete-on-remove=true}\n[Inserts][inserts]\n[inserts]: /76ccd02e-b3f5-4642-991c-d908db66aa6b (0-n) \"inserts\"\n\n<!-- Ende Seite -10- -->\n<!-- Ende Seite -11- -->\n\n{children delete-on-remove=true}\n[Bohrzentrierung][drillingMark]\n[drillingMark]: /164a9d5b-53e9-448e-b9f5-d3bd3f78cbe5 (0-n) \"drilling mark\"\n\n{children delete-on-remove=true}\n[Sacklochformer][blindHoleFormer]\n[blindHoleFormer]: /df424bea-0f38-49bf-b18a-6d6fb36b8d0b (0-n) \"blind hole former\"\n  help:\n  ---\n  **Sacklochformer**\n\n  <img src=\"/api/docs/b841c425-c25b-4dd3-bee5-e6dabd8e425c/fields/datei/_content\" height=\"600\">\n\n<!-- Ende Seite -12- -->\n\n{readonly|embedded document-query=\"p -> data.vertrieb\" inline-only-fields=dateClock,materialText,namePlate}\n[Vertrieb][vertrieb] \n\n[Position der Materialkennzeichnung][dateClockMaterialIdentificationPosition]\n\n{ae:select}\n[dateClockMaterialIdentificationPosition]: Select \"position\"\n  - NONE: \n  - FS01: FS01\n  - FS02: FS02\n  - FS03: FS03\n  - FS04: FS04\n  - FS05: FS05\n  - FS06: FS06\n  - FS07: FS07\n  - FS08: FS08\n  - FS09: FS09\n  - FS10: FS10 \n\n{multiline auto-grow=true}\n[verschickt am / an][nameplateSentAt]\n\n[nameplateSentAt]: \"sent at\"\n\n{collapsible|subtitle=\"Vent / Breather\"}\n## 2.7 Entlüftung\n\n{optional switch-field=supavent control-name=\"ae:select\"}\n[SupaVent][supaventSize]\n\n{optional switch-field=smartvent control-name=\"ae:select\"}[Smartvent][smartventSize]\n\n{optional switch-field=intellivent control-name=\"ae:select\"}[IntelliVent][intelliventSize]\n\n{optional switch-field=ventWithPtfeHolder control-name=\"ae:select\"}[Vent mit PTFE-Halter][ventWithPtfeHolderSize]\n\n{optional switch-field=pftePipe control-name=\"ae:select\"}[PTFE-Rohr][pftePipeSize]\n\n{optional switch-field=donut control-name=\"ae:select\"}[Donut][donutSize]\n\n{optional switch-field=filter control-name=\"ae:select\"}[Filter][filterSize]\n\n[supavent]: switch \n\n{ae:select}\n[supaventSize]: Select \"size\"\n  - NONE: \n  - SUPAVENT_RJ1_14_L70: SupaVent RJ1 Ø14 L70\n  - SUPAVENT_M19_21_L85: SupaVent M19 Ø21 L85\n\n  help:\n  ---\n  <img src=\"/api/docs/3a41975e-cd20-40bb-a304-3f4725973c07/fields/datei/_content\" width=\"300\">\n\n[smartvent]: switch\n\n{ae:select}  \n[smartventSize]: Select \"size\"\n  - NONE: \n  - SMARTVENT_LS8_8_7_L24: SmartVent LS8 Ø8.7 L24\n  - SMARTVENT_VG13_14_L26: SmartVent VG13 Ø14 L26\n  - SMARTVENT_G25_27_L55: SmartVent G25 Ø27 L55\n\n  help:\n  ---\n  <img src=\"/api/docs/ea625288-385b-48d8-b7e1-c5943a3abfd8/fields/datei/_content\" width=\"300\">\n\n\n[intellivent]: switch\n\n{ae:select}\n[intelliventSize]: Select \"size\"\n  - NONE: \n  - INTELLIVENT_IN19: IntelliVent IN19\n  - INTELLIVENT_IN40: IntelliVent IN40\n\n  help:\n  ---\n  <img src=\"/api/docs/73b74746-0709-46d1-916d-03aeac558c95/fields/datei/_content\" width=\"300\">\n\n[ventWithPtfeHolder]: switch \"with PTFE-holder\"\n\n{ae:select}\n[ventWithPtfeHolderSize]: Select <only-if=ventWithPtfeHolder> \"size\" \n  - NONE: \n  - SMARTVENT_LS8_PTFE_19_L50: SmartVent LS8 PTFE Ø19 L50\n  - SMARTVENT_LS8_PTFE_19_L75: SmartVent LS8 PTFE Ø19 L75\n  - SMARTVENT_LS8_PTFE_19_L100: SmartVent LS8 PTFE Ø19 L100\n  - SMARTVENT_LS8_PTFE_19_L125: SmartVent LS8 PTFE Ø19 L125\n  - SUPAVENT_RJ1_PTFE_30_L50: SupaVent RJ1 PTFE Ø30 L50\n  - SUPAVENT_RJ1_PTFE_30_L75: SupaVent RJ1 PTFE Ø30 L75\n  - SUPAVENT_RJ1_PTFE_30_L100: SupaVent RJ1 PTFE Ø30 L100\n  - SUPAVENT_RJ1_PTFE_30_L125: SupaVent RJ1 PTFE Ø30 L125\n  - SUPAVENT_M19_PTFE_50_L50: SupaVent M19 PTFE Ø50 L50\n  - SUPAVENT_M19_PTFE_50_L75: SupaVent M19 PTFE Ø50 L75\n  - SUPAVENT_M19_PTFE_50_L100: SupaVent M19 PTFE Ø50 L100\n  - SUPAVENT_M19_PTFE_50_L125: SupaVent M19 PTFE Ø50 L125\n\n  help:\n  ---\n  <img src=\"/api/docs/f603e82a-55d2-49e8-905a-6feff3253352/fields/datei/_content\" width=\"300\">\n\n<!-- Ende Seite -13- -->\n\n[pftePipe]: switch \"PTFE-pipe\"\n\n{ae:select}\n[pftePipeSize]: Select <only-if=pftePipe> \"size\"\n  - NONE: \n  - 15_L150: Entlüftung Ø15 L150\n  - 20_L150: Entlüftung Ø20 L150\n  - 20_L200: Entlüftung Ø20 L200\n  - 25_L150: Entlüftung Ø25 L150\n  - 25_L200: Entlüftung Ø25 L200\n  - 30_L150: Entlüftung Ø30 L150\n  - 30_L200: Entlüftung Ø30 L200\n  - 40_L150: Entlüftung Ø40 L150\n  - 40_L200: Entlüftung Ø40 L200\n\n  help:\n  ---\n  <img src=\"/api/docs/e2954d19-5e92-49a2-829c-1fd91f86bd1b/fields/datei/_content\" width=\"300\">\n\n[donut]: switch \n\n{show if donut}\n{ae:select}\n[donutSize]: Select \"size\"\n  - NONE: \n  - 30_14: Donut 1.Ø30 2.Ø14\n  - 30_21: Donut 1.Ø30 2.Ø21\n  - 45_21: Donut 1.Ø45 2.Ø21\n  - 45_26: Donut 1.Ø45 2.Ø26\n\n  help:\n  ---\n  <img src=\"/api/docs/1008056d-4c4b-4a17-9fc9-eab481940878/fields/datei/_content\" width=\"300\">\n\n[filter]: switch\n\n{ae:select}\n[filterSize]: Select \"size\"\n  - NONE: \n  - 7_8_L120: Filter Ø7.8 L120\n  - 15_L30: Filter Ø15 L30\n\n  help:\n  ---\n  <img src=\"/api/docs/0f544ab6-954f-4287-962f-68304a92bb56/fields/datei/_content\" width=\"300\">\n\n{attachment always-show-title=true size=400px form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove=true}\n[CAD- Bilder für Positionierung der Entlüftung][cadImagesOfVentingPosition]\n[cadImagesOfVentingPosition]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) \"CAD-images of the position of the Venting\"\n\n{collapsible}\n## 2.8 Befüllöffnung\n\n{ae:select}\n[Befüllung über][fillingOver]\n[fillingOver]: Select \"filling over\"\n  - NONE: \n  - FS01: FS01\n  - FS02: FS02\n  - FS03: FS03\n  - FS04: FS04\n  - FS05: FS05\n  - FS06: FS06\n  - FS07: FS07\n  - FS08: FS08\n  - LS01: LS01\n  - LS02: LS02\n  - LS03: LS03\n  - LS04: LS04\n  - LS05: LS05\n  - LS06: LS06\n  - LS07: LS07\n  - LS08: LS08\n\n{collapsible|subtitle=\"frame, clamps & machine fixation\"}\n## 2.9 Rahmen, Spanner & Aufnahme \n\n{readonly|embedded document-query=\"p -> data.vertrieb\" inline-only-fields=mountingPlate}\n[Vertrieb][vertrieb]\n\n{children delete-on-remove=true}\n[Rahmen][frame]\n[frame]: /bdd70340-1c59-4f92-8249-caa534e1cb15 (0-n) \"frame\"\n\n{ae:select}\n[Spanner manuell][manuallyClamps]\n[manuallyClamps]: Select \"manual clamps\"\n  - NONE: \n  - KISTENSPANNER_K10: Kistenspanner K10\n  - KISTENSPANNER_XL: Kistenspanner XL\n  - MAUS_FAST: Maus-Spanner \"fast\"\n  - MAUS_NORMAL: Maus-Spanner \"normal\"\n  - MOEWE: Möwe-Spanner\n  - ALMOND_ALM_50: Almond Alm-50\n  - HMC_100: HMC-100\n  - BOLT_RECEIVER: Bolt & Receiver\n  \n  help(BOLT_RECEIVER):\n  ---\n  **Bolt & Receiver**\n\n  <img src=\"/api/docs/dcb44f82-87df-437f-a1ee-a9cb415e888c/fields/datei/_content\" height=\"350\">\n\n  help(HMC_100):\n  ---\n  **HMC-100**\n\n  <img src=\"/api/docs/98022532-97b4-4397-8d21-b3e41cc24da5/fields/datei/_content\" height=\"350\">\n\n  help(KISTENSPANNER_K10):\n  ---\n  **Kistenspanner K10**\n\n  <img src=\"/api/docs/1eed6bfa-408d-4a2a-8abe-63e06752a671/fields/datei/_content\" height=\"350\">\n\n  help(KISTENSPANNER_XL):\n  ---\n  **Kistenspanner XL**\n\n  <img src=\"/api/docs/e0f44944-d0db-4e53-930a-b831064751ce/fields/datei/_content\" height=\"350\">\n\n  help(MAUS_FAST):\n  ---\n  **Maus-Spanner \"fast\"**\n\n  <img src=\"/api/docs/184bd922-68ae-4999-a1ba-fe6080262730/fields/datei/_content\" height=\"350\">\n\n  help(MAUS_NORMAL):\n  ---\n  **Maus-Spanner \"normal\"**\n\n  <img src=\"/api/docs/e6a60762-1ddd-4a03-8849-4a1c38db6529/fields/datei/_content\" height=\"350\">\n\n  help(MOEWE):\n  ---\n  **Möwe-Spanner**\n\n  <img src=\"/api/docs/2416492b-7ef5-43e7-aa27-1189a4069e40/fields/datei/_content\" height=\"350\">\n\n\n<!-- Ende Seite -15- -->\n\n{ae:select}\n[Spanner pneumatisch][pneumaticClamps]\n[pneumaticClamps]: Select \"pneumatic clamps\"\n  - NONE: \n  - ZLS_A63 <help=\"pneumatic clamp\">: Pneumatikspanner ZLS-A63\n  - OTHER <help=\"other pneumatic clamps\">: sonstige Pneumatikspanner\n\n  help(ZLS_A63):\n  ---\n  **Pneumatikspanner ZLS-A63**\n\n  <img src=\"/api/docs/fbcb256f-38fc-4ab4-b9ad-4565ecb71d84/fields/datei/_content\" height=\"300\">\n\n{ae:select}\n[Aufspannplatte][mounting]\n[mounting]: Select \"mounting\"\n  - NONE: \n  - LASER_CUTTED_PART: Brennteil (laser-cutted-part)\n  - STEEL_ANGLE_PROFIL: Stahlwinkel (steel angle profil)\n\n{ae:select}\n[Kranösen][liftingLugs]\n[liftingLugs]: Select \"lifting lugs\"\n  - NONE: \n  - LIFTING_LUGS_70x12 <help=\"lifting lugs\">: Kranöse 70x12\n  - LIFTING_LUGS_80x16 <help=\"lifting lugs\">: Kranöse 80x16\n  - EYEBOLT <help=\"eyebolt\">: Augenschraube\n\n  help(ZLS_A63):\n  ---\n  **Augenschraube**\n\n  <img src=\"/api/docs/29cc34eb-e102-4877-99f5-9d52d7fc2762/fields/datei/_content\" width=\"600\">\n\n  help(LIFTING_LUGS_70x12):\n  ---\n  **Augenschraube**\n\n  <img src=\"/api/docs/1721c4ea-cb49-463d-9758-fdf730e62778/fields/datei/_content\" width=\"600\">\n\n  help(LIFTING_LUGS_80x16):\n  ---\n  **Augenschraube**\n\n  <img src=\"/api/docs/1e877424-ee53-4bea-a9f6-72c2d6c72563/fields/datei/_content\" width=\"600\">\n\n{collapsible|subtitle=\"slides & pre-centering\"}\n## 2.10 Führungen & Vorzentrierung \n\n{ae:select}\n[Vorzentrierung][preCentring]\n[preCentring]: Select \"pre-centering\"\n  - NONE: \n  - FUNNEL_BIG <help=\"funnel \\\"big\\\"\">: Trichter \"groß\"\n  - FUNNEL_SMALL <help=\"funnel \\\"small\\\"\">: Trichter \"klein\"\n  - CENTERING_BRACKET <help=\"centering bracket\">: Schweifeisen\n  - FUNNEL_BIG_WITH_PTFE <help=\"funnel \\\"big\\\" with PTFE\">: Trichter \"groß\" mit PTFE\n  - FUNNEL_SMALL_WITH_PTFE <help=\"funnel \\\"small\\\" with PTFE\">: Trichter \"klein\" mit PTFE\n\n  help(FUNNEL_SMALL_WITH_PTFE):\n  ---\n  **Trichter \"klein\" mit PTFE**\n\n  <img src=\"/api/docs/b212439e-5a0e-48b9-a8d3-cba329a40588/fields/datei/_content\" width=\"600\">\n\n  help(FUNNEL_SMALL):\n  ---\n  **Trichter \"klein\"**\n\n  <img src=\"/api/docs/b252677e-d74e-40c6-acfa-07180cfb69f5/fields/datei/_content\" width=\"600\">\n\n  help(FUNNEL_BIG_WITH_PTFE):\n  ---\n  **Trichter \"groß\" mit PTFE**\n\n  <img src=\"/api/docs/e5674013-3d5b-4505-a712-447b45f91ecf/fields/datei/_content\" width=\"600\">\n\n  help(FUNNEL_BIG):\n  ---\n  **Trichter \"groß\"**\n\n  <img src=\"/api/docs/9ba54fe5-1c7b-47a8-b21f-948bc1274c9b/fields/datei/_content\" width=\"600\">\n\n  help(CENTERING_BRACKET):\n  ---\n  **Schweifeisen**\n\n  <img src=\"/api/docs/6639e0ca-7e9a-4092-a23f-c29276aa0833/fields/datei/_content\" width=\"600\">\n\n<!-- Ende Seite -16- -->\n\n[Führungen][slides] [Typ][slidesType]\n\n{ae:select}\n[slides]: Select \"slides\"\n  - NONE: \n  - ROLLONG_43_RUNNER_120 <help=\"with runner 120\">: Rollon 43 mit Läufer 120\n  - ROLLONG_43_RUNNER_150 <help=\"with runner 150\">: Rollon 43 mit Läufer 150\n  - ROLLONG_63_RUNNER_180 <help=\"with runner 180\">: Rollon 63 mit Läufer 180\n  - ROLLONG_63_RUNNER_235 <help=\"with runner 235\">: Rollon 63 mit Läufer 235\n  - TUBE_IN_TUBE <help=\"tube in tube guide\">: Rohr in Rohr\n  - ANGLE_IN_ANGLE <help=\"angle in angle guide\">: Winkelführungen \n  - HINGES <help=\"hinges\">: Scharnier \n\n  help(TUBE_IN_TUBE):\n  ---\n  **Rohr in Rohr**\n\n  <img src=\"/api/docs/ec9deeda-9af0-483d-9a88-5b50fc3e461d/fields/datei/_content\" width=\"600\">\n\n  help(ROLLONG_43_RUNNER_120):\n  ---\n  **Rollon 43 mit Läufer 120**\n\n  <img src=\"/api/docs/77e6347b-d6f4-40d9-b0d1-e91f1464b6e2/fields/datei/_content\" width=\"600\">\n\n  help(ROLLONG_43_RUNNER_150):\n  ---\n  **Rollon 43 mit Läufer 150**\n\n  <img src=\"/api/docs/3e8cc885-597d-46da-890c-719bb7bbaf2b/fields/datei/_content\" width=\"600\">\n\n  help(ROLLONG_63_RUNNER_180):\n  ---\n  **Rollon 63 mit Läufer 180**\n\n  <img src=\"/api/docs/d6d62bd9-8aef-4f49-9007-630c1e7f63c0/fields/datei/_content\" width=\"600\">\n\n  help(ROLLONG_63_RUNNER_235):\n  ---\n  **Rollon 63 mit Läufer 235**\n\n  <img src=\"/api/docs/34326f6c-bb6f-463b-8e80-ba20d1436d9a/fields/datei/_content\" width=\"600\">\n\n  help(HINGES):\n  ---\n  **Scharnier**\n\n  <img src=\"/api/docs/2ef7a1b3-ad2d-4c69-bc5d-a42bdf77b7b4/fields/datei/_content\" width=\"600\">\n\n  help(ANGLE_IN_ANGLE):\n  ---\n  **Winkelführungen**\n\n  <img src=\"/api/docs/1fcdd74f-03b1-4b0c-95f7-015087cf26b9/fields/datei/_content\" width=\"600\">\n\n{ae:select}\n[slidesType]: Select\n  - NONE: \n  - SANDER_S60: Sander S60\n  - SANDER_S80: Sander S80\n  - SANDER_S100: Sander S100\n\n<!-- Ende Seite -17- -->\n\n{collapsible|subtitle=\"informations about the surface\"}\n## 2.11 Informationen zur Oberfläche \n\n{ae:select}\n[surfaceGrinded][surfaceGrinded]\n[surfaceGrinded]: Select\n  - NONE: \n  - P80: P80\n  - P120: P120\n  - P180: P180\n  - P240: P240\n  - P320: P320\n  - P600: P600\n  - POLISHED <help=\"polished\">: poliert\n\n{ae:select}\n[surfaceSandblasted][surfaceSandblasted]\n[surfaceSandblasted]: Select\n  - NONE: \n  - BAR_2_5: 2.5 Bar\n  - BAR_3_0: 3.0 Bar\n  - BAR_3_5: 3.5 Bar\n  - BAR_4_0: 4.0 Bar\n\n{ae:select}\n[surfaceShotPeen][surfaceShotPeen]\n[surfaceShotPeen]: Select\n  - NONE: \n  - BAR_3_0: 3.0 Bar\n  - BAR_3_5: 3.5 Bar\n  - BAR_4_0: 4.0 Bar\n  - BAR_4_5: 4.5 Bar\n  - BAR_5_0: 5.0 Bar\n\n{ae:select}\n[surfaceOtherTreatment][surfaceOtherTreatment]\n[surfaceOtherTreatment]: Select\n  - NONE: \n  - P80: P80\n  - P120: P120\n  - P180: P180\n  - P240: P240\n  - P320: P320\n  - P600: P600\n  - POLISHED <help=\"polished\">:poliert \n  - BAR_2_5: 2.5 Bar\n  - BAR_3_0: 3.0 Bar\n  - BAR_3_5: 3.5 Bar\n  - BAR_4_0: 4.0 Bar\n\n{collapsible|subtitle=\"coating\"}\n## 2.12 Beschichtung \n\n{children}\n[Beschichtungen][coatings]\n[coatings]: /a77f917d-0d75-41b5-93e3-4c9da731ddbc (0-n) \"Coating\"\n\n{attachment always-show-title=true size=400px form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove=true}\n[eingefärbte CAD-Bilder zur Oberflächenbeschaffenheit][coloredCadImagesOnSurfaceTexture]\n[coloredCadImagesOnSurfaceTexture]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) \"Colored CAD images on surface texture\"\n\n<!-- Ende Seite -18- -->\n\n{collapsible|subtitle=\"other notes\"}\n## 2.13 Sonstige Anmerkungen \n\n{multiline auto-grow=true}\n[Sonstige Anmerkungen][otherNotes]\n\n<!-- Ende Seite -19- -->\n\n{collapsible|subtitle=\"conversation protocol / chronology\"}\n## 2.14 Gesprächsprotokoll / Chronologie \n\n{children delete-on-remove=true}\n[Gesprächsprotokolle][conversationProtocol]\n[conversationProtocol]: /02eaf357-29bd-45ab-a7ae-7184787bdca1 (0-n) \"Conversation protocol\"\n\n<!-- Ende Seite -20- -->\n","functions":"","defaults":"","newTemplate":{"id":"","v":"","text":""},"newAction":{"id":"","v":"","text":""},"allowedChildrenForms":[],"commands":[],"namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"","v":"","text":""},"description":""},"locks":[],"created":{"at":"2021-12-15T12:31:59+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"modified":{"at":"2024-07-23T14:12:42+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1721736762441,"ct":1702989416176,"a_depth":3,"a":["apps","deeef973-ce03-4557-bf75-75a059001767","e7de598c-6f5a-4ab4-a33b-213ca86e489d"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1720015465652},{"a":["apps","bc036ad0-6dbc-415b-b506-325fb0a44046","8ffb21f4-3d63-4824-a633-10a19d7aa7d8"],"a_depth":3,"a_forms":["folder","application-form","form-folder"],"created":{"at":"2019-08-20T09:56:23+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":""},"ct":1712752960472,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[],"commands":[{"id":"98a14196-13d5-4ed3-bae1-e05c208d71ee","text":"rd:Neu","v":"initial"}],"defaults":"","definition":"[Name][name]\n\n[Kontakte][kontakte]\n[kontakte]: /f8fd3176-4995-455f-a8a8-d2742a836816 (0-n) <AppAutomaticChildrenLink_target>","description":"","functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Kontakte","namedIcon":"fa fa-address-book","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"tags":"","theme":{"id":"","text":"","v":""},"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"d497194b29933d26"},"id":"eccbf3d6-5fc6-473a-8b81-3049bac700e4","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2025-11-06T13:39:37+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"8ffb21f4-3d63-4824-a633-10a19d7aa7d8","previous":{"v":"b443f10ee98295bb"},"stamps":[],"t":1762436377382,"v":"7da5ebe9b8a999a2"},{"a":["apps","bd4df555-2c56-4a5f-82f0-7e4745372f51","b42c9135-e564-4d50-abd1-4d753921120f"],"a_depth":3,"a_forms":["folder","application-form","folder"],"created":{"at":"2019-10-01T11:38:26+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":""},"ct":1569929906461,"data":{"allowedChildrenForms":[],"commands":[{"id":"3883bfd8-6dec-430f-a0e8-bb534e40cc69","text":"Neu","v":"e32d87f39883280f"},{"id":"98f5b69b-e3b5-4cea-bcb3-167981215487","text":"rd:New","v":"5239f5cf67573daa"}],"definition":"[Name][name]","description":"","functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Prozesse","namedIcon":"","namedIconColor":"","tags":""},"f":{"id":"form","text":"Form","v":"4fa42fcff3786d1e"},"id":"42e3adf4-96eb-4eaa-8e80-4bdd671540a3","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2025-02-17T14:52:16+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"b42c9135-e564-4d50-abd1-4d753921120f","previous":{"v":"b17ebf3ed2f413e6"},"stamps":[],"t":1739803936831,"v":"f137f1e8fbff4e4c"},{"id":"3d678f2a-65f5-4dc1-a643-c5998fa33f32","v":"ea81766c87bcb7a2","previous":{"v":"cb4af85df3fc0820"},"p":"9b024049-2573-4921-acaa-3e172e9332d7","f":{"id":"form","v":"12ceedaed4c81b21","text":"Form"},"data":{"name":"Objekt","tags":"","namedIcon":"fa fa-building","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Name][name]\n\n{address}\n[Adresse][adresse]\n[adresse]: Address\n\n{Image}\n[Bild der Karte][kartenbild]\n[kartenbild]: File\n\n{Image}\n[Bild][bild]\n[bild]: File\n\n{ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true}\n[Zuständige Wartungsfirmen][firma]\n[firma]: /3592ceee-ae9a-47a9-8488-7bad5b0d9ff5 (0-n)\n          a_forms:096cfb8f-bb8e-4a6e-87c2-2d1fac5e822a \n\n{ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true}\n[Wartungspläne][plan]\n[plan]: /522ca40d-810b-4021-835f-beeace3af7fa (0-n)\n          a_forms:d60a5613-e046-4341-9bc9-34a241e8a28a","functions":"","allowedChildrenForms":[],"commands":[],"description":"","theme":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2022-02-28T14:59:57+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-04-14T11:24:08+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1649935448825,"ct":1646060397053,"a_depth":3,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1716466128128},{"id":"92b40379-c29e-4f04-a28c-129575d864c3","v":"5b06fec3a89eee01","p":"e7de598c-6f5a-4ab4-a33b-213ca86e489d","f":{"id":"form","v":"d497194b29933d26","text":"Form"},"data":{"name":"CRM-Maus","tags":"","allowUndefinedFields":false,"definition":"[Name][name]\n\n\n","functions":"","defaults":"","newTemplate":{"id":"","v":"","text":""},"newAction":{"id":"","v":"","text":""},"allowedChildrenForms":[],"commands":[{"id":"1f8f4884-03d3-41b7-9159-a0f0ef5f2556","v":"2181d63dca708b63","text":"Neue Anfrage"}],"namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"","v":"","text":""},"description":""},"locks":[],"created":{"at":"2022-12-06T15:59:58+00:00","by":"427610a9-39dc-4014-9176-5f72aeb23263","from":"","client":"server"},"modified":{"at":"2022-12-07T12:36:54+00:00","by":"427610a9-39dc-4014-9176-5f72aeb23263","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1718866007107,"ct":1718866007107,"a_depth":3,"a":["apps","deeef973-ce03-4557-bf75-75a059001767","e7de598c-6f5a-4ab4-a33b-213ca86e489d"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"previous":{"v":"4bdc7106c6976ff9","f":{"id":"form","v":"42ef1fd37c206edb","text":"Form"}},"meta":{"modified":{"at":"2024-06-20T08:46:47+02:00","by":"427610a9-39dc-4014-9176-5f72aeb23263","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}},"dts":1718866007162},{"id":"c5cf96a1-40bb-44d5-a3f7-ea30706caf58","v":"238e9bbfe4b717ea","cloneOf":{"id":"8d8f6fdb-6f78-4e2a-b585-bd80f4dbaa1d","v":"10ac70c315f94a20","text":"Gesprächsnotiz"},"originalCloneOf":{"id":"8d8f6fdb-6f78-4e2a-b585-bd80f4dbaa1d","v":"10ac70c315f94a20","text":"Gesprächsnotiz"},"previous":{"v":"7304f956d16262e2"},"p":"6b513a0c-498f-4eac-804d-aa8e0e99caac","f":{"id":"form","v":"a57e5af653d72344","text":"Form"},"data":{"name":"Gesprächsnotiz","tags":"","namedIcon":"fa fa-comments-alt","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Betreff][name]\n\n{ref ancestor-form=e2f6fe5a-cdab-41ed-a1b2-ad342ee670d1 hide-path=true}\n[Empfänger][empfaenger]\n[empfaenger]: /6f641574-7cb6-424a-9657-4b8d652a2cf7 (0-n)\n\n{multiline}\n[Gesprächsnotiz][notiz]\n\n{attachment form-id=dbee6e16-d63a-493c-bba6-505f79918f9f file-field=datei name-field=name delete-on-remove=true direct-preview}\n[Anhänge][anhaenge]\n[anhaenge]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{hidden}\n[Share][share]\n[share]: /804bed89-803a-4090-8b1b-857cab8ec6dd\n\n{stamp id=59cda385-cabd-4f16-9e5a-0e26aabc4419 readonly=true}\n","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2021-02-01T08:39:40+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-03-08T13:43:29+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1615211009466,"ct":1612168780246,"a_depth":3,"a":["apps","d91078cc-874b-4410-b837-b81f47687fe9","6b513a0c-498f-4eac-804d-aa8e0e99caac"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1615214877803},{"id":"3d456c38-6282-416e-8c5e-7d20b0517a6e","v":"075f557fdf0f5654","previous":{"v":"4de512eaa050d14e"},"p":"20c92864-6a81-4006-96f9-b78f473cd129","f":{"id":"form","v":"dcc8032a347c59c7","text":"Form"},"data":{"name":"Aufgabe","tags":"","namedIcon":"fas fa-check","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"{line}\n[Titel][name] {12}[Erledigt][erledigt] \n\n{30}[Priorität][prioritaet] {30}[Fällig][bis]\n\n[prioritaet]: Select\n  - 0:\n  - 3: Hoch\n  - 2: Mittel\n  - 1: Niedrig\n\n[erledigt]:Switch\n[bis]: Date\n\n{timetracking}[][zeiterfassung]\n\n{ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true default-value-command=49a26db7-f4f3-41fb-ad26-e45f40d7de83}\n[Verantwortlich][verantwortlich]\n[verantwortlich]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n)\n\n{editor}[Beschreibung][beschreibung]  \n\n[beschreibung]: text\n\n{attachment form-id=\"6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2\" file-field=\"datei\" name-field=\"name\" delete-on-remove=true}\n[Anhänge][anhaenge]\n[anhaenge]: /6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2 (0-n)\n\n{comments}\n","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2019-07-03T07:27:01+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2021-07-13T14:29:14+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1626186554518,"ct":1611048501463,"a_depth":3,"a":["apps","5acfd7a2-33e4-498a-9150-71e1ab772bfc","20c92864-6a81-4006-96f9-b78f473cd129"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1666169583599},{"a":["apps","f416e371-07cc-4987-a6de-5934ef5ff3e4","1096c5df-2773-4914-9455-dc54e0f3e0e5"],"a_depth":3,"a_forms":["folder","application-form","form-folder"],"created":{"at":"2020-11-19T13:14:00+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1623661253195,"data":{"allowedChildrenForms":[],"commands":[{"id":"b9480f83-f20e-4875-8e9d-272786f27e93","text":"Open Versenden Dialog","v":"5056b86043c90f17"},{"id":"ce1bdaaf-e45a-4e53-9e49-4f72bc60cdbe","text":"Open Nachtrag Dialog","v":"0db83cd99a446755"},{"id":"44e1c81f-8d3d-4a09-b035-85dd85727b75","text":"Open Erledigt Dialog","v":"f793cd199cd6a53e"},{"id":"7643e556-c262-4998-aa48-c6ce965fb221","text":"rd:Open Versenden Dialog","v":"6fd73ec650bc66d5"},{"id":"29d4fa11-bb05-485f-86a9-7d73da4240dd","text":"rd:Open Erledigt Dialog","v":"c423eeb4293e05ca"},{"id":"f6503e35-0729-4e5d-addb-0c0f831e89b4","text":"rd:Open Nachtrag Dialog","v":"2fd20de78377ec88"},{"id":"55e553d2-0312-4a6e-ac0d-d1bad081a1bb","text":"rd:Unterweisung löschen","v":"124af22daa9239d1"}],"definition":"{readonly if versendet}[Name][name] {20|show if versendet|readonly}[Erledigt][erledigt] \n\n\n{25|show if versendet|readonly}[Versendet][versendet] {show if versendet|readonly|datetime}[am][versendetAm]\n\n{readonly if versendet|duration format=dd}\n[Erinnerung][erinnerung]\n\n{readonly if versendet|multiline auto-grow}\n[Kommentar an Empfänger][kommentar]\n\n{readonly if versendet}[Bewertung erlauben][bewertungAktiv] {readonly if versendet}[Kommentar erlauben][kommentarAktiv]\n\n{readonly if versendet|ref handle-selected=false ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df forms=group,d2ac3563-3c3f-4f02-b923-9b67abf98d10 hide-path add-transform-command=8ae71ffe-d516-4781-9621-33cb2b1f0d09 hide-path mass-edit design=\"rd:tag\" ui-filter-command=15a238c7-2439-4f08-9b9d-381ad378b8c4}\n[Empfänger][empfaenger]\n\n\n{hidden|readonly}[Gesamt][lesebestaetigungenGesamt] {hidden|readonly}[Gelesene][lesebestaetigungenGelesen] {hidden|readonly}[Ungelesene][lesebestaetigungenUngelesen]\n[lesebestaetigungenGelesen]: number \n[lesebestaetigungenGesamt]: number\n[lesebestaetigungenUngelesen]: number = lesebestaetigungenGesamt - lesebestaetigungenGelesen\n\n{hidden}\n[Kommentare][lesebestaetigungenKommentare]\n[lesebestaetigungenKommentare]: number\n\n{hidden}\n[Lesebestätigungen (positiv)][lesebestaetigungenPositiv]\n[lesebestaetigungenPositiv]: number\n\n{hidden}\n[Lesebestätigungen (neutral)][lesebestaetigungenNeutral]\n[lesebestaetigungenNeutral]: number\n\n{hidden}\n[Lesebestätigungen (negativ)][lesebestaetigungenNegativ]\n[lesebestaetigungenNegativ]: number\n\n## Fragen\n\n{readonly if versendet|children} \n[][fragen]\n[fragen]: /83d025fd-16d4-472d-bbd2-36db20e832ee (0-n)\n\n[erledigt]: switch\n[versendet]: switch\n[versendetAm]: date\n[erinnerung]: duration\n[bewertungAktiv]: switch\n[kommentarAktiv]: switch\n[empfaenger]: /ref (0-n)","description":"","functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"label":"","name":"Unterweisung","namedIcon":"far fa-presentation","namedIconColor":"","tags":""},"f":{"id":"form","text":"Form","v":"275741f6b713eb00"},"id":"94886126-c88d-4ea0-b088-8ea5ad155b08","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2025-12-01T15:25:51+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"1096c5df-2773-4914-9455-dc54e0f3e0e5","previous":{"v":"88f72486e37bb5e3"},"stamps":[],"t":1764602751628,"v":"74a879032ff6c770"},{"a":["apps","d8c9a42b-e289-4c9a-97ea-801de8ab480a","db8e20d1-732c-4c6b-9cfc-b323f83fa378"],"a_depth":3,"a_forms":["folder","application-form","form-folder"],"created":{"at":"2020-08-10T09:29:01+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","client":"server","from":""},"ct":1597051741271,"data":{"allowedChildrenForms":[],"commands":[],"definition":"[Name][name]\n\n[Identifier][identifier]\n\n{json}\n[Configuration][configuration]\n\n{children}\n[Children][children]\n[children]: /ref (0-n)","description":"","functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Kalender","namedIcon":"fa fa-calendar","namedIconColor":"","tags":""},"f":{"id":"form","text":"Form","v":"24ab84939535fdcd"},"id":"c6237a67-b8cf-4107-92d8-afd460497f0e","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2025-12-08T11:03:00+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"p":"db8e20d1-732c-4c6b-9cfc-b323f83fa378","previous":{"v":"35587ee9bc1fdd02"},"stamps":[],"t":1765191780447,"v":"40447f11f91d4685"},{"id":"6af8d180-b697-461d-afe7-d9277c1469a6","v":"78e46e185aeafe46","previous":{"v":"34ede8afeca362c7"},"p":"0fb162f4-0f78-4c1e-aad2-43c27e6d98cb","f":{"id":"form","v":"cac2c00e9d3adbaa","text":"Form"},"data":{"name":"Agenturkürzel Ordner","tags":"","allowUndefinedFields":false,"definition":"# Folder\n\n[Name][name]\n\n[Description][description]\n[description]: Text\n\n[Icon][icon]\n\n[icon]: File\n\n# Contents\n\n[Form of contained Documents][contentsForm]\n[contentsForm]: /form\n\n{child}\n[Custom Add-Command][customAddCommand]\n[customAddCommand]: /command-form\n\n## Configuration document\n\n> If some configuration is possible, it might be useful to allow the user to navigate there.\n> \n> Only displayed if a target is selected.\n\n[Target of settings cog][configurationDocument]\n[configurationDocument]: ref\n\n## Display Table\n\n> Row height sets a fixed height to each row, regardless of its content.\n>\n> This value is required.\n\n[Row height][rowHeight]\n[rowHeight]: number <required>\n\n> Fields of a document's data need `data.` before the name of the field. e.g. for field of name `position` you shall write `data.position`\n>\n> Documents meta data e.g. `id`, `created.at`, ... can be addressed to, without any preceding text.\n\n[Fields to display as Columns (,)][displayTableColumns]\n\n[Column Headers (,)][displayTableHeaders]\n\n[Column Designs (,)][displayTableDesigns]\n\n### Initial Sorting\n\n> Defaults to `data.name`\n\n[Sort by][sortBy]\n\n[Sort ascending][sortAsc]\n[sortAsc]: switch\n\n### Sorting configuration\n\n[Show reset sorting button][showResetSorting]\n[showResetSorting]: switch","functions":"","defaults":"","newTemplate":{"id":"","v":"","text":""},"newAction":{"id":"","v":"","text":""},"allowedChildrenForms":[{"id":"2168bcf2-5523-4f2f-8053-7e7f8c3ceba8","v":"2d0a31d85231f69b","text":"Agenturkürzel"}],"commands":[{"id":"a00ca7cf-f200-470a-917a-0386e21fe92a","v":"initial","text":"rd:Neu"}],"namedIcon":"fa fa-language","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"","v":"","text":""},"description":""},"locks":[],"created":{"at":"2020-12-02T13:29:39+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2024-06-26T08:36:12+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1719390972352,"ct":1719390946561,"a_depth":3,"a":["apps","3fbe0efd-713a-457a-a34c-3a12aa19d6bb","0fb162f4-0f78-4c1e-aad2-43c27e6d98cb"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1719390992580},{"id":"4c1ddccd-004a-4467-bd14-9cf590ef58eb","v":"02b5640d627d0a82","previous":{"v":"b7009e54baa53210"},"p":"bd0159cd-1362-4c50-916d-26aa2bb1ae24","f":{"id":"form","v":"a57e5af653d72344","text":"Form"},"data":{"name":"Profilseite","tags":"full-page","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Name][name]\n","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2019-07-19T08:12:06+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2019-07-19T09:54:23+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1563530063051,"ct":1563523926752,"a_depth":3,"a":["apps","18da93c8-dfa2-4c21-b0fe-7e09b2b6d6c4","bd0159cd-1362-4c50-916d-26aa2bb1ae24"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1568021433595},{"a":["apps","1887a103-bf3b-473c-8cb7-4f1afad0286b","9b02b1b6-e32b-41ec-b451-dba59bc5847b"],"a_depth":3,"a_forms":["folder","application-form","form-folder"],"created":{"at":"2021-10-06T12:45:06+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":""},"ct":1731592914151,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[{"id":"e66eae7c-a9d5-4a59-a2f0-d1fa6eb90ea5","text":"Projekt","v":"ae280dd92881a1a1"}],"commands":[{"id":"b1aaf011-604e-4ce5-980b-affcd4c2f870","text":"rd:Neu","v":"initial"}],"defaults":"","definition":"[Name][name]","descendantCommands":[],"description":"","from":[],"functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"To-dos","namedIcon":"","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"relatedDocuments":[],"tags":"","theme":{"id":"","text":"","v":""},"to":[],"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"230b4040236561b6"},"id":"6e55b0af-03d5-414b-a26b-0854ec230a07","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2024-11-18T14:39:21+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"9b02b1b6-e32b-41ec-b451-dba59bc5847b","previous":{"v":"bcf7061e1d1a8ca1"},"stamps":[],"t":1731940761975,"v":"8724beb3e501e440","dts":1731940794011},{"a":["apps","f416e371-07cc-4987-a6de-5934ef5ff3e4","1096c5df-2773-4914-9455-dc54e0f3e0e5"],"a_depth":3,"a_forms":["folder","application-form","form-folder"],"created":{"at":"2020-11-19T13:13:28+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1764860629450,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[],"commands":[{"id":"00df0169-08d3-4ce2-8328-0fe999ec3f65","text":"Neu","v":"initial"},{"id":"8ba7e373-520f-4198-83ee-847889b02f2e","text":"rd:Neu","v":"initial"}],"defaults":"","definition":"[Name][name]\n","descendantCommands":[],"description":"","from":[],"functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Unterweisungen","namedIcon":"","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"relatedDocuments":[],"tags":"transparent","theme":{"id":"","text":"","v":""},"to":[],"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"16a1fc2c7a734357"},"id":"06971b6e-2e82-40e0-9121-3bb78611fc4a","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2026-07-29T07:19:04+00:00","backedBy":"","by":"09763886-6748-4a56-8e0e-54a2293ee96b","client":"server","from":"","impersonatedBy":""},"p":"1096c5df-2773-4914-9455-dc54e0f3e0e5","previous":{"v":"062ecca5e441b178"},"stamps":[],"t":1785309544168,"v":"fd28a950ca1156b4"},{"id":"b433eabd-abe6-4564-940f-a918f71037fb","v":"f87ffc40c0be9803","previous":{"v":"150da52f1a523e83"},"p":"15292d56-6806-4263-b6d0-9194687203e1","f":{"id":"form","v":"42ef1fd37c206edb","text":"Form"},"data":{"name":"Gebäude","tags":"","namedIcon":"fa fa-building","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Bezeichnung][name]\n\n[Adresse][adresse]\n[adresse]: address\n\n[Gesamtgröße (m²)][gesamtgroesse]\n\n{ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true}\n[Ansprechpartner][ansprechpartner]\n[ansprechpartner]: /6f641574-7cb6-424a-9657-4b8d652a2cf7 (0-n)\n\n{ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true}\n[Kontakte][kontakt]\n[kontakt]: /6f641574-7cb6-424a-9657-4b8d652a2cf7 (0-n)\n\n{children}\n[Grundriss][grundriss]\n[grundriss]: /34c80ca6-34a4-48e8-abdd-d9b13ff25cff (0-n)","functions":"","allowedChildrenForms":[],"commands":[{"id":"74e3650b-b8ec-4e70-85ae-9a1607cc7e37","v":"1ff1afed74ffabe9","text":"Neu"}],"description":"","theme":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2022-04-21T12:00:01+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-09-22T14:16:40+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1663856200781,"ct":1650542401690,"a_depth":3,"a":["apps","86189c5a-b9f4-445a-879f-d94574960df0","15292d56-6806-4263-b6d0-9194687203e1"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1672829882618},{"a":["apps","37fafb3d-18da-4182-af74-082971d50956","c27d5f5f-22ff-4341-935c-02bfdc3e1ee0"],"a_depth":3,"a_forms":["folder","application-form","form-folder"],"created":{"at":"2020-08-07T13:46:22+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","client":"server","from":""},"ct":1762430901735,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[],"commands":[{"id":"2a6453b7-405c-46e9-98ff-76ac27fc9307","text":"Neu","v":"initial"},{"id":"c0e32d54-2020-4626-b0c2-7547336d0872","text":"Neu","v":"initial"}],"defaults":"","definition":"[Name][name]\n\n[Kontakte][kontakte]\n[kontakte]: /6f641574-7cb6-424a-9657-4b8d652a2cf7 (0-n) <AppAutomaticChildrenLink_target>","descendantCommands":[],"description":"","from":[],"functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Kontakte","namedIcon":"fa fa-address-book","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"relatedDocuments":[],"tags":"","theme":{"id":"","text":"","v":""},"to":[],"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"16a1fc2c7a734357"},"id":"51138ce9-66f4-44dd-9254-b8b744e88999","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2025-11-06T13:39:43+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"c27d5f5f-22ff-4341-935c-02bfdc3e1ee0","previous":{"v":"0a3fb929cd05b41c"},"stamps":[],"t":1762436383501,"v":"c7adf96511181bba"},{"id":"0deb4864-cbb6-420c-99ee-337c7444ab24","v":"0eeb1cdb4a2a3ad9","previous":{"v":"029fa41e22157180"},"p":"3be7e887-1bcd-4c3c-979f-b20a986c4c48","f":{"id":"form","v":"16a1fc2c7a734357","text":"Form"},"data":{"name":"Aufgabe","tags":"","allowUndefinedFields":false,"definition":"{hidden if !ausloeser.id|readonly}\n[Auslöser][ausloeser]\n[ausloeser]: /ref \n\n \n{60px|action hide-label expand-icon}[Erledigt][erledigt] [Titel][name]  {40px|readonly if erledigt|action hide-label icon=\"far fa-clock\"}[In Bearbeitung][inBearbeitung] \n\n[erledigt]: switch\n[inBearbeitung]: switch\n\n{25|select icon_0=\"far fa-circle\" icon_1=\"far fa-arrow-circle-down\" iconcolor_1=\"grey\" icon_2=\"far fa-arrow-circle-right\" icon_3=\"far fa-arrow-circle-up\" iconcolor_3=\"red\"}[Priorität][prioritaet] {30|datetime-range to=bisEnde has-time=bisDateTime}[Fällig][bisStart] {45|ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true default-value-command=49a26db7-f4f3-41fb-ad26-e45f40d7de83 prominent-pick-command=45f20576-a049-4643-8ce1-181c856990ac}[Verantwortlich][verantwortlich]\n\n[prioritaet]: Select\n  - 0:\n  - 3: Hoch\n  - 2: Mittel\n  - 1: Niedrig\n\n[bisDateTime]: switch\n[bisStart]: Date\n[bisEnde]: Date\n[verantwortlich]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n)\n\n{ref ancestor-index=1 hide-path=true creation-location-form=da73bcf8-be71-46ca-9645-894b04e2bfd1}\n[Labels][labels]\n[labels]: /43551782-1b7f-47ef-a694-9e9824c97091 (0-n)\n\n{editor}[Beschreibung][beschreibung]  \n[beschreibung]: text\n\n{children delete-on-remove inline handle-selected=false additional-add-control=\"rd:ref-reorder\" reorder-by=erledigt reorder-label=erledigt additional-button-layout=\"aebb3ba2-835e-4b1a-b2a0-68642bda2f23\"}\n[Checkliste][unteraufgaben]\n[unteraufgaben]: /10c5491b-3aa8-452f-aa3b-230154258024 (0-n)\n\n{hidden}\n####### \n[Unteraufgaben Gesamt][unteraufgabenGesamt]\n[Unteraufgaben Erledigt][unteraufgabenErledigt]\n[Unteraufgaben Offen][unteraufgabenOffen]\n\n[unteraufgabenGesamt]: number\n[unteraufgabenErledigt]: number\n[unteraufgabenOffen]: number = unteraufgabenGesamt - unteraufgabenErledigt\n\n####### \n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove=true}\n[Anhänge][anhaenge]\n[anhaenge]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{mails}\n[E-Mails][mails]\n[mails]: /59b7188e-1296-4466-a9c2-d6255496e7d6 (0-n)\n\n{ref list ancestor-index=1}\n[Abhängig von][abhaengigVon]\n[abhaengigVon]: /0deb4864-cbb6-420c-99ee-337c7444ab24 (0-n)\n\n\n{hidden}\n[Hat erfasste Zeiten][hatErfassteZeiten]\n[hatErfassteZeiten]: switch\n\n{position-draft cost-estimate=costEstimate}\n\n[costEstimate]: /bcb673e1-40de-4c35-941a-fc13a1e99c49","functions":"","relatedDocuments":[{"id":"7947d632-11ec-4518-88df-37a4ec0c0046","v":"initial","text":"App-Comments Statistics"},{"id":"cc8fd084-344c-45bf-ba34-3a14cf4321a8","v":"initial","text":"AppTrackedTime-TrackedTimes"},{"id":"0cc7fbf5-40fa-4ab6-a107-d05f8d5db729","v":"initial","text":"AppTrackedTime-Estimate"},{"id":"511a4db6-58d4-48d0-9a06-435cc1b5b541","v":"initial","text":"AppTrackedTime-TrackedTimeStatistic"},{"id":"7ed94656-f321-488c-847e-dbaf3c2a4a7e","v":"initial","text":"AppComments-Comments"},{"id":"3d93fd2a-0b50-4bd9-848e-c85412332158","v":"initial","text":"AppCalendar-location"}],"defaults":"","newTemplate":{"id":"","v":"","text":""},"newAction":{"id":"","v":"","text":""},"allowedChildrenForms":[],"commands":[],"descendantCommands":[],"to":[],"from":[],"namedIcon":"far fa-network-wired","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"","v":"","text":""},"description":""},"locks":[],"created":{"at":"2020-07-01T14:40:04+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","client":"server","from":""},"modified":{"at":"2026-02-20T16:32:25+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":"","impersonatedBy":"","from":"","client":"server"},"t":1771605145768,"ct":1755766169809,"a_depth":3,"a":["apps","59edbdbc-2cab-426a-bb42-6e57c5158e4f","3be7e887-1bcd-4c3c-979f-b20a986c4c48"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[]},{"id":"0b4fe19c-a550-46b7-ada0-6813a60e14bc","v":"fc07eec0a8be9f1c","previous":{"v":"6509e7b3c230bee6"},"p":"3be7e887-1bcd-4c3c-979f-b20a986c4c48","f":{"id":"form","v":"4fa42fcff3786d1e","text":"Form"},"data":{"name":"Projekte Ordner","tags":"","namedIcon":"far fa-folder-open","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Label][name]\r\n\r\n[Icon][icon]\r\n[icon]: File\r\n\r\n[DMS root folder][dms]\r\n[dms]: /554234d4-1a0a-4f31-b6a1-7899ca841995\r\n","functions":"","allowedChildrenForms":[],"commands":[{"id":"ce87bbd5-38a4-4e60-9e32-030298ba67d2","v":"initial","text":"rd:Neu"},{"id":"d7b2f97c-cc3d-42fc-9f23-df7cdf593e79","v":"7acb6cf39213237c","text":"Neu"}],"description":""},"locks":[],"created":{"at":"2020-10-13T10:19:10+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2023-12-19T09:33:16+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1702978396390,"ct":1602584350454,"a_depth":3,"a":["apps","59edbdbc-2cab-426a-bb42-6e57c5158e4f","3be7e887-1bcd-4c3c-979f-b20a986c4c48"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1718284178404},{"id":"6f48c20d-dc77-400a-b49d-5aa8b1d9053f","v":"51be710d4ba457b4","p":"76983fec-9e9a-4ab9-b7d0-e2f9923b8bd8","f":{"id":"form","v":"42ef1fd37c206edb","text":"Form"},"data":{"name":"Anträge","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Name][name]","functions":"","allowedChildrenForms":[{"id":"d4e69a72-1734-4c98-943d-a62222749b52","v":"809e90368418a3ca","text":"Antrag (BITM/AS)"},{"id":"50fe38f2-b229-4b81-b408-23608c10a1c8","v":"5cda91dfa3e50ea9","text":"Antrag (DSB)"},{"id":"0918989c-e4c8-4f20-b79d-d9aa4d4e08b6","v":"633774919b33cef8","text":"Antrag (ITA)"},{"id":"8c0cbcac-a01e-4b57-9fe7-6aaa94f6954c","v":"04fb807c97fcddc2","text":"Antrag - Überarbeitung (BITM/AS) "},{"id":"a607b3f3-74d9-48a0-be85-7a7fde8356ba","v":"04f6b778c4040285","text":"Antrag (beschlossen)"}],"commands":[],"description":"","theme":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2020-02-25T15:08:40+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2022-11-14T13:06:12+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1668431172892,"ct":1668431172892,"a_depth":3,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","76983fec-9e9a-4ab9-b7d0-e2f9923b8bd8"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"previous":{"v":"bf959cb69a344da5","f":{"id":"form","v":"dcc8032a347c59c7","text":"Form"}},"dts":1668431172895},{"id":"8d8f6fdb-6f78-4e2a-b585-bd80f4dbaa1d","v":"b7b151e6efbbe1b5","previous":{"v":"9b5a6d23d2f9fdf5"},"p":"f254ce25-42f1-4333-8ee7-23554bf746c1","f":{"id":"form","v":"a57e5af653d72344","text":"Form"},"data":{"name":"Gesprächsnotiz","tags":"","namedIcon":"far fa-comments-alt","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Betreff][name]\n\n{ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true}\n[Empfänger][empfaenger]\n[empfaenger]: /f8fd3176-4995-455f-a8a8-d2742a836816 (0-n)\n\n{multiline}\n[Gesprächsnotiz][notiz]\n\n{attachment form-id=dbee6e16-d63a-493c-bba6-505f79918f9f file-field=datei name-field=name delete-on-remove=true direct-preview=true}\n[Anhänge][anhaenge]\n[anhaenge]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n\n# Lesebestätigung\n\n{readonly if unterschriftLesebestaetigung.dataUrl|signature}\n[Unterschrift][unterschriftLesebestaetigung]\n[unterschriftLesebestaetigung]: file\n\n{stamp id=59cda385-cabd-4f16-9e5a-0e26aabc4419 readonly=true}\n\n","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2019-07-17T12:38:04+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2024-05-15T13:37:11+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":"5d3d91ef-8d41-441d-9b44-5fe9feb0e206","impersonatedBy":null,"from":"","client":"server"},"t":1715780231516,"ct":1563367084353,"a_depth":3,"a":["apps","94a64d89-d204-4918-b147-d717914fb03e","f254ce25-42f1-4333-8ee7-23554bf746c1"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1715946522523},{"id":"cfd3ce74-9fa5-46c8-a9e9-cba33a3b8e70","v":"2724712e8dac769c","previous":{"v":"fd715028ea175a21"},"p":"f254ce25-42f1-4333-8ee7-23554bf746c1","f":{"id":"form","v":"a57e5af653d72344","text":"Form"},"data":{"name":"Projekte","tags":"","namedIcon":"fa fa-clipboard-list","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Name][name]\n\n[Projection folder][projectionFolder]\n[projectionFolder]: /ref","functions":"","allowedChildrenForms":[],"commands":[{"id":"b31dc050-b862-46e8-b95b-3b735c568235","v":"0d8935815b5d1bda","text":"new"},{"id":"80fd9606-f79a-40f6-b23b-66b706ebd1e0","v":"initial","text":"rd:Neu"}],"description":""},"locks":[],"created":{"at":"2020-02-25T15:28:36+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2024-04-02T15:03:29+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1712070209464,"ct":1582644516423,"a_depth":3,"a":["apps","94a64d89-d204-4918-b147-d717914fb03e","f254ce25-42f1-4333-8ee7-23554bf746c1"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1738854888752},{"id":"3f5de83a-40e4-4662-b436-3ed4879edb10","v":"182e5158f851e6a8","previous":{"v":"efbb12441c1c9944"},"p":"75920050-07b1-4e79-9742-54abcc235e91","f":{"id":"form","v":"d497194b29933d26","text":"Form"},"data":{"name":"Behandlung","tags":"","allowUndefinedFields":false,"definition":"{now}\n[Behandlungsdatum][behandlungsdatum]\n[behandlungsdatum]: Date\n\n[Stallkarte][stallkarte]\n[stallkarte]:file \n","functions":"","defaults":"","newTemplate":{"id":"","v":"","text":""},"newAction":{"id":"","v":"","text":""},"allowedChildrenForms":[],"commands":[],"namedIcon":"far fa-file-pdf","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"","v":"","text":""},"description":""},"locks":[],"created":{"at":"2019-03-08T14:03:53+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2024-01-08T15:05:03+01:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1704722703498,"ct":1704719235599,"a_depth":3,"a":["apps","5ec4fefb-1235-484e-8d6f-4fd645bae372","75920050-07b1-4e79-9742-54abcc235e91"],"a_forms":["folder","application-form","folder"],"inheritedLocks":[null,null,null,null],"stamps":[]},{"id":"4df0ebf7-c439-48d3-8a57-eef59bcfa250","v":"674cecc5aab7cedb","previous":{"v":"af37303b6bd59435","p":"5acfd7a2-33e4-498a-9150-71e1ab772bfc","a":["apps","5acfd7a2-33e4-498a-9150-71e1ab772bfc"]},"p":"20c92864-6a81-4006-96f9-b78f473cd129","f":{"id":"form","v":"af06aca6217d20c5","text":"Form"},"data":{"name":"Projekte Ordner","description":"","definition":"[Label][name]\r\n\r\n[Icon][icon]\r\n\r\n[icon]: File","functions":"","semver":"1.1.3","allowedChildrenForms":[{"id":"17c3a5d3-90ba-4592-961b-0800873ef9c1","v":"32c25ecd22e521db","text":"Projekt"}],"layout":{"id":"","v":"","text":""},"color":{"id":"","v":0,"text":""},"iconName":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null}},"applicationLayoutOptions":{"id":"","v":"","text":""},"documentLayoutOptions":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2017-12-01T10:04:30+01:00","by":"","from":"","client":"e32230d0-79d5-4afd-baac-6d1bc75dc80b"},"modified":{"at":"2021-11-09T14:52:33+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1636469553127,"ct":1512119070301,"a_depth":3,"a":["apps","5acfd7a2-33e4-498a-9150-71e1ab772bfc","20c92864-6a81-4006-96f9-b78f473cd129"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1611928592079},{"id":"c6349b48-9561-4c06-9200-fe9df9b6fb3e","v":"f146a970e1670ff6","previous":{"v":"de30a1634f8672cf"},"p":"f254ce25-42f1-4333-8ee7-23554bf746c1","f":{"id":"form","v":"e02c68c619719072","text":"Form"},"data":{"name":"Dokumenten Share","tags":"","namedIcon":"far fa-folder-tree","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Name][name]\n\n# Kunde\n \n{visible-if-command id=3a13cdaf-95f4-43d0-a8e5-6a02e5d8ffc1 label=\"Passwort Kunde\" control=text help=\"Optional. Leer lassen für kein Passwort\"}\n[][passwortKunde]\n[passwortKunde]: text \n\n{visible-if-command id=3a13cdaf-95f4-43d0-a8e5-6a02e5d8ffc1 label=\"Zu benachrichtigende Kontakte\" control=ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df help=\"Benachrichtigungen werden gesendet bei neuen Dateien in: `Vertrag`, `Förderanträge`, `Berechnungen`, `Berichte`.\"}\n[][empfaenger]\n[empfaenger]: /f8fd3176-4995-455f-a8a8-d2742a836816 (0-n)\n\n\n{readonly|visible-if-command id=3a13cdaf-95f4-43d0-a8e5-6a02e5d8ffc1 label=\"Gesendete Formulare an Auftraggeber\" control=ref form-id=dbee6e16-d63a-493c-bba6-505f79918f9f file-field=datei name-field=name delete-on-remove list thumbnail collapse-after=10 show-download handle-selected=false}\n[][gesendeteProjektFormulare]\n[gesendeteProjektFormulare]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{readonly|visible-if-command id=3a13cdaf-95f4-43d0-a8e5-6a02e5d8ffc1 label=\"Formulare vom Auftraggeber\" control=ref form-id=dbee6e16-d63a-493c-bba6-505f79918f9f file-field=datei name-field=name delete-on-remove list thumbnail collapse-after=10 show-download handle-selected=false}\n[][hochgeladeneProjektFormulare]\n[hochgeladeneProjektFormulare]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{visible-if-command id=3a13cdaf-95f4-43d0-a8e5-6a02e5d8ffc1 label=\"Auftrags- und Vertragsunterlagen\" control=attachment form-id=dbee6e16-d63a-493c-bba6-505f79918f9f file-field=datei name-field=name delete-on-remove list thumbnail collapse-after=10}\n[][dateienVertrag]\n[dateienVertrag]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{readonly|visible-if-command id=3a13cdaf-95f4-43d0-a8e5-6a02e5d8ffc1 label=\"Angebote, Rechnungen\" control=attachment form-id=dbee6e16-d63a-493c-bba6-505f79918f9f file-field=datei name-field=name delete-on-remove list thumbnail collapse-after=10 help=\"Hier angezeigte Dateien werden automatisch aus Angeboten und Rechnungen kopiert. Werden diese dort bearbeiten/entfernt, so werden diese Datei auch hier aktualisiert.\" }\n[][dateienFakturierung]\n[dateienFakturierung]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) \n\n{visible-if-command id=3a13cdaf-95f4-43d0-a8e5-6a02e5d8ffc1 label=\"Förderanträge\" control=attachment form-id=dbee6e16-d63a-493c-bba6-505f79918f9f file-field=datei name-field=name delete-on-remove list thumbnail collapse-after=10}\n[][dateienFoerderung]\n[dateienFoerderung]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{attachment form-id=dbee6e16-d63a-493c-bba6-505f79918f9f file-field=datei name-field=name delete-on-remove list thumbnail collapse-after=10}\n[Berechnungen][dateienBerechnung]\n[dateienBerechnung]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{visible-if-command id=3a13cdaf-95f4-43d0-a8e5-6a02e5d8ffc1 label=\"Berichte\" control=attachment form-id=dbee6e16-d63a-493c-bba6-505f79918f9f file-field=datei name-field=name delete-on-remove list thumbnail collapse-after=10}\n[][dateienBerichte]\n[dateienBerichte]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{readonly|visible-if-command id=3a13cdaf-95f4-43d0-a8e5-6a02e5d8ffc1 label=\"Uploads des Auftraggebers\" control=attachment form-id=dbee6e16-d63a-493c-bba6-505f79918f9f file-field=datei name-field=name delete-on-remove list thumbnail collapse-after=10 disable-remove help=\"  Bei neuen Dateien wird eine Benachrichtigung an den Projektleiter gesendet.\"}\n[][uploads]\n[uploads]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n# Baustelle\n\n{visible-if-command id=3a13cdaf-95f4-43d0-a8e5-6a02e5d8ffc1 label=\"Passwort Baustelle\" control=text help=\"Optional. Leer lassen für kein Passwort\"}\n[][passwortBaustelle]\n[passwortBaustelle]: text \n\n{visible-if-command id=3a13cdaf-95f4-43d0-a8e5-6a02e5d8ffc1 label=\"Zu benachrichtigende Kontakte\" control=ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df help=\"Benachrichtigungen werden gesendet bei neuen Dateien in: `Berechnungen`\"}\n[][empfaengerBaustelle]\n[empfaengerBaustelle]: /f8fd3176-4995-455f-a8a8-d2742a836816 (0-n)\n\n{attachment form-id=dbee6e16-d63a-493c-bba6-505f79918f9f file-field=datei name-field=name delete-on-remove list thumbnail collapse-after=10}\n[Berechnungen][dateienBerechnung]\n[dateienBerechnung]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2020-04-22T12:19:23+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2025-01-27T13:19:46+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1737983986075,"ct":1596703058767,"a_depth":3,"a":["apps","94a64d89-d204-4918-b147-d717914fb03e","f254ce25-42f1-4333-8ee7-23554bf746c1"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1737984160385},{"id":"59b7188e-1296-4466-a9c2-d6255496e7d6","v":"ce12b109134664ff","previous":{"v":"32367b5dab6aebf1"},"p":"f0010376-2737-42c5-aaf8-f8b8e1cd0449","f":{"id":"form","v":"a57e5af653d72344","text":"Form"},"data":{"name":"Mail","tags":"","namedIcon":"far fa-envelope","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"{datetime}[Gesendet][gesendet] {datetime}[Empfangen][empfangen]\n\n[Betreff][name] \n\n\n{hidden if absender.id}[Von][von] {show if absender.id}[Absender][absender] \n\n{show if an.length}[An][an] {show if empfaenger.length}[Empfänger][empfaenger]\n\n[an]: text (0-n) \"Adressen werden in diesem Feld gespeichert, wenn kein Mitarbeiter/Kontakt für eine E-Mail gefunden werden konnte\"\n[absender]: /ref\n[empfaenger]: /ref (0-n)\n\n{show if cc.length}\n[Kopie][cc]\n[cc]: /ref (0-n)\n\n{hidden if html|multiline}\n[Text][text]\n\n{hidden if !html|html-preview}\n[Html][html]\n\n[gesendet]: DateTime\n[empfangen]: DateTime\n\n{attachment form-id=6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2 file-field=datei name-field=name delete-on-remove=true list=true}\n[Anhänge][anhaenge]\n[anhaenge]: /6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2 (0-n)\n\n{hidden}\n####### \n\n[MessageId][messageId]\n\n[ThreadIndex][threadIndex]\n\n[Msg File][msgFile]\n[msgFile]: File\n\n[Eml File][emlFile]\n[emlFile]: File\n\n[Full Mail][fullMail]\n[fullMail]: text\n\n[Headers][headers]\n[headers]: text (0-n)\n\n","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2019-08-22T12:20:29+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2024-02-16T15:30:52+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1708097452984,"ct":1566476429468,"a_depth":3,"a":["apps","b9df606f-b33a-48ad-ba91-a82fa7868fa4","f0010376-2737-42c5-aaf8-f8b8e1cd0449"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1738331113346},{"id":"208dc4fd-4c2c-4a8f-9c6d-94be86daac1d","v":"7a7abce8da8f0f42","previous":{"v":"initial"},"p":"06b46bf8-ceeb-4fd4-bf6a-4a3da0cab4ad","f":{"id":"form","v":"42ef1fd37c206edb","text":"Form"},"data":{"name":"Mieteingänge","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"","functions":"","allowedChildrenForms":[],"commands":[{"id":"cc08e839-0b23-493c-a946-02bc16b7dae0","v":"initial","text":"Mieteingänge berechnen"}],"description":"","theme":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2022-11-18T09:33:41+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-12-19T11:05:51+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1671447951433,"ct":1668764021714,"a_depth":3,"a":["apps","253003a3-5cbd-4d84-bfb2-38f60a741fb5","06b46bf8-ceeb-4fd4-bf6a-4a3da0cab4ad"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1676381434450},{"id":"84ede5f8-c5af-4113-8235-4b7fa528e265","v":"c0cac9219f60cb6d","previous":{"v":"8ddc0dfec66b6b3e"},"p":"53b70eca-0cef-448b-9674-22a70a937eb1","f":{"id":"form","v":"410df4c62fb388dd","text":"Form"},"data":{"name":"Aktivität","tags":"","allowUndefinedFields":false,"definition":"{hidden}\n[Name][name]\n[name]:text <editable=titel> = functions.name(typ, titel, text)\n\n{select icon_RUECKRUF=\"far fa-calendar\" icon_ANFRAGE=\"far fa-question\" icon_INTERN=\"far fa-pencil\" icon_WIEDERVORLAGE=\"far fa-alarm-clock\"}[Typ][typ] {now control=datetime}[Erfassungsdatum][datum]\n\n\n\n\n{show if typ === 'WIEDERVORLAGE'}\n####### \n\n\n{ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true default-value-command=529cb204-3545-48d9-8acb-0edcb11343b2 forms=group,d2ac3563-3c3f-4f02-b923-9b67abf98d10 hide-path=true add-transform-command=8ae71ffe-d516-4781-9621-33cb2b1f0d09}[Wer][verantwortlich] {date}[Wann][wann]\n\n{show if typ === 'RUECKRUF'}\n####### \n\n\n[Titel][titel] {12|show if typ === 'RUECKRUF'}[Erledigt][erledigt] \n\n{ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true default-value-command=529cb204-3545-48d9-8acb-0edcb11343b2 forms=group,d2ac3563-3c3f-4f02-b923-9b67abf98d10 hide-path=true add-transform-command=8ae71ffe-d516-4781-9621-33cb2b1f0d09}[Wer][verantwortlich] {datetime-range to=ende has-time=wannDateTime}[Wann][wann]\n\n\n{multiline auto-grow=true}\n[Notizen][text]\n\n{hidden|readonly}\n[Verknüpfter Termin][verknuepftesDokument]\n\n{hidden if typ === 'RUECKRUF'}\n####### \n\n[Titel][titel]\n\n{multiline auto-grow=true}\n[Text][text] \n\n{show if (typ === 'ANFRAGE' || typ === 'INTERN')|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove=true}\n[Anhänge][anhaenge]\n\n{show if typ === 'ANFRAGE'|mails}\n[E-Mails][mails]\n[mails]: /59b7188e-1296-4466-a9c2-d6255496e7d6 (0-n)\n\n{show if verknuepftesDokument.id|readonly}\n[Verknüpftes Dokument][verknuepftesDokument]\n\n####### \n\n\n\n[titel]: text <required>\n[text]: text\n\n[verknuepftesDokument]: /ref\n[typ]: Select\n  - RUECKRUF: Termin\n  - ANFRAGE: Anfrage\n  - INTERN: Intern\n  - WIEDERVORLAGE: Wiedervorlage\n\n[verantwortlich]: /ref (0-n) <required>\n[wann]: date <required>\n[ende]: date\n[wannDateTime]:switch\n[anhaenge]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n[erledigt]: switch","functions":"name(typ, titel, text) {\n  return titel\n}","relatedDocuments":[{"id":"0fcaf37b-371d-4af7-898f-8444a49300d0","v":"initial","text":"AppCalendar-location"}],"defaults":"","newTemplate":{"id":"","v":"","text":""},"newAction":{"id":"","v":"","text":""},"allowedChildrenForms":[],"commands":[],"descendantCommands":[],"to":[],"from":[],"namedIcon":"far fa-comment-alt","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"","v":"","text":""},"description":""},"locks":[],"created":{"at":"2020-06-23T12:13:13+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","client":"server","from":""},"modified":{"at":"2026-02-20T15:02:26+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":"","impersonatedBy":"","from":"","client":"server"},"t":1771599746413,"ct":1771599539210,"a_depth":3,"a":["apps","9d6ee173-26fe-4472-a271-7667f717094e","53b70eca-0cef-448b-9674-22a70a937eb1"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"meta":{}},{"id":"73974d8e-7d35-4b59-acf0-84c529b194f1","v":"66eb889262f2ef2f","previous":{"v":"0104ef59ed3cc2bb"},"p":"d0e84149-815a-4c38-a801-1664583fef16","f":{"id":"form","v":"d497194b29933d26","text":"Form"},"data":{"name":"Auswertung","tags":"","allowUndefinedFields":false,"definition":"[Titel][name]\n \n# Data \n\n[Data Generation Command][command]\n[command]: /command-form\n\n[Data point form][form]\n[form]: /form\n\n# Display\n\n[Display as][display]\n[display]: Select\n  - TABLE\n\n\n{show if display === 'TABLE'}\n## Display Table\n\n[Show sums][showSums]\n[showSums]: switch\n\n[Additional filter layout][additionalFilterLayout]\n[additionalFilterLayout]: /layout-form\n\n\n[Row height][rowHeight]\n[rowHeight]: number <required> \"Row height sets a fixed height to each row, regardless of its content.\"\n\n\n\n[Fields to display as Columns (,)][displayTableColumns]\n[displayTableColumns]: text\n  help:\n  -----\n  Fields of a document's data need `data.` before the name of the field. e.g. for field of name `position` you shall write `data.position`  \n  Documents meta data e.g. `id`, `created.at`, ... can be addressed to, without any preceding text.\n\n[Column Headers (,)][displayTableHeaders]\n\n[Column Designs (,)][displayTableDesigns]\n\n[Column fixed widths (,)][fixedColumnWidths]\n[Column minimal widths (,)][minColumnWidths]\n\n### Date columns \n\n[Fields to display for each Date column][dateFields]\n[dateFields]: text\n  help:\n  ----\n  Each field listed here is repeated for each date in `Date Columns`.  \n    \n  e.g.: `data.someField` with `month.2020-04-01,month.2020-05-01`\n  - is added as 2 columns to the *normal* columns.\n  - once for the Month April 2020\n  - and once for the Month May 2020.\n\n[Date Fields fixed widths (,)][fixedDateFieldWidths]\n\n[Date Fields Colors (,)][dateFieldColors]\n\n[Date Fields Designs (,)][dateFieldDesigns]\n\n[Date Columns (,)][dateColumns]\n[dateColumns]: text\n  help:\n  ----\n  Dates to display. Each date has to be formatted like `${dateType}.${date}`  \n    \n  e.g.: `month.2020-04-01`\n\n### Sorting\n\n[Disable sort][disableSort]\n[disableSort]: switch\n\n[Fields available to sort (,)][sortFields]\n\n#### Initial\n\n[Sort by][sortBy]\n[sortBy]: text \"Defaults to `data.name`\"\n\n[Sort ascending][sortAsc]\n[sortAsc]: switch\n\n### Filters\n\n[Fields available to filter (,)][filterFields]\n\n[Disable filter][disableFilter]\n[disableFilter]: switch","functions":"","defaults":"","newTemplate":{"id":"","v":"","text":""},"newAction":{"id":"","v":"","text":""},"allowedChildrenForms":[],"commands":[],"namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"","v":"","text":""},"description":""},"locks":[],"created":{"at":"2021-04-09T10:16:16+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2023-11-07T12:04:43+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1699358683613,"ct":1699357490822,"a_depth":3,"a":["apps","75c6f72a-08a2-44f4-a29c-86b58be26f96","d0e84149-815a-4c38-a801-1664583fef16"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1734001738157},{"id":"afd2fd6f-ba35-45ce-8dbe-8d9c63f5f9d5","v":"5cee73f893674b14","previous":{"v":"866f06e61de59cb1"},"p":"25fda732-5296-4fab-8d4e-92c3e32ca2c0","f":{"id":"form","v":"42ef1fd37c206edb","text":"Form"},"data":{"name":"Nebenkosten Abrechnung","tags":"","namedIcon":"fa fa-envelope-open-dollar","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"{hidden}\n[Name][name]\n[name]: text = functions.name(DateTime, von, bis)\n\n{readonly}\n[Vermietete Jahres-Fläche (m²)][vermieteteFlaeche]\n[vermieteteFlaeche]: number \n  help:\n  -----\n  Die Fläche wird wie folgt berechnet:\n  - forEach VERTRAG bestimme AKTIVE_MONATE im Zeitraum der Abrechnung. \n  - Berechne eine FLAECHE durch `AKTIVE_MONATE * VERTRAG_GESAMTGROESSE_EINHEITEN`.\n  - Summiere alle FLAECHE jedes VERTRAG.\n\n\n{readonly}[Von][von] {readonly}[Bis][bis] {readonly}[Monate][monate]\n\n[von]: date\n[bis]: date\n[monate]: number\n\n{readonly}[Gesamte Nebenkosten][nebenkosten] {readonly}[Nebenkosten vermietete 1m²/Monat][nebenkostenProQuadratmeter] {readonly}[Gezahlte Nebenkosten][nebenkostenZahlungen]\n[nebenkostenZahlungen]: number\n\n[nebenkosten]: number\n[nebenkostenProQuadratmeter]: number = functions.nebenkostenProQuadratmeter(nebenkosten, vermieteteFlaeche, monate)\n\n{children}  \n[Positionen][position]\n[position]: /a1e6ab82-7c13-4a74-89e4-1a23e443e350 (0-n)\n\n\n{readonly|ref list}\n[Belege][beleg]\n[beleg]: /c2d9407d-9dd6-42ff-acdc-ec2e296bea99 (0-n)\n\n{readonly|ref list}\n[Mieteingänge][mieteingang]\n[mieteingang]: /8b4121d2-1838-46b6-833f-43f6ded78011 (0-n)\n\n{list sort=created.at,id document-as-parent}\n[Abrechungen (Mieter)][abrechnung]\n[abrechnung]: /b761a694-27e9-4b16-b048-2c9c0c4cd971 (0-n)","functions":"nebenkostenProQuadratmeter(nebenkosten, vermieteteFlaeche, monate) {\n  function roundToDigits(number, digits) {\n    const power = Math.pow(10, digits)\n    return (Math.round(number * power) / power)\n  }\n\n  return roundToDigits(nebenkosten / vermieteteFlaeche, 3)\n}\n\nname(DateTime, von, bis) {\n  const parts = [\n    'Nebenkosten',\n  ]\n\n  if (von) {\n    parts.push(DateTime.fromISO(von, { setZone: true, locale: 'de-de' }).toLocaleString(DateTime.DATE_SHORT))\n  }\n\n  if (von && bis) {\n    parts.push('-')\n  }\n\n  if (bis) {\n    parts.push(DateTime.fromISO(bis, { setZone: true, locale: 'de-de' }).toLocaleString(DateTime.DATE_SHORT))\n  }\n\n  return parts.join(' ') \n} ","allowedChildrenForms":[],"commands":[{"id":"728d34a8-a937-40ae-8fae-0f75ae7f5fba","v":"initial","text":"Abrechnungen erstellen"}],"description":"","theme":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2022-12-02T13:46:16+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-01-26T09:38:03+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1674725883871,"ct":1669988776912,"a_depth":3,"a":["apps","85d3c028-a61c-4be8-93d0-4366bc45752f","25fda732-5296-4fab-8d4e-92c3e32ca2c0"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1672842914345},{"id":"7105a939-989c-4154-96e8-44f17f556b2a","v":"7aede2f8ff97ec21","previous":{"v":"fce728e821ccb4d3"},"p":"15292d56-6806-4263-b6d0-9194687203e1","f":{"id":"form","v":"42ef1fd37c206edb","text":"Form"},"data":{"name":"Einheit","tags":"","namedIcon":"far fa-kaaba","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Bezeichnung][name] {readonly}[Status][status]\n\n[Größe (m²)][groesse]\n[groesse]: number\n\n{readonly|ref ancestor-form=5475727b-0e0c-412a-8452-23b9c5b242f2 hide-path=true}\n[Aktuelle Mieter][mieter] \n[mieter]: /3c0a7011-6a65-4ed3-98e1-06e4f5a314d8 (0-n)\n\n[status]: select\n  - NONE: leer\n  - ANFRAGE: Anfrage\n  - VERMIETET: Vermietet\n  - GEKUENDIGT: gekündigt\n\n{readonly|ref ancestor-form=5475727b-0e0c-412a-8452-23b9c5b242f2 hide-path=true}\n[Mieter (alt)][vorherigeMieter]\n[vorherigeMieter]: /3c0a7011-6a65-4ed3-98e1-06e4f5a314d8 (0-n)\n\n{readonly}\n[QR-Code Mängelmeldung][mangelQrCode]\n[mangelQrCode]: file\n\n{list document-as-parent=true form-id=28527c6d-4f85-4881-8f5d-948021a60ad0 sort=created.at}\n[Mängelmeldungen][maengelMeldungen]\n\n\n{list ancestor-form-as-parent=b433eabd-abe6-4564-940f-a918f71037fb form-id=b4b13fc6-7d06-4832-93b0-cd27405e269d filter-document-in-field=einheit sort=data.beginn,data.status}\n[Verträge][vertraege]\n\n{hidden}\n####### \n{children}\n[Share][share]\n[share]: /804bed89-803a-4090-8b1b-857cab8ec6dd","functions":"","allowedChildrenForms":[],"commands":[{"id":"7bb5dc51-255f-467f-9b0a-8021654f8c55","v":"initial","text":"Neuer Vertrag"}],"description":"","theme":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2022-04-21T12:00:09+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-08-18T14:07:33+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1660831653216,"ct":1650542409422,"a_depth":3,"a":["apps","86189c5a-b9f4-445a-879f-d94574960df0","15292d56-6806-4263-b6d0-9194687203e1"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1660738154707},{"id":"ee4b6777-b620-43a9-9cde-7261dfc5c616","v":"initial","p":"dbd0bd68-3479-4032-9303-9d51615c27a7","f":{"id":"form","v":"6cd56a1170fa68e3","text":"Form"},"data":{"name":"Item Order","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"{hidden}\r\n[Order Number][orderNumber]\r\n\r\n[Name][name] {150px}[Ordered At][orderedAt] \r\n\r\n[orderedAt]: Date\r\n\r\n[Distributor][distributor] [Distributor Order Id][merchantOrderId] \r\n\r\n[orderNumber]: Number\r\n\r\n[distributor]: /fa174e00-7c64-4c28-8208-9d43afdf6bd3\r\n\r\n{children}\r\n[Ordered Items][items]\r\n[items]: /5fbd94f1-09fb-4c05-bcaf-3e35ce71fb9d (0-n)\r\n \r\n{mails}\r\n[Emails][emails]\r\n[emails]: /37d7f918-c519-4f95-8e69-d0da9628a059 (0-n)\r\n\r\n{attachment form-id=6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2 file-field=datei name-field=name delete-on-remove=true list=true}\r\n[Files][files]\r\n[files]: /6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2 (0-n)\r\n\r\n{multiline}\r\n[Comment][comment]","functions":"makeName(orderNo) {\r\n  if (!orderNo) {\r\n    return 'no-name'\r\n  }\r\n\r\n  return 'O-' + orderNo.toString().padStart(6,'0')\r\n}","allowedChildrenForms":[],"commands":[{"id":"15f98b24-048a-4a90-a024-29e13f1efe58","v":"initial","text":"New Delivery"}],"description":""},"locks":[],"created":{"at":"2021-11-02T09:38:35+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-11-02T09:38:35+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1635845915852,"ct":1635845915851,"a_depth":3,"a":["apps","781ff5de-69db-49dc-99f0-f328b308cd7d","dbd0bd68-3479-4032-9303-9d51615c27a7"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1635845916321},{"id":"627f5b74-3baf-45f8-a1d3-a5936839b844","v":"initial","p":"0e6939d6-9b93-4165-b6bd-977e4da881f3","f":{"id":"form-folder","v":"577dbed0412b397a","text":"Form Folder"},"data":{"name":"Forms","structural":false,"description":""},"locks":[],"created":{"at":"2020-09-28T14:13:28+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2020-09-28T14:13:28+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1601302408034,"ct":1601302408034,"a_depth":3,"a":["system","b2533f7b-ea85-4680-99ed-d8e11be641b9","0e6939d6-9b93-4165-b6bd-977e4da881f3"],"a_forms":["system-folder-form","folder","application-form"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1738067121543},{"id":"fbb5234f-66e1-4545-b087-ff1961f9ceab","v":"9df3b598f5c1d3b1","previous":{"v":"e0f1c6a572e930ab"},"p":"e7de598c-6f5a-4ab4-a33b-213ca86e489d","f":{"id":"form","v":"230b4040236561b6","text":"Form"},"data":{"name":"Auftrag","tags":"experimental-rendering","allowUndefinedFields":true,"definition":"{hidden}[Name][name]\n\n[kategorie]: /b12cba63-8003-4f84-a235-d67fd506b155\n  p: c5f473ea-b862-4f9c-bc48-b24a65053fd7\n\n[Bearbeiter][bearbeiter]\n[bearbeiter]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n)\n\n# AV: Vertrieb\n\n{child}\n[][vertrieb]\n[vertrieb]: /530cb8ec-47ef-4d15-9257-1d548798f5fe\n\n# Konstruktion\n\n{child create}\n[][konstruktion]\n[konstruktion]: /d0ad2406-e22b-4ee0-be37-0a782be68d11 <filterable>\n\n# Bestellungen\n\n{child create}\n[][bestellungen]\n[bestellungen]: /60940ed3-ddc9-4d49-bde2-78cbf95b420d \n\n# CAM \n\n{child create}\n[][cam]\n[cam]: /d8208cdd-e8ba-4c50-9bd7-2287cdf84c31 \n\n# Dreherei\n\n{child create}\n[][dreherei]\n[dreherei]: /7af2af9d-9066-4629-aa32-5769fabca376\n\n# CNC \n\n{child create}\n[][cnc]\n[cnc]: /b555f8c2-b082-4410-a127-1f37860ebee2\n\n# Formerei\n\n{child create}\n[][formerei]\n[formerei]: /58110888-e944-4df9-8cc5-2ac6ad1899fa \n\n# Gießerei\n\n{child create}\n[][giesserei]\n[giesserei]: /b571bb00-b8fb-4b18-9d56-b329c2aa5e20 <optional>\n\n# Gussputzerei\n\n{child create}\n[][gussputzerei]\n[gussputzerei]: /efd30e69-7f32-490b-b2b3-44c0a928eb3b <optional>\n\n# Formenbau\n\n{child create}\n[][formenbau]\n[formenbau]: /6b27c475-54f5-46c6-b4bb-cf6a299a9361\n\n# Rahmenbau \n\n{child create}\n[][rahmenbau]\n[rahmenbau]: /cbfb6895-5e82-4ec4-a4c0-b8bf6dc013c8 \n\n# Beschichtung\n\n{child create}\n[][beschichtung]\n[beschichtung]: /aaa3f91c-35f9-40e0-a26d-1cc612597336 <optional>\n","functions":"","relatedDocuments":[{"id":"1aa7893a-f035-42f7-87fe-9ac394735f78","v":"initial","text":"auftrag"}],"defaults":"","newTemplate":{"id":"","v":"","text":""},"newAction":{"id":"","v":"","text":""},"allowedChildrenForms":[],"commands":[],"descendantCommands":[],"to":[],"from":[],"namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"","v":"","text":""},"description":""},"locks":[],"created":{"at":"2021-12-15T12:28:11+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"modified":{"at":"2024-07-26T10:58:53+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1721984333375,"ct":1721984319882,"a_depth":3,"a":["apps","deeef973-ce03-4557-bf75-75a059001767","e7de598c-6f5a-4ab4-a33b-213ca86e489d"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1722245640292},{"a":["apps","3fbe0efd-713a-457a-a34c-3a12aa19d6bb","0fb162f4-0f78-4c1e-aad2-43c27e6d98cb"],"a_depth":3,"a_forms":["folder","application-form","form-folder"],"created":{"at":"2020-10-13T13:17:51+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":""},"ct":1719390715990,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[{"id":"8fef472f-9220-484b-99cd-bb80f208f795","text":"Rolle","v":"0b57d5c309c4d50d"}],"commands":[{"id":"b68b2aa5-7cfc-4436-865e-2aec5196efd7","text":"rd:Neu","v":"initial"}],"defaults":"","definition":"{hidden}\n####### \n{hidden}[Alle Bewerbungen][totalApplications]\n{hidden}[Abgeschlossene Bewerbungen][finishedApplications]\n{hidden|datetime}[Letzte abgeschlossene Bewerbung][lastFinishedApplication]\n{hidden|datetime}[Letzte gestartete Bewerbung][lastStartedApplication]\n\n{hidden|json}[Bewerbungen (DownloadInfo)][applicationsByDownloadInfo]\n\n[applicationsByDownloadInfo]: text\n[totalApplications]: number \n[finishedApplications]: number \n[lastFinishedApplication]: date\n[lastStartedApplication]: date\n[startedApplications]: number = totalApplications - finishedApplications\n\n####### \n\n[Abgeschlossen][closed]\n[closed]: switch\n\n[Name][name]\n\n[Projektnummer][identifier]\n\n{datetime}\n[Deadline][deadline]\n[deadline]: date\n\n[Ausgabe-Sprache des Casting Sheet PDF][castingSheetPdfLanguage]\n[castingSheetPdfLanguage]: Select <required>\n  - \n  - DE: Deutsch\n  - EN: Englisch\n\n{children navigate new-command=a5685bc6-4c45-4c7a-a6c6-7004db51f8e3 show-templates template-location-form=dbdb4d4d-a16f-4c8c-b1ac-d9fdf4ebf491 template-ancestor-index=1}\n[Casting Sheet][castingSheetForm]\n[castingSheetForm]: /form ","description":"","functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Projekt","namedIcon":"fa fa-tasks","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"tags":"","theme":{"id":"","text":"","v":""},"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"cac2c00e9d3adbaa"},"id":"e170bb6c-f326-446d-870a-ada9d9f67230","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2025-12-11T13:15:02+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"p":"0fb162f4-0f78-4c1e-aad2-43c27e6d98cb","previous":{"v":"889e405637ad6b44"},"stamps":[],"t":1765458902653,"v":"28b16e7b77c4aa83"},{"id":"9ae84206-e0bb-4d39-9200-066c2eaf0fe3","v":"d9ec74f8e42a230d","previous":{"v":"423bc39169396159"},"p":"e7de598c-6f5a-4ab4-a33b-213ca86e489d","f":{"id":"form","v":"0388b5eedce9b4d1","text":"Form"},"data":{"name":"Anfrage","tags":"experimental-rendering","allowUndefinedFields":true,"definition":"[Titel][name] {200px}[Labels][labels]\n \n{multiline auto-grow=true}\n[Beschreibung][beschreibung]\n\n{ref ancestor-form=92b40379-c29e-4f04-a28c-129575d864c3 hide-path=true creation-location-form=da73bcf8-be71-46ca-9645-894b04e2bfd1}\n[labels]: /43551782-1b7f-47ef-a694-9e9824c97091 (0-n)\n\n[Vertriebsmitarbeiter][vertriebsMitarbeiter]\n[vertriebsMitarbeiter]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n)\n\n# Kunde \n\n{hidden}[Customer Fauser Id][customerFauserId]\n[customerFauserId]: Number\n\n{maus:fauser-customer-lookup lookupCommandId=\"809ecbe9-c53e-4b1d-a323-6eff05c466f0\" selectedCommandId=\"f76cd9a9-fa57-493c-8635-bd0b344dea73\" idField=customerFauserId addressField=customerAddress}[Name][customerName] \n\n{maus:address mode=short}\n[][customerAddress]\n[customerAddress]: address\n\n[Ansprechpartner][ansprechpartner]\n[ansprechpartner]: /245e455a-86dc-4651-b88f-2822346adce9 (0-n)\n\n# Korrespondenz\n\n{mails}\n[E-Mails][mails]\n[mails]: /59b7188e-1296-4466-a9c2-d6255496e7d6 (0-n)\n\n# Dateien\n\n{child create param-show-toolbar=true}\n[][folder]\n\n[folder]: /c0574720-6967-4293-94a8-e7b32a40fc6f\n\n# Angebot\n\n[Nummer][angebotsNummer] [Datum][angebotsDatum]\n\n{currency}[Preis][angebotsPreis]\n[Wiedervorlage][angebotWiedervorlage]\n\n[angebotsDatum]: Date\n[angebotsPreis]: currency\n[angebotWiedervorlage]: Date\n\n{multiline}\n[Kommentar][wiedervorlagenKommentar]\n\n{attachment form-id=\"6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2\" file-field=\"datei\" name-field=\"name\" delete-on-remove=true}\n[Anhänge][angebotAnhaenge]\n[angebotAnhaenge]: /6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2 (0-n)\n \n\n\n{tab-class=\"underline\"}\n# Arbeitsvorbereitung\n\n{hidden}\n[Auftrag][auftrag]\n[auftrag]: /fbb5234f-66e1-4545-b087-ff1961f9ceab\n\n{child}\n[][arbeitsvorbereitung]\n[arbeitsvorbereitung]: /530cb8ec-47ef-4d15-9257-1d548798f5fe\n","functions":"","relatedDocuments":[{"id":"7b5415df-be78-4a8f-8674-3123f6b8c33c","v":"initial","text":"Arbeitsvorbereitung"}],"defaults":"TEMPLATE","newTemplate":{"id":"57944441-33c2-40bc-990f-8340a2e58b3a","v":"e4f09b30f7709535","text":"Vorlage: Neue Anfrage"},"newAction":{"id":"","v":"","text":""},"allowedChildrenForms":[],"commands":[],"descendantCommands":[{"id":"4a7363e7-507b-42be-a173-4bfe761b657a","v":"initial","text":"asdas"},{"id":"3281a208-39c7-46db-af1a-31a9f9f5f4ee","v":"initial","text":""},{"id":"f98f92b0-c338-4d55-adda-292180dd07e3","v":"initial","text":""}],"namedIcon":"fa fa-phone","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"","v":"","text":""},"description":""},"locks":[],"created":{"at":"2022-12-06T16:38:41+00:00","by":"427610a9-39dc-4014-9176-5f72aeb23263","client":"server","from":""},"modified":{"at":"2024-07-09T10:58:11+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720515491046,"ct":1720515383867,"a_depth":3,"a":["apps","deeef973-ce03-4557-bf75-75a059001767","e7de598c-6f5a-4ab4-a33b-213ca86e489d"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1721229282687},{"a":["apps","3fbe0efd-713a-457a-a34c-3a12aa19d6bb","0fb162f4-0f78-4c1e-aad2-43c27e6d98cb"],"a_depth":3,"a_forms":["folder","application-form","form-folder"],"created":{"at":"2021-06-16T13:55:34+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1623851734946,"data":{"allowedChildrenForms":[],"commands":[],"definition":"{hidden}\n####### \n{hidden}[Alle Bewerbungen][totalApplications]\n{hidden}[Abgeschlossene Bewerbungen][finishedApplications]\n{hidden|datetime}[Letzte abgeschlossene Bewerbung][lastFinishedApplication]\n{hidden|datetime}[Letzte gestartete Bewerbung][lastStartedApplication]\n\n{hidden|json}[Bewerbungen (DownloadInfo)][applicationsByDownloadInfo]\n\n[applicationsByDownloadInfo]: text\n[totalApplications]: number \n[finishedApplications]: number \n[lastFinishedApplication]: date\n[lastStartedApplication]: date\n[startedApplications]: number = totalApplications - finishedApplications\n\n####### \n\n[Name][name]\n[name]: text <required>\n\n### Share\n\n[Casting Sheet überspringen][skipCastingSheet]\n[skipCastingSheet]: switch \"Dieser Schalter sorgt dafür, dass der `Casting Sheet` Schritt (Datei Upload oder eSheet) komplett übersprungen wird, egal was im Projekt oder Rolle hinterlegt ist.\" \n\n[Portrait Foto überspringbar][allowSkipPortraitPhoto]\n[allowSkipPortraitPhoto]: switch\n\n[Interview überspringbar][allowSkipIntroductionVideo]\n[allowSkipIntroductionVideo]: switch\n\n[Link abfragen][showLink]\n[showLink]: switch\n\n[Instagram abfragen][showInstagram]\n[showInstagram]: switch\n\n{children navigate new-command=a5685bc6-4c45-4c7a-a6c6-7004db51f8e3 show-templates template-location-form=dbdb4d4d-a16f-4c8c-b1ac-d9fdf4ebf491 template-ancestor-index=1}\n[Casting Sheet][castingSheetForm]\n[castingSheetForm]: /form \"Überschreibt das Casting Sheet des Projekts\"\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove=true types=.pdf,image/*}\n[translate:additionalFiles][additionalFiles]\n\n[additionalFiles]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{children new-command=3d626027-e685-402c-92b2-8ac49447b990 disable-remove=true}\n[Share Link][link]\n[link]: /58c8b8e4-315d-4a8a-8ac3-e69d017640a6  ","description":"","functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Rolle","namedIcon":"far fa-id-badge","namedIconColor":"","tags":""},"f":{"id":"form","text":"Form","v":"149b228b7b0826ce"},"id":"8fef472f-9220-484b-99cd-bb80f208f795","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2026-03-13T13:48:09+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"p":"0fb162f4-0f78-4c1e-aad2-43c27e6d98cb","previous":{"v":"1c73ff8c5238745b"},"stamps":[],"t":1773409689720,"v":"04ca45890a674155"},{"a":["apps","089481c4-a42f-4a98-9bc9-12e9f1131f4b","5fa71c32-0186-4007-92a9-f03a32b0ff33"],"a_depth":3,"a_forms":["folder","application-form","form-folder"],"created":{"at":"2021-09-21T12:32:57+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1693492360139,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[{"id":"d94b4c11-de6b-4f8d-8c80-d1614881236a","text":"Columns-Manual","v":"041d16eaddd74292"},{"id":"bd1e3c2f-463f-4df2-91bb-36666a826256","text":"Columns-Reference","v":"6b7a4c2347b7e538"},{"id":"cf83727e-718b-472b-83ca-5bb793f8f30b","text":"Columns-References","v":"c287152023ffb6d4"},{"id":"a22a54e0-cd5d-4fcb-aae9-e31a3f238c8e","text":"Columns-Select-Number","v":"b782bbae6a851cc8"},{"id":"447b3702-8242-46ea-953c-f59f50376b30","text":"Columns-Select-Text","v":"668cdb54e042950d"},{"id":"98ba1258-42b7-4a98-adee-ca683502f4bb","text":"Columns-Switch","v":"7584f703b8f240b1"}],"commands":[],"defaults":"","definition":"[Name][name]\n\n// Currently only one Form is implemented. It is used for filters, columnsByRef's pseudoDocument in the Board Design and creating new Documents.\n[Forms][form]\n[form]: /form (1-1)\n\n[Type][type]\n[type]: Select\n  - DOCUMENT: Based on document data\n  - WORKFLOW: Integrated with Workflow\n\n{show if (type=='DOCUMENT')}\n# Dokument als Spalte\n\n// Used to query the board more precisely\n{hidden}\n[Key][key]\n[key]: text\n\n// manualColumns stores a list of columns. In the columns the header and the documents to display is stored. \n//      This is the only view that allows documents sorting inside a column to be stored. \n{children delete-on-remove}\n[Spalte manuell anlegen][listColumnsManual]\n[listColumnsManual]: /d94b4c11-de6b-4f8d-8c80-d1614881236a (0-n)\n\n// This gives the possibility to store multiple views for different fields of type Select.\n{children delete-on-remove}\n[Spalten via Select Text][listColumnsSelectText]\n[listColumnsSelectText]: /447b3702-8242-46ea-953c-f59f50376b30 (0-n)\n\n// This gives the possibility to store multiple views for different fields of type Select.\n{children delete-on-remove}\n[Spalten via Select Zahl][listColumnsSelectNumber]\n[listColumnsSelectNumber]: /a22a54e0-cd5d-4fcb-aae9-e31a3f238c8e (0-n)\n\n// This gives the possibility to store multiple views for different fields of type reference.\n{children delete-on-remove}\n[Spalten via Referenzen][listColumnsReferences]\n[listColumnsReferences]: /cf83727e-718b-472b-83ca-5bb793f8f30b (0-n)\n\n{children delete-on-remove}\n[Spalten via Referenz][listColumnsReference]\n[listColumnsReference]: /bd1e3c2f-463f-4df2-91bb-36666a826256 (0-n)\n\n// This is used to render switches\n{children delete-on-remove}\n[Spalten via Switch][listColumnsSwitch]\n[listColumnsSwitch]: /98ba1258-42b7-4a98-adee-ca683502f4bb (0-n)\n\n// The different ways to view a board are stored in the localStoreage of the browser. What the views show is stored here.\n// A cool feature missing is to create columns stamps belonging to a document. It would look like the Workflow section.\n\n\n{show if (type=='WORKFLOW')}\n# Spalten via Workflow  \n\n[Workflow Configuration][workflow]\n[workflow]: /28920b1b-fc03-454a-817f-fd7e19133d92\n\n{children}\n[Columns][columns]\n[columns]: /d5664a63-3903-4044-a1a2-c0260c55615c (0-n)\n","description":"","functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Board","namedIcon":"far fa-columns","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"tags":"","theme":{"id":"","text":"","v":""},"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"d497194b29933d26"},"id":"43420696-8097-4fc1-88e5-c69df9821470","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2025-04-24T12:54:12+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"5fa71c32-0186-4007-92a9-f03a32b0ff33","previous":{"v":"067d2920b666b17b"},"stamps":[],"t":1745499252305,"v":"cc9339b91ad71420"},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e"],"a_depth":3,"a_forms":["folder","application-form","form-folder"],"created":{"at":"2022-11-15T15:13:02+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1681389760611,"data":{"allowedChildrenForms":[],"commands":[{"id":"d171284d-f073-4807-ab6f-74dc1f42291c","text":"Aktionen","v":"initial"}],"definition":"{hidden}\n[Name][name]\n[name]: text <editable=applicationTitle> = functions.name(applicationTitle, applicationNumberTitle)\n\n[workflowError]: switch\n[allDocumentDataValid]: Switch\n\n{readonly}\n[Antragsnummer][applicationNumberTitle]\n\n// applicationNumber should be used in sorting\n{hidden|readonly}\n[Antragsnummer][applicationNumber]\n[applicationNumber]: number\n\n{readonly}[Antrags Workflow Phase][applicationWorkflowPhaseTitle] {show if lastDecisionTitle|readonly}[Aktueller Beschluss-Status][lastDecisionTitle]\n[applicationWorkflowPhaseTitle]: text <workflow-stamp-title>\n\n// applicationWorkflowPhase should be used in sorting\n{hidden}\n[Antrags Workflow Phase][applicationWorkflowPhase]\n[applicationWorkflowPhase]: select <workflow-stamp-title-order>\n  - 0: \n  - 1 <id=\"0b37a29f-97ad-4c23-8ab3-3dda160b9faf\">: P1\n  - 2 <id=\"71cb7da0-3ba5-40b9-ae16-31c344078bf7\">: P2\n  - 3 <id=\"957f2631-7be3-4e01-9c20-b6b1e9a1b111\">: P3\n  - 4 <id=\"42af64bc-da74-42ef-9cb3-f3e5838b2bff\">: P4\n  - 5 <id=\"71a809e7-f4d1-4906-81b7-0be758cbc29e\">: P5\n  - 6 <id=\"bb3c8df8-6398-43f6-b001-5450fbfa2a37\">: K\n  - 7 <id=\"5d5d870e-7c5a-454e-8273-2c7e9f5f735f\">: P6\n  - 8 <id=\"6ae60622-bf9f-4e59-bc31-5a240859be52\">: P7\n\n\n\n{readonly}\n[Antragstitel][applicationTitle]\n\n{readonly|ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df handle-selected=false hide-path}\n[Geltungsbereich][scope]\n[scope]: /21a59b67-da7b-4d24-ab4c-001362e46246 (0-n)\n\n{readonly|ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df handle-selected=false ui-filter-command=5323025f-5209-4f8d-b117-a095118bae71}\n[Beratender BITM][consultingItco]\n[consultingItco]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n)\n\n{readonly|children ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df handle-selected=false}\n[Antragsteller][applicant]\n[applicant]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n)\n\n{hidden|readonly|ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df handle-selected=false}\n[Antragsteller][applicantEmployee]\n[applicantEmployee]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n)\n\n\n{show if itaMeetingMonthByEmployer|readonly|date type=\"year-month\"}\n[ITA Sitzungsmonat (AG Wunsch)][itaMeetingMonthByEmployer]\n[itaMeetingMonthByEmployer]: date \n\n{show if itaMeetingMonthByIta.length > 0|readonly|date type=\"year-month\"}\n[ITA Sitzungsmonat (ITA)][itaMeetingMonthByIta]\n[itaMeetingMonthByIta]: date (0-n)\n\n{readonly|datetime}\n[Zeitstempel Erstellung][creationTimestamp]\n[creationTimestamp]: date\n\n","description":"","functions":"name(applicationTitle, applicationNumber) {\n  if (applicationNumber) {\n    return `[${applicationNumber}]: ${applicationTitle}`\n  }\n\n  return applicationTitle\n}","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Antrag","namedIcon":"","namedIconColor":"","tags":"","theme":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"3163b16b782f3ff6"},"id":"0bb3d600-faf0-4a5c-b49f-7994d234ae76","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2026-06-09T10:36:23+00:00","backedBy":"","by":"b7485498-f1f3-4ab1-87d1-9cb63ea890c8","client":"server","from":"","impersonatedBy":""},"p":"cd0dc80e-74a7-44b2-ac65-972cbf47562e","previous":{"v":"6bb7e8bfb5c3f0c2"},"stamps":[],"t":1781001383931,"v":"de658beddc7e673b"},{"id":"13866932-346a-448d-9560-8a7e7e26be37","v":"77a8a195f6572547","previous":{"v":"cbd5dff5c8ddf348"},"p":"e89b29a9-6ab9-47dc-a6fe-91ebda92871d","f":{"id":"form","v":"84ffcfcc2f925959","text":"Form"},"data":{"name":"Projektbezogene Modeldaten","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"{readonly|multiline}\n[translate:fee|Gage][fee]\n\n[translate:hasSpecialFee|Sondergage?][hasSpecialFee]\n[hasSpecialFee]: switch\n\n{hidden if !hasSpecialFee|multiline}\n[translate:specialFee|Sondergage][specialFee]\n[specialFee]: <required>\n\n{readonly|multiline}\n[translate:shootingDates|Drehzeitraum][shootingDates]\n\n[translate:hasBlockedDates|Sperrtermine?][hasBlockedDates]\n[hasBlockedDates]: switch\n\n{hidden if !hasBlockedDates|multiline}\n[translate:blockedDates|Sperrtermine][blockedDates]\n[blockedDates]: <required>\n\n[translate:hasPromotionsOnAir][hasPromotionsOnAir]\n[hasPromotionsOnAir]: switch\n\n{hidden if !hasPromotionsOnAir|multiline}\n[translate:promotionsOnAir|Werbung on air][promotionsOnAir]\n[promotionsOnAir]: <required>\n\n\n[translate:hasCompetitivePromition][hasCompetitivePromition]\n[hasCompetitivePromition]: switch\n\n{hidden if !hasCompetitivePromition|multiline}\n[translate:competitivePromition|Werbung für Konkurrenz][competitivePromition]\n[competitivePromition]: <required>\n","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2018-04-20T12:29:47+02:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"f8312258-bdc9-438a-a510-de77a69e61e9"},"modified":{"at":"2020-10-13T10:11:33+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1602583893311,"ct":1602583893311,"a_depth":3,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d"],"a_forms":["folder","application-form","folder"],"inheritedLocks":[null,null,null,null],"stamps":[]},{"id":"010e3640-1897-4840-bec0-7d0c0f1fc642","v":"682e83273a3c89ff","previous":{"v":"1289cb52e1a000d0"},"p":"35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f","f":{"id":"form","v":"8c1496d16c344c2e","text":"Form"},"data":{"name":"Fall","tags":"","definition":"{readonly|hidden}\n[Name][name]\n[name]: = functions.name(hergang)\n\n# Schaden\n\n{ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true default-value-command=49a26db7-f4f3-41fb-ad26-e45f40d7de83}\n[Verantwortlich][verantwortlich]\n[verantwortlich]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10\n\n[Schadensnummer][schadensnummer] [Schadenstag][schadenstag]\n[schadenstag]: Date\n\n[Gemeldet am][gemeldetAm] [Gemeldet durch][gemeldetDurch]\n[gemeldetAm]: Date\n\n[Hergang][hergang]\n\n[Umfang][umfang]\n\n\n## Stand\n\n[Versicherungsstand][versicherungstatus] [Stand der Arbeiten][arbeitsstatus]\n\n[versicherungstatus]: Select\n  - \n  - gemeldet: Gemeldet\n  - freigegeben: Freigegeben\n  - abgelehnt: Freigabe abgelehnt\n\n[arbeitsstatus]: Select\n  - \n  - begonnen: Arbeiten begonnen\n  - erledigt: Arbeiten erledigt (auch Geräte abgebaut)\n  - abgerechnet: Abgerechnet\n\n## Anhänge\n\n{attachment form-id=6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2 file-field=datei name-field=name delete-on-remove=true}\n[Anhänge][anhaenge]\n[anhaenge]: /6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2 (0-n)\n\n# Ort\n\n{children}\n[Schadensort][schadensort]\n[schadensort]: /694aee80-d85e-479b-b7ec-8fe36906fcac\n\n[Kommentar][kommentar]\n\n## Hausverwaltung\n\n[Hausverwaltung][hausverwaltung]\n[hausverwaltung]: /f8bb1979-c159-4464-97e6-ae3145caf0c5\n\n## Versicherung\n\n[Versicherung][versicherung]\n[versicherung]: /154d8541-9206-4a15-9245-5198b150d7cb\n\n[Versicherungsscheinnummer][versicherungsscheinnummer]\n\n# Geschädigte\n\n{children}\n[Geschädigte][geschaedigte]\n[geschaedigte]: /b42192cd-f547-4531-8fd2-1ecd7ecff581 (0-n)\n\n# Protokoll\n\n","functions":"name(hergang) {\n  return hergang || 'Unbekannter Hergang'\n}","allowedChildrenForms":[],"description":""},"locks":[],"created":{"at":"2019-05-03T14:03:50+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2019-05-03T14:03:50+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1556885030938,"ct":1556885030937,"a_depth":3,"a":["apps","b791df37-6eef-4a3e-9066-1b79e0bdad31","35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1554470932320},{"id":"33b4d43f-ca46-46f7-98b6-0a077372188c","v":"initial","p":"dbd0bd68-3479-4032-9303-9d51615c27a7","f":{"id":"form","v":"d17efc12b0cdc0be","text":"Form"},"data":{"name":"Component Assembly Instruction","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"{200px}[Category][category] {80px}[Number][number] [Name][label]\r\n\r\n{multiline}\r\n[Description][description]\r\n\r\n{160px}[Is single item component][isSingleItemComponent] {160px}[Has serial numbers][hasSerialNumbers]\r\n\r\n{readonly}[isSingleItemComponent]: switch = !!(item.id)\r\n{readonly}[hasSerialNumbers]: switch = serialNumbersRequiredDuringAssembly > 0\r\n\r\n[name]:= number + ' ' + label \r\n\r\n{children}\r\n[Photos][photos]\r\n[photos]: /a7afe18b-1688-4e33-a5a9-2f5369708f72 (0-n)\r\n\r\n[category]: Select\r\n  - \r\n  - BP: Built Part (BP)\r\n  - EP: Electronic Part (EP)\r\n  - CP: Casing Part (CP)\r\n  - AP: Accessory Part (AP)\r\n\r\n# Parts\r\n\r\n{hidden if components.length > 0}\r\n## Item \r\n{hidden if items.length > 0}\r\n[Single Item][item]\r\n[item]: /5931d734-987a-483f-b948-b1b31dedae74\r\n\r\n{hidden if item.id}\r\n[Multiple items][items]\r\n[items]: /5931d734-987a-483f-b948-b1b31dedae74 (0-n)\r\n\r\n{hidden if item.id || items.length > 0}\r\n## Sub Components\r\n{children}\r\n[][components]\r\n[components]: /85095086-2b96-40d0-bc27-4281f954bb9b (0-n)\r\n\r\n# Assembly or Preparation\r\n\r\n[Takes photos during assembly][photosRequiredDuringAssembly]\r\n\r\n{switch appearance=toggle}\r\n[photosRequiredDuringAssembly]: Switch\r\n\r\n[Number of serial numbers and similar to document during assembly][serialNumbersRequiredDuringAssembly] [Allotted assembly time in Minutes][assemblyDuration]\r\n\r\n[serialNumbersRequiredDuringAssembly]: Number\r\n[assemblyDuration]: Number\r\n\r\n{children}\r\n[Assembly Photos][assemblyPhotos]\r\n[assemblyPhotos]: /a7afe18b-1688-4e33-a5a9-2f5369708f72 (0-n)\r\n\r\n{editor}\r\n[Assembly instructions][assemblyInstructions]\r\n\r\n{children}\r\n[Instruction Attachments][instructions]\r\n[instructions]: /409bb5a4-e261-4b14-946f-c089751c27da (0-n)\r\n\r\n# Documentation\r\n\r\n{editor}\r\n[Description][description]\r\n\r\n# Inventory\r\n\r\n{200px}[Desired Minimum Inventory][inventoryMinimum]\r\n[inventoryMinimum]: Number\r\n","functions":"","allowedChildrenForms":[],"commands":[{"id":"ec4721ea-bafb-4c91-8cba-5d0f602442fd","v":"fd1e50b48f74be57","text":"Begin Building"}],"description":""},"locks":[],"created":{"at":"2021-11-02T09:38:39+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-11-02T09:38:39+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1635845919568,"ct":1635845919568,"a_depth":3,"a":["apps","781ff5de-69db-49dc-99f0-f328b308cd7d","dbd0bd68-3479-4032-9303-9d51615c27a7"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1635845920145},{"id":"816b2d0e-5158-4f0c-a5cf-6069bb76de69","v":"a9ba50bbd38bf807","previous":{"v":"2df5f42d9ec886f7"},"p":"9b024049-2573-4921-acaa-3e172e9332d7","f":{"id":"form","v":"12ceedaed4c81b21","text":"Form"},"data":{"name":"Anlagenteil","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"{ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true creation-location-form=cdf93f5b-9bea-494d-99e1-a7dd39d91586 on-creation-write-search-to-field=beschreibung}\n[Eintrag][eintrag] \n\n{loupe x=[zeichnungX] y=[zeichnungY] zoom=[zeichnungZoom] width=\"400px\" height=\"200px\"}\n[Technische Zeichnung][zeichnung]\n\n[Technische Zeichnung Vergroessert][zeichnungLupe]\n\n{hidden}[x Position in Zeichnung][zeichnungX] {hidden}[y Position in Zeichnung][zeichnungY]\n\n{hidden}\n[zoom der Zeichnung][zeichnungZoom]\n\n[zeichnung]: File\n[zeichnungLupe]: File\n[zeichnungX]: Number\n[zeichnungY]: Number\n[zeichnungZoom]: Number\n\n[Barcode/NFC-Code][barcode] \n[barcode]: text <required>\n\n[eintrag]: /0dfd4afd-f2ec-4ff0-9a79-811badf4fed5 <required>\n\n[Fabrikat][fabrikat] [Typ][typ]\n\n[Kommentar][kommentar]\n\n## Arbeiten\n\n{children}\n[Arbeiten][arbeiten]\n[arbeiten]: /d7f0c56d-8e0e-4607-911b-b0789c557d40 (0-n)\n\n## Workflow\n\n{readonly}\n[Ergebnis][ergebnis]\n\n[ergebnis]: Select\n  - 0: \n  - 1: Begonnen\n  - 2: Abgeschlossen - Alles in Ordnung\n  - 3: Abgeschlossen - Teilweise nicht in Ordnung\n  - 4: Abgebrochen\n \n{signature}\n[][unterschrift]\n\n[unterschrift]: File\n\n## Zeiterfassung\n\n[Sollzeit in Minuten][sollzeit]\n\n[sollzeit]:Number\n\n\n\n{readonly}[Begonnen][begonnen] {readonly}[Beendet][beendet]\n\n[begonnen]: Date\n[beendet]: Date\n","functions":"","allowedChildrenForms":[],"commands":[],"description":"","theme":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2022-02-28T14:59:44+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-01-27T08:59:50+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1674809990752,"ct":1646060384788,"a_depth":3,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1716458342707},{"id":"e17f496b-3eae-445f-a95a-93bdb58df718","v":"65a394937bb8b51e","p":"e7de598c-6f5a-4ab4-a33b-213ca86e489d","f":{"id":"form","v":"d497194b29933d26","text":"Form"},"data":{"name":"Auftragsboard","tags":"","allowUndefinedFields":false,"definition":"[Name][name]","functions":"","defaults":"","newTemplate":{"id":"","v":"","text":""},"newAction":{"id":"","v":"","text":""},"allowedChildrenForms":[],"commands":[],"namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"","v":"","text":""},"description":""},"locks":[],"created":{"at":"2023-03-01T16:24:55+00:00","by":"427610a9-39dc-4014-9176-5f72aeb23263","from":"","client":"server"},"modified":{"at":"2023-05-24T07:18:03+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1718866007099,"ct":1718866007099,"a_depth":3,"a":["apps","deeef973-ce03-4557-bf75-75a059001767","e7de598c-6f5a-4ab4-a33b-213ca86e489d"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"previous":{"v":"87c8423f865f4880","f":{"id":"form","v":"42ef1fd37c206edb","text":"Form"}},"meta":{"modified":{"at":"2024-06-20T08:46:47+02:00","by":"427610a9-39dc-4014-9176-5f72aeb23263","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}},"dts":1718866007162},{"id":"084a6995-3d56-4672-aad0-7e76d30999a0","v":"7c7eda8b141f7206","p":"e7de598c-6f5a-4ab4-a33b-213ca86e489d","f":{"id":"form","v":"d497194b29933d26","text":"Form"},"data":{"name":"Vertriebsboard","tags":"experimental-rendering","allowUndefinedFields":false,"definition":"","functions":"","defaults":"","newTemplate":{"id":"","v":"","text":""},"newAction":{"id":"","v":"","text":""},"allowedChildrenForms":[],"commands":[],"namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"","v":"","text":""},"description":""},"locks":[],"created":{"at":"2022-11-15T08:28:09+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","from":"","client":"server"},"modified":{"at":"2023-05-24T07:17:44+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1718866006701,"ct":1718866006701,"a_depth":3,"a":["apps","deeef973-ce03-4557-bf75-75a059001767","e7de598c-6f5a-4ab4-a33b-213ca86e489d"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"previous":{"v":"feebadbfe2145d05","f":{"id":"form","v":"0f04783266efdaa5","text":"Form"}},"meta":{"modified":{"at":"2024-06-20T08:46:46+02:00","by":"427610a9-39dc-4014-9176-5f72aeb23263","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}},"dts":1718866007162},{"id":"7da8412c-01e9-4a42-a527-6339e2c25488","v":"e0a317d916b011ca","previous":{"v":"initial"},"p":"9b024049-2573-4921-acaa-3e172e9332d7","f":{"id":"form","v":"12ceedaed4c81b21","text":"Form"},"data":{"name":"Property Management Dashboard","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Name][name]","functions":"","allowedChildrenForms":[],"commands":[],"description":"","theme":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2022-02-28T15:00:08+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-02-28T15:02:39+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1646060559674,"ct":1646060408487,"a_depth":3,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1718111453360},{"id":"9927c3c7-8ce4-4c25-bcec-3385cf1370db","v":"a2d0a07b833372f8","previous":{"v":"de1d0a08b73a11e7"},"p":"e89b29a9-6ab9-47dc-a6fe-91ebda92871d","f":{"id":"form","v":"6e7a1af740a39290","text":"Form"},"data":{"name":"Shortlist","tags":"","definition":"[Name][name]\n\n[Fragebogen][questionnaire]\n[questionnaire]: /f5463bba-ca34-45a9-992a-73297b1f529d\n\n{children} \n[Model Bewerbungen][models]\n\n[models]: /275b807f-7dbb-4351-b731-669e275fa97d (0-n)\n\n[Konfiguration][configuration]\n[configuration]: /c62aefaf-0d57-4b05-94ce-e0b8c97c46e8\n\n[Zu verifizierende Felder][fieldsToVerify]\n[fieldsToVerify]: /6a9759e4-cdb3-44ce-bb65-13fcd2b4e21b\n\n[Zu kopierende Felder beim Hinzufügen eines Models][fieldsToCopy]\n[fieldsToCopy]: /6a9759e4-cdb3-44ce-bb65-13fcd2b4e21b\n\n[Anzuzeigende Felder eines Models auf der Optionsliste][fieldsToShowOnOptionlist]\n[fieldsToShowOnOptionlist]: /6a9759e4-cdb3-44ce-bb65-13fcd2b4e21b\n","functions":"","allowedChildrenForms":[],"description":""},"locks":[],"created":{"at":"2018-04-20T12:29:48+02:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"f8312258-bdc9-438a-a510-de77a69e61e9"},"modified":{"at":"2020-10-13T10:11:33+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1602583893511,"ct":1602583893511,"a_depth":3,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d"],"a_forms":["folder","application-form","folder"],"inheritedLocks":[null,null,null,null],"stamps":[]},{"id":"28527c6d-4f85-4881-8f5d-948021a60ad0","v":"61680ec9e0077b24","previous":{"v":"fd8d8f4fc27dd790"},"p":"15292d56-6806-4263-b6d0-9194687203e1","f":{"id":"form","v":"42ef1fd37c206edb","text":"Form"},"data":{"name":"Mängelmeldung","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"\n{58|ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true}[Verantwortlich][verantwortlich] {30|datetime-range to=bisEnde has-time=bisDateTime}[Fällig][bisStart] {12}[Erledigt][erledigt] \n\n[verantwortlich]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n)\n[erledigt]:Switch\n[bisDateTime]: switch\n[bisStart]: Date\n[bisEnde]: Date\n\n{comments}\n\n[Typ][typ]\n[typ]: Select <required>\n  - ALLGEMEIN: Allgemeine Anfrage\n  - HEIZUNG: Heizung defekt\n  - LEUCHTMITTEL: Leuchtmittel defekt\n  - ELEKTRONIK: Elektronik / Steckdose defekt\n  - SONSTIGES: Sonstiges defekt\n\n[Ihr Name][personName] \n{phone}[Ihre Telefonnummer][personTelefon]\n{email}[Ihre E-Mail][personEmail]\n\n[personName]: text <required>\n[personTelefon]: text <required>\n[personEmail]: text <required>\n\n{multiline}\n[Beschreibung des Problems][beschreibung]\n[beschreibung]: text <required>\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove=true}\n[Bilder (optional)][bild]\n[bild]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n[Newsletter erhalten][newsletter]\n[newsletter]: switch\n","functions":"","allowedChildrenForms":[],"commands":[],"description":"","theme":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2022-05-03T12:54:50+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-08-17T14:01:16+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1660744876579,"ct":1651582490118,"a_depth":3,"a":["apps","86189c5a-b9f4-445a-879f-d94574960df0","15292d56-6806-4263-b6d0-9194687203e1"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1660833991990},{"id":"5c3d462b-b1fa-4323-8457-cee88cfdf51f","v":"e91f4bd13ba89a8e","previous":{"v":"30367cfad0290379"},"p":"fc09d59c-bdef-4b1e-854e-d907bc11b295","f":{"id":"form","v":"4fa42fcff3786d1e","text":"Form"},"data":{"name":"Beschwerde","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"{readonly|creator}[][creator] [Bearbeitung abgeschlossen][abgeschlossen]\r\n[abgeschlossen]: switch \"Es wird automatisch eine Benachrichtigung an den Ersteller gesendet, sobald sich dieser Wert ändert.\"\r\n\r\n{readonly if abgeschlossen|ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true}\r\n[Verantwortlich][verantwortlich]\r\n[verantwortlich]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n)\r\n\r\n# Aufnahme\r\n\r\n{readonly if abgeschlossen|ref hide-path=true ancestor-search-limit=1}\r\n[Grund der Beschwerde][grundDerBeschwerde] \r\n[grundDerBeschwerde]: /674d8994-c7b4-4f40-aaea-ca361e8490de\r\n\r\n{readonly if abgeschlossen}\r\n[Kundennummer][patientennummer]\r\n\r\n{readonly if abgeschlossen|multiline auto-grow=true}\r\n[Beschwerde][name]\r\n\r\n## Dokumentation zur Beschwerde\r\n\r\n{readonly if abgeschlossen|attachment form-id=\"6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2\" file-field=\"datei\" name-field=\"name\"}\r\n[Anhänge][anhaengeAufnahme]\r\n[anhaengeAufnahme]: /6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2 (0-n)\r\n\r\n{readonly if abgeschlossen|mails}\r\n[E-Mails][email]\r\n[email]: /59b7188e-1296-4466-a9c2-d6255496e7d6 (0-n)\r\n\r\n{comments}\r\n\r\n# Klärung der Beschwerde\r\n\r\n\r\n{readonly if abgeschlossen|children}\r\n[Vorgehen][interaktionen]\r\n[interaktionen]: /8d5743bf-228b-4214-8ee3-8089ab480678 (0-n)\r\n\r\n{readonly if abgeschlossen|attachment form-id=\"6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2\" file-field=\"datei\" name-field=\"name\"}\r\n[Anhänge][anhaengeBearbeitung]\r\n[anhaengeBearbeitung]: /6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2 (0-n)\r\n\r\n{comments}","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2020-02-25T15:29:00+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2020-11-25T13:42:00+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1606311720647,"ct":1582644540942,"a_depth":3,"a":["apps","f93ac233-7aa7-4561-a3b3-d8ebda0ee514","fc09d59c-bdef-4b1e-854e-d907bc11b295"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1588927872082},{"id":"6157a32a-a989-4798-94d5-2674b1675919","v":"92f025d12e7a6f57","previous":{"v":"131d2a3948f96023"},"p":"58cc45fb-3fb3-45e8-b61d-4b89899e357a","f":{"id":"form","v":"af06aca6217d20c5","text":"Form"},"data":{"name":"Board Aufgabe","description":"","definition":"{line}\n[Titel][name]\n\n{multiline}[Beschreibung][beschreibung]\n[beschreibung]: text\n\n[Bis][bis] {60}[Aufwand][storyPoints]\n[bis]: Date\n[storyPoints]: Number\n\n{hidden}[Status][status]\n[status]: Number\n\n{ref hide-path=\"true\"}[Kategorie][kategorie]\n[kategorie]: /0b3e7813-ae30-4c69-9dd6-8111a6301d38 (0-n)\n  p:4aecd17b-9f2a-43ef-bbc3-6c76717d8f3c\n\n{ref hide-path=\"true\"}[Verantwortlich][verantwortlich]\n[verantwortlich]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n)\n\n{attachment form-id=\"6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2\" file-field=\"datei\" name-field=\"name\"}\n[Anhänge][anhaenge]\n[anhaenge]: /6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2 (0-n)","functions":"","semver":"","allowedChildrenForms":[],"layout":{"id":"","v":"","text":""},"color":{"id":"","v":"","text":""},"iconName":"fa fa-check","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null}},"applicationLayoutOptions":{"id":"","v":"","text":""},"documentLayoutOptions":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2018-01-05T17:08:00+01:00","by":"","from":"","client":"4ce77277-18de-4f0d-ac99-c9f0793664f9"},"modified":{"at":"2018-04-19T13:35:49+02:00","by":"","backedBy":"","from":"","client":"server"},"t":1524137749047,"ct":1515168457669,"a_depth":3,"a":["apps","aed1ba1c-9095-4aca-8176-74a37325f0e5","58cc45fb-3fb3-45e8-b61d-4b89899e357a"],"a_forms":["folder","application-form","folder"],"inheritedLocks":[null,null,null,null],"stamps":[]},{"a":["apps","9d6ee173-26fe-4472-a271-7667f717094e","53b70eca-0cef-448b-9674-22a70a937eb1"],"a_depth":3,"a_forms":["folder","application-form","form-folder"],"created":{"at":"2020-06-23T12:10:14+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","client":"server","from":""},"ct":1739542459818,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[],"commands":[{"id":"a0a02ca5-b067-48e7-8955-367fad2a6fdd","text":"Aktivität","v":"initial"},{"id":"3ab48873-6e82-4e0c-bf79-bdc63db7a50e","text":"[copy of]: Aktivität","v":"initial"}],"defaults":"","definition":"{hidden|readonly}\n[Verknüpfte Dokumente][dmsFolder]\n[dmsFolder]: /a04c8913-db48-4e80-b20d-0f3cc17a778c\n\n{hidden|readonly}\n[Verknüpftes Projekt][project]\n[project]: /ref\n\n{hidden}\n[Name][name]\n[name]: text <editable=unternehmen> = functions.name(unternehmen, unternehmenAnsprechpartner) \n\n# Kunde\n\n{x=1|y=1|w=1}\n######## \n\n[Unternehmen][unternehmen] \n\n{show if unternehmen.trim() !== ''}\n####### \n[Adressat im Unternehmen][unternehmenAnsprechpartner] {30}[Kundennummer][kundennummer]\n\n{show if unternehmen.trim() === ''}\n####### \n[Name des Kunden][unternehmenAnsprechpartner] {30}[Kundennummer][kundennummer]\n\n####### \n\n\n{phone}\n[Telefon][telefon] \n[telefon]: text (0-n)\n\n{email}\n[E-Mail][email]\n[email]: text (0-n)\n\n{url}\n[URL][url]\n[url]: text (0-n)\n\n[Adresse][adresse]\n[adresse]: address\n\n{x=2|y=1|w=1}\n######## \n\n{ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true default-value-command=49a26db7-f4f3-41fb-ad26-e45f40d7de83 prominent-pick-command=45f20576-a049-4643-8ce1-181c856990ac}\n[Verantwortlich][verantwortlich]\n[verantwortlich]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n)\n\n{ref ancestor-form=5475727b-0e0c-412a-8452-23b9c5b242f2 hide-path=true creation-location-form=da73bcf8-be71-46ca-9645-894b04e2bfd1}\n[Labels][labels]\n[labels]: /43551782-1b7f-47ef-a694-9e9824c97091 (0-n)\n\n\n{ref ancestor-form=5475727b-0e0c-412a-8452-23b9c5b242f2 hide-path=true creation-location-form=9b0547f6-28c6-4bcf-90fd-bbaa1bf56db1}[Kategorie][kategorie] \n[kategorie]: /b12cba63-8003-4f84-a235-d67fd506b155\n \n{ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true creation-location-form=51138ce9-66f4-44dd-9254-b8b744e88999 on-creation-run-action=1aa3965a-9003-46e3-b0fd-6b724687ff15}\n[Ansprechpartner][ansprechpartner] \n[ansprechpartner]: /6f641574-7cb6-424a-9657-4b8d652a2cf7 (0-n)\n\n{ref ancestor-form=5475727b-0e0c-412a-8452-23b9c5b242f2 hide-path=true creation-location-form=304e2bea-3a32-4f78-a58c-2f541d907356}\n[Branche][branche]\n[branche]: /80fe4932-e70d-4662-897f-d11e7c066b60 (0-n)\n\n{select icon_COLD=\"far fa-temperature-frigid\" iconcolor_COLD=\"blue\" icon_WARM=\"far fa-thermometer-half\" iconcolor_WARM=\"\" icon_HOT=\"far fa-temperature-hot\" iconcolor_HOT=\"red\"}\n[Hotness][hotness]\n[hotness]: select \n  - \n  - COLD: kalt\n  - WARM: warm\n  - HOT: heiß\n\n{ref ancestor-form=5475727b-0e0c-412a-8452-23b9c5b242f2 hide-path=true creation-location-form=f8d9d7d9-bfb4-4555-8163-ae962ed41a38}[Quelle][quelle]\n[quelle]: /1ea7612a-5c7b-41e0-8717-a553a17e9b62 (0-n)\n\n{multiline auto-grow=true}\n[Notizen][notizen]\n\n\n{x=1|y=2|w=2}\n######## \n\n{children add-to-beginning=true disable-sorting=true initial-sort-field=created.at initial-sort-descending=true}\n[Aktivitäten][aktivitaeten]\n[aktivitaeten]: /84ede5f8-c5af-4113-8235-4b7fa528e265 (0-n)\n\n# Aktivitäten\n\n{children add-to-beginning=true disable-sorting=true initial-sort-field=created.at initial-sort-descending=true}\n[Aktivitäten][aktivitaeten]\n[aktivitaeten]: /84ede5f8-c5af-4113-8235-4b7fa528e265 (0-n)\n\n# Dateien\n\n{page}\n[Dateien][dmsFolder]\n\n# Projekt\n\n{page}\n[Projekt][project]\n\n# Verträge\n\n{children navigate}\n[Verträge][vertraege]\n[vertraege]: /fec93a80-86e6-4ccb-a473-14046bd4336e (0-n)\n  ","descendantCommands":[],"description":"","from":[],"functions":"name(unternehmenParam, unternehmenAnsprechpartnerParam) {\n  const unternehmen = unternehmenParam.trim()\n\n  const unternehmenAnsprechpartner = unternehmenAnsprechpartnerParam.trim()\n\n  if (!unternehmen) {\n    return unternehmenAnsprechpartner\n  }\n\n  if (!unternehmenAnsprechpartner) {\n    return unternehmen\n  }\n\n  return `${unternehmen} (${unternehmenAnsprechpartner})`\n}\n ","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Kunde","namedIcon":"fa fa-user-tag","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"relatedDocuments":[],"tags":"","theme":{"id":"","text":"","v":""},"to":[],"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"230b4040236561b6"},"id":"8fc08287-dbcc-4e41-9d5d-28e4cd828943","inheritedLocks":[null,null,null,null],"locks":[],"meta":{"modified":{"at":"2025-02-14T14:14:19+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null}},"modified":{"at":"2024-01-25T12:14:08+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"53b70eca-0cef-448b-9674-22a70a937eb1","previous":{"f":{"id":"form","text":"Form","v":"42ef1fd37c206edb"},"v":"5ae1732ae13b4094"},"stamps":[],"t":1739542459818,"v":"e7adf1e0b6a40650"},{"id":"8152301a-d301-4466-b461-d5ffcfe02715","v":"initial","previous":{"v":""},"p":"58cc45fb-3fb3-45e8-b61d-4b89899e357a","f":{"id":"form","v":"af06aca6217d20c5","text":"Form"},"data":{"name":"Impediment","description":"","definition":"{line}\n[Titel][name]\n\n{multiline}[Beschreibung][beschreibung]\n[beschreibung]: text\n\n{ref hide-path=\"true\"}[Verantwortlich][verantwortlich]\n[verantwortlich]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n)\n\n{ref hide-path=\"true\"}[Kategorie][kategorie]\n[kategorie]: /0b3e7813-ae30-4c69-9dd6-8111a6301d38 (0-n)\n  p:683845f5-f1b1-49d0-a1c6-b727c6b8176d\n\n{hidden}[Status][status]\n[status]: Number","functions":"","semver":"","allowedChildrenForms":[],"layout":{"id":"","v":"","text":""},"color":{"id":"","v":"","text":""},"iconName":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null}},"applicationLayoutOptions":{"id":"","v":"","text":""},"documentLayoutOptions":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2018-04-18T15:41:58+02:00","by":"","backedBy":"","from":"","client":"server"},"modified":{"at":"2018-04-18T15:41:58+02:00","by":"","backedBy":"","from":"","client":"server"},"t":1524058918128,"ct":1524058918127,"a_depth":3,"a":["apps","aed1ba1c-9095-4aca-8176-74a37325f0e5","58cc45fb-3fb3-45e8-b61d-4b89899e357a"],"a_forms":["folder","application-form","folder"],"inheritedLocks":[null,null,null,null],"stamps":[]},{"id":"9c63f632-9e40-4abb-aa1a-f4a02110a97f","v":"5a7da02bc970226c","previous":{"v":"initial"},"p":"e89b29a9-6ab9-47dc-a6fe-91ebda92871d","f":{"id":"form","v":"636c28c49e0bd3c5","text":"Form"},"data":{"name":"Bewerbungen","description":"","tags":"","definition":"[Name][name]\n\n{readonly|children}\n[Model Bewerbungen][models]\n\n[models]: /275b807f-7dbb-4351-b731-669e275fa97d (0-n)","functions":"","semver":"","allowedChildrenForms":[],"layout":{"id":"","v":"","text":""},"color":{"id":"","v":"","text":""},"iconName":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null}},"applicationLayoutOptions":{"id":"","v":"","text":""},"documentLayoutOptions":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2018-04-20T12:29:46+02:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"f8312258-bdc9-438a-a510-de77a69e61e9"},"modified":{"at":"2019-03-27T11:47:35+01:00","by":"21755d65-c561-473a-ad0d-bac9a744d145","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1553683655547,"ct":null,"a_depth":3,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d"],"a_forms":["folder","application-form","folder"],"inheritedLocks":[null,null,null,null],"stamps":[]},{"id":"275b807f-7dbb-4351-b731-669e275fa97d","v":"661af3472accfeb2","previous":{"v":"f2a4ee051ad528ef"},"p":"e89b29a9-6ab9-47dc-a6fe-91ebda92871d","f":{"id":"form","v":"84ffcfcc2f925959","text":"Form"},"data":{"name":"Model Bewerbung","tags":"","namedIcon":"fa fa-user-plus","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[name]: = functions.name(firstname, surname)\n\n{hidden}[Projekt][project]\n[project]: /686d22ba-414e-452f-9795-f6f7bcab37d5\n\n{hidden}[Casting][casting]\n[casting]: /4551c597-7595-4858-8b7f-207a7fb15b3e\n\n{hidden}[translate:model|Model][model]\n[model]: /44e0edf9-6515-4e4b-ad48-98a04d28df11 <required>\n\n{hidden}[translate:requestApplication|Bewerbung Request][requestApplication]\n[requestApplication]: /275b807f-7dbb-4351-b731-669e275fa97d <required>\n\n[Like][like]\n[like]: select\n  - \n  - like: Like\n  - dislike: Dislike\n\n{icon-rating}\n[translate:rating|Rating][rating]\n[rating]: select\n  - 0: \n  - 1: 1\n  - 2: 2\n  - 3: 3\n\n[Entfernt][removed]\n[removed]: switch\n\n{ref hide-path=true ancestor-search-limit=3}\n[translate:movie|Film][movie]\n[movie]: /24730991-d920-4a1e-8041-6a9dc6c0ffc1 <required>\n\n{select parent=movie parent-required=true} \n[translate:roles|Rollen][roles]\n[roles]: /3230c10a-64af-48cc-8f3d-15fc16a40e5f (0-n) <required>\n\n{ref hide-path=true ancestor-search-limit=3}\n[translate:obtainedRole|Erhaltene Rolle][obtainedRole]\n[obtainedRole]: /3230c10a-64af-48cc-8f3d-15fc16a40e5f\n\n[translate:firstname|Vorname][firstname]\n[firstname]: text <required>\n[translate:surname|Nachname][surname]\n[surname]: text <required>\n[translate:phone|Telefon][phone]\n[phone]: text <required>\n[translate:email|E-Mail][email]\n[email]: text <required>\n[translate:placeOfDeparture|Abreiseort][placeOfDeparture]\n[placeOfDeparture]: text <required>\n\n[translate:nationality|Nationalität][nationality]\n[nationality]: text <required>\n\n[translate:birthdate|Geburtsdatum][birthdate]\n[birthdate]: date\n[translate:residence|Wohnort][residence]\n[residence]: address\n[translate:gender|Geschlecht][gender]\n[gender]: select\n  - NO_GENDER: \n  - MALE: Männlich\n  - FEMALE: Weiblich\n[translate:eyeColor|Augenfarbe][eyeColor]\n[translate:hairColor|Haarfarbe][hairColor]\n[translate:height|Körpergröße][height]\n[translate:clothesSize|Konfektionsgröße][clothesSize]\n[translate:shoeSize|Schuhgröße][shoeSize]\n[translate:showreel|Link zu Showreel][showreel]\n\n[translate:agencyName|Agenturname][agencyName]\n[translate:agencyEmail|Agentur email][agencyEmail]\n\n{hidden|children delete-on-remove=true}\n[translate:files|Dateien][files]\n[files]: /aabed4ee-20ca-4df4-9a78-75a05e97dce9 (0-n)","functions":"name(firstname, surname) {\n  const parts = []\n\n  if (firstname) {\n    parts.push(`${firstname[0].toUpperCase()}${firstname.slice(1)}`)\n  }\n\n  if (surname) {\n    parts.push(`${surname[0].toUpperCase()}${surname.slice(1)}`)\n  }\n\n  return parts.join(' ')\n}","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2018-04-20T12:29:47+02:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"f8312258-bdc9-438a-a510-de77a69e61e9"},"modified":{"at":"2020-10-13T10:11:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1602583892470,"ct":1602583892469,"a_depth":3,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d"],"a_forms":["folder","application-form","folder"],"inheritedLocks":[null,null,null,null],"stamps":[]},{"id":"6770bab9-4e15-45ae-bf22-7fe4ef2a0848","v":"0bac18172f9f6b2a","previous":{"v":"c3489202748953a3"},"p":"58cc45fb-3fb3-45e8-b61d-4b89899e357a","f":{"id":"form","v":"af06aca6217d20c5","text":"Form"},"data":{"name":"Board","description":"","definition":"[Name][name]\n\n[Form IDs][forms]\n[forms]: /form (0-n)\n\n[Column Filters][columnFilters]\n\n[Activate Sprints][activateSprints]\n[activateSprints]: switch\n\n[Column Names][columnNames]\n\n{hidden if activateSprints === false}\nColumn Basetypes\n============\nA basetype is needed to compute changes for the Burndown Chart for moves after first insertion. Possible values: `ADD`, `FINISH`, `REMOVE`.\n\nExample:\n\n`ADD,FINISH` means \"On moving an item to column at index `0`, `ADD` these storyPoints to the Burndown Chart. On ...\"\n[Column Basetypes][columnBasetypes]\n","functions":"","semver":"","allowedChildrenForms":[],"layout":{"id":"","v":"","text":""},"color":{"id":"","v":"","text":""},"iconName":"fa fa-columns","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null}},"applicationLayoutOptions":{"id":"","v":"","text":""},"documentLayoutOptions":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2017-12-14T15:39:39+01:00","by":"","from":"","client":"64e35a85-527c-4d1c-947c-c1ad0dcec14d"},"modified":{"at":"2018-04-19T13:35:46+02:00","by":"","backedBy":"","from":"","client":"server"},"t":1524137746859,"ct":1513262373547,"a_depth":3,"a":["apps","aed1ba1c-9095-4aca-8176-74a37325f0e5","58cc45fb-3fb3-45e8-b61d-4b89899e357a"],"a_forms":["folder","application-form","folder"],"inheritedLocks":[null,null,null,null],"stamps":[]},{"id":"3fb87b4e-3b2a-4ae6-b76b-0bec96b2da9b","v":"0d95d43328c7c0fc","previous":{"v":"initial"},"p":"d49bc831-377c-4f1c-b52b-54a5b2814dde","f":{"id":"form","v":"af06aca6217d20c5","text":"Form"},"data":{"name":"Burndown Chart","description":"","definition":"[Name][name]\n\n[Beschreibung][beschreibung]\n[beschreibung]: text\n\n[Start Datum][startDate]\n[startDate]: date\n\n[Zeitraum als ElasticSearch DateRange Ausdruck][timeframeAsDateRange]\n[Zeiteinheiten pro Zeitraum als ElasticSearch DateRange Ausdruck][timeUnitsAsDateRange]\n\n[Idealer Aufwandsabtrag pro 1 Zeiteinheit in Zeitraum][idealPointsBurnPerTimeUnit]\n[idealPointsBurnPerTimeUnit]: Number","functions":"","semver":"","allowedChildrenForms":[],"layout":{"id":"","v":"","text":""},"color":{"id":"","v":"","text":""},"iconName":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null}},"applicationLayoutOptions":{"id":"","v":"","text":""},"documentLayoutOptions":{"id":"","v":"","text":""}},"locks":[],"lockRefs":[],"created":{"at":"2018-01-04T10:14:41+01:00","by":"","from":"","client":"c07d912c-c8c6-4a29-bbb2-1dd13a4178a7"},"modified":{"at":"2018-01-04T10:15:04+01:00","by":"","from":"","client":"c07d912c-c8c6-4a29-bbb2-1dd13a4178a7"},"t":1515057304457,"ct":1515057276832,"a_depth":3,"a":["apps","81a6e9c3-754a-4964-8557-68edfe57053e","d49bc831-377c-4f1c-b52b-54a5b2814dde"],"a_forms":["folder","application-form","folder"],"inheritedLocks":[null,null,null,null],"stamps":[]},{"id":"aabed4ee-20ca-4df4-9a78-75a05e97dce9","v":"initial","previous":{"v":""},"p":"e89b29a9-6ab9-47dc-a6fe-91ebda92871d","f":{"id":"form","v":"636c28c49e0bd3c5","text":"Form"},"data":{"name":"Datei","description":"","tags":"","definition":"{file file-name-to-field=[name]}\n[Datei][datei]\n[datei]: file\n\n[Name][name]\n","functions":"","semver":"","allowedChildrenForms":[],"layout":{"id":"","v":"","text":""},"color":{"id":"","v":"","text":""},"iconName":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null}},"applicationLayoutOptions":{"id":"","v":"","text":""},"documentLayoutOptions":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2018-04-20T12:29:46+02:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"from":"","client":"f8312258-bdc9-438a-a510-de77a69e61e9"},"modified":{"at":"2018-04-20T12:29:46+02:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"from":"","client":"f8312258-bdc9-438a-a510-de77a69e61e9"},"t":null,"ct":null,"a_depth":3,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d"],"a_forms":["folder","application-form","folder"],"inheritedLocks":[null,null,null,null],"stamps":[]},{"id":"9292b892-ed0f-48fd-b3f3-d1e3729cb7fa","v":"e8b26a3fe6447cae","previous":{"v":"0afb909de2237c2c","p":"b42e5a69-6cf0-4b55-928a-755011005b5a","a":["apps","77ee8815-2c3a-4bb5-abd9-90541a545a24","b42e5a69-6cf0-4b55-928a-755011005b5a"]},"p":"ff13ca04-7a64-4d12-ab9a-edee939ca478","f":{"id":"form","v":"636c28c49e0bd3c5","text":"Form"},"data":{"name":"Sidebar Tab","description":"","tags":"","definition":"[Name][name]\n\n[Title Layout][titleLayout]\n[Content Layout][contentLayout]\n\n{hidden if (namedIcon || icon.dataUrl)}\n####### \n[Icon Layout][iconLayout]\n[iconLayout]: /layout-form\n\n{hidden if iconLayout.id}\n####### \n\n{hidden if icon.dataUrl}\n######## \n[Named Icon][namedIcon]\n\n{hidden if namedIcon}\n######## \n\n[Icon][icon]\n[icon]: Image\n\n[Icon Expanded][iconExpanded]\n[iconExpanded]: Image\n\n####### \n\n[titleLayout]: /layout-form\n[contentLayout]: /layout-form","functions":"","semver":"","allowedChildrenForms":[],"layout":{"id":"","v":"","text":""},"color":{"id":"","v":"","text":""},"iconName":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null}},"applicationLayoutOptions":{"id":"","v":"","text":""},"documentLayoutOptions":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2018-04-19T18:14:57+02:00","by":"","from":"","client":"server"},"modified":{"at":"2021-11-04T08:48:40+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1636015720865,"ct":1524154497800,"a_depth":3,"a":["apps","77ee8815-2c3a-4bb5-abd9-90541a545a24","ff13ca04-7a64-4d12-ab9a-edee939ca478"],"a_forms":["folder","application-form","folder"],"inheritedLocks":[null,null,null,null],"stamps":[]},{"id":"0b6a2b21-9425-466e-9e8d-57ec39cc95e1","v":"13fdd02090ca9433","previous":{"v":"23edfd0b7e150cd4"},"p":"3be7e887-1bcd-4c3c-979f-b20a986c4c48","f":{"id":"form","v":"16a1fc2c7a734357","text":"Form"},"data":{"name":"Projekt","tags":"","allowUndefinedFields":false,"definition":"{hidden}\n####### \n{hidden|readonly}[Gesamt][aufgabenGesamt]\n{hidden|readonly}[Erledigt][aufgabenErledigt]\n{hidden|readonly}[In Bearbeitung][aufgabenBearbeitung]\n{hidden|readonly}[Überfällig][aufgabenUeberfaellig]\n{hidden|readonly}[Zu erledigen][aufgabenOffen]\n\n[aufgabenErledigt]: number \n[aufgabenGesamt]: number\n[aufgabenBearbeitung]: number\n[aufgabenUeberfaellig]: number\n[aufgabenOffen]: number = aufgabenGesamt - aufgabenErledigt - aufgabenBearbeitung - aufgabenUeberfaellig\n\n\n####### \n\n{children no-add no-templates delete-on-remove add-to-beginning show-filter sort-fields=data.prioritaet,data.bisStart,data.bisEnde,data.name filter-fields=data.erledigt,data.prioritaet,data.bisStart,data.bisEnde,data.verantwortlich readonly design=ref-selectable confirm-remove}\n[Aufgaben][aufgaben]\n[aufgaben]: /0deb4864-cbb6-420c-99ee-337c7444ab24 (0-n) \n\n{hidden|readonly}\n[Verknüpfter Kunde][client]\n[client]: /8fc08287-dbcc-4e41-9d5d-28e4cd828943\n\n{hidden|readonly}\n[Verknüpfte Dokumente][dmsFolder]\n[dmsFolder]: /a04c8913-db48-4e80-b20d-0f3cc17a778c\n\n{readonly if client.id}[Titel][name] {12}[Erledigt][erledigt] \n[erledigt]: Switch\n\n{30|datetime-range to=bisEnde has-time=bisDateTime}[Fällig][bisStart]\n[bisDateTime]: switch\n[bisStart]: Date\n[bisEnde]: Date \n\n{ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path default-value-command=49a26db7-f4f3-41fb-ad26-e45f40d7de83 prominent-pick-command=45f20576-a049-4643-8ce1-181c856990ac}\n[Verantwortlich][verantwortlich] \n[verantwortlich]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n)\n\n{editor}\n[Beschreibung][beschreibung]\n[beschreibung]: text\n \n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anhänge][anhaenge]\n[anhaenge]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{children delete-on-remove}\n[Projekt Pins][pins]\n[pins]: /bafd025c-6262-4e9e-8368-345cd3ccddbc (0-n)\n\n{mails}\n[E-Mails][mails]\n[mails]: /59b7188e-1296-4466-a9c2-d6255496e7d6 (0-n)\n\n{children delete-on-remove}\n[Protokolle][protokolle]\n[protokolle]: /8dbe21a7-7642-4884-986b-a119c6498bd3 (0-n)\n","functions":"","relatedDocuments":[{"id":"c12830a1-cbd0-4f8c-ba4d-bf00f0f26d88","v":"initial","text":"AppBCoreProjekte-Aufgabenüberblickstatistik"},{"id":"237655fd-0b62-42c9-836a-87dba0881b8d","v":"initial","text":""}],"defaults":"","newTemplate":{"id":"","v":"","text":""},"newAction":{"id":"","v":"","text":""},"allowedChildrenForms":[],"commands":[{"id":"4a8c5507-bdb8-4908-aa1c-407d8d8f2072","v":"initial","text":"Neu"},{"id":"42c266f4-8ca7-45a9-90f9-9bcbd8f39d57","v":"db7112e3723b6dd4","text":"rd:Neu"}],"descendantCommands":[],"to":[],"from":[],"namedIcon":"fa fa-tasks","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"","v":"","text":""},"description":""},"locks":[],"created":{"at":"2020-07-01T14:40:04+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2025-12-04T08:32:51+00:00","by":"729fa027-7e7e-4b06-9602-f535c43824f0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1764837171191,"ct":1764834724540,"a_depth":3,"a":["apps","59edbdbc-2cab-426a-bb42-6e57c5158e4f","3be7e887-1bcd-4c3c-979f-b20a986c4c48"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[]},{"id":"b33c990d-c2aa-433f-b30e-c909895a4a4a","v":"8066335ddf116b5c","previous":{"v":"b1c35c5f78d037e9"},"p":"43976185-12d8-4a50-9a93-9b42e455838d","f":{"id":"form","v":"d38c7ea672c72204","text":"Form"},"data":{"name":"Vorstellung","definition":"{hidden}\n[Name][name]\n[name]: = functions.name(titel)\n\n[Firma][titel] [Homepage][homepage]\n\n{editor no-expand=true}\n[Text][text]\n","functions":"name(titel) {\n  return `Vorstellung ${titel || ''}`\n}","allowedChildrenForms":[],"description":""},"locks":[],"created":{"at":"2018-12-05T11:22:46+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2019-03-28T16:16:11+01:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1553786171219,"ct":1544008966706,"a_depth":3,"a":["apps","5cff2cfd-1083-47f1-acc2-46e6440304cc","43976185-12d8-4a50-9a93-9b42e455838d"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1544014872957},{"id":"44e0edf9-6515-4e4b-ad48-98a04d28df11","v":"4b2eece2ddcf0365","previous":{"v":"27b78fef45da31d4"},"p":"e89b29a9-6ab9-47dc-a6fe-91ebda92871d","f":{"id":"form","v":"5f3242b69acf6fa6","text":"Form"},"data":{"name":"Model","tags":"","namedIcon":"fa fa-user","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"####### Felder - Pflichtfelder (vom Model auszufüllen):\n[Vorname][firstname]\n[Nachname][surname]\n[Telefon][phone]\n[E-Mail][email]\n\n[name]: = `${surname}, ${firstname}`\n\n####### Felder - Freiwillig (vom Model auszufüllen):\n[Geburtsdatum][birthdate]\n[Nationalität][nationality]\n[Wohnort][residence]\n[Geschlecht][gender]\n[Augenfarbe][eyeColor]\n[Haarfarbe][hairColor]\n[Körpergröße][height]\n[Konfektionsgröße][clothesSize]\n[Schuhgröße][shoeSize]\n[Link zu Showreel][showreel]\n\n{hidden|children delete-on-remove=true list=true}\n[Dateien][files]\n\n[birthdate]: date\n[files]: /aabed4ee-20ca-4df4-9a78-75a05e97dce9 (0-n)\n[residence]: address\n[gender]: select\n  - NO_GENDER: \n  - MALE: Männlich\n  - FEMALE: Weiblich","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2019-04-12T14:13:54+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2020-10-13T10:11:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1602583892432,"ct":1602583892431,"a_depth":3,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d"],"a_forms":["folder","application-form","folder"],"inheritedLocks":[null,null,null,null],"stamps":[]},{"id":"d6f1cc99-f34e-4cb8-99b3-11f917485c25","v":"97e608cc57c293da","previous":{"v":"9aa11ccef341ccbb"},"p":"a6c009e7-a2c9-4e84-a992-4ad09134d39d","f":{"id":"form","v":"24ab84939535fdcd","text":"Form"},"data":{"name":"Seite","tags":"","namedIcon":"far fa-file-alt","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Titel][name]\n\n{hidden}\n[Inhalt (HTML)][contentHtml]\n\n{editor html-to=contentHtml}\n[Inhalt][content]\n\n{hidden|comments}\n[][_]","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2020-10-13T10:19:20+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2024-02-09T11:57:55+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1707479875978,"ct":1602584360190,"a_depth":3,"a":["apps","b0eb4a71-010b-4d65-b79b-bb984a57c10f","a6c009e7-a2c9-4e84-a992-4ad09134d39d"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1730985288753},{"id":"9bcbb6e8-5d66-4c3b-9132-8482e82e4594","v":"1e89c28a8d2c9531","previous":{"v":"initial"},"p":"dbd0bd68-3479-4032-9303-9d51615c27a7","f":{"id":"form","v":"d38c7ea672c72204","text":"Form"},"data":{"name":"Product","definition":"[Name][name]\r\n\r\n# Info\r\n\r\n{editor htmlTo=htmlDescription}\r\n[Description][description]\r\n\r\n{hidden}\r\n[Html Description][htmlDescription]\r\n\r\n[Logo][logo]\r\n[logo]: File\r\n\r\n# Features\r\n\r\n{children}\r\n[Feature Groups][featureGroups]\r\n[featureGroups]: /9002bb61-1ec8-498c-a19c-176daeeae929 (0-n)\r\n\r\n\r\n<!-- # Versions -->\r\n\r\n<!-- [Current Release][currentRelease] -->\r\n<!-- [currentRelease]: /01ae1891-0b3b-4c74-823a-567b5b5db15f -->\r\n\r\n<!-- [Next Release][nextRelease] -->\r\n<!-- [nextRelease]: /01ae1891-0b3b-4c74-823a-567b5b5db15f -->\r\n","functions":"","allowedChildrenForms":[],"description":""},"locks":[],"created":{"at":"2018-12-07T12:11:00+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2020-05-08T08:52:50+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1588927970360,"ct":1544184660539,"a_depth":3,"a":["apps","781ff5de-69db-49dc-99f0-f328b308cd7d","dbd0bd68-3479-4032-9303-9d51615c27a7"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1588927970364},{"a":["apps","b0eb4a71-010b-4d65-b79b-bb984a57c10f","a6c009e7-a2c9-4e84-a992-4ad09134d39d"],"a_depth":3,"a_forms":["folder","application-form","form-folder"],"created":{"at":"2020-09-02T09:18:16+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1599038296921,"data":{"allowedChildrenForms":[{"id":"d6f1cc99-f34e-4cb8-99b3-11f917485c25","text":"Seite","v":"562d2960c298eb76"},{"id":"24523534-125d-4ebe-9a83-bd7fed39ff92","text":"Ordner","v":"20d0fc5badb95985"}],"commands":[{"id":"f618d7d1-bd4d-4ed9-adef-19201d00b688","text":"Neu","v":"initial"}],"definition":"[Name][name] {color}[Icon Farbe][namedIconColor] {icon collections=user,folder}[Icon][namedIcon]","description":"","functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Ordner","namedIcon":"far fa-folder","namedIconColor":"","tags":""},"f":{"id":"form","text":"Form","v":"24ab84939535fdcd"},"id":"24523534-125d-4ebe-9a83-bd7fed39ff92","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2025-02-17T14:49:56+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"a6c009e7-a2c9-4e84-a992-4ad09134d39d","previous":{"v":"ea603eb94f95a89a"},"stamps":[],"t":1739803796126,"v":"d300cb5f59e51249"},{"id":"c2d9407d-9dd6-42ff-acdc-ec2e296bea99","v":"39c924be9ff05097","previous":{"v":"ffd94ce0bf2d683c"},"p":"25fda732-5296-4fab-8d4e-92c3e32ca2c0","f":{"id":"form","v":"42ef1fd37c206edb","text":"Form"},"data":{"name":"Beleg","tags":"","namedIcon":"far fa-receipt","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"{ref hide-path=true ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df}\n[Gebäude][gebaeude]\n[gebaeude]: /b433eabd-abe6-4564-940f-a918f71037fb <required>\n\n[Kategorie][kategorie] {now}[Datum][datum]\n\n[Summe][summe]\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove=true}\n[Dateien][datei]\n\n[datei]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n[summe]: number <required>\n[datum]: date <required>\n[kategorie]: Select <required>\n  - NONE: \n  - ENTSORGUNG: Abfallentsorgung\n  - HAUSMEISTER: Hausmeister\n  - INSTANDHALTUNG: Instandhaltung / Leuchtmittel\n  - INTERNET: Internet\n  - REINIGUNG: Reinigung\n  - VERBRAUCHSMATERIAL: Sanitärbedarf / Verbrauchsmaterial\n  - STROM: Strom\n  - VERSICHERUNG: Versicherungen\n  - WARTUNG: Wartung\n  - ANDERE: Andere","functions":"","allowedChildrenForms":[],"commands":[],"description":"","theme":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2022-11-23T09:13:48+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-12-02T12:49:33+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1669985373209,"ct":1669194828750,"a_depth":3,"a":["apps","85d3c028-a61c-4be8-93d0-4366bc45752f","25fda732-5296-4fab-8d4e-92c3e32ca2c0"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1671622027768},{"a":["apps","3fbe0efd-713a-457a-a34c-3a12aa19d6bb","0fb162f4-0f78-4c1e-aad2-43c27e6d98cb"],"a_depth":3,"a_forms":["folder","application-form","form-folder"],"created":{"at":"2020-12-10T13:06:52+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1719930621089,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[],"commands":[],"defaults":"","definition":"[name]: = functions.name(firstname, surname)\n\n{readonly}\n[translate:done][done]\n[done]: switch\n\n{show if done|readonly|datetime}\n[translate:doneDate][doneDate]\n[doneDate]: date\n\n{show if internalCompanyCasting|readonly}\n[Internal Company Casting][internalCompanyCasting]\n[internalCompanyCasting]: switch\n\n{text autocomplete=given-name}\n[translate:firstname][firstname]\n\n{text autocomplete=family-name}\n[translate:surname][surname]\n\n{email autocomplete=email simple-input}\n[translate:email][email]\n\n{show if internalCompanyCasting|text}\n[translate:nationalCompany][nationalCompany]\n\n{show if internalCompanyCasting|text}\n[translate:jobTitle][jobTitle]\n\n{show if internalCompanyCasting|text}\n[translate:staffNumber][staffNumber]\n\n[requestLink]: switch\n[requestLinkRequired]: switch\n\n[link]: = linkOptional || linkRequired\n\n{show if requestLink}\n[translate:link][linkOptional]\n[linkOptional]: text\n\n{show if requestLinkRequired}\n[translate:link][linkRequired]\n[linkRequired]: text <required>\n\n[instagram]: = instagramOptional || instagramRequired\n\n[requestInstagram]: switch\n[requestInstagramRequired]: switch\n\n{show if requestInstagram}\n[translate:instagram][instagramOptional]\n[instagramOptional]: text\n\n{show if requestInstagramRequired}\n[translate:instagram][instagramRequired]\n[instagramRequired]: text <required>\n\n\n[firstname]: text <required>\n[surname]: text <required>\n[email]: mail <required>\n\n[nationalCompany]: text <required>\n[jobTitle]: text <required>\n[staffNumber]: text <required>\n\n\n{hidden if internalCompanyCasting}\n[translate:agencyName|Agenturname][agencyName]\n[agencyName]: text <required> \"translate:agencyName:help\"\n\n\n{hidden if (internalCompanyCasting||agencyEmailByTalentNone)|email simple-input}[translate:agencyEmailByTalent][agencyEmailByTalent] {hidden if agencyEmailByTalent}[translate:agencyEmailByTalentNone][agencyEmailByTalentNone]\n[agencyEmailByTalent]: mail <required> \n[agencyEmailByTalentNone]: switch\n\n\n{hidden if internalCompanyCasting|email simple-input}[translate:agencyEmail][agencyEmail] {hidden if internalCompanyCasting}[translate:agencyAbbreviation][agencyAbbreviation]\n\n{hidden if noPortraitPhoto|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove types=image/* enforce-types}\n[translate:portraitPhoto][portraitPhoto]\n{hidden if portraitPhoto.id}\n[translate:noPortraitPhoto][noPortraitPhoto]\n\n\n{show if noCastingSheet|readonly}\n[translate:noCastingSheet][noCastingSheet]\n[noCastingSheet]: switch\n\n{show if (!noCastingSheet && castingSheetDocument.length)|readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove types=.pdf,image/*}\n[translate:castingSheet][castingSheet] \n\n{show if (!noCastingSheet && castingSheetDocument.length)|readonly|children}\n[translate:castingSheetDocument][castingSheetDocument]\n\n{hidden if (!noCastingSheet && castingSheetDocument.length)|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove types=.pdf,image/*}\n[translate:castingSheetFile][castingSheetFile] \n\n{show if additionalFiles.length|readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove types=.pdf,image/* show-download}\n[translate:additionalFiles][additionalFiles]\n\n{show if additionalFiles.length|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove types=.pdf,image/*}\n[translate:additionalFilesUpload][additionalFilesUpload]\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove types=image/* enforce-types}\n[translate:otherPhotos][photos]\n\n{hidden if noIntroductionVideo|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove types=video/*}\n[translate:introductionVideo][introductionVideo]\n{hidden if introductionVideo.length}\n[translate:noIntroductionVideo][noIntroductionVideo]\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove types=video/* enforce-types}\n[translate:otherVideos][videos]\n\n[castingSheetFile]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required>\n[castingSheetDocument]: /ref (0-n)\n[castingSheet]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n[portraitPhoto]: /dbee6e16-d63a-493c-bba6-505f79918f9f <required>\n[photos]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n[introductionVideo]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required>\n[videos]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n[noPortraitPhoto]:switch\n[noIntroductionVideo]:switch\n[additionalFiles]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required> \"translate:additionalFiles:help\"\n[additionalFilesUpload]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required>","description":"","functions":"name(firstname, surname) {\n  const parts = []\n\n  if (firstname) {\n    parts.push(`${firstname[0].toUpperCase()}${firstname.slice(1)}`)\n  }\n\n  if (surname) {\n    parts.push(`${surname[0].toUpperCase()}${surname.slice(1)}`)\n  }\n\n  return parts.join(' ')\n}","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Bewerbung","namedIcon":"fa fa-user-plus","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"tags":"","theme":{"id":"","text":"","v":""},"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"e9315f7e2d1f8a7a"},"id":"009c0da4-718f-43d0-964a-647e30074d94","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2026-03-13T13:43:33+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"p":"0fb162f4-0f78-4c1e-aad2-43c27e6d98cb","previous":{"v":"623ecbbcf4008628"},"stamps":[],"t":1773409413595,"v":"825097f182b03fb7"},{"id":"e6b7aced-aaa0-49a4-b573-cfa307595402","v":"42e3802a3c110202","cloneOf":{"id":"941dad3f-07ee-401d-a7f5-244eba256937","v":"initial","text":"Termin"},"originalCloneOf":{"id":"941dad3f-07ee-401d-a7f5-244eba256937","v":"initial","text":"Termin"},"previous":{"v":"e764dc927ce2b948"},"p":"db8e20d1-732c-4c6b-9cfc-b323f83fa378","f":{"id":"form","v":"4fa42fcff3786d1e","text":"Form"},"data":{"name":"Termin","tags":"","namedIcon":"far fa-clock","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"######## Allgemein\n\n[Titel][name]\n\n{multiline auto-grow=true}\n[Beschreibung][description]\n\n{ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true default-value-command=49a26db7-f4f3-41fb-ad26-e45f40d7de83}\n[Teilnehmer][attendees]\n[attendees]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n)\n\n\n{now control=datetime-range to=end has-time=hasTime keep-time-distance}[Datum][start] \n\n\n{readonly|hidden if !linkedDocument.id|ref inline=true inline-layout=07c76e84-e202-4b73-9d88-7efb5726f901}\n[Verknüpftes Dokument][linkedDocument]\n[linkedDocument]: /ref\n\n[start]: date\n[end]: date\n[allday]: switch = !hasTime\n[hasTime]: switch\n\n{hidden}\n######## Erweitert\n\n{10|color}[Farbe][color] {90}[Wiederholung][daysOfWeek]\n\n[daysOfWeek]: Select (0-n)\n  - 1: Montag\n  - 2: Dienstag\n  - 3: Mittwoch\n  - 4: Donnerstag\n  - 5: Freitag\n  - 6: Samstag\n  - 7: Sonntag\n \n\n{hidden}\n[Raw event identifier][rawEventIdentifier]\n\n{hidden|json}\n[Raw Event Source][rawEventSource]","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2020-08-10T12:13:08+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2023-12-18T09:55:00+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1702893300516,"ct":1597061588914,"a_depth":3,"a":["apps","d8c9a42b-e289-4c9a-97ea-801de8ab480a","db8e20d1-732c-4c6b-9cfc-b323f83fa378"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1702658565885},{"a":["apps","bd4df555-2c56-4a5f-82f0-7e4745372f51","b42c9135-e564-4d50-abd1-4d753921120f"],"a_depth":3,"a_forms":["folder","application-form","folder"],"created":{"at":"2019-09-09T12:56:39+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":""},"ct":1669902839106,"data":{"allowedChildrenForms":[{"id":"527f9bb3-01bd-48cc-ad5b-08b1bba3af33","text":"Prozess","v":"f9d687106c7a00d4"}],"commands":[{"id":"f7f9a041-f30b-4a48-b1e3-606d32b3d4e4","text":"rd:New","v":"initial"}],"definition":"[Name][name] {color}[Icon Farbe][namedIconColor] {icon collections=user,folder}[Icon][namedIcon]","description":"","functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Prozessordner","namedIcon":"fa fa-folder","namedIconColor":"","tags":"","theme":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"42ef1fd37c206edb"},"id":"f0cf1b33-f840-4d4b-9335-c10daa7a335e","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2025-02-17T14:52:28+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"b42c9135-e564-4d50-abd1-4d753921120f","previous":{"v":"af0a03fd44e44e63"},"stamps":[],"t":1739803948453,"v":"86d598352287f703"},{"id":"84043618-903e-4666-83b5-9cf5449ba8f4","v":"bacf50fbcb907d59","previous":{"v":"da6ab058f3d99ad7"},"p":"e89b29a9-6ab9-47dc-a6fe-91ebda92871d","f":{"id":"form","v":"6e7a1af740a39290","text":"Form"},"data":{"name":"Antwort","tags":"","definition":"[name]: = functions.firstline(answer)\n\n{readonly|ref design=ref-card--pretty readonly=true}\n[Frage][question]\n[question]: /8b64a4e4-bcc0-4080-9913-bc973143abd9\n\n{multiline}\n[Antwort][answer]\n[answer]: <required>\n","functions":"firstline(answer) {\n  if (!answer) {\n    return 'Unbenannt'\n  }\n\n  return answer.split('\\n')[0]\n}","allowedChildrenForms":[],"description":""},"locks":[],"created":{"at":"2018-07-06T12:14:01+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2020-10-13T10:11:31+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1602583891641,"ct":1602583891641,"a_depth":3,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d"],"a_forms":["folder","application-form","folder"],"inheritedLocks":[null,null,null,null],"stamps":[]},{"id":"694aee80-d85e-479b-b7ec-8fe36906fcac","v":"322d3928dd46c55b","previous":{"v":"ce77fc93b443cd47"},"p":"35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f","f":{"id":"form","v":"af06aca6217d20c5","text":"Form"},"data":{"name":"Schadensort","description":"","definition":"{ref from-field=ort as=anschrift}\n[Objekt][objekt]\n[objekt]: /6d777b4e-0f5f-4dbf-a642-31e2a3ef4dbc\n\n[Anschrift][anschrift]\n[anschrift]: Address\n\n{multiline}\n[Kommentar][kommentar]\n\n{map}\n[][anschrift]","functions":"","semver":"4.0.0","allowedChildrenForms":[],"layout":{"id":"","v":"","text":""},"color":{"id":"","v":null,"text":""},"iconName":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null}},"applicationLayoutOptions":{"id":"","v":"0","text":""},"documentLayoutOptions":{"id":"","v":"0","text":""}},"locks":[],"created":{"at":"2018-02-06T09:44:52+01:00","by":"","from":"","client":"server"},"modified":{"at":"2018-04-20T12:30:53+02:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"from":"","client":"f8312258-bdc9-438a-a510-de77a69e61e9"},"t":null,"ct":1517906692097,"a_depth":3,"a":["apps","b791df37-6eef-4a3e-9066-1b79e0bdad31","35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1545390397278},{"id":"5150f703-e93a-4e54-a998-a06c0e962e71","v":"dac4cc3cd79cd961","previous":{"v":"0f38b5cf99af5b08"},"p":"9b024049-2573-4921-acaa-3e172e9332d7","f":{"id":"form","v":"12ceedaed4c81b21","text":"Form"},"data":{"name":"Anlage","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Nummer][nummer]\n\n[Name][name] {40}[Fabrikat/Typ][fabrikat]\n\n{hidden}\n[Gewerk][gewerk]\n\n[Barcode/NFC-Code][barcode] \n[barcode]: text <required>\n[Raum][raum]\n\n[Bild][bild]\n[bild]: File\n\n{hidden}\n[Technische Zeichnung][zeichnung]\n[zeichnung]: File\n\n{hidden|sct:goto-anlagenteil-barcode}\n[Aktueller Wartungspunkt][wartungspunkt]\n\n{children new-command=ed721ed6-1531-4ade-9a74-6419c77126ac}\n[Wartungspunkte][anlagenteile]\n[anlagenteile]: /816b2d0e-5158-4f0c-a5cf-6069bb76de69 (0-n)\n\n{signature}\n[][unterschrift]\n[unterschrift]: File\n\n{hidden}\n[Status][status]\n[status]: Select\n  - 0:\n  - 1: Begonnen\n  - 2: Abgeschlossen\n","functions":"","allowedChildrenForms":[],"commands":[],"description":"","theme":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2022-02-28T14:59:35+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-06-23T14:10:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1655993432620,"ct":1646060375066,"a_depth":3,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1716458433914},{"id":"6d164aff-df9b-470d-9632-cfb6f5892509","v":"330920921b5ee072","previous":{"v":"0c3318ec7410d702"},"p":"9b5518e5-c3ea-4446-9dc8-8628d8e8fabe","f":{"id":"form","v":"a57e5af653d72344","text":"Form"},"data":{"name":"Benachrichtigung","tags":"","namedIcon":"fas fa-bell","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Titel][name] [Wichtig][important]\n[important]: switch\n\n{datetime}\n[Benachrichtigen][notify]\n[notify]: date\n\n[Auslösender Account][who] [Anwendung][app] [Kategorie][category]\n[who]: /account\n\n[Gelesen][read] {datetime}[Gelesen am][readAt]\n\n[read]: switch\n[readAt]: date\n\n{multiline}\n[Inhalt][content]\n\n[Dokument][document]\n[document]: /ref\n\n{hidden}\n[E-Mail gesendet][mailSendingProcessed]\n[mailSendingProcessed]: switch","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2019-09-19T08:18:39+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2023-08-17T12:22:23+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1692274943241,"ct":1568881119634,"a_depth":3,"a":["apps","c9b12874-99d0-40e8-86cc-c3fe0477a15a","9b5518e5-c3ea-4446-9dc8-8628d8e8fabe"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1706797545558},{"id":"bb02185c-fc19-4f63-9ee0-102c4fc68b3b","v":"5a1670435af78b98","p":"35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f","f":{"id":"form","v":"dcc8032a347c59c7","text":"Form"},"data":{"name":"Anhang","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Name][name]\n\n[Datei][datei]\n[datei]: File\n\n[Kommentar][kommentar]\n[kommentar]: Text","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2018-02-06T09:43:48+01:00","by":"","from":"","client":"server"},"modified":{"at":"2020-10-13T10:18:41+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1602584321738,"ct":1602584321738,"a_depth":3,"a":["apps","b791df37-6eef-4a3e-9066-1b79e0bdad31","35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"previous":{"v":"initial","f":{"id":"form","v":"af06aca6217d20c5","text":"Form"}},"dts":1545390371415},{"id":"f8bb1979-c159-4464-97e6-ae3145caf0c5","v":"6c8d01494f272829","previous":{"v":"630467147b734e9b"},"p":"35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f","f":{"id":"form","v":"8c1496d16c344c2e","text":"Form"},"data":{"name":"Hausverwaltung","tags":"","definition":"[Name][name] {30}[Telefonnummer][telefonnummer]\n\n{map}[Anschrift][addresse]\n[][addresse]\n[addresse]: Address\n\n{children}\n[Ansprechpartner][ansprechpartner]\n[ansprechpartner]: /ab0a6c33-36a3-4347-9bb3-e73bf0a912f1 (0-n)\n\n{children}\n[Objekte][objekte]\n[objekte]: /6d777b4e-0f5f-4dbf-a642-31e2a3ef4dbc (0-n)","functions":"","allowedChildrenForms":[{"id":"6d777b4e-0f5f-4dbf-a642-31e2a3ef4dbc","v":"010bb10fa1b34948","text":"Objekt"}],"description":""},"locks":[],"created":{"at":"2019-05-03T14:03:51+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2019-05-03T14:03:51+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1556885031043,"ct":1556885031043,"a_depth":3,"a":["apps","b791df37-6eef-4a3e-9066-1b79e0bdad31","35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1545390392242},{"id":"cb2adf77-7636-41a7-9a16-1610b06fa91e","v":"e078a48ed535a44b","previous":{"v":"f879886138717b72"},"p":"d69a62e9-a61f-42bf-9ae9-7983b87bf587","f":{"id":"form","v":"4682421246fb9333","text":"Form"},"data":{"name":"Page","label":"Seite","tags":"","namedIcon":"far fa-file-alt","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Name][name]\r\n\r\n{children}\r\n[Sections][sections]\r\n[sections]: /47c3efd4-c1bd-40ce-81ac-d39401664153 (0-n)\r\n\r\n{hidden}\r\n[Editing][editingFlag]\r\n\r\n[editingFlag]: Switch","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2021-06-16T08:58:24+00:00","by":"8dbe63c6-e32f-49ac-8e9e-fc7a7adf31a3","from":"","client":"server"},"modified":{"at":"2023-11-07T14:52:25+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1699368745155,"ct":1635845896394,"a_depth":3,"a":["apps","cf914a7f-ff5f-4598-80f1-63c9129e0a71","d69a62e9-a61f-42bf-9ae9-7983b87bf587"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1699434578234},{"id":"c3fcbfa9-f948-483b-a706-afcdf2ca1fa6","v":"initial","previous":{"v":""},"p":"35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f","f":{"id":"form","v":"af06aca6217d20c5","text":"Form"},"data":{"name":"Bild Anhang","description":"","definition":"{photos bild=[bild] overlay=[overlay]}\n\n[Bild][bild]\n\n[Overlay][overlay]\n\n[bild]: File\n[overlay]: File\n\n[Kommentar][name]\n\n[name]: Text","functions":"","semver":"1.0.0","allowedChildrenForms":[],"layout":{"id":"","v":"","text":""},"color":{"id":"","v":"0","text":""},"iconName":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null}},"applicationLayoutOptions":{"id":"","v":"0","text":""},"documentLayoutOptions":{"id":"","v":"0","text":""}},"locks":[],"lockRefs":[],"created":{"at":"2018-02-06T09:43:53+01:00","by":"","from":"","client":"server"},"modified":{"at":"2018-02-06T09:43:53+01:00","by":"","from":"","client":"server"},"t":1517906633617,"ct":1517906633617,"a_depth":3,"a":["apps","b791df37-6eef-4a3e-9066-1b79e0bdad31","35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1554473568099},{"a":["apps","91a90288-37bc-4f86-be38-4283833717d2","cb7a4c1b-703a-4b16-9190-aa2a26532688"],"a_depth":3,"a_forms":["folder","application-form","form-folder"],"created":{"at":"2019-07-03T07:27:23+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":""},"ct":1706888724832,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[{"id":"8dbe21a7-7642-4884-986b-a119c6498bd3","text":"Protokoll","v":"659205d176a460fd"}],"commands":[{"id":"a3a82ca8-52f8-49dc-a42b-22d11f128ab7","text":"Neu","v":"initial"}],"defaults":"","definition":"[Name][name] {color}[Icon Farbe][namedIconColor] {icon collections=user,folder}[Icon][namedIcon]","description":"","functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Protokoll Gruppe","namedIcon":"far fa-folder","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"tags":"","theme":{"id":"","text":"","v":""},"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"d497194b29933d26"},"id":"954212d9-9cc7-4356-82e3-a80cf745da4d","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2025-02-17T10:39:20+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"cb7a4c1b-703a-4b16-9190-aa2a26532688","previous":{"v":"11f5f7ae68fc4a79"},"stamps":[],"t":1739788760413,"v":"486e444e5e970d74"},{"id":"4551c597-7595-4858-8b7f-207a7fb15b3e","v":"dce0ece7bd52e29c","previous":{"v":"0c0c91f64a2c1d6d"},"p":"e89b29a9-6ab9-47dc-a6fe-91ebda92871d","f":{"id":"form","v":"09198ed5f8fec9fb","text":"Form"},"data":{"name":"Casting","tags":"","namedIcon":"fa fa-users-class","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Typ][type]\n\n[name]: = functions.name(type)\n\n[type]: select\n  - E_CASTING:  eCasting\n  \n<!-- - SEDCARD:    Sedcard Casting -->\n","functions":"name(castingType) {\n  if (castingType === 'E_CASTING') {\n    return 'eCasting'\n  }\n  if (castingType === 'SEDCARD') {\n    return 'Sedcard Casting'\n  }\n  return 'Unbekannter Casting Typ'\n}","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2018-04-20T12:29:46+02:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"f8312258-bdc9-438a-a510-de77a69e61e9"},"modified":{"at":"2020-10-13T10:11:31+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1602583891670,"ct":1602583891669,"a_depth":3,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d"],"a_forms":["folder","application-form","folder"],"inheritedLocks":[null,null,null,null],"stamps":[]},{"id":"24730991-d920-4a1e-8041-6a9dc6c0ffc1","v":"b7726dac149e5365","previous":{"v":"624403f86421e1c2"},"p":"e89b29a9-6ab9-47dc-a6fe-91ebda92871d","f":{"id":"form","v":"84ffcfcc2f925959","text":"Form"},"data":{"name":"Film","tags":"","namedIcon":"fa fa-film","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Titel][name]\n\n{children handle-selected-readonly=true no-templates=true confirm-remove=true delete-on-remove=true list=true}\n[Rollen][roles]\n[roles]: /3230c10a-64af-48cc-8f3d-15fc16a40e5f (0-n)\n\n{children handle-selected-readonly=true no-templates=true delete-on-remove=true list=true}\n[Dateien][files]\n[files]: /aabed4ee-20ca-4df4-9a78-75a05e97dce9 (0-n)","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2018-04-20T12:29:46+02:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"f8312258-bdc9-438a-a510-de77a69e61e9"},"modified":{"at":"2020-10-13T10:11:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1602583892166,"ct":1602583892166,"a_depth":3,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d"],"a_forms":["folder","application-form","folder"],"inheritedLocks":[null,null,null,null],"stamps":[]},{"id":"3230c10a-64af-48cc-8f3d-15fc16a40e5f","v":"initial","previous":{"v":""},"p":"e89b29a9-6ab9-47dc-a6fe-91ebda92871d","f":{"id":"form","v":"636c28c49e0bd3c5","text":"Form"},"data":{"name":"Rolle","description":"","tags":"","definition":"[Bezeichnung][name]\n\n{multiline}\n[Beschreibung][description]","functions":"","semver":"","allowedChildrenForms":[],"layout":{"id":"","v":"","text":""},"color":{"id":"","v":"","text":""},"iconName":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null}},"applicationLayoutOptions":{"id":"","v":"","text":""},"documentLayoutOptions":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2018-04-20T12:29:48+02:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"from":"","client":"f8312258-bdc9-438a-a510-de77a69e61e9"},"modified":{"at":"2018-04-20T12:29:48+02:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"from":"","client":"f8312258-bdc9-438a-a510-de77a69e61e9"},"t":null,"ct":null,"a_depth":3,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d"],"a_forms":["folder","application-form","folder"],"inheritedLocks":[null,null,null,null],"stamps":[]},{"id":"a1e6ab82-7c13-4a74-89e4-1a23e443e350","v":"b75373c63415c110","previous":{"v":"420fd3c6dc9790a9"},"p":"25fda732-5296-4fab-8d4e-92c3e32ca2c0","f":{"id":"form","v":"42ef1fd37c206edb","text":"Form"},"data":{"name":"Position","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Bezeichnung][name]\n\n[Kategorie][kategorie]\n[kategorie]: select\n  - NONE: \n  - ENTSORGUNG: Abfallentsorgung\n  - HAUSMEISTER: Hausmeister\n  - INSTANDHALTUNG: Instandhaltung / Leuchtmittel\n  - INTERNET: Internet\n  - REINIGUNG: Reinigung\n  - VERBRAUCHSMATERIAL: Sanitärbedarf / Verbrauchsmaterial\n  - STROM: Strom\n  - VERSICHERUNG: Versicherungen\n  - WARTUNG: Wartung\n  - ANDERE: Andere\n\n[Schlüssel][schluessel]\n[schluessel]: Select\n  - QUADRATMETER_MONAT: m² / Monat\n<!-- PERSONEN -->\n<!-- EINHEIT -->\n\n{show if bezug.id|readonly|ref list}\n[Bezug][bezug]\n[bezug]: /a1e6ab82-7c13-4a74-89e4-1a23e443e350 \"Referenz auf die Berechnungsgrundlage\"\n\n{show if bezug.id|readonly}[Bezugssumme][bezugsSumme] {show if bezug.id && schluessel === 'QUADRATMETER_MONAT'|readonly}[Summe pro 1m² / Monat][summeQuadratmeterMonat]\n[bezugsSumme]: number\n[summeQuadratmeterMonat]: number\n\n{readonly if bezug.id}\n[Summe][summe]\n[summe]: number\n\n{readonly|ref list}\n[Belege][beleg]\n[beleg]: /c2d9407d-9dd6-42ff-acdc-ec2e296bea99 (0-n)","functions":"","allowedChildrenForms":[],"commands":[],"description":"","theme":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2022-12-02T14:01:56+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-01-03T15:42:46+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1672760566448,"ct":1669989716373,"a_depth":3,"a":["apps","85d3c028-a61c-4be8-93d0-4366bc45752f","25fda732-5296-4fab-8d4e-92c3e32ca2c0"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1671625445394},{"a":["apps","8f8c9ed7-a7ed-4150-b162-92d6f19a05b0","526d9710-b2bd-4fa7-9341-d780ead102c1"],"a_depth":3,"a_forms":["folder","application-form","form-folder"],"created":{"at":"2019-04-11T09:57:17+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","client":"server","from":""},"ct":1630507326983,"data":{"allowedChildrenForms":[],"commands":[],"definition":"[Name][name]\n\n[Anschrift][anschrift]\n[anschrift]: Address\n\n{Map}\n[Karte][anschrift]\n\n[Logo][logo]\n[Logo square][logoSquare]\n[Banner][banner]\n\n[logo]: File\n[banner]: File\n[logoSquare]: File\n\n{ref list=true ancestor-search-limit=0 forms=3cf04f76-f463-4b98-9c73-78df68374ede,34db9828-9784-44cb-bfd2-d1ad89cba0e4}[Menü Eintrage][menuItems] {children forms=3cf04f76-f463-4b98-9c73-78df68374ede,34db9828-9784-44cb-bfd2-d1ad89cba0e4}[Menü Eintrage][menuItems]\n[menuItems]: /ref (0-n)\n\n{children}[Menü][menu] {ref ancestor-limit=0}[Menü][menu]\n[menu]: /82f9489b-e774-4152-aa0a-c3ba91b7fcbb (0-n)\n","description":"","functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"label":"","name":"Unternehmen","namedIcon":"fa fa-building","namedIconColor":"","tags":"full-page"},"f":{"id":"form","text":"Form","v":"275741f6b713eb00"},"id":"c69a0c1c-6c53-40c2-87e8-5ace866bf1df","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2025-05-20T13:19:55+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"526d9710-b2bd-4fa7-9341-d780ead102c1","previous":{"v":"efe258d982481f98"},"stamps":[],"t":1747747195576,"v":"0a54694675992af5"},{"id":"351909be-5fd2-4c27-834d-3c094a8bade3","v":"initial","previous":{"v":""},"p":"5f76a5c6-0ebc-4a08-b5ae-84fd3176f9c9","f":{"id":"folder","v":"f1e4977dbee77607","text":"Folder"},"data":{"name":"Formular","description":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null}}},"locks":[],"created":{"at":"2018-09-03T09:57:30+00:00","by":"2695f56c-96e6-4009-8e2f-d545ea1e02aa","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2018-09-03T09:57:30+00:00","by":"2695f56c-96e6-4009-8e2f-d545ea1e02aa","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1535968650528,"ct":1535968650527,"a_depth":3,"a":["apps","83c76376-420e-4231-9275-d0fe2ab47c32","5f76a5c6-0ebc-4a08-b5ae-84fd3176f9c9"],"a_forms":["folder","application-form","application-form"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1566477407359},{"id":"674d8994-c7b4-4f40-aaea-ca361e8490de","v":"923051d11cbc020d","cloneOf":{"id":"093b2f65-2a18-4639-9a6a-59b9006d52ee","v":"4c349e9e1bd5307a","text":"OP Kategorie"},"originalCloneOf":{"id":"093b2f65-2a18-4639-9a6a-59b9006d52ee","v":"4c349e9e1bd5307a","text":"OP Kategorie"},"previous":{"v":"ca72832e6a4ef949","p":"38d426a9-52b8-4a1e-89a7-5b42e16b4932"},"p":"fc09d59c-bdef-4b1e-854e-d907bc11b295","f":{"id":"form","v":"f0e1626ad2b3fe9e","text":"Form"},"data":{"name":"Grund der Beschwerde","description":"","tags":"","definition":"[Name][name]\n\n{color}\n[Farbe][color]","functions":"","semver":"","allowedChildrenForms":[],"useLock":false,"sharedLock":{"id":"","v":"","text":""},"creatorKeys":[],"cloneLock":{"id":"","v":"","text":""},"cloneRoles":[],"layout":{"id":"","v":"","text":""},"color":{"id":"","v":"","text":""},"iconName":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null}},"applicationLayoutOptions":{"id":"","v":"","text":""},"documentLayoutOptions":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2019-08-21T09:25:37+00:00","by":"2695f56c-96e6-4009-8e2f-d545ea1e02aa","from":"","client":"server"},"modified":{"at":"2020-05-08T08:51:12+00:00","by":null,"backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1588927872086,"ct":1566379537765,"a_depth":3,"a":["apps","f93ac233-7aa7-4561-a3b3-d8ebda0ee514","fc09d59c-bdef-4b1e-854e-d907bc11b295"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1566477152273},{"id":"6c4f14e0-a9ee-4f78-b75f-75249b074054","v":"initial","p":"dbd0bd68-3479-4032-9303-9d51615c27a7","f":{"id":"form","v":"b0b1f4808edd7503","text":"Form"},"data":{"name":"Received Delivery","tags":"","definition":"{200px}[Received At][receivedAt]\r\n\r\n{date}\r\n[receivedAt]: DateTime\r\n\r\n[Order][order]\r\n[order]: /ee4b6777-b620-43a9-9cde-7261dfc5c616\r\n\r\n{children}\r\n[Received Items][items]\r\n[items]: /e6a96b1c-797f-4071-8568-dd7b1d0fdcfd (0-n)\r\n\r\n{children}\r\n[Attachments][attachments]\r\n[attachments]: /6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2 (0-n)\r\n\r\n{multiline}\r\n[Comments][comments]\r\n","functions":"","allowedChildrenForms":[],"commands":[{"id":"22a70b80-8159-48d4-ac22-63e562880b0e","v":"6865084d96089272","text":"Store Items"}],"description":""},"locks":[],"created":{"at":"2021-11-02T09:38:36+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-11-02T09:38:36+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1635845916600,"ct":1635845916600,"a_depth":3,"a":["apps","781ff5de-69db-49dc-99f0-f328b308cd7d","dbd0bd68-3479-4032-9303-9d51615c27a7"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1635845916986},{"id":"8d1804b0-c5c6-4acf-a15f-1b02872e792e","v":"07752b4c54957b92","previous":{"v":"89fde7691037a6d6"},"p":"a3b935e7-60bc-4996-9b18-668e4361067f","f":{"id":"form","v":"42ef1fd37c206edb","text":"Form"},"data":{"name":"Position (Angebot)","tags":"","namedIcon":"far fa-coins","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"{multiline auto-grow=true}[Beschreibung][name] {now}[Datum][datum]\n\n{33|switch appearance=toggle}[Abrechenbar][abrechenbar] {20|switch appearance=toggle}[Alternative][alternative] {20|switch appearance=toggle}[Zuschuss][zuschuss] [USt-Satz][ust]\n\n[Leistungszeitraum][leistungszeitraum]\n[leistungszeitraum]: Select\n  - EINMALIG: Einmalig\n  - MONATLICH: Monatlich\n  - QUARTAL: Quartalsweise\n  - JAEHRLICH: Jährlich\n\n{select icon_PAUSCHALE=\"far fa-coin\" icon_ZEIT=\"far fa-clock\" icon_MATERIAL=\"far fa-boxes\" icon_SOCKEL_PLUS_VARIABLE=\"far fa-layer-plus\" icon_ENTFERNUNG=\"far fa-car\"}\n[Typ][typ]\n\n[ust]: Select\n  - NORMAL: Normal\n  - ERMAESSIGT: Ermäßigt\n  - BEFREIT: Befreit\n[abrechenbar]: switch\n\n[alternative]: switch \"Eine als alternativ gekennzeichnete Position wird zwar in ihrem Wert ausgewiesen, aber fließt **nicht** in die Berechnung der Rechnungssumme mit ein.\"\n\n[zuschuss]: switch \"Eine als Zuschuss gekennzeichnete Position wird von der Brutto-Summe abgezogen.\"\n\n{show if typ === 'ZEIT'}\n####### \n{number}[Menge][menge] [Dauer][dauer]\n\n[Kosten pro Dauer][kostenProEinheit]\n\n{show if typ === 'PAUSCHALE'}\n####### \n{number}[Menge][menge] [Pauschale][kostenProEinheit]\n\n{show if typ === 'MATERIAL'}\n####### \n{number}[Menge][menge] [Kosten pro Einheit][kostenProEinheit] \n\n{show if typ === 'SOCKEL_PLUS_VARIABLE'}\n####### \n\n**Fixe Kosten**\n\n[Sockelbetrag][fixeKosten]\n\n**Variable Kosten**\n\n{number}[Menge][menge] [Dauer][dauer]\n\n[Kosten pro Dauer][kostenProEinheit]\n\n{show if typ === 'ENTFERNUNG'}\n####### \n{number}[Kilometer][menge] [Kosten pro km][kostenProEinheit]\n\n{hidden}\n[Summe][summe]\n[summe]: number = functions.sum(abrechenbar, fixeKosten, kostenProEinheit, menge)\n\n[kostenProEinheit]: currency\n[fixeKosten]: currency\n[dauer]: duration\n[menge]: number\n[typ]: Select\n  - PAUSCHALE: Pauschale\n  - ZEIT: Zeit\n  - MATERIAL: Material\n  - SOCKEL_PLUS_VARIABLE: Sockelbetrag + Zeit\n  - ENTFERNUNG: km (Entfernung)\n","functions":"sum(verrechnet, fixeKosten, kostenProEinheit, menge) {\n  return verrechnet ? fixeKosten.amount + ((kostenProEinheit.amount * menge) || 0) : 0\n}\n","allowedChildrenForms":[],"commands":[],"description":"","theme":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2020-09-04T09:34:19+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2024-04-05T13:54:37+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1712325277168,"ct":1678436516745,"a_depth":3,"a":["apps","0924db0f-7095-4b51-8966-bad1e45d68ec","a3b935e7-60bc-4996-9b18-668e4361067f"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1738244689673},{"id":"8b64a4e4-bcc0-4080-9913-bc973143abd9","v":"d6cee0c32198a755","previous":{"v":"initial"},"p":"e89b29a9-6ab9-47dc-a6fe-91ebda92871d","f":{"id":"form","v":"636c28c49e0bd3c5","text":"Form"},"data":{"name":"Frage","description":"","tags":"","definition":"[Sprache][language]\n[language]: select\n  - de: Deutsch\n  - en: Englisch\n\n{content-translation control-name=multiline language-field-name=language}\n[Frage][question]\n\n[name]: = functions.firstline(question)","functions":"firstline(question) {\n  if (!question) {\n    return 'Unbenannt'\n  }\n\n  return question.split('\\n')[0]\n}","semver":"","allowedChildrenForms":[],"layout":{"id":"","v":"","text":""},"color":{"id":"","v":"","text":""},"iconName":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null}},"applicationLayoutOptions":{"id":"","v":"","text":""},"documentLayoutOptions":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2018-04-20T12:29:46+02:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"f8312258-bdc9-438a-a510-de77a69e61e9"},"modified":{"at":"2019-03-27T11:47:36+01:00","by":"21755d65-c561-473a-ad0d-bac9a744d145","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1553683656991,"ct":null,"a_depth":3,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d"],"a_forms":["folder","application-form","folder"],"inheritedLocks":[null,null,null,null],"stamps":[]},{"id":"22edaaeb-3d02-4c07-a801-e90544aff249","v":"initial","p":"2540faf9-e3fd-4b52-aad8-53f43274e0a2","f":{"id":"form","v":"f0e1626ad2b3fe9e","text":"Form"},"data":{"name":"Spalte","description":"","tags":"","definition":"[Name][name]\n\n[Minimale Breite mit Einheit][width]\n\n{ref ancestor-search-limit=0 list=true}\n[Elemente][elements]\n[elements]: /0d7b8be5-a09b-4567-8b23-5bfdc7dfed45 (0-n)","functions":"","semver":"","allowedChildrenForms":[],"useLock":false,"sharedLock":{"id":"","v":"","text":""},"creatorKeys":[],"cloneLock":{"id":"","v":"","text":""},"cloneRoles":[],"layout":{"id":"","v":"","text":""},"color":{"id":"","v":"","text":""},"iconName":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null}},"applicationLayoutOptions":{"id":"","v":"","text":""},"documentLayoutOptions":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2019-09-20T08:59:31+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2019-09-20T08:59:31+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1568969971239,"ct":1568969971238,"a_depth":3,"a":["apps","8fa52498-fa07-4bad-87b3-5c8df671aca4","2540faf9-e3fd-4b52-aad8-53f43274e0a2"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1568969971244},{"id":"555c5db8-bfe2-4210-968d-d2b6580cfdce","v":"b3b5080e55ffa114","previous":{"v":"initial"},"p":"5d6fa6d3-7580-4c6f-9487-fff961f9c751","f":{"id":"form","v":"f0e1626ad2b3fe9e","text":"Form"},"data":{"name":"Spalte","description":"","tags":"","definition":"[Name][name]\n\n[Minimale Breite mit Einheit][width]\n\n{ref ancestor-search-limit=0 list=true}\n[Elemente][elements]\n[elements]: /4e0955ce-9652-4139-bf34-255d350f21c4 (0-n)","functions":"","semver":"","allowedChildrenForms":[],"useLock":false,"sharedLock":{"id":"","v":"","text":""},"creatorKeys":[],"cloneLock":{"id":"","v":"","text":""},"cloneRoles":[],"layout":{"id":"","v":"","text":""},"color":{"id":"","v":"","text":""},"iconName":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null}},"applicationLayoutOptions":{"id":"","v":"","text":""},"documentLayoutOptions":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2019-04-12T14:29:41+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2020-02-25T15:29:02+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1582644542784,"ct":1555079381499,"a_depth":3,"a":["apps","43f84041-0fd7-4ccb-b7b5-7a38f89ada37","5d6fa6d3-7580-4c6f-9487-fff961f9c751"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1543933794214},{"id":"5cdd2d20-7676-43e3-8997-e176dd3434ed","v":"15f0ec3af3f39f95","previous":{"v":"10884ec2e8599df8"},"p":"1116d922-d8df-4da5-a7c2-70191d07d929","f":{"id":"form-folder","v":"da674238a5cc9476","text":"Form Folder"},"data":{"name":"Forms","description":""},"locks":[],"created":{"at":"2018-05-30T14:02:34+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2018-10-30T12:55:55+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1540904155135,"ct":1527688954696,"a_depth":3,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","1116d922-d8df-4da5-a7c2-70191d07d929"],"a_forms":["folder","application-form","folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1540904218340},{"id":"686d22ba-414e-452f-9795-f6f7bcab37d5","v":"96f3bfa76488a7b0","previous":{"v":"f294b2c742fba5d0"},"p":"e89b29a9-6ab9-47dc-a6fe-91ebda92871d","f":{"id":"form","v":"84ffcfcc2f925959","text":"Form"},"data":{"name":"Projekt","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Titel][name]\n\n\n[Deadline][deadline]\n[deadline]: date\n\n[Abgeschlossen][closed]\n[closed]: switch\n\n{multiline}\n[translate:description|Beschreibung][description]\n\n{multiline}\n[translate:fee|Gage][fee]\n\n{multiline}\n[translate:shootingDates|Drehzeitraum][shootingDates]\n\n{children no-templates=true delete-on-remove=true list=true}\n[Projektdateien][files]\n[files]: /aabed4ee-20ca-4df4-9a78-75a05e97dce9 (0-n)\n\n{hidden|children no-templates=true confirm-remove=true delete-on-remove=true list=true}\n[Filme][movies]\n[movies]: /24730991-d920-4a1e-8041-6a9dc6c0ffc1 (0-n)\n\n{hidden|children only-template=true template-parent-id=67ef16e7-6b61-41b5-b422-f3b1e17be90f confirm-remove=true list=true}\n[Castings][castings]\n[castings]: /4551c597-7595-4858-8b7f-207a7fb15b3e (0-1)","functions":"","allowedChildrenForms":[],"commands":[{"id":"c4d090c1-19a6-4e54-93ea-04d77a0e80ee","v":"cd69e883b3dd964f","text":""},{"id":"fd82a107-b3bb-442d-bf51-e531953e135c","v":"ba134e04afa43935","text":"Neuer Film"}],"description":""},"locks":[],"created":{"at":"2018-04-20T12:29:47+02:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"f8312258-bdc9-438a-a510-de77a69e61e9"},"modified":{"at":"2020-10-13T10:11:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1602583892903,"ct":1602583892903,"a_depth":3,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d"],"a_forms":["folder","application-form","folder"],"inheritedLocks":[null,null,null,null],"stamps":[]},{"a":["apps","f416e371-07cc-4987-a6de-5934ef5ff3e4","1096c5df-2773-4914-9455-dc54e0f3e0e5"],"a_depth":3,"a_forms":["folder","application-form","form-folder"],"created":{"at":"2020-11-19T13:20:24+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1605792024189,"data":{"allowedChildrenForms":[],"commands":[{"id":"bcf03b52-175d-483e-8a3f-5e145c2e5cf5","text":"StartQuiz","v":"bc3be6db3a39add7"},{"id":"f061bb4d-00b3-4653-847b-fa723707bf06","text":"Lesen bestätigen","v":"initial"},{"id":"25e2bb11-1fea-4a0f-acf0-3b466a22bd42","text":"rd:StartQuiz","v":"0a223f6ca1e74d29"},{"id":"08952d77-fb18-4611-a4df-b4b7849ddd04","text":"rd:Lesen bestätigen Dialog","v":"12edf13cc22f2baa"}],"definition":"{hidden}\n[bewertungAktiv][bewertungAktiv]\n[bewertungAktiv]: switch\n\n{hidden}\n[kommentarAktiv][kommentarAktiv]\n[kommentarAktiv]: switch\n\n{hidden|readonly}\n[Unterweisung hat Fragen][hatFragen]\n[hatFragen]: Switch\n\n{hidden}\n[Name][name]\n[name]: = empfaenger.text || ''\n\n{hidden|readonly}\n[Empfänger][empfaenger]\n[empfaenger]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10\n\n{hidden}\n[Lesen bestätigen][gelesen]\n[gelesen]: switch <required>\n\n{readonly|now control=datetime write-readonly=true}\n[Gelesen am][gelesenAm]\n[gelesenAm]: date\n\n{show if bewertungAktiv|select icon_GUT=\"far fa-smile-beam\" iconcolor_GUT=green icon_OK=\"far fa-meh\" icon_SCHLECHT=\"far fa-sad-tear\" iconcolor_SCHLECHT=red}\n[Bewertung][bewertung]\n[bewertung]: select <required>\n  - \n  - GUT: Gut\n  - OK: OK\n  - SCHLECHT: Schlecht\n\n{show if kommentarAktiv|multiline auto-grow}\n[Kommentar (optional)][kommentar] ","description":"","functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Lesebestätigung","namedIcon":"far fa-poll-people","namedIconColor":"","tags":""},"f":{"id":"form","text":"Form","v":"24ab84939535fdcd"},"id":"14931d03-c3bb-4cf7-9f62-747f94d8b01a","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2025-09-19T14:16:07+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"1096c5df-2773-4914-9455-dc54e0f3e0e5","previous":{"v":"436258d5c5c74324"},"stamps":[],"t":1758291367849,"v":"bd7e7defe8f145c0"},{"id":"85095086-2b96-40d0-bc27-4281f954bb9b","v":"initial","p":"dbd0bd68-3479-4032-9303-9d51615c27a7","f":{"id":"form","v":"b0b1f4808edd7503","text":"Form"},"data":{"name":"Used Component","tags":"","definition":"[Type][type]\r\n\r\n[type]: Select\r\n  - COUNT: Using Full items\r\n  - PARTIAL: Using unit of item\r\n\r\n{show if type === 'COUNT'}\r\n[Count][count]\r\n\r\n{show if type === 'PARTIAL'}\r\n[Length in cm][length]\r\n\r\n[Component][component]\r\n\r\n[count]: Number\r\n\r\n[component]: /33b4d43f-ca46-46f7-98b6-0a077372188c\r\n\r\n{multiline}\r\n[Comment][comment]\r\n\r\n{multiline}\r\n[Build Comments per Part][partComments]\r\n\r\nOne Line per comment per item\r\n\r\n","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2021-11-02T09:38:37+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-11-02T09:38:37+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1635845917911,"ct":1635845917911,"a_depth":3,"a":["apps","781ff5de-69db-49dc-99f0-f328b308cd7d","dbd0bd68-3479-4032-9303-9d51615c27a7"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1635845918079},{"id":"64500ae9-6089-4e55-add1-3e38c2fa1c41","v":"4f72e79b90d82500","previous":{"v":"initial"},"p":"35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f","f":{"id":"form","v":"af06aca6217d20c5","text":"Form"},"data":{"name":"Protokoll","description":"","definition":"[Bezeichnung][name]\n\n[Geschädigter][geschaedigter]\n[geschaedigter]: /b42192cd-f547-4531-8fd2-1ecd7ecff581\n\n## Abnahme\n[Abnahme durch][gezeichnetDurch]\n\n{signature}\n[Unterschrift][unterschrift]\n\n[unterschrift]: file","functions":"","semver":"6.0.0","allowedChildrenForms":[],"layout":{"id":"","v":"","text":""},"color":{"id":"","v":"0","text":""},"iconName":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null}},"applicationLayoutOptions":{"id":"","v":"0","text":""},"documentLayoutOptions":{"id":"","v":"0","text":""}},"locks":[],"created":{"at":"2018-02-06T09:44:47+01:00","by":"","from":"","client":"server"},"modified":{"at":"2019-05-03T14:03:51+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1556885031059,"ct":1517906687217,"a_depth":3,"a":["apps","b791df37-6eef-4a3e-9066-1b79e0bdad31","35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1554972223837},{"id":"b8604959-a785-48cd-8ff4-e886afb38d1d","v":"015c607fa23e6c69","p":"35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f","f":{"id":"form","v":"dcc8032a347c59c7","text":"Form"},"data":{"name":"Abnahmeprotokoll","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Bezeichnung][name]\n\n## Abnahme\n[Abnahme durch][gezeichnetDurch]\n\n{signature}\n[Unterschrift][unterschrift]\n[unterschrift]: file","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2019-04-12T14:29:36+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2020-10-13T10:18:41+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1602584321738,"ct":1602584321738,"a_depth":3,"a":["apps","b791df37-6eef-4a3e-9066-1b79e0bdad31","35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"previous":{"v":"initial","f":{"id":"form","v":"af06aca6217d20c5","text":"Form"}},"dts":1554975174825},{"id":"c65a0941-942e-499f-8cd7-774aeeaf0a96","v":"de0bb579f1a813af","previous":{"v":"initial","locks":[]},"p":"bbe4e999-ca2c-4be4-8740-d07f051be556","f":{"id":"folder","v":"f1e4977dbee77607","text":"Folder"},"data":{"name":"Formular","description":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null}}},"locks":[],"created":{"at":"2018-09-03T12:42:51+00:00","by":"2695f56c-96e6-4009-8e2f-d545ea1e02aa","from":"","client":"server"},"modified":{"at":"2018-09-03T12:43:06+00:00","by":"2695f56c-96e6-4009-8e2f-d545ea1e02aa","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1535978586407,"ct":1535978571584,"a_depth":3,"a":["apps","83c76376-420e-4231-9275-d0fe2ab47c32","bbe4e999-ca2c-4be4-8740-d07f051be556"],"a_forms":["folder","application-form","application-form"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1588927971151},{"id":"204787ca-59c2-4b11-b866-aa05fa9c9891","v":"8ebfb2cd55f2b559","previous":{"v":"1d9d48fb2adea41f"},"p":"9b024049-2573-4921-acaa-3e172e9332d7","f":{"id":"form","v":"12ceedaed4c81b21","text":"Form"},"data":{"name":"Arbeits-Eintrag","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[name]: = functions.name(nummer, beschreibung)\n\n[Nummer][nummer]\n\n[Beschreibung][beschreibung]","functions":"name(nummer, beschreibung) {\n  return [nummer, beschreibung]\n    .filter(part => !!part)\n    .map(part => part.trim())\n    .join(' ')\n}","allowedChildrenForms":[],"commands":[],"description":"","theme":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2022-02-28T15:00:27+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-03-03T09:01:10+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1646298070028,"ct":1646060427649,"a_depth":3,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1650374751449},{"id":"213063e5-59c0-455c-8331-43b04fff203f","v":"b7dc443f4e6b4cab","p":"d86dc31e-ad2c-45b7-8606-a6ce35580b10","f":{"id":"form","v":"b0b69a951dde83ea","text":"Form"},"data":{"name":"Prüfbericht MSR- Einrichtungen und Gebäudeautomatisationssysteme","tags":"","allowUndefinedFields":false,"definition":"[Schaltplanbezeichnung][circuitDiagramDesignation]\n[Kabelnummer][cableNumber]\n[Nennspannung (V)][ratedVoltageV]\n[Nennstrom (A)][ratedCurrentA]\n[Nennleistung (kW)][ratedPowerKw]\n[Motorschutz Typ / Absicherung (A) (TK=Thermokontakt, KL=Kaltleiter, MSS=Motorschutzschalter)][motorProtectionTypeFuseA]\n[Messung L1 (A)][measurementL1A]\n[Messung L2 (A)][measurementL2A]\n[Messung L3 (A)][measurementL3A]\n[Einstellung Motorschutz oder eingesetztes Sicherungsorgan][motorProtectionSetting]\n[Drehrichtung L / R][directionOfRotationLR]\n\n\n[Sollwert am Gerät eingestellt][settingOnTheDevice]\n[Istwert vor Ort gemessen][actualValueMeasured]\n[Istwert im SPS angezeigt][actualValueDisplayedInSPS]\n[Abgleich Ist zu Soll alt][comparisonActualToTargetOld]\n[Abgleich Ist zu Soll neu][comparisonActualToTargetNew]\n[Sichtprüfung elektr. / mech.][visualInspectionElectrMech]\n[Einstellung Wirksinn Klappe / Ventil][settingEffectiveDirectionFlapValve]\n[Mechanischer Dreh- / Hubweg][mechanicalRotationTravel]\n[Endlagenschalter / Stellungsgeber][limitSwitchPositionTransmitter]\n[Fernbedieneinheit Tasten][remoteControlUnitButtons]\n[Fernbedieneinheit Lampen][remoteControlUnitLamps]\n[Fernbedieneinheit Sollwertsteller][remoteControlUnitSetpointAdjuster]\n","functions":"","relatedDocuments":[],"defaults":"","newTemplate":{"id":"","v":"","text":""},"newAction":{"id":"","v":"","text":""},"allowedChildrenForms":[],"commands":[],"descendantCommands":[],"to":[],"from":[],"namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"","v":"","text":""},"description":""},"locks":[],"created":{"at":"2025-08-06T13:09:17+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2025-08-06T13:09:17+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1754485772736,"ct":1754485772736,"a_depth":3,"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","d86dc31e-ad2c-45b7-8606-a6ce35580b10"],"a_forms":["folder","application-form","folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"previous":{"v":"initial","f":{"id":"form","v":"cac2c00e9d3adbaa","text":"Form"}},"meta":{"modified":{"at":"2025-08-06T13:09:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"cf4be28e-7257-43df-b8b6-4d448559c5d9","v":"3af8e5876e0da296","previous":{"v":"a7813d94f390b37c"},"p":"0614d9ba-fc1d-496b-8659-0a357871ae44","f":{"id":"form","v":"cac2c00e9d3adbaa","text":"Form"},"data":{"name":"Prüfbericht MSR- Einrichtungen und Gebäudeautomatisationssysteme","tags":"","allowUndefinedFields":false,"definition":"[Schaltplanbezeichnung][circuitDiagramDesignation]\n[Kabelnummer][cableNumber]\n[Nennspannung (V)][ratedVoltageV]\n[Nennstrom (A)][ratedCurrentA]\n[Nennleistung (kW)][ratedPowerKw]\n[Motorschutz Typ / Absicherung (A) (TK=Thermokontakt, KL=Kaltleiter, MSS=Motorschutzschalter)][motorProtectionTypeFuseA]\n[Messung L1 (A)][measurementL1A]\n[Messung L2 (A)][measurementL2A]\n[Messung L3 (A)][measurementL3A]\n[Einstellung Motorschutz oder eingesetztes Sicherungsorgan][motorProtectionSetting]\n[Drehrichtung L / R][directionOfRotationLR]\n\n\n[Sollwert am Gerät eingestellt][settingOnTheDevice]\n[Istwert vor Ort gemessen][actualValueMeasured]\n[Istwert im SPS angezeigt][actualValueDisplayedInSPS]\n[Abgleich Ist zu Soll alt][comparisonActualToTargetOld]\n[Abgleich Ist zu Soll neu][comparisonActualToTargetNew]\n[Sichtprüfung elektr. / mech.][visualInspectionElectrMech]\n[Einstellung Wirksinn Klappe / Ventil][settingEffectiveDirectionFlapValve]\n[Mechanischer Dreh- / Hubweg][mechanicalRotationTravel]\n[Endlagenschalter / Stellungsgeber][limitSwitchPositionTransmitter]\n[Fernbedieneinheit Tasten][remoteControlUnitButtons]\n[Fernbedieneinheit Lampen][remoteControlUnitLamps]\n[Fernbedieneinheit Sollwertsteller][remoteControlUnitSetpointAdjuster]\n","functions":"","defaults":"","newTemplate":{"id":"","v":"","text":""},"newAction":{"id":"","v":"","text":""},"allowedChildrenForms":[],"commands":[],"namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"","v":"","text":""},"description":""},"locks":[],"created":{"at":"2024-05-23T11:14:24+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-05-23T12:38:37+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1716467917213,"ct":1716462868392,"a_depth":3,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","0614d9ba-fc1d-496b-8659-0a357871ae44"],"a_forms":["folder","application-form","folder"],"inheritedLocks":[null,null,null,null],"stamps":[]},{"id":"14dd1fdf-b8a5-4885-b49e-686d43be4603","v":"a0a515981a8a7481","previous":{"v":"initial"},"p":"0614d9ba-fc1d-496b-8659-0a357871ae44","f":{"id":"form","v":"42ef1fd37c206edb","text":"Form"},"data":{"name":"Leistungsmessung der Sprinklerpumpe","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[V Anzeigengerät %, Testleitung DN][prozent]\n[V = Liter / Minute, Anzeigengerät][literProMinute]\n[Druck, Saugseite][druckSaugseite]\n[Druck, Druckseite][druckDruckseite]\n[E- Stromaufnahme][eStromaufnahme]\n[D- Drehzahl / RPM][dDrehzahl]\n[D- Temperatur / Öl][dOelTemperatur]\n[D- Temperatur / Kühlwasser][dKuehlwasserTemperatur]","functions":"","allowedChildrenForms":[],"commands":[],"description":"","theme":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2022-06-28T14:07:26+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-06-28T14:13:11+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1656425591448,"ct":1656425246942,"a_depth":3,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","0614d9ba-fc1d-496b-8659-0a357871ae44"],"a_forms":["folder","application-form","folder"],"inheritedLocks":[null,null,null,null],"stamps":[]},{"id":"d7f0c56d-8e0e-4607-911b-b0789c557d40","v":"9339ffe9bcfa270e","previous":{"v":"63114da14935e777"},"p":"9b024049-2573-4921-acaa-3e172e9332d7","f":{"id":"form","v":"12ceedaed4c81b21","text":"Form"},"data":{"name":"Arbeit","tags":"","namedIcon":"fa fa-wrench","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"{ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true creation-location-form=1a899567-18c8-4428-a377-caa9b3ed6c9f on-creation-write-search-to-field=beschreibung}\n[Eintrag][eintrag] \n\n{150px|hidden}[Interval][interval]\n\n[eintrag]: /204787ca-59c2-4b11-b866-aa05fa9c9891 <required>\n  \n[interval]: Select\n  - 12: jährlich\n  - 6: halbjährlich\n  - 3: vierteljährlich\n\n[Zustand][io] [Bemerkungen müssen erfasst werden][bemerkungenPflicht]\n[bemerkungenPflicht]: switch \"Immer Bemerkungen anfordern, unabhängig vom Zustand.\"\n\n[io]: Select\n  - 0: Zu prüfen\n  - 1: Fehlerhaft\n  - 2: In Ordnung\n\n{multiline auto-grow=true}\n[Bemerkungen][bemerkungen]\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" file-name-field=\"name\" direct-preview=true}\n[Fotos][fotos]\n[fotos]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{ref query-limit-command=f8341c86-df50-47fa-ae87-401c655b4379 handle-selected=false hide-path=true}\n[Erfassungsformular][erfassungsForm]\n[erfassungsForm]: /ref \n\n{children form-field=erfassungsForm}\n[Erfassungen][erfassungen]\n[erfassungen]: /ref (0-n)","functions":"","allowedChildrenForms":[],"commands":[],"description":"","theme":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2022-02-28T14:59:51+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-01-27T09:00:33+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1674810033304,"ct":1646060391579,"a_depth":3,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1662385270564},{"f":{"id":"folder","v":"f1e4977dbee77607","text":"Folder"},"p":"2c872bc9-30dc-45b4-9aed-8c1c89a69baa","data":{"name":"Formulare","description":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null}}},"id":"d206ec4a-14b4-4425-9843-143e545ec76e","v":"9dc9956f8bc9cb84","t":1467644276454,"ct":1467644276434,"previous":{"v":"initial"},"modified":{"at":"2017-09-15T10:29:31+02:00","by":"","from":"","client":"import"},"created":{"at":"2017-09-15T10:29:31+02:00","by":"","from":"","client":"import"},"locks":[],"lockRefs":[],"inheritedLocks":[null,null,null,null],"a":["apps","83c76376-420e-4231-9275-d0fe2ab47c32","2c872bc9-30dc-45b4-9aed-8c1c89a69baa"],"a_forms":["folder","application-form","application-form"],"a_depth":3,"stamps":[],"dts":1553589852974},{"id":"ce9d42b0-197e-4d60-90a4-daee72c20939","v":"initial","p":"dbd0bd68-3479-4032-9303-9d51615c27a7","f":{"id":"form","v":"a241685be918720e","text":"Form"},"data":{"name":"Test Step","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Name][name]\r\n[name]: = definition.text\r\n\r\n[Definition][definition]\r\n[definition]: /4655f3fe-c599-486e-b16b-cd137f6ddac4\r\n\r\n[Success][success]\r\n[success]: Switch\r\n\r\n{multiline}\r\n[Result][result]\r\n\r\n{editor}\r\n[Comment][comment]\r\n\r\n","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2021-11-02T09:38:39+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-11-02T09:38:39+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1635845919097,"ct":1635845919096,"a_depth":3,"a":["apps","781ff5de-69db-49dc-99f0-f328b308cd7d","dbd0bd68-3479-4032-9303-9d51615c27a7"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1635845919292},{"id":"2f70253a-5ee5-48e0-9716-b3a21880a728","v":"initial","previous":{"v":""},"p":"35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f","f":{"id":"form","v":"af06aca6217d20c5","text":"Form"},"data":{"name":"Versicherungen Ordner","description":"","definition":"","functions":"","semver":"1.0.1","allowedChildrenForms":[],"layout":{"id":"","v":"","text":""},"color":{"id":"","v":"0","text":""},"iconName":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null}},"applicationLayoutOptions":{"id":"","v":"0","text":""},"documentLayoutOptions":{"id":"","v":"0","text":""}},"locks":[],"lockRefs":[],"created":{"at":"2018-02-06T09:45:00+01:00","by":"","from":"","client":"server"},"modified":{"at":"2018-02-06T09:45:00+01:00","by":"","from":"","client":"server"},"t":1517906700838,"ct":1517906700838,"a_depth":3,"a":["apps","b791df37-6eef-4a3e-9066-1b79e0bdad31","35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1517906884082},{"id":"dd734548-b5d5-4563-bf9f-f39fce0cde06","v":"initial","previous":{"v":""},"p":"35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f","f":{"id":"form","v":"af06aca6217d20c5","text":"Form"},"data":{"name":"Geräte Typen und Arten Ordner","description":"","definition":"","functions":"","semver":"1.0.1","allowedChildrenForms":[],"layout":{"id":"","v":"","text":""},"color":{"id":"","v":"0","text":""},"iconName":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null}},"applicationLayoutOptions":{"id":"","v":"0","text":""},"documentLayoutOptions":{"id":"","v":"0","text":""}},"locks":[],"lockRefs":[],"created":{"at":"2018-02-06T09:44:12+01:00","by":"","from":"","client":"server"},"modified":{"at":"2018-02-06T09:44:12+01:00","by":"","from":"","client":"server"},"t":1517906652016,"ct":1517906652016,"a_depth":3,"a":["apps","b791df37-6eef-4a3e-9066-1b79e0bdad31","35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1517906776069},{"id":"f5f395b4-dc48-4827-9774-5d4937cfbc45","v":"07be588ea31be77e","previous":{"v":"881287e6a0f20639"},"p":"35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f","f":{"id":"form","v":"8c1496d16c344c2e","text":"Form"},"data":{"name":"Stammdaten Ordner","tags":"","definition":"[Name][name]\n\n[Menu Einträge][menuItems]\n[menuItems]: /3cf04f76-f463-4b98-9c73-78df68374ede (0-n)","functions":"","allowedChildrenForms":[],"description":""},"locks":[],"created":{"at":"2019-05-03T14:03:51+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2019-05-03T14:03:51+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1556885031101,"ct":1556885031100,"a_depth":3,"a":["apps","b791df37-6eef-4a3e-9066-1b79e0bdad31","35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1554204452750},{"id":"0b3e7813-ae30-4c69-9dd6-8111a6301d38","v":"4acb52d8a569e071","previous":{"v":"5d0df5a82300b7ee"},"p":"58cc45fb-3fb3-45e8-b61d-4b89899e357a","f":{"id":"form","v":"af06aca6217d20c5","text":"Form"},"data":{"name":"Kategorie","description":"","definition":"[Name][name]\n\n[Beschreibung][beschreibung]\n[beschreibung]: text\n\n[Color][color]\n[color]: /color","functions":"","semver":"","allowedChildrenForms":[],"layout":{"id":"","v":"","text":""},"color":{"id":"","v":"","text":""},"iconName":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null}},"applicationLayoutOptions":{"id":"","v":"","text":""},"documentLayoutOptions":{"id":"","v":"","text":""}},"locks":[],"lockRefs":[],"created":{"at":"2018-01-09T10:08:01+01:00","by":"","from":"","client":"b20f0848-a55a-497f-a396-111e8029fc15"},"modified":{"at":"2018-01-09T10:14:37+01:00","by":"","from":"","client":"b20f0848-a55a-497f-a396-111e8029fc15"},"t":1515489277291,"ct":1515488870917,"a_depth":3,"a":["apps","aed1ba1c-9095-4aca-8176-74a37325f0e5","58cc45fb-3fb3-45e8-b61d-4b89899e357a"],"a_forms":["folder","application-form","folder"],"inheritedLocks":[null,null,null,null],"stamps":[]},{"id":"37d7f918-c519-4f95-8e69-d0da9628a059","v":"initial","p":"dbd0bd68-3479-4032-9303-9d51615c27a7","f":{"id":"form","v":"b0b1f4808edd7503","text":"Form"},"data":{"name":"Mail","tags":"","definition":"[Subject][subject] {200px}{datetime}[Received][received] \r\n\r\n[name]: text = functions.calcName(subject,from,to)\r\n\r\n[From][from]\r\n\r\n[To][to]\r\n\r\n[sent]: DateTime\r\n[received]: DateTIme\r\n\r\n[From Ref][fromRef]\r\n[fromRef]: ref\r\n\r\n[to]: ref (0-n)\r\n\r\n[CC][cc]\r\n[cc]: ref (0-n)\r\n\r\n{multiline}\r\n[Text][text]\r\n\r\n{hidden}\r\n[Html][html]\r\n\r\n{attachment form-id=6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2 file-field=datei name-field=name delete-on-remove=true list=true}\r\n[Attachments][attachments]\r\n[attachments]: /6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2 (0-n)\r\n\r\n{hidden}\r\n#######\r\n\r\n[MessageId][messageId]\r\n\r\n[ThreadIndex][threadIndex]\r\n\r\n[Msg File][msgFile]\r\n[msgFile]: File\r\n\r\n[Full Mail][fullMail]\r\n[fullMail]\r\n\r\n[Headers][headers]\r\n[headers]: text (0-n)","functions":"calcName(subject, from, to) {\r\n  return `\"${subject}\" ${from} -> ${to.map(t => t.text).join(',')}`\r\n}","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2021-11-02T09:38:35+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-11-02T09:38:35+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1635845915510,"ct":1635845915510,"a_depth":3,"a":["apps","781ff5de-69db-49dc-99f0-f328b308cd7d","dbd0bd68-3479-4032-9303-9d51615c27a7"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1635845915673},{"a":["apps","94a64d89-d204-4918-b147-d717914fb03e","f254ce25-42f1-4333-8ee7-23554bf746c1"],"a_depth":3,"a_forms":["folder","application-form","form-folder"],"created":{"at":"2019-07-18T14:30:20+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":""},"ct":1668004948447,"data":{"allowedChildrenForms":[],"commands":[{"id":"7d65dcc7-d03b-4d54-9765-19b8e8551f5f","text":"Neu","v":"b409054082f75844"},{"id":"1e8ee4b6-2767-4110-b293-178e58f12646","text":"rd:Neu","v":"092503f66eca19bd"}],"definition":"{hidden|readonly}\n[Verknüpfte Dokumente][dmsFolder]\n[dmsFolder]: /6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2\n\n\n# Projekt\n\n[Name][name] [Status][status] [Priorität][prioritaet]\n \n[status]: Select\n  - NONE:\n  - ACQUISITION <icon=\"far fa-usd-square\">: Akquise\n  - DECLINED <icon=\"far fa-times\">: Abgelehnt\n  - PROGRESS <icon=\"far fa-play-circle\">: In Bearbeitung (in der Planungsphase)\n  - ONSPOTCHECKS <icon=\"far fa-search-location\">: In Ausführung (vor Ort Kontrollen)\n  - DONE <icon=\"far fa-check\">: Abgeschlossen\n  - DORMANT <icon=\"far fa-snooze\">: Ruhend\n\n[prioritaet]: Select\n  - NONE:\n  - LOW <icon=\"far fa-arrow-circle-down\" iconcolor=\"grey\">: Niedrig\n  - MEDIUM <icon=\"far fa-arrow-circle-right\">: Mittel\n  - HIGH <icon=\"far fa-arrow-circle-up\" iconcolor=\"red\">: Hoch\n \n{ref handle-selected-readonly ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df prominent-pick-command=45f20576-a049-4643-8ce1-181c856990ac hide-path}[Projektleiter (Junior)][projektleiter] {ref handle-selected-readonly ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df prominent-pick-command=45f20576-a049-4643-8ce1-181c856990ac hide-path}[Projektleiter (Senior)][leitenderProjektleiter]\n\n{ref handle-selected-readonly ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df prominent-pick-command=45f20576-a049-4643-8ce1-181c856990ac hide-path}[Objektplanung: Projektleiter][projektleiterObjektplanung] {ref handle-selected-readonly ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df prominent-pick-command=45f20576-a049-4643-8ce1-181c856990ac hide-path}[Tragwerksplanung: Projektleiter][projektleiterTragwerksplanung]\n\n\n\n{ref handle-selected-readonly ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df prominent-pick-command=45f20576-a049-4643-8ce1-181c856990ac hide-path}[Wärmeschutz: Projektleiter][projektleiterWaermeschutz] {ref handle-selected-readonly ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df prominent-pick-command=45f20576-a049-4643-8ce1-181c856990ac hide-path}[Nachhaltigkeit: Projektleiter][projektleiterNachhaltigkeit]\n\n\n\n{ref handle-selected-readonly ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df prominent-pick-command=45f20576-a049-4643-8ce1-181c856990ac hide-path}[Schallschutz: Projektleiter][projektleiterSchallschutz] {ref handle-selected-readonly ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df prominent-pick-command=45f20576-a049-4643-8ce1-181c856990ac hide-path}[Brandschutz: Projektleiter][projektleiterBrandschutz]\n\n\n\n{ref handle-selected-readonly ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df prominent-pick-command=45f20576-a049-4643-8ce1-181c856990ac hide-path}[TGA: Projektleiter][projektleiterTga] {ref handle-selected-readonly ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df prominent-pick-command=45f20576-a049-4643-8ce1-181c856990ac hide-path}[Sachverständige: Projektleiter][projektleiterSachverstaendige]\n\n\n\n\n[projektleiter]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 \"Der verantwortliche Mitarbeiter erhält verschiedene Projekt-Benachrichtigungen, beispielsweise wenn ein Kunde Dateien im Dokumenten Share hochlädt\"\n\n[leitenderProjektleiter]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 \"Ein hier verknüpfter Mitarbeiter ist rein für organisatorische Zwecke relevant\"\n\n\n\n[projektleiterObjektplanung]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 \"Ein hier verknüpfter Mitarbeiter ist rein für organisatorische Zwecke relevant\" \n\n\n[projektleiterTragwerksplanung]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 \"Ein hier verknüpfter Mitarbeiter ist rein für organisatorische Zwecke relevant\" \n\n\n\n[projektleiterWaermeschutz]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 \"Ein hier verknüpfter Mitarbeiter ist rein für organisatorische Zwecke relevant\" \n\n\n\n[projektleiterNachhaltigkeit]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 \"Ein hier verknüpfter Mitarbeiter ist rein für organisatorische Zwecke relevant\" \n\n\n[projektleiterSchallschutz]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 \"Ein hier verknüpfter Mitarbeiter ist rein für organisatorische Zwecke relevant\" \n\n[projektleiterBrandschutz]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 \"Ein hier verknüpfter Mitarbeiter ist rein für organisatorische Zwecke relevant\" \n\n[projektleiterTga]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 \"Ein hier verknüpfter Mitarbeiter ist rein für organisatorische Zwecke relevant\" \n\n[projektleiterSachverstaendige]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 \"Ein hier verknüpfter Mitarbeiter ist rein für organisatorische Zwecke relevant\" \n\n\n##\n\n{readonly|ref list-id=812a938b-e80f-4765-a04c-c65c270c9e95}\n[Planungen][vertraege]\n\n{multiline auto-grow}\n[Vertragsspezifische Besonderheiten][vertragsspezifischeBesonderheiten]\n\n// field 'bauherr' renamed to 'Auftraggeber' but only by label. Used in workflow/automatics\n{ref handle-selected-readonly ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path creation-location-form=eccbf3d6-5fc6-473a-8b81-3049bac700e4 on-creation-run-action=29b33a65-4a12-4a7b-ae65-ad61c11cb989}[Auftraggeber][bauherr] {ref handle-selected-readonly ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path creation-location-form=eccbf3d6-5fc6-473a-8b81-3049bac700e4 on-creation-run-action=29b33a65-4a12-4a7b-ae65-ad61c11cb989}[Bauherren][bauherren]\n[bauherr]: /f8fd3176-4995-455f-a8a8-d2742a836816\n[bauherren]: /f8fd3176-4995-455f-a8a8-d2742a836816 (0-n) \n\n{ref handle-selected-readonly ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path creation-location-form=eccbf3d6-5fc6-473a-8b81-3049bac700e4 on-creation-run-action=29b33a65-4a12-4a7b-ae65-ad61c11cb989}\n[Ansprechpartner][ansprechpartner]\n[ansprechpartner]: /f8fd3176-4995-455f-a8a8-d2742a836816 (0-n)\n\n{ref handle-selected-readonly ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path creation-location-form=eccbf3d6-5fc6-473a-8b81-3049bac700e4 on-creation-run-action=29b33a65-4a12-4a7b-ae65-ad61c11cb989}\n[Beteiligte][beteiligte]\n[beteiligte]: /f8fd3176-4995-455f-a8a8-d2742a836816 (0-n)\n\n{children}[Antragsteller][antragsteller] {children}[Kunde kommt von][empfehlungDurch]\n\n{children delete-on-remove}\n[Förderung][foerderungen]\n[foerderungen]: /7628f42e-260d-49b9-a2d6-30cb0973c1b6 (0-n)\n\n[antragsteller]: /125d3e08-d0c5-417c-b4fe-172bf5fade99 (0-n)\n[empfehlungDurch]: /da0f2915-48ea-45da-927b-640bb5173b96 (0-n)\n\n\n{multiline auto-grow}\n[Kundenspezifische Besonderheiten][kundenspezifischeBesonderheiten]\n\n{ref handle-selected-readonly ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Closer][closer]\n[closer]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n)\n\n#### Baustelle\n\n[Baubeginn/Zwischenordner][baubeginn] [Fertigstellung/Abschlussordner][fertigstellung]\n[baubeginn]: date\n[fertigstellung]: date\n\n[Baustellen Adresse][baustellenAdresse]\n[baustellenAdresse]: address\n\n{multiline auto-grow}\n[Beschreibung][beschreibung]\n\n[Wohneinheiten][wohneinheiten] [Heizungsart][heizungsart] [KfW][kfwKennziffer] [Nachweis][nachweis]\n\n[nachweis]: Select\n  - NONE: \n  - ENEV: EnEV\n  - GEG: GEG\n\n# Leistungen\n\n{children can-edit-command=817a417e-0254-4938-b77c-086c0a367257 no-dialog dialog-id=e8a391d2-872d-4b81-9a0f-743019756ffa only-template clone-template-with-elevated-rights template-location-form=089eb68f-d2ec-4e30-a3bb-6549d72932ec template-location-search-limit=1 forms=4862401e-e182-451c-a855-ef2e9b9441c5,fa3777b5-bfff-43ac-a5c5-ea15486dd334,11a327ee-c8e6-453a-bcdd-f585877f2fd8,9f8071fd-6f25-489e-8562-4399701546b0,281c6bd6-2e24-42ba-868e-b63cbba4254f,34d811a8-9de0-4b20-bc24-c55826a06748,03c16e2b-302e-4c2c-93c1-931679919e0b,2c01a15d-c14d-44c6-adc5-d9b3fdc692b7,328998fb-7e67-4fca-b40b-377d9a07776d,5ff471b3-1769-408b-825a-69d6416757c3,41da8494-ec0a-4b13-bad7-162f3f1fbba4,c97e431f-1d18-4f45-9915-591932d2cd23,873e5be1-18d7-47ae-9ea5-438bce403e61,5acb56fa-2bad-4e9b-8385-ab82c2562b47,81e1dec7-0c25-4694-9724-d1a86f8dc0db,cf2ae9d1-57f8-4604-887f-9bc97fe74495,1c428116-bc5b-4c71-8a84-0f7c50c2dbe6,748a3d2b-9bbb-4134-a09d-4a7797fdc639,680d9cf2-25de-4237-840d-64fb9e68b1a2,39a8e8f7-4840-4ffd-ad15-21fc5d56b277}\n[Leistungen][leistungen]\n[leistungen]: /ref (0-n)\n\n{readonly-if-command id=a127d2a2-d04b-406c-b9ed-a5b29f79f9fa control=children only-template clone-template-with-elevated-rights template-location-form=089eb68f-d2ec-4e30-a3bb-6549d72932ec template-location-search-limit=1 delete-on-remove confirm-remove inline inline-layout=2d3b9b80-0da6-4040-9806-3e0ae0595018 augment-fields=name,aufgaben,anhaenge,templates}\n[KFW][kfwEnev]\n[kfwEnev]: /4862401e-e182-451c-a855-ef2e9b9441c5 (0-n)\n\n{readonly-if-command id=a127d2a2-d04b-406c-b9ed-a5b29f79f9fa control=children only-template clone-template-with-elevated-rights template-location-form=089eb68f-d2ec-4e30-a3bb-6549d72932ec template-location-search-limit=1 delete-on-remove confirm-remove inline inline-layout=2d3b9b80-0da6-4040-9806-3e0ae0595018 augment-fields=name,aufgaben,anhaenge,templates}\n[ENEV][enev]\n[enev]: /fa3777b5-bfff-43ac-a5c5-ea15486dd334 (0-n)\n\n{readonly-if-command id=a127d2a2-d04b-406c-b9ed-a5b29f79f9fa control=children only-template clone-template-with-elevated-rights template-location-form=089eb68f-d2ec-4e30-a3bb-6549d72932ec template-location-search-limit=1 delete-on-remove confirm-remove inline inline-layout=2d3b9b80-0da6-4040-9806-3e0ae0595018 augment-fields=name,aufgaben,anhaenge,templates}\n[Energieausweis][energieausweis]\n[energieausweis]: /11a327ee-c8e6-453a-bcdd-f585877f2fd8 (0-n)\n\n{readonly-if-command id=a127d2a2-d04b-406c-b9ed-a5b29f79f9fa control=children only-template clone-template-with-elevated-rights template-location-form=089eb68f-d2ec-4e30-a3bb-6549d72932ec template-location-search-limit=1 delete-on-remove confirm-remove inline inline-layout=2d3b9b80-0da6-4040-9806-3e0ae0595018 augment-fields=name,aufgaben,anhaenge,templates}\n[Blower Door Test][blowerDoorTest]\n[blowerDoorTest]: /9f8071fd-6f25-489e-8562-4399701546b0 (0-n)\n\n{readonly-if-command id=a127d2a2-d04b-406c-b9ed-a5b29f79f9fa control=children only-template clone-template-with-elevated-rights template-location-form=089eb68f-d2ec-4e30-a3bb-6549d72932ec template-location-search-limit=1 delete-on-remove confirm-remove inline inline-layout=2d3b9b80-0da6-4040-9806-3e0ae0595018 augment-fields=name,aufgaben,anhaenge,templates}\n[Brandschutz][brandschutz]\n[brandschutz]: /281c6bd6-2e24-42ba-868e-b63cbba4254f (0-n)\n\n{readonly-if-command id=a127d2a2-d04b-406c-b9ed-a5b29f79f9fa control=children only-template clone-template-with-elevated-rights template-location-form=089eb68f-d2ec-4e30-a3bb-6549d72932ec template-location-search-limit=1 delete-on-remove confirm-remove inline inline-layout=2d3b9b80-0da6-4040-9806-3e0ae0595018 augment-fields=name,aufgaben,anhaenge,templates}\n[Brandschutzbauleitung][brandschutzbauleitung]\n[brandschutzbauleitung]: /34d811a8-9de0-4b20-bc24-c55826a06748 (0-n)\n\n{readonly-if-command id=a127d2a2-d04b-406c-b9ed-a5b29f79f9fa control=children only-template clone-template-with-elevated-rights template-location-form=089eb68f-d2ec-4e30-a3bb-6549d72932ec template-location-search-limit=1 delete-on-remove confirm-remove inline inline-layout=2d3b9b80-0da6-4040-9806-3e0ae0595018 augment-fields=name,aufgaben,anhaenge,templates}\n[Schallschutz][schallschutz]\n[schallschutz]: /03c16e2b-302e-4c2c-93c1-931679919e0b (0-n)\n\n{readonly-if-command id=a127d2a2-d04b-406c-b9ed-a5b29f79f9fa control=children only-template clone-template-with-elevated-rights template-location-form=089eb68f-d2ec-4e30-a3bb-6549d72932ec template-location-search-limit=1 delete-on-remove confirm-remove inline inline-layout=2d3b9b80-0da6-4040-9806-3e0ae0595018 augment-fields=name,aufgaben,anhaenge,templates}\n[Schallschutz Kontrollen][schallschutzKontrollen]\n[schallschutzKontrollen]: /2c01a15d-c14d-44c6-adc5-d9b3fdc692b7 (0-n)\n\n{readonly-if-command id=a127d2a2-d04b-406c-b9ed-a5b29f79f9fa control=children only-template clone-template-with-elevated-rights template-location-form=089eb68f-d2ec-4e30-a3bb-6549d72932ec template-location-search-limit=1 delete-on-remove confirm-remove inline inline-layout=2d3b9b80-0da6-4040-9806-3e0ae0595018 augment-fields=name,aufgaben,anhaenge,templates}\n[Schallschutzmessung][schallschutzmessung]\n[schallschutzmessung]: /328998fb-7e67-4fca-b40b-377d9a07776d (0-n)\n\n{readonly-if-command id=a127d2a2-d04b-406c-b9ed-a5b29f79f9fa control=children only-template clone-template-with-elevated-rights template-location-form=089eb68f-d2ec-4e30-a3bb-6549d72932ec template-location-search-limit=1 delete-on-remove confirm-remove inline inline-layout=2d3b9b80-0da6-4040-9806-3e0ae0595018 augment-fields=name,aufgaben,anhaenge,templates}\n[Simulation (jeweils separat)][simulation]\n[simulation]: /5ff471b3-1769-408b-825a-69d6416757c3 (0-n)\n\n{readonly-if-command id=a127d2a2-d04b-406c-b9ed-a5b29f79f9fa control=children only-template clone-template-with-elevated-rights template-location-form=089eb68f-d2ec-4e30-a3bb-6549d72932ec template-location-search-limit=1 delete-on-remove confirm-remove inline inline-layout=2d3b9b80-0da6-4040-9806-3e0ae0595018 augment-fields=name,aufgaben,anhaenge,templates}\n[Architektur][architektur]\n[architektur]: /41da8494-ec0a-4b13-bad7-162f3f1fbba4 (0-n)\n\n{readonly-if-command id=a127d2a2-d04b-406c-b9ed-a5b29f79f9fa control=children only-template clone-template-with-elevated-rights template-location-form=089eb68f-d2ec-4e30-a3bb-6549d72932ec template-location-search-limit=1 delete-on-remove confirm-remove inline inline-layout=2d3b9b80-0da6-4040-9806-3e0ae0595018 augment-fields=name,aufgaben,anhaenge,templates}\n[Wohngebäude (Sanierung)][wohngebaeudeSanierung]\n[wohngebaeudeSanierung]: /c97e431f-1d18-4f45-9915-591932d2cd23 (0-n)\n\n{readonly-if-command id=a127d2a2-d04b-406c-b9ed-a5b29f79f9fa control=children only-template clone-template-with-elevated-rights template-location-form=089eb68f-d2ec-4e30-a3bb-6549d72932ec template-location-search-limit=1 delete-on-remove confirm-remove inline inline-layout=2d3b9b80-0da6-4040-9806-3e0ae0595018 augment-fields=name,aufgaben,anhaenge,templates}\n[Nichtwohngebäude (Sanierung/Umbau)][nichtWohngebaeudeSanierung]\n[nichtWohngebaeudeSanierung]: /873e5be1-18d7-47ae-9ea5-438bce403e61 (0-n)\n\n{readonly-if-command id=a127d2a2-d04b-406c-b9ed-a5b29f79f9fa control=children only-template clone-template-with-elevated-rights template-location-form=089eb68f-d2ec-4e30-a3bb-6549d72932ec template-location-search-limit=1 delete-on-remove confirm-remove inline inline-layout=2d3b9b80-0da6-4040-9806-3e0ae0595018 augment-fields=name,aufgaben,anhaenge,templates}\n[Wohngebäude (Neubau)][wohngebaeudeNeubau]\n[wohngebaeudeNeubau]: /5acb56fa-2bad-4e9b-8385-ab82c2562b47 (0-n)\n\n{readonly-if-command id=a127d2a2-d04b-406c-b9ed-a5b29f79f9fa control=children only-template clone-template-with-elevated-rights template-location-form=089eb68f-d2ec-4e30-a3bb-6549d72932ec template-location-search-limit=1 delete-on-remove confirm-remove inline inline-layout=2d3b9b80-0da6-4040-9806-3e0ae0595018 augment-fields=name,aufgaben,anhaenge,templates}\n[Nichtwohngebäude (Neubau)][nichtWohngebaeudeNeubau]\n[nichtWohngebaeudeNeubau]: /81e1dec7-0c25-4694-9724-d1a86f8dc0db (0-n)\n\n{readonly-if-command id=a127d2a2-d04b-406c-b9ed-a5b29f79f9fa control=children only-template clone-template-with-elevated-rights template-location-form=089eb68f-d2ec-4e30-a3bb-6549d72932ec template-location-search-limit=1 delete-on-remove confirm-remove inline inline-layout=2d3b9b80-0da6-4040-9806-3e0ae0595018 augment-fields=name,aufgaben,anhaenge,templates}\n[Elektrotechnik (ELT)][elektrotechnik]\n[elektrotechnik]: /cf2ae9d1-57f8-4604-887f-9bc97fe74495 (0-n)\n\n{readonly-if-command id=a127d2a2-d04b-406c-b9ed-a5b29f79f9fa control=children only-template clone-template-with-elevated-rights template-location-form=089eb68f-d2ec-4e30-a3bb-6549d72932ec template-location-search-limit=1 delete-on-remove confirm-remove inline inline-layout=2d3b9b80-0da6-4040-9806-3e0ae0595018 augment-fields=name,aufgaben,anhaenge,templates}\n[Heizung, Lüftung, Sanitär (HLS)][heizungLueftungSanitaer]\n[heizungLueftungSanitaer]: /1c428116-bc5b-4c71-8a84-0f7c50c2dbe6 (0-n)\n\n{readonly-if-command id=a127d2a2-d04b-406c-b9ed-a5b29f79f9fa control=children only-template clone-template-with-elevated-rights template-location-form=089eb68f-d2ec-4e30-a3bb-6549d72932ec template-location-search-limit=1 delete-on-remove confirm-remove inline inline-layout=2d3b9b80-0da6-4040-9806-3e0ae0595018 augment-fields=name,aufgaben,anhaenge,templates}\n[Tragwerksplanung][tragwerksplanung]\n[tragwerksplanung]: /748a3d2b-9bbb-4134-a09d-4a7797fdc639 (0-n)\n\n{readonly-if-command id=a127d2a2-d04b-406c-b9ed-a5b29f79f9fa control=children only-template clone-template-with-elevated-rights template-location-form=089eb68f-d2ec-4e30-a3bb-6549d72932ec template-location-search-limit=1 delete-on-remove confirm-remove inline inline-layout=2d3b9b80-0da6-4040-9806-3e0ae0595018 augment-fields=name,aufgaben,anhaenge,templates}\n[Nachhaltigkeit][nachhaltigkeit]\n[nachhaltigkeit]: /680d9cf2-25de-4237-840d-64fb9e68b1a2 (0-n)\n\n{readonly-if-command id=a127d2a2-d04b-406c-b9ed-a5b29f79f9fa control=children only-template clone-template-with-elevated-rights template-location-form=089eb68f-d2ec-4e30-a3bb-6549d72932ec template-location-search-limit=1 delete-on-remove confirm-remove inline inline-layout=2d3b9b80-0da6-4040-9806-3e0ae0595018 augment-fields=name,aufgaben,anhaenge,templates}\n[Sachverständige][sachverstaendige]\n[sachverstaendige]: /39a8e8f7-4840-4ffd-ad15-21fc5d56b277 (0-n)\n\n\n# Aufgaben\n\n{children navigate delete-on-remove handle-selected-readonly new-command=d1ec65ef-1ea8-47a6-9d7b-462475e56917 can-edit-command=095e681f-d939-4f7d-b56c-3f88cdcf1d54}\n[Aufgaben][aufgaben]\n[aufgaben]: /0deb4864-cbb6-420c-99ee-337c7444ab24 (0-n)\n\n# Korrespondenz\n\n{mails}\n[Mailverlauf][mails]\n[mails]: /59b7188e-1296-4466-a9c2-d6255496e7d6 (0-n)\n\n{children navigate new-command=9bd348a7-3631-4319-8c00-83680b5c49cd disable-remove handle-selected-readonly}\n[Formulare versenden][formulare]\n[formulare]: /5152f88f-3006-46f9-959a-423139accf79 (0-n)\n\n\n{children navigate new-command=8bad86c6-45e2-4db4-9e1f-ec4e9f33756b disable-remove handle-selected-readonly}\n[Gesprächsnotizen][gespraechsnotizen]\n[gespraechsnotizen]: /8d8f6fdb-6f78-4e2a-b585-bd80f4dbaa1d (0-n)\n\n# Dokumente\n\n{children navigate new-command=c24e77dc-3fa7-454d-b31d-764f5511a1e9 disable-remove handle-selected-readonly}\n[Dokumenten Shares][dokumentenShares]\n[dokumentenShares]: /c6349b48-9561-4c06-9200-fe9df9b6fb3e (0-n)\n\n{hidden if dmsOrdner.id|children no-dialog new-command=b40f35ae-8b1f-44e6-80f1-c5ab853f8be0}\n[Dateien][dmsOrdner]\n\n{show if dmsOrdner.id|page}\n[Dateien][dmsOrdner]\n[dmsOrdner]: /a04c8913-db48-4e80-b20d-0f3cc17a778c\n\n# Teambesprechungen\n\n{children navigate new-command=2163cdf3-f74b-4fad-aa23-156ec198aecf handle-selected-readonly initial-sort-field=data.date initial-sort-descending add-to-beginning collapse-after=20}\n[Teambesprechungen][protokolle]\n[protokolle]: /d16936c1-7ccc-40f1-b526-d2d9ce37ebd2 (0-n)\n\n# Verträge\n\n{children navigate new-command=bc15391d-9df8-41f6-af5a-daeb4c237eff disable-remove handle-selected-readonly}\n[Verträge][vertraege]\n[vertraege]: /fec93a80-86e6-4ccb-a473-14046bd4336e (0-n)\n","description":"","functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Projekt","namedIcon":"fa fa-clipboard-list","namedIconColor":"","tags":"","theme":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"42ef1fd37c206edb"},"id":"98c77209-1245-43d6-90b5-8625183f470c","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2026-04-16T10:19:32+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"p":"f254ce25-42f1-4333-8ee7-23554bf746c1","previous":{"v":"bd0023a3d73b2240"},"stamps":[],"t":1776334772305,"v":"a262ca19bc823e46"},{"id":"34c80ca6-34a4-48e8-abdd-d9b13ff25cff","v":"fd2d6bde8ca29cf9","previous":{"v":"62dc30e2b788360b"},"p":"15292d56-6806-4263-b6d0-9194687203e1","f":{"id":"form","v":"42ef1fd37c206edb","text":"Form"},"data":{"name":"Grundriss","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Titel][name]\n\n{file types=image/* file-name-to-field=name}\n[Bild-Datei][datei]\n[datei]: file \"Beim Ersetzen der Datei bleiben die gezeichneten Shapes des Grundrisses vorhanden.<br> Wird die Datei mit den gleichen Pixel-Maßen hinzugefügt, so ist eine Weiternutzung der Shapes unter Umständen möglich.\"\n\n[Größe Text][textFontSize]\n[textFontSize]: number\n\n{color}\n[Farbe Text][textFontColor]\n\n\n{hidden|json}\n[Areas][areas]\n[areas]: text\n\n","functions":"","allowedChildrenForms":[],"commands":[],"description":"","theme":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2022-04-21T12:43:30+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-09-22T14:31:12+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1663857072406,"ct":1650545010405,"a_depth":3,"a":["apps","86189c5a-b9f4-445a-879f-d94574960df0","15292d56-6806-4263-b6d0-9194687203e1"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1675265132219},{"id":"fb9f3c56-8bcf-43d4-a0d7-2a303791e90a","v":"initial","p":"dbd0bd68-3479-4032-9303-9d51615c27a7","f":{"id":"form","v":"b0b1f4808edd7503","text":"Form"},"data":{"name":"Device","tags":"","definition":"{150px}[Serial Number][serialNumber] {200px}[Manufacturing Date][mfgDate] [Device Label][deviceLabel] [Bios battery checked][biosBatteryChecked] [BIOS updated to 1205][bios1205] [Date/Time checked][biosDateTimeChecked] [BIOS configured][biosConfigured]  \r\n\r\n[bios1205]: Switch\r\n[biosConfigured]: Switch\r\n[biosDateTimeChecked]: Switch\r\n[biosBatteryChecked]: Switch \r\n\r\n{hidden}[Name][name]\r\n[name]:= 'Vitegra ' + serialNumber\r\n\r\n{disabled if !serialNumber}\r\n{manufacturing:label name=\"Label_CU_$Serial$.ezpx\" template=f2714d3c-6862-4a07-8548-3ff90a157b13 replace-serial=serialNumber replace-date=mfgDate}\r\n[deviceLabel]: File\r\n\r\n{disabled if !tabletSerialNumber}\r\n{manufacturing:label name=\"Label_Tablet_$Serial$.ezpx\" template=c200292c-8506-4409-b4a5-e59c819ef273 replace-serial=tabletSerialNumber}\r\n[tabletLabel]: File\r\n\r\n{150px}[Tablet Serial][tabletSerialNumber] [Tablet Label][tabletLabel]\r\n\r\n[Teamviewer][teamviewerId] {teamviewer}[Open][teamviewerId]\r\n\r\n[mfgDate]: Date\r\n\r\n{children}\r\n[Activations][activations]\r\n[activations]: /2cb914fb-782c-4311-9b34-1734e523816f (0-n)\r\n\r\n[Tablet][tablet]\r\n[tablet]: Ref\r\n\r\n# Factory State\r\n\r\n[Image Version][factoryImageVersion] [Vitegra Version][factoryVitegraVersion]\r\n\r\n### Components \r\n{vitegra:device-components}\r\n\r\n### Tests\r\n{vitegra:device-tests}\r\n\r\n# Service\r\n\r\n[Tickets][tickets]\r\n[tickets]: Ref (0-n)\r\n\r\n# Repairs\r\n\r\n{children}\r\n[][repairs]\r\n[repairs]: /f2d3802e-dc21-4ea9-9e26-a275487110ae (0-n)\r\n\r\n# Components\r\n\r\n{component-list}\r\n[Components][components]\r\n[components]: /0a401e72-7ef0-40f4-ac90-360b8694a2aa (0-n)\r\n\r\n- Defekte markieren (an Reperatur)\r\n\r\n# Comments\r\n{editor}\r\n[][factoryComments]\r\n","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2021-11-02T09:38:40+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-11-02T09:38:40+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1635845920200,"ct":1635845920199,"a_depth":3,"a":["apps","781ff5de-69db-49dc-99f0-f328b308cd7d","dbd0bd68-3479-4032-9303-9d51615c27a7"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1635845920255},{"id":"cad45fd2-d641-4ff8-b38c-342e53533a23","v":"initial","p":"dbd0bd68-3479-4032-9303-9d51615c27a7","f":{"id":"form","v":"a241685be918720e","text":"Form"},"data":{"name":"Device Setup","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Identifier][name]\r\n\r\n[Components][components]\r\n[components]: /6e89617c-ecdd-4a84-b944-e18b610c7d75 (0-n)\r\n\r\n[Assigned Device][device]\r\n[device]: /fb9f3c56-8bcf-43d4-a0d7-2a303791e90a\r\n\r\n{multiline}\r\n[Comment][comment]","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2021-11-02T09:38:38+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-11-02T09:38:38+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1635845918489,"ct":1635845918488,"a_depth":3,"a":["apps","781ff5de-69db-49dc-99f0-f328b308cd7d","dbd0bd68-3479-4032-9303-9d51615c27a7"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1635845918539},{"id":"53eecc66-c1a1-47da-b9df-67cc2b8b60f5","v":"9f548e4869a70d46","previous":{"v":"4d53b9024202e49f"},"p":"b9b17d13-b861-425a-9c17-d27d18d5be06","f":{"id":"form","v":"cc65f983157bf1fd","text":"Form"},"data":{"name":"Wiedervorlage","tags":"","namedIcon":"fa fa-bell","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"{hidden}\n[Name][name]\n[name] := functions.name(date, DateTime)\n\n{readonly}[Was][document] [Wann][date]\n\n[document]: /ref\n[date]: date <required>\n\n{multiline auto-grow=true}\n[Notiz][note]\n","functions":"name(date, DateTime) {\n  if (date) {\n    const formattedDate = DateTime.fromISO(date, { setZone: true }).toFormat('dd.MM.yyyy')\n    return `Wiedervorlage am ${formattedDate}`\n  }\n\n  return 'Wiedervorlage'\n}","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2020-04-23T07:47:31+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2023-08-16T13:49:23+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1692193763637,"ct":1643273367436,"a_depth":3,"a":["apps","8884dd6d-4320-4de2-91fe-6777ecfebec9","b9b17d13-b861-425a-9c17-d27d18d5be06"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1692186558804},{"id":"95287cc8-9e7d-43c6-98c6-1fd1a61bb3b2","v":"initial","p":"dbd0bd68-3479-4032-9303-9d51615c27a7","f":{"id":"form","v":"a241685be918720e","text":"Form"},"data":{"name":"Test Definition","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Name][name]\r\n\r\n{editor}\r\n[Description][description]\r\n\r\n{children}\r\n[Steps][steps]\r\n[steps]: /4655f3fe-c599-486e-b16b-cd137f6ddac4 (0-n)\r\n\r\n[Custom Protocol][protocol]\r\n[protocol]: /form\r\n  data.tags: 'test-protocol'","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2021-11-02T09:38:38+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-11-02T09:38:38+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1635845918817,"ct":1635845918817,"a_depth":3,"a":["apps","781ff5de-69db-49dc-99f0-f328b308cd7d","dbd0bd68-3479-4032-9303-9d51615c27a7"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1635845918872},{"id":"28809343-ab75-46e1-974a-74e6f40a2fd1","v":"initial","p":"dbd0bd68-3479-4032-9303-9d51615c27a7","f":{"id":"form","v":"a241685be918720e","text":"Form"},"data":{"name":"Test Protocol","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Name][name]\r\n\r\n[Performed By][performedBy]\r\n[performedBy]: Select\r\n  - SEIFERT: Christian Seifert\r\n  - GALL: Harald Gall\r\n  - GOETZKE: Matthias Götzke\r\n\r\n[Definition][definition]\r\n[definition]: /95287cc8-9e7d-43c6-98c6-1fd1a61bb3b2\r\n\r\n[Device][device]\r\n[device]: /fb9f3c56-8bcf-43d4-a0d7-2a303791e90a\r\n\r\n{children}\r\n[Steps][steps]\r\n[steps]: /ce9d42b0-197e-4d60-90a4-daee72c20939 (0-n)\r\n\r\n[Custom Protocol][protocol]\r\n[protocol]: ref","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2021-11-02T09:38:38+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-11-02T09:38:38+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1635845918987,"ct":1635845918986,"a_depth":3,"a":["apps","781ff5de-69db-49dc-99f0-f328b308cd7d","dbd0bd68-3479-4032-9303-9d51615c27a7"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1635845919045},{"a":["apps","0924db0f-7095-4b51-8966-bad1e45d68ec","a3b935e7-60bc-4996-9b18-668e4361067f"],"a_depth":3,"a_forms":["folder","application-form","form-folder"],"created":{"at":"2020-10-26T15:35:04+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1603726504026,"data":{"allowedChildrenForms":[],"commands":[],"definition":"[name]:= titel\n\n{readonly if abgerechnet}[Beschreibung][titel] {readonly if abgerechnet|now}[Datum][datum] {readonly if abgerechnet|switch appearance=toggle}[Abrechenbar][abrechenbar]\n[datum]: date\n\n[abrechenbar]: switch\n\n{readonly if abgerechnet|select icon_PAUSCHALE=\"far fa-coin\" icon_MATERIAL=\"far fa-boxes\" icon_ENTFERNUNG=\"far fa-car\"}\n[Typ][typ]\n[typ]: Select\n  - ENTFERNUNG: km (Entfernung)\n  - MATERIAL: Material\n  - PAUSCHALE: Pauschale\n\n{show if typ}\n####### \n\n{readonly if abgerechnet|show if typ === 'PAUSCHALE'}\n[Menge][menge]\n\n{readonly if abgerechnet|show if typ === 'MATERIAL'}\n[Menge][menge]\n\n{readonly if abgerechnet|show if typ === 'ENTFERNUNG'}\n[Entfernung][menge]\n\n\n[menge]: number\n[abgerechnet]: switch\n\n\n{show if abgerechnet|readonly}\n[Abgerechnet mit Position][abrechnungsPosition]\n[abrechnungsPosition]: /a40633b4-c769-4457-a267-830738d4b549\n  ","description":"","functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Abzurechnende Position","namedIcon":"","namedIconColor":"","tags":""},"f":{"id":"form","text":"Form","v":"24ab84939535fdcd"},"id":"651d8603-6d29-4534-be59-4449387e857c","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2025-03-04T16:32:25+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"a3b935e7-60bc-4996-9b18-668e4361067f","previous":{"v":"b4a26000207e2ca4"},"stamps":[],"t":1741105945035,"v":"ff9b4c70661e29e4"},{"id":"ddaa6921-770e-4a73-b8a4-b4a99abed24b","v":"729003d1d52d69cc","previous":{"v":"initial"},"p":"9b5518e5-c3ea-4446-9dc8-8628d8e8fabe","f":{"id":"form","v":"1e9a838fc83ef93c","text":"Form"},"data":{"name":"Notification Request Form","tags":"","definition":"[Title][name]\n\n[Accounts][accounts]\n[accounts]: /account (0-n)\n\n[Auslösender Account][who]\n[who]: /account\n\n[App][app]\n[app]: /application-form\n\n[Category][category]\n[category]: /form\n\n[Document][document]\n[document]: /ref\n\n[Content][content]","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2019-09-19T08:19:10+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2020-10-13T10:18:50+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1602584330829,"ct":1568881150061,"a_depth":3,"a":["apps","c9b12874-99d0-40e8-86cc-c3fe0477a15a","9b5518e5-c3ea-4446-9dc8-8628d8e8fabe"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1653490524175},{"id":"32db2e83-2e88-4162-b680-698423aef2c3","v":"aa87a3e3f4a3d4ee","p":"e25401a7-eca4-4c53-a20e-b30df594d3a7","f":{"id":"form","v":"230b4040236561b6","text":"Form"},"data":{"name":"Arbeitszeit","tags":"","allowUndefinedFields":false,"definition":"{datetime}[Von][von] {datetime}[Bis][bis]\n\n[Pause][pause]\n[pause]: duration\n\n[von]: date \n[bis]: date\n\n[datum]: date = functions.tag(DateTime, von, bis)\n\n{readonly|duration}\n[Gesamte Arbeitszeit][dauer]\n[dauer]: duration = functions.duration(DateTime, DateTimeDuration, von, bis, pause) ","functions":"tag(DateTime, von, bis) {\n  if (!von) {\n    return ''\n  }\n\n  return DateTime.fromISO(von).toFormat(\"yyyy-LL-dd\")\n} \n\n\nduration(DateTime, DateTimeDuration, von, bis, pauseParam) {\n  if (!von || !bis) {\n    return {}\n  }\n\n  const pause = pauseParam ? DateTimeDuration.fromObject(pauseParam) : {}\n  const vonDateTime = DateTime.fromISO(von)\n  return DateTime.fromISO(bis).diff(vonDateTime).minus(pause).toObject()\n}   ","relatedDocuments":[],"defaults":"","newTemplate":{"id":"","v":"","text":""},"newAction":{"id":"","v":"","text":""},"allowedChildrenForms":[],"commands":[],"descendantCommands":[],"to":[],"from":[],"namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"","v":"","text":""},"description":""},"locks":[],"created":{"at":"2022-03-17T12:28:14+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-03-17T15:28:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1740666014586,"ct":1740666014586,"a_depth":3,"a":["apps","0c440c7a-219d-4465-9cbe-2d0eff6ec7ad","e25401a7-eca4-4c53-a20e-b30df594d3a7"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"previous":{"v":"cc33074dd32c8442","f":{"id":"form","v":"12ceedaed4c81b21","text":"Form"}},"meta":{"modified":{"at":"2025-02-27T14:20:14+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"f9279010-1935-4139-abbb-82d928aa09dc","v":"b39e7d33590c851b","p":"e25401a7-eca4-4c53-a20e-b30df594d3a7","f":{"id":"form","v":"230b4040236561b6","text":"Form"},"data":{"name":"Erfasste Zeit","tags":"","allowUndefinedFields":false,"definition":"{readonly if abgerechnet}[Titel][name] {readonly if abgerechnet|switch appearance=toggle}[Abrechenbar][abrechenbar]\n[abrechenbar]: switch\n \n{readonly if abgerechnet|multiline auto-grow=true}\n[Beschreibung][beschreibung]\n\n{readonly if abgerechnet}\n[Tag][tag]\n[tag]: date\n\n[datum]: date = tag\n\n{readonly if abgerechnet|duration format=\"dd:hh:mm\"}\n[Dauer][dauer]\n[dauer]: duration \n \n\n[abgerechnet]: switch\n\n{show if abrechnungsPosition.id|readonly}\n[Abgerechnet mit Position][abrechnungsPosition]\n[abrechnungsPosition]: /a40633b4-c769-4457-a267-830738d4b549 ","functions":"","relatedDocuments":[],"defaults":"","newTemplate":{"id":"","v":"","text":""},"newAction":{"id":"","v":"","text":""},"allowedChildrenForms":[],"commands":[],"descendantCommands":[],"to":[],"from":[],"namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"","v":"","text":""},"description":""},"locks":[],"created":{"at":"2019-05-14T07:30:12+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2025-02-13T10:56:58+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1740666014594,"ct":1740666014594,"a_depth":3,"a":["apps","0c440c7a-219d-4465-9cbe-2d0eff6ec7ad","e25401a7-eca4-4c53-a20e-b30df594d3a7"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"previous":{"v":"096b056ced3d4f5d","f":{"id":"form","v":"8c1496d16c344c2e","text":"Form"}},"meta":{"modified":{"at":"2025-02-27T14:20:14+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"a":["apps","14c27659-92d7-4b43-8c4f-25f4cceae591","2e759bfa-c685-48e8-81b4-cec70e93c521"],"a_depth":3,"a_forms":["folder","application-form","form-folder"],"cloneOf":{"id":"97902782-7315-4837-94fc-8e080c6cfbf3","text":"Ping","v":"8801cc0f7c45c83e"},"created":{"at":"2022-01-03T14:26:38+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1641219998568,"data":{"allowedChildrenForms":[],"commands":[],"definition":"{readonly}\n[Titel][name]\n\n{readonly}\n[Dokument][document]\n[document]: /ref\n\n{ref hide-path=true ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true forms=group,d2ac3563-3c3f-4f02-b923-9b67abf98d10 add-transform-command=8ae71ffe-d516-4781-9621-33cb2b1f0d09}\n[Emfänger][receiver]\n[receiver]: /ref (0-n)\n\n{hidden}\n[Auslösender Account][who]\n[who]: /account\n\n{hidden}\n[Inhalt (HTML)][contentHtml]\n\n{editor-comment html-to=contentHtml}\n[Inhalt][content]\n\n{hidden}\n[Referenced documents][references]\n[references]: ref (0-n)\n\n[name]: = functions.shortenContent(content, 45)","description":"","functions":"shortenContent(content, maxLength) {\n  if (!content || content[0] !== '{') {\n    return ''\n  }\n  \n  let resultingText = ''\n\n  const data = JSON.parse(content)\n\n  if (!('content' in data)) {\n    return resultingText\n  }\n\n  for (const paragraph of data.content) {\n    if (paragraph.type !== 'paragraph' || !paragraph.content) {\n      continue\n    }\n\n    for (const content of paragraph.content) {\n      if (content.type !== 'text') {\n        continue\n      }\n\n      resultingText += ' ' + content.text\n\n      if (resultingText.length >= maxLength) {\n        return resultingText.substr(0, maxLength).trim() + '...'\n      }\n    }\n  }\n\n  return resultingText.trim()\n}","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Ping","namedIcon":"fa fa-comment-plus","namedIconColor":"","tags":""},"f":{"id":"form","text":"Form","v":"cc65f983157bf1fd"},"id":"42cf6e7a-e304-49a6-86e1-c94d84f1d0d9","inheritedLocks":[null,null,null,null],"locks":[],"meta":{"modified":{"at":"2025-10-16T11:16:46+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null}},"modified":{"at":"2024-03-11T14:51:48+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"97902782-7315-4837-94fc-8e080c6cfbf3","text":"Ping","v":"8801cc0f7c45c83e"},"p":"2e759bfa-c685-48e8-81b4-cec70e93c521","previous":{"a":["apps","c9b12874-99d0-40e8-86cc-c3fe0477a15a","9b5518e5-c3ea-4446-9dc8-8628d8e8fabe"],"a_forms":["folder","application-form","form-folder"],"p":"9b5518e5-c3ea-4446-9dc8-8628d8e8fabe","v":"3ec0ea40a24be7bd"},"stamps":[],"t":1760613406991,"v":"7af75bd7d25b92b5"},{"id":"3f20614c-6274-4bb2-bd92-fde0ec668306","v":"initial","previous":{"v":""},"p":"35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f","f":{"id":"form","v":"af06aca6217d20c5","text":"Form"},"data":{"name":"Zählerstand","description":"","definition":"[Zählerstand][zaehlerstand]\n\n[Foto][foto]\n\n[zaehlerstand]: Number\n[foto]: File\n","functions":"","semver":"4.0.2","allowedChildrenForms":[],"layout":{"id":"","v":"","text":""},"color":{"id":"","v":null,"text":""},"iconName":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null}},"applicationLayoutOptions":{"id":"","v":"0","text":""},"documentLayoutOptions":{"id":"","v":"0","text":""}},"locks":[],"lockRefs":[],"created":{"at":"2018-02-06T09:45:07+01:00","by":"","from":"","client":"server"},"modified":{"at":"2018-02-06T09:45:07+01:00","by":"","from":"","client":"server"},"t":1517906707544,"ct":1517906707544,"a_depth":3,"a":["apps","b791df37-6eef-4a3e-9066-1b79e0bdad31","35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1517906899218},{"id":"b42192cd-f547-4531-8fd2-1ecd7ecff581","v":"1227c1e1416f52a0","previous":{"v":"b8dba67831b776ae"},"p":"35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f","f":{"id":"form","v":"8c1496d16c344c2e","text":"Form"},"data":{"name":"Geschädigter","tags":"","definition":"{55}[Name][name] {15}[Wohneinheit][wohneinheit] {30}[Telefon][telefon]\n\n# Fotos\n\n{photos bild=[bild] overlay=[overlay]}\n[Bild Anhänge][bilder]\n\n[bilder]: /c3fcbfa9-f948-483b-a706-afcdf2ca1fa6 (0-n)\n\n# Maßnahmen\n\n{select keep-open-after-selection=true}\n[Notwendige Maßnahmen][massnahmen]\n\n{multiline}\n[Kommentar][massnahmenKommentar]\n\n[massnahmen]: Select (0-n)\n  - Ortung\n  - Trocknung\n  - Rekonstruktion\n  - Reinigung\n  - Sanierung\n  - Sonstiges\n\n[massnahmenKommentar]: Text\n\n# Räume\n\n{children}\n[Betroffene Räume][raeume]\n[raeume]: /e564926e-298f-4656-b500-6526d403cebc (0-n)\n\n# Geräte\n\n{children}\n[Aufgestellte Trockner][geraetezaehlerstaende]\n[geraetezaehlerstaende]: /fc3d1b75-fb96-469b-b92c-c51358404252 (0-n)\n\n\n# Protokolle\n\n{children}\n[Abnahmeprotokolle][protokolle]\n[protokolle]:/b8604959-a785-48cd-8ff4-e886afb38d1d (0-n)\n","functions":"","allowedChildrenForms":[],"description":""},"locks":[],"created":{"at":"2019-05-03T14:03:51+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2019-05-03T14:03:51+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1556885031015,"ct":1556885031014,"a_depth":3,"a":["apps","b791df37-6eef-4a3e-9066-1b79e0bdad31","35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1517906796946},{"id":"6d777b4e-0f5f-4dbf-a642-31e2a3ef4dbc","v":"010bb10fa1b34948","previous":{"v":"initial"},"p":"35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f","f":{"id":"form","v":"af06aca6217d20c5","text":"Form"},"data":{"name":"Objekt","description":"","definition":"[Name][name]\n\n# Ort\n\n[Ort][ort]\n\n{map}\n[Ort][ort]\n\n[Hausmeister][hausmeister] [Telefon][hTelefon]\n\n[ort]: Address\n\n# Wohneinheiten\n\n{children}\n[Wohneinheiten][wohneinheiten]\n\n[wohneinheiten]: /61936050-38b7-426c-a7a1-994c750d3af8 (0-n)\n\n","functions":"","semver":"1.1.5","allowedChildrenForms":[],"layout":{"id":"","v":"","text":""},"color":{"id":"","v":"0","text":""},"iconName":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null}},"applicationLayoutOptions":{"id":"","v":"0","text":""},"documentLayoutOptions":{"id":"","v":"0","text":""}},"locks":[],"created":{"at":"2018-02-06T09:44:43+01:00","by":"","from":"","client":"server"},"modified":{"at":"2018-02-21T09:52:41+01:00","by":"","from":"","client":"server"},"t":1519203161415,"ct":1517906683093,"a_depth":3,"a":["apps","b791df37-6eef-4a3e-9066-1b79e0bdad31","35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1517906832777},{"id":"61936050-38b7-426c-a7a1-994c750d3af8","v":"initial","previous":{"v":""},"p":"35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f","f":{"id":"form","v":"af06aca6217d20c5","text":"Form"},"data":{"name":"Wohneinheit","description":"","definition":"[Hausnr][hnr] {80}[Wohneinheit][name]\n\n## Mieter\n[Name][mieter] [Telefon][mTelefon]\n\n[Email][mEmail]\n\n## Eigentümer\n\n[Eigentümer][eigentuemer]\n[eigentuemer]: /Apps/Forms/Gilbrin/Eigentuemer ","functions":"","semver":"3.0.0","allowedChildrenForms":[],"layout":{"id":"","v":"","text":""},"color":{"id":"","v":"0","text":""},"iconName":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null}},"applicationLayoutOptions":{"id":"","v":"0","text":""},"documentLayoutOptions":{"id":"","v":"0","text":""}},"locks":[],"lockRefs":[],"created":{"at":"2018-02-06T09:45:05+01:00","by":"","from":"","client":"server"},"modified":{"at":"2018-02-06T09:45:05+01:00","by":"","from":"","client":"server"},"t":1517906705261,"ct":1517906705260,"a_depth":3,"a":["apps","b791df37-6eef-4a3e-9066-1b79e0bdad31","35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1517906891843},{"id":"154d8541-9206-4a15-9245-5198b150d7cb","v":"98e85455ca1f204a","previous":{"v":"dac025fad30d309a","f":{"id":"form","v":"af06aca6217d20c5","text":"Form"}},"p":"35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f","f":{"id":"form","v":"8c1496d16c344c2e","text":"Form"},"data":{"name":"Versicherungsgesellschaft","tags":"","definition":"[Name][name] [Telefon][telefonnummer]\n\n{map}[Anschrift][addresse]\n[][addresse]\n[addresse]: Address\n\n[Ansprechpartner][ansprechpartner] [Telefon][ansprechpartnerTelefon]\n","functions":"","allowedChildrenForms":[],"description":""},"locks":[],"created":{"at":"2019-04-02T11:54:14+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2020-10-13T10:18:41+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1602584321702,"ct":1554206054597,"a_depth":3,"a":["apps","b791df37-6eef-4a3e-9066-1b79e0bdad31","35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1517906889222},{"id":"0a46aebe-e1fd-4f0e-bf20-4974cec7b03c","v":"initial","previous":{"v":""},"p":"35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f","f":{"id":"form","v":"af06aca6217d20c5","text":"Form"},"data":{"name":"Telefonnummer","description":"","definition":"[Telefonnumer][telefonnummer] [Kommentar][kommentar]","functions":"","semver":"1.0.1","allowedChildrenForms":[],"layout":{"id":"","v":"","text":""},"color":{"id":"","v":null,"text":""},"iconName":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null}},"applicationLayoutOptions":{"id":"","v":"0","text":""},"documentLayoutOptions":{"id":"","v":"0","text":""}},"locks":[],"lockRefs":[],"created":{"at":"2018-02-06T09:44:55+01:00","by":"","from":"","client":"server"},"modified":{"at":"2018-02-06T09:44:55+01:00","by":"","from":"","client":"server"},"t":1517906695628,"ct":1517906695627,"a_depth":3,"a":["apps","b791df37-6eef-4a3e-9066-1b79e0bdad31","35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1517906874502},{"id":"e564926e-298f-4656-b500-6526d403cebc","v":"0bc5b7712c4eb5fa","previous":{"v":"70d391078691dc37"},"p":"35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f","f":{"id":"form","v":"8c1496d16c344c2e","text":"Form"},"data":{"name":"Raum","tags":"","definition":"[Name][name] {20}[Fläche][flaeche]\n[flaeche]: Number\n\n# Maßnahmen\n\n[Sanierung][sanierung] [Trocknung][trocknung] \n\n[trocknung]: Select (0-n)\n  - Estrichdämmschicht\n  - Raumtrocknung\n  - Versorgungsschacht\n  - Sonstiges\n\n[sanierung]: Select (0-n)\n  - Malerarbeiten\n  - Bodenarbeiten\n  - Fliesenarbeiten\n  - Sonstiges\n\n{multiline}\n[Kommentar][tvKommentar]\n\n# Leistungen\n\n{children}\n[Leistungen][leistungen]\n[leistungen]: /669c29f7-4732-4c54-92ac-e3aaf93c66fe (0-n)\n \n# Messungen\n\n{children}\n[Messungen][feuchtigkeitsstellen]\n[feuchtigkeitsstellen]: /c186a5aa-6a83-4ed4-894a-c0c312925058 (0-n)\n\n\n\n","functions":"","allowedChildrenForms":[],"description":""},"locks":[],"created":{"at":"2019-05-03T14:03:51+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2019-05-03T14:03:51+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1556885031082,"ct":1556885031078,"a_depth":3,"a":["apps","b791df37-6eef-4a3e-9066-1b79e0bdad31","35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1517906855148},{"id":"3cf04f76-f463-4b98-9c73-78df68374ede","v":"ccee5390f2d8251f","previous":{"v":"9d1583a35cb15fa5"},"p":"b42e5a69-6cf0-4b55-928a-755011005b5a","f":{"id":"form","v":"8c1496d16c344c2e","text":"Form"},"data":{"name":"Menu-Entry","tags":"","definition":"[Name][name]\n\n[Short Name][shortName]\n[Display name][displayName]\n\n{hidden if icon.dataUrl}\n####### \n[Named Icon][namedIcon]\n\n{hidden if !namedIcon}\n######## \n{color}\n[Named Icon Prefered Color][namedIconColor]\n\n{hidden if namedIcon}\n####### \n[Icon][icon]\n[icon]: Image\n\n[Icon Expanded][iconExpanded]\n[iconExpanded]: Image\n\n####### \n\n{hidden if url}\n[Navigate to][target]\n[target]: ref\n\n{hidden if target.id}\n[Link][url]","functions":"","allowedChildrenForms":[],"description":""},"locks":[],"created":{"at":"2019-03-21T13:24:58+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2022-09-22T08:17:06+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1663834626929,"ct":1553174698011,"a_depth":3,"a":["apps","77ee8815-2c3a-4bb5-abd9-90541a545a24","b42e5a69-6cf0-4b55-928a-755011005b5a"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1688569701109},{"id":"34db9828-9784-44cb-bfd2-d1ad89cba0e4","v":"f090779574064b14","previous":{"v":"initial"},"p":"b42e5a69-6cf0-4b55-928a-755011005b5a","f":{"id":"form","v":"cc65f983157bf1fd","text":"Form"},"data":{"name":"Menu-Entry Folder","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Name][name]\n\n[Short Name][shortName]\n[Display name][displayName]\n\n{hidden if icon.dataUrl}\n####### \n[Named Icon][namedIcon]\n\n{hidden if !namedIcon}\n######## \n{color}\n[Named Icon Prefered Color][namedIconColor]\n\n{hidden if namedIcon}\n####### \n[Icon][icon]\n[icon]: Image\n\n[Icon Expanded][iconExpanded]\n[iconExpanded]: Image\n\n####### \n\n[Menu-Entries][menuEntries]\n[menuEntries]: /3cf04f76-f463-4b98-9c73-78df68374ede (0-n)","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2021-11-29T15:59:39+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-11-29T16:00:34+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1638201634247,"ct":1638201579006,"a_depth":3,"a":["apps","77ee8815-2c3a-4bb5-abd9-90541a545a24","b42e5a69-6cf0-4b55-928a-755011005b5a"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1647604327909},{"id":"e46efc75-6f35-4c70-9bfb-d0317a53ed04","v":"dd58945bed83984e","previous":{"v":"222d3332c3338159"},"p":"0fb162f4-0f78-4c1e-aad2-43c27e6d98cb","f":{"id":"form","v":"cac2c00e9d3adbaa","text":"Form"},"data":{"name":"Projekte","tags":"","allowUndefinedFields":false,"definition":"[Name][name]\n","functions":"","defaults":"","newTemplate":{"id":"","v":"","text":""},"newAction":{"id":"","v":"","text":""},"allowedChildrenForms":[{"id":"e170bb6c-f326-446d-870a-ada9d9f67230","v":"8f92851fc5e4e339","text":"Projekt"}],"commands":[{"id":"ac7c74d7-76d3-449b-9054-73355df9ce4c","v":"initial","text":"rd:Neu"}],"namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"","v":"","text":""},"description":""},"locks":[],"created":{"at":"2020-10-13T13:17:32+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2024-06-26T08:29:49+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1719390589336,"ct":1719321205277,"a_depth":3,"a":["apps","3fbe0efd-713a-457a-a34c-3a12aa19d6bb","0fb162f4-0f78-4c1e-aad2-43c27e6d98cb"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1719390611346},{"id":"b4b13fc6-7d06-4832-93b0-cd27405e269d","v":"6de5037d58e40435","previous":{"v":"8f8022d1519ab2aa"},"p":"15292d56-6806-4263-b6d0-9194687203e1","f":{"id":"form","v":"42ef1fd37c206edb","text":"Form"},"data":{"name":"Vertrag","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"# Vertrag\n[Titel][name]\n\n{multiline auto-grow=true}\n[Vertragsnotizen][vertragsnotizen]\n\n{readonly}\n[Status][status]\n[status]: Select\n  - ANFRAGE: Entwurf\n  - AKTIV: Aktiv\n  - GEKUENDIGT: Gekündigt\n  - INAKTIV: Ausgezogen\n\n[Einheiten][einheit]\n[einheit]: /7105a939-989c-4154-96e8-44f17f556b2a (0-n)\n\n\n[Gesamtgröße der Einheiten][gesamtgroesseEinheiten]\n[gesamtgroesseEinheiten]: number \"Wird initial bei der Erstellung des Vertrages berechnet, anschließend muss/kann es manuell geändert werden\"\n\n{ref hide-path creation-location-form=fc2bd280-6c0c-4e62-ac45-ce67d884ff01 on-creation-run-action=195929a8-cbb6-4be9-ac2c-a35a9f648b7a}\n[Mieter][mieter]\n[mieter]: /3c0a7011-6a65-4ed3-98e1-06e4f5a314d8 (0-n)\n\n\n{number}[Kaltmiete][kaltmiete] {number}[Nebenkosten (Vorrauszahlung)][nebenkosten] [Mehrwertsteuer][mehrwertsteuer]\n\n{readonly}\n[Summe][summe]\n\n[kaltmiete]: number\n[nebenkosten]: number\n[mehrwertsteuer]: number\n\n[summe]: number = functions.sum(kaltmiete, nebenkosten, mehrwertsteuer)\n\n[Zahlungsnotizen][zahlungsnotizen]\n\n[Mietzeit][mietzeit]\n[mietzeit]: Select\n  - UNBEFRISTED: Unbefristet\n  - VERLAENGERUNG: Automatische Verlängerung\n  - MINDEST_LAUFZEIT: Mindestlaufzeit\n\n{show if mietzeit === 'UNBEFRISTED'}\n####### \n[Beginn][beginn]\n[Kündigungsfrist (in Monaten)][kuendigungsfrist]\n\n{show if mietzeit === 'VERLAENGERUNG'}\n####### \n[Beginn][beginn] [Ende][ende] [Verlängerung (in Monaten)][verlaengerungMonate]\n[Kündigungsfrist (in Monaten)][kuendigungsfrist]\n\n\n{show if mietzeit === 'MINDEST_LAUFZEIT'}\n####### \n[Beginn][beginn] [Ende][ende] \n[Kündigungsfrist (in Monaten)][kuendigungsfrist]\n\n####### \n\n[Kündigungsdatum][kuendigungsdatum] [Auszugsdatum][auszugsdatum]\n\n[kuendigungsdatum]: date \"Dieses Datum wird 1x täglich ausgewertet. Dies ändert den Status des Vertrags automatisch zu `Gekündigt`, falls das Datum in der Vergangenheit liegt.\"\n[auszugsdatum]: date \"Dieses Datum wird 1x täglich ausgewertet. Dies ändert den Status des Vertrags automatisch zu `Ausgezogen`, falls das Datum in der Vergangenheit liegt.\"\n\n[Kaution hinterlegt][kautionHinterlegt] {show if kautionHinterlegt}[Kaution: Summe][kautionSumme] {show if kautionHinterlegt}[Kaution: Datum][kautionDatum]\n\n{show if kautionHinterlegt|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove=true}\n[Kaution: Unterlagen][kautionUnterlagen]\n[kautionUnterlagen]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n\n[kautionHinterlegt]: switch\n[kautionSumme]: number\n[kautionDatum]: date\n\n{multiline}\n[Übergabeprotokoll][uebergabeprotokoll]\n\n\n{children}\n[Vertrags Word Vorlage][docxTemplate]\n[docxTemplate]: /a37b2d75-d9d3-495a-a31c-52094d82e7bb (0-n)\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove=true}\n[Vertragsunterlagen][unterlagen]\n[unterlagen]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n# Schlüsselübergabe\n\n{multiline}\n[Schlüsselübergabe][schluesseluebergabe]\n\n\n### Empfangsbestätigung\n\n[Datum][datumSchluesseluebergabe] {signature}[Unterschrift][unterschriftSchluesseluebergabe]\n[datumSchluesseluebergabe]: date\n[unterschriftSchluesseluebergabe]: file\n\n### Bei Rückgabe des Schlüssels\n\n[Datum][datumSchluesselrueckgabe] \n{signature}[Unterschrift (Mieter)][unterschriftSchluesselrueckgabe]\n{signature}[Unterschrift (Vermieter)][unterschriftSchluesselrueckgabeVermieter]\n\n\n[datumSchluesselrueckgabe]: date\n[unterschriftSchluesselrueckgabe]: file\n[unterschriftSchluesselrueckgabeVermieter]: file\n[verlaengerungMonate]: number\n[beginn]: date \"Dieses Datum wird 1x täglich ausgewertet. Dies ändert den Status des Vertrags automatisch zu `Aktiv`, falls das Datum in der Vergangenheit liegt.\"\n[ende]: date\n[kuendigungsfrist]: number\n\n\n# Geplante Anpassungen\n\n{children delete-on-remove=true sort=data.datum disable-remove=true}\n[Geplante Anpassungen][geplanteAnpassungen]\n[geplanteAnpassungen]: /39cc8c10-ef0e-4780-bec0-ba6b01b4d200 (0-n)","functions":"sum(kaltmiete, nebenkosten, mehrwertsteuer){\n  return (kaltmiete || 0) + (nebenkosten || 0) + (mehrwertsteuer || 0)\n}","allowedChildrenForms":[],"commands":[{"id":"c201ea54-9953-4c4c-bf04-e00b87b0d42f","v":"initial","text":"Als Entwurf markieren"}],"description":"","theme":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2022-08-16T10:55:37+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-02-06T10:19:05+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1675678745960,"ct":1660647337110,"a_depth":3,"a":["apps","86189c5a-b9f4-445a-879f-d94574960df0","15292d56-6806-4263-b6d0-9194687203e1"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1675695643885},{"a":["apps","b91e3079-75ae-49cd-981b-3053bf47208c","e7a0be94-cd94-4210-875e-0cceb7e8bc6c"],"a_depth":3,"a_forms":["folder","application-form","folder"],"created":{"at":"2017-11-28T15:14:03+01:00","by":"","client":"c4d3de47-f794-4fbb-b49c-6ef6b7b391b0","from":""},"ct":1666603137252,"data":{"allowedChildrenForms":[],"commands":[{"id":"9a35cae5-2781-4544-a490-13ae396d472e","text":"rd:New","v":"6d9971fd74e0581d"},{"id":"dbbc059b-1e9b-4eb7-a72f-dece5a1bca3d","text":"Neu","v":"initial"}],"definition":"[Name][name]\r\n\r\n{color}\r\n[Farbe][color]","description":"","functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Newsgroup","namedIcon":"far fa-newspaper","namedIconColor":"","tags":"","theme":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"42ef1fd37c206edb"},"id":"381e2c4e-9eed-42a5-b65c-ad72e25369f0","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2024-11-15T15:00:55+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"e7a0be94-cd94-4210-875e-0cceb7e8bc6c","previous":{"v":"7366ef7dc8941c6e"},"stamps":[],"t":1731682855111,"v":"02ff37589a23facb"},{"id":"86966584-6ee3-4351-8e6e-ff6e695b970a","v":"b27bbc211a3ce32e","previous":{"v":"c38f545fabb8b61c"},"p":"e7a0be94-cd94-4210-875e-0cceb7e8bc6c","f":{"id":"form","v":"16a1fc2c7a734357","text":"Form"},"data":{"name":"News","tags":"","allowUndefinedFields":false,"definition":"{ref move-on-change ancestor-form=320bbded-2e47-4772-b662-c54254627ac3  hide-path}\n[Newsgroup][newsgroup]\n[newsgroup]: /381e2c4e-9eed-42a5-b65c-ad72e25369f0 <required>\n\n[Titel][name]\n\n{file types=\"image/*\"}\n[Cover-Bild][cover]\n[cover]: file\n\n{hidden}\n[Beitrag (HTML)][beitragHtml]\n\n{hidden}\n[Beitrag (Text)][beitragText]\n\n{editor text-to=beitragText}[Beitrag][beitrag]\n\n[beitrag]: Text\n ","functions":"","relatedDocuments":[{"id":"de6fa57c-14c7-45c3-92b2-f1fba98399ed","v":"initial","text":"AppComments-Comments"},{"id":"8d177332-9455-432c-9651-e7cc69a12ce2","v":"initial","text":"AppComments-StatisticsForParent"}],"defaults":"","newTemplate":{"id":"","v":"","text":""},"newAction":{"id":"","v":"","text":""},"allowedChildrenForms":[],"commands":[],"descendantCommands":[],"to":[],"from":[],"namedIcon":"fa fa-newspaper","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"","v":"","text":""},"description":""},"locks":[],"created":{"at":"2017-09-15T10:29:32+02:00","by":"","client":"import","from":""},"modified":{"at":"2025-12-01T10:09:48+00:00","by":"729fa027-7e7e-4b06-9602-f535c43824f0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1764583788458,"ct":1764583739077,"a_depth":3,"a":["apps","b91e3079-75ae-49cd-981b-3053bf47208c","e7a0be94-cd94-4210-875e-0cceb7e8bc6c"],"a_forms":["folder","application-form","folder"],"inheritedLocks":[null,null,null,null],"stamps":[]},{"id":"320bbded-2e47-4772-b662-c54254627ac3","v":"68369ea28827ab22","previous":{"v":"10d42f248d7ea49b"},"p":"e7a0be94-cd94-4210-875e-0cceb7e8bc6c","f":{"id":"form","v":"42ef1fd37c206edb","text":"Form"},"data":{"name":"Newsgroupordner","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Name][name]\r\n\r\n[Icon][icon]\r\n\r\n[icon]: File","functions":"","allowedChildrenForms":[],"commands":[{"id":"b4d737b9-e66e-497a-98c5-ebf6aac8ff7b","v":"0012a18523c77484","text":"Neu"}],"description":"","theme":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2019-07-03T07:27:01+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2022-10-21T13:47:53+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1666360073044,"ct":1666359622301,"a_depth":3,"a":["apps","b91e3079-75ae-49cd-981b-3053bf47208c","e7a0be94-cd94-4210-875e-0cceb7e8bc6c"],"a_forms":["folder","application-form","folder"],"inheritedLocks":[null,null,null,null],"stamps":[]},{"a":["apps","a590ce5b-28fc-4f85-9049-d006e1b8f880","169e87e0-0379-48e1-8c94-8fadac5969bb"],"a_depth":3,"a_forms":["folder","application-form","form-folder"],"created":{"at":"2018-06-06T11:56:55+00:00","by":"2695f56c-96e6-4009-8e2f-d545ea1e02aa","client":"server","from":""},"ct":1667550486861,"data":{"allowedChildrenForms":[],"commands":[{"id":"bdc1917e-5de4-4b11-8f12-446981d8620d","text":"Übernehmen in Personalverwaltung","v":"initial"},{"id":"f92affdf-1bd1-4439-af51-68758c2314c1","text":"Übernehmen in Personalverwaltung","v":"initial"}],"definition":"{hidden}\r\n[Name][name]\r\n[name]: = functions.name(vorname, nachname)\r\n\r\n{ref ancestor-form=ebb00fab-fe96-4562-a7cd-1fac9a420d50 hide-path move-on-change}\r\n[Ordner][ordner]\r\n[ordner]: /b2030eae-0210-474c-bf24-9b5c6f0a0d3b <required>\r\n\r\n[Vorname][vorname][Nachname][nachname]\r\n\r\n[Position][position] \r\n\r\n[Geplanter Einstellungstermin][geplanterEinstellungstermin] {now}[Bewerbungseingangsdatum][bewerbungseingangsdatum]\r\n[geplanterEinstellungstermin]: date \r\n[bewerbungseingangsdatum]: date\r\n\r\n{attachment form-id=\"6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2\" file-field=\"datei\" name-field=\"name\"}\r\n[Bewerbungsunterlagen][bewerbungsunterlagen]\r\n[bewerbungsunterlagen]: /6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2 (0-n)\r\n\r\n[Bewerbungsverfahren abgeschlossen][bewerbungsverfahrenAbgeschlossen]\r\n[Bewerbung in Bewerberpool übernehmen][bewerberpool]\r\n\r\n{hidden if !bewerberpool | attachment form-id=\"6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2\" file-field=\"datei\" name-field=\"name\"}[Einwilligungserklärung][einwilligung]\r\n\r\n[bewerbungsverfahrenAbgeschlossen]: switch\r\n[bewerberpool]: switch\r\n[einwilligung]: /6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2\r\n","description":"","functions":"name(vorname, nachname) {\n  const parts = [vorname, nachname]\n\n  return parts.filter(p => p != null).join(' ')\n}","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Bewerbungsunterlage","namedIcon":"far fa-user-tie","namedIconColor":"","tags":"","theme":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"42ef1fd37c206edb"},"id":"764f746e-a836-4e9d-a770-1d8d5ccad49b","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2024-11-18T09:27:53+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"169e87e0-0379-48e1-8c94-8fadac5969bb","previous":{"v":"33ef890c361b6a08"},"stamps":[],"t":1731922073335,"v":"0517706198060ddc"},{"id":"47c3efd4-c1bd-40ce-81ac-d39401664153","v":"bd363f3e8ae2284a","previous":{"v":"initial"},"p":"d69a62e9-a61f-42bf-9ae9-7983b87bf587","f":{"id":"form","v":"d17efc12b0cdc0be","text":"Form"},"data":{"name":"Section","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[PromiseMirror Content][content]\r\n[content]: Text (0-n)\r\n\r\n# Html\r\n{html}\r\n[Html][html]\r\n\r\n# Searchable Text\r\n{multiline}\r\n[Searchable Text][text]\r\n\r\n# References\r\n[External Refs][externalRefs]\r\n[externalRefs]: /ref (0-n)\r\n\r\n{ref delete-on-remove=true}\r\n[Children][children]\r\n[children]: /ref (0-n)\r\n","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2021-07-07T11:16:56+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","from":"","client":"server"},"modified":{"at":"2021-11-04T14:35:12+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1636036512006,"ct":1625656616953,"a_depth":3,"a":["apps","cf914a7f-ff5f-4598-80f1-63c9129e0a71","d69a62e9-a61f-42bf-9ae9-7983b87bf587"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1625656617002},{"id":"6e89617c-ecdd-4a84-b944-e18b610c7d75","v":"initial","p":"dbd0bd68-3479-4032-9303-9d51615c27a7","f":{"id":"form","v":"a241685be918720e","text":"Form"},"data":{"name":"Device Setup Component","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Name][name]\r\n\r\n[Serial][serial]\r\n\r\n[Type][type]\r\n\r\n{multiline}\r\n[Comment][comment]","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2021-11-02T09:38:38+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-11-02T09:38:38+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1635845918592,"ct":1635845918591,"a_depth":3,"a":["apps","781ff5de-69db-49dc-99f0-f328b308cd7d","dbd0bd68-3479-4032-9303-9d51615c27a7"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1635845918649},{"id":"a85202bb-7177-4d76-9e1e-d92aec8ef4b4","v":"initial","p":"f5966f1d-7108-4be4-801e-8f957c6f4150","f":{"id":"form","v":"8c1496d16c344c2e","text":"Form"},"data":{"name":"Planung","tags":"","definition":"[Name][name]","functions":"","allowedChildrenForms":[],"description":""},"locks":[],"created":{"at":"2019-01-31T15:06:54+00:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2019-01-31T15:06:54+00:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1548947214689,"ct":1548947214689,"a_depth":3,"a":["apps","d10eebac-6285-4412-8451-55d1bf2fc849","f5966f1d-7108-4be4-801e-8f957c6f4150"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1568733283419},{"id":"1850b225-79c2-4ae4-9160-c0e719f0c2fd","v":"7be7e28a48c9cc20","p":"e89b29a9-6ab9-47dc-a6fe-91ebda92871d","f":{"id":"form","v":"09198ed5f8fec9fb","text":"Form"},"data":{"name":"Projekte","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Name][name]","functions":"","allowedChildrenForms":[{"id":"686d22ba-414e-452f-9795-f6f7bcab37d5","v":"a20fd14d9cc7a840","text":"Projekt"}],"commands":[],"description":""},"locks":[],"created":{"at":"2018-04-20T12:29:48+02:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"f8312258-bdc9-438a-a510-de77a69e61e9"},"modified":{"at":"2020-10-13T10:11:33+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1602583893496,"ct":1602583893496,"a_depth":3,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d"],"a_forms":["folder","application-form","folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"previous":{"v":"initial","f":{"id":"form","v":"636c28c49e0bd3c5","text":"Form"}}},{"id":"500095d4-c6b7-4efe-bfa0-b22b35331547","v":"bfd69a3d7179fbf2","previous":{"v":"5e7a7f3b55f7a9d6"},"p":"bd0159cd-1362-4c50-916d-26aa2bb1ae24","f":{"id":"form","v":"a57e5af653d72344","text":"Form"},"data":{"name":"Einstellungen","tags":"full-page","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Name][name]","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2019-07-19T08:16:07+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2019-08-09T14:18:31+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1565360311355,"ct":1563524167176,"a_depth":3,"a":["apps","18da93c8-dfa2-4c21-b0fe-7e09b2b6d6c4","bd0159cd-1362-4c50-916d-26aa2bb1ae24"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1568021432724},{"id":"4f3c48aa-8d12-4dfa-8a66-064d8a851a5b","v":"d121176fc63693c4","previous":{"v":"87593775655e62df"},"p":"169e87e0-0379-48e1-8c94-8fadac5969bb","f":{"id":"form","v":"42ef1fd37c206edb","text":"Form"},"data":{"name":"Personalordner","tags":"","namedIcon":"far fa-folder","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Name][name]\n\n{icon collections=user}\n[Icon][namedIcon]\n\n{color}\n[Icon Farbe][namedIconColor]","functions":"","allowedChildrenForms":[],"commands":[{"id":"8da476f5-27c4-4c70-b44f-02719fe301e2","v":"initial","text":"rd:Neu"},{"id":"d49ceaa5-99b2-4e06-ae00-31c1f0527843","v":"initial","text":"Neu"}],"description":"","theme":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2020-05-08T08:51:31+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2024-02-02T16:35:59+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1706891759242,"ct":1667405065589,"a_depth":3,"a":["apps","a590ce5b-28fc-4f85-9049-d006e1b8f880","169e87e0-0379-48e1-8c94-8fadac5969bb"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1708951983245},{"a":["apps","94a64d89-d204-4918-b147-d717914fb03e","f254ce25-42f1-4333-8ee7-23554bf746c1"],"a_depth":3,"a_forms":["folder","application-form","form-folder"],"created":{"at":"2020-02-25T15:28:31+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":""},"ct":1733232961551,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[{"id":"9f8071fd-6f25-489e-8562-4399701546b0","text":"Blower Door Test","v":"f063b1b6d672ebbe"},{"id":"281c6bd6-2e24-42ba-868e-b63cbba4254f","text":"Brandschutz","v":"1ed94a41d29e4080"},{"id":"34d811a8-9de0-4b20-bc24-c55826a06748","text":"Brandschutzleitung","v":"9da33d0d7211f90b"},{"id":"11a327ee-c8e6-453a-bcdd-f585877f2fd8","text":"Energieausweis","v":"0226510da9bd6594"},{"id":"fa3777b5-bfff-43ac-a5c5-ea15486dd334","text":"ENEV","v":"23dd999f5f0f45d0"},{"id":"4862401e-e182-451c-a855-ef2e9b9441c5","text":"KFW + EnEV","v":"03c0fd3cc122de98"},{"id":"03c16e2b-302e-4c2c-93c1-931679919e0b","text":"Schallschutz","v":"cd304f0f73dad7f5"},{"id":"2c01a15d-c14d-44c6-adc5-d9b3fdc692b7","text":"Schallschutz Kontrollen","v":"49e095cf54a7b2d9"},{"id":"328998fb-7e67-4fca-b40b-377d9a07776d","text":"Schallschutzmessung","v":"4a30c0479190b21d"},{"id":"5ff471b3-1769-408b-825a-69d6416757c3","text":"Simulation (jeweils separat)","v":"3ba5b0671ca8411c"},{"id":"41da8494-ec0a-4b13-bad7-162f3f1fbba4","text":"Architektur","v":"f2bf7c8b54ef00e5"},{"id":"c97e431f-1d18-4f45-9915-591932d2cd23","text":"Wohngebäude (Sanierung)","v":"10c28e5d5684cef7"},{"id":"873e5be1-18d7-47ae-9ea5-438bce403e61","text":"Nichtwohngebäude (Sanierung/Umbau)","v":"86af162058c90993"},{"id":"5acb56fa-2bad-4e9b-8385-ab82c2562b47","text":"Wohngebäude (Neubau)","v":"7611c66599172986"},{"id":"81e1dec7-0c25-4694-9724-d1a86f8dc0db","text":"Nichtwohngebäude (Neubau)","v":"b26ebbac2526ea22"},{"id":"1c428116-bc5b-4c71-8a84-0f7c50c2dbe6","text":"Heizung, Lüftung, Sanitär","v":"20b19a936d0f028e"},{"id":"748a3d2b-9bbb-4134-a09d-4a7797fdc639","text":"Tragwerksplanung","v":"ef7c7715fa12a196"},{"id":"cf2ae9d1-57f8-4604-887f-9bc97fe74495","text":"ELT","v":"314b04892ac5d17d"},{"id":"680d9cf2-25de-4237-840d-64fb9e68b1a2","text":"Nachhaltigkeit","v":"0ac0acf515e9bc71"},{"id":"39a8e8f7-4840-4ffd-ad15-21fc5d56b277","text":"Sachverständige","v":"1f08c2013844a7c2"}],"commands":[{"id":"5dec3458-15b4-4843-a794-b4210e9f9c83","text":"Neu","v":"initial"}],"defaults":"","definition":"[Name][name]\n\n[Durchschnittswert zur Berechnung geschätzter Stunden][averageCostPerHour]\n[averageCostPerHour]: currency\n","descendantCommands":[],"description":"","from":[],"functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Leistungen","namedIcon":"far fa-tasks-alt","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"relatedDocuments":[],"tags":"","theme":{"id":"","text":"","v":""},"to":[],"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"230b4040236561b6"},"id":"fb822f2f-880c-4676-be8b-cc557e822bc4","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2026-03-06T10:45:58+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"p":"f254ce25-42f1-4333-8ee7-23554bf746c1","previous":{"v":"35bb273e44eadbb9"},"stamps":[],"t":1772793958777,"v":"301495cf341eddca"},{"id":"da18ed53-47e1-4d39-bc02-7e02ef1c22bc","v":"3e0b7213c2476f09","previous":{"v":"6937d8fa5532df3c"},"p":"08a88408-534b-4ca2-b96e-7ee12b00e6d2","f":{"id":"form","v":"4fa42fcff3786d1e","text":"Form"},"data":{"name":"Personaldaten","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Vorname][vorname]\n\n[Nachname][name]\n\n[Position][position]\n\n[Eintrittsdatum][eintrittsdatum]\n[eintrittsdatum]: date\n\n[Austrittsdatum][austrittsdatum]\n[austrittsdatum]: date\n\n[Urlaubstage][urlaubstage]\n\n[Resturlaub][resturlaub]\n\n[Dosimeter][dosimeter]\n[dosimeter]: file\n\n\n","functions":"","allowedChildrenForms":[{"id":"874b00cc-5436-4d47-8ff3-ad26e6637bce","v":"3bc08bd9253770c6","text":"Mitarbeitergespräch"},{"id":"ac16bc91-bbcf-41fc-9754-aaca03b34c41","v":"59d8b37f3899a4a6","text":"Funktionsbeschreibung"},{"id":"0290954f-fe80-434b-aa59-e53d2371ee8e","v":"5a09a567a5951a2b","text":"Unterweisung"},{"id":"2aaf26d1-7db3-4121-af75-bafe525d096a","v":"466cf27f7543c125","text":"Vertrag"},{"id":"925e9bf5-2a2c-4f49-ad56-505d137e62ad","v":"139d807024c91ace","text":"Sonstiges"}],"commands":[],"description":""},"locks":[],"created":{"at":"2017-12-06T10:17:54+01:00","by":"","from":"","client":"166cf5c1-e05b-442a-a8f6-b9b5205a4a8f"},"modified":{"at":"2020-06-23T11:54:59+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1592913299593,"ct":1588927892198,"a_depth":3,"a":["apps","c978f91a-22e9-434c-9ad0-c9781eeae198","08a88408-534b-4ca2-b96e-7ee12b00e6d2"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1632736967451},{"id":"4aad33d2-1b89-404a-836f-89ff24051170","v":"initial","previous":{"v":""},"p":"e89b29a9-6ab9-47dc-a6fe-91ebda92871d","f":{"id":"form","v":"636c28c49e0bd3c5","text":"Form"},"data":{"name":"Models","description":"","tags":"","definition":"[Name][name]","functions":"","semver":"","allowedChildrenForms":[],"layout":{"id":"","v":"","text":""},"color":{"id":"","v":"","text":""},"iconName":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null}},"applicationLayoutOptions":{"id":"","v":"","text":""},"documentLayoutOptions":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2018-04-20T12:29:47+02:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"from":"","client":"f8312258-bdc9-438a-a510-de77a69e61e9"},"modified":{"at":"2018-04-20T12:29:47+02:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"from":"","client":"f8312258-bdc9-438a-a510-de77a69e61e9"},"t":null,"ct":null,"a_depth":3,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d"],"a_forms":["folder","application-form","folder"],"inheritedLocks":[null,null,null,null],"stamps":[]},{"id":"42424bba-dbd1-4a7b-a0a4-81d647d8a000","v":"bc76a3c7ddfbd9ca","previous":{"v":"a34378b33e6a55d0"},"p":"5d6fa6d3-7580-4c6f-9487-fff961f9c751","f":{"id":"form","v":"f0e1626ad2b3fe9e","text":"Form"},"data":{"name":"Container","description":"","tags":"","definition":"[Name][name]\n\n[Vorschau][preview]\n[preview]: file\n\n[Höhe in Pixel][height]\n[height]: number\n\n{ref}\n[Spalten][columns]\n[columns]: /555c5db8-bfe2-4210-968d-d2b6580cfdce (0-n)","functions":"","semver":"","allowedChildrenForms":[],"useLock":false,"sharedLock":{"id":"","v":"","text":""},"creatorKeys":[],"cloneLock":{"id":"","v":"","text":""},"cloneRoles":[],"layout":{"id":"","v":"","text":""},"color":{"id":"","v":"","text":""},"iconName":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null}},"applicationLayoutOptions":{"id":"","v":"","text":""},"documentLayoutOptions":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2019-03-27T11:48:31+01:00","by":"21755d65-c561-473a-ad0d-bac9a744d145","from":"","client":"server"},"modified":{"at":"2020-08-06T08:37:45+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1596703065399,"ct":1596703065398,"a_depth":3,"a":["apps","43f84041-0fd7-4ccb-b7b5-7a38f89ada37","5d6fa6d3-7580-4c6f-9487-fff961f9c751"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1553075250825},{"id":"b2030eae-0210-474c-bf24-9b5c6f0a0d3b","v":"401c6dc0c9938fb0","previous":{"v":"1e085f398a659537"},"p":"169e87e0-0379-48e1-8c94-8fadac5969bb","f":{"id":"form","v":"d497194b29933d26","text":"Form"},"data":{"name":"Bewerberordner","tags":"","allowUndefinedFields":false,"definition":"[Name][name]\n\n{icon collections=user}\n[Icon][namedIcon]\n\n{color}\n[Icon Farbe][namedIconColor]","functions":"","defaults":"","newTemplate":{"id":"","v":"","text":""},"newAction":{"id":"","v":"","text":""},"allowedChildrenForms":[],"commands":[{"id":"ae6a652a-e6aa-4e5d-b45d-606105a8eff5","v":"ae24593e4539ecd0","text":"rd:Neu"},{"id":"12d20117-bc16-4ff9-ae5e-f73baeab9526","v":"initial","text":"Neu"}],"namedIcon":"far fa-folder","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"","v":"","text":""},"description":""},"locks":[],"created":{"at":"2018-07-02T11:25:03+00:00","by":"2695f56c-96e6-4009-8e2f-d545ea1e02aa","from":"","client":"server"},"modified":{"at":"2023-12-22T16:01:24+01:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1703257284222,"ct":1695818155162,"a_depth":3,"a":["apps","a590ce5b-28fc-4f85-9049-d006e1b8f880","169e87e0-0379-48e1-8c94-8fadac5969bb"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1708951970729},{"id":"1fb60157-8ac6-4a44-bc91-e47166b92284","v":"14f25383e8210691","p":"5358044d-ffd1-4e97-887d-c18c22120229","f":{"id":"form","v":"2e7e396282349d68","text":"Form"},"data":{"name":"Leitsätze","label":"","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"{hidden}\n[Name][name]\n\n{editor}\n[Leitsätze][leitsaetze]\n[leitsaetze]:text\n\n\n","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2019-07-09T13:32:05+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2021-01-29T13:46:27+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1611927987388,"ct":1611927987388,"a_depth":3,"a":["apps","e83af4c0-db7e-438f-bf78-60a14245d6d9","5358044d-ffd1-4e97-887d-c18c22120229"],"a_forms":["folder","application-form","folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"previous":{"v":"0fae7560a4a77ad1","f":{"id":"form","v":"4fa42fcff3786d1e","text":"Form"}}},{"id":"099bed81-95bf-4f04-b4d5-860172d8dab3","v":"initial","p":"2540faf9-e3fd-4b52-aad8-53f43274e0a2","f":{"id":"form","v":"8c1496d16c344c2e","text":"Form"},"data":{"name":"Container","tags":"","definition":"[Name][name]\n\n[Vorschau][preview]\n[preview]: file\n\n[Höhe in Pixel][height]\n[height]: number\n\n[Scroll Content Overflow][scrollOverflow]\n[scrollOverflow]: select \n  - NONE: \n  - X: overflow-x = scroll\n  - Y: overflow-y = scroll\n  - BOTH: overflow = scroll\n\n{ref ancestor-search-limit=0}\n[Spalten][columns]\n[columns]: /22edaaeb-3d02-4c07-a801-e90544aff249 (0-n)","functions":"","allowedChildrenForms":[],"description":""},"locks":[],"created":{"at":"2019-09-20T08:59:30+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2019-09-20T08:59:30+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1568969970921,"ct":1568969970900,"a_depth":3,"a":["apps","8fa52498-fa07-4bad-87b3-5c8df671aca4","2540faf9-e3fd-4b52-aad8-53f43274e0a2"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1568969970990},{"id":"bddf496c-822a-4eff-b294-5e6085fedaa7","v":"a8db74e77e3f9b57","previous":{"v":"80426f56dfe124ea"},"p":"ca4c359f-4705-4ab0-b018-b39e0d324486","f":{"id":"form","v":"42ef1fd37c206edb","text":"Form"},"data":{"name":"Raum","tags":"","namedIcon":"fal fa-webcam","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Name][name]\r\n\r\n","functions":"","allowedChildrenForms":[],"commands":[],"description":"","theme":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2020-05-08T08:52:41+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2023-02-28T14:59:02+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1677596342428,"ct":1677596243971,"a_depth":3,"a":["apps","69555db0-1399-48c4-b87f-d8fa2f7b656f","ca4c359f-4705-4ab0-b018-b39e0d324486"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1677596469297},{"id":"91352b74-c5e5-4c05-aa68-f13b0b723f35","v":"initial","previous":{"v":""},"p":"ba440134-1703-495e-b869-0f0c8d447f75","f":{"id":"folder","v":"f1e4977dbee77607","text":"Folder"},"data":{"name":"Forms","description":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null}}},"locks":[],"created":{"at":"2018-05-24T16:28:35+02:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","backedBy":null,"from":"","client":"server"},"modified":{"at":"2018-05-24T16:28:35+02:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","backedBy":null,"from":"","client":"server"},"t":1527172115874,"ct":1527172115874,"a_depth":3,"a":["apps","83c76376-420e-4231-9275-d0fe2ab47c32","ba440134-1703-495e-b869-0f0c8d447f75"],"a_forms":["folder","application-form","application-form"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1737361678147},{"id":"886b4a1a-0e92-4341-a0e7-e5ee4e9dc7f2","v":"initial","p":"726c1664-cf32-4036-94b2-5508e10c0ecd","f":{"id":"form","v":"14a0cb7b640cd882","text":"Form"},"data":{"name":"Archiv","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Name][name]\n\n{ref list=true}\n[Menü Eintrage][menuItems]\n[menuItems]: /3cf04f76-f463-4b98-9c73-78df68374ede (0-n)\n","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2020-09-01T09:49:49+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2020-09-01T09:49:49+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1598953789935,"ct":1598953789869,"a_depth":3,"a":["apps","13d49bff-7e17-4694-b28f-de734b9abd9b","726c1664-cf32-4036-94b2-5508e10c0ecd"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1623742937868},{"id":"d60a5613-e046-4341-9bc9-34a241e8a28a","v":"0f23346c2af95852","previous":{"v":"2e11b41860c0c0ab"},"p":"9b024049-2573-4921-acaa-3e172e9332d7","f":{"id":"form","v":"12ceedaed4c81b21","text":"Form"},"data":{"name":"Wartungspläne","tags":"","namedIcon":"fa fa-ruler-triangle","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"","functions":"","allowedChildrenForms":[{"id":"522ca40d-810b-4021-835f-beeace3af7fa","v":"a01964c24bf1cf86","text":"Wartungsplan"}],"commands":[{"id":"115cf9cc-4433-42f0-8f89-0922c9f0927a","v":"5990554747680d12","text":"rd:Neu"}],"description":"","theme":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2022-03-02T15:52:51+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2024-05-23T10:33:03+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1716460383650,"ct":1646236371046,"a_depth":3,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1716460373914},{"id":"b9d0a2e5-4aac-4927-ac39-a1f532e6c20e","v":"a1f57ebd354c71a5","previous":{"v":"initial","f":{"id":"form","v":"af06aca6217d20c5","text":"Form"}},"p":"35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f","f":{"id":"form","v":"8c1496d16c344c2e","text":"Form"},"data":{"name":"Fallordner","tags":"","definition":"[Name][name]","functions":"","allowedChildrenForms":[],"description":""},"locks":[],"created":{"at":"2019-05-03T14:03:50+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2019-05-03T14:03:50+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1556885030973,"ct":1556885030973,"a_depth":3,"a":["apps","b791df37-6eef-4a3e-9066-1b79e0bdad31","35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1554470620833},{"id":"bf03da73-d7e2-4e63-a5aa-250d0bdcb286","v":"initial","p":"9b024049-2573-4921-acaa-3e172e9332d7","f":{"id":"form","v":"42ef1fd37c206edb","text":"Form"},"data":{"name":"Dashboard","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"","functions":"","allowedChildrenForms":[],"commands":[],"description":"","theme":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2022-09-05T12:15:54+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2022-09-05T12:15:54+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1662380154734,"ct":1662380154733,"a_depth":3,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1662386763430},{"a":["apps","94a64d89-d204-4918-b147-d717914fb03e","f254ce25-42f1-4333-8ee7-23554bf746c1"],"a_depth":3,"a_forms":["folder","application-form","form-folder"],"created":{"at":"2019-04-16T14:30:15+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","client":"server","from":""},"ct":1733232916478,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[],"commands":[],"defaults":"","definition":"[Name][name]","descendantCommands":[],"description":"","from":[],"functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Stammdaten","namedIcon":"","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"relatedDocuments":[],"tags":"","theme":{"id":"","text":"","v":""},"to":[],"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"230b4040236561b6"},"id":"089eb68f-d2ec-4e30-a3bb-6549d72932ec","inheritedLocks":[null,null,null,null],"locks":[],"meta":{"modified":{"at":"2024-12-03T13:35:16+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null}},"modified":{"at":"2019-04-16T14:30:35+00:00","backedBy":null,"by":"870fac1f-b0d7-4925-b191-a43166960419","client":"server","from":"","impersonatedBy":null},"p":"f254ce25-42f1-4333-8ee7-23554bf746c1","previous":{"f":{"id":"form","text":"Form","v":"8c1496d16c344c2e"},"v":"a841e8e3876f2c14"},"stamps":[],"t":1733232916478,"v":"3190379bec6ff2f3"},{"id":"da73bcf8-be71-46ca-9645-894b04e2bfd1","v":"48c1baa8a1286861","previous":{"v":"cf676752d723fcd9","p":"7643c1eb-d4fa-4bb1-a4c4-b65838cf989d","a":["apps","4a58cfdb-e1ef-40a2-8a89-57157ddda7d0","7643c1eb-d4fa-4bb1-a4c4-b65838cf989d"],"a_forms":["folder","application-form","form-folder"]},"p":"fe411da7-3843-4c17-acf5-aaeba96d1a85","f":{"id":"form","v":"cc65f983157bf1fd","text":"Form"},"data":{"name":"Labels","tags":"","namedIcon":"fa fa-tags","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Name][name]","functions":"","allowedChildrenForms":[{"id":"43551782-1b7f-47ef-a694-9e9824c97091","v":"24afd47add0bfadf","text":"Label"}],"commands":[{"id":"6dd54d83-543f-48c0-8535-9063bdb17dac","v":"initial","text":"rd:new"}],"description":""},"locks":[],"created":{"at":"2021-10-01T09:57:02+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-12-12T10:25:40+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1702376740478,"ct":1633082222665,"a_depth":3,"a":["apps","4a58cfdb-e1ef-40a2-8a89-57157ddda7d0","fe411da7-3843-4c17-acf5-aaeba96d1a85"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1702376750536},{"id":"dd7e2145-a511-4762-854e-bc58e5a2ecc3","v":"initial","previous":{"v":""},"p":"58cc45fb-3fb3-45e8-b61d-4b89899e357a","f":{"id":"form","v":"af06aca6217d20c5","text":"Form"},"data":{"name":"Boards","description":"","definition":"[Name][name]","functions":"","semver":"","allowedChildrenForms":[],"layout":{"id":"","v":"","text":""},"color":{"id":"","v":"","text":""},"iconName":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null}},"applicationLayoutOptions":{"id":"","v":"","text":""},"documentLayoutOptions":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2018-04-18T15:41:59+02:00","by":"","backedBy":"","from":"","client":"server"},"modified":{"at":"2018-04-18T15:41:59+02:00","by":"","backedBy":"","from":"","client":"server"},"t":1524058919708,"ct":1524058919708,"a_depth":3,"a":["apps","aed1ba1c-9095-4aca-8176-74a37325f0e5","58cc45fb-3fb3-45e8-b61d-4b89899e357a"],"a_forms":["folder","application-form","folder"],"inheritedLocks":[null,null,null,null],"stamps":[]},{"id":"5d0ac040-1428-48bc-9b4f-28c69e098b3c","v":"initial","p":"97851ae4-ed6d-45fa-b1a0-4cab2145f189","f":{"id":"form","v":"4fa42fcff3786d1e","text":"Form"},"data":{"name":"Search","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Name][name]","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2020-03-25T14:12:27+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2020-03-25T14:12:27+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1585145547926,"ct":1585145547926,"a_depth":3,"a":["apps","9302d29e-bf32-4350-a5fd-18b542d1b5db","97851ae4-ed6d-45fa-b1a0-4cab2145f189"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1636040939946},{"id":"f85fbba8-1232-4ec7-9ca8-da9fc5b14109","v":"c3cdf62c319aec60","previous":{"v":"66392740b3b92048"},"p":"1096c5df-2773-4914-9455-dc54e0f3e0e5","f":{"id":"form","v":"24ab84939535fdcd","text":"Form"},"data":{"name":"Unterweisungs-Vorlagen","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"","functions":"","allowedChildrenForms":[],"commands":[{"id":"8c70a773-505a-4b7b-a165-21ac049c54b5","v":"f689d442502e3271","text":"Neu"}],"description":""},"locks":[],"created":{"at":"2020-11-27T12:26:53+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2020-12-10T08:57:54+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1607590674728,"ct":1606480013162,"a_depth":3,"a":["apps","f416e371-07cc-4987-a6de-5934ef5ff3e4","1096c5df-2773-4914-9455-dc54e0f3e0e5"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1606480354273},{"id":"b32fed0d-d54f-47ac-9174-cc42cfa585e5","v":"initial","p":"9b024049-2573-4921-acaa-3e172e9332d7","f":{"id":"form","v":"12ceedaed4c81b21","text":"Form"},"data":{"name":"Wartungen","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"","functions":"","allowedChildrenForms":[],"commands":[],"description":"","theme":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2022-02-28T15:00:39+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2022-02-28T15:00:39+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1646060439144,"ct":1646060439144,"a_depth":3,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1646316257023},{"id":"83204a3e-ce65-4c74-9c6c-ea659224610d","v":"347604ca51bd2eab","previous":{"v":"0c20d65155ceb9e4"},"p":"9b024049-2573-4921-acaa-3e172e9332d7","f":{"id":"form","v":"12ceedaed4c81b21","text":"Form"},"data":{"name":"Objekte","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"","functions":"","allowedChildrenForms":[],"commands":[{"id":"b3ee843c-beba-47b4-9ba0-b02bf518bcc7","v":"initial","text":"Neu"},{"id":"384d5dcf-d60c-4555-8ca7-be07959fdacf","v":"b5a6b85f1ba955d2","text":"rd:Neu"}],"description":"","theme":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2022-04-05T12:56:24+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2024-05-23T10:58:22+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1716461902590,"ct":1649163384584,"a_depth":3,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1716461886759},{"id":"5bb66c24-a34f-4ed4-8319-0b2e28ee4e73","v":"00d81b209e99d171","p":"d86dc31e-ad2c-45b7-8606-a6ce35580b10","f":{"id":"form","v":"b0b69a951dde83ea","text":"Form"},"data":{"name":"Leistungsmessung der Sprinklerpumpe","tags":"","allowUndefinedFields":false,"definition":"[V Anzeigengerät %, Testleitung DN][prozent]\n[V = Liter / Minute, Anzeigengerät][literProMinute]\n[Druck, Saugseite][druckSaugseite]\n[Druck, Druckseite][druckDruckseite]\n[E- Stromaufnahme][eStromaufnahme]\n[D- Drehzahl / RPM][dDrehzahl]\n[D- Temperatur / Öl][dOelTemperatur]\n[D- Temperatur / Kühlwasser][dKuehlwasserTemperatur]","functions":"","relatedDocuments":[],"defaults":"","newTemplate":{"id":"","v":"","text":""},"newAction":{"id":"","v":"","text":""},"allowedChildrenForms":[],"commands":[],"descendantCommands":[],"to":[],"from":[],"namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"","v":"","text":""},"description":""},"locks":[],"created":{"at":"2025-08-06T13:09:17+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2025-08-06T13:09:17+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1754485772736,"ct":1754485772736,"a_depth":3,"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","d86dc31e-ad2c-45b7-8606-a6ce35580b10"],"a_forms":["folder","application-form","folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"previous":{"v":"initial","f":{"id":"form","v":"42ef1fd37c206edb","text":"Form"}},"meta":{"modified":{"at":"2025-08-06T13:09:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"34175cf3-8f6f-4eaf-ab75-b4dbd1c0b509","v":"08c7cad1b7bb8735","previous":{"v":"initial"},"p":"252f693f-4fdd-4aa4-8185-95c2e0539c62","f":{"id":"form","v":"5f508b9373050c50","text":"Form"},"data":{"name":"Calendar","description":"","definition":"[Name][name]\n\n[Icon][icon]\n[icon]: Image\n\n[Events][events]\n[events]:/Query\n\n","semver":"1.0.0","children":[],"layout":{"id":"","v":"","text":""},"color":{"id":"","v":0,"text":""},"icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null}},"applicationLayoutOptions":{"id":"","v":"","text":""},"documentLayoutOptions":{"id":"","v":"","text":""}},"locks":[],"lockRefs":[],"created":{"at":"2017-09-15T10:29:32+02:00","by":"","from":"","client":"import"},"modified":{"at":"2017-12-05T15:33:01+01:00","by":"","from":"","client":"175b8acb-f708-4ee2-8cc5-a8b0493ed7f2"},"t":1512484381237,"ct":1467644302777,"a_depth":3,"a":["apps","21ba9d78-2545-4495-a24b-129f934de2f1","252f693f-4fdd-4aa4-8185-95c2e0539c62"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1467644305427},{"id":"3b0389d0-78b1-4e26-adf0-20086c87ae40","v":"e0ef4531378c943b","previous":{"v":"0dae11249369f4ee"},"p":"f254ce25-42f1-4333-8ee7-23554bf746c1","f":{"id":"form","v":"e02c68c619719072","text":"Form"},"data":{"name":"Projektdateien","tags":"","namedIcon":"far fa-folder-open","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Name][name]","functions":"","allowedChildrenForms":[{"id":"a37b2d75-d9d3-495a-a31c-52094d82e7bb","v":"2017314140d8ef3b","text":"Docx Template"},{"id":"dbee6e16-d63a-493c-bba6-505f79918f9f","v":"ffffb258b9fbf10a","text":"Datei"}],"commands":[{"id":"c9634c02-6e55-4cfd-892f-eb4f2645956f","v":"initial","text":"Neu"}],"description":""},"locks":[],"created":{"at":"2020-02-25T15:28:36+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2024-04-02T14:05:57+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1712066757674,"ct":1602584344460,"a_depth":3,"a":["apps","94a64d89-d204-4918-b147-d717914fb03e","f254ce25-42f1-4333-8ee7-23554bf746c1"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1712066634370},{"id":"5d69e79e-f8d7-48f3-8631-d50c6025dda6","v":"e5d3255a64077eba","previous":{"v":"998d8692e71a853b"},"p":"15292d56-6806-4263-b6d0-9194687203e1","f":{"id":"form","v":"42ef1fd37c206edb","text":"Form"},"data":{"name":"Gebäude-Liste","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"","functions":"","allowedChildrenForms":[],"commands":[{"id":"719b47ce-ca75-48c0-be8c-c1547579dd9c","v":"initial","text":"Neu"}],"description":"","theme":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2022-04-21T12:29:36+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-08-18T11:52:48+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1660823568033,"ct":1650544176817,"a_depth":3,"a":["apps","86189c5a-b9f4-445a-879f-d94574960df0","15292d56-6806-4263-b6d0-9194687203e1"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1664199715423},{"id":"11b48436-fdf2-487e-883c-0de21afd3817","v":"7acd38efe0832bdb","cloneOf":{"id":"3dc78392-be3d-4804-996e-df4bcd1c5ce4","v":"a914529f210f4b0e","text":"Stammdaten"},"originalCloneOf":{"id":"3dc78392-be3d-4804-996e-df4bcd1c5ce4","v":"a914529f210f4b0e","text":"Stammdaten"},"previous":{"v":"87cbc6de23510854"},"p":"83e0eafe-40b0-4a4d-a4bf-88940f2d098b","f":{"id":"form","v":"85261b4ecd01c3ab","text":"Form"},"data":{"name":"Stammdaten","tags":"","definition":"[Name][name]","functions":"","allowedChildrenForms":[],"description":""},"locks":[],"created":{"at":"2019-04-04T09:58:36+00:00","by":"2695f56c-96e6-4009-8e2f-d545ea1e02aa","from":"","client":"server"},"modified":{"at":"2019-05-03T14:02:35+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"31b9fcf8-556e-4721-b743-601499af15cb"},"t":null,"ct":1554371916383,"a_depth":3,"a":["apps","9c1db9f8-e61a-46ef-9fb2-ca409e980f45","83e0eafe-40b0-4a4d-a4bf-88940f2d098b"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1554372075641},{"a":["apps","1887a103-bf3b-473c-8cb7-4f1afad0286b","9b02b1b6-e32b-41ec-b451-dba59bc5847b"],"a_depth":3,"a_forms":["folder","application-form","form-folder"],"created":{"at":"2021-10-06T12:53:13+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":""},"ct":1633524793345,"data":{"allowedChildrenForms":[{"id":"5a88c3ad-ed61-473d-8c2d-2ce4f54db7f2","text":"Aufgaben-Listen","v":"479cb58a9a3c9d40"}],"commands":[{"id":"b8fcb1c4-2e40-414d-a338-6083e3735c23","text":"rd:Neu","v":"initial"}],"definition":"[Name][name]","description":"","functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Vorlagen","namedIcon":"","namedIconColor":"","tags":""},"f":{"id":"form","text":"Form","v":"cc65f983157bf1fd"},"id":"573419c5-1ab4-43c9-94ba-a831ae580d6a","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2024-11-14T14:28:25+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"9b02b1b6-e32b-41ec-b451-dba59bc5847b","previous":{"v":"f24df149e3fb14c3"},"stamps":[],"t":1731594505071,"v":"92e6ab1615dda268","dts":1731594538677},{"id":"cdf93f5b-9bea-494d-99e1-a7dd39d91586","v":"84cee6e9a73a346c","previous":{"v":"34332e83e4d7de4c"},"p":"9b024049-2573-4921-acaa-3e172e9332d7","f":{"id":"form","v":"42ef1fd37c206edb","text":"Form"},"data":{"name":"Teil-Einträge","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"","functions":"","allowedChildrenForms":[{"id":"0dfd4afd-f2ec-4ff0-9a79-811badf4fed5","v":"4b6a68ca48885771","text":"Teil-Eintrag"}],"commands":[{"id":"ab1f49f9-b216-47e5-abc0-bfd4f150ae51","v":"initial","text":"rd:Neu"}],"description":"","theme":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2022-04-07T14:40:49+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2024-05-23T10:58:41+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1716461921068,"ct":1649342449672,"a_depth":3,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1716461938426},{"id":"5e447a00-40e9-4881-b4e8-06cad2c28bba","v":"cb6efec1cbface1b","previous":{"v":"initial","p":"f254ce25-42f1-4333-8ee7-23554bf746c1","a":["apps","94a64d89-d204-4918-b147-d717914fb03e","f254ce25-42f1-4333-8ee7-23554bf746c1"],"a_forms":["folder","application-form","form-folder"]},"p":"2fee3f35-6446-483d-aafe-4d2bc1deb83e","f":{"id":"form","v":"e02c68c619719072","text":"Form"},"data":{"name":"Auswertung: Projekt-Status Übergänge","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Name][name]","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2021-01-05T15:11:45+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-01-05T15:11:45+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1710774886848,"ct":1609859505021,"a_depth":3,"a":["apps","bfeee3b0-ad25-4bba-a51c-01584d72c45a","2fee3f35-6446-483d-aafe-4d2bc1deb83e"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"meta":{"modified":{"at":"2024-03-18T15:14:46+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}},"dts":1609859505325},{"id":"55b76650-8f79-4cb4-bfb2-9e46ad80853d","v":"82eb8011509cbd0e","p":"2b5725a7-9e8f-4993-a3e8-ef9c1ff0be8c","f":{"id":"form","v":"d497194b29933d26","text":"Form"},"data":{"name":"ae-icon test","tags":"","allowUndefinedFields":false,"definition":"[Name][name]","functions":"","defaults":"","newTemplate":{"id":"","v":"","text":""},"newAction":{"id":"","v":"","text":""},"allowedChildrenForms":[],"commands":[],"namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"","v":"","text":""},"description":""},"locks":[],"created":{"at":"2018-08-07T12:19:21+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2019-03-27T11:46:27+01:00","by":"21755d65-c561-473a-ad0d-bac9a744d145","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1719319448638,"ct":1719319448638,"a_depth":3,"a":["system","04632e3e-9132-4927-b91d-3c28d1afe3e9","2b5725a7-9e8f-4993-a3e8-ef9c1ff0be8c"],"a_forms":["system-folder-form","folder","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"previous":{"v":"02c91eddf4ef811f","f":{"id":"form","v":"636c28c49e0bd3c5","text":"Form"}},"meta":{"modified":{"at":"2024-06-25T14:44:08+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}},"dts":1719319448799},{"id":"df3870fe-b129-4535-9e52-c33a05fb4bce","v":"0a1f625d199504e9","previous":{"v":"6ce3bfdf2ac43359"},"p":"169e87e0-0379-48e1-8c94-8fadac5969bb","f":{"id":"form","v":"42ef1fd37c206edb","text":"Form"},"data":{"name":"Mitarbeiterverwaltung","tags":"","namedIcon":"fas fa-user-cog","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Name][name]\n","functions":"","allowedChildrenForms":[],"commands":[{"id":"4ba69e5e-c41a-435f-a3bd-6ebea7fe64ca","v":"a759fc55cf4929ff","text":"rd:Neu"}],"description":"","theme":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2020-05-08T08:51:31+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2023-09-27T12:19:16+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1695817156965,"ct":1666780907335,"a_depth":3,"a":["apps","a590ce5b-28fc-4f85-9049-d006e1b8f880","169e87e0-0379-48e1-8c94-8fadac5969bb"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1738155947850},{"id":"c818d93b-446d-494f-8120-a39db2bdf484","v":"aaad61202d223f7a","previous":{"v":"19f465f1705ff86b"},"p":"5d6fa6d3-7580-4c6f-9487-fff961f9c751","f":{"id":"form","v":"8c1496d16c344c2e","text":"Form"},"data":{"name":"Dashboard","tags":"full-page","definition":"[Name][name]\n\n[Container][containers]\n[containers]: /42424bba-dbd1-4a7b-a0a4-81d647d8a000 (0-n)","functions":"","allowedChildrenForms":[],"description":""},"locks":[],"created":{"at":"2019-03-08T10:42:22+00:00","by":"c28abfb5-e53a-40df-8454-8cc8666cbe15","from":"","client":"server"},"modified":{"at":"2020-05-08T08:58:04+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1588928284827,"ct":1552041742458,"a_depth":3,"a":["apps","43f84041-0fd7-4ccb-b7b5-7a38f89ada37","5d6fa6d3-7580-4c6f-9487-fff961f9c751"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1553676862285},{"id":"89a3cd1a-7afc-4413-9327-a5b5d87cdfcc","v":"initial","p":"15292d56-6806-4263-b6d0-9194687203e1","f":{"id":"form","v":"42ef1fd37c206edb","text":"Form"},"data":{"name":"Stammdaten","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"","functions":"","allowedChildrenForms":[],"commands":[],"description":"","theme":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2022-08-17T11:33:17+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2022-08-17T11:33:17+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1660735997797,"ct":1660735997797,"a_depth":3,"a":["apps","86189c5a-b9f4-445a-879f-d94574960df0","15292d56-6806-4263-b6d0-9194687203e1"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1660736103042},{"id":"7f955a3b-e5cf-45ff-a13b-2053751439cd","v":"initial","p":"55112711-674e-46d1-a76a-3660e0862851","f":{"id":"form","v":"02cb7a987693d08b","text":"Form"},"data":{"name":"Prototyp","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2020-05-08T08:52:36+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2020-05-08T08:52:36+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1588927956721,"ct":1588927956721,"a_depth":3,"a":["apps","fb23c419-a6bb-4f45-9f62-e79baa359f89","55112711-674e-46d1-a76a-3660e0862851"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1588927956741},{"id":"096cfb8f-bb8e-4a6e-87c2-2d1fac5e822a","v":"7f079c752562c4e3","previous":{"v":"d43f3df069405a51"},"p":"9b024049-2573-4921-acaa-3e172e9332d7","f":{"id":"form","v":"12ceedaed4c81b21","text":"Form"},"data":{"name":"Wartungsfirmen","tags":"","namedIcon":"fa fa-user-hard-hat","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Name][name]","functions":"","allowedChildrenForms":[{"id":"3592ceee-ae9a-47a9-8488-7bad5b0d9ff5","v":"eae8028e3043c2d1","text":"Wartungsfirma"}],"commands":[{"id":"4cb4168c-b5de-46e5-be64-f424cf1d514d","v":"initial","text":"rd:Neu"}],"description":"","theme":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2022-02-28T15:01:03+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2024-05-23T11:00:24+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1716462024748,"ct":1646060463351,"a_depth":3,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1716462043696},{"id":"d990fd22-7ffc-4395-86a7-804da25f908b","v":"c21bf6cf401d02f4","previous":{"v":"initial","f":{"id":"form","v":"af06aca6217d20c5","text":"Form"}},"p":"35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f","f":{"id":"form","v":"8c1496d16c344c2e","text":"Form"},"data":{"name":"Unternehmen","tags":"","definition":"[Name][name]\n\n[Anschrift][anschrift]\n\n{children}\n[Telefonnummern][telefonnummern]\n[telefonnummern]: /Apps/Gilbrin/Forms/Telefonnummer (0-n)\n\n{map}\n[][anschrift]\n\n[anschrift]: Address","functions":"","allowedChildrenForms":[],"description":""},"locks":[],"created":{"at":"2019-05-03T14:03:51+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2019-05-03T14:03:51+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1556885031129,"ct":1556885031129,"a_depth":3,"a":["apps","b791df37-6eef-4a3e-9066-1b79e0bdad31","35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1554203270010},{"id":"8de1bf7a-fbd9-4386-9b15-6e0f5e0cdf37","v":"01dd3c7b6a742280","previous":{"v":"01c8fc7cc5a058c8"},"p":"43976185-12d8-4a50-9a93-9b42e455838d","f":{"id":"form","v":"d38c7ea672c72204","text":"Form"},"data":{"name":"Vorstellungen","definition":"[Name][name]","functions":"","allowedChildrenForms":[{"id":"b33c990d-c2aa-433f-b30e-c909895a4a4a","v":"18c84189707817b1","text":"Vorstellung"}],"description":""},"locks":[],"created":{"at":"2018-12-05T11:35:21+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2019-03-28T16:16:11+01:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1553786171084,"ct":1544009721587,"a_depth":3,"a":["apps","5cff2cfd-1083-47f1-acc2-46e6440304cc","43976185-12d8-4a50-9a93-9b42e455838d"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1544016641210},{"id":"fe84ab6a-27cb-496d-aaa9-2c375e7b7b16","v":"9c539f23f41a2743","previous":{"v":"f45672aeb8a26740","p":"85385200-fc78-43d0-b347-039434329781"},"p":"08a88408-534b-4ca2-b96e-7ee12b00e6d2","f":{"id":"form","v":"4fa42fcff3786d1e","text":"Form"},"data":{"name":"Personalverwaltung","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Name][name]","functions":"","allowedChildrenForms":[{"id":"da18ed53-47e1-4d39-bc02-7e02ef1c22bc","v":"37c03582d9def3d5","text":"Personaldaten"}],"commands":[],"description":""},"locks":[],"created":{"at":"2017-12-06T10:09:04+01:00","by":"","from":"","client":"166cf5c1-e05b-442a-a8f6-b9b5205a4a8f"},"modified":{"at":"2020-05-08T08:51:32+00:00","by":null,"backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1588927892454,"ct":1588927892243,"a_depth":3,"a":["apps","c978f91a-22e9-434c-9ad0-c9781eeae198","08a88408-534b-4ca2-b96e-7ee12b00e6d2"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1588927892244},{"id":"1ec5237d-463a-417f-8dac-5bbbbc2e35b7","v":"818b5f96bcd23237","previous":{"v":"17d758c510f84f67"},"p":"8e6ee7d3-9122-4a2e-8aaf-9fb3bd204b23","f":{"id":"form","v":"24ab84939535fdcd","text":"Form"},"data":{"name":"Mitarbeiter Ordner","tags":"","namedIcon":"fa fa-users","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"# Folder\n\n[Name][name]\n\n[Description][description]\n[description]: Text\n\n[Icon][icon]\n\n[icon]: File\n\n# Contents\n\n[Form of contained Documents][contentsForm]\n[contentsForm]: /form\n\n{child}\n[Custom Add-Command][customAddCommand]\n[customAddCommand]: /command-form\n\n## Configuration document\n\n> If some configuration is possible, it might be useful to allow the user to navigate there.\n> \n> Only displayed if a target is selected.\n\n[Target of settings cog][configurationDocument]\n[configurationDocument]: ref\n\n## Display Table\n\n> Row height sets a fixed height to each row, regardless of its content.\n>\n> This value is required.\n\n[Row height][rowHeight]\n[rowHeight]: number <required>\n\n> Fields of a document's data need `data.` before the name of the field. e.g. for field of name `position` you shall write `data.position`\n>\n> Documents meta data e.g. `id`, `created.at`, ... can be addressed to, without any preceding text.\n\n[Fields to display as Columns (,)][displayTableColumns]\n\n[Column Headers (,)][displayTableHeaders]\n\n[Column Designs (,)][displayTableDesigns]\n\n### Initial Sorting\n\n> Defaults to `data.name`\n\n[Sort by][sortBy]\n\n[Sort ascending][sortAsc]\n[sortAsc]: switch\n\n### Sorting configuration\n\n[Show reset sorting button][showResetSorting]\n[showResetSorting]: switch","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2019-06-24T08:41:25+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2021-02-01T14:42:45+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1612190565637,"ct":1612190565636,"a_depth":3,"a":["apps","144e85c0-d7f9-4b20-8928-be30f0c78bda","8e6ee7d3-9122-4a2e-8aaf-9fb3bd204b23"],"a_forms":["folder","application-form","folder"],"inheritedLocks":[null,null,null,null],"stamps":[]},{"id":"8775cf16-c122-4de4-9859-a57ae99dcc5c","v":"initial","p":"dbd0bd68-3479-4032-9303-9d51615c27a7","f":{"id":"form","v":"d38c7ea672c72204","text":"Form"},"data":{"name":"Products","definition":"[Name][name]","functions":"","allowedChildrenForms":[{"id":"9bcbb6e8-5d66-4c3b-9132-8482e82e4594","v":"004fd2d4d6ef68b1","text":"Product"}],"description":""},"locks":[],"created":{"at":"2018-12-07T12:11:01+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2018-12-07T12:11:01+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1544184661194,"ct":1544184661193,"a_depth":3,"a":["apps","781ff5de-69db-49dc-99f0-f328b308cd7d","dbd0bd68-3479-4032-9303-9d51615c27a7"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1588927970566},{"id":"f69da93c-1d0b-4f18-97f4-82e61073e157","v":"61882b41a43faf4f","previous":{"v":"initial","p":"f254ce25-42f1-4333-8ee7-23554bf746c1","a":["apps","94a64d89-d204-4918-b147-d717914fb03e","f254ce25-42f1-4333-8ee7-23554bf746c1"],"a_forms":["folder","application-form","form-folder"]},"p":"2fee3f35-6446-483d-aafe-4d2bc1deb83e","f":{"id":"form","v":"e02c68c619719072","text":"Form"},"data":{"name":"Auswertung: Verträge","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Name][name]","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2021-01-05T15:11:37+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-01-05T15:11:37+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1710774880568,"ct":1609859497444,"a_depth":3,"a":["apps","bfeee3b0-ad25-4bba-a51c-01584d72c45a","2fee3f35-6446-483d-aafe-4d2bc1deb83e"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"meta":{"modified":{"at":"2024-03-18T15:14:40+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}},"dts":1609859497570},{"id":"296d07ef-b468-480e-8e8b-270b83f68863","v":"initial","previous":{"v":""},"p":"46c5b63b-50ff-47ea-83a8-72c35dc21618","f":{"id":"form","v":"af06aca6217d20c5","text":"Form"},"data":{"name":"Hilfe Eintrag","description":"","definition":"[Titel][name]\n\n{markdown}\n[Markdown][markdown]\n","functions":"","semver":"","allowedChildrenForms":[],"layout":{"id":"","v":"","text":""},"color":{"id":"","v":"","text":""},"iconName":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null}},"applicationLayoutOptions":{"id":"","v":"","text":""},"documentLayoutOptions":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2018-04-18T15:40:54+02:00","by":"","backedBy":"","from":"","client":"server"},"modified":{"at":"2018-04-18T15:40:54+02:00","by":"","backedBy":"","from":"","client":"server"},"t":1524058854450,"ct":1524058854450,"a_depth":3,"a":["apps","9e7fd821-5bd9-4314-a542-34431752f51f","46c5b63b-50ff-47ea-83a8-72c35dc21618"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1689236549706},{"id":"133d6aab-1f5b-447f-a513-e6d468388476","v":"initial","p":"dbd0bd68-3479-4032-9303-9d51615c27a7","f":{"id":"form","v":"b0b1f4808edd7503","text":"Form"},"data":{"name":"Production Assembly Tree","tags":"","definition":"[Name][name]","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2021-11-02T09:38:37+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-11-02T09:38:37+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1635845917336,"ct":1635845917336,"a_depth":3,"a":["apps","781ff5de-69db-49dc-99f0-f328b308cd7d","dbd0bd68-3479-4032-9303-9d51615c27a7"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1635845917453},{"id":"1a899567-18c8-4428-a377-caa9b3ed6c9f","v":"e7c5496067a887b7","previous":{"v":"375fd650d822a3ac"},"p":"9b024049-2573-4921-acaa-3e172e9332d7","f":{"id":"form","v":"42ef1fd37c206edb","text":"Form"},"data":{"name":"Arbeits-Einträge","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"","functions":"","allowedChildrenForms":[{"id":"204787ca-59c2-4b11-b866-aa05fa9c9891","v":"8ebfb2cd55f2b559","text":"Arbeits-Eintrag"}],"commands":[{"id":"86f305fb-c44d-4d54-b26c-2dfaa67ca54e","v":"initial","text":"rd:Neu"}],"description":"","theme":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2022-04-07T14:40:31+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2024-05-23T10:59:31+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1716461971695,"ct":1649342431308,"a_depth":3,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1716461993811},{"id":"4dd133fa-e12a-4ff3-a49e-9422fc4c4caf","v":"initial","p":"b6b5ad5b-124f-4b1c-8f55-74294451a2ba","f":{"id":"form","v":"4fa42fcff3786d1e","text":"Form"},"data":{"name":"Aufgaben Kalender","tags":"","namedIcon":"fa fa-calendar-alt","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Name][name]\n","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2020-05-08T08:51:40+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2020-05-08T08:51:40+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1588927900027,"ct":1588927900026,"a_depth":3,"a":["apps","49babc91-9123-4d92-b850-ce4d10f0e1b4","b6b5ad5b-124f-4b1c-8f55-74294451a2ba"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1636544403779},{"id":"b29709d0-8fd5-4da8-8bbc-4f61fb9f82d9","v":"86354f284c42302c","p":"b42e5a69-6cf0-4b55-928a-755011005b5a","f":{"id":"form","v":"4fa42fcff3786d1e","text":"Form","client":"server"},"data":{"name":"Translation","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Name][name]\n\n{yaml}\n[Translations][translations]","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2018-08-16T09:25:46+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2020-05-08T08:50:38+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1588927838410,"ct":1588927838410,"a_depth":3,"a":["apps","77ee8815-2c3a-4bb5-abd9-90541a545a24","b42e5a69-6cf0-4b55-928a-755011005b5a"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"previous":{"v":"df6ff0416d1cd777","f":{"id":"form","v":"f0e1626ad2b3fe9e","text":"Form"}},"dts":1547048239620},{"id":"bd9bf8c0-f0d5-41ce-8fea-146471f824de","v":"initial","p":"9b024049-2573-4921-acaa-3e172e9332d7","f":{"id":"form","v":"12ceedaed4c81b21","text":"Form"},"data":{"name":"Anmeldung","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"","functions":"","allowedChildrenForms":[],"commands":[],"description":"","theme":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2022-04-01T10:20:07+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2022-04-01T10:20:07+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1648808407498,"ct":1648808407498,"a_depth":3,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1681225505773},{"id":"6786b72e-276f-4c82-b7c5-ca5758689118","v":"aec60de2c56a1098","p":"b42e5a69-6cf0-4b55-928a-755011005b5a","f":{"id":"form","v":"cc65f983157bf1fd","text":"Form"},"data":{"name":"Recents","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"{ref list=true}\r\n[Pinned Files][pinnedFiles]\r\n[pinnedFiles]: /6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2 (0-n)\r\n\r\n{ref list=true}\r\n[Files][files]\r\n[files]: /6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2 (0-n)\r\n\r\n{ref list=true}\r\n[Pinned News][pinnedNews]\r\n[pinnedNews]: /86966584-6ee3-4351-8e6e-ff6e695b970a (0-n)\r\n\r\n{ref list=true}\r\n[News][news]\r\n[news]: /86966584-6ee3-4351-8e6e-ff6e695b970a (0-n)\r\n\r\n{ref list=true}\r\n[Employees][employees]\r\n[employees]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n)","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2018-05-23T16:20:06+02:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","from":"","client":"server"},"modified":{"at":"2021-09-27T11:49:22+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1632743362511,"ct":1632743362511,"a_depth":3,"a":["apps","77ee8815-2c3a-4bb5-abd9-90541a545a24","b42e5a69-6cf0-4b55-928a-755011005b5a"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"previous":{"v":"0eb5c2cf9deda6e6","f":{"id":"form","v":"a8827534d4cc5e99","text":"Form"}},"dts":1648473013611},{"id":"47e813ae-6780-4aa9-a1cb-b3f625d7468d","v":"initial","p":"9d7c3582-4c41-47ef-938e-2cb3880ab789","f":{"id":"form","v":"24ab84939535fdcd","text":"Form"},"data":{"name":"NFS","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2020-09-18T14:44:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2020-09-18T14:44:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1600440272355,"ct":1600440272354,"a_depth":3,"a":["apps","02c3f939-f382-4e27-b3d4-bea5fdd6e092","9d7c3582-4c41-47ef-938e-2cb3880ab789"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1601304520298},{"id":"41f040c3-4bb1-489b-86b9-a736c7d0e860","v":"2a322a918ad019e4","previous":{"v":"initial"},"p":"0fb162f4-0f78-4c1e-aad2-43c27e6d98cb","f":{"id":"form","v":"149b228b7b0826ce","text":"Form"},"data":{"name":"Auswertungen","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2021-01-07T08:19:21+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2021-01-07T08:19:37+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1610007577330,"ct":1610007561772,"a_depth":3,"a":["apps","3fbe0efd-713a-457a-a34c-3a12aa19d6bb","0fb162f4-0f78-4c1e-aad2-43c27e6d98cb"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1623851734548},{"id":"a81d14be-57ea-4eaa-88b2-14c72486aab4","v":"019ed096867ca74e","p":"2b5725a7-9e8f-4993-a3e8-ef9c1ff0be8c","f":{"id":"form","v":"f0e1626ad2b3fe9e","text":"Form","client":"server"},"data":{"name":"Account and Group Checker Form","description":"","tags":"","definition":"[Name][name]\n\n[Key][key]\n[key]: /key-form\n\n[Group][group]\n[group]: /e5c233c9-5425-48d7-a785-d962897bc6f8\n","functions":"","semver":"","allowedChildrenForms":[],"useLock":false,"sharedLock":{"id":"","v":"","text":""},"creatorKeys":[],"cloneLock":{"id":"","v":"","text":""},"cloneRoles":[],"layout":{"id":"","v":"","text":""},"color":{"id":"","v":"","text":""},"iconName":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null}},"applicationLayoutOptions":{"id":"","v":"","text":""},"documentLayoutOptions":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2019-03-27T11:46:27+01:00","by":"21755d65-c561-473a-ad0d-bac9a744d145","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2019-03-27T11:46:27+01:00","by":"21755d65-c561-473a-ad0d-bac9a744d145","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1553683587320,"ct":1553683587320,"a_depth":3,"a":["system","04632e3e-9132-4927-b91d-3c28d1afe3e9","2b5725a7-9e8f-4993-a3e8-ef9c1ff0be8c"],"a_forms":["system-folder-form","folder","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"previous":{"v":"initial","f":{"id":"form","v":"636c28c49e0bd3c5","text":"Form"}},"dts":1544518208019},{"id":"65abdd36-c20f-4742-8744-3995211cdd2f","v":"1ccc73ff73c92d43","previous":{"v":"7d38535ee49f176b"},"p":"79718664-ed22-4b52-9c10-037881df3578","f":{"id":"form","v":"2e7e396282349d68","text":"Form"},"data":{"name":"Meine Notizen","label":"","tags":"bizpin","namedIcon":"fa fa-user","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"{hidden}\n[Name][name]\n\n{tasks:quick-add}\n[][aufgaben]\n\n{children no-templates=true delete-on-remove=true add-to-beginning=true show-filter=true design=ref-selectable initial-filters=data.erledigt,data.prioritaet,data.bisStart,data.bisEnde}\n[Aufgaben][aufgaben]\n[aufgaben]: /544d11b1-a156-4568-aeb3-2a60b2b57807 (0-n)\n\n","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2020-03-23T11:29:05+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2021-02-01T14:43:05+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1612190585442,"ct":1612190585440,"a_depth":3,"a":["apps","599db2de-4e07-4722-98bd-7f42d498b352","79718664-ed22-4b52-9c10-037881df3578"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1635248227113},{"id":"14b26fb3-bc41-4172-94da-954a55f5fe65","v":"e2924bba1f5b66f2","previous":{"v":"initial"},"p":"7a20d482-9f09-47a0-984e-f9aaec24e338","f":{"id":"form","v":"42ef1fd37c206edb","text":"Form"},"data":{"name":"Fragebögen","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"","functions":"","allowedChildrenForms":[{"id":"f7583ba1-ddbc-4c46-b1fe-f7bb326fded6","v":"b7f9b32a2ff2cd19","text":"Fragebogen: Alle Bauvorhaben"},{"id":"b6e0328c-73b0-4bb9-85b4-d9c54b8c4745","v":"a156f261cc15b69a","text":"Fragebogen: Brandschutz"},{"id":"55e4b86c-4ca0-4f39-878a-a97ba0437e40","v":"752dcb31f54c3fa7","text":"Fragebogen: Fördermittel"},{"id":"177f2216-811f-4fdf-bc4a-c2cfe18cffd7","v":"4419e8b74422b82b","text":"Fragebogen: Schallschutz"},{"id":"73729d8f-7a1f-429a-a198-13efa62ee116","v":"bd42b9954852afe5","text":"Fragebogen: Wärmeschutz"}],"commands":[],"description":"","theme":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2022-11-08T15:40:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-11-29T14:47:54+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1669733274920,"ct":1667922032502,"a_depth":3,"a":["apps","94a64d89-d204-4918-b147-d717914fb03e","7a20d482-9f09-47a0-984e-f9aaec24e338"],"a_forms":["folder","application-form","folder"],"inheritedLocks":[null,null,null,null],"stamps":[]},{"id":"24842415-3690-4cad-82b9-b959ae7621c6","v":"78ca4419f564b30a","previous":{"v":"6973f68e444292b3"},"p":"13525440-3a25-44be-851b-1bcd803bff80","f":{"id":"form","v":"24ab84939535fdcd","text":"Form"},"data":{"name":"Einstellungen","tags":"","namedIcon":"fa fa-cogs","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Name][name]\n","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2020-09-16T13:49:14+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2020-11-25T13:41:47+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1606311707107,"ct":1600264154822,"a_depth":3,"a":["apps","a4f3e35e-f945-4c8b-a7a4-81e987585974","13525440-3a25-44be-851b-1bcd803bff80"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1708338966441},{"id":"fc2bd280-6c0c-4e62-ac45-ce67d884ff01","v":"initial","p":"15292d56-6806-4263-b6d0-9194687203e1","f":{"id":"form","v":"42ef1fd37c206edb","text":"Form"},"data":{"name":"Mieter-Liste","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"","functions":"","allowedChildrenForms":[{"id":"3c0a7011-6a65-4ed3-98e1-06e4f5a314d8","v":"226b86e5b52656dd","text":"Mieter"}],"commands":[],"description":"","theme":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2022-08-16T10:55:37+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2022-08-16T10:55:37+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1660647337021,"ct":1660647337021,"a_depth":3,"a":["apps","86189c5a-b9f4-445a-879f-d94574960df0","15292d56-6806-4263-b6d0-9194687203e1"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1660907988185},{"a":["apps","599db2de-4e07-4722-98bd-7f42d498b352","79718664-ed22-4b52-9c10-037881df3578"],"a_depth":3,"a_forms":["folder","application-form","form-folder"],"created":{"at":"2020-05-08T08:51:34+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":""},"ct":1588927894099,"data":{"allowedChildrenForms":[],"commands":[],"definition":"[Name][name]\n\n[Type][type]\n[type]: select\n  - BIZPIN: Bizpin (Redesign)\n  - BIZPIN_CORE: DEPRECATED! Bizpin (Redesign)\n  - ENERGIE: Energieberater\n  - ITM: IT Mitbestimmung\n  - TIERKLINIK: Tierklinik\n  - CASTING: Casting Agentur\n  - KEEPTRACK: Keep Track\n","description":"","functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Dashboard","namedIcon":"","namedIconColor":"","tags":""},"f":{"id":"form","text":"Form","v":"a57e5af653d72344"},"id":"7be5f2c5-206b-4ab6-9d4d-c4834baf8e32","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2025-10-24T15:06:34+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"79718664-ed22-4b52-9c10-037881df3578","previous":{"v":"b5abd5e7599d077b"},"stamps":[],"t":1761318394088,"v":"0aed884928510eaf"},{"id":"4aed43d5-124f-47e7-9600-8a6e70ed59ab","v":"12021f75865abfce","previous":{"v":"initial"},"p":"b42e5a69-6cf0-4b55-928a-755011005b5a","f":{"id":"form","v":"cc65f983157bf1fd","text":"Form"},"data":{"name":"Meine Aufgaben","tags":"","namedIcon":"fa fa-check","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2021-10-26T09:51:30+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-10-26T11:23:53+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1635247433001,"ct":1635241890520,"a_depth":3,"a":["apps","77ee8815-2c3a-4bb5-abd9-90541a545a24","b42e5a69-6cf0-4b55-928a-755011005b5a"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1635248032881},{"id":"aeff79db-4983-45b8-aa9e-38a33d6fb5a5","v":"initial","p":"dbd0bd68-3479-4032-9303-9d51615c27a7","f":{"id":"form","v":"11f0636f2e853848","text":"Form"},"data":{"name":"Device Manufacturing Version","tags":"","definition":"[Name][name] {20}[Version][version]\r\n\r\n{children}\r\n[Components used][components]\r\n[components]: /85095086-2b96-40d0-bc27-4281f954bb9b (0-n)\r\n\r\n{show if components.length === 0}\r\n######\r\n{command id=\"19c5be61-6432-4ef0-9f96-03287002cdbb\"}\r\n","functions":"","allowedChildrenForms":[],"description":""},"locks":[],"created":{"at":"2021-11-02T09:38:34+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-11-02T09:38:34+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1635845914853,"ct":1635845914853,"a_depth":3,"a":["apps","781ff5de-69db-49dc-99f0-f328b308cd7d","dbd0bd68-3479-4032-9303-9d51615c27a7"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1635845915113},{"id":"fb9ff523-eb89-4f66-a5a6-8171e75213a9","v":"initial","p":"15292d56-6806-4263-b6d0-9194687203e1","f":{"id":"form","v":"42ef1fd37c206edb","text":"Form"},"data":{"name":"Mängelmeldungen","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"","functions":"","allowedChildrenForms":[],"commands":[],"description":"","theme":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2022-05-04T09:43:24+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2022-05-04T09:43:24+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1651657404627,"ct":1651657404626,"a_depth":3,"a":["apps","86189c5a-b9f4-445a-879f-d94574960df0","15292d56-6806-4263-b6d0-9194687203e1"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1651667871633},{"id":"e6ffdfd0-88dd-429d-965b-a4634b065b3b","v":"879690bdda3184d4","previous":{"v":"initial"},"p":"2acd7a85-e378-49d3-a959-75ea2cab13a4","f":{"id":"form","v":"af06aca6217d20c5","text":"Form"},"data":{"name":"Merge View","description":"","definition":"[Name][name]","functions":"","semver":"","allowedChildrenForms":[],"layout":{"id":"","v":"","text":""},"color":{"id":"","v":"","text":""},"iconName":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null}},"applicationLayoutOptions":{"id":"","v":"","text":""},"documentLayoutOptions":{"id":"","v":"","text":""}},"locks":[],"lockRefs":[],"created":{"at":"2017-12-22T10:19:42+01:00","by":"","from":"","client":"f850c977-4f2e-4f6c-8389-ad1230848f0e"},"modified":{"at":"2017-12-22T10:21:05+01:00","by":"","from":"","client":"f850c977-4f2e-4f6c-8389-ad1230848f0e"},"t":1513934465971,"ct":1513934377548,"a_depth":3,"a":["apps","90340217-c9b1-46fe-9b56-163953318522","2acd7a85-e378-49d3-a959-75ea2cab13a4"],"a_forms":["folder","application-form","folder"],"inheritedLocks":[null,null,null,null],"stamps":[]},{"a":["apps","75c6f72a-08a2-44f4-a29c-86b58be26f96","d0e84149-815a-4c38-a801-1664583fef16"],"a_depth":3,"a_forms":["folder","application-form","form-folder"],"created":{"at":"2022-10-20T07:39:47+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1666251587188,"data":{"allowedChildrenForms":[],"commands":[{"id":"76e8323d-f6d1-4620-8011-104268b6cd08","text":"Neue Ausführung","v":"initial"}],"definition":"[Name][name]\n\n\n[Vorlage: Auswertung][evaluation]\n[evaluation]: /73974d8e-7d35-4b59-acf0-84c529b194f1 <required>","description":"","functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Auswertungen (automatisch)","namedIcon":"","namedIconColor":"","tags":"","theme":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"42ef1fd37c206edb"},"id":"d6f5f171-30fd-4ac8-b3b1-908298bdc71d","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2025-04-01T14:45:20+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"d0e84149-815a-4c38-a801-1664583fef16","previous":{"v":"22e72a21b8b16862"},"stamps":[],"t":1743518720152,"v":"306de0d83aba41a4"},{"id":"034b53f0-ce6a-46d6-bd0e-771f2c9ee59c","v":"1faff8c16e8281b3","previous":{"v":"94a0d761e446c13d"},"p":"db8e20d1-732c-4c6b-9cfc-b323f83fa378","f":{"id":"form","v":"cc65f983157bf1fd","text":"Form"},"data":{"name":"Kalender Ordner","tags":"","namedIcon":"fa fa-calendar-alt","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Name][name]\n\n{ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df}\n[Owners][owners]\n[owners]: /account\n\n{json}\n[Configuration][configuration]","functions":"","allowedChildrenForms":[{"id":"e6b7aced-aaa0-49a4-b573-cfa307595402","v":"3c8b47a35b0d6d27","text":"Termin"}],"commands":[],"description":""},"locks":[],"created":{"at":"2022-01-17T13:15:07+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-12-15T14:45:14+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1702651514182,"ct":1642425307623,"a_depth":3,"a":["apps","d8c9a42b-e289-4c9a-97ea-801de8ab480a","db8e20d1-732c-4c6b-9cfc-b323f83fa378"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1642428493611},{"id":"3fcebb78-e629-4d83-9844-1694370d9685","v":"0f06feb0ccc6f849","previous":{"v":"initial"},"p":"d69a62e9-a61f-42bf-9ae9-7983b87bf587","f":{"id":"form","v":"d17efc12b0cdc0be","text":"Form"},"data":{"name":"Knowledge Base","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Name][name]","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2021-06-16T09:39:47+00:00","by":"8dbe63c6-e32f-49ac-8e9e-fc7a7adf31a3","from":"","client":"server"},"modified":{"at":"2021-07-07T11:16:57+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1625656617225,"ct":1623836387818,"a_depth":3,"a":["apps","cf914a7f-ff5f-4598-80f1-63c9129e0a71","d69a62e9-a61f-42bf-9ae9-7983b87bf587"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1635954463924},{"id":"d4a62ddc-8f9c-4c88-89b3-2ab43babb8b7","v":"b95e72c7333c4154","previous":{"v":"267ea7fb9af30a32"},"p":"b42e5a69-6cf0-4b55-928a-755011005b5a","f":{"id":"form","v":"cc65f983157bf1fd","text":"Form"},"data":{"name":"Überfällige Aufgaben","tags":"","namedIcon":"fa fa-exclamation","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2021-10-26T09:51:17+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-10-26T11:25:17+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1635247517711,"ct":1635241877604,"a_depth":3,"a":["apps","77ee8815-2c3a-4bb5-abd9-90541a545a24","b42e5a69-6cf0-4b55-928a-755011005b5a"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1695210925808},{"a":["apps","75c6f72a-08a2-44f4-a29c-86b58be26f96","d0e84149-815a-4c38-a801-1664583fef16"],"a_depth":3,"a_forms":["folder","application-form","form-folder"],"created":{"at":"2020-09-17T11:55:19+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1732189656896,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[{"id":"73974d8e-7d35-4b59-acf0-84c529b194f1","text":"Auswertung","v":"66eb889262f2ef2f"}],"commands":[],"defaults":"","definition":"[Name][name]","descendantCommands":[],"description":"","from":[],"functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Auswertungen","namedIcon":"","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"relatedDocuments":[],"tags":"","theme":{"id":"","text":"","v":""},"to":[],"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"230b4040236561b6"},"id":"1d539cd5-fc27-4c9b-bcb0-8ddc01e6363a","inheritedLocks":[null,null,null,null],"locks":[],"meta":{"modified":{"at":"2025-04-01T14:45:10+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null}},"modified":{"at":"2024-11-21T11:48:04+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"d0e84149-815a-4c38-a801-1664583fef16","previous":{"a":["apps","bfeee3b0-ad25-4bba-a51c-01584d72c45a","2fee3f35-6446-483d-aafe-4d2bc1deb83e"],"a_forms":["folder","application-form","form-folder"],"p":"2fee3f35-6446-483d-aafe-4d2bc1deb83e","v":"47e76377d0ae6421"},"stamps":[],"t":1743518710325,"v":"713891c046249445"},{"id":"37f5737f-06e3-41db-8ce3-af2d42e5d61a","v":"0e1e8f56c9963eeb","previous":{"v":"3c77ddeb6d1a45c4"},"p":"9b024049-2573-4921-acaa-3e172e9332d7","f":{"id":"form","v":"42ef1fd37c206edb","text":"Form"},"data":{"name":"Codes","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"","functions":"","allowedChildrenForms":[],"commands":[],"description":"","theme":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2022-04-06T14:32:05+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-04-06T14:34:43+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1649255683942,"ct":1649255631210,"a_depth":3,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1716458528148},{"id":"f642f4b7-7263-4236-a555-e5cf87abe070","v":"initial","previous":{"v":""},"p":"35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f","f":{"id":"form","v":"af06aca6217d20c5","text":"Form"},"data":{"name":"Hausverwaltungen Ordner","description":"","definition":"","functions":"","semver":"1.0.1","allowedChildrenForms":[],"layout":{"id":"","v":"","text":""},"color":{"id":"","v":"0","text":""},"iconName":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null}},"applicationLayoutOptions":{"id":"","v":"0","text":""},"documentLayoutOptions":{"id":"","v":"0","text":""}},"locks":[],"lockRefs":[],"created":{"at":"2018-02-06T09:44:21+01:00","by":"","from":"","client":"server"},"modified":{"at":"2018-02-06T09:44:21+01:00","by":"","from":"","client":"server"},"t":1517906661030,"ct":1517906661028,"a_depth":3,"a":["apps","b791df37-6eef-4a3e-9066-1b79e0bdad31","35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1517906810182},{"id":"ab153e6e-572f-40ae-8f1e-2419c4fdf520","v":"initial","previous":{"v":""},"p":"35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f","f":{"id":"form","v":"af06aca6217d20c5","text":"Form"},"data":{"name":"Geräte Ordner","description":"","definition":"","functions":"","semver":"1.0.1","allowedChildrenForms":[],"layout":{"id":"","v":"","text":""},"color":{"id":"","v":"0","text":""},"iconName":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null}},"applicationLayoutOptions":{"id":"","v":"0","text":""},"documentLayoutOptions":{"id":"","v":"0","text":""}},"locks":[],"lockRefs":[],"created":{"at":"2018-02-06T09:44:10+01:00","by":"","from":"","client":"server"},"modified":{"at":"2018-02-06T09:44:10+01:00","by":"","from":"","client":"server"},"t":1517906650615,"ct":1517906650614,"a_depth":3,"a":["apps","b791df37-6eef-4a3e-9066-1b79e0bdad31","35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1517906773709},{"id":"dd41c1ef-cf27-42f8-8d73-47c0512a6e5f","v":"initial","p":"bd0803a8-829f-47b0-973c-c2d9f29cb94d","f":{"id":"form","v":"42ef1fd37c206edb","text":"Form"},"data":{"name":"List of all rules","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"","functions":"","allowedChildrenForms":[],"commands":[],"description":"","theme":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2023-02-21T11:54:34+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2023-02-21T11:54:34+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1676980474542,"ct":1676980474542,"a_depth":3,"a":["apps","bafa23ba-a0dc-406d-8854-77ea31b4ea4b","bd0803a8-829f-47b0-973c-c2d9f29cb94d"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1676981503117},{"id":"58f01727-f14a-4963-b573-e142ff7b8ca7","v":"16ce3f8885458c84","cloneOf":{"id":"c818d93b-446d-494f-8120-a39db2bdf484","v":"e742af1e83f73a53","text":"Dashboard"},"originalCloneOf":{"id":"c818d93b-446d-494f-8120-a39db2bdf484","v":"e742af1e83f73a53","text":"Dashboard"},"previous":{"v":"initial"},"p":"2540faf9-e3fd-4b52-aad8-53f43274e0a2","f":{"id":"form","v":"8c1496d16c344c2e","text":"Form"},"data":{"name":"Dashboard","tags":"full-page","definition":"[Name][name]\n","functions":"","allowedChildrenForms":[],"description":""},"locks":[],"created":{"at":"2019-08-29T13:21:16+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2020-04-23T07:47:30+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1587628050749,"ct":1567084876000,"a_depth":3,"a":["apps","8fa52498-fa07-4bad-87b3-5c8df671aca4","2540faf9-e3fd-4b52-aad8-53f43274e0a2"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1588927895868},{"id":"a3c6fe06-ee26-47f8-9d28-5e5a31bd2b8f","v":"960ac6ea7bfed0d2","previous":{"v":"initial"},"p":"e89b29a9-6ab9-47dc-a6fe-91ebda92871d","f":{"id":"form","v":"636c28c49e0bd3c5","text":"Form"},"data":{"name":"Fragebögen","description":"","tags":"","definition":"[Name][name]\n\n[Fragebögen][questionnaires]\n[questionnaires]: /f5463bba-ca34-45a9-992a-73297b1f529d (0-n)","functions":"","semver":"","allowedChildrenForms":[],"layout":{"id":"","v":"","text":""},"color":{"id":"","v":"","text":""},"iconName":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null}},"applicationLayoutOptions":{"id":"","v":"","text":""},"documentLayoutOptions":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2018-04-20T12:29:46+02:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"f8312258-bdc9-438a-a510-de77a69e61e9"},"modified":{"at":"2018-06-20T15:36:00+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"from":"","client":"server"},"t":1529508960370,"ct":null,"a_depth":3,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d"],"a_forms":["folder","application-form","folder"],"inheritedLocks":[null,null,null,null],"stamps":[]},{"id":"f59fae1a-c2f0-4bf6-b896-1caa8cf950ed","v":"0024bfcde20f7464","previous":{"v":"initial"},"p":"35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f","f":{"id":"form","v":"af06aca6217d20c5","text":"Form"},"data":{"name":"Objekte","description":"","definition":"","functions":"","semver":"1.0.1","allowedChildrenForms":[{"id":"6d777b4e-0f5f-4dbf-a642-31e2a3ef4dbc","v":"initial","text":"Objekt"}],"layout":{"id":"","v":"","text":""},"color":{"id":"","v":"0","text":""},"iconName":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null}},"applicationLayoutOptions":{"id":"","v":"0","text":""},"documentLayoutOptions":{"id":"","v":"0","text":""}},"locks":[],"created":{"at":"2018-02-06T09:44:45+01:00","by":"","from":"","client":"server"},"modified":{"at":"2018-02-21T09:50:56+01:00","by":"","from":"","client":"server"},"t":1519203056871,"ct":1517906685460,"a_depth":3,"a":["apps","b791df37-6eef-4a3e-9066-1b79e0bdad31","35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1519202610810},{"id":"a48eb6dc-347a-43dd-8aef-b65213d8aa34","v":"2e5e61e57500a72b","previous":{"v":"16c6fc7334e7a4be"},"p":"23f1e515-5ea7-455e-b0a7-13649bece902","f":{"id":"form","v":"24ab84939535fdcd","text":"Form"},"data":{"name":"Anrufe","tags":"","namedIcon":"fa fa-phone-square-alt","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Name][name]","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2020-12-14T10:43:41+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-01-27T13:08:58+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1611752938240,"ct":1607942621505,"a_depth":3,"a":["apps","9e6696fa-9328-4499-9fcd-ff1c176d5615","23f1e515-5ea7-455e-b0a7-13649bece902"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1642587565603},{"id":"bf8eb298-3431-4138-a1e1-e748e05f3f37","v":"6521603728316116","previous":{"v":"6bc298efff777109","p":"b42e5a69-6cf0-4b55-928a-755011005b5a","a":["apps","77ee8815-2c3a-4bb5-abd9-90541a545a24","b42e5a69-6cf0-4b55-928a-755011005b5a"]},"p":"ff13ca04-7a64-4d12-ab9a-edee939ca478","f":{"id":"form","v":"5f508b9373050c50","text":"Form"},"data":{"name":"Search Result","description":"","definition":"[Name][name]","functions":"","semver":"","children":[],"layout":{"id":"","v":"","text":""},"color":{"id":"","v":"","text":""},"iconName":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null}},"applicationLayoutOptions":{"id":"","v":"","text":""},"documentLayoutOptions":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2017-11-06T17:08:13+01:00","by":"","from":"","client":"7992a43e-3849-436b-8e4f-d38de6e0274b"},"modified":{"at":"2021-11-04T08:46:36+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1636015596453,"ct":1509984493009,"a_depth":3,"a":["apps","77ee8815-2c3a-4bb5-abd9-90541a545a24","ff13ca04-7a64-4d12-ab9a-edee939ca478"],"a_forms":["folder","application-form","folder"],"inheritedLocks":[null,null,null,null],"stamps":[]},{"id":"1bb92e44-6e23-4c0e-8cb5-163e6e75ebb7","v":"f45b9d26c02c4063","previous":{"v":"c8185bb6267f46d5"},"p":"e89b29a9-6ab9-47dc-a6fe-91ebda92871d","f":{"id":"form","v":"f0e1626ad2b3fe9e","text":"Form"},"data":{"name":"Trash","description":"","tags":"","definition":"[Name][name]","functions":"","semver":"","allowedChildrenForms":[],"useLock":false,"sharedLock":{"id":"","v":"","text":""},"creatorKeys":[],"cloneLock":{"id":"","v":"","text":""},"cloneRoles":[],"layout":{"id":"","v":"","text":""},"color":{"id":"","v":"","text":""},"iconName":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null}},"applicationLayoutOptions":{"id":"","v":"","text":""},"documentLayoutOptions":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2018-11-05T14:44:45+00:00","by":"2bc79a8b-b3e9-4e62-a42d-bea46f8c934e","from":"","client":"server"},"modified":{"at":"2018-11-05T15:01:16+00:00","by":"2bc79a8b-b3e9-4e62-a42d-bea46f8c934e","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1541430076351,"ct":1541429084974,"a_depth":3,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d"],"a_forms":["folder","application-form","folder"],"inheritedLocks":[null,null,null,null],"stamps":[]},{"id":"cac5a1be-e187-4bb9-a900-7089078e6f25","v":"initial","p":"15292d56-6806-4263-b6d0-9194687203e1","f":{"id":"form","v":"42ef1fd37c206edb","text":"Form"},"data":{"name":"Verträge","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"","functions":"","allowedChildrenForms":[],"commands":[],"description":"","theme":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2022-07-22T12:38:10+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2022-07-22T12:38:10+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1658493490301,"ct":1658493490300,"a_depth":3,"a":["apps","86189c5a-b9f4-445a-879f-d94574960df0","15292d56-6806-4263-b6d0-9194687203e1"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1675691331610},{"id":"2c729a18-4c85-4b7e-8c6c-358c8b9b1b3d","v":"00c9c1855fa107a4","previous":{"v":"initial"},"p":"b6b5ad5b-124f-4b1c-8f55-74294451a2ba","f":{"id":"form","v":"4fa42fcff3786d1e","text":"Form"},"data":{"name":"Kalender Ordner","tags":"","namedIcon":"fa fa-calendar-alt","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Name][name]","functions":"","allowedChildrenForms":[{"id":"a88e6030-17ca-4fe7-a1c0-128175a568ab","v":"38f249c533e82f8d","text":"Kalender"}],"commands":[],"description":""},"locks":[],"created":{"at":"2019-11-19T11:34:22+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2019-11-19T11:34:59+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1574163299336,"ct":1574163262643,"a_depth":3,"a":["apps","49babc91-9123-4d92-b850-ce4d10f0e1b4","b6b5ad5b-124f-4b1c-8f55-74294451a2ba"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1738944388554},{"id":"ebb00fab-fe96-4562-a7cd-1fac9a420d50","v":"310a026c97f1e471","previous":{"v":"3dfa2b61f96634ab"},"p":"169e87e0-0379-48e1-8c94-8fadac5969bb","f":{"id":"form","v":"d497194b29933d26","text":"Form"},"data":{"name":"Bewerbermanagement ","tags":"","allowUndefinedFields":false,"definition":"[Name][name]\n","functions":"","defaults":"","newTemplate":{"id":"","v":"","text":""},"newAction":{"id":"","v":"","text":""},"allowedChildrenForms":[],"commands":[{"id":"d9097deb-67ec-440b-8004-7e5123817db9","v":"1bac15c3ad72880a","text":"rd:Neu"}],"namedIcon":"fas fa-user-tie","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"","v":"","text":""},"description":""},"locks":[],"created":{"at":"2018-06-26T13:23:54+00:00","by":"2695f56c-96e6-4009-8e2f-d545ea1e02aa","from":"","client":"server"},"modified":{"at":"2023-09-27T08:39:03+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1695803943698,"ct":1695802161678,"a_depth":3,"a":["apps","a590ce5b-28fc-4f85-9049-d006e1b8f880","169e87e0-0379-48e1-8c94-8fadac5969bb"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1731922120243},{"id":"3e9738cd-4a8f-4dc1-acca-a1af19608106","v":"initial","previous":{"v":""},"p":"f6d2a869-980d-4654-ad06-0564b9aa747c","f":{"id":"form","v":"af06aca6217d20c5","text":"Form"},"data":{"name":"Developer","description":"","definition":"[Name][name]","functions":"","semver":"","allowedChildrenForms":[],"layout":{"id":"","v":"","text":""},"color":{"id":"","v":"","text":""},"iconName":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null}},"applicationLayoutOptions":{"id":"","v":"","text":""},"documentLayoutOptions":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2018-04-18T15:37:55+02:00","by":"","backedBy":"","from":"","client":"server"},"modified":{"at":"2018-04-18T15:37:55+02:00","by":"","backedBy":"","from":"","client":"server"},"t":1524058675633,"ct":1524058675633,"a_depth":3,"a":["apps","e4a62254-c6ab-4d0d-a9ae-81934093f6e2","f6d2a869-980d-4654-ad06-0564b9aa747c"],"a_forms":["folder","application-form","folder"],"inheritedLocks":[null,null,null,null],"stamps":[]},{"id":"3c0a7011-6a65-4ed3-98e1-06e4f5a314d8","v":"08f575f48732bd33","previous":{"v":"f0ab62d5216d6163"},"p":"15292d56-6806-4263-b6d0-9194687203e1","f":{"id":"form","v":"42ef1fd37c206edb","text":"Form"},"data":{"name":"Mieter","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"{hidden}\n[Name][name]\n[name]: = functions.name(unternehmen, ansprechpartner)\n\n{hidden}\n[Ansprechpartner][ansprechpartner]\n[ansprechpartner]:= functions.ansprechpartner(titel, vorname, nachname)\n\n{10}[Anrede][anrede] {15}[Titel][titel] {35}[Vorname][vorname] {40}[Nachname][nachname] {readonly}[Status][status]\n\n[Unternehmen][unternehmen]\n\n[status]: select\n  - ANFRAGE: Anfrage\n  - AKTIV: aktiv\n  - GEKUENDIGT: gekündigt\n  - EHEMALIG: ehm. Mieter (ausgezogen)\n  - ARCHIV: archiviert\n\n[anrede]: select\n  - NONE: \n  - MALE: Herr\n  - FEMALE: Frau\n\n{phone}\n[Telefon][telefon1]\n\n{hidden if !telefon1|phone}\n[Telefon 2][telefon2]\n\n{hidden if !telefon2|phone}\n[Telefon 3][telefon3]\n\n{email}\n[E-Mail][email1]\n\n{hidden if !email1|email}[E-Mail 2][email2]\n\n{hidden if !email2|email}\n[E-Mail 3][email3]\n\n{address}\n[Adresse][adresse]\n[adresse]: address\n\n{show if (adresse.street || adresse.city)|address} \n[Adresse 2][adresse2] \n[adresse2]: address\n\n{show if (adresse2.street || adresse2.city)|address}\n[Adresse 3][adresse3] \n[adresse3]: address\n\n{multiline auto-grow=true}\n[Notizen][notizen]\n","functions":"name(firma, ansprechpartner) {\n  if (!firma && !ansprechpartner) {\n    return ''\n  }\n\n  if (firma && ansprechpartner) {\n    return `${firma} (${ansprechpartner})`\n  }\n\n  return ansprechpartner || firma\n}\n\n\nansprechpartner(titel, vorname, nachname) {\n  const parts = []\n  if (titel) {\n    parts.push(titel)\n  }\n  if (vorname) {\n    parts.push(vorname)\n  }\n  if (nachname) {\n    parts.push(nachname)\n  }\n\n  return parts.join(' ')\n}","allowedChildrenForms":[],"commands":[],"description":"","theme":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2022-08-16T10:55:36+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-09-26T13:27:10+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1664198830609,"ct":1660647336909,"a_depth":3,"a":["apps","86189c5a-b9f4-445a-879f-d94574960df0","15292d56-6806-4263-b6d0-9194687203e1"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1660915015129},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e"],"a_depth":3,"a_forms":["folder","application-form","form-folder"],"created":{"at":"2022-11-14T13:07:45+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1681389760613,"data":{"allowedChildrenForms":[],"commands":[{"id":"29679280-6be9-449e-9d8c-8e179950588b","text":"rd:Neu","v":"initial"}],"definition":"{hidden}\n[Name][name]\n[name]: = functions.name(systemName, inventoryNumberTitle)\n\n{readonly}\n[Bestandslistennummer][inventoryNumberTitle]\n\n// inventoryNumber should be used in sorting\n{hidden|readonly}\n[Bestandslistennummer][inventoryNumber]\n[inventoryNumber]: number\n\n[Ehemaliges System (abgeschaltet)][formerSystem] [Altdaten Import][oldDataImport]\n[oldDataImport]: switch\n[formerSystem]: switch\n\n[Systemname (des Herstellers)][systemName]\n[systemName]: text <required>\n\n[Interner Name][internalName]\n\n{ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df creation-location-form=b40fd5c3-1bc2-42b4-a269-f3cb2e9cf477 hide-path}\n[Hersteller][manufacturer]\n[manufacturer]: /e0978a3d-9761-4849-8a44-d22d8a175f87 (0-n) <required>\n\n{multiline auto-grow=true max=500}\n[Kurzbeschreibung (Zweck)][description]\n[description]: text <required>\n\n{multiline auto-grow=true max=500}\n[Modulname(n)][moduleNames]\n\n[Softwareversion][softwareVersion]\n[softwareVersion]: text <required>\n\n[Kategorie nach GBV ITM][category]\n[category]: Select <required help=layoutId> \"64fda001-597c-4bd2-a2e9-c988f45e43fb\"\n  - ZERO: Kat 0\n  - ONE: Kat 1\n  - TWO: Kat 2\n  - THREE: Kat 3\n\n{ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Standorte][locations]\n[locations]: /af8aa2f7-1c0b-404d-b6c8-06e5be0ffd38 (0-n) <required>\n\n{ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Geltungsbereich][scope]\n[scope]: /21a59b67-da7b-4d24-ab4c-001362e46246 (0-n) <required>\n\n{children delete-on-remove}\n[Prozesseigner][processOwners]\n[processOwners]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{children delete-on-remove}\n[Prozesseigner Vorgesetzte][processSupervisors]\n[processSupervisors]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{children delete-on-remove}\n[Systemeigner][systemOwner]\n[systemOwner]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{multiline auto-grow}\n[Daten-/Dokumenteneignerschaft][dataDocumentOwnership]\n\n{multiline auto-grow}\n[Notizen][notes]\n\n{readonly|now control=datetime}\n[Zeitstempel Erstellung][creationTimestamp]\n[creationTimestamp]: date\n\n{readonly|datetime}\n[Zeitstempel Letzte Änderung][modificationTimestamp]\n[modificationTimestamp]: date \"Dieser Zeitstempel wird bei der Übernahme von Daten aus einem prozessierten Antrag aktualisiert.\"\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Ersteller][creator]\n[creator]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10\n\n","description":"","functions":"name(nameOfSystem, identifier) {\n  if (identifier) {\n    return `[${identifier}]: ${nameOfSystem}`\n  }\n\n  return nameOfSystem\n}","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Bestandseintrag","namedIcon":"","namedIconColor":"","tags":"","theme":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"3163b16b782f3ff6"},"id":"50c3c7c5-c3d4-460c-b34d-0d61a4cb09ae","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2025-05-20T14:35:44+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"cd0dc80e-74a7-44b2-ac65-972cbf47562e","previous":{"v":"55ec1e49616c9f0a"},"stamps":[],"t":1747751744541,"v":"fab35a8bba49d101"},{"id":"e3e2b913-1791-461b-9d80-be3681488a04","v":"7ce7856126f4d0b6","previous":{"v":"b91818b368ac2b4e"},"p":"6b513a0c-498f-4eac-804d-aa8e0e99caac","f":{"id":"form","v":"2e7e396282349d68","text":"Form"},"data":{"name":"Objekte","label":"","tags":"","namedIcon":"fa fa-city","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"{readonly}\n[Verknüpfter Kunde][client]\n[client]: /8fc08287-dbcc-4e41-9d5d-28e4cd828943\n\n\n{readonly}\n[Verknüpfte Dokumente][dmsFolder]\n[dmsFolder]: /a04c8913-db48-4e80-b20d-0f3cc17a778c\n\n{readonly}\n[Name][name]","functions":"","allowedChildrenForms":[],"commands":[{"id":"d2fb7984-ecd9-41f1-baf3-6a728ff05fc4","v":"2dfab2fe1e30d960","text":"Neu"}],"description":""},"locks":[],"created":{"at":"2021-05-10T13:48:16+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-05-10T14:51:00+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1620658260818,"ct":1620654496401,"a_depth":3,"a":["apps","d91078cc-874b-4410-b837-b81f47687fe9","6b513a0c-498f-4eac-804d-aa8e0e99caac"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1633596712329},{"id":"a88e6030-17ca-4fe7-a1c0-128175a568ab","v":"bed3ff5af7df477d","previous":{"v":"d6e58b4ebf1011c9"},"p":"b6b5ad5b-124f-4b1c-8f55-74294451a2ba","f":{"id":"form","v":"4fa42fcff3786d1e","text":"Form"},"data":{"name":"Kalender","tags":"","namedIcon":"fa fa-calendar","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Name][name]\n\n[Identifier][identifier]\n\n{children delete-on-remove=true}\n[Ressourcen][resources]\n[resources]: /dfd8d610-c84d-401a-b7e9-4194c5eabe3d (0-n)","functions":"","allowedChildrenForms":[],"commands":[{"id":"05238b4f-e3ae-4f62-b162-be754a43a438","v":"306eb0ac4c55e4d5","text":"Neu"}],"description":""},"locks":[],"created":{"at":"2020-02-25T15:28:15+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2024-01-08T10:28:21+01:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1704706101571,"ct":1582644495722,"a_depth":3,"a":["apps","49babc91-9123-4d92-b850-ce4d10f0e1b4","b6b5ad5b-124f-4b1c-8f55-74294451a2ba"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1738943917977},{"id":"007be343-6ea4-4ff7-b189-ad4bb4cf1c5a","v":"a2a409cbf45543cc","previous":{"v":"a720d87c9941f10b"},"p":"cb7a4c1b-703a-4b16-9190-aa2a26532688","f":{"id":"form","v":"42ef1fd37c206edb","text":"Form"},"data":{"name":"Protokolle","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Name][name]","functions":"","allowedChildrenForms":[{"id":"954212d9-9cc7-4356-82e3-a80cf745da4d","v":"0f6c430b83d195b7","text":"Protokoll Art"}],"commands":[{"id":"d6ae07e0-913f-437b-8e4d-f3370f15db27","v":"initial","text":"rd:Neu"}],"description":"","theme":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2019-06-05T12:09:54+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2022-10-25T14:57:59+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1666709879950,"ct":1666709861210,"a_depth":3,"a":["apps","91a90288-37bc-4f86-be38-4283833717d2","cb7a4c1b-703a-4b16-9190-aa2a26532688"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1707475930772},{"id":"07661490-5918-4db7-848e-6fbbb87be0a4","v":"initial","p":"710a1fcc-d225-4fb3-a1aa-64684f397ee6","f":{"id":"form","v":"2e7e396282349d68","text":"Form"},"data":{"name":"Kundenmaschinen-Check","label":"","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2021-01-12T10:52:13+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-01-12T10:52:13+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1610448733041,"ct":1610448732970,"a_depth":3,"a":["apps","7ba1fc90-8094-44ce-8f5a-54a0da3999ed","710a1fcc-d225-4fb3-a1aa-64684f397ee6"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1610449162910},{"id":"4b1bce8a-884e-44de-a2cd-352a7f89baa7","v":"646ec6ebb9059d16","previous":{"v":"e2bb28c74b615869"},"p":"75920050-07b1-4e79-9742-54abcc235e91","f":{"id":"form","v":"4fa42fcff3786d1e","text":"Form"},"data":{"name":"Patient","tags":"","namedIcon":"far fa-horse-saddle","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Patientenname][name]\n\n[Patientennummer][patientennummer]\n","functions":"","allowedChildrenForms":[{"id":"3f5de83a-40e4-4662-b436-3ed4879edb10","v":"initial","text":"Behandlung"}],"commands":[{"id":"afd4537f-f5a1-41ca-a84d-36458fdf61fc","v":"initial","text":"rd:Neu"}],"description":""},"locks":[],"created":{"at":"2019-04-12T14:29:25+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2024-01-08T14:08:53+01:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1704719333360,"ct":1602584353088,"a_depth":3,"a":["apps","5ec4fefb-1235-484e-8d6f-4fd645bae372","75920050-07b1-4e79-9742-54abcc235e91"],"a_forms":["folder","application-form","folder"],"inheritedLocks":[null,null,null,null],"stamps":[]},{"id":"929d4384-92b3-4450-aa3b-0e7f20e2103c","v":"fa31b27fedfc486c","previous":{"v":"318737cab54156f8"},"p":"75920050-07b1-4e79-9742-54abcc235e91","f":{"id":"form","v":"dcc8032a347c59c7","text":"Form"},"data":{"name":"Akte","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Kundennummer][kundennummer]\n\n[Nachname][name]\n\n[Vorname][vorname]","functions":"","allowedChildrenForms":[{"id":"4b1bce8a-884e-44de-a2cd-352a7f89baa7","v":"a6d4dd11ea9a232b","text":"Patient"}],"commands":[{"id":"39ab3e18-f423-48fb-b601-333a0b0ab6d8","v":"initial","text":"rd:Neu"}],"description":""},"locks":[],"created":{"at":"2019-04-12T14:29:25+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2024-01-08T14:01:01+01:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1704718861102,"ct":1602584353025,"a_depth":3,"a":["apps","5ec4fefb-1235-484e-8d6f-4fd645bae372","75920050-07b1-4e79-9742-54abcc235e91"],"a_forms":["folder","application-form","folder"],"inheritedLocks":[null,null,null,null],"stamps":[]},{"id":"459069ef-d793-4f8c-967b-a49d150c6176","v":"19782f6ebbd784b2","previous":{"v":"66d84ac37fe9dc25"},"p":"e89b29a9-6ab9-47dc-a6fe-91ebda92871d","f":{"id":"form","v":"6e7a1af740a39290","text":"Form"},"data":{"name":"Model Bewerbung Request Form","tags":"","definition":"[name]: = `${surname}, ${firstname}`\n\n{hidden}[Projekt][project]\n[project]: /686d22ba-414e-452f-9795-f6f7bcab37d5\n\n{hidden}[Film][movie]\n[movie]: /24730991-d920-4a1e-8041-6a9dc6c0ffc1\n\n{hidden}[Casting][casting]\n[casting]: /4551c597-7595-4858-8b7f-207a7fb15b3e\n\n{hidden}[Model][model]\n[model]: /44e0edf9-6515-4e4b-ad48-98a04d28df11\n\n{hidden|children}\n[Dateien][files]\n[files]: /aabed4ee-20ca-4df4-9a78-75a05e97dce9 (0-n)\n\n{select parent=movie}\n[translate:roles|Rollen][roles]\n[roles]: /3230c10a-64af-48cc-8f3d-15fc16a40e5f (0-n) <required>\n\n[translate:firstname|Vorname][firstname]\n[firstname]: text <required>\n\n[translate:surname|Nachname][surname]\n[surname]: text <required>\n\n[translate:phone|Telefon][phone]\n[phone]: text <required>\n\n[translate:email|E-Mail][email]\n[email]: text <required>\n\n[translate:placeOfDeparture|Abreiseort][placeOfDeparture]\n[placeOfDeparture]: text <required>\n\n[translate:nationality|Nationalität][nationality]\n[nationality]: text <required>\n\n[translate:agencyName|Agenturname][agencyName]\n[agencyName]: <required> \"agencyName:help\"\n\n[translate:agencyEmail|Agentur email][agencyEmail]\n\n####### \n[translate:birthdate|Geburtsdatum][birthdate]\n[birthdate]: date\n\n\n\n[translate:residence|Wohnort][residence]\n[residence]: address\n\n[translate:gender|Geschlecht][gender]\n[gender]: select\n  - NO_GENDER: \n  - MALE: Männlich\n  - FEMALE: Weiblich\n\n[translate:eyeColor|Augenfarbe][eyeColor]\n\n[translate:hairColor|Haarfarbe][hairColor]\n\n[translate:height|Körpergröße][height]\n\n[translate:clothesSize|Konfektionsgröße][clothesSize]\n\n[translate:shoeSize|Schuhgröße][shoeSize]\n\n[translate:showreel|Link zu Showreel][showreel]\n\n[translate:termsofuse:confirm|Ich stimme den Datenschutz- und Nutzungsbestimmungen zu][termsofuse]\n[termsofuse]: switch <required>","functions":"","allowedChildrenForms":[],"description":""},"locks":[],"created":{"at":"2018-05-24T16:34:35+02:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","from":"","client":"server"},"modified":{"at":"2020-10-13T10:11:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1602583892867,"ct":1602583892866,"a_depth":3,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d"],"a_forms":["folder","application-form","folder"],"inheritedLocks":[null,null,null,null],"stamps":[]},{"id":"0dfd4afd-f2ec-4ff0-9a79-811badf4fed5","v":"4b6a68ca48885771","cloneOf":{"id":"204787ca-59c2-4b11-b866-aa05fa9c9891","v":"01f2c5773213ba0e","text":"Arbeitseintrag"},"originalCloneOf":{"id":"204787ca-59c2-4b11-b866-aa05fa9c9891","v":"01f2c5773213ba0e","text":"Arbeitseintrag"},"previous":{"v":"4fde7031a1fabccb"},"p":"9b024049-2573-4921-acaa-3e172e9332d7","f":{"id":"form","v":"12ceedaed4c81b21","text":"Form"},"data":{"name":"Teil-Eintrag","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[name]: = functions.name(nummer, beschreibung)\n\n[Nummer][nummer]\n\n[Beschreibung][beschreibung]","functions":"name(nummer, beschreibung) {\n  return [nummer, beschreibung]\n    .filter(part => !!part)\n    .map(part => part.trim())\n    .join(' ')\n}","allowedChildrenForms":[],"commands":[],"description":"","theme":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2022-03-02T15:28:29+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-03-03T09:00:33+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1646298033598,"ct":1646234909047,"a_depth":3,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1649929022056},{"id":"c134ddf8-2dff-4e27-95ec-9f5bda2ea6db","v":"6f52a211336105ae","previous":{"v":"534f1996c21593cb"},"p":"f00d03b9-e59a-4ccc-837a-cbd6a1fca3d3","f":{"id":"form","v":"2e7e396282349d68","text":"Form"},"data":{"name":"Arbeitsschritt","label":"","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"# Erledigung\n\n[Titel][name] {ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true}[Verantwortlich][verantwortlich]\n[verantwortlich]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 \n\n## Input\n\n{multiline auto-grow=true}\n[Text][inputText]\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove=true}\n[Dateien][inputFiles]\n[inputFiles]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df}\n[Referenzen][inputReferenzen]\n[inputReferenzen]: /ref\n\n\n## Output\n\n{multiline auto-grow=true}\n[Text][outputText]\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove=true}\n[Dateien][outputFiles]\n[outputFiles]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n\n{ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df}\n[Referenzen][outputReferenzen]\n[outputReferenzen]: /ref\n\n## Aktionen\n\n{prototype:fake-buttons names=\"Kundendaten unvollständig,Neukunde\"}\n\n\n# Arbeitsschritt\n\n[Arbeitsschritt][arbeitsschrittTitel]\n\n[Beschreibung][arbeitsschrittBeschreibung]","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2021-04-15T07:28:08+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-04-15T08:07:28+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1618474048611,"ct":1618471688804,"a_depth":3,"a":["apps","41360031-739e-4d68-802b-6af6d89247a3","f00d03b9-e59a-4ccc-837a-cbd6a1fca3d3"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1618473501581},{"id":"e2f6fe5a-cdab-41ed-a1b2-ad342ee670d1","v":"100892df30348bdd","previous":{"v":"b5a2b07c68430861"},"p":"6b513a0c-498f-4eac-804d-aa8e0e99caac","f":{"id":"form","v":"2e7e396282349d68","text":"Form"},"data":{"name":"Objekt","label":"","tags":"","namedIcon":"fa fa-building","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"{hidden|readonly}\n[Verknüpfter Kunde][client]\n[client]: /8fc08287-dbcc-4e41-9d5d-28e4cd828943\n\n{hidden|readonly}\n[Verknüpfte Dokumente][dmsFolder]\n[dmsFolder]: /a04c8913-db48-4e80-b20d-0f3cc17a778c\n\n# Projekt\n\n[Name][name] [Status][status]\n\n[status]: Select\n  - NONE:\n  - ACQUISITION: Akquise\n  - DECLINED: Abgelehnt\n  - PROGRESS: In Bearbeitung (in der Planungsphase)\n  - ONSPOTCHECKS: In Ausführung (vor Ort Kontrollen)\n  - DONE: Abgeschlossen\n  - DORMANT: Ruhend\n\n{ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true creation-location-form=51138ce9-66f4-44dd-9254-b8b744e88999 on-creation-run-action=1aa3965a-9003-46e3-b0fd-6b724687ff15}\n[Auftraggeber][bauherr] \n[bauherr]: /6f641574-7cb6-424a-9657-4b8d652a2cf7\n\n{ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true creation-location-form=51138ce9-66f4-44dd-9254-b8b744e88999 on-creation-run-action=1aa3965a-9003-46e3-b0fd-6b724687ff15}\n[Ansprechpartner][ansprechpartner]\n[ansprechpartner]: /6f641574-7cb6-424a-9657-4b8d652a2cf7 (0-n)\n\n{ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true creation-location-form=51138ce9-66f4-44dd-9254-b8b744e88999 on-creation-run-action=1aa3965a-9003-46e3-b0fd-6b724687ff15}\n[Beteiligte][beteiligte]\n[beteiligte]: /6f641574-7cb6-424a-9657-4b8d652a2cf7 (0-n)\n\n{multiline auto-grow=true}\n[Kundenspezifische Besonderheiten][kundenspezifischeBesonderheiten]\n\n[Objekt-Adresse][baustellenAdresse]\n[baustellenAdresse]: address\n\n# Aufgaben\n\n{children delete-on-remove=true add-to-beginning=true show-filter=true sort-fields=data.prioritaet,data.bisStart,data.bisEnde,data.name filter-fields=data.erledigt,data.prioritaet,data.bisStart,data.bisEnde,data.verantwortlich design=ref-selectable}\n[Aufgaben][aufgaben]\n[aufgaben]: /0deb4864-cbb6-420c-99ee-337c7444ab24 (0-n) \n\n# Korrespondenz\n\n{mails}\n[Mailverlauf][mails]\n[mails]: /59b7188e-1296-4466-a9c2-d6255496e7d6 (0-n)\n\n{children new-command=a413f838-5a5e-4f14-a088-59afeee8ee2d disable-remove=true handle-selected-readonly=true}\n[Gesprächsnotizen][gespraechsnotizen]\n[gespraechsnotizen]: /c5cf96a1-40bb-44d5-a3f7-ea30706caf58 (0-n)\n\n# Verträge\n\n{children delete-on-remove=true}\n[Verträge][vertraege]\n[vertraege]: /3d45f20b-ecb3-4dc5-aa39-67a28e3923d8 (0-n)\n","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2021-01-27T11:04:15+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-03-18T14:49:52+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1616078992610,"ct":1611745455634,"a_depth":3,"a":["apps","d91078cc-874b-4410-b837-b81f47687fe9","6b513a0c-498f-4eac-804d-aa8e0e99caac"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1614351503738},{"id":"f5463bba-ca34-45a9-992a-73297b1f529d","v":"f5d47cd3fde5dfac","previous":{"v":"1cff273ea7e9b3fc"},"p":"e89b29a9-6ab9-47dc-a6fe-91ebda92871d","f":{"id":"form","v":"5f3242b69acf6fa6","text":"Form"},"data":{"name":"Fragebogen","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Name][name]\n\n{children no-templates=true list=true}\n[Fragen][questions]\n[questions]: /8b64a4e4-bcc0-4080-9913-bc973143abd9 (0-n)\n","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2018-04-20T12:29:46+02:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"f8312258-bdc9-438a-a510-de77a69e61e9"},"modified":{"at":"2020-10-13T10:11:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1602583892217,"ct":1602583892217,"a_depth":3,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d"],"a_forms":["folder","application-form","folder"],"inheritedLocks":[null,null,null,null],"stamps":[]},{"id":"188cc647-d375-48c4-baff-2e738787da33","v":"initial","p":"e89b29a9-6ab9-47dc-a6fe-91ebda92871d","f":{"id":"form","v":"f0e1626ad2b3fe9e","text":"Form"},"data":{"name":"Bewerbungs Requests","description":"","tags":"","definition":"[Name][name]","functions":"","semver":"","allowedChildrenForms":[],"useLock":false,"sharedLock":{"id":"","v":"","text":""},"creatorKeys":[],"cloneLock":{"id":"","v":"","text":""},"cloneRoles":[],"layout":{"id":"","v":"","text":""},"color":{"id":"","v":"","text":""},"iconName":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null}},"applicationLayoutOptions":{"id":"","v":"","text":""},"documentLayoutOptions":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2018-10-30T12:49:02+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2018-10-30T12:49:02+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1540903742824,"ct":1540903742753,"a_depth":3,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d"],"a_forms":["folder","application-form","folder"],"inheritedLocks":[null,null,null,null],"stamps":[]},{"id":"2e3b1651-047d-47c3-841b-6f098b7bf0ff","v":"96cd6c10335c7fd2","p":"20c92864-6a81-4006-96f9-b78f473cd129","f":{"id":"form","v":"dcc8032a347c59c7","text":"Form"},"data":{"name":"Anhang","tags":"","namedIcon":"fal fa-paperclip","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Name][name]\n\n{file-ref}\n[Datei][datei]\n[datei]:File","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2017-12-01T10:08:43+01:00","by":"","from":"","client":"e32230d0-79d5-4afd-baac-6d1bc75dc80b"},"modified":{"at":"2020-10-13T10:18:50+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1602584330478,"ct":1602584330478,"a_depth":3,"a":["apps","5acfd7a2-33e4-498a-9150-71e1ab772bfc","20c92864-6a81-4006-96f9-b78f473cd129"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"previous":{"v":"5dc080823be409ce","f":{"id":"form","v":"4fa42fcff3786d1e","text":"Form"}},"dts":1512132007419},{"id":"544d11b1-a156-4568-aeb3-2a60b2b57807","v":"65e8429ccac764e0","previous":{"v":"d7ebe30a2a011a38"},"p":"79718664-ed22-4b52-9c10-037881df3578","f":{"id":"form","v":"dcc8032a347c59c7","text":"Form"},"data":{"name":"Aufgabe","tags":"bizpin","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"{line}\n[Titel][name] {30|datetime-range to=bisEnde has-time=bisDateTime}[Fällig][bisStart] {30}[Erledigt][erledigt]\n\n{editor}\n[Beschreibung][beschreibung]\n\n[erledigt]: switch\n\n[bisDateTime]: switch\n[bisStart]: Date\n[bisEnde]: Date\n\n{attachment form-id=\"6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2\" file-field=\"datei\" name-field=\"name\" delete-on-remove=true}\n[Anhänge][anhaenge]\n[anhaenge]: /6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2 (0-n)\n\n{comments}\n","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2020-03-10T13:24:23+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2021-07-13T14:30:22+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1626186622422,"ct":1611048505086,"a_depth":3,"a":["apps","599db2de-4e07-4722-98bd-7f42d498b352","79718664-ed22-4b52-9c10-037881df3578"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1610639831240},{"id":"9715b20a-382c-4a81-b854-caf0e6656f74","v":"3281dfb2a98f1643","previous":{"v":"9e755f24bae62f45"},"p":"df40153d-10cf-4b01-b94f-589eabd75696","f":{"id":"form","v":"8c1496d16c344c2e","text":"Form"},"data":{"name":"LU-177-Laufzettel","tags":"","definition":"Patient\r\n-------\r\n[name]: = 'LU-177 Laufzettel'\r\n\r\n[Patientennummer (falls bekannt)][patientenNummer]\r\n\r\n[Vorname][vorname] [Nachname][nachname] [Geschlecht][geschlecht]\r\n[Geburtsdatum][geburtsdatum] [Telefon][telefon]\r\n\r\n{readonly}{hidden}\r\n[Label][label]\r\n[label]:= functions.buildLabel(zyklus, art, vorname, nachname, dosis, geburtsdatum, telefon)\r\n\r\n{readonly}{hidden}{color}\r\n[Farbe][farbe]\r\n[farbe]:= functions.calculateColor(abgesagt, art, bestaetigt, patientBestaetigt)\r\n\r\n<!--  \r\n    [vorname]: <required,sensitive,classification=\"dsgvo-5,patientdata\"> \r\n    tags:\r\n    ----\r\n    required: true\r\n    sensitive: true\r\n    classification:\r\n      - dsvo-5\r\n      - patientdata   -->\r\n\r\n[geburtsdatum]: Date\r\n[geschlecht]: Select\r\n  - unknown: Unbekannt\r\n  - male: Männlich\r\n  - female: Weiblich\r\n\r\nLaufzettel\r\n----------\r\n\r\n{20}[Zyklus][zyklus] [Art][art] \r\n\r\n[zyklus]: Number\r\n\r\n[art]: Select <required>\r\n  - NONE: \r\n  - PSMA:    Lu-PSMA\r\n  - DOTATOC: Lu-DOTATOC\r\n\r\n[Stationäre Aufnahme][statAufnahme] {150px}[Patient bestätigt][patientBestaetigt] {150px}[Team bestätigt][bestaetigt] [Abgesagt][abgesagt]\r\n[statAufnahme]: Date\r\n\r\n[patientBestaetigt]: Switch\r\n[bestaetigt]: Switch\r\n[abgesagt]: Switch\r\n\r\n \r\n[Nierenszintigraphie-Tc 99mMAG3][nieren]\r\n[nieren]: Date\r\n\r\n[Speicheldrüsen-Sz.][speicheldruesen]\r\n[speicheldruesen]: Date\r\n\r\n[Pet CT][petCTType] [am][petCTDatum]\r\n\r\n[petCTType]: Select\r\n  - PSMA:    Ga-68 PSMA\r\n  - DOTATOC: Ga-68 DOTATOC\r\n\r\n[petCTDatum]: Date\r\n\r\n[TB-Beschluss][tb]\r\n[tb]: Switch\r\n\r\n[Dosimetrie][dosimetrie]\r\n\r\n{checkboxes}\r\n[dosimetrie]: select (0-n)\r\n  - 1: 1 Stunde\r\n  - 4: 4 Stunden\r\n  - 24: 24 Stunden\r\n  - 48: 48 Stunden\r\n  - 72: 72 Stunden\r\n\r\n[Termin für nächste PRRT Zyklus bzw. Verlaufskontrolle mittels PET/CT oder CT][termin]\r\n[termin]: Date\r\n\r\n{multiline}\r\n[Risikofaktoren][risikofaktoren]\r\n\r\n{multiline}\r\n[Besprechungsergebnis][besprechungsergebnis]\r\n\r\n[voraussichtlich. Dosis (GBq)][dosis]\r\n[dosis]: Number\r\n\r\n## Indikationsprüfung\r\n\r\n[Geprüft][geprueft]\r\n[geprueft]: Switch","functions":"buildLabel(zyklus, art, vorname, nachname, dosis, geburtsdatum, telefon) {\r\n  const parts = []\r\n\r\n  if (zyklus) {\r\n    parts.push(`${zyklus}.`)\r\n  }\r\n\r\n  if (art && art !== 'NONE') {\r\n    parts.push(`Lu-${art}`)\r\n  }\r\n\r\n  if (dosis) {\r\n    parts.push(`mit ${dosis} GBq`)\r\n  }\r\n  \r\n  parts.push(`${nachname}, ${vorname}`)\r\n\r\n  if (geburtsdatum) {\r\n    // const formattedDate = DateTime.fromUTC(geburtsdatum).toLocaleString()\r\n\r\n    const year = geburtsdatum.slice(0,4)\r\n    const month = geburtsdatum.slice(5,7)\r\n    const day = geburtsdatum.slice(8,10)\r\n\r\n    parts.push(`*${day}.${month}.${year}`)\r\n  }\r\n \r\n  if (telefon) {\r\n    parts.push(`Tel: ${telefon}`)\r\n  }\r\n\r\n  return parts.join(' ')\r\n}\r\n\r\ncalculateColor(abgesagt, art, bestaetigt, patientBestaetigt) {\r\n  if (abgesagt) {\r\n    return '#000000'\r\n  } else if (bestaetigt) {\r\n    if (art === 'PSMA') {\r\n      return '#51cc56' // green\r\n    } else if (art === 'DOTATOC') {\r\n      return '#3264d8' // blue\r\n    }\r\n  }\r\n\r\n  return '#999999'\r\n}","allowedChildrenForms":[],"description":""},"locks":[],"created":{"at":"2019-04-12T14:29:22+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2019-04-12T14:29:22+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1555079362833,"ct":1555079362832,"a_depth":3,"a":["apps","d10eebac-6285-4412-8451-55d1bf2fc849","df40153d-10cf-4b01-b94f-589eabd75696"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1548949058672},{"id":"5931d734-987a-483f-b948-b1b31dedae74","v":"initial","p":"dbd0bd68-3479-4032-9303-9d51615c27a7","f":{"id":"form","v":"b0b1f4808edd7503","text":"Form"},"data":{"name":"Item","tags":"","definition":"[Photo][photo]\r\n[photo]: Image\r\n\r\n{200px}[Category][category] [Name][name]\r\n\r\n[category]: Select\r\n  - '': Unknown\r\n  - CP: Casing Part\r\n  - EP: Electronic Part\r\n  - AP: Accessory Part\r\n\r\n# Details\r\n\r\n{x=1|y=1|w=2}\r\n## Basics\r\n\r\n[EAN Code][eanCode] [Manufacturer Part Number (MPN)][manufacturerPartNumber]\r\n\r\n{14em}{currency}[Initial Price EUR net][initialPrice] {10em}[min. pcs Order][minOrder] [delivery time days][deliveryDays]\r\n\r\n{14em}[Critical component][criticalComponent] [ROHS confirmed][ROHS] \r\n\r\n[Amount][deliveryAmount] [Delivery Unit][deliveryUnit] \r\n\r\n[deliveryAmount]: Number\r\n[Has Serial Number][hasSerialNumber]\r\n\r\n[hasSerialNumber]: Switch\r\n\r\n[deliveryUnit]: Select \r\n  - COUNT: Individual Items\r\n  - CM: Centimeter (cm)\r\n  - ML: Milliliter (ml)\r\n\r\n[numberOfUses]: Number\r\n\r\n[initialPrice]:Number \r\n[ROHS]:switch\r\n[criticalComponent]:switch\r\n[minOrder]:Number\r\n[deliveryDays]:Number\r\n\r\n{x=3|y=1}\r\n## Inventory\r\n\r\n{cura:article-inventory}\r\n\r\n{x=1|y=2|w=3}\r\n## Information \r\n\r\n[Description][description]\r\n\r\n{multiline rows=2}\r\n[Specification][specification]\r\n\r\n{children}\r\n[Attachments][attachments]\r\n[attachments]: /4aa8acf8-f515-4dc2-8a73-f5ee48df6b13 (0-n)\r\n\r\n{hidden}\r\n[From Bauteil][bauteil]\r\n\r\n[bauteil]: /ea386331-6cba-42ff-821a-a85852947d68\r\n\r\n# Manufacturer\r\n\r\n[Manufacturer][manufacturer]\r\n[manufacturer]: /4f4b40d1-25c4-4f5b-b694-b5cb637f9980 (0-n)\r\n\r\n# Pricing\r\n\r\n{children}\r\n[Distributor Prices][prices]\r\n[prices]: /b2e28e17-ca96-4b86-b471-3468390c37af (0-n)\r\n\r\n# Comments\r\n\r\n{comments}\r\n\r\n","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2021-11-02T09:38:37+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-11-02T09:38:37+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1635845917626,"ct":1635845917625,"a_depth":3,"a":["apps","781ff5de-69db-49dc-99f0-f328b308cd7d","dbd0bd68-3479-4032-9303-9d51615c27a7"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1635845917731},{"id":"766c24c5-542c-4887-bf65-43ad85e6c476","v":"55180f6e32736c81","cloneOf":{"id":"3ef82fa1-425d-4592-b120-1a6fc967802d","v":"initial","text":"Meilenstein"},"originalCloneOf":{"id":"3ef82fa1-425d-4592-b120-1a6fc967802d","v":"initial","text":"Meilenstein"},"previous":{"v":"initial"},"p":"3be7e887-1bcd-4c3c-979f-b20a986c4c48","f":{"id":"form","v":"4fa42fcff3786d1e","text":"Form"},"data":{"name":"Meilenstein","tags":"","namedIcon":"fas fa-badge-check","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Name][name] {30}[Fällig bis][bis]\r\n\r\n{copy-refs-from-selection}\r\n[][aufgaben]\r\n\r\n{ref ancestor-form=0b6a2b21-9425-466e-9e8d-57ec39cc95e1 list=true  design=ref-selectable keep-open-after-selection=true}\r\n[Aufgaben][aufgaben]\r\n\r\n[aufgaben]: /0deb4864-cbb6-420c-99ee-337c7444ab24 (0-n)\r\n            data.erledigt:false\r\n\r\n[bis]: Date\r\n\r\n","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2020-07-01T14:40:04+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2021-06-16T12:45:42+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1623847542770,"ct":1593614404783,"a_depth":3,"a":["apps","59edbdbc-2cab-426a-bb42-6e57c5158e4f","3be7e887-1bcd-4c3c-979f-b20a986c4c48"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1708605979558},{"id":"3ef82fa1-425d-4592-b120-1a6fc967802d","v":"047930392705be7d","previous":{"v":"initial"},"p":"20c92864-6a81-4006-96f9-b78f473cd129","f":{"id":"form","v":"4fa42fcff3786d1e","text":"Form"},"data":{"name":"Meilenstein","tags":"","namedIcon":"fas fa-badge-check","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Name][name] {30}[Fällig bis][bis]\r\n\r\n{ref ancestor-form=17c3a5d3-90ba-4592-961b-0800873ef9c1 list=true  design=ref-selectable keep-open-after-selection=true}\r\n[Aufgaben][aufgaben]\r\n\r\n[aufgaben]: /3d456c38-6282-416e-8c5e-7d20b0517a6e (0-n)\r\n            data.erledigt:false\r\n\r\n[bis]: Date\r\n\r\n","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2020-03-10T13:24:13+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2021-07-13T14:29:15+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1626186555547,"ct":1583846653635,"a_depth":3,"a":["apps","5acfd7a2-33e4-498a-9150-71e1ab772bfc","20c92864-6a81-4006-96f9-b78f473cd129"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1634031807207},{"id":"fdfaf800-858a-4b45-91c9-5bdad7a63672","v":"e953e83268fb6ca5","previous":{"v":"78073ba3a507699d"},"p":"05787127-986a-494f-a69e-8733c1176596","f":{"id":"form","v":"b0b69a951dde83ea","text":"Form"},"data":{"name":"Wartungen","tags":"","allowUndefinedFields":false,"definition":"","functions":"","relatedDocuments":[],"defaults":"","newTemplate":{"id":"","v":"","text":""},"newAction":{"id":"","v":"","text":""},"allowedChildrenForms":[{"id":"1b166603-d0f3-4f16-98c4-0534afbd6f5a","v":"fc576ec556c4dd74","text":"Wartungsdurchführung"}],"commands":[],"descendantCommands":[],"to":[],"from":[],"namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"","v":"","text":""},"description":"Zum Anzeigen der Wartungsdurchführungen"},"locks":[],"created":{"at":"2025-08-04T07:54:41+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"modified":{"at":"2026-05-19T09:51:32+00:00","by":"09763886-6748-4a56-8e0e-54a2293ee96b","backedBy":"","impersonatedBy":"","from":"","client":"server"},"t":1779184292516,"ct":1754294081235,"a_depth":3,"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[]},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596"],"a_depth":3,"a_forms":["folder","application-form","form-folder"],"created":{"at":"2026-01-27T11:06:39+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"ct":1769511999914,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[],"commands":[],"defaults":"","definition":"[Name][name] {ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df location-form=83b7ea0a-f4c2-43b8-a4a7-09f1dbde62d1 hide-path}[Baugruppen][assemblies]\n[assemblies]: /6c1309c4-eed0-4a1e-9664-1070184dd8a8 (0-n)\n\n[Nummer/ID][identifier] {ref ancestor-form=5f4a87a7-5557-4004-bfdc-2fb26c71e0c9 location-form=1451a42c-e8f9-430e-8fd0-b2209f389e84 list hide-path}[Technischer Platz][location]\n[location]: /093f533e-9758-479c-97bc-8e4ba7dc3c2d\n\n[Bild][image]\n[image]: file\n\n[Hersteller][manufacturer]\n[Modell][model][Seriennummer][serialnumber]\n\n[Inbetriebnahme][commissioningDate] [Garantieende][warrantyEnd]\n\n[Zustand][condition]\n[condition]: Select\n  - 1: Neuwertig\n  - 2: Gut\n  - 3: Gebraucht\n  - 4: Mangelhaft\n  - 5: Defekt / Stillgelegt\n\n[Maßnahme][action]\n[action]: Select\n  - NONE: Weiterbetrieb\n  - REPAIR: Reparatur\n  - REPLACE: Austausch\n\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove=true}\n[Dokumente][files]\n[files]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{multiline}\n[Technische Daten][technicalData]","descendantCommands":[],"description":"","from":[],"functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Aggregat","namedIcon":"far fa-meter","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"relatedDocuments":[{"id":"8d658f35-950a-40a9-a4ba-2d8df11b272c","text":"Anlage","v":"initial"},{"id":"a408c3e1-cfe6-4c2a-af19-5f0c475a7440","text":"Technischer Platz","v":"initial"},{"id":"d80f1b9e-5f97-4284-a378-dc60acfd39d9","text":"Gebäudeteil","v":"initial"},{"id":"ecd608fb-1db2-4a74-a9f3-0f0e57aa57b3","text":"Gebäude","v":"initial"},{"id":"a09a27bc-e3bf-4e24-9af0-396302c1fb2c","text":"Areal","v":"initial"}],"tags":"","theme":{"id":"","text":"","v":""},"to":[],"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"410df4c62fb388dd"},"id":"31e6efab-61df-4b91-8250-3bfcfd491c6c","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2026-05-28T13:57:39+00:00","backedBy":"","by":"09763886-6748-4a56-8e0e-54a2293ee96b","client":"server","from":"","impersonatedBy":""},"p":"05787127-986a-494f-a69e-8733c1176596","previous":{"v":"114318ad1550a6cb"},"stamps":[],"t":1779976659831,"v":"0a5184b871a997b7"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596"],"a_depth":3,"a_forms":["folder","application-form","form-folder"],"created":{"at":"2025-10-14T12:29:00+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1770381354918,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[],"commands":[{"id":"641614c4-88d4-493f-b0c8-0d6ef9a815c4","text":"rd:Zur Kenntnis nehmen","v":"initial"},{"id":"ee95430e-f093-49ea-8d29-34bf2f1afc3e","text":"rd:Zur Wartung freigeben","v":"initial"}],"defaults":"","definition":"\n//# Verwaltung\n// \n//{60px|action hide-label expand-icon}[Erledigt][done] [Titel][name]  {40px|readonly if done|action hide-label icon=\"far fa-clock\"}[In Bearbeitung][inProgress] \n//\n//[done]: switch\n//[inProgress]: switch\n//\n//{25|select}[Priorität][priority] {30|datetime-range to=dueEnd has-time=dueDateTime}[Fällig][dueStart] {45|ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df notify-assignment hide-path default-value-command=49a26db7-f4f3-41fb-ad26-e45f40d7de83 prominent-pick-command=45f20576-a049-4643-8ce1-181c856990ac}[Verantwortlich][responsible]\n//\n//[priority]: Select\n//  - 0 <icon=\"far fa-circle\">:\n//  - 3 <icon=\"far fa-arrow-circle-up\" iconcolor=\"red\">: Hoch\n//  - 2 <icon=\"far fa-arrow-circle-right\">: Mittel\n//  - 1 <icon=\"far fa-arrow-circle-down\" iconcolor=\"grey\">: Niedrig\n//\n//[dueDateTime]: switch\n//[dueStart]: Date\n//[dueEnd]: Date\n//[responsible]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n)\n//\n//{editor}[Beschreibung][description]  \n//[description]: text\n\n# Reparatur Meldung\n\n\n{hidden}\n[Workflow Status][workflowStatus]\n[workflowStatus]: Select = functions.status(released, status)\n  - PLANNED <icon=\"fa fa-calendar-day\" iconcolor=\"text-neutral-500\">: Geplant\n  - RELEASED <icon=\"fa fa-calendar-day\" iconcolor=\"text-green-500\">: Freigegeben\n  - STARTED <icon=\"fa fa-circle-half-stroke\" iconcolor=\"text-primary-500\">: Begonnen\n  - CANCELED <icon=\"fa fa-circle-x\" iconcolor=\"text-primary-500\">: Abgebrochen\n  - COMPLETED <icon=\"fa fa-circle-check\" iconcolor=\"text-primary-500\">: Abgeschlossen\n  - ACKNOWLEDGED <icon=\"fa fa-badge-check\" iconcolor=\"text-green-500\">: Zur Kenntnis genommen\n\n{readonly if status !== 'PLANNED'}[Freigabe][released] {readonly|select}[Typ][type]\n{readonly}[Status der Reparatur][status]\n[status]: Select\n  - PLANNED <icon=\"fa fa-calendar-day\" iconcolor=\"text-neutral-500\">: Geplant\n  - STARTED <icon=\"fa fa-circle-half-stroke\" iconcolor=\"text-primary-500\">: Begonnen\n  - CANCELED <icon=\"fa fa-circle-x\" iconcolor=\"text-primary-500\">: Abgebrochen\n  - COMPLETED <icon=\"fa fa-circle-check\" iconcolor=\"text-primary-500\">: Abgeschlossen\n  - ACKNOWLEDGED <icon=\"fa fa-badge-check\" iconcolor=\"text-green-500\">: Zur Kenntnis genommen\n\n[released]: switch\n[type]: Select\n  - MANUAL <icon=\"far fa-user-helmet-safety\">: Manuell\n  - TRIGGER <icon=\"far fa-robot\">: Getriggert\n\n{readonly if released}\n[Titel][name]\n[name]: text <required>\n\n{show if type === 'MANUAL'|readonly|ref list}\n[Aus Wartungsdurchführungs erstellt][maintenanceExecution]\n[maintenanceExecution]: /1b166603-d0f3-4f16-98c4-0534afbd6f5a\n\n{readonly if released|ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}[Betroffene Anlage][facility]\n[facility]: /33e3b54d-6b4b-4aa3-8f70-2b834b27bf66\n\n{readonly|ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Technischer Platz][location]\n[location]: /093f533e-9758-479c-97bc-8e4ba7dc3c2d\n\n{readonly|ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Areal][object]\n[object]: /5f4a87a7-5557-4004-bfdc-2fb26c71e0c9\n\n{readonly if released|ref query-limit-command=a71de77a-4b6d-486e-b380-cd343c24e015}[Betroffene Arbeiten][workItems]\n[workItems]: /8c113cd0-af90-42fa-aa05-f67809d0a9a5 (0-n)\n\n{readonly if released|ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Zuständiges Team][team]\n[team]: /aa49f5c2-0502-4b7e-8ffd-4ac90427420e (0-n)\n\n\n# Dokumentation zur Reparatur\n\n{readonly if released|editor}[Informationen für Wartungsteam][informationTeam]  \n[informationTeam]: text <required>\n\n{show if status !== 'PLANNED'|readonly}[Begonnen][started] {show if status !== 'PLANNED'|readonly}[Beendet][ended]\n[started]: datetime\n[ended]: datetime\n[duration]: duration = functions.duration(DateTime, started, ended)\n\n{readonly if (!released||status === 'COMPLETED'||status === 'ACKNOWLEDGED')|multiline auto-grow}\n[Bemerkungen][comment]\n[comment]: text <required>\n\n{readonly if (!released||status === 'COMPLETED'||status === 'ACKNOWLEDGED')|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" file-name-field=\"name\" direct-preview}\n[Fotos][photos]\n[photos]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{readonly if (!released||status === 'COMPLETED'||status === 'ACKNOWLEDGED')|signature}\n[Unterschrift][signature]\n[signature]: file <required>\n\n{show if acknowledgedAt|readonly|ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}[Zur Kenntnis genommen von][acknowledgedBy] {show if acknowledgedAt|readonly}[Zur Kenntnis genommen am][acknowledgedAt]\n[acknowledgedBy]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 \n[acknowledgedAt]: datetime\n","descendantCommands":[],"description":"","from":[],"functions":"status(released, status) {\n  if (status === 'PLANNED') {\n    if (released) {\n      return 'RELEASED'\n    }\n\n    return status\n  }\n\n  return status\n}\n\nduration(DateTime, started, ended) {\n  if (!started || !ended) {\n    return {}\n  }\n\n  const duration = DateTime.fromISO(ended).diff(DateTime.fromISO(started), ['hours', 'minutes', 'seconds'])\n\n  return duration.toObject()\n}","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Reparatur","namedIcon":"far fa-sensor-triangle-exclamation","namedIconColor":"#fb923c","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"relatedDocuments":[],"tags":"","theme":{"id":"","text":"","v":""},"to":[],"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"410df4c62fb388dd"},"id":"46a28dfa-7518-4867-9519-a5f4cd9b9967","inheritedLocks":[null,null,null,null],"locks":[],"meta":{},"modified":{"at":"2026-03-23T08:32:51+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"p":"05787127-986a-494f-a69e-8733c1176596","previous":{"v":"773bb0f61180c1b6"},"stamps":[],"t":1774254771714,"v":"27b759ae94054b39"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596"],"a_depth":3,"a_forms":["folder","application-form","form-folder"],"created":{"at":"2025-08-01T12:05:08+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1770036717455,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[],"commands":[{"id":"486f9d57-db1d-4dc2-bd11-daefa2bbe2c0","text":"Zur Kenntnis nehmen","v":"d6a2ee471b888136"},{"id":"f3af7655-95a4-48ed-8b49-d50cfce94aee","text":"Zur Wartung freigeben","v":"26a59d2d788b8417"},{"id":"bac8ab68-c6d9-441b-8592-0a65b8a591a6","text":"Move from archive to Wartungen","v":"13e7912247323658"},{"id":"886418e9-4951-4793-a136-9ff3c90d743f","text":"Move to archive","v":"c88efd05d98cbe73"}],"defaults":"","definition":"{hidden}\n[Workflow Status][workflowStatus]\n[workflowStatus]: Select = functions.status(released, status)\n  - PLANNED <icon=\"fa fa-calendar-day\" iconcolor=\"text-neutral-500\">: Geplant\n  - RELEASED <icon=\"fa fa-calendar-day\" iconcolor=\"text-green-500\">: Freigegeben\n  - STARTED <icon=\"fa fa-circle-half-stroke\" iconcolor=\"text-primary-500\">: Begonnen\n  - CANCELED <icon=\"fa fa-circle-x\" iconcolor=\"text-primary-500\">: Abgebrochen\n  - COMPLETED <icon=\"fa fa-circle-check\" iconcolor=\"text-primary-500\">: Abgeschlossen\n  - ACKNOWLEDGED <icon=\"fa fa-badge-check\" iconcolor=\"text-green-500\">: Zur Kenntnis genommen\n\n[Freigabe][released] {readonly|select}[Typ][type]\n\n{readonly}\n[Status der Wartung][status]\n[status]: Select\n  - PLANNED <icon=\"fa fa-calendar-day\" iconcolor=\"text-neutral-500\">: Geplant\n  - STARTED <icon=\"fa fa-circle-half-stroke\" iconcolor=\"text-primary-500\">: Begonnen\n  - CANCELED <icon=\"fa fa-circle-x\" iconcolor=\"text-primary-500\">: Abgebrochen\n  - COMPLETED <icon=\"fa fa-circle-check\" iconcolor=\"text-primary-500\">: Abgeschlossen\n  - ACKNOWLEDGED <icon=\"fa fa-badge-check\" iconcolor=\"text-green-500\">: Zur Kenntnis genommen\n\n[released]: switch\n[type]: Select\n  - MANUAL <icon=\"far fa-user-helmet-safety\">: Manuell\n  - INTERVAL <icon=\"far fa-timer\">: Interval\n  - TRIGGER <icon=\"far fa-robot\">: Getriggert\n  \n{show if (type === 'INTERVAL' || type === 'MANUAL')|readonly}\n[Erstellt aus Wartungsplan][maintenancePlan]\n[maintenancePlan]: /5011479f-3ef7-4c66-810b-3bb65f992712\n\n\n{show if type === 'TRIGGER'}\n[Erstellt aus Trigger][trigger]\n[trigger]: /b20ca840-8658-4c1e-a2c3-1c14f9ff4c05\n\n{readonly if released|ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Zuständiges Team][team]\n[team]: /aa49f5c2-0502-4b7e-8ffd-4ac90427420e (0-n) <required>\n\n\n{readonly if released|children}\n[Wartung][maintenance]\n[maintenance]: /347d38c6-0bce-47ce-b271-9f924c56ac49 <required>\n\n{readonly}[Anlage der Wartung][facility]\n[facility]: /33e3b54d-6b4b-4aa3-8f70-2b834b27bf66\n\n{readonly|ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Technischer Platz][location]\n[location]: /093f533e-9758-479c-97bc-8e4ba7dc3c2d\n\n\n// The label is correct. The field name is wrong.\n{readonly|ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Areale][object]\n[object]: /5f4a87a7-5557-4004-bfdc-2fb26c71e0c9\n\n{readonly|ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}[Zur Kenntnis genommen von][acknowledgedBy] {readonly}[Zur Kenntnis genommen am][acknowledgedAt]\n[acknowledgedBy]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 \n[acknowledgedAt]: datetime\n","descendantCommands":[],"description":"","from":[],"functions":"status(released, status) {\n  if (status === 'PLANNED') {\n    if (released) {\n      return 'RELEASED'\n    }\n\n    return status\n  }\n\n  return status\n}","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Wartungsdurchführung","namedIcon":"far fa-screwdriver-wrench","namedIconColor":"#93c5fd","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"relatedDocuments":[],"tags":"","theme":{"id":"","text":"","v":""},"to":[],"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"410df4c62fb388dd"},"id":"1b166603-d0f3-4f16-98c4-0534afbd6f5a","inheritedLocks":[null,null,null,null],"locks":[],"meta":{},"modified":{"at":"2026-03-27T09:55:08+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"p":"05787127-986a-494f-a69e-8733c1176596","previous":{"v":"e8f0421ade14d94b"},"stamps":[],"t":1774605308112,"v":"fc0cc5517de2fe7d"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596"],"a_depth":3,"a_forms":["folder","application-form","form-folder"],"created":{"at":"2025-08-01T12:42:13+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1754052133349,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[{"id":"33e3b54d-6b4b-4aa3-8f70-2b834b27bf66","text":"Anlage","v":"b0afb7112071c949"}],"commands":[{"id":"652e1286-5c91-4eb7-853f-de2f36c750ff","text":"rd:New","v":"initial"}],"defaults":"","definition":"[name]: text = functions.name(type, location, address, bas)\n\n[Typ][type]\n\n[Technischer Platz][location]\n\n{show if type === 'ADDRESS'}\n[Adresse][address]\n\n{show if type === 'BAS'}\n[BAS][bas]\n\n[Barcode/NFC-Code][identityCode] \n\n[Bild][image]\n\n\n[type]: Select\n  - TEXT <icon=\"far fa-text\">: Text \n  - ADDRESS <icon=\"far fa-map\">: Adresse\n  - BAS <icon=\"far fa-input-numeric\">: Orts-BAS (BACtwin)\n\n[image]: file\n[identityCode]: text\n[address]: address\n\n[aggregates]: /d978528a-4f64-4b5e-8ec3-f6833d0ed731 (0-n)","descendantCommands":[],"description":"","from":[],"functions":"name(type, location, address, bas) {\n  if (type === 'TEXT') {\n    return location\n  }\n\n  if (type === 'ADDRESS') {\n    const parts = [location]\n\n    if (address.street || address.city) {\n      parts.push(`(${address.city}, ${address.street})`)\n    }\n\n    return parts.filter(Boolean).join(' ')\n  }\n\n  if (type === 'BAS') {\n    return [location, bas].join(' ')\n  }\n\n  return ''\n}","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Technischer Platz","namedIcon":"far fa-door-open","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"relatedDocuments":[{"id":"882ed025-0e24-4578-8606-9fff63476f0e","text":"Gebäudeteil","v":"initial"},{"id":"4ea6795f-1760-455e-ac66-0365dd8c5f78","text":"Gebäude","v":"initial"},{"id":"d23d0a46-e4f6-4068-b769-a29cb092d5e1","text":"Areal","v":"initial"},{"id":"2c1ae077-816d-4ae7-8660-16022ce018e1","text":"","v":"initial"}],"tags":"","theme":{"id":"","text":"","v":""},"to":[],"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"b0b69a951dde83ea"},"id":"093f533e-9758-479c-97bc-8e4ba7dc3c2d","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2026-05-26T07:43:00+00:00","backedBy":"","by":"09763886-6748-4a56-8e0e-54a2293ee96b","client":"server","from":"","impersonatedBy":""},"p":"05787127-986a-494f-a69e-8733c1176596","previous":{"v":"4519b849812b4d62"},"stamps":[],"t":1779781380070,"v":"242b8dd12fc3133c"},{"id":"8dbe21a7-7642-4884-986b-a119c6498bd3","v":"0fb6d83419938774","previous":{"v":"08a158683272a8ec"},"p":"cb7a4c1b-703a-4b16-9190-aa2a26532688","f":{"id":"form","v":"cc65f983157bf1fd","text":"Form"},"data":{"name":"Protokoll","tags":"","namedIcon":"far fa-comments-alt","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Titel][name] {20}[Raum][room] {30|now}[Datum][date]\n[date]: date\n\n{ref notify-assignment ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df forms=d2ac3563-3c3f-4f02-b923-9b67abf98d10,6f641574-7cb6-424a-9657-4b8d652a2cf7 hide-path=true default-value-command=cf46ccb4-765f-47a1-ae33-d6b260ee6bf3 creation-location-form=51138ce9-66f4-44dd-9254-b8b744e88999 creation-form=6f641574-7cb6-424a-9657-4b8d652a2cf7 on-creation-run-action=1aa3965a-9003-46e3-b0fd-6b724687ff15}\n[Teilnehmer][attendees]\n[attendees]: /ref (0-n)\n\n{ref notify-assignment ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df forms=d2ac3563-3c3f-4f02-b923-9b67abf98d10,6f641574-7cb6-424a-9657-4b8d652a2cf7 hide-path=true creation-location-form=51138ce9-66f4-44dd-9254-b8b744e88999 creation-form=6f641574-7cb6-424a-9657-4b8d652a2cf7 on-creation-run-action=1aa3965a-9003-46e3-b0fd-6b724687ff15}\n[Abwesende][absentees]\n[absentees]: /ref (0-n)\n\n{editor}\n[Protokoll][protocol]\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove=true}\n[Anhänge][anhaenge]\n[anhaenge]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) ","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2019-07-03T07:27:22+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2024-12-19T15:27:25+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1734622045158,"ct":1638287609891,"a_depth":3,"a":["apps","91a90288-37bc-4f86-be38-4283833717d2","cb7a4c1b-703a-4b16-9190-aa2a26532688"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[]},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e"],"a_depth":3,"a_forms":["folder","application-form","form-folder"],"created":{"at":"2026-05-07T14:57:31+00:00","backedBy":"","by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":""},"ct":1778165851801,"data":{"description":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Beschlussergebnisse"},"f":{"id":"folder","text":"Folder","v":"602501509abc77b3"},"id":"680a53ff-2457-41b4-aa4e-d832af3bce52","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2026-05-07T14:57:31+00:00","backedBy":"","by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":""},"p":"cd0dc80e-74a7-44b2-ac65-972cbf47562e","stamps":[],"t":1778165851801,"v":"initial"},{"id":"88b1f60e-71f6-46f5-94ea-3d7bbe972950","v":"a3cab6348ce6910d","previous":{"v":"097801cbcb07433b"},"p":"f254ce25-42f1-4333-8ee7-23554bf746c1","f":{"id":"form","v":"410df4c62fb388dd","text":"Form"},"data":{"name":"Aufgabe (Leistung)","tags":"","allowUndefinedFields":false,"definition":"{60px|action hide-label expand-icon}[Erledigt][erledigt] [Titel][name]  {40px|readonly if erledigt|action hide-label icon=\"far fa-clock\"}[In Bearbeitung][inBearbeitung] {7|switch enabled-command=7353b605-f783-4be1-8b9b-0d641acb3daf}[Inaktiv][inaktiv] \n\n{30|datetime-range to=bisEnde has-time=bisDateTime}[Fällig][bisStart] {70|ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true default-value-command=49a26db7-f4f3-41fb-ad26-e45f40d7de83 prominent-pick-command=45f20576-a049-4643-8ce1-181c856990ac}[Verantwortlich][verantwortlich] \n\n{timetracking} \n\n{editor}[Beschreibung][beschreibung]   \n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove=true}\n[Anhänge][anhaenge]\n\n{position-draft cost-estimate=costEstimate}\n\n[costEstimate]: /bcb673e1-40de-4c35-941a-fc13a1e99c49\n\n\n[beschreibung]: text\n[anhaenge]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n[verantwortlich]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n)\n[inaktiv]: switch\n[erledigt]: switch\n[inBearbeitung]: switch\n\n[bisDateTime]: switch\n[bisStart]: Date\n[bisEnde]: Date","functions":"","relatedDocuments":[{"id":"d2756277-090b-4a4a-8970-4d14e099523c","v":"initial","text":"Comments Statistics"},{"id":"c474f6d7-927e-432d-8d45-b95f5045d6af","v":"initial","text":"AppTimeTracking-TrackedTimes"},{"id":"b2155393-4c08-4885-bca7-e1e45d0b4df9","v":"initial","text":"AppTimeTracking-Estimate"},{"id":"f0610648-626c-4e8a-aa44-880e0935817e","v":"initial","text":"AppTimeTracking-TrackedTimeStatistic"},{"id":"2dbd6545-c515-4198-8360-ac2a3225b3fb","v":"initial","text":"AppComments-Comments"},{"id":"873fddb2-d831-46fb-b84d-8f28d4f6a416","v":"initial","text":"AppEnergyProjectsLeistung"}],"defaults":"","newTemplate":{"id":"","v":"","text":""},"newAction":{"id":"","v":"","text":""},"allowedChildrenForms":[],"commands":[],"descendantCommands":[],"to":[],"from":[],"namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"","v":"","text":""},"description":""},"locks":[],"created":{"at":"2020-02-25T15:28:29+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":""},"modified":{"at":"2026-03-05T14:05:46+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":"","impersonatedBy":"","from":"","client":"server"},"t":1772719546491,"ct":1772719531966,"a_depth":3,"a":["apps","94a64d89-d204-4918-b147-d717914fb03e","f254ce25-42f1-4333-8ee7-23554bf746c1"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"meta":{}},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596"],"a_depth":3,"a_forms":["folder","application-form","form-folder"],"created":{"at":"2026-01-27T09:43:28+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"ct":1769507008930,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[{"id":"093f533e-9758-479c-97bc-8e4ba7dc3c2d","text":"Technischer Platz","v":"7ba7167ec1fa5053"}],"commands":[{"id":"afb909e1-fd95-4dd1-afa7-ef41fce0feaa","text":"rd:Neu","v":"initial"}],"defaults":"","definition":"[Name][name]\n\n[Zugangsbeschreibung][accessDescription]\n\n[Grundriss][floorplan]\n[floorplan]: file","descendantCommands":[],"description":"","from":[],"functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Gebäudeteil","namedIcon":"far fa-table-pivot","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"relatedDocuments":[{"id":"e1bf5704-44d7-47d6-a3e3-ec8084804d36","text":"Gebäude","v":"initial"},{"id":"9915574f-cd6f-4593-8d4b-c553f4d7aaf4","text":"Areal","v":"initial"},{"id":"959c0746-02fc-4d19-a771-8d4363249484","text":"","v":"initial"}],"tags":"","theme":{"id":"","text":"","v":""},"to":[],"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"410df4c62fb388dd"},"id":"1e3214b4-b81e-4ac2-a788-c2051af016ab","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2026-05-27T13:19:55+00:00","backedBy":"","by":"09763886-6748-4a56-8e0e-54a2293ee96b","client":"server","from":"","impersonatedBy":""},"p":"05787127-986a-494f-a69e-8733c1176596","previous":{"v":"791f0e11938b8d6c"},"stamps":[],"t":1779887995442,"v":"98c88af589d005c5"},{"id":"5f4a87a7-5557-4004-bfdc-2fb26c71e0c9","v":"962de7ad55096ff0","previous":{"v":"120544865a0b8751"},"p":"05787127-986a-494f-a69e-8733c1176596","f":{"id":"form","v":"b0b69a951dde83ea","text":"Form"},"data":{"name":"Areal","tags":"","allowUndefinedFields":false,"definition":"[Name][name]\n\n{address geolocation-to=addressGeolocation}\n[Adresse][address]\n[address]: address\n\n[addressGeolocation]: geolocation\n\n[Bild][image]\n[image]: file","functions":"","relatedDocuments":[{"id":"9a70dbbc-8921-49d1-8d0e-813607fadd16","v":"initial","text":""}],"defaults":"","newTemplate":{"id":"","v":"","text":""},"newAction":{"id":"","v":"","text":""},"allowedChildrenForms":[{"id":"5a4fafb4-3c2b-4826-8a85-7c804ee4ac52","v":"c5d44b718a7df3ff","text":"Gebäude"}],"commands":[{"id":"42dd759b-43ee-4725-855e-6b414e22bb6c","v":"b00f92dc38dd2321","text":"rd:Neu"}],"descendantCommands":[],"to":[],"from":[],"namedIcon":"far fa-map-location","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"","v":"","text":""},"description":""},"locks":[],"created":{"at":"2025-08-01T12:34:51+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"modified":{"at":"2026-04-09T13:17:06+00:00","by":"729fa027-7e7e-4b06-9602-f535c43824f0","backedBy":"","impersonatedBy":"","from":"","client":"server"},"t":1775740626924,"ct":1754051691081,"a_depth":3,"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[]},{"id":"0c1ea2c5-516a-4b13-b6df-27cf1ebe309d","v":"91dde507137e3ab2","previous":{"v":"c45d000518b8bbf3"},"p":"efe6c460-ec94-41c6-994b-c27d08d74381","f":{"id":"form","v":"d497194b29933d26","text":"Form"},"data":{"name":"Gefährdungsbeurteilung","tags":"","allowUndefinedFields":false,"definition":"[Arbeitsbereich][arbeitsbereich]\n\n{multiline auto-grow}\n[Gefährdung][gefaehrdung]\n\n# Beurteilung\n\n[Risikoklasse][risikoklasse]\n\n[risikoklasse]: Select\n  - 0: \n  - 1: 1\n  - 2: 2\n  - 3: 3\n\n{multiline auto-grow}\n[Schutzziele][schutzziele]\n\n# Maßnahmen\n\n{multiline auto-grow}\n[Bemerkungen][bemerkungen]\n\n# Maßnahmen durchführen\n\n{ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path forms=d2ac3563-3c3f-4f02-b923-9b67abf98d10,group}\n[Wer?][durchfuehrungWer]\n[durchfuehrungWer]: /ref (0-n)\n\n[Bis wann?][durchfuehrungWann]\n\n# Wirksamkeit überprüfen\n\n[Wann?][wirksamkeitInterval]\n[wirksamkeitInterval]: Select\n  - STAENDIG: Ständig\n  - JAEHRLICH: Jährlich\n\n\n{children}\n[Überprüfungen][ueberpruefungen]\n[ueberpruefungen]: /7bd8d807-a0c2-49f4-90da-501e3a685ec5 (0-n)\n","functions":"","defaults":"","newTemplate":{"id":"","v":"","text":""},"newAction":{"id":"","v":"","text":""},"allowedChildrenForms":[],"commands":[],"namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"","v":"","text":""},"description":""},"locks":[],"created":{"at":"2023-06-16T10:13:43+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-06-16T10:51:15+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1686912675814,"ct":1686910423934,"a_depth":3,"a":["apps","075a56a2-3d34-402e-82ef-bd1fc7df456a","efe6c460-ec94-41c6-994b-c27d08d74381"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1686911625020},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596"],"a_depth":3,"a_forms":["folder","application-form","form-folder"],"created":{"at":"2025-08-01T12:34:54+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1754051694671,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[],"commands":[],"defaults":"","definition":"[Name][name] {hidden}[Typ][type]\n[type]: Select\n  - INTERNAL: Intern\n//  - EXTERNAL: Extern\n\n\n{show if type === 'INTERNAL'|ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Anmelde-Profil][employee]\n[employee]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n) <required>\n\n\n{show if type === 'EXTERNAL'}[Ansprechpartner][contact]\n{show if type === 'EXTERNAL'|email}[E-Mail][mail]\n{show if type === 'EXTERNAL'|phone}[Telefon][phone]\n\n[mail]: mail (0-n)\n[phone]: text (0-n)","descendantCommands":[],"description":"","from":[],"functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Team","namedIcon":"far fa-people-group","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"relatedDocuments":[],"tags":"","theme":{"id":"","text":"","v":""},"to":[],"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"b0b69a951dde83ea"},"id":"aa49f5c2-0502-4b7e-8ffd-4ac90427420e","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2026-07-08T08:42:28+00:00","backedBy":"","by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":""},"p":"05787127-986a-494f-a69e-8733c1176596","previous":{"v":"4b655e82a4131b3d"},"stamps":[],"t":1783500148670,"v":"1f88aade58d05c25"},{"id":"ffa650cf-e351-462e-baef-29f7c8f22d1b","v":"68fe713ca3c4ba6f","previous":{"v":"0a4657cc1d8490ae"},"p":"4ec6a0e5-cf2d-4095-9b70-2e31a64d5679","f":{"id":"form","v":"d497194b29933d26","text":"Form"},"data":{"name":"Seite","tags":"","allowUndefinedFields":false,"definition":"[Name][name]\n\n{editor}\n[Inhalt][content]","functions":"","defaults":"","newTemplate":{"id":"","v":"","text":""},"newAction":{"id":"","v":"","text":""},"allowedChildrenForms":[],"commands":[],"namedIcon":"far fa-file-alt","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"","v":"","text":""},"description":""},"locks":[],"created":{"at":"2023-12-14T11:17:06+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-12-14T11:18:50+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1702552730728,"ct":1702552626539,"a_depth":3,"a":["apps","45ada186-e9fd-451d-9dbd-2defc0b4f86f","4ec6a0e5-cf2d-4095-9b70-2e31a64d5679"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1708081497529},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e"],"a_depth":3,"a_forms":["folder","application-form","form-folder"],"created":{"at":"2025-07-07T08:42:26+00:00","backedBy":null,"by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":null},"ct":1751877746449,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[],"commands":[],"defaults":"","definition":"{hidden}\n[Name][name]\n[name]: text <editable=informationTitle> = functions.name(informationTitle, informationNumberTitle)\n\n[workflowError]: switch\n[allDocumentDataValid]: Switch\n\n{readonly}\n[Sammelinformationsnummer][informationNumberTitle]\n[informationNumberTitle]: text\n\n// should be used in sorting\n{hidden|readonly}\n[Sammelinformationsnummer][informationNumber]\n[informationNumber]: number\n\n{readonly}[Sammelinformation Workflow Phase][informationWorkflowPhaseTitle]\n[informationWorkflowPhaseTitle]: text <workflow-stamp-title>\n\n// informationWorkflowPhase should be used in sorting\n{hidden}\n[Sammelinformation Workflow Phase][informationWorkflowPhase]\n[informationWorkflowPhase]: select <workflow-stamp-title-order>\n  - 0: \n  - 1 <id=\"4bace9e6-9c80-4682-91b9-23f97d046e2c\">: S1\n  - 2 <id=\"71751199-53c5-459f-b5b9-c343ea507e53\">: S2\n  - 3 <id=\"591d7177-2ab2-4ac3-8321-d43461bcf1a3\">: S3\n\n\n{readonly}\n[Sammelinformationstitel][informationTitle]\n[informationTitle]: text <required>\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Ersteller][creator]\n[creator]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10\n\n{readonly|datetime type=\"year-month\"}\n[Zeitstempel Erstellung][creationTimestamp]\n[creationTimestamp]: date \n\n{show if submissionTimestamp|readonly|datetime type=\"year-month\"}\n[Zeitstempel Einreichung][submissionTimestamp]\n[submissionTimestamp]: date\n\n{show if acceptanceTimestamp|readonly|datetime type=\"year-month\"}\n[Zeitstempel Annahme][acceptanceTimestamp]\n[acceptanceTimestamp]: date\n  ","descendantCommands":[],"description":"","from":[],"functions":" name(title, number) {\n  if (number) {\n    return `[${number}]: ${title}`\n  }\n\n  return title\n}","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Sammelinfo","namedIcon":"far fa-memo-circle-info","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"relatedDocuments":[],"tags":"","theme":{"id":"","text":"","v":""},"to":[],"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"b0b69a951dde83ea"},"id":"49af721d-7068-4dd7-8df4-a5f79b3804cf","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2025-07-17T14:13:27+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"cd0dc80e-74a7-44b2-ac65-972cbf47562e","previous":{"v":"6e071474a6fded85"},"stamps":[],"t":1752761607999,"v":"4ac44b4d135223c4"},{"id":"5a4fafb4-3c2b-4826-8a85-7c804ee4ac52","v":"f620d294833c6056","previous":{"v":"032827f3a231b23e"},"p":"05787127-986a-494f-a69e-8733c1176596","f":{"id":"form","v":"410df4c62fb388dd","text":"Form"},"data":{"name":"Gebäude","tags":"","allowUndefinedFields":false,"definition":"[Name][name] \n\n[Bild][image]\n[image]: file\n\n[Zugangsbeschreibung][accessDescription]\n\n{address geolocation-to=addressGeolocation}\n[Adresse][address]\n[address]: address\n\n[addressGeolocation]: geolocation","functions":"","relatedDocuments":[{"id":"983c11c0-0ef2-4605-b124-d62191dae4b4","v":"initial","text":"AppKeeptrack-Areal"},{"id":"a9506ad9-6f1e-465d-b56f-796d5f3f09ae","v":"initial","text":""}],"defaults":"","newTemplate":{"id":"","v":"","text":""},"newAction":{"id":"","v":"","text":""},"allowedChildrenForms":[{"id":"1e3214b4-b81e-4ac2-a788-c2051af016ab","v":"d4ec62ccf38b0ffd","text":"Gebäuteteil"}],"commands":[{"id":"47770065-0bf2-46da-ad8a-d029b4559a67","v":"initial","text":"rd:Neu"}],"descendantCommands":[],"to":[],"from":[],"namedIcon":"far fa-building","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"","v":"","text":""},"description":""},"locks":[],"created":{"at":"2026-01-27T09:42:56+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"modified":{"at":"2026-04-09T13:17:52+00:00","by":"729fa027-7e7e-4b06-9602-f535c43824f0","backedBy":"","impersonatedBy":"","from":"","client":"server"},"t":1775740672862,"ct":1769506976962,"a_depth":3,"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[]},{"id":"27a5cf6e-22f8-44d2-8107-400b27382690","v":"bf422318fd3e238f","previous":{"v":"b48892e69cc46428"},"p":"4bfbe5fd-cf64-4b07-b91f-17bade3f41f9","f":{"id":"form","v":"d497194b29933d26","text":"Form"},"data":{"name":"Hydraulischer Ausgleich","tags":"","allowUndefinedFields":false,"definition":"{hidden}\n[Name][name]\n[name]: text <editable=projektName> = projektName \n\n{ref ancestor-form=b48189af-7305-4ee5-ab8b-e15cbcd55aa7 hide-path=true}[Ordner][ordner] {ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true prominent-pick-command=45f20576-a049-4643-8ce1-181c856990ac}[Bearbeiter][verantwortlich]\n[ordner]: /e85fc64c-df8a-493a-a7ce-fefa6d85d608\n[verantwortlich]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10\n\n[Projekt][projektName] [Rechnungsnummer][rechnungsnummer]\n\n[Termin][termin] [Start][start]\n[termin]: date\n[start]: date\n\n\n{switch delete-fields-if-true=express}[Sofort][sofort] {switch delete-fields-if-true=sofort}[Express][express]\n[sofort]: switch\n[express]: switch\n\n\n{ref ancestor-form=b48189af-7305-4ee5-ab8b-e15cbcd55aa7 hide-path=true creation-location-form=da73bcf8-be71-46ca-9645-894b04e2bfd1}\n[Labels][labels]\n[labels]: /43551782-1b7f-47ef-a694-9e9824c97091 (0-n)\n\n[projektName]: text <required>\n[rechnungsnummer]: text\n\n{multiline auto-grow}\n[Notizen][notizen]\n\n## 01 Angebotserstellung\n\n[Erledigt][erledigtAngebotserstellung] {select icon_NEUKUNDE=\"far fa-plus-circle\" icon_BESTANDSKUNDE=\"far fa-id-badge\"}[Kunde][kunde]\n[erledigtAngebotserstellung]: switch\n\n[kunde]: Select\n  - \n  - NEUKUNDE: Neukunde\n  - BESTANDSKUNDE: Bestandskunde\n\n{multiline auto-grow}\n[Notizen][notizenAngebotserstellung]\n\n## 02 Planungsbesprechung\n\n[Erledigt][erledigtPlanungsbesprechung]\n[erledigtPlanungsbesprechung]: switch\n\n[keine Ansichten vorhanden][keineAnsichten] [keine Schnitte vorhanden][keineSchnitte]\n[keineAnsichten]: switch\n[keineSchnitte]: switch\n\n{multiline auto-grow}\n[Notizen][notizenPlanungsbesprechung]\n\n## 03 Konstruktion Raumgeo\n\n[Erledigt][erledigtKonstruktionRaumgeo] [Geschosstabelle][geschosstabelle]\n\n{multiline auto-grow}\n[Notizen][notizenKonstruktionRaumgeo]\n\n[geschosstabelle]: switch\n[erledigtKonstruktionRaumgeo]: switch\n\n## 04 Heizlastberechnung durchführen\n\n[Erledigt][erledigtHeizlastberechnung]\n\n\n{select delete-fields-if-changed=heizlastBerechnungNachBaujahr}[Berechnung nach][heizlastberechnungNach] {show if heizlastberechnungNach === 'BAUJAHR'}[Baujahr][heizlastBerechnungNachBaujahr]\n[heizlastberechnungNach]: Select\n  - \n  - BAUJAHR: Baujahr\n  - WAERMESCHUTZ: Wärmeschutz\n  - FORMBLATT_GEBAUEDEHUELLE: Formblatt Gebäudehülle\n\n{multiline auto-grow}\n[Notizen][notizenHeizlastberechnung]\n\n[erledigtHeizlastberechnung]: switch\n\n## 05 Freigabe Heizlastberechnung\n\n[Erledigt][erledigtFreigabeHeizlastberechnung]\n\n{multiline auto-grow}\n[Notizen][notizenFreigabeHeizlastberechnung]\n\n[erledigtFreigabeHeizlastberechnung]: switch\n\n## 06 Auslegung Heizflächen\n\n[Erledigt][erledigtAuslegungHeizflaechen]\n\n[Auslegung][auslegung]\n[auslegung]: Select\n  - \n  - BESTAND: Bestand\n  - NEU: Neuauslage\n\n[HK][hk] [FBH][fbh]\n\n[hk]: switch\n[fbh]: switch\n\n[Klärung Heizkörper versendet][klaerungHeizkoerperVersendet] {show if klaerungHeizkoerperVersendet|now}[Versendet am][klaerungHeizkoerperVersendetAm]\n[klaerungHeizkoerperVersendet]: switch \n[klaerungHeizkoerperVersendetAm]: date\n\n{multiline auto-grow}\n[Notizen][notizenAuslegungHeizflaechen]\n\n[erledigtAuslegungHeizflaechen]: switch\n\n## 07 Konstruktion Rohrnetz\n\n[Erledigt][erledigtKonstruktionRohrnetz] [Rohrnetz unbekannt][rohrnetzUnbekannt]\n\n[erledigtKonstruktionRohrnetz]: switch\n[rohrnetzUnbekannt]: switch\n\n{multiline auto-grow}\n[Notizen][notizenKonstruktionRohrnetz]\n\n\n## 08 Heizlast Grundrisse Layout\n\n[Erledigt][erledigtHeizlastGrundrisseLayout]\n\n{multiline auto-grow}\n[Notizen][notizenHeizlastGrundrisseLayout]\n\n[erledigtHeizlastGrundrisseLayout]: switch\n\n## 09 Unterlagen versendet\n\n[Erledigt][erledigtUnterlagen]\n\n{multiline auto-grow}\n[Notizen][notizenUnterlagen]\n\n[erledigtUnterlagen]: switch\n","functions":"","defaults":"","newTemplate":{"id":"","v":"","text":""},"newAction":{"id":"","v":"","text":""},"allowedChildrenForms":[],"commands":[],"namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"","v":"","text":""},"description":""},"locks":[],"created":{"at":"2024-01-19T14:36:02+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-01-25T11:40:48+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1706182848319,"ct":1705674962241,"a_depth":3,"a":["apps","90a38bb1-5683-49d1-b519-203876cc6967","4bfbe5fd-cf64-4b07-b91f-17bade3f41f9"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1706182734520},{"id":"8c113cd0-af90-42fa-aa05-f67809d0a9a5","v":"2e8f66c88d1b15df","previous":{"v":"ecb55517986ee00a"},"p":"05787127-986a-494f-a69e-8733c1176596","f":{"id":"form","v":"b0b69a951dde83ea","text":"Form"},"data":{"name":"Arbeit","tags":"","allowUndefinedFields":false,"definition":"[name]: text = functions.name(identifier, activity)\n\n[Tätigkeit][activity] \n[Nummer/ID][identifier] [Inaktiv][inactive] {150px|readonly if interval === 'NONE'}[Intervall (Länge)][intervalLength] {select}[Intervall (Typ)][interval] \n[intervalLength]: number\n[interval]: select\n  - NONE: Bei Bedarf\n  - WEEK: wöchentlich\n  - MONTH: monatlich\n  - YEAR: jährlich\n\n[inactive]: switch\n\n{editor editor-control-groups=formatting,structure,list,table,history}\n[Hinweise zur Durchführung][instructions] \n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" file-name-field=\"name\" direct-preview}\n[Abbildungen zur Durchführung][instructionImages]\n[instructionImages]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n[Zustand][status] \n[status]: Select\n  - TODO <color=grey>: Zu prüfen\n  - FAULTY <color=red>: Fehlerhaft\n  - OK <color=green>: In Ordnung\n  - OK_CORRECTIONS <color=orange>: In Ordnung (korrigiert)\n  - NOT_APPLICABLE <color=grey>: Entfällt\n\n{ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Ergebniskategorien][resultCategories]\n[resultCategories]: /11eadb22-66ab-4417-8b51-298895b44d0d (0-n)\n\n[Bemerkungen müssen unabhängig vom Zustand erfasst werden][requireComment]\n\n{multiline auto-grow}[Bemerkungen][comment]\n\n[comment]: text <required=requireComment>\n\n[requireComment]: switch \"Immer Bemerkungen anfordern, unabhängig vom Zustand.\"\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" file-name-field=\"name\" direct-preview}\n[Fotos][photos]\n[photos]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{ref query-limit-command=f8341c86-df50-47fa-ae87-401c655b4379 handle-selected=false hide-path}\n[Erfassungsformular][recordingForm]\n[recordingForm]: /ref \n\n{readonly if !recordingForm.id|switch}\n[Erfassungen immer anfordern][requireRecordings]\n[requireRecordings]: switch \"Immer mindestens 1 Erfassung anfordern.\"\n\n{readonly|children form-field=recordingForm}\n[Erfassungen][recordings]\n[recordings]: /ref (0-n) <required=\"requireRecordings\">","functions":"name(identifier, activity) {\n  const parts = [identifier, activity]\n  return parts.filter(Boolean).join(' ')\n}","relatedDocuments":[{"id":"b406dbd9-af15-4c57-8186-da46f0c61fe1","v":"initial","text":""}],"defaults":"","newTemplate":{"id":"","v":"","text":""},"newAction":{"id":"","v":"","text":""},"allowedChildrenForms":[],"commands":[],"descendantCommands":[],"to":[],"from":[],"namedIcon":"far fa-hammer-brush","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"","v":"","text":""},"description":""},"locks":[],"created":{"at":"2025-08-01T12:36:34+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"modified":{"at":"2026-05-28T08:20:46+00:00","by":"09763886-6748-4a56-8e0e-54a2293ee96b","backedBy":"","impersonatedBy":"","from":"","client":"server"},"t":1779956446501,"ct":1754051794706,"a_depth":3,"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[]},{"a":["apps","1887a103-bf3b-473c-8cb7-4f1afad0286b","9b02b1b6-e32b-41ec-b451-dba59bc5847b"],"a_depth":3,"a_forms":["folder","application-form","form-folder"],"created":{"at":"2021-09-10T13:36:45+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":""},"ct":1631281004980,"data":{"allowedChildrenForms":[],"commands":[],"definition":"[Titel][name] {30}[Fällig][bis] {12}[Erledigt][erledigt] \n[erledigt]: switch\n[bis]: Date\n\n{ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true default-value-command=49a26db7-f4f3-41fb-ad26-e45f40d7de83}\n[Verantwortlich][verantwortlich]\n[verantwortlich]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n)\n\n{editor}\n[Beschreibung][beschreibung]  \n\n{children delete-on-remove navigate show-templates template-form=5a88c3ad-ed61-473d-8c2d-2ce4f54db7f2 template-form-field=aufgaben}\n[Aufgaben][aufgaben]\n[aufgaben]: /0deb4864-cbb6-420c-99ee-337c7444ab24 (0-n)","description":"","functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"To-do Liste","namedIcon":"","namedIconColor":"","tags":""},"f":{"id":"form","text":"Form","v":"cc65f983157bf1fd"},"id":"e66eae7c-a9d5-4a59-a2f0-d1fa6eb90ea5","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2024-11-18T15:11:00+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"9b02b1b6-e32b-41ec-b451-dba59bc5847b","previous":{"v":"575b6b115c51ed2f"},"stamps":[],"t":1731942660198,"v":"4ce35494b57fb7cd"},{"id":"33e3b54d-6b4b-4aa3-8f70-2b834b27bf66","v":"980f820b2faf4cc1","previous":{"v":"de18f43ee4f24ea6"},"p":"05787127-986a-494f-a69e-8733c1176596","f":{"id":"form","v":"410df4c62fb388dd","text":"Form"},"data":{"name":"Anlage","tags":"","allowUndefinedFields":false,"definition":"[name]: text = functions.name(identifier, facility)\n\n# Anlage\n\n[Name][facility] [Nummer/ID][identifier]\n\n[Technische Zeichnung][drawing]\n[drawing]: file\n\n{ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path creation-location-form=b270e94c-c223-4972-9db8-70b6750e740e on-creation-write-search-to-field=name}\n[Labels][labels]\n[labels]: /3f88574e-aaec-484a-8dc4-bbdcb085186d (0-n)\n\n# Planungen\n\n{ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path creation-location-form=227504b7-05fe-4ad1-a5fc-027639abff29 on-creation-write-search-to-field=name list}\n[Planungen][plannings]\n[plannings]: /5011479f-3ef7-4c66-810b-3bb65f992712 (0-n)\n\n# Stammdaten\n\n{embed}\n[Stammdaten][masterData]\n[masterData]: /99daba6d-f14e-4b51-babf-0417894e8eb5\n","functions":"name(identifier, facility) {\n  const parts = [identifier, facility]\n  return parts.filter(Boolean).join(' ')\n}","relatedDocuments":[{"id":"b6f93e22-988f-4ce4-bc46-eb31f5542217","v":"initial","text":"Technischer Platz"},{"id":"2b7eda74-e285-4caf-9816-0924339a6e38","v":"initial","text":"Gebäudeteil"},{"id":"a18386ec-036c-40e6-81f9-aba83586fc70","v":"initial","text":"Gebäude"},{"id":"b55e84fe-db07-438c-a84e-165e29665985","v":"initial","text":"Areal"},{"id":"20c0dff3-6079-4fad-bedf-81e15dcc56a2","v":"initial","text":""}],"defaults":"","newTemplate":{"id":"","v":"","text":""},"newAction":{"id":"","v":"","text":""},"allowedChildrenForms":[{"id":"31e6efab-61df-4b91-8250-3bfcfd491c6c","v":"d163b0f5f99cd6ca","text":"Aggregat"}],"commands":[{"id":"00722210-04db-48a7-9a8f-1f8a8a7bba3e","v":"initial","text":"rd:Neu"}],"descendantCommands":[],"to":[],"from":[],"namedIcon":"far fa-hard-drive","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"","v":"","text":""},"description":""},"locks":[],"created":{"at":"2025-08-01T12:36:20+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"modified":{"at":"2026-07-03T07:29:41+00:00","by":"09763886-6748-4a56-8e0e-54a2293ee96b","backedBy":"","impersonatedBy":"","from":"","client":"server"},"t":1783063781608,"ct":1770104215597,"a_depth":3,"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"meta":{}},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596"],"a_depth":3,"a_forms":["folder","application-form","form-folder"],"created":{"at":"2025-08-01T12:27:33+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1754051253824,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[],"commands":[{"id":"e9fb11c4-c191-46c4-95f4-34fc9e7264b4","text":"Ausführen","v":"initial"},{"id":"fd095ff2-159e-4da5-b7b9-fc1ab95ccd0d","text":"rd:Anlage fehlt","v":"initial"}],"defaults":"","definition":"[active]: switch = functions.active(interval, activeUi)\n\n{show if interval !== 'MANUAL'}{readonly if facilities.length === 0 || team.id === ''|switch appearance=toggle-text}\n[Aktiv][activeUi]\n[activeUi]: switch\n\n[Name][name]\n\n[Intervall][interval] {readonly if interval === 'MANUAL'}[Start][from] {readonly if interval === 'MANUAL'}[Ende][to]\n\n[from]: date\n[to]: date\n\n[interval]: Select\n  - MANUAL: Manuell\n  - DAILY: Täglich\n  - WEEKLY: Wöchentlich\n  - MONTHLY: Monatlich\n  - QUARTERLY: Quartalsweise\n  - YEARLY: Jährlich\n\n{multiline auto-grow}\n[Beschreibung][description]\n \n{ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path creation-location-form=b270e94c-c223-4972-9db8-70b6750e740e on-creation-write-search-to-field=name}\n[Labels][labels]\n[labels]: /3f88574e-aaec-484a-8dc4-bbdcb085186d (0-n)\n\n{children only-template delete-on-remove template-ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df template-location-form=6138e497-f561-430e-b3f1-8c3c7db046a7 template-transformer-action=6f114841-b9c2-497c-b7d1-f63cf78d2d4e add-filter-fields=data.labels}\n[Durchzuführende Wartung][maintenance]\n[maintenance]: /347d38c6-0bce-47ce-b271-9f924c56ac49 (0-n) <required>\n\n{ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df location-form=1451a42c-e8f9-430e-8fd0-b2209f389e84 list hide-path add-layout-id=a4c7f518-b5c3-498e-ac49-6822dbeec0dc} \n[Zu wartende Anlagen][facilities]\n[facilities]: /33e3b54d-6b4b-4aa3-8f70-2b834b27bf66 (0-n) <required>\n\n{ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Zuständiges Team][team]\n[team]: /aa49f5c2-0502-4b7e-8ffd-4ac90427420e <required>\n\n","descendantCommands":[],"description":"","from":[],"functions":"active(interval, activeUi) {\n  if (interval === 'MANUAL') return true\n\n  return activeUi\n}","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Planung","namedIcon":"far fa-ballot-check","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"relatedDocuments":[],"tags":"","theme":{"id":"","text":"","v":""},"to":[],"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"b0b69a951dde83ea"},"id":"5011479f-3ef7-4c66-810b-3bb65f992712","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2026-05-06T11:24:54+00:00","backedBy":"","by":"09763886-6748-4a56-8e0e-54a2293ee96b","client":"server","from":"","impersonatedBy":""},"p":"05787127-986a-494f-a69e-8733c1176596","previous":{"v":"ef153ff36e0fa082"},"stamps":[],"t":1778066694055,"v":"d686b7fd23237c10"},{"a":["apps","59edbdbc-2cab-426a-bb42-6e57c5158e4f","3be7e887-1bcd-4c3c-979f-b20a986c4c48"],"a_depth":3,"a_forms":["folder","application-form","form-folder"],"created":{"at":"2025-09-15T13:46:02+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1757943962395,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[],"commands":[],"defaults":"","definition":"[Titel][name]\n\n{editor}\n[Text][text]","descendantCommands":[],"description":"","from":[],"functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Projektpin","namedIcon":"","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"relatedDocuments":[],"tags":"","theme":{"id":"","text":"","v":""},"to":[],"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"16a1fc2c7a734357"},"id":"bafd025c-6262-4e9e-8368-345cd3ccddbc","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2025-09-15T13:46:32+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"3be7e887-1bcd-4c3c-979f-b20a986c4c48","previous":{"v":"initial"},"stamps":[],"t":1757943992690,"v":"0050e2a0650267d9"},{"id":"83c74f6a-fe5c-483e-a2ef-0498bd4aeff6","v":"bf827fb03d9006bc","previous":{"v":"059a4d51563f8d73"},"p":"cd0dc80e-74a7-44b2-ac65-972cbf47562e","f":{"id":"form","v":"d497194b29933d26","text":"Form"},"data":{"name":"Auswertungen","tags":"","allowUndefinedFields":false,"definition":"{readonly|json}\n[Applications by StampType][applicationsByStamps]\n[applicationsByStamps]: text\n","functions":"","defaults":"","newTemplate":{"id":"","v":"","text":""},"newAction":{"id":"","v":"","text":""},"allowedChildrenForms":[],"commands":[],"namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"","v":"","text":""},"description":""},"locks":[],"created":{"at":"2023-07-19T11:41:21+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-07-20T08:33:30+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1689842010421,"ct":1689766881031,"a_depth":3,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1730733813412},{"a":["apps","089481c4-a42f-4a98-9bc9-12e9f1131f4b","5fa71c32-0186-4007-92a9-f03a32b0ff33"],"a_depth":3,"a_forms":["folder","application-form","form-folder"],"created":{"at":"2025-04-11T07:51:29+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"ct":1744357889515,"data":{"controls":[],"description":"","designs":[],"name":"Column"},"f":{"id":"form-folder","text":"Form Folder","v":"9b1a050f5d4e0dec"},"id":"f008b3c3-3f60-4d12-b0b8-4fa95bc57936","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2025-04-11T07:51:29+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"5fa71c32-0186-4007-92a9-f03a32b0ff33","stamps":[],"t":1744357889516,"v":"initial"},{"a":["apps","089481c4-a42f-4a98-9bc9-12e9f1131f4b","5fa71c32-0186-4007-92a9-f03a32b0ff33"],"a_depth":3,"a_forms":["folder","application-form","form-folder"],"created":{"at":"2025-04-11T07:51:51+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"ct":1744357911642,"data":{"controls":[],"description":"","designs":[],"name":"Column-Backlog"},"f":{"id":"form-folder","text":"Form Folder","v":"9b1a050f5d4e0dec"},"id":"5fde1cdf-71c3-4851-b7ba-c5f2c551675f","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2025-04-11T07:51:51+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"5fa71c32-0186-4007-92a9-f03a32b0ff33","stamps":[],"t":1744357911643,"v":"initial"},{"a":["apps","94a64d89-d204-4918-b147-d717914fb03e","da519a4d-e51d-46ae-9ce7-bd3f494d2e8a"],"a_depth":3,"a_forms":["folder","application-form","form-folder"],"created":{"at":"2025-09-29T12:14:22+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1759148694960,"data":{"description":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Fallback Designs (Leistungen)"},"f":{"id":"design-folder","text":"Design Folder","v":"fa3a66b4a06ff90c"},"id":"7c0dc244-592b-4950-9539-e451c1fa5ca1","inheritedLocks":[null,null,null,null],"locks":[],"meta":{"modified":{"at":"2025-09-29T12:24:54+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null}},"modified":{"at":"2025-09-29T12:14:22+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"da519a4d-e51d-46ae-9ce7-bd3f494d2e8a","previous":{"f":{"id":"design-folder","text":"Design Folder","v":"4fccf7c8ead30dd3"},"v":"2f23fe441d29272c"},"stamps":[],"t":1759148694960,"v":"430e671d7c47e753"},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e"],"a_depth":3,"a_forms":["folder","application-form","form-folder"],"created":{"at":"2022-12-07T10:37:19+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1681389760614,"data":{"allowedChildrenForms":[],"commands":[],"definition":"{hidden}\n[syncTo][syncTo]\n[syncTo]: /ref\n\n[documentDataValid]: Switch\n[allDocumentDataValid]: Switch\n\n## 1. Allgemein\n\n{multiline max=1500}\n[1.1 Inhalt des Antrages in Kurzform][inhaltAntrag]\n[inhaltAntrag]: text <required help=layoutId> \"f5333fe1-af02-4125-b50c-4da6d6172604\"\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove=true}\n[1.2 System-Kontext-Diagramm][systemContextDiagramm]\n[systemContextDiagramm]:  /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <help=layoutId> \"01d451d6-7623-43af-ae83-badc6e2b2c7c\"\n\n{multiline max=1500}\n[1.3 System-Kontext-Diagramm Kommentar][systemKontextDiagrammKommentar]\n[systemKontextDiagrammKommentar]: text <help=layoutId> \"9e4cd155-ee7f-45e8-9451-edf2dc106ec0\"\n\n{select}\n[1.4 Verfügt das IT-System über eine begleitende Applikation (App), oder eine gesonderte Darstellungs-/Funktionsweise zur Nutzung auf mobilen Endgeräten?][nutzungMobileEndgeraete]\n[nutzungMobileEndgeraete]: Select <required help=layoutId> \"c6dba27a-9c03-4765-9132-cc1a21f16692\"\n  - \n  - NEIN: Nein\n  - BEGLEITENDE_ANWENDUNG: Ja, die Applikation wird in der IT-Mitbestimmung separat geführt (Bitte Name der Anwendung und Bestandslistennummer nennen)\n  - INKLUDIERT: Ja, die Applikation/Darstellung wird zusammen mit dem IT-System prozessiert und hat für den Nutzer denselben Funktionsumfang.\n  - INKLUDIERT_ABWEICHUNG: Ja, die Applikation/Darstellung wird zusammen mit dem IT-System prozessiert und unterscheidet sich für den Nutzer im Funktionsumfang wie folgt (Bitte beschreiben)\n\n{show if nutzungMobileEndgeraete === 'BEGLEITENDE_ANWENDUNG'|ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[1.4a Bestandslisteneintrag der Begleitende Applikation][nutzungMobileEndgeraeteBestandseintrag]\n[nutzungMobileEndgeraeteBestandseintrag]: /50c3c7c5-c3d4-460c-b34d-0d61a4cb09ae <required help=layoutId> \"1e284d57-9c9f-4ff2-b0b8-60aa288f188f\"\n\n{show if nutzungMobileEndgeraete === 'INKLUDIERT_ABWEICHUNG'|multiline max=1500}\n[1.4b Abweichender Umfang/Funktion der Applikation][nutzungMobileEndgeraeteAbweichung]\n[nutzungMobileEndgeraeteAbweichung]: text <required>\n\n{show if (nutzungMobileEndgeraete && nutzungMobileEndgeraete !== 'NEIN')|multiline max=1500}\n[1.4c Wie kann die begleitende Applikation (App) bezogen werden?][nutzungMobileEndgeraeteBezugsquelle]\n[nutzungMobileEndgeraeteBezugsquelle]: text <required help=layoutId>  \"60c772c9-1b91-4776-82d0-1fc2fce9c58b\"\n\n## 2. Nutzer\n\n{select}\n[2.1 Wie viele (ca.) Personen sind Nutzer (Intern) des IT-Systems?][nutzerIntern]\n\n{select}\n[2.2 Wie viele (ca.) Personen sind Betroffene (Intern) des IT-Systems?][betroffeneIntern]\n\n{select}\n[2.3 Wie viele (ca.) Personen sind Nutzer (Extern) des IT-Systems?][nutzerExtern]\n\n[nutzerIntern]: Select <required help=layoutId> \"f948bc34-8a9a-4ea3-8b97-b558b9964eeb\"\n  - \n  - 0: \"0\"\n  - 1_10: 1-10\n  - 11_50: 11-50\n  - 51_249: 51-249\n  - 250_: ≥ 250\n\n[betroffeneIntern]: Select <required help=layoutId> \"7f6b9680-40ec-4255-93af-4a6648e3cf31\"\n  - \n  - 0: \"0\"\n  - 1_10: 1-10\n  - 11_50: 11-50\n  - 51_249: 51-249\n  - 250_: ≥ 250\n\n[nutzerExtern]: Select <required help=layoutId> \"39a436e7-2d83-4fd9-93f7-ccd61c55c150\"\n  - \n  - 0: \"0\"\n  - 1_10: 1-10\n  - 11_50: 11-50\n  - 51_249: 51-249\n  - 250_: ≥ 250\n\n## 3. Administration\n\n{select}\n[3.1 Wie viele interne Administratoren haben Zugang zu dem IT-System?][adminsIntern]\n[adminsIntern]: Select <required help=layoutId> \"f1ccf2db-a26d-4525-867d-1d6cbbe03772\"\n  - \n  - 0: \"0\"\n  - 1_3: 1-3\n  - 4_6: 4-6\n  - 6_10: 6-10\n  - 11_: ≥11\n\n{select appearance=toggle-text}\n[3.2 Gibt es externe Administratoren (keine Mitarbeiter von Fresenius)?][adminsExtern]\n[adminsExtern]: select <required help=layoutId> \"dc4f680b-3154-4428-b474-a3acd1ce8995\"\n  - \n  - TRUE: Ja\n  - FALSE: Nein\n\n\n{show if adminsExtern === 'TRUE'|multiline max=1500}\n[3.2a Bitte geben Sie den Namen sowie den Standort (Land) des administrierenden Unternehmens an][adminsExternBeschreibung]\n[adminsExternBeschreibung]: text <required help=layoutId> \"a2896362-c004-4ee9-ad32-aac8c533bef7\"\n\n{select appearance=toggle-text}\n[3.3 Befinden sich Personen mit Administrationsrechten innerhalb einer Berichtslinie als Weisungsgebundene gegenüber dem Prozesseigners?][berichtslinieWeisungsgebundeneAdministratoren] \n[berichtslinieWeisungsgebundeneAdministratoren]: select <required help=layoutId> \"caf87d79-cc0b-44a5-8101-1173bfcc8605\"\n  - \n  - TRUE: Ja\n  - FALSE: Nein\n\n\n{show if berichtslinieWeisungsgebundeneAdministratoren === 'TRUE'|multiline max=1500}\n[3.3a Beschreibung (Personen mit Adminstrationsrechten innerhalb Berichtslinie)][berichtslinieWeisungsgebundeneAdministratorenBeschreibung]\n[berichtslinieWeisungsgebundeneAdministratorenBeschreibung]: text <required > \n\n\n## 4. Rollen- und Berechtigungskonzept\n\n{hidden if (rollenUndBerechtigungskonzeptAnhaenge[0] && rollenUndBerechtigungskonzeptAnhaenge[0].id)|editor commands=table}\n[4.1a Rollen- und Berechtigungskonzept erstellen][rollenUndBerechtigungskonzeptText]\n[rollenUndBerechtigungskonzeptText]: text <required help=layoutId> \"df67a9db-7ba8-4c73-b62d-277fda2c0d51\"\n\n{hidden if rollenUndBerechtigungskonzeptText.length > 69|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove=true}\n[4.1b Rollen- und Berechtigungskonzept hochladen][rollenUndBerechtigungskonzeptAnhaenge]\n[rollenUndBerechtigungskonzeptAnhaenge]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required help=layoutId> \"df67a9db-7ba8-4c73-b62d-277fda2c0d51\"\n\n\n{multiline max=1500}\n[4.2 Bitte beschreiben Sie den Benutzerverwaltungs- und Berechtigungsvergabeprozess][benutzerUndRechteProzess]\n[benutzerUndRechteProzess]: text <required help=layoutId> \"af8f7fe9-1126-4e29-b4a2-d859d2caa806\"\n\n\n{select}\n[4.3 Findet die Authentifizierung über einen bestehenden Verzeichnisdienst statt?][authentifizierungsdienst]\n[authentifizierungsdienst]: Select <required help=layoutId> \"c9c11ef5-c363-4d57-ba5d-d5bdf7189b25\"\n  - \n  - ACTIVE_DIRECTORY: Ja, über das Fresenius Active Directory\n  - VERZEICHNISDIENST: Ja, über folgenden Verzeichnisdienst\n  - PASSWORTRICHTLINIE: Nein, jedoch findet folgende Passwortrichtlinie/Vorgabe Verwendung\n\n\n{show if authentifizierungsdienst === 'VERZEICHNISDIENST'}\n[4.3a Verzeichnisdienst bennen][verzeichnisdienst]\n[verzeichnisdienst]: text <required>\n\n{show if authentifizierungsdienst === 'PASSWORTRICHTLINIE'}\n[4.3b Passwortrichtlinie/Vorgabe bennen][passwortrichtlinie]\n[passwortrichtlinie]: text <required>\n\n{select appearance=toggle-text}\n[4.4 Findet eine Zwei-, oder Multi-Faktor-Authentifizierung statt?][zweiFaktorAuthentifizierung]\n[zweiFaktorAuthentifizierung]: select <required help=layoutId> \"224a42b5-0e33-4642-998b-0f1790b1a45c\"\n  - \n  - TRUE: Ja\n  - FALSE: Nein\n\n{show if zweiFaktorAuthentifizierung === 'TRUE'|multiline max=1500}\n[4.4a Welche Faktoren werden verwendet?][zweiFaktorAuthentifizierungFaktoren]\n[zweiFaktorAuthentifizierungFaktoren]: text <required>\n\n\n## 5. Systemumgebung\n\n{select}\n[5.1 Bitte geben Sie an, ob zu dem IT-System weitere Instanzen, oder Systemkopien beispielsweise zu Entwicklungs- oder Testzwecken existieren][instanzenEntwicklungTest]\n[instanzenEntwicklungTest]: Select <required help=layoutId> \"e23f555d-56a4-4763-a1e3-f90bb6881db4\"\n  - \n  - KEINE : Es existieren keine weiteren Kopien/Systeminstanzen.\n  - FIKTIVE_DATEN: Es existieren weitere Kopien/Systeminstanzen, welche jedoch ausschließlich fiktive (Test-)Daten ohne Personenbezug verarbeiten.\n  - ECHT_DATEN: Es existieren weitere Kopien/Systeminstanzen, in welchen unter anderem Echt- oder personenbezogene Daten verarbeitet werden.\n\n{select}\n[5.2 Bitte geben Sie an, bei wem die Entscheidung über das Einspielen von funktionalen Systemänderungen (Updates) liegt?][entscheidungFunktionaleUpdates]\n[entscheidungFunktionaleUpdates]: Select <required help=layoutId> \"c1ad96c9-04d7-4c7c-9124-619611a6d78b\"\n  -  \n  - IT_SYSTEMEIGNER: Beim IT-Systemeigner\n  - HERSTELLER: Beim Hersteller (Bspw. Evergreen-Ansatz)\n  - ANDERE: Liegt bei (Bitte beschreiben)\n\n\n\n{show if entscheidungFunktionaleUpdates === 'ANDERE'}\n[5.2a Beschreibung][entscheidungFunktionaleUpdatesBeschreibung]\n[entscheidungFunktionaleUpdatesBeschreibung]: text <required>\n\n{select}\n[5.3 Bitte geben Sie an, bei wem die Entscheidung über das Einspielen von rein technischen Systemänderungen (Updates) liegt?][entscheidungTechnischeUpdates]\n[entscheidungTechnischeUpdates]: Select <required help=layoutId> \"ea030617-f42e-4bdf-ac0c-b5f746fb8ffc\"\n  - \n  - IT_SYSTEMEIGNER: Beim IT-Systemeigner\n  - HERSTELLER: Beim Hersteller (Bspw. Evergreen-Ansatz)\n  - ANDERE: Liegt bei (Bitte beschreiben)\n\n{show if entscheidungTechnischeUpdates === 'ANDERE'}\n[5.3a Beschreibung][entscheidungTechnischeUpdatesBeschreibung]\n[entscheidungTechnischeUpdatesBeschreibung]: text <required>\n\n\n{multiline max=1500}\n[5.4 Bitte beschreiben Sie, wie Änderungen am System im Vorfeld geprüft und im Nachgang dokumentiert werden (Changemanagement)][changemanagement]\n[changemanagement]: text <required help=layoutId> \"1342b171-8290-48ba-a8c1-09d820c5adaf\"\n\n{select appearance=toggle-text}\n[5.5 Existiert für dieses IT-System ein Endanwendersupport (1st Level Support)?][firstLevelSupport]\n[firstLevelSupport]: select <required help=layoutId> \"4b060582-1a8b-4d49-ba60-86801632b054\"\n  - \n  - TRUE: Ja\n  - FALSE: Nein\n\n{show if firstLevelSupport === 'TRUE'}\n[5.5a Wird der Support durch Fresenius interne Mitarbeiter erbracht?][firstLevelSupportIntern]\n[firstLevelSupportIntern]: select <required help=layoutId> \"dd2312e3-db34-4d83-9099-474f7be420a7\"\n  - \n  - TRUE: Ja\n  - FALSE: Nein\n\n{show if firstLevelSupportIntern === 'TRUE'}\n[5.5aa Bitte geben Sie die Abteilung an, die den Support erbringt][firstLevelSupportInternAbteilung]\n[firstLevelSupportInternAbteilung]: text <required>\n\n{show if firstLevelSupport === 'TRUE' && firstLevelSupportIntern === 'FALSE'|multiline max=1500}\n[5.5b Bitte geben Sie den Namen sowie den Standort (Land) des Unternehmens an, dass den Support erbringt][firstLevelSupportExternBeschreibung]\n[firstLevelSupportExternBeschreibung]: text <required>\n\n## 6. Datenschutz und IT-Sicherheit\n\n{select appearance=toggle-text}\n[6.1 Wurde bereits im Vorfeld der IT-Mitbestimmung eine datenschutzseitige Risikobewertung durchgeführt?][datenschutzseitigeRiskobewertung]\n[datenschutzseitigeRiskobewertung]: select <required help=layoutId> \"32389542-9d25-4eb4-b822-78f799fc3718\"\n  - \n  - TRUE: Ja\n  - FALSE: Nein\n\n{show if datenschutzseitigeRiskobewertung === 'TRUE'|multiline max=1500}\n[6.1a Bitte bennen Sie den durchgeführten Prozess][datenschutzseitigeRiskobewertungBeschreibung]\n[datenschutzseitigeRiskobewertungBeschreibung]: text <required help=layoutId> \"31d71333-3042-46fe-9e56-1b0a3123a043\"\n\n\n{select appearance=toggle-text}\n[6.2 Gib es in der Anwendung eine systemseitige Unterstützung zur Einhaltung der Pflichten aus dem Datenschutz?][systemUnterstuetzungDatenschutz]\n[systemUnterstuetzungDatenschutz]: select <required help=layoutId> \"d3451bcb-8991-4fc4-b1af-949baf1bb615\"\n  - \n  - TRUE: Ja\n  - FALSE: Nein\n\n\n{show if systemUnterstuetzungDatenschutz === 'TRUE'}\n[6.2a Beschreibung][systemUnterstuetzungDatenschutzBeschreibung]\n[systemUnterstuetzungDatenschutzBeschreibung]: text <required>\n\n{hidden if (datenartenAufbewahrungsdauerRechtlicheGrundlagenAnhaenge[0] && datenartenAufbewahrungsdauerRechtlicheGrundlagenAnhaenge[0].id)|editor commands=table}\n[6.3a Darstellung alle im IT-System verarbeiteten personenbezogenen/personenbeziehbare Daten(arten) und die dazugehörige Aufbewahrungsdauer, sowie die rechtliche Grundlage Tabelle erstellen][datenartenAufbewahrungsdauerRechtlicheGrundlagenText]\n[datenartenAufbewahrungsdauerRechtlicheGrundlagenText]: text <required help=layoutId> \"62908189-ffea-48ba-8f52-c58fd6fd4da5\"\n\n{hidden if datenartenAufbewahrungsdauerRechtlicheGrundlagenText.length > 69|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove=true}\n[6.3b Darstellung alle im IT-System verarbeiteten personenbezogenen/personenbeziehbare Daten(arten) und die dazugehörige Aufbewahrungsdauer, sowie die rechtliche Grundlage hochladen][datenartenAufbewahrungsdauerRechtlicheGrundlagenAnhaenge]\n[datenartenAufbewahrungsdauerRechtlicheGrundlagenAnhaenge]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required help=layoutId> \"62908189-ffea-48ba-8f52-c58fd6fd4da5\"\n\n\n{hidden if (schnittstellenAnhaenge[0] && schnittstellenAnhaenge[0].id)|editor commands=table}\n[6.4a Schnittstellen zu anderen IT-Systemen Tabelle erstellen][schnittstellenText]\n[schnittstellenText]: text <required help=layoutId> \"a3b6960d-ce95-4b84-a407-ccea8916d701\"\n\n{hidden if schnittstellenText.length > 69|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove=true}\n[6.4b Schnittstellen zu anderen IT-Systemen hochladen][schnittstellenAnhaenge]\n[schnittstellenAnhaenge]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required help=layoutId> \"a3b6960d-ce95-4b84-a407-ccea8916d701\"\n\n\n{select}\n[6.5 Wo werden die Daten verarbeitet?][datenverarbeitungOrt]\n[datenverarbeitungOrt]: Select <required help=layoutId> \"8001cf1d-3f82-43fc-9a2a-00888988c6cf\"\n  - \n  - INTERN_EU: Intern bei Fresenius innerhalb EU / EWR.\n  - INTERN_WELT: Intern bei Fresenius außerhalb der EU / EWR.\n  - EXTERN_EU: Extern innerhalb der EU / EWR.\n  - EXTERN_WELT: Extern außerhalb EU / EWR.\n\n{select}\n[6.6 Findet die Datenverarbeitung in einem Rechenzentrum mit geprüftem Schutzniveau statt?][datenverarbeitungSchutzniveau]\n[datenverarbeitungSchutzniveau]: Select <required help=layoutId> \"4e09c775-1b4b-44e9-873b-058b1125d812\"\n  - \n  - KEINE: Das IT-System wird nicht in einem Rechenzentrum betrieben\n  - KEINE_ZERTIFIZIERUNG: Es liegt keine Zertifizierung vor\n  - ISO_27001: Ja, es besteht eine Zertifizierung nach ISO 27001\n  - ZERTIFIZIERUNG: Ja, es besteht folgende Zertifizierung\n\n{show if datenverarbeitungSchutzniveau === 'ZERTIFIZIERUNG'}\n[6.6a Zertifizierung bennen][datenverarbeitungBeschreibung]\n[datenverarbeitungBeschreibung]: text <required>\n\n{select}\n[6.7 Wie erfolgt die Löschung von Daten nach Ablauf der Aufbewahrungsfrist im System?][loeschungAblaufAufbewahrungsfrist]\n[loeschungAblaufAufbewahrungsfrist]: Select <required help=layoutId> \"8b23a70c-c5b0-4e73-bb06-5af9d0d5454f\"\n  - \n  - SYSTEM: Automatisch / Systemgesteuert\n  - MANUELL: Manuell (Bitte beschreiben)\n  - DRITTE: Durch eine dritte / andere Anwendung (Bitte benennen)\n  - ANDERE: Sonstig (Bitte beschreiben)\n\n{hidden if (!loeschungAblaufAufbewahrungsfrist || loeschungAblaufAufbewahrungsfrist === 'SYSTEM')|multiline max=1500}\n[6.7a Beschreibung Löschung][loeschungAblaufAufbewahrungsfristBeschreibung]\n[loeschungAblaufAufbewahrungsfristBeschreibung]: text <required help=layoutId> \"a9ab0e06-c4dc-43ff-b3d5-bcde052bdf7f\"\n\n{select appearance=toggle-text}\n[6.8 Findet eine Verarbeitung von personenbezogenen Daten durch Dritte statt?][verarbeitungPersonenbezogeneDaten]\n[verarbeitungPersonenbezogeneDaten]: select <required help=layoutId> \"5ba3cb15-1532-400f-bc41-b321aab49b8c\"\n  - \n  - TRUE: Ja\n  - FALSE: Nein\n\n{show if verarbeitungPersonenbezogeneDaten === 'TRUE'|multiline max=1500}\n[6.8a Durch wen findet die Verarbeitung statt?][verarbeitungPersonenbezogeneDatenVerarbeiter]\n[verarbeitungPersonenbezogeneDatenVerarbeiter]: text <required>\n\n{show if verarbeitungPersonenbezogeneDaten === 'TRUE'}\n[6.8b In welchem Land findet die Verarbeitung statt?][verarbeitungPersonenbezogeneDatenLand]\n[verarbeitungPersonenbezogeneDatenLand]: text <required>\n\n{show if verarbeitungPersonenbezogeneDaten === 'TRUE'|multiline max=1500}\n[6.8c Geben Sie die datenschutzrechtlichen Verträge inkl. Datum der Unterzeichnung oder anderweitige Rechtsgrundlagen an][verarbeitungPersonenbezogeneDatenRechtsgrundlage]\n[verarbeitungPersonenbezogeneDatenRechtsgrundlage]: text <required help=layoutId> \"084842eb-b0d5-4936-a9d4-5e401137dabf\"\n\n\n{select appearance=toggle-text}\n[6.9 Findet eine Archivierung personenbezogener Datenarten statt?][archivierungPersonenbezogeneDaten]\n[archivierungPersonenbezogeneDaten]: select <required help=layoutId> \"6bee4a54-6eb8-42b8-9ae6-f76d7c90294b\"\n  - \n  - TRUE: Ja\n  - FALSE: Nein\n\n{show if archivierungPersonenbezogeneDaten === 'TRUE'|multiline max=1500}\n[6.9a Beschreiben Sie das zugrundeliegende Konzept][archivierungPersonenbezogeneDatenBeschreibung]\n[archivierungPersonenbezogeneDatenBeschreibung]: text <required help=layoutId> \"1bb84b17-0904-4fd7-add3-64619ac865b3\"\n\n{select appearance=toggle-text}\n[6.10 Findet eine Datenübertragung zwischen Fresenius Konzernteilen statt?][datenuebertragungAndereKonzernteile]\n[datenuebertragungAndereKonzernteile]: select <required help=layoutId> \"3709bdd8-dc6c-4b14-a42f-a896ea2b4c26\"\n  - \n  - TRUE: Ja\n  - FALSE: Nein\n\n{select appearance=toggle-text}\n[6.11 Wurde eine Risikobewertung (unabhängig datenschutzrechtlicher Risikobewertungen) im Rahmen eines IT-Security Prozesses durchgeführt?][itsecurityRisikobewertung]\n[itsecurityRisikobewertung]: select <required help=layoutId> \"b79459ff-35e8-4a79-8f02-7ab4fc604ba7\"\n  - \n  - TRUE: Ja\n  - FALSE: Nein\n\n{show if itsecurityRisikobewertung === 'TRUE'|multiline max=1500}\n[6.11a Bitte beschreiben Sie das Ergebnis][itsecurityRisikobewertungBeschreibung]\n[itsecurityRisikobewertungBeschreibung]: text <required help=layoutId> \"b6816ee7-74d7-4366-8f9e-6d2c814fe996\"\n\n## 7. Leistungs- und Verhaltenskontrolle\n\n{hidden if (auswertungenLogfilesAnhaenge[0] && auswertungenLogfilesAnhaenge[0].id)|editor commands=table}\n[7.1a Tabellarischen Darstellung aller möglichen Auswertungen/Logfiles mit denen im System verarbeiteten Daten(arten) Tabelle erstellen][auswertungenLogfilesText]\n[auswertungenLogfilesText]: text <required help=layoutId> \"8bae934f-0c06-4552-98cd-22386164f525\"\n\n{hidden if auswertungenLogfilesText.length > 69|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove=true}\n[7.1a Tabellarischen Darstellung aller möglichen Auswertungen/Logfiles mit denen im System verarbeiteten Daten(arten) hochladen][auswertungenLogfilesAnhaenge]\n[auswertungenLogfilesAnhaenge]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required help=layoutId> \"8bae934f-0c06-4552-98cd-22386164f525\"\n\n\n{select}\n[7.2b Bitte beschreiben Sie den Umgang mit einer gegebenenfalls möglichen Leistungs- und Verhaltenskontrolle (LuVK) im System][leistungsVerhaltenskontrolle] \n[leistungsVerhaltenskontrolle]: Select <required help=layoutId> \"ed7acfca-0d43-494a-8286-53be91a004cd\"\n  - \n  - BEABSICHTIGT: Eine Nutzung der LuVK ist beabsichtigt. (Bitte erläutern Sie den Zweck sowie die betriebliche/gesetzliche Grundlage der Verhaltens- und Leistungskontrolle)\n  - NICHT_BEABSICHTIGT: Eine Nutzung der LuVK ist nicht beabsichtigt. (Bitte erläutern Sie die technischen/organisatorischen Maßnahmen wie die Nutzung der Leistungs- und Verhaltenskontrolle verhindert wird)\n  - AUSGESCHLOSSEN: Es besteht aus technischer Sicht keine Möglichkeiten einer LuVK, somit ist diese ausgeschlossen.\n\n{show if leistungsVerhaltenskontrolle === 'BEABSICHTIGT'|multiline max=1500}\n[7.2a Zweck der LuVK][leistungsVerhaltenskontrolleZweck]\n[leistungsVerhaltenskontrolleZweck]: text <required help=layoutId> \"f3b09820-4722-45db-a0d7-6b087d8cab35\"\n\n{show if leistungsVerhaltenskontrolle === 'NICHT_BEABSICHTIGT'|multiline max=1500}\n[7.2b Technische/Organisatorische Maßnahmen][leistungsVerhaltenskontrolleMassnahmen]\n[leistungsVerhaltenskontrolleMassnahmen]: text <required>\n\n## 8. Organisatorischer Rahmen\n\n{select appearance=toggle-text}\n[8.1 Gibt es firmen-, bzw. konzerninterne Vorgaben welche explizit den Umgang mit dem System regeln? ][vorgabenUmgang]\n[vorgabenUmgang]: select <required help=layoutId> \"32789e83-b2e2-49f3-9ff7-4f05a2beec1b\"\n  - \n  - TRUE: Ja\n  - FALSE: Nein\n\n{show if vorgabenUmgang === 'TRUE'|multiline max=1500}\n[8.1a Folgende Vorgaben existieren][vorgabenUmgangBeschreibung]\n[vorgabenUmgangBeschreibung]: text <required> \n\n{select appearance=toggle-text}\n[8.2 Gibt es Mitarbeiter, die verpflichtet sind, dieses IT-System zu verwenden?][verpflichtungUmgang]\n[verpflichtungUmgang]: select <required help=layoutId> \"411a30f8-5430-4bfe-9b08-2548cf7576ef\"\n  - \n  - TRUE: Ja\n  - FALSE: Nein\n\n{select appearance=toggle-text}\n[8.3 Ist es notwendig, dass Nutzer des Systems eine bestimmte Qualifikation nachweisen (Bspw. Abschluss einer Schulung)?][nutzerNachweisQualifikation]\n[nutzerNachweisQualifikation]: select <required help=layoutId> \"da1e9452-1b0d-4023-9f75-e08acd663fb0\"\n  - \n  - TRUE: Ja\n  - FALSE: Nein\n\n{show if nutzerNachweisQualifikation === 'TRUE'|multiline max=1500}\n[8.3a Welche Qualifikation wird benötigt?][nutzerNachweisQualifikationBeschreibung]\n[nutzerNachweisQualifikationBeschreibung]: text <required>\n\n{select appearance=toggle-text}\n[8.4 Steht das IT-System in allen notwendigen Sprachen gemäß der Nutzerschaft zur Verfügung?][systemSprachenVerfuegbar]\n[systemSprachenVerfuegbar]: select <required help=layoutId> \"daf315ae-add4-45c0-b822-77144ec1d2f9\"\n  - \n  - TRUE: Ja\n  - FALSE: Nein\n\n{show if systemSprachenVerfuegbar === 'TRUE'|multiline max=1500}\n[8.4a Beschreiben Sie den Umgang damit, dass das System nicht in allen benötigten Sprachen zur Verfügung steht][systemSprachenVerfuegbarBeschreibung]\n[systemSprachenVerfuegbarBeschreibung]: text <required>\n\n{select}\n[8.5 Gibt es in, bzw. zu der Anwendung IT-gestützte Lerninhalte?][lerninhalte]\n[lerninhalte]: Select <required help=layoutId> \"d60e5595-41e0-4b61-9ae5-a9b95d35f61c\"\n  - \n  - NEIN: Nein\n  - INNERHALB_ANWENDUNG: Ja innerhalb der Anwendung\n  - LEARNING_CENTER: Ja, begleitend zur Anwendung, im Fresenius Learning Center unter folgender ITGL-Nummer (Bitte nennen, sofern bereits prozessiert)\n  - IT_SYSTEM: Ja, begleitend zur Anwendung, in folgendem IT-System (Bitte nennen)\n\n{show if lerninhalte === 'LEARNING_CENTER'}\n[8.5a Angabe ITGL Nummer][lerninhalteLearningCenter]\n[lerninhalteLearningCenter]: text <required>\n\n{show if lerninhalte === 'IT_SYSTEM'}\n[8.5b IT System mit Lerninhalten][lerninhalteItSystem]\n[lerninhalteItSystem]: text <required>","description":"","functions":"isAnyFilledout() {\n  if (!arguments.length) {\n    return false\n  }\n\n  const check = (args) => {\n    for (const arg of args) {\n      if (typeof arg === 'string') {\n        if (arg.startsWith('{')) {\n          // must be tiptap editor v2\n          return arg.length > 69\n        } else if (arg.trim()) {\n          return true\n        }\n\n        continue\n      }\n\n      if (typeof arg === 'object') {\n        if (Array.isArray(arg)) {\n          if (check(arg)) {\n            return true\n          }\n        } else if ('id' in arg) {\n          if (arg.id) {\n            return true\n          }\n        }\n\n        continue\n      }\n    }\n  }\n\n  if (check(arguments)) {\n    return true\n  }\n\n  return false\n}   ","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Prüfkatalog","namedIcon":"","namedIconColor":"","tags":"","theme":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"3163b16b782f3ff6"},"id":"b5dcdd5b-6a84-4e13-92a2-052a1f1d1492","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2025-04-07T14:25:35+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"cd0dc80e-74a7-44b2-ac65-972cbf47562e","previous":{"v":"926a35466278def0"},"stamps":[],"t":1744035935978,"v":"e7fee49d3d9e1f2e"},{"id":"f5850e39-8581-4b62-8cfe-f4fa95009a1a","v":"063ff887fee41d34","previous":{"v":"cf35dd07222be6fa"},"p":"05787127-986a-494f-a69e-8733c1176596","f":{"id":"form","v":"16a1fc2c7a734357","text":"Form"},"data":{"name":"Wartungsteil","tags":"","allowUndefinedFields":false,"definition":"[name]: text = functions.name(identifier, part)\n\n\n{show if draft|readonly}[Entwurf][draft]\n \n[draft]: switch\n\n[Name][part] [Nummer/ID][identifier] \n\n{multiline auto-grow}\n[Beschreibung][description]\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" file-name-field=\"name\" direct-preview}\n[Abbildungen][images]\n[images]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{readonly}\n[Status][status]\n[status]: Select\n  - NOT_STARTED: Nicht begonnen\n  - CANCELED: Abgebrochen\n  - STARTED: Begonnen\n  - COMPLETED: Abgeschlossen\n\n{children navigate delete-on-remove template-ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df template-location-form=edfe4a5d-1bd6-485a-b252-81dd8772c21c show-templates}\n[Wartungspunkte][items]\n[items]: /aa947792-4f31-40c9-9a6a-e1ad71697911 (0-n)\n\n{signature}\n[Unterschrift][signature]\n[signature]: file\n","functions":"name(identifier, facility) {\n  const parts = [identifier, facility]\n  return parts.filter(Boolean).join(' ')\n}","relatedDocuments":[{"id":"922dd5c4-743d-4356-86ef-9b871f885b5a","v":"initial","text":"AppKeeptrack-Wartung"},{"id":"a8b2e068-0539-448c-9b9e-9f5a76e95fc4","v":"initial","text":"AppKeeptrack-Wartungspunkte"}],"defaults":"","newTemplate":{"id":"","v":"","text":""},"newAction":{"id":"","v":"","text":""},"allowedChildrenForms":[],"commands":[],"descendantCommands":[],"to":[],"from":[],"namedIcon":"far fa-puzzle-piece","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"","v":"","text":""},"description":""},"locks":[],"created":{"at":"2025-08-26T08:40:26+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"modified":{"at":"2026-05-28T08:48:36+00:00","by":"09763886-6748-4a56-8e0e-54a2293ee96b","backedBy":"","impersonatedBy":"","from":"","client":"server"},"t":1779958116009,"ct":1756197626662,"a_depth":3,"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[]},{"id":"aa947792-4f31-40c9-9a6a-e1ad71697911","v":"6e8a543dc3ebe82e","previous":{"v":"fa5fb6c0357c8a65"},"p":"05787127-986a-494f-a69e-8733c1176596","f":{"id":"form","v":"b0b69a951dde83ea","text":"Form"},"data":{"name":"Wartungspunkt","tags":"","allowUndefinedFields":false,"definition":"[name]: text = functions.name(identifier, title)\n\n[Name][title] [Nummer/ID][identifier]\n\n[Aggregat][aggregate]\n[aggregate]: /31e6efab-61df-4b91-8250-3bfcfd491c6c\n\n{multiline auto-grow}\n[Beschreibung][description]\n\n[Technische Zeichnung][drawing]\n[drawing]: file\n\n[Technische Zeichnung (Detail)][drawingDetail]\n[drawingDetail]: file \n\n{readonly}\n[Status][status]\n[status]: Select\n  - NOT_STARTED: Nicht begonnen\n  - STARTED: Begonnen\n  - COMPLETED: Abgeschlossen\n\n{readonly}\n[Ergebnis][result]\n[result]: Select\n  - NOT_STARTED: Nicht begonnen\n  - STARTED: Begonnen\n  - COMPLETED_OK: Abgeschlossen - Alles in Ordnung\n  - COMPLETED_OK_CORRECTIONS: Abgeschlossen - Alles in Ordnung (mit Korrekturen)\n  - COMPLETED_NOT_OK: Abgeschlossen - Teilweise nicht in Ordnung\n  - CANCELED: Abgebrochen\n\n{readonly}[Begonnen][started] {readonly}[Beendet][ended]\n[started]: datetime\n[ended]: datetime\n\n{children delete-on-remove}\n[Arbeiten][workItems]\n[workItems]: /8c113cd0-af90-42fa-aa05-f67809d0a9a5 (0-n)\n\n{multiline auto-grow}\n[Benötigte Hilfs- und Messmittel][toolsAndEquipment]\n\n{signature}\n[Unterschrift][signature]\n[signature]: file\n","functions":"name(identifier, title) {\n  const parts = [identifier, title]\n  return parts.filter(Boolean).join(' ')\n}","relatedDocuments":[{"id":"4e313a54-20a1-44d6-9cf1-35528a7841f8","v":"initial","text":"AppKeeptrack-Wartung"},{"id":"86d1ee3c-8b68-4bba-b0ac-ca6af7e37455","v":"initial","text":"AppKeeptrack-Arbeiten"}],"defaults":"","newTemplate":{"id":"","v":"","text":""},"newAction":{"id":"","v":"","text":""},"allowedChildrenForms":[],"commands":[],"descendantCommands":[],"to":[],"from":[],"namedIcon":"far fa-circle-check","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"","v":"","text":""},"description":""},"locks":[],"created":{"at":"2025-08-01T12:36:28+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"modified":{"at":"2026-05-28T08:45:54+00:00","by":"09763886-6748-4a56-8e0e-54a2293ee96b","backedBy":"","impersonatedBy":"","from":"","client":"server"},"t":1779957954543,"ct":1754051788494,"a_depth":3,"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[]},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596"],"a_depth":3,"a_forms":["folder","application-form","form-folder"],"created":{"at":"2025-10-14T14:31:41+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1760452301475,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[{"id":"46a28dfa-7518-4867-9519-a5f4cd9b9967","text":"Mängelmeldung","v":"251a686e14b36b32"}],"commands":[],"defaults":"","definition":"","descendantCommands":[],"description":"","from":[],"functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Reparaturen","namedIcon":"","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"relatedDocuments":[],"tags":"","theme":{"id":"","text":"","v":""},"to":[],"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"16a1fc2c7a734357"},"id":"760efba8-d733-4a34-ada6-b7d6d5c6d637","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2025-10-27T10:18:27+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"05787127-986a-494f-a69e-8733c1176596","previous":{"v":"e8428290770161a9"},"stamps":[],"t":1761560307483,"v":"49d1d176fa5802e2"},{"id":"347d38c6-0bce-47ce-b271-9f924c56ac49","v":"f33efdab57c79ec0","previous":{"v":"093378aa94be2e98"},"p":"05787127-986a-494f-a69e-8733c1176596","f":{"id":"form","v":"16a1fc2c7a734357","text":"Form"},"data":{"name":"Wartung","tags":"","allowUndefinedFields":false,"definition":"{readonly if draft|switch}[Abgeschlossen][done] {show if draft|readonly}[Entwurf][draft] {show if !draft|readonly|select}[Status][status]\n[done]: switch\n[draft]: switch\n\n{show if status !== 'PLANNED'|readonly}[Begonnen][started] {show if status !== 'PLANNED'|readonly}[Beendet][ended]\n[started]: datetime\n[ended]: datetime\n[duration]: duration = functions.duration(DateTime, started, ended)\n\n[Name][name]\n\n[status]: Select\n  - PLANNED <icon=\"fa fa-calendar-day\" iconcolor=\"text-neutral-500\">: Geplant\n  - STARTED <icon=\"fa fa-circle-half-stroke\" iconcolor=\"text-primary-500\">: Begonnen\n  - CANCELED <icon=\"fa fa-circle-x\" iconcolor=\"text-primary-500\">: Abgebrochen\n  - COMPLETED <icon=\"fa fa-circle-check\" iconcolor=\"text-primary-500\">: Abgeschlossen\n  - ACKNOWLEDGED <icon=\"fa fa-badge-check\" iconcolor=\"text-green-500\">: Zur Kenntnis genommen\n  \n{multiline auto-grow}\n[Beschreibung][description]\n\n{ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path creation-location-form=b270e94c-c223-4972-9db8-70b6750e740e on-creation-write-search-to-field=name}\n[Labels][labels]\n[labels]: /3f88574e-aaec-484a-8dc4-bbdcb085186d (0-n)\n\n{hidden if draft|ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Anlage der Wartung][facility]\n[facility]: /33e3b54d-6b4b-4aa3-8f70-2b834b27bf66 <required=!draft>\n\n{children navigate delete-on-remove show-templates template-ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df template-location-form=d4d60ebf-b329-44dd-a97f-d1a905bddfc5 template-transformer-action=a628e83e-bef3-467e-9c02-3db6e05030a7}\n[Wartungsteile][parts]\n[parts]: /f5850e39-8581-4b62-8cfe-f4fa95009a1a (0-n)\n\n{hidden if draft|readonly|signature}\n[Unterschrift Team][teamSignature]\n[teamSignature]: file\n","functions":"duration(DateTime, started, ended) {\n  if (!started || !ended) {\n    return {}\n  }\n\n  const duration = DateTime.fromISO(ended).diff(DateTime.fromISO(started), ['hours', 'minutes', 'seconds'])\n\n  return duration.toObject()\n}","relatedDocuments":[{"id":"48f055e6-00aa-4430-9602-da0fc891a11f","v":"initial","text":"AppKeeptrack-Wartungsdurchführung"},{"id":"4792e47c-fd0a-428c-b3d6-b93fd72f7d71","v":"initial","text":"AppKeeptrack-Wartungsteile"}],"defaults":"","newTemplate":{"id":"","v":"","text":""},"newAction":{"id":"","v":"","text":""},"allowedChildrenForms":[],"commands":[],"descendantCommands":[],"to":[],"from":[],"namedIcon":"far fa-building-magnifying-glass","namedIconColor":"#a4b0c1","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"","v":"","text":""},"description":""},"locks":[],"created":{"at":"2025-08-04T08:36:50+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"modified":{"at":"2026-05-28T08:49:09+00:00","by":"09763886-6748-4a56-8e0e-54a2293ee96b","backedBy":"","impersonatedBy":"","from":"","client":"server"},"t":1779958149395,"ct":1759415368209,"a_depth":3,"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[]},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596"],"a_depth":3,"a_forms":["folder","application-form","form-folder"],"created":{"at":"2025-08-26T08:15:55+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1756196155550,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[],"commands":[{"id":"490e018b-4a43-4a69-bb16-9c9fb2b28916","text":"rd:Anlage erstellen (Wizard)","v":"d0f8ac4a4f2826a9"}],"defaults":"","definition":"","descendantCommands":[],"description":"","from":[],"functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Anlagen","namedIcon":"","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"relatedDocuments":[],"tags":"","theme":{"id":"","text":"","v":""},"to":[],"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"16a1fc2c7a734357"},"id":"1451a42c-e8f9-430e-8fd0-b2209f389e84","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2026-07-16T07:04:51+00:00","backedBy":"","by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":""},"p":"05787127-986a-494f-a69e-8733c1176596","previous":{"v":"182bb2e311c7d177"},"stamps":[],"t":1784185491251,"v":"cf31f349aa54fd73"},{"id":"554234d4-1a0a-4f31-b6a1-7899ca841995","v":"651f2d2972aafcf1","previous":{"v":"e471db406ac326a0"},"p":"4ec6a0e5-cf2d-4095-9b70-2e31a64d5679","f":{"id":"form","v":"d497194b29933d26","text":"Form"},"data":{"name":"DMS Ordner","tags":"","allowUndefinedFields":false,"definition":"[Name][name]","functions":"","defaults":"","newTemplate":{"id":"","v":"","text":""},"newAction":{"id":"","v":"","text":""},"allowedChildrenForms":[{"id":"dbee6e16-d63a-493c-bba6-505f79918f9f","v":"ffffb258b9fbf10a","text":"Datei"},{"id":"a04c8913-db48-4e80-b20d-0f3cc17a778c","v":"ef8c8e2f76ce2327","text":"Ordner"}],"commands":[{"id":"ef7eee56-f015-4437-b9dd-ace9295cf0b7","v":"initial","text":"rd:Neu"}],"namedIcon":"far fa-folders","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"","v":"","text":""},"description":""},"locks":[],"created":{"at":"2023-10-09T11:51:21+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2024-01-11T12:56:49+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1704977809867,"ct":1696852281625,"a_depth":3,"a":["apps","45ada186-e9fd-451d-9dbd-2defc0b4f86f","4ec6a0e5-cf2d-4095-9b70-2e31a64d5679"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1737716860256},{"id":"b48189af-7305-4ee5-ab8b-e15cbcd55aa7","v":"67ae6372c038246b","previous":{"v":"833fad81531f8a19"},"p":"4bfbe5fd-cf64-4b07-b91f-17bade3f41f9","f":{"id":"form","v":"d497194b29933d26","text":"Form"},"data":{"name":"Board mit Ordnern","tags":"","allowUndefinedFields":false,"definition":"[Name][name]\n\n[Default sort][defaultSort]","functions":"","defaults":"","newTemplate":{"id":"","v":"","text":""},"newAction":{"id":"","v":"","text":""},"allowedChildrenForms":[{"id":"e85fc64c-df8a-493a-a7ce-fefa6d85d608","v":"fccd178ed54ee878","text":"Ordner"}],"commands":[{"id":"e11989b9-21ee-4b75-8e28-1d662e247c10","v":"initial","text":"rd:Neu"}],"namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"","v":"","text":""},"description":""},"locks":[],"created":{"at":"2024-01-19T13:42:03+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-01-19T14:50:26+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1705675826216,"ct":1705671723782,"a_depth":3,"a":["apps","90a38bb1-5683-49d1-b519-203876cc6967","4bfbe5fd-cf64-4b07-b91f-17bade3f41f9"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1707486629337},{"a":["system","04632e3e-9132-4927-b91d-3c28d1afe3e9","e9f6cbce-0b0f-4ef3-a7cf-ae0b2ddbce03"],"a_depth":3,"a_forms":["system-folder-form","folder","form"],"created":{"at":"2025-11-18T07:47:14+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"ct":1763452034937,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[],"commands":[],"defaults":"","definition":"[name][name]\n\n[ref 0][ref0]\n[ref0]: /ref\n\n[ref 1][ref1]\n[ref1]: /ref\n\n[ref 2][ref2]\n[ref2]: /ref\n\n[ref 3][ref3]\n[ref3]: /ref","descendantCommands":[],"description":"","from":[],"functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Test Documents","namedIcon":"","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"relatedDocuments":[],"tags":"","theme":{"id":"","text":"","v":""},"to":[],"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"16a1fc2c7a734357"},"id":"229af740-4ce1-49f9-b37b-333381dea3ce","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2025-11-18T08:00:53+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"e9f6cbce-0b0f-4ef3-a7cf-ae0b2ddbce03","previous":{"v":"0fcf0d7f6bfccc5e"},"stamps":[],"t":1763452853178,"v":"7bc0a7c86b5510fe"},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e"],"a_depth":3,"a_forms":["folder","application-form","form-folder"],"created":{"at":"2023-03-23T15:16:09+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1681389760614,"data":{"allowedChildrenForms":[],"commands":[],"definition":"{hidden}\n[syncTo][syncTo]\n[syncTo]: /ref\n\n{hidden}\n[Name][name] \n[name]: text = employee.text || externalPersonName || ''\n\n[documentDataValid]: Switch\n\n{Select delete-fields-if-changed=name,externalPersonName,externalPersonEmail,externalPersonCompany,employee}\n[Typ][type]\n[type]: Select\n  - INTERNAL: Intern\n  - EXTERNAL: Extern\n\n\n{hidden if type !== 'INTERNAL'|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Mitarbeiter][employee]\n[employee]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 <required>\n\n\n{hidden if type !== 'EXTERNAL'}\n[Name (Extern)][externalPersonName]\n[externalPersonName]: text <required>\n\n{hidden if type !== 'EXTERNAL'|email}\n[Email (Extern)][externalPersonEmail]\n\n{hidden if type !== 'EXTERNAL'}\n[Firma (Extern)][externalPersonCompany]\n","description":"","functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Person","namedIcon":"far fa-walking","namedIconColor":"","tags":"","theme":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"3163b16b782f3ff6"},"id":"e733295b-414e-41e7-8430-3129c3856b83","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2025-03-11T15:29:39+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"cd0dc80e-74a7-44b2-ac65-972cbf47562e","previous":{"v":"6ba0a3a8ca58e838"},"stamps":[],"t":1741706979161,"v":"dcd3139e240c1ef6"},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e"],"a_depth":3,"a_forms":["folder","application-form","form-folder"],"created":{"at":"2026-06-16T11:22:48+00:00","backedBy":"","by":"b7485498-f1f3-4ab1-87d1-9cb63ea890c8","client":"server","from":"","impersonatedBy":""},"ct":1781608968107,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[],"commands":[],"defaults":"","definition":"{ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Antrag][application]\n[application]: /0bb3d600-faf0-4a5c-b49f-7994d234ae76 <required>","descendantCommands":[],"description":"","from":[],"functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Import Data from Antrag","namedIcon":"","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"relatedDocuments":[],"tags":"","theme":{"id":"","text":"","v":""},"to":[],"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"c2759612aee0e8c4"},"id":"70c9c420-0ed1-428c-934c-f65c63ce0afb","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2026-06-16T11:45:10+00:00","backedBy":"","by":"b7485498-f1f3-4ab1-87d1-9cb63ea890c8","client":"server","from":"","impersonatedBy":""},"p":"cd0dc80e-74a7-44b2-ac65-972cbf47562e","previous":{"v":"55c4da496bc05bf0"},"stamps":[],"t":1781610310828,"v":"b1a8ec502d8995fd"},{"a":["apps","0c440c7a-219d-4465-9cbe-2d0eff6ec7ad","e25401a7-eca4-4c53-a20e-b30df594d3a7"],"a_depth":3,"a_forms":["folder","application-form","form-folder"],"created":{"at":"2025-06-20T12:33:06+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"ct":1750422786287,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[],"commands":[],"defaults":"","definition":"[Projection of Tracked Time][trackedTime]\n[trackedTime]: /f9279010-1935-4139-abbb-82d928aa09dc\n\n\n<!-- Projection of the tracked time -->\n\n[Name][name]\n\n[Beschreibung][beschreibung]\n\n[Datum][datum]\n[datum]: date\n\n[Dauer][dauer]\n[dauer]: duration \n\n[Abrechenbar][abrechenbar]\n[abrechenbar]: switch\n\n[Abgerechnet][abgerechnet]\n[abgerechnet]: switch\n\n[Abgerechnet mit Position][abrechnungsPosition]\n[abrechnungsPosition]: /a40633b4-c769-4457-a267-830738d4b549 \n\n\n<!-- Projection of other documents. Collect information which is needed to filter and display. -->\n\n<!-- Project -->\n[Projektform][projectForm]\n[projectForm]: select\n- 0b6a2b21-9425-466e-9e8d-57ec39cc95e1: Core\n- a72faa48-2a29-4045-9de4-09ee1d14bd73: Energie\n\n[Projekt][project]\n[project]: /ref\n\n[Projektname][projectName]\n\n<!-- Service -->\n[Leistung][service]\n[service]: /ref\n\n[Leistungsname][serviceName]\n\n<!-- Task -->\n[Aufgabe Core][taskCore]\n[taskCore]: /0deb4864-cbb6-420c-99ee-337c7444ab24\n\n[Aufgabe Service][taskService]\n[taskService]: /88b1f60e-71f6-46f5-94ea-3d7bbe972950\n\n[Aufgabenname][taskName]\n\n<!-- Creator Groups -->\n[Gruppenmitgliedschaften][groups]\n[groups]: /group (0-n)\n\n<!-- Creator -->\n[Ersteller][account]\n[account]: /account\n\n<!-- Mitarbeiter form -->\n[Mitarbeiter][profile]\n[profile]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10\n\n[Profilname][profileName]\n\n<!-- \nStructures:\n1. Project Task TrackedTime\n2. EnergyProject Task TrackedTime\n3. EnergyProject Service EnergyTask TrackedTime\n -->","descendantCommands":[],"description":"","from":[],"functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Projection with Projectdata","namedIcon":"","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"relatedDocuments":[],"tags":"","theme":{"id":"","text":"","v":""},"to":[],"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"b0b69a951dde83ea"},"id":"0f673271-cd1a-448f-871b-ecb273136aeb","inheritedLocks":[null,null,null,null],"locks":[],"meta":{"modified":{"at":"2025-06-30T08:39:33+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null}},"modified":{"at":"2025-06-25T10:36:24+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"e25401a7-eca4-4c53-a20e-b30df594d3a7","previous":{"a":["apps","0c440c7a-219d-4465-9cbe-2d0eff6ec7ad","e25401a7-eca4-4c53-a20e-b30df594d3a7","f9279010-1935-4139-abbb-82d928aa09dc"],"a_forms":["folder","application-form","form-folder","form"],"p":"f9279010-1935-4139-abbb-82d928aa09dc","v":"ead90d8aedd6bc09"},"stamps":[],"t":1751272773768,"v":"aaaccbc7d03bf7c5"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596"],"a_depth":3,"a_forms":["folder","application-form","form-folder"],"created":{"at":"2025-08-04T07:54:53+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1754294093983,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[{"id":"5011479f-3ef7-4c66-810b-3bb65f992712","text":"Wartungsplan","v":"7dfb9f148db402b8"}],"commands":[{"id":"ce3bb08e-8940-482d-a12f-5646119e9781","text":"rd:New","v":"initial"}],"defaults":"","definition":"","descendantCommands":[],"description":"","from":[],"functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Wartungsplanungen","namedIcon":"","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"relatedDocuments":[],"tags":"","theme":{"id":"","text":"","v":""},"to":[],"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"b0b69a951dde83ea"},"id":"227504b7-05fe-4ad1-a5fc-027639abff29","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2026-02-05T13:18:44+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"p":"05787127-986a-494f-a69e-8733c1176596","previous":{"v":"88b8f7eeddf027a6"},"stamps":[],"t":1770297524072,"v":"bece075736ae6318"},{"id":"71a3f943-571a-4e4f-a97c-dd809d6b10e4","v":"ab6e33015ffd45db","previous":{"v":"71116c9f71fecc00"},"p":"cd0dc80e-74a7-44b2-ac65-972cbf47562e","f":{"id":"form","v":"d497194b29933d26","text":"Form"},"data":{"name":"Bestandsliste","tags":"","allowUndefinedFields":false,"definition":"","functions":"","defaults":"","newTemplate":{"id":"","v":"","text":""},"newAction":{"id":"","v":"","text":""},"allowedChildrenForms":[],"commands":[{"id":"ccb9cf29-f64a-4dcf-a480-922f5d19c616","v":"initial","text":"rd:Neu"}],"namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"","v":"","text":""},"description":""},"locks":[],"created":{"at":"2022-11-14T13:07:37+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-06-15T13:36:21+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1686836181227,"ct":1686836135519,"a_depth":3,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1736781268453},{"a":["apps","0af4f8a7-729e-4318-8f82-7e976555004e","0ae4ef2a-62fc-4042-b07e-e93a134fe055"],"a_depth":3,"a_forms":["folder","application-form","folder"],"created":{"at":"2025-08-18T14:19:08+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1755526748709,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[],"commands":[],"defaults":"","definition":"","descendantCommands":[],"description":"","from":[],"functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"EpicPages","namedIcon":"","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"relatedDocuments":[],"tags":"","theme":{"id":"","text":"","v":""},"to":[],"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"16a1fc2c7a734357"},"id":"14e2b48e-d2fb-4162-a89e-773a952a85d7","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2025-08-18T14:19:08+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"0ae4ef2a-62fc-4042-b07e-e93a134fe055","stamps":[],"t":1755526748710,"v":"initial"},{"a":["apps","9d6ee173-26fe-4472-a271-7667f717094e","6743ef9a-c21b-443f-91b8-4dd86886ee8c"],"a_depth":3,"a_forms":["folder","application-form","form-folder"],"created":{"at":"2025-02-14T15:08:38+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1739545718568,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[],"commands":[],"defaults":"","definition":"","descendantCommands":[],"description":"","from":[],"functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Fakturierung","namedIcon":"","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"relatedDocuments":[],"tags":"","theme":{"id":"","text":"","v":""},"to":[],"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"230b4040236561b6"},"id":"c6337671-7c10-4017-922c-4945b266c615","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2025-02-14T15:08:38+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"6743ef9a-c21b-443f-91b8-4dd86886ee8c","stamps":[],"t":1739545718568,"v":"initial"},{"a":["apps","94a64d89-d204-4918-b147-d717914fb03e","f254ce25-42f1-4333-8ee7-23554bf746c1"],"a_depth":3,"a_forms":["folder","application-form","form-folder"],"created":{"at":"2026-03-05T09:52:50+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"ct":1772704370718,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[],"commands":[],"defaults":"","definition":"{readonly}\n[Kosten][cost]\n[cost]: currency","descendantCommands":[],"description":"","from":[],"functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Kosten (berechnet)","namedIcon":"","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"relatedDocuments":[],"tags":"","theme":{"id":"","text":"","v":""},"to":[],"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"410df4c62fb388dd"},"id":"d35380ea-bba4-48af-b6c9-98f5ecbf18bc","inheritedLocks":[null,null,null,null],"locks":[],"meta":{},"modified":{"at":"2026-03-30T11:12:01+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"p":"f254ce25-42f1-4333-8ee7-23554bf746c1","previous":{"v":"4f1afcb5c31cf1e9"},"stamps":[],"t":1774869121090,"v":"3d23512ba995046a"},{"a":["apps","94a64d89-d204-4918-b147-d717914fb03e","f254ce25-42f1-4333-8ee7-23554bf746c1"],"a_depth":3,"a_forms":["folder","application-form","form-folder"],"created":{"at":"2026-03-05T09:52:02+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"ct":1772704322164,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[],"commands":[],"defaults":"","definition":"[Kosten][cost]\n[cost]: currency","descendantCommands":[],"description":"","from":[],"functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Kosten (manuell)","namedIcon":"","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"relatedDocuments":[],"tags":"","theme":{"id":"","text":"","v":""},"to":[],"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"410df4c62fb388dd"},"id":"5997797d-4d12-47d4-a311-f9115344cd04","inheritedLocks":[null,null,null,null],"locks":[],"meta":{},"modified":{"at":"2026-03-30T11:11:47+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"p":"f254ce25-42f1-4333-8ee7-23554bf746c1","previous":{"v":"af6f1146cf13e3e1"},"stamps":[],"t":1774869107431,"v":"40f5f550dfc62f56"},{"a":["apps","0924db0f-7095-4b51-8966-bad1e45d68ec","a3b935e7-60bc-4996-9b18-668e4361067f"],"a_depth":3,"a_forms":["folder","application-form","form-folder"],"created":{"at":"2024-11-22T14:56:09+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1732287369304,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[],"commands":[],"defaults":"","definition":"[Kosten][cost]\n[cost]: currency","descendantCommands":[],"description":"","from":[],"functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Kostenschätzung","namedIcon":"","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"relatedDocuments":[],"tags":"","theme":{"id":"","text":"","v":""},"to":[],"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"230b4040236561b6"},"id":"bcb673e1-40de-4c35-941a-fc13a1e99c49","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2024-11-22T14:56:28+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"a3b935e7-60bc-4996-9b18-668e4361067f","previous":{"v":"initial"},"stamps":[],"t":1732287388917,"v":"6e6b5ade67e17092","dts":1732288753957},{"id":"fbba64b7-a744-43b4-9359-0ab956d06f6c","v":"initial","p":"169e87e0-0379-48e1-8c94-8fadac5969bb","f":{"id":"form","v":"3163b16b782f3ff6","text":"Form"},"data":{"name":"Personalverwaltung","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"","functions":"","allowedChildrenForms":[],"commands":[],"description":"","theme":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2023-04-20T13:18:55+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2023-04-20T13:18:55+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1681996735909,"ct":1681996735909,"a_depth":3,"a":["apps","a590ce5b-28fc-4f85-9049-d006e1b8f880","169e87e0-0379-48e1-8c94-8fadac5969bb"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1704876333577},{"id":"a37b2d75-d9d3-495a-a31c-52094d82e7bb","v":"aa7b6a7d3efd3d2c","previous":{"v":"baed04d15bd87b95"},"p":"4e988078-8eed-4c34-9cc2-9b6c3e2cdb2a","f":{"id":"form","v":"a57e5af653d72344","text":"Form"},"data":{"name":"Word Vorlage (.docx)","tags":"","namedIcon":"far fa-file-word","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Name][name]\n\n{hidden}\n[Identifier][identifier]\n\n{hidden}\n[Increase to rerender][rerenderCounter]\n[rerenderCounter]: number \"Every change to this document's fields will re-render the generated file. This field is meant if they somehow, someone or something wants to re-render the file e.g. in case of new data available\"\n\n{file file-name-to-field=name types=\".doc,.docx,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document\"} \n[Word Vorlage (.docx)][template]\n[template]: file\n\n{hidden}\n[Primary Data Document][document]\n[document]: /ref\n\n{hidden}\n[Other Data documents][dataDocuments]\n[dataDocuments]: /ref (0-n)\n\n{readonly}\n[Generierte Datei][generated]\n[generated]: file","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2019-08-30T12:28:11+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2024-04-26T13:21:14+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1714137674492,"ct":1567168091585,"a_depth":3,"a":["apps","fb62ad28-07b0-4a99-91bd-43c297656f12","4e988078-8eed-4c34-9cc2-9b6c3e2cdb2a"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1715608110177},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596"],"a_depth":3,"a_forms":["folder","application-form","form-folder"],"created":{"at":"2025-08-06T16:50:58+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1754499112177,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[],"commands":[],"defaults":"","definition":"","descendantCommands":[],"description":"","from":[],"functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Anmeldung (Wartung)","namedIcon":"","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"relatedDocuments":[],"tags":"","theme":{"id":"","text":"","v":""},"to":[],"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"b0b69a951dde83ea"},"id":"941d2b8f-5694-4054-8c99-c51ad62f6c2f","inheritedLocks":[null,null,null,null],"locks":[],"meta":{},"modified":{"at":"2026-01-27T09:33:38+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"p":"05787127-986a-494f-a69e-8733c1176596","previous":{"v":"fd18e20140aebadc"},"stamps":[],"t":1769506418868,"v":"286c2e6046ffd43c"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596"],"a_depth":3,"a_forms":["folder","application-form","form-folder"],"cloneOf":{"id":"941d2b8f-5694-4054-8c99-c51ad62f6c2f","text":"Anmeldung (Wartung)","v":"286c2e6046ffd43c"},"created":{"at":"2026-01-27T09:33:45+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"ct":1769506425834,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[],"commands":[],"defaults":"","definition":"","descendantCommands":[],"description":"","from":[],"functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Anmeldung (Anlagen Aufname)","namedIcon":"","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"relatedDocuments":[],"tags":"","theme":{"id":"","text":"","v":""},"to":[],"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"b0b69a951dde83ea"},"id":"c6931d87-a1f3-4b34-bc1b-3f0bfe7398f8","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2026-01-27T09:37:07+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"941d2b8f-5694-4054-8c99-c51ad62f6c2f","text":"Anmeldung (Wartung)","v":"286c2e6046ffd43c"},"p":"05787127-986a-494f-a69e-8733c1176596","previous":{"v":"initial"},"stamps":[],"t":1769506627226,"v":"b580f88b22416b39"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596"],"a_depth":3,"a_forms":["folder","application-form","form-folder"],"created":{"at":"2026-07-14T09:36:35+00:00","backedBy":"","by":"09763886-6748-4a56-8e0e-54a2293ee96b","client":"server","from":"","impersonatedBy":""},"ct":1784021795979,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[],"commands":[],"defaults":"","definition":"","descendantCommands":[],"description":"","from":[],"functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Anlage erstellen","namedIcon":"","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"relatedDocuments":[],"tags":"","theme":{"id":"","text":"","v":""},"to":[],"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"c2759612aee0e8c4"},"id":"cb8d198f-5aa3-4926-8419-0c667241b2bd","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2026-07-14T09:36:35+00:00","backedBy":"","by":"09763886-6748-4a56-8e0e-54a2293ee96b","client":"server","from":"","impersonatedBy":""},"p":"05787127-986a-494f-a69e-8733c1176596","stamps":[],"t":1784021795982,"v":"initial"},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e"],"a_depth":3,"a_forms":["folder","application-form","form-folder"],"created":{"at":"2025-05-23T08:36:25+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1747989385122,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[],"commands":[],"defaults":"","definition":"{hidden}\n[syncTo][syncTo]\n[syncTo]: /ref\n\n[documentDataValid]: Switch\n[allDocumentDataValid]: Switch\n\n{readonly|select}\n[Typ][type]\n[type]: select <required>\n  - RESOLUTION: Beschluss\n  - RECOMMENDATION: Beschluss als Empfehlung\n  - POSTPONEMENT: Vertagung\n  - CLARIFICATION: Klärungsauftrag\n\n{show if type === 'RESOLUTION'}\n####### Beschluss\n\n{show if type === 'RESOLUTION'|multiline auto-grow}\n[Veröffentlichungskommentar ITA][itaPublicationComment]\n\n{show if type === 'RESOLUTION'|multiline auto-grow}\n[Beschlusstext][decisionText]\n\n{show if type === 'RESOLUTION'|switch delete-fields-if-false=resubmissionDate}\n[Wiedervorlage][resubmission]\n\n{show if (type === 'RESOLUTION' && resubmission)}\n[Wiedervorlage Datum][resubmissionDate]\n\n{show if type === 'RESOLUTION'|switch appearance=\"toggle-text\"}\n[Textbaustein LuVK][textModuleLuVK]\n\n{show if type === 'RESOLUTION'|date}\n[Beschlussdatum][decisionDate]\n\n{show if type === 'RESOLUTION'|date}\n[Sitzungsdatum][sessionDate]\n\n{show if type === 'RESOLUTION'|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Sitzungsleiter][sessionLeader]\n\n{show if type === 'RESOLUTION'|signature}\n[Unterschrift Sitzungsleiter][sessionLeaderSignature]\n\n{show if type === 'RECOMMENDATION'}\n####### Beschluss als Empfehlung\n\n{show if type === 'RECOMMENDATION'|ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Standort-/GBR Empfehlung][locationGbrRecommendation]\n\n{show if type === 'RECOMMENDATION'|multiline auto-grow}\n[Veröffentlichungskommentar ITA][itaPublicationComment]\n\n{show if type === 'RECOMMENDATION'|multiline auto-grow}\n[Empfehlungstext][recommendationText]\n\n{show if type === 'RECOMMENDATION'|switch delete-fields-if-false=resubmissionDate}\n[Wiedervorlage][resubmission]\n\n{show if (type === 'RECOMMENDATION' && resubmission)}\n[Wiedervorlage Datum][resubmissionDate]\n\n{show if type === 'RECOMMENDATION'|switch appearance=\"toggle-text\"}\n[Textbaustein LuVK][textModuleLuVK]\n\n{show if type === 'RECOMMENDATION'|date}\n[Beschlussdatum][decisionDate]\n\n{show if type === 'RECOMMENDATION'|date}\n[Sitzungsdatum][sessionDate]\n\n{show if type === 'RECOMMENDATION'|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Sitzungsleiter][sessionLeader]\n\n{show if type === 'RECOMMENDATION'|signature}\n[Unterschrift Sitzungsleiter][sessionLeaderSignature]\n\n{show if type === 'POSTPONEMENT'}\n####### Vertagung\n\n{show if type === 'POSTPONEMENT'|date}\n[Sitzungsdatum][sessionDate]\n\n{show if type === 'POSTPONEMENT'|multiline auto-grow}\n[Vertagungsgrund][postponementReason]\n\n\n{show if type === 'CLARIFICATION'}\n####### Klärungsauftrag\n\n{show if type === 'CLARIFICATION'|date}\n[Sitzungsdatum][sessionDate]\n\n{show if type === 'CLARIFICATION'|multiline auto-grow}\n[Klärungsauftrag][clarificationOrder]\n\n\n// field definitions\n[recommendationText]: text <required>\n[itaPublicationComment]: text <required>\n[decisionText]: text <required>\n[resubmission]: switch\n[resubmissionDate]: date <required>\n[textModuleLuVK]: switch\n[decisionDate]: date <required>\n[sessionDate]: date <required>\n[sessionLeader]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 <required>\n[sessionLeaderSignature]: file <required>\n[clarificationOrder]: text <required>\n[postponementReason]: text <required>\n[locationGbrRecommendation]: /af8aa2f7-1c0b-404d-b6c8-06e5be0ffd38 <required>\n","descendantCommands":[],"description":"","from":[],"functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Beschluss / Empfehlung / Klärungsauftrag","namedIcon":"","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"relatedDocuments":[],"tags":"","theme":{"id":"","text":"","v":""},"to":[],"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"b0b69a951dde83ea"},"id":"5beeae17-7bb1-4eeb-bcb6-cf0e6950e27c","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2025-07-18T12:39:19+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"cd0dc80e-74a7-44b2-ac65-972cbf47562e","previous":{"v":"7490d9a0eeadf5cc"},"stamps":[],"t":1752842359124,"v":"31e1fa02a329b185"},{"id":"304e2bea-3a32-4f78-a58c-2f541d907356","v":"b636479d54d91870","previous":{"v":"initial"},"p":"6743ef9a-c21b-443f-91b8-4dd86886ee8c","f":{"id":"form","v":"d497194b29933d26","text":"Form"},"data":{"name":"Branchen","tags":"","allowUndefinedFields":false,"definition":"","functions":"","defaults":"","newTemplate":{"id":"","v":"","text":""},"newAction":{"id":"","v":"","text":""},"allowedChildrenForms":[],"commands":[{"id":"978d7b0e-146f-4a5c-bd7d-533ce9129d4f","v":"initial","text":"rd:new"}],"namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"","v":"","text":""},"description":""},"locks":[],"created":{"at":"2023-08-11T14:40:47+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-08-14T11:18:28+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1692011908131,"ct":1691764847213,"a_depth":3,"a":["apps","9d6ee173-26fe-4472-a271-7667f717094e","6743ef9a-c21b-443f-91b8-4dd86886ee8c"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1702376390966},{"id":"edfe4a5d-1bd6-485a-b252-81dd8772c21c","v":"d77362f120fe2a68","previous":{"v":"bbda51cc89aceb46"},"p":"05787127-986a-494f-a69e-8733c1176596","f":{"id":"form","v":"b0b69a951dde83ea","text":"Form"},"data":{"name":"Wartungspunkte (Vorlagen)","tags":"","allowUndefinedFields":false,"definition":"","functions":"","relatedDocuments":[],"defaults":"","newTemplate":{"id":"","v":"","text":""},"newAction":{"id":"","v":"","text":""},"allowedChildrenForms":[],"commands":[{"id":"37fe1b81-149b-4942-9a94-fdcef78bbea2","v":"initial","text":"rd:New"}],"descendantCommands":[],"to":[],"from":[],"namedIcon":"far fa-circle-check","namedIconColor":"#f59e0b","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"","v":"","text":""},"description":""},"locks":[],"created":{"at":"2025-08-04T11:09:23+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"modified":{"at":"2026-05-19T08:47:02+00:00","by":"09763886-6748-4a56-8e0e-54a2293ee96b","backedBy":"","impersonatedBy":"","from":"","client":"server"},"t":1779180422196,"ct":1754305763498,"a_depth":3,"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[]},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596"],"a_depth":3,"a_forms":["folder","application-form","form-folder"],"cloneOf":{"id":"3f88574e-aaec-484a-8dc4-bbdcb085186d","text":"Label (Anlagentyp)","v":"d79d3ceb3df3b7e5"},"created":{"at":"2026-04-27T13:29:39+00:00","backedBy":"","by":"09763886-6748-4a56-8e0e-54a2293ee96b","client":"server","from":"","impersonatedBy":""},"ct":1777296579382,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[],"commands":[],"defaults":"","definition":"[Name][name]\n\n{color}\n[Farbe][color]","descendantCommands":[],"description":"","from":[],"functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Ergebniskategorie","namedIcon":"fa fa-tag","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"relatedDocuments":[],"tags":"","theme":{"id":"","text":"","v":""},"to":[],"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"410df4c62fb388dd"},"id":"11eadb22-66ab-4417-8b51-298895b44d0d","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2026-04-28T07:38:24+00:00","backedBy":"","by":"09763886-6748-4a56-8e0e-54a2293ee96b","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"3f88574e-aaec-484a-8dc4-bbdcb085186d","text":"Label (Anlagentyp)","v":"d79d3ceb3df3b7e5"},"p":"05787127-986a-494f-a69e-8733c1176596","previous":{"v":"c3aeda2ba685e1e4"},"stamps":[],"t":1777361904966,"v":"e3379d2ac8b642de"},{"id":"192961fd-cab8-4fab-bfd8-6722dce765c8","v":"initial","p":"8ffb21f4-3d63-4824-a633-10a19d7aa7d8","f":{"id":"form","v":"cac2c00e9d3adbaa","text":"Form"},"data":{"name":"Stammdaten","tags":"","allowUndefinedFields":false,"definition":"","functions":"","defaults":"","newTemplate":{"id":"","v":"","text":""},"newAction":{"id":"","v":"","text":""},"allowedChildrenForms":[],"commands":[],"namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"","v":"","text":""},"description":""},"locks":[],"created":{"at":"2024-05-07T12:32:44+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-05-07T12:32:44+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1715085164413,"ct":1715085164313,"a_depth":3,"a":["apps","bc036ad0-6dbc-415b-b506-325fb0a44046","8ffb21f4-3d63-4824-a633-10a19d7aa7d8"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1715085374235},{"id":"f8d9d7d9-bfb4-4555-8163-ae962ed41a38","v":"0af7f387b30158b5","previous":{"v":"02092b558c2dfdee"},"p":"6743ef9a-c21b-443f-91b8-4dd86886ee8c","f":{"id":"form","v":"d497194b29933d26","text":"Form"},"data":{"name":"Quellen","tags":"","allowUndefinedFields":false,"definition":"","functions":"","defaults":"","newTemplate":{"id":"","v":"","text":""},"newAction":{"id":"","v":"","text":""},"allowedChildrenForms":[],"commands":[{"id":"ff17a853-2a79-44b2-8984-9cc86bfd2ee2","v":"initial","text":"rd:Neu"}],"namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"","v":"","text":""},"description":""},"locks":[],"created":{"at":"2023-08-11T14:41:12+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-08-14T12:08:16+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1692014896143,"ct":1691764872752,"a_depth":3,"a":["apps","9d6ee173-26fe-4472-a271-7667f717094e","6743ef9a-c21b-443f-91b8-4dd86886ee8c"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1702376409748},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e"],"a_depth":3,"a_forms":["folder","application-form","form-folder"],"created":{"at":"2024-11-03T13:42:46+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1730641366869,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[{"id":"b8c15921-2825-48d6-951c-e7fce7133ab5","text":"Geltungsbereiche","v":"fc49944eff3b451c"},{"id":"b40fd5c3-1bc2-42b4-a269-f3cb2e9cf477","text":"Hersteller Liste","v":"af699cc4ef48e132"},{"id":"1795bc4e-b1b8-41c4-b235-136c3ff0e0af","text":"Standorte","v":"6e5c54f8ce00ba4e"},{"id":"3df460b1-3b00-45c3-81f3-8dff891bcb45","text":"Präsentations-Vorlagen","v":"21dac4e0c66ad1b7"}],"commands":[],"defaults":"","definition":"","descendantCommands":[],"description":"","from":[],"functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Stammdaten","namedIcon":"","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"relatedDocuments":[],"tags":"","theme":{"id":"","text":"","v":""},"to":[],"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"230b4040236561b6"},"id":"fe4781b7-320b-4c17-99fc-8ba00a27f42b","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2025-04-10T14:12:31+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"cd0dc80e-74a7-44b2-ac65-972cbf47562e","previous":{"v":"05dac830c12c748c"},"stamps":[],"t":1744294351797,"v":"8e7a2180faef7b89"},{"id":"e85fc64c-df8a-493a-a7ce-fefa6d85d608","v":"56d0229e41afa9a6","previous":{"v":"a39cf4014b10886c"},"p":"4bfbe5fd-cf64-4b07-b91f-17bade3f41f9","f":{"id":"form","v":"d497194b29933d26","text":"Form"},"data":{"name":"Ordner","tags":"","allowUndefinedFields":false,"definition":"[Name][name] {switch appearance=toggle-text}[Projekte in Board ausblenden][archiv]\n\n[archiv]: switch\n\n{icon collection=folder}\n[Icon][namedIcon]\n\n{color}\n[Icon Farbe][namedIconColor]","functions":"","defaults":"","newTemplate":{"id":"","v":"","text":""},"newAction":{"id":"","v":"","text":""},"allowedChildrenForms":[],"commands":[{"id":"3b700f08-ffa8-446b-a2da-03dcbdbeb71d","v":"initial","text":"rd:Neu"}],"namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"","v":"","text":""},"description":""},"locks":[],"created":{"at":"2024-01-19T13:43:39+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-01-22T15:10:23+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1705936223141,"ct":1705671819422,"a_depth":3,"a":["apps","90a38bb1-5683-49d1-b519-203876cc6967","4bfbe5fd-cf64-4b07-b91f-17bade3f41f9"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1708952010833},{"a":["apps","f416e371-07cc-4987-a6de-5934ef5ff3e4","1096c5df-2773-4914-9455-dc54e0f3e0e5"],"a_depth":3,"a_forms":["folder","application-form","form-folder"],"created":{"at":"2025-12-02T14:29:15+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1764685755281,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[],"commands":[],"defaults":"","definition":"","descendantCommands":[],"description":"","from":[],"functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Mir zugewiesene Lesebestätigungen","namedIcon":"","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"relatedDocuments":[],"tags":"","theme":{"id":"","text":"","v":""},"to":[],"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"16a1fc2c7a734357"},"id":"df2289af-8af8-4a2f-a45d-debbdd3d6760","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2025-12-02T14:29:15+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"1096c5df-2773-4914-9455-dc54e0f3e0e5","stamps":[],"t":1764685755282,"v":"initial"},{"a":["apps","0af4f8a7-729e-4318-8f82-7e976555004e","0ae4ef2a-62fc-4042-b07e-e93a134fe055"],"a_depth":3,"a_forms":["folder","application-form","folder"],"created":{"at":"2025-08-15T14:36:05+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1755268565733,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[],"commands":[],"defaults":"","definition":"[Name][name]\n\n{icon}[Icon][namedIcon] {color}[Icon (Color)][namedIconColor]","descendantCommands":[],"description":"","from":[],"functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"xBizpin Components","namedIcon":"","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"relatedDocuments":[],"tags":"","theme":{"id":"","text":"","v":""},"to":[],"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"b0b69a951dde83ea"},"id":"272f4c65-3d8b-4887-af77-f5fa817b87f1","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2025-08-21T13:26:34+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"0ae4ef2a-62fc-4042-b07e-e93a134fe055","previous":{"v":"78ada31bd5fa8a38"},"stamps":[],"t":1755782794513,"v":"9dba3aa5113bca16"},{"id":"6cfeb343-afc3-48ed-8f48-6f6262f1361b","v":"c537d6d2261efc7a","previous":{"v":"f0a4cc524158b898"},"p":"a3b935e7-60bc-4996-9b18-668e4361067f","f":{"id":"form","v":"d497194b29933d26","text":"Form"},"data":{"name":"Einstellungen (Fakturierung)","tags":"","allowUndefinedFields":false,"definition":"","functions":"","defaults":"","newTemplate":{"id":"","v":"","text":""},"newAction":{"id":"","v":"","text":""},"allowedChildrenForms":[{"id":"7d3b585c-8446-4e4c-937c-98afcac1be00","v":"f632be9bd6495316","text":"PDF-Einstellungen"},{"id":"3fe5922a-6eea-4918-a465-2c3b8b038338","v":"e691bdfdf3fc1ab8","text":"Vorlagen (Fakturierung)"}],"commands":[],"namedIcon":"far fa-cog","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"","v":"","text":""},"description":""},"locks":[],"created":{"at":"2024-04-05T08:33:11+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-04-05T09:30:46+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1712309446544,"ct":1712305991955,"a_depth":3,"a":["apps","0924db0f-7095-4b51-8966-bad1e45d68ec","a3b935e7-60bc-4996-9b18-668e4361067f"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1712320767888},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596"],"a_depth":3,"a_forms":["folder","application-form","form-folder"],"created":{"at":"2026-04-15T08:45:16+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"ct":1776242716252,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[],"commands":[],"defaults":"","definition":"","descendantCommands":[],"description":"","from":[],"functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Planung erstellen","namedIcon":"","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"relatedDocuments":[],"tags":"","theme":{"id":"","text":"","v":""},"to":[],"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"410df4c62fb388dd"},"id":"9b24d501-0752-4e13-95a8-065aa189bf1c","inheritedLocks":[null,null,null,null],"locks":[],"meta":{},"modified":{"at":"2026-04-15T10:04:35+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"p":"05787127-986a-494f-a69e-8733c1176596","previous":{"v":"20f803bae599f619"},"stamps":[],"t":1776247475138,"v":"c7521e58f7481e7e"},{"a":["system","ce1b84c6-f411-40f5-9783-2dd35230fd5d","af333f9b-2d8e-4a62-bd6a-5b842a953e0d"],"a_depth":3,"a_forms":["system-folder-form","folder","form-folder"],"created":{"at":"2025-10-07T13:31:23+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"ct":1759843883724,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[],"commands":[],"defaults":"","definition":"[Name][name]\n\n[Base Theme Output][baseTheme]\n[baseTheme]: /theme-form\n\n[Themes Definitions][themes]\n[themes]: /023342a2-e9e0-48b5-bdd7-9d5b6aefe4f8 (0-n)\n\n[Extended Colors][extendedColors]\n[extendedColors]: /1248d1a7-c011-4627-91b9-78b78aa50053 (0-n)","descendantCommands":[],"description":"","from":[],"functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Theme Universe","namedIcon":"","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"relatedDocuments":[],"tags":"","theme":{"id":"","text":"","v":""},"to":[],"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"16a1fc2c7a734357"},"id":"cc1aba40-59e7-4e67-8eb5-9bdd51771ec9","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2025-10-07T13:31:46+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"af333f9b-2d8e-4a62-bd6a-5b842a953e0d","previous":{"v":"initial"},"stamps":[],"t":1759843906557,"v":"0ff2a31ec293be14"},{"a":["apps","ddf56c14-1ba6-40cf-8b23-7e0ce10ac12d","cf902943-ef72-48e8-b64e-12204c5ca39b"],"a_depth":3,"a_forms":["folder","application-form","form-folder"],"created":{"at":"2026-02-03T12:18:03+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"ct":1770121083899,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[],"commands":[],"defaults":"","definition":"{readonly}[form][form]\n[form]: /form\n\n{readonly}[fieldName][fieldName]\n\n{readonly}[Empty field value][emptyFieldValue]\n[emptyFieldValue]: switch\n\n{readonly}[fieldValue][fieldValue]","descendantCommands":[],"description":"","from":[],"functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Separation Folder","namedIcon":"","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"relatedDocuments":[],"tags":"transparent","theme":{"id":"","text":"","v":""},"to":[],"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"410df4c62fb388dd"},"id":"4d6bea01-8edd-45a6-b07f-2c48c47bbc2d","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2026-07-29T07:19:18+00:00","backedBy":"","by":"09763886-6748-4a56-8e0e-54a2293ee96b","client":"server","from":"","impersonatedBy":""},"p":"cf902943-ef72-48e8-b64e-12204c5ca39b","previous":{"v":"0e3fd152ba53506c"},"stamps":[],"t":1785309558607,"v":"7f5a9cec2f7724b7"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596"],"a_depth":3,"a_forms":["folder","application-form","form-folder"],"created":{"at":"2025-08-05T10:00:04+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1754388004512,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[{"id":"5f4a87a7-5557-4004-bfdc-2fb26c71e0c9","text":"Objekt","v":"56967807f67818d1"}],"commands":[{"id":"28b132c2-54e5-4aa4-ad2c-263c261d8ab7","text":"rd:New","v":"initial"}],"defaults":"","definition":"","descendantCommands":[],"description":"","from":[],"functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Areale","namedIcon":"far fa-map-location","namedIconColor":"#84cc16","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"relatedDocuments":[],"tags":"structural","theme":{"id":"","text":"","v":""},"to":[],"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"b0b69a951dde83ea"},"id":"1a0affea-08fc-467f-8a09-0e170f5ea96e","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2026-07-29T07:19:50+00:00","backedBy":"","by":"09763886-6748-4a56-8e0e-54a2293ee96b","client":"server","from":"","impersonatedBy":""},"p":"05787127-986a-494f-a69e-8733c1176596","previous":{"v":"53f6370fe44d95e8"},"stamps":[],"t":1785309590445,"v":"f7d666d1884a1cfc"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596"],"a_depth":3,"a_forms":["folder","application-form","form-folder"],"cloneOf":{"id":"b270e94c-c223-4972-9db8-70b6750e740e","text":"Labels (Anlagentyp)","v":"1311f17741edc074"},"created":{"at":"2026-04-27T13:30:26+00:00","backedBy":"","by":"09763886-6748-4a56-8e0e-54a2293ee96b","client":"server","from":"","impersonatedBy":""},"ct":1768811652490,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[{"id":"11eadb22-66ab-4417-8b51-298895b44d0d","text":"Ergebniskategorie","v":"e3379d2ac8b642de"}],"commands":[{"id":"de299a11-f1ca-4ea1-a40e-aea35b0389d9","text":"rd:New","v":"initial"}],"defaults":"","definition":"","descendantCommands":[],"description":"","from":[],"functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Ergebniskategorien","namedIcon":"far fa-tags","namedIconColor":"#6366f1","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"relatedDocuments":[],"tags":"structural","theme":{"id":"","text":"","v":""},"to":[],"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"410df4c62fb388dd"},"id":"80892429-568c-4d92-9631-655fb5b14e3a","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2026-07-30T09:42:25+00:00","backedBy":"","by":"09763886-6748-4a56-8e0e-54a2293ee96b","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"b270e94c-c223-4972-9db8-70b6750e740e","text":"Labels (Anlagentyp)","v":"1311f17741edc074"},"p":"05787127-986a-494f-a69e-8733c1176596","previous":{"v":"895fd28ecb81f4e5"},"stamps":[],"t":1785404545630,"v":"02cc032c385c4ac8"},{"a":["apps","f416e371-07cc-4987-a6de-5934ef5ff3e4","1096c5df-2773-4914-9455-dc54e0f3e0e5"],"a_depth":3,"a_forms":["folder","application-form","form-folder"],"created":{"at":"2025-12-02T14:29:04+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1764685744344,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[],"commands":[],"defaults":"","definition":"","descendantCommands":[],"description":"","from":[],"functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Übersicht","namedIcon":"","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"relatedDocuments":[],"tags":"","theme":{"id":"","text":"","v":""},"to":[],"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"16a1fc2c7a734357"},"id":"e88bffe7-d89d-4c6c-bdc4-2238e2ee4fee","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2025-12-02T14:29:04+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"1096c5df-2773-4914-9455-dc54e0f3e0e5","stamps":[],"t":1764685744345,"v":"initial"},{"id":"b40fd5c3-1bc2-42b4-a269-f3cb2e9cf477","v":"af699cc4ef48e132","previous":{"v":"892f26d9a8e01e31"},"p":"cd0dc80e-74a7-44b2-ac65-972cbf47562e","f":{"id":"form","v":"3163b16b782f3ff6","text":"Form"},"data":{"name":"Hersteller Liste","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"","functions":"","allowedChildrenForms":[{"id":"e0978a3d-9761-4849-8a44-d22d8a175f87","v":"1f1e7575437196b8","text":"Hersteller"}],"commands":[{"id":"883788b4-b84f-49c7-9843-f53bbe50498d","v":"2f19ea9299fef7ba","text":"rd:Neu"}],"description":"","theme":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2023-03-23T15:51:37+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-11-24T13:43:13+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1700833393602,"ct":1681389760613,"a_depth":3,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1700833735966},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596"],"a_depth":3,"a_forms":["folder","application-form","form-folder"],"created":{"at":"2026-01-19T08:32:14+00:00","backedBy":"","by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":""},"ct":1768811534085,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[],"commands":[],"defaults":"","definition":"[Name][name]\n\n{color}\n[Farbe][color]","descendantCommands":[],"description":"","from":[],"functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Label (Anlagenart)","namedIcon":"fa fa-tag","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"relatedDocuments":[],"tags":"","theme":{"id":"","text":"","v":""},"to":[],"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"410df4c62fb388dd"},"id":"3f88574e-aaec-484a-8dc4-bbdcb085186d","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2026-04-27T13:40:12+00:00","backedBy":"","by":"09763886-6748-4a56-8e0e-54a2293ee96b","client":"server","from":"","impersonatedBy":""},"p":"05787127-986a-494f-a69e-8733c1176596","previous":{"v":"d79d3ceb3df3b7e5"},"stamps":[],"t":1777297212535,"v":"9e06929b4a6df692"},{"id":"1795bc4e-b1b8-41c4-b235-136c3ff0e0af","v":"6e5c54f8ce00ba4e","previous":{"v":"01894b0d1328effe"},"p":"cd0dc80e-74a7-44b2-ac65-972cbf47562e","f":{"id":"form","v":"3163b16b782f3ff6","text":"Form"},"data":{"name":"Standorte","tags":"","namedIcon":"far fa-map","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"","functions":"","allowedChildrenForms":[{"id":"af8aa2f7-1c0b-404d-b6c8-06e5be0ffd38","v":"4fd39e3d7bb6b9ce","text":"Standort"}],"commands":[{"id":"d2a129a4-cd27-4802-905a-683806dafc39","v":"initial","text":"rd:Neu"}],"description":"","theme":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2023-03-23T15:29:09+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-11-24T13:17:49+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1700831869576,"ct":1681389760614,"a_depth":3,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1700833684498},{"id":"6ca8b149-5489-413d-9252-d2644019d53c","v":"9839e108310c7316","previous":{"v":"36e694fc389a6a8e"},"p":"05787127-986a-494f-a69e-8733c1176596","f":{"id":"form","v":"b0b69a951dde83ea","text":"Form"},"data":{"name":"Technische Plätze (Liste)","tags":"","allowUndefinedFields":false,"definition":"","functions":"","relatedDocuments":[],"defaults":"","newTemplate":{"id":"","v":"","text":""},"newAction":{"id":"","v":"","text":""},"allowedChildrenForms":[],"commands":[{"id":"8bde9542-b250-4049-abf3-3611a6b439eb","v":"initial","text":"rd:New"}],"descendantCommands":[],"to":[],"from":[],"namedIcon":"far fa-door-open","namedIconColor":"#14b8a6","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"","v":"","text":""},"description":""},"locks":[],"created":{"at":"2025-08-05T09:59:55+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"modified":{"at":"2026-05-19T08:46:46+00:00","by":"09763886-6748-4a56-8e0e-54a2293ee96b","backedBy":"","impersonatedBy":"","from":"","client":"server"},"t":1779180406026,"ct":1754387995606,"a_depth":3,"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[]},{"id":"0d5701a6-537b-4690-b25c-69f8b01d14b1","v":"d987cc13802a8fe3","previous":{"v":"initial"},"p":"efe6c460-ec94-41c6-994b-c27d08d74381","f":{"id":"form","v":"d497194b29933d26","text":"Form"},"data":{"name":"Gefährdungsbeurteilungen","tags":"","allowUndefinedFields":false,"definition":"","functions":"","defaults":"","newTemplate":{"id":"","v":"","text":""},"newAction":{"id":"","v":"","text":""},"allowedChildrenForms":[],"commands":[{"id":"71c60368-ed8e-46d4-afd8-af0aab8af9d4","v":"initial","text":"Neu"}],"namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"","v":"","text":""},"description":""},"locks":[],"created":{"at":"2023-06-16T10:26:31+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-06-16T10:27:07+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1686911227291,"ct":1686911191924,"a_depth":3,"a":["apps","075a56a2-3d34-402e-82ef-bd1fc7df456a","efe6c460-ec94-41c6-994b-c27d08d74381"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1686912710542},{"a":["apps","59edbdbc-2cab-426a-bb42-6e57c5158e4f","3be7e887-1bcd-4c3c-979f-b20a986c4c48"],"a_depth":3,"a_forms":["folder","application-form","form-folder"],"created":{"at":"2025-09-11T08:02:14+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1757577734364,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[],"commands":[],"defaults":"","definition":"[Gewählte Nutzer][nutzer]\n[nutzer]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n)","descendantCommands":[],"description":"","from":[],"functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Planer","namedIcon":"","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"relatedDocuments":[],"tags":"","theme":{"id":"","text":"","v":""},"to":[],"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"16a1fc2c7a734357"},"id":"7f3b01d8-68c9-4774-8e48-5dcc33a2f235","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2025-09-12T14:14:42+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"3be7e887-1bcd-4c3c-979f-b20a986c4c48","previous":{"v":"initial"},"stamps":[],"t":1757686482895,"v":"d20dfa86ef8605ad"},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e"],"a_depth":3,"a_forms":["folder","application-form","form-folder"],"created":{"at":"2025-04-10T14:11:04+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1744294264542,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[{"id":"dbee6e16-d63a-493c-bba6-505f79918f9f","text":"Datei","v":"89c8c608b116bbd6"}],"commands":[{"id":"87acd62b-52a6-4133-a8d7-20e991e0fb94","text":"[copy of]: rd:Neu","v":"f99855e31e1077d6"}],"defaults":"","definition":"","descendantCommands":[],"description":"","from":[],"functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Präsentations-Vorlagen","namedIcon":"far fa-file-powerpoint","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"relatedDocuments":[],"tags":"","theme":{"id":"","text":"","v":""},"to":[],"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"b0b69a951dde83ea"},"id":"3df460b1-3b00-45c3-81f3-8dff891bcb45","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2025-04-10T14:14:02+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"cd0dc80e-74a7-44b2-ac65-972cbf47562e","previous":{"v":"21dac4e0c66ad1b7"},"stamps":[],"t":1744294442842,"v":"88352718316f2dfa"},{"id":"9b0547f6-28c6-4bcf-90fd-bbaa1bf56db1","v":"c7dfbce834afa8cd","previous":{"v":"initial"},"p":"6743ef9a-c21b-443f-91b8-4dd86886ee8c","f":{"id":"form","v":"d497194b29933d26","text":"Form"},"data":{"name":"Kategorien","tags":"","allowUndefinedFields":false,"definition":"","functions":"","defaults":"","newTemplate":{"id":"","v":"","text":""},"newAction":{"id":"","v":"","text":""},"allowedChildrenForms":[],"commands":[{"id":"e724bf4a-1c7c-458f-b269-9f192b320575","v":"initial","text":"rd:Neu"}],"namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"","v":"","text":""},"description":""},"locks":[],"created":{"at":"2023-08-11T14:40:39+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-08-14T12:06:48+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1692014808245,"ct":1691764839220,"a_depth":3,"a":["apps","9d6ee173-26fe-4472-a271-7667f717094e","6743ef9a-c21b-443f-91b8-4dd86886ee8c"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1702376398247},{"id":"e0978a3d-9761-4849-8a44-d22d8a175f87","v":"ac1bfa75e31cd436","previous":{"v":"82126c4b85fa5b84"},"p":"cd0dc80e-74a7-44b2-ac65-972cbf47562e","f":{"id":"form","v":"3163b16b782f3ff6","text":"Form"},"data":{"name":"Hersteller","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[documentDataValid]: Switch\n\n[Name][name]","functions":"","allowedChildrenForms":[],"commands":[{"id":"883788b4-b84f-49c7-9843-f53bbe50498d","v":"initial","text":"rd:Neu"}],"description":"","theme":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2023-03-23T15:12:18+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-11-24T13:41:29+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1700833289934,"ct":1681389760613,"a_depth":3,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1734522436195},{"id":"43551782-1b7f-47ef-a694-9e9824c97091","v":"24afd47add0bfadf","previous":{"v":"00d8b5012b9ab47b"},"p":"7643c1eb-d4fa-4bb1-a4c4-b65838cf989d","f":{"id":"form","v":"cc65f983157bf1fd","text":"Form"},"data":{"name":"Label","tags":"","namedIcon":"fa fa-tag","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Name][name]\n\n{color}\n[Farbe][color]","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2021-10-01T09:51:24+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-10-01T09:53:37+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1633082017056,"ct":1633081884869,"a_depth":3,"a":["apps","4a58cfdb-e1ef-40a2-8a89-57157ddda7d0","7643c1eb-d4fa-4bb1-a4c4-b65838cf989d"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1633084374412},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e"],"a_depth":3,"a_forms":["folder","application-form","form-folder"],"created":{"at":"2023-07-14T13:47:47+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1689342467666,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[],"commands":[],"defaults":"","definition":"","description":"","functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Formular Changes","namedIcon":"","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"tags":"","theme":{"id":"","text":"","v":""},"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"d497194b29933d26"},"id":"51563ea0-d4ac-4099-9a52-28e6e6b23cd2","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2025-05-23T14:56:56+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"cd0dc80e-74a7-44b2-ac65-972cbf47562e","previous":{"v":"initial"},"stamps":[],"t":1748012216233,"v":"e3b7a1868529a4d7"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596"],"a_depth":3,"a_forms":["folder","application-form","form-folder"],"cloneOf":{"id":"b270e94c-c223-4972-9db8-70b6750e740e","text":"Labels (Anlagenart)","v":"977c8f2b47d00665"},"created":{"at":"2026-05-04T09:24:43+00:00","backedBy":"","by":"09763886-6748-4a56-8e0e-54a2293ee96b","client":"server","from":"","impersonatedBy":""},"ct":1777886683688,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[{"id":"6c1309c4-eed0-4a1e-9664-1070184dd8a8","text":"Baugruppe","v":"d7b30a91b9436816"}],"commands":[{"id":"460a2fbd-e87b-40bf-856e-097ec7e2078e","text":"rd:New","v":"initial"}],"defaults":"","definition":"","descendantCommands":[],"description":"","from":[],"functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Baugruppen (Aggregate)","namedIcon":"far fa-tags","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"relatedDocuments":[],"tags":"structural","theme":{"id":"","text":"","v":""},"to":[],"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"410df4c62fb388dd"},"id":"83b7ea0a-f4c2-43b8-a4a7-09f1dbde62d1","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2026-07-30T09:40:15+00:00","backedBy":"","by":"09763886-6748-4a56-8e0e-54a2293ee96b","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"b270e94c-c223-4972-9db8-70b6750e740e","text":"Labels (Anlagenart)","v":"977c8f2b47d00665"},"p":"05787127-986a-494f-a69e-8733c1176596","previous":{"v":"be711d09d9f71642"},"stamps":[],"t":1785404415611,"v":"8aa9900131e3abe3"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596"],"a_depth":3,"a_forms":["folder","application-form","form-folder"],"created":{"at":"2025-08-04T08:01:14+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1754294474112,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[{"id":"1a0affea-08fc-467f-8a09-0e170f5ea96e","text":"Objekte (Liste)","v":"4fa8139b272b0858"},{"id":"edfe4a5d-1bd6-485a-b252-81dd8772c21c","text":"Wartungspunkte (Vorlagen)","v":"6a642bb1d6e3f711"},{"id":"d4d60ebf-b329-44dd-a97f-d1a905bddfc5","text":"Wartungsteile (Vorlagen)","v":"fc987a5c90c45c78"},{"id":"4338bec0-a02b-4126-9ba9-9d7bfbaf5bac","text":"Teams (Liste)","v":"c1e7f2699dd70cce"},{"id":"6ca8b149-5489-413d-9252-d2644019d53c","text":"Örtlichkeiten (Liste)","v":"05d591d55caad3fe"},{"id":"b270e94c-c223-4972-9db8-70b6750e740e","text":"Labels","v":"initial"},{"id":"80892429-568c-4d92-9631-655fb5b14e3a","text":"Labels (Mangeltyp)","v":"12a4b5d6933c4a1c"},{"id":"83b7ea0a-f4c2-43b8-a4a7-09f1dbde62d1","text":"Baugruppen","v":"08133184fac4c5a1"},{"id":"8477092b-5495-424d-a394-8234b0819882","text":"Wartungen","v":"c608d93d36471992"}],"commands":[],"defaults":"","definition":"","descendantCommands":[],"description":"","from":[],"functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Stammdaten","namedIcon":"","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"relatedDocuments":[],"tags":"","theme":{"id":"","text":"","v":""},"to":[],"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"b0b69a951dde83ea"},"id":"6138e497-f561-430e-b3f1-8c3c7db046a7","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2026-05-20T09:11:14+00:00","backedBy":"","by":"09763886-6748-4a56-8e0e-54a2293ee96b","client":"server","from":"","impersonatedBy":""},"p":"05787127-986a-494f-a69e-8733c1176596","previous":{"v":"7bfbb5f19ebe5a91"},"stamps":[],"t":1779268274063,"v":"d84c99b438369191"},{"a":["apps","0924db0f-7095-4b51-8966-bad1e45d68ec","a3b935e7-60bc-4996-9b18-668e4361067f"],"a_depth":3,"a_forms":["folder","application-form","form-folder"],"created":{"at":"2023-03-03T15:06:34+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1677855994148,"data":{"allowedChildrenForms":[],"commands":[{"id":"3761c49f-5fd2-42fb-856f-297f86d15450","text":"Rechnung erstellen","v":"3614f35f8a917e81"},{"id":"0ad49d52-8194-47d4-89b6-d00878eb50cc","text":"Rechnung erneut bearbeiten","v":"6967a9f6e2b6ac78"},{"id":"2b0f9694-6489-48f0-8250-81a3d5d6ba4d","text":"rd:Kopieren","v":"843615f5652c869c"}],"definition":"[name]: text <editable=titel> = functions.name(DateTime, nummer, gutschrift, titel, vorlage, datum, lieferdatum, fakturiert, bezahlt)\n\n[ueberfaellig]: switch = !bezahlt && zahlungUeberfaellig\n[zahlungUeberfaellig]: switch\n\n{hidden|readonly}\n[Rechnung erstellt][erstellt]\n[erstellt]: switch\n\n# Daten\n\n{show if gutschrift}\n####### \n{readonly}[Gutschrift][gutschrift] {readonly}[Gutschrift für][stornierteRechnung]\n[gutschrift]: switch\n[stornierteRechnung]: /54da686f-3f74-441b-b686-ed2b71dd35cc\n\n{show if storniert}\n####### \n{readonly}[Storniert][storniert] {readonly}[Storniert durch][stornoRechnung]\n\n[storniert]: switch\n[stornoRechnung]: /54da686f-3f74-441b-b686-ed2b71dd35cc\n\n####### \n\n{readonly if erstellt}[Titel][titel] {readonly}[Rechnungsnummer][nummer] \n[nummer]: \"Diese Nummer wird automatisch aus dem Nummernkreis bei der Erstellung erzeugt\"\n\n{30|readonly if erstellt | now}[Datum][datum] {readonly if erstellt}[Zahlungsziel (Tage)][zahlungszielTage] {readonly}[Zahlungsziel][zahlungszielDatum]\n[datum]: date <required>\n\n[zahlungszielTage]: number\n[zahlungszielDatum]: date = functions.zahlungszielDatum(DateTime, datum, zahlungszielTage)\n\n{readonly if erstellt|date}\n[Lieferdatum][lieferdatum]\n[lieferdatum]: date\n\n{switch delete-fields-if-false=fakturiertDatum}[Fakturiert][fakturiert] {show if fakturiert|now}[Fakturiert (Datum)][fakturiertDatum]\n[fakturiert]: switch \"Wird automatisch beim Erstellen der Rechnung gesetzt, falls noch nicht ausgefüllt\"\n[fakturiertDatum]: date\n\n{switch delete-fields-if-false=bezahltDatum}[Bezahlt][bezahlt] {show if bezahlt|now}[Bezahlt (Datum)][bezahltDatum]\n[bezahlt]: switch\n[bezahltDatum]: date\n\n{switch}[Schlussrechnung][schlussrechnung]\n[schlussrechnung]: switch \"Markiert diese Rechnung als Schlussrechnung. Aktualisiert automatisch Vertrag um *schlussgerechnet*.\"\n\n\n{readonly if erstellt|multiline auto-grow}\n[Einleitungstext][einleitung]\n[einleitung]: text\n\n{readonly if erstellt | ref ancestor-form=fec93a80-86e6-4ccb-a473-14046bd4336e design=tag-copy-positions}\n[Angebot][angebot]\n[angebot]: /e9f42b0b-50dd-4e21-9152-02c89b73c6d7 \"Aus einem verlinkten Angebot können Positionen kopiert werden\"\n\n{readonly if erstellt | children delete-on-remove forms=a40633b4-c769-4457-a267-830738d4b549,d48baecb-5aa1-4165-bb40-4e4a57e0cb12 new-command=ae0ade39-2cd5-4b84-bfd6-eabed7c2918a additional-add-control=\"rd:crm-positions-copy\" show-templates template-location-form=6cfeb343-afc3-48ed-8f48-6f6262f1361b template-parent-form=3fe5922a-6eea-4918-a465-2c3b8b038338 template-ancestor-index=1}\n[Positionen][positionen]\n[positionen]: /ref (0-n)\n\n{readonly if erstellt|multiline auto-grow}\n[Schlusstext][schlusstext]\n[schlusstext]: text\n\n## Vorlage & automatische Erstellung\n\n{readonly if erstellt}\n[Vorlage][vorlage]\n[vorlage]: switch \"Eine Vorlage kann nicht mehr erstellt, sondern nur noch kopiert werden. Außerdem schaltet es die *automatische Entwurf*-Funktion frei.\"\n\n{show if vorlage}\n####### \n\n[Automatisches Entwurf erstellen][automatischEntwurfErstellen]\n[automatischEntwurfErstellen]: switch\n\n{show if automatischEntwurfErstellen}[Rhythmus][automatischRhythmus] {show if automatischEntwurfErstellen}[ab][automatischAb]\n\n[automatischAb]: date\n[automatischLetzte]: date\n[automatischRhythmus]: Select \n  - MONAT: monatlich\n  - JAEHRLICH: jährlich \n\n## Summen\n\n{readonly}[Brutto][brutto] {readonly}[Netto][netto]\n\n{readonly}[Umsatzsteuer (gesamt)][umsatzsteuer] {readonly}[Umsatzsteuer (normaler Satz)][umsatzsteuerNormal] {readonly}[Umsatzsteuer (reduzierter Satz)][umsatzsteuerErmaessigt] {readonly}[Umsatzsteuer (befreit)][umsatzsteuerBefreit]\n\n[brutto]: number\n[netto]: number\n[umsatzsteuer]: number\n[umsatzsteuerNormal]: number\n[umsatzsteuerBefreit]: number\n[umsatzsteuerErmaessigt]: number\n\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" file-name-field=\"name\"}\n[Dateien für Kunde][unterlagenKunde]\n[unterlagenKunde]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) \"Weitere Dateien welche der Kunde erhalten hat.\" \n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" file-name-field=\"name\"}\n[Interne Datei-Ablage][unterlagen]\n[unterlagen]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) \"Eine interne Datei-Ablage für diese Rechnung.\" \n\n{hidden}\n# PDF \n\n{hidden if erstellt|readonly|ref pdf-creator-target pdf-creator-delete-before-update}\n[PDF Vorschau][pdfPreview]\n\n{show if erstellt|readonly|core:crm-pdf pdf-creator-target pdf-creator-delete-before-update}\n[PDF][pdf]\n\n[pdfPreview]: /dbee6e16-d63a-493c-bba6-505f79918f9f\n[pdf]: /dbee6e16-d63a-493c-bba6-505f79918f9f\n\n","description":"","functions":"zahlungszielDatum(DateTime, datum, zahlungszielTage) {\n  if (!datum || datum === 'UNDEFINED') {\n    return ''\n  }\n\n  return DateTime.fromISO(datum, { setZone: true, locale: 'de-de' }).plus({ days: zahlungszielTage || 0 }).toISO()\n}\n\nname(DateTime, nummer, gutschrift, titel, vorlage, datum, lieferdatum, fakturiert, bezahlt) {\n  const title = titel ? ` \"${titel.trim()}\"` : ''\n\n  if (vorlage) {\n    return `Vorlage${title}`\n  }\n\n  const typeOfInvoice = gutschrift ? 'Gutschrift' : 'Rechnung'\n\n  let number = ' Entwurf'\n  if (nummer) {\n    number = ` Nr. ${nummer}`\n  } else if (bezahlt || fakturiert) {\n    number = ' '\n  }\n\n  const dateToPick = lieferdatum || datum\n  const date = (dateToPick && dateToPick !== 'UNDEFINED') ? ` (${DateTime.fromISO(dateToPick, { setZone: true, locale: 'de-de' }).toLocaleString(DateTime.DATE_SHORT)})` : ''\n\n  return `${typeOfInvoice}${number}${title}${date}`\n}  ","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Rechnung","namedIcon":"far fa-file-invoice-dollar","namedIconColor":"","tags":"rd","theme":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"42ef1fd37c206edb"},"id":"54da686f-3f74-441b-b686-ed2b71dd35cc","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2026-03-03T10:33:55+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"p":"a3b935e7-60bc-4996-9b18-668e4361067f","previous":{"v":"8347ff4f5f3d5336"},"stamps":[],"t":1772534035912,"v":"89b4299a25439217"},{"id":"3fe5922a-6eea-4918-a465-2c3b8b038338","v":"817cc9cb833f8220","previous":{"v":"778d1a7cd18308ed"},"p":"a3b935e7-60bc-4996-9b18-668e4361067f","f":{"id":"form","v":"d497194b29933d26","text":"Form"},"data":{"name":"Vorlagen (Fakturierung)","tags":"","allowUndefinedFields":false,"definition":"","functions":"","defaults":"","newTemplate":{"id":"","v":"","text":""},"newAction":{"id":"","v":"","text":""},"allowedChildrenForms":[{"id":"e9f42b0b-50dd-4e21-9152-02c89b73c6d7","v":"d0bfcbf5d4a8e399","text":"Angebot"},{"id":"54da686f-3f74-441b-b686-ed2b71dd35cc","v":"584da42d29b6f7d0","text":"Rechnung"},{"id":"8d1804b0-c5c6-4acf-a15f-1b02872e792e","v":"89fde7691037a6d6","text":"Position (Angebot)"},{"id":"a40633b4-c769-4457-a267-830738d4b549","v":"34825d5f1c318c3d","text":"Position (Rechnung)"},{"id":"d48baecb-5aa1-4165-bb40-4e4a57e0cb12","v":"8f6acf7b7c5534ad","text":"Textblock"}],"commands":[{"id":"eee90d42-63b4-4956-ae19-049407fd4a20","v":"initial","text":"rd:Neu"}],"namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"","v":"","text":""},"description":""},"locks":[],"created":{"at":"2024-04-04T14:53:34+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-04-05T09:50:46+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1712310646683,"ct":1712242414836,"a_depth":3,"a":["apps","0924db0f-7095-4b51-8966-bad1e45d68ec","a3b935e7-60bc-4996-9b18-668e4361067f"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1712310716130},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596"],"a_depth":3,"a_forms":["folder","application-form","form-folder"],"created":{"at":"2026-03-26T15:56:50+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"ct":1774540610457,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[{"id":"1b166603-d0f3-4f16-98c4-0534afbd6f5a","text":"Wartungsdurchführung","v":"e8f0421ade14d94b"}],"commands":[],"defaults":"","definition":"{duration format=\"dd\"}\n[Automatische Archivierung][automaticArchivingAfter]\n[automaticArchivingAfter]: duration\n  help:\n  ------\n  # Automatische Archivierung von Wartungsdurchführungen\n\n  **Minimum: 1 Tag, Maximum: 365 Tage.** Andere Eingaben werden ignoriert und ein Standard-Wert herangezogen.<br><br>\n\n  Wartungsdurchführungen werden automatisch nach einer gewissen Zeit/Tagen in dieses Archiv verschoben.<br>\n  Haben die Wartungen einem gewissen Status (z.b. \"Zur Kenntniss genommen\") erreicht, so wird wöchentlich geprüft ob diese archivierbar sind.<br><br>\n  Hier kann eingestellt werden, nach wie vielen Tagen eine Wartung als archivierbar gilt. Es wird immer das letzte Änderungsdatum betrachtet.<br>\n  Eine Archivierung findet allerdings in jedem Fall erst zum wöchentlichen Ryhtmus statt. ","descendantCommands":[],"description":"","from":[],"functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Wartungen (Archiv)","namedIcon":"","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"relatedDocuments":[],"tags":"","theme":{"id":"","text":"","v":""},"to":[],"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"410df4c62fb388dd"},"id":"deccf007-d235-43f7-83d4-28db0e01db02","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2026-03-27T12:17:30+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"p":"05787127-986a-494f-a69e-8733c1176596","previous":{"v":"79db87808f5a5fe7"},"stamps":[],"t":1774613850927,"v":"ad32edbab43a1d38"},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e"],"a_depth":3,"a_forms":["folder","application-form","form-folder"],"cloneOf":{"id":"1795bc4e-b1b8-41c4-b235-136c3ff0e0af","text":"Standorte","v":"1211b0b2ef305391"},"created":{"at":"2023-11-08T13:51:10+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1699451470822,"data":{"allowedChildrenForms":[{"id":"21a59b67-da7b-4d24-ab4c-001362e46246","text":"Geltungsbereich","v":"9e1f70f530b96536"}],"commands":[{"id":"e2016509-c236-407e-811e-d70748526ac0","text":"rd:Neu","v":"initial"}],"definition":"","description":"","functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Geltungsbereiche","namedIcon":"far fa-globe-europe","namedIconColor":"","tags":"","theme":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"3163b16b782f3ff6"},"id":"b8c15921-2825-48d6-951c-e7fce7133ab5","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2024-07-23T10:09:06+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"1795bc4e-b1b8-41c4-b235-136c3ff0e0af","text":"Standorte","v":"1211b0b2ef305391"},"p":"cd0dc80e-74a7-44b2-ac65-972cbf47562e","previous":{"v":"2ffd10d322d0f1f1"},"stamps":[],"t":1721729346580,"v":"fc49944eff3b451c","dts":1700833606206},{"id":"dbdb4d4d-a16f-4c8c-b1ac-d9fdf4ebf491","v":"aeba7276be008374","previous":{"v":"51db7f9ca33f4720"},"p":"0fb162f4-0f78-4c1e-aad2-43c27e6d98cb","f":{"id":"form","v":"230b4040236561b6","text":"Form"},"data":{"name":"Stammdaten","tags":"","allowUndefinedFields":false,"definition":"","functions":"","relatedDocuments":[],"defaults":"","newTemplate":{"id":"","v":"","text":""},"newAction":{"id":"","v":"","text":""},"allowedChildrenForms":[{"id":"6af8d180-b697-461d-afe7-d9277c1469a6","v":"78e46e185aeafe46","text":"Agenturkürzel Ordner"},{"id":"50a934e0-859f-4d20-81c3-a91c38a4a982","v":"7ef9aa1fc05e1c9b","text":"Casting Sheets"}],"commands":[],"descendantCommands":[],"to":[],"from":[],"namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"","v":"","text":""},"description":""},"locks":[],"created":{"at":"2024-09-27T14:34:24+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-09-27T14:42:28+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1727448148866,"ct":1727447664044,"a_depth":3,"a":["apps","3fbe0efd-713a-457a-a34c-3a12aa19d6bb","0fb162f4-0f78-4c1e-aad2-43c27e6d98cb"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1727448159359},{"id":"6d07adf2-7c05-4cea-ab5d-8fae3e024bb1","v":"8292902748a9de62","previous":{"v":"initial"},"p":"6743ef9a-c21b-443f-91b8-4dd86886ee8c","f":{"id":"form","v":"d497194b29933d26","text":"Form"},"data":{"name":"Produkte","tags":"","allowUndefinedFields":false,"definition":"","functions":"","defaults":"","newTemplate":{"id":"","v":"","text":""},"newAction":{"id":"","v":"","text":""},"allowedChildrenForms":[],"commands":[{"id":"7a6fc50d-26b0-48d3-83ce-3f29e6d516b1","v":"initial","text":"rd:Neu"}],"namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"","v":"","text":""},"description":""},"locks":[],"created":{"at":"2023-08-11T14:40:58+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-08-14T12:07:24+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1692014844093,"ct":1691764858619,"a_depth":3,"a":["apps","9d6ee173-26fe-4472-a271-7667f717094e","6743ef9a-c21b-443f-91b8-4dd86886ee8c"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1702376404113},{"a":["apps","0924db0f-7095-4b51-8966-bad1e45d68ec","a3b935e7-60bc-4996-9b18-668e4361067f"],"a_depth":3,"a_forms":["folder","application-form","form-folder"],"created":{"at":"2023-03-03T15:09:25+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1677856165656,"data":{"allowedChildrenForms":[],"commands":[{"id":"0b06eefa-804e-4d40-a5b5-7e07a379f554","text":"rd:Angebot erstellen","v":"5af722be7cf216da"},{"id":"9ba8c2a6-b124-4b04-a045-d93eb3061f23","text":"rd:Kopieren","v":"8590b3b18aa661e0"}],"definition":"[name]: text <editable=titel> = functions.name(DateTime, nummer, titel, datum, angenommen)\n\n{hidden|readonly}\n[Angebot erstellt][erstellt]\n[erstellt]: switch\n\n# Daten\n\n{readonly if erstellt}[Titel][titel] {readonly}[Angebotsnummer][nummer] \n[nummer]: \"Diese Nummer wird automatisch aus dem Nummernkreis bei der Erstellung erzeugt\"\n\n{30|readonly if erstellt | now}[Datum][datum] {switch delete-fields-if-false=angenommenDatum}[Angenommen][angenommen] {show if angenommen|readonly if erstellt | now}[Datum (Angenommen)][angenommenDatum] \n[datum]: date <required>\n[angenommen]: switch\n[angenommenDatum]: date\n\n\n{readonly if erstellt|multiline auto-grow}\n[Einleitungstext][einleitung]\n[einleitung]: text\n\n{readonly if erstellt|children delete-on-remove show-templates template-location-form=6cfeb343-afc3-48ed-8f48-6f6262f1361b template-parent-form=3fe5922a-6eea-4918-a465-2c3b8b038338 template-ancestor-index=1}\n[Textblöcke (Einleitung)][einleitungBloecke]\n[einleitungBloecke]: /d48baecb-5aa1-4165-bb40-4e4a57e0cb12 (0-n)\n\n{readonly if erstellt | children delete-on-remove forms=8d1804b0-c5c6-4acf-a15f-1b02872e792e,d48baecb-5aa1-4165-bb40-4e4a57e0cb12 new-command=ae0ade39-2cd5-4b84-bfd6-eabed7c2918a show-templates template-location-form=6cfeb343-afc3-48ed-8f48-6f6262f1361b template-parent-form=3fe5922a-6eea-4918-a465-2c3b8b038338 template-ancestor-index=1}\n[Positionen][positionen]\n[positionen]: /ref (0-n)\n\n{readonly if erstellt|children delete-on-remove show-templates template-location-form=6cfeb343-afc3-48ed-8f48-6f6262f1361b template-parent-form=3fe5922a-6eea-4918-a465-2c3b8b038338 template-ancestor-index=1}\n[Textblöcke (Schlusstext)][schlusstextBloecke]\n[schlusstextBloecke]: /d48baecb-5aa1-4165-bb40-4e4a57e0cb12 (0-n)\n\n{readonly if erstellt|multiline auto-grow}\n[Schlusstext][schlusstext]\n[schlusstext]: text\n\n\n\n## Summen\n\n{readonly}[Brutto][brutto] {readonly}[Netto][netto]\n\n{readonly}[Umsatzsteuer (gesamt)][umsatzsteuer] {readonly}[Umsatzsteuer (normaler Satz)][umsatzsteuerNormal] {readonly}[Umsatzsteuer (reduzierter Satz)][umsatzsteuerErmaessigt] {readonly}[Umsatzsteuer (befreit)][umsatzsteuerBefreit]\n\n[brutto]: number\n[netto]: number\n[umsatzsteuer]: number\n[umsatzsteuerNormal]: number\n[umsatzsteuerBefreit]: number\n[umsatzsteuerErmaessigt]: number\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" file-name-field=\"name\"}\n[Dateien für Kunde][unterlagenKunde]\n[unterlagenKunde]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) \"Weitere Dateien welche der Kunde erhalten hat.\" \n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" file-name-field=\"name\"}\n[Interne Datei-Ablage][unterlagen]\n[unterlagen]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) \"Eine interne Datei-Ablage für dieses Angebot.\" \n\n{hidden}\n# PDF \n\n{hidden if erstellt|readonly|ref pdf-creator-target pdf-creator-update}\n[PDF Vorschau][pdfPreview]\n\n{hidden if erstellt|readonly|core:crm-pdf only-historic}\n[PDF][pdf]\n\n{show if erstellt|readonly|core:crm-pdf pdf-creator-target}\n[PDF][pdf]\n\n[pdfPreview]: /dbee6e16-d63a-493c-bba6-505f79918f9f\n[pdf]: /dbee6e16-d63a-493c-bba6-505f79918f9f\n","description":"","functions":"\nname(DateTime, nummer, titel, datum, angenommen) {\n  const title = titel ? ` \"${titel.trim()}\"` : ''\n\n  const type = 'Angebot'\n\n  let number = ' Entwurf'\n  if (nummer) {\n    number = ` Nr. ${nummer}`\n  } else if (angenommen) {\n    number = ' '\n  }\n\n  const date = (datum && datum !== 'UNDEFINED') ? ` (${DateTime.fromISO(datum, { setZone: true, locale: 'de-de' }).toLocaleString(DateTime.DATE_SHORT)})` : ''\n\n  return `${type}${number}${title}${date}`\n}  ","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Angebot","namedIcon":"far fa-file-contract","namedIconColor":"","tags":"rd","theme":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"42ef1fd37c206edb"},"id":"e9f42b0b-50dd-4e21-9152-02c89b73c6d7","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2025-12-11T14:34:54+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"p":"a3b935e7-60bc-4996-9b18-668e4361067f","previous":{"v":"c6091fec8f7bf132"},"stamps":[],"t":1765463694849,"v":"e2a04eb8f731232f"},{"a":["apps","f416e371-07cc-4987-a6de-5934ef5ff3e4","1096c5df-2773-4914-9455-dc54e0f3e0e5"],"a_depth":3,"a_forms":["folder","application-form","form-folder"],"created":{"at":"2025-12-02T14:28:59+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1764685739237,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[],"commands":[],"defaults":"","definition":"","descendantCommands":[],"description":"","from":[],"functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Auswertungen","namedIcon":"","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"relatedDocuments":[],"tags":"","theme":{"id":"","text":"","v":""},"to":[],"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"16a1fc2c7a734357"},"id":"7462cae9-85cb-4a48-9698-7136b5ea6be2","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2025-12-02T14:28:59+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"1096c5df-2773-4914-9455-dc54e0f3e0e5","stamps":[],"t":1764685739271,"v":"initial"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596"],"a_depth":3,"a_forms":["folder","application-form","form-folder"],"created":{"at":"2026-01-19T08:34:12+00:00","backedBy":"","by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":""},"ct":1779180344347,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[{"id":"3f88574e-aaec-484a-8dc4-bbdcb085186d","text":"Label","v":"bc6f557ef497409a"}],"commands":[{"id":"eb8a2979-7976-4f88-9798-38c0818d3fd3","text":"rd:New","v":"initial"}],"defaults":"","definition":"","descendantCommands":[],"description":"","from":[],"functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Labels (Anlagenart)","namedIcon":"far fa-tags","namedIconColor":"#06b6d4","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"relatedDocuments":[],"tags":"structural","theme":{"id":"","text":"","v":""},"to":[],"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"c2759612aee0e8c4"},"id":"b270e94c-c223-4972-9db8-70b6750e740e","inheritedLocks":[null,null,null,null],"locks":[],"meta":{},"modified":{"at":"2026-07-30T09:43:06+00:00","backedBy":"","by":"09763886-6748-4a56-8e0e-54a2293ee96b","client":"server","from":"","impersonatedBy":""},"p":"05787127-986a-494f-a69e-8733c1176596","previous":{"v":"65c3c09e7cec7e67"},"stamps":[],"t":1785404586042,"v":"252b3ba91d049b56"},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e"],"a_depth":3,"a_forms":["folder","application-form","form-folder"],"created":{"at":"2025-07-09T16:24:32+00:00","backedBy":null,"by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":null},"ct":1752078272334,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[],"commands":[],"defaults":"","definition":"","descendantCommands":[],"description":"","from":[],"functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Meine Sammelinformationen","namedIcon":"","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"relatedDocuments":[],"tags":"","theme":{"id":"","text":"","v":""},"to":[],"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"b0b69a951dde83ea"},"id":"1f95980b-7afb-4968-94b3-e90a7865dcf5","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2025-07-09T16:29:28+00:00","backedBy":null,"by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":null},"p":"cd0dc80e-74a7-44b2-ac65-972cbf47562e","previous":{"v":"initial"},"stamps":[],"t":1752078568343,"v":"6862f7d450f75435"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596"],"a_depth":3,"a_forms":["folder","application-form","form-folder"],"cloneOf":{"id":"1a0affea-08fc-467f-8a09-0e170f5ea96e","text":"Areale (Liste)","v":"0a84d4fd3319f0ea"},"created":{"at":"2026-05-19T09:47:26+00:00","backedBy":"","by":"09763886-6748-4a56-8e0e-54a2293ee96b","client":"server","from":"","impersonatedBy":""},"ct":1779184046865,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[{"id":"347d38c6-0bce-47ce-b271-9f924c56ac49","text":"Wartung","v":"0f6b5204b6feb56c"}],"commands":[{"id":"9a571ed6-530b-47ed-a83b-949682dae51a","text":"rd:New","v":"initial"}],"defaults":"","definition":"","descendantCommands":[],"description":"Menupunkt in den Stammdaten","from":[],"functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Wartungen","namedIcon":"far fa-hammer","namedIconColor":"#ff94d2","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"relatedDocuments":[],"tags":"structural","theme":{"id":"","text":"","v":""},"to":[],"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"b0b69a951dde83ea"},"id":"8477092b-5495-424d-a394-8234b0819882","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2026-07-30T09:44:25+00:00","backedBy":"","by":"09763886-6748-4a56-8e0e-54a2293ee96b","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"1a0affea-08fc-467f-8a09-0e170f5ea96e","text":"Areale (Liste)","v":"0a84d4fd3319f0ea"},"p":"05787127-986a-494f-a69e-8733c1176596","previous":{"v":"ef36d28a849af381"},"stamps":[],"t":1785404665707,"v":"11c57faec7046511"},{"id":"50a934e0-859f-4d20-81c3-a91c38a4a982","v":"d0b07b2c48bb6144","previous":{"v":"7ef9aa1fc05e1c9b"},"p":"0fb162f4-0f78-4c1e-aad2-43c27e6d98cb","f":{"id":"form","v":"230b4040236561b6","text":"Form"},"data":{"name":"Casting Sheets","tags":"","allowUndefinedFields":false,"definition":"","functions":"","relatedDocuments":[],"defaults":"","newTemplate":{"id":"","v":"","text":""},"newAction":{"id":"","v":"","text":""},"allowedChildrenForms":[{"id":"form","v":"230b4040236561b6","text":"Form"}],"commands":[{"id":"e2596274-6037-429e-b40c-b1de0e7c11a6","v":"initial","text":"rd:New"}],"descendantCommands":[],"to":[],"from":[],"namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"","v":"","text":""},"description":""},"locks":[],"created":{"at":"2024-09-27T14:42:00+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-09-27T14:43:31+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1727448211417,"ct":1727448120727,"a_depth":3,"a":["apps","3fbe0efd-713a-457a-a34c-3a12aa19d6bb","0fb162f4-0f78-4c1e-aad2-43c27e6d98cb"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1727448899784},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596"],"a_depth":3,"a_forms":["folder","application-form","form-folder"],"created":{"at":"2025-08-04T11:11:46+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1754305906809,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[],"commands":[{"id":"94a7875c-004f-4d99-a11a-f2bd9f45c534","text":"rd:New","v":"initial"}],"defaults":"","definition":"","descendantCommands":[],"description":"","from":[],"functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Wartungsteile (Vorlagen)","namedIcon":"far fa-puzzle-piece","namedIconColor":"#f97316","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"relatedDocuments":[],"tags":"structural","theme":{"id":"","text":"","v":""},"to":[],"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"b0b69a951dde83ea"},"id":"d4d60ebf-b329-44dd-a97f-d1a905bddfc5","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2026-07-30T09:45:28+00:00","backedBy":"","by":"09763886-6748-4a56-8e0e-54a2293ee96b","client":"server","from":"","impersonatedBy":""},"p":"05787127-986a-494f-a69e-8733c1176596","previous":{"v":"3d14f4aa32531864"},"stamps":[],"t":1785404728426,"v":"7bbaab8dc60c277a"},{"a":["apps","e1bc93d1-b6c6-4711-a98f-675371c40326","1aaeb13c-eaeb-41f4-b07e-af972bef35bc"],"a_depth":3,"a_forms":["folder","application-form","form-folder"],"cloneOf":{"id":"43420696-8097-4fc1-88e5-c69df9821470","text":"Board","v":"cc9339b91ad71420"},"created":{"at":"2026-03-23T13:30:09+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"ct":1774342547326,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[{"id":"5c09f33b-dc3e-4bfb-aec1-3f9d3d3e1f6b","text":"Columns-Manual","v":"initial"},{"id":"56f3b553-2f31-40dc-9b00-96921a2a8bce","text":"Columns-Reference","v":"initial"},{"id":"700025de-284c-4ec1-9f53-4586913e5cd1","text":"Columns-References","v":"initial"},{"id":"998e2f0e-993b-4b5a-a652-848c06668d03","text":"Columns-Select-Number","v":"initial"},{"id":"70a8f545-9834-4727-8c6c-953332d59e28","text":"Columns-Select-Text","v":"initial"},{"id":"19a82bb9-27af-44ac-a4d2-af505e519843","text":"Columns-Switch","v":"initial"}],"commands":[],"defaults":"","definition":"[Name][name]\n\n// Currently only one Form is implemented. It is used for filters, columnsByRef's pseudoDocument in the Board Design and creating new Documents.\n[Forms][form]\n[form]: /form (1-1)\n\n[Type][type]\n[type]: Select\n  - DOCUMENT: Based on document data\n  - WORKFLOW: Integrated with Workflow\n\n{show if (type=='DOCUMENT')}\n# Dokument als Spalte\n\n// Used to query the board more precisely\n{hidden}\n[Key][key]\n[key]: text\n\n{children delete-on-remove}\n[Ansichten][views]\n[views]: /65aaf402-72cd-45e5-8d88-f88550f1b0c6 (0-n)\n\n// The different ways to view a board are stored in the localStoreage of the browser. What the views show is stored here.\n// A cool feature missing is to create columns stamps belonging to a document. It would look like the Workflow section.\n\n{show if (type=='WORKFLOW')}\n# Spalten via Workflow  \n\n[Workflow Configuration][workflow]\n[workflow]: /28920b1b-fc03-454a-817f-fd7e19133d92\n\n{children}\n[Columns][columns]\n[columns]: /d5664a63-3903-4044-a1a2-c0260c55615c (0-n)\n","descendantCommands":[],"description":"","from":[],"functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Board","namedIcon":"far fa-columns","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"relatedDocuments":[],"tags":"","theme":{"id":"","text":"","v":""},"to":[],"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"410df4c62fb388dd"},"id":"4ef9e83e-1aa5-4709-bbd5-24e98ea0148c","inheritedLocks":[null,null,null,null],"locks":[],"meta":{},"modified":{"at":"2026-03-24T11:41:06+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"43420696-8097-4fc1-88e5-c69df9821470","text":"Board","v":"cc9339b91ad71420"},"p":"1aaeb13c-eaeb-41f4-b07e-af972bef35bc","previous":{"v":"efe8743ac02c3798"},"stamps":[],"t":1774352466665,"v":"a92dce7bc71ec5d8"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596"],"a_depth":3,"a_forms":["folder","application-form","form-folder"],"created":{"at":"2025-08-05T10:00:10+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1754388010099,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[{"id":"aa49f5c2-0502-4b7e-8ffd-4ac90427420e","text":"Team","v":"b96b23681ebcb2de"}],"commands":[{"id":"cc8b89f8-89cb-4971-a009-1fcdd9f30cc3","text":"rd:New","v":"initial"}],"defaults":"","definition":"","descendantCommands":[],"description":"","from":[],"functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Teams","namedIcon":"far fa-people-group","namedIconColor":"#a855f7","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"relatedDocuments":[],"tags":"structural","theme":{"id":"","text":"","v":""},"to":[],"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"b0b69a951dde83ea"},"id":"4338bec0-a02b-4126-9ba9-9d7bfbaf5bac","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2026-07-30T09:43:42+00:00","backedBy":"","by":"09763886-6748-4a56-8e0e-54a2293ee96b","client":"server","from":"","impersonatedBy":""},"p":"05787127-986a-494f-a69e-8733c1176596","previous":{"v":"b319f9ef4ec678fc"},"stamps":[],"t":1785404622417,"v":"e8eb85f882efa7b2"},{"a":["apps","5093ea32-8d03-430d-afce-fd4f6c34675e","6f523f5c-5db0-4071-b16b-132f4cf642ac"],"a_depth":3,"a_forms":["folder","application-form","form-folder"],"created":{"at":"2023-10-09T15:05:45+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1765278908181,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[],"commands":[],"defaults":"","definition":"","descendantCommands":[],"description":"","from":[],"functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Kalender","namedIcon":"","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"relatedDocuments":[],"tags":"tierklinik","theme":{"id":"","text":"","v":""},"to":[],"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"410df4c62fb388dd"},"id":"b91dfd60-9bad-478b-92cb-c9abde2c8d36","inheritedLocks":[null,null,null,null],"locks":[],"meta":{"modified":{"at":"2025-12-09T11:15:08+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""}},"modified":{"at":"2023-10-10T11:57:31+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"6f523f5c-5db0-4071-b16b-132f4cf642ac","previous":{"f":{"id":"form","text":"Form","v":"d497194b29933d26"},"v":"8df67009f4c8de4b"},"stamps":[],"t":1765278908181,"v":"a506545582e1a2e6"},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e"],"a_depth":3,"a_forms":["folder","application-form","form-folder"],"created":{"at":"2025-07-07T09:18:51+00:00","backedBy":null,"by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":null},"ct":1751879931553,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[],"commands":[],"defaults":"","definition":"{readonly}\n[Sammelinformationsnummer][informationNumberTitle]\n[informationNumberTitle]: text\n\n// should be used in sorting\n{hidden|readonly}\n[Sammelinformationsnummer][informationNumber]\n[informationNumber]: number\n\n{text max=100}\n[Sammelinformationstitel][informationTitle]\n[informationTitle]: text <required>\n\n{children design=\"itm:inventory-card\"}\n[Bestandseintrag][inventoryEntry]\n[inventoryEntry]: /50c3c7c5-c3d4-460c-b34d-0d61a4cb09ae <required>\n\n{multiline auto-grow max=500}\n[Beschreibung][description]\n[description]: text\n\n{employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true}\n[Verantwortlicher Ansprechpartner Business][responsible]\n[responsible]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n) <required>\n\n{multiline auto-grow max=500}\n[Kommentar BITM][itcoComment]\n[itcoComment]: text\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlagen][attachments]\n[attachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{multiline auto-grow max=500}\n[Kommentar IT-Ref][commentItReferee]\n[commentItReferee]: text\n\n{readonly|datetime}\n[Zeitstempel Erstellung][creationTimestamp]\n[creationTimestamp]: date\n\n{readonly|datetime}\n[Zeitstempel Einreichung][submissionTimestamp]\n[submissionTimestamp]: date\n\n{readonly|datetime}\n[Zeitstempel Annahme][acceptanceTimestamp]\n[acceptanceTimestamp]: date\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Ersteller][creator]\n[creator]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10","descendantCommands":[],"description":"","from":[],"functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Sammelinfo (Master)","namedIcon":"","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"relatedDocuments":[],"tags":"","theme":{"id":"","text":"","v":""},"to":[],"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"b0b69a951dde83ea"},"id":"c881dec7-95f5-434f-9423-93143aaa976b","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2025-07-17T14:08:41+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"cd0dc80e-74a7-44b2-ac65-972cbf47562e","previous":{"v":"2ede58cff2b9c21a"},"stamps":[],"t":1752761321327,"v":"b77d843e4fd263db"},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e"],"a_depth":3,"a_forms":["folder","application-form","form-folder"],"created":{"at":"2022-11-14T13:11:35+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1691583178636,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[],"commands":[],"defaults":"","definition":"# Antrag\n\n{readonly}\n[Antragsnummer][applicationNumberTitle]\n\n// applicationNumber should be used in sorting\n{hidden|readonly}\n[Antragsnummer][applicationNumber]\n[applicationNumber]: number\n\n{readonly|datetime}\n[Zeitstempel Erstellung][creationTimestamp]\n[creationTimestamp]: date\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Ersteller][creator]\n[creator]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10\n\n{children design=\"itm:inventory-card\"}\n[Bestandseintrag][inventoryEntry]\n[inventoryEntry]: /50c3c7c5-c3d4-460c-b34d-0d61a4cb09ae\n\n{employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Beratender BITM][consultingItco]\n[consultingItco]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n) <required>\n\n[Antragstitel][applicationTitle]\n[applicationTitle]: text <required>\n\n{multiline auto-grow max=500}\n[Beschreibung][description]\n[description]: text <required>\n\n{select}\n[Aktionstyp][actionType]\n[actionType]: select <required help=layoutId> \"003ffe3b-61e1-4553-acb8-1d8e68874ce0\"\n  - ZERO: \"0\"\n  - ONE: 1\n  - TWO: 2\n  - THREE: 3\n  - FOUR: 4\n  - FIVE: 5\n  - INFORMATION: Information\n\n{switch appearance=\"toggle-text\"}\n[Mitarbeiterdatenbezug][employeeDataReference]\n[employeeDataReference]: switch\n\n{switch delete-fields-if-false=plannedPilotingDurationInMonths,pilotingEndDate,pilotingComment appearance=\"toggle-text\"}\n[Pilotierung][piloting]\n[piloting]: switch\n\n{show if piloting}\n[Geplante Dauer der Pilotierung (Angabe in Monaten)][plannedPilotingDurationInMonths]\n[plannedPilotingDurationInMonths]: number <required>\n\n{readonly}\n[Prozess][process]\n[process]: Select <required> \"Wird automatisch berechnet aus **Aktionstyp**, **Mitarbeiterdatenbezug** sowie **Kategorie nach GBV ITM** (letzteres im Bestandseintrag)\"\n  - \n  - NO_ACTIVITY: keine Aktivität im Rahmen der IT-Mitbestimmung\n  - INFORMATION: Informationsprozess\n  - SIMPLE: Vereinfachter Prozess\n  - DETAILED: Detaillierter Prozess\n  - SEPARATE: Gesonderter Prozess\n  - INAPPLICABLE: nicht anwendbar\n\n[Prozess (angepasst)][processAdjusted]\n[processAdjusted]: Select\n  - \n  - NO_ACTIVITY: keine Aktivität im Rahmen der IT-Mitbestimmung\n  - INFORMATION: Informationsprozess\n  - SIMPLE: Vereinfachter Prozess\n  - DETAILED: Detaillierter Prozess\n  - SEPARATE: Gesonderter Prozess\n  - INAPPLICABLE: nicht anwendbar\n\n{switch appearance=\"toggle-text\"}\n[Standortentscheidung][locationDecision]\n[locationDecision]: switch \"Ja: SBR. Nein: ITA/GBR.\"\n\n{children delete-on-remove}\n[Antragsteller][applicant]\n[applicant]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true}\n[Bearbeiter][editor]\n[editor]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n)\n\n{switch delete-fields-if-false=applicantSupervisor,applicantSupervisorSignature appearance=\"toggle-text\"}\n[Antragsteller Befugnis (Ist der Antragsteller handlungsbevollmächtigt?)][applicantAuthorization]\n[applicantAuthorization]: switch\n\n{show if !applicantAuthorization|children delete-on-remove}\n[Antragsteller Vorgesetzter][applicantSupervisor]\n[applicantSupervisor]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{children delete-on-remove}\n[Gast / Präsentator][guestOrPresenter]\n[guestOrPresenter]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n)\n\n{date type=\"year-month\"}\n[ITA Sitzungsmonat (AG Wunsch)][itaMeetingMonthByEmployer]\n[itaMeetingMonthByEmployer]: date \n<required>\n\n{multiline auto-grow max=500}\n[Kommentar BITM][itcoComment]\n\n# Datenschutzstellungnahme\n\n{multiline auto-grow max=5000}\n[Stellungnahme DPA][dpaStatement]\n\n[Stellungnahme DPO ist nicht erforderlich][dpoStatementNotRequired]\n[dpoStatementNotRequired]: switch\n\n{select}\n[Stellungnahme Ampel][dpoStatementRating]\n[dpoStatementRating]: Select\n  - \n  - GOOD <icon=\"fa fa-circle\" iconcolor=\"green\">: Empfehlung\n  - OK <icon=\"fa fa-circle\" iconcolor=\"yellow\">: Empfehlung mit Auflagen\n  - BAD <icon=\"fa fa-circle\" iconcolor=\"red\">: Keine Empfehlung\n  - NOT_APPLICABLE <icon=\"fa fa-circle\" iconcolor=\"blue\">: Neutral / Nicht bewertbar / Nicht bewertet \n\n{multiline auto-grow max=5000}\n[Stellungnahme DPO][dpoStatement]\n[dpoStatement]: text\n\n{multiline auto-grow max=5000}\n[Nachträgliche Ergänzung DPO][dpoAdditionalStatement]\n\n{multiline auto-grow max=5000}\n[Kommentar zur DPO Stellungnahme][commentOnDpoStatement]\n[commentOnDpoStatement]: text \n\n{multiline auto-grow max=500}\n[Vorschlag Auflagen][dpoProposalConditions]\n\n# Unterschriften\n\n{signature}\n[Unterschrift Antragsteller][applicantSignature]\n[applicantSignature]: file <required=\"applicantSignatureAttachments.length === 0\">\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlage Unterschrift Antragsteller][applicantSignatureAttachments]\n[applicantSignatureAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required=\"!applicantSignature.dataUrl\"> \"Als Alternative zu *Unterschrift Antragsteller* kann eine Datei angehängt werden\"\n\n{show if !applicantAuthorization|signature}\n[Unterschrift Antragsteller Vorgesetzter][applicantSupervisorSignature]\n[applicantSupervisorSignature]: file <required=\"applicantSupervisorSignatureAttachments.length === 0\">\n\n{show if !applicantAuthorization|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlage Unterschrift Antragsteller Vorgesetzter][applicantSupervisorSignatureAttachments]\n[applicantSupervisorSignatureAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required=\"!applicantSupervisorSignature.dataUrl\"> \"Als Alternative zu *Unterschrift Antragsteller Vorgesetzter* kann eine Datei angehängt werden\"\n\n# Prüfkatalog\n\n{children delete-on-remove inline handle-selected=false}\n[Fragebogen][questionnaire]\n[questionnaire]: /b5dcdd5b-6a84-4e13-92a2-052a1f1d1492\n\n# Präsentation / Anlagen\n\n{show if presentationTemplate.length > 0|readonly|ref}\n[Präsentation (Vorlage)][presentationTemplate]\n[presentationTemplate]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Präsentation][presentation]\n[presentation]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required>\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlagen][attachments]\n[attachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{multiline auto-grow max=500}\n[Nachgereichte Informationen][subsequentlyAddedInformation]\n[subsequentlyAddedInformation]: text\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Nachgereichte Anlagen][subsequentlyAddedAttachments]\n[subsequentlyAddedAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{multiline auto-grow}\n[Weitere Mitteilung an den IT-Ausschuss][additionalMessageToIta]\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlagen ITA Seite][attachmentsIta]\n[attachmentsIta]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n# Sitzungszuordnung / ITA Kommentare\n\n{multiline auto-grow max=500}\n[Kommentar IT-Ref][commentItReferee]\n\n{multiline auto-grow max=500}\n[Kommentar IT-Ref][commentItReferee]\n\n{multiline auto-grow max=500}\n[Kommentar ITA-Vorsitz][commentItaChair]\n\n{multiline auto-grow max=500}\n[Kommentar ITA Sekretariat][commentItaOffice]\n\n{multiline auto-grow}\n[Kommentar/Notizen ITA Mitglieder][commentItaMembers]\n\n{date type=\"year-month\"}\n[ITA Sitzungsmonat (ITA)][itaMeetingMonthByIta]\n[itaMeetingMonthByIta]: date (0-n)\n\n{switch appearance=\"toggle-text\"}\n[Papierentscheid][paperDecision]\n[paperDecision]: switch\n\n# Beschluss / Empfehlung / Klärungsauftrag\n\n{multiline auto-grow}\n[Beschlussvorschlag][proposalDecision]\n\n{show if piloting}\n[Pilotierung Enddatum][pilotingEndDate]\n[pilotingEndDate]: date\n\n{show if piloting|multiline auto-grow}\n[Pilotierung Kommentar][pilotingComment]\n\n{children delete-on-remove navigate new-commands=81a8087a-f250-4ee0-acba-dd64518b72b1,2811e9f3-0f97-4425-8b4e-fd96493048de}\n[Beschluss/Empfehlung/Klärungsauftrag][decisions]\n[decisions]: /5beeae17-7bb1-4eeb-bcb6-cf0e6950e27c (0-n)","description":"","functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Antrag (Master)","namedIcon":"","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"tags":"","theme":{"id":"","text":"","v":""},"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"d497194b29933d26"},"id":"03d08db0-f873-48cd-a5b5-c34937bddc2f","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2025-05-23T13:01:44+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"cd0dc80e-74a7-44b2-ac65-972cbf47562e","previous":{"v":"abd1cb9dd74eecfd"},"stamps":[],"t":1748005304892,"v":"ddb23bff7d6a20ea"},{"id":"0aedd37c-75c9-4724-ab7e-a3de888870b5","v":"b2b2a09f35e3d273","previous":{"v":"9ddad1039c250966"},"p":"3555bef3-1cf0-4f7d-b3ce-5346fb8cbff4","f":{"id":"form","v":"cc65f983157bf1fd","text":"Form"},"data":{"name":"Schmiedetermin","tags":"","namedIcon":"fa fa-calendar-check","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"# Allgemein\r\n\r\n[Pferd und Besitzer][name]\r\n\r\n[Beschreibung][description]\r\n[description]: Text\r\n\r\n[Tierarzt][tierarzt]\r\n\r\n{ref ancestor-form=43f2603c-e6b0-4a91-9087-4f103c96a2b4 hide-path=true creation-location-form=43f2603c-e6b0-4a91-9087-4f103c96a2b4 on-creation-run-action=598b923a-f5c8-45ec-8697-10512c90f679}\r\n[tierarzt]: /7689ac8d-46f3-4d0e-a8e8-6efe9f84b474\r\n\r\n{quick-select item-flex=20}\r\n[Aufnahme][aufnahme]\r\n\r\n[aufnahme]: select\r\n  -\r\n  - Ambulant\r\n  - Stationär\r\n\r\n{120px}[Ganztägig][allday] {datetime}[Start][start] {datetime}[Ende][end]\r\n\r\n[allday]: Switch\r\n[start]:Date\r\n[end]:Date \r\n\r\n# Erweitert\r\n\r\n{10|color}[Farbe][color] {90|multi-select}[Wiederholung][daysOfWeek]\r\n\r\n[daysOfWeek]: Select (0-n)\r\n  - 1: Montag\r\n  - 2: Dienstag\r\n  - 3: Mittwoch\r\n  - 4: Donnerstag\r\n  - 5: Freitag\r\n  - 6: Samstag\r\n  - 7: Sonntag\r\n ","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2021-11-08T16:01:54+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","from":"","client":"server"},"modified":{"at":"2023-10-10T12:48:37+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1696942117637,"ct":1636387314626,"a_depth":3,"a":["apps","b3191869-9bcf-440c-92be-7b013944b450","3555bef3-1cf0-4f7d-b3ce-5346fb8cbff4"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1696942740554},{"id":"941dad3f-07ee-401d-a7f5-244eba256937","v":"initial","p":"b6b5ad5b-124f-4b1c-8f55-74294451a2ba","f":{"id":"form","v":"4fa42fcff3786d1e","text":"Form"},"data":{"name":"Termin","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"######## Allgemein\n\n[Titel][name]\n\n[Beschreibung][description]\n\n{ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true default-value-command=49a26db7-f4f3-41fb-ad26-e45f40d7de83}\n[Teilnehmer][attendees]\n[attendees]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n)\n\n{hidden if !allday}\n######## \n{30}[Ganztägig][allday] {date}[Start][start] {date}[Ende][end]\n\n{hidden if allday}\n######## \n{30}[Ganztägig][allday] {datetime}[Start][start] {datetime}[Ende][end]\n\n[start]: date\n[end]: date\n[allday]: switch\n\n{hidden}\n######## Erweitert\n\n{10|color}[Farbe][color] {90}[Wiederholung][daysOfWeek]\n\n[daysOfWeek]: Select (0-n)\n  - 1: Montag\n  - 2: Dienstag\n  - 3: Mittwoch\n  - 4: Donnerstag\n  - 5: Freitag\n  - 6: Samstag\n  - 7: Sonntag\n ","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2020-05-08T08:51:41+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2020-05-08T08:51:41+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1588927901298,"ct":1588927901297,"a_depth":3,"a":["apps","49babc91-9123-4d92-b850-ce4d10f0e1b4","b6b5ad5b-124f-4b1c-8f55-74294451a2ba"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1638807470975},{"id":"a40633b4-c769-4457-a267-830738d4b549","v":"ed5b6eca71b12f72","cloneOf":{"id":"8d1804b0-c5c6-4acf-a15f-1b02872e792e","v":"4dabb8417b1c397c","text":"Position"},"originalCloneOf":{"id":"8d1804b0-c5c6-4acf-a15f-1b02872e792e","v":"4dabb8417b1c397c","text":"Position"},"previous":{"v":"34825d5f1c318c3d"},"p":"a3b935e7-60bc-4996-9b18-668e4361067f","f":{"id":"form","v":"24ab84939535fdcd","text":"Form"},"data":{"name":"Position (Rechnung)","tags":"","namedIcon":"far fa-coins","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"{multiline auto-grow=true}[Beschreibung][name] {now}[Datum][datum]\n\n{20|switch appearance=toggle}[Abrechenbar][abrechenbar] [USt-Satz][ust]\n\n[ust]: Select\n  - NORMAL: Normal\n  - ERMAESSIGT: Ermäßigt\n  - BEFREIT: Befreit\n[abrechenbar]: switch\n[datum]: date\n\n{select icon_PAUSCHALE=\"far fa-coin\" icon_ZEIT=\"far fa-clock\" icon_MATERIAL=\"far fa-boxes\" icon_SOCKEL_PLUS_VARIABLE=\"far fa-layer-plus\" icon_ENTFERNUNG=\"far fa-car\"}\n[Typ][typ]\n\n{show if typ === 'ZEIT'}\n####### \n{number}[Menge][menge]\n\n[Dauer][dauer] [Kosten pro Dauer][kostenProEinheit]\n\n{show if typ === 'PAUSCHALE'}\n####### \n{number}[Menge][menge] [Pauschale][kostenProEinheit]\n\n{show if typ === 'MATERIAL'}\n####### \n{number}[Menge][menge] [Kosten pro Einheit][kostenProEinheit] \n\n{show if typ === 'SOCKEL_PLUS_VARIABLE'}\n####### \n**Fixe Kosten**\n\n[Sockelbetrag][fixeKosten]\n\n**Variable Kosten**\n\n{number}[Menge][menge] \n[Dauer][dauer] [Kosten pro Dauer][kostenProEinheit]\n\n{show if typ === 'ENTFERNUNG'}\n####### \n{number}[Kilometer][menge] [Kosten pro km][kostenProEinheit]\n\n####### \n\n{show if uebernommenAus.id|readonly}\n[Übernommen aus][uebernommenAus] \n[uebernommenAus]: /ref\n\n{hidden}\n[Summe][summe]\n[summe]: number = functions.sum(abrechenbar, fixeKosten, kostenProEinheit, menge)\n\n[kostenProEinheit]: currency\n[fixeKosten]: currency\n[dauer]: duration\n[menge]: number\n[typ]: Select\n  - ZEIT: Zeit\n  - PAUSCHALE: Pauschale\n  - MATERIAL: Material\n  - SOCKEL_PLUS_VARIABLE: Sockelbetrag + Zeit\n  - ENTFERNUNG: km (Entfernung)\n","functions":"sum(abrechenbar, fixeKosten, kostenProEinheit, menge) {\n  return abrechenbar ? fixeKosten.amount + ((kostenProEinheit.amount * menge) || 0) : 0\n}\n","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2020-10-02T14:22:20+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2025-02-04T09:47:24+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1738662444146,"ct":1601648540196,"a_depth":3,"a":["apps","0924db0f-7095-4b51-8966-bad1e45d68ec","a3b935e7-60bc-4996-9b18-668e4361067f"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[]},{"id":"2cea1044-a33a-4d05-9139-12c9a4fe0627","v":"242da2505a9180c8","previous":{"v":"9ab90ae7df593574"},"p":"b8fe3038-b9dc-4eb6-a141-8b80ed39748e","f":{"id":"form","v":"24ab84939535fdcd","text":"Form"},"data":{"name":"Klärung","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"{hidden}\r\n{readonly|creator}[][name]\r\n\r\n{now control=datetime}[Datum][datum]\r\n[datum]: date\r\n\r\n{editor}\r\n[Beschreibung][beschreibung]","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2020-08-06T10:11:43+00:00","by":"77031fd1-c20d-4484-b4b4-46c01bdab986","from":"","client":"server"},"modified":{"at":"2020-08-14T11:58:13+00:00","by":"77031fd1-c20d-4484-b4b4-46c01bdab986","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1597406293882,"ct":1596708703630,"a_depth":3,"a":["apps","cf08a83c-2872-47fb-8886-6009ac1e19e5","b8fe3038-b9dc-4eb6-a141-8b80ed39748e"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1708696324815},{"id":"58c8b8e4-315d-4a8a-8ac3-e69d017640a6","v":"d5b6f6e1957afd68","previous":{"v":"a8d3f241bf8898dd"},"p":"0fb162f4-0f78-4c1e-aad2-43c27e6d98cb","f":{"id":"form","v":"149b228b7b0826ce","text":"Form"},"data":{"name":"Projektlink","tags":"","namedIcon":"far fa-globe","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Name][name]\n\n{model:link-share}","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2020-10-13T13:21:31+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2024-06-26T12:23:11+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1719404591904,"ct":1602595291034,"a_depth":3,"a":["apps","3fbe0efd-713a-457a-a34c-3a12aa19d6bb","0fb162f4-0f78-4c1e-aad2-43c27e6d98cb"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1719404568959},{"id":"a7e146ca-a568-4c84-a6ed-233a0ec98638","v":"initial","cloneOf":{"id":"286fef33-fdfd-4fcf-a5c6-bd5415bc1fc8","v":"fcb05ac4bb627d15","text":"Forms"},"originalCloneOf":{"id":"286fef33-fdfd-4fcf-a5c6-bd5415bc1fc8","v":"fcb05ac4bb627d15","text":"Forms"},"p":"fdd2f0b2-d628-48b9-a976-1acbf9f1de94","f":{"id":"form-folder","v":"cb7204e5b9d8da77","text":"Form Folder"},"data":{"name":"Forms","description":""},"locks":[],"created":{"at":"2022-06-22T08:40:27+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2022-06-22T08:40:27+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1655887227804,"ct":1655887227804,"a_depth":3,"a":["apps","83c76376-420e-4231-9275-d0fe2ab47c32","fdd2f0b2-d628-48b9-a976-1acbf9f1de94"],"a_forms":["folder","application-form","application-form"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1734525782719},{"id":"7628f42e-260d-49b9-a2d6-30cb0973c1b6","v":"dc21ac0e5789c1e5","previous":{"v":"initial"},"p":"f254ce25-42f1-4333-8ee7-23554bf746c1","f":{"id":"form","v":"e02c68c619719072","text":"Form"},"data":{"name":"Förderung","tags":"","namedIcon":"fa fa-abacus","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Förderprogramm][name] {currency}[Fördermittel][foerdermittel] {currency}[Investitionssumme][investitionssumme]\n\n{multiline auto-grow=true}\n[Anmerkungen][anmerkungen]\n\n[foerdermittel]: currency\n[investitionssumme]: currency","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2020-10-30T09:47:40+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2020-11-13T14:17:16+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1605277036130,"ct":1604051260343,"a_depth":3,"a":["apps","94a64d89-d204-4918-b147-d717914fb03e","f254ce25-42f1-4333-8ee7-23554bf746c1"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1712756665766},{"a":["apps","59edbdbc-2cab-426a-bb42-6e57c5158e4f","3be7e887-1bcd-4c3c-979f-b20a986c4c48"],"a_depth":3,"a_forms":["folder","application-form","form-folder"],"created":{"at":"2025-09-11T08:03:21+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1757577801376,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[],"commands":[],"defaults":"","definition":"[name]: = functions.name(projekt, beschreibung)\n\n[Typ][typ]\n[typ]: Select\n  - BUCHUNG: Buchung\n  - ABWESENHEIT: Abwesenheit\n\n[Projekt][projekt] {multiline auto-grow}[Beschreibung][beschreibung]\n[projekt]: /0b6a2b21-9425-466e-9e8d-57ec39cc95e1\n\n[Dauer][dauer]\n\n{datetime-range to=bis has-time=vonDateTime}[Zeitraum][von] \n{ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path default-value-command=49a26db7-f4f3-41fb-ad26-e45f40d7de83 prominent-pick-command=45f20576-a049-4643-8ce1-181c856990ac}[Person][person]\n\n[von]: datetime\n[vonDateTime]: switch\n[bis]: datetime\n[dauer]: duration\n[person]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n)","descendantCommands":[],"description":"","from":[],"functions":"name(projekt, beschreibung) {\n  return projekt?.text || beschreibung || ''\n}\n","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Buchung","namedIcon":"","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"relatedDocuments":[],"tags":"","theme":{"id":"","text":"","v":""},"to":[],"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"16a1fc2c7a734357"},"id":"0938d0ef-d2ba-4aa3-9752-ddcf5a0085dc","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2025-09-15T12:25:07+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"3be7e887-1bcd-4c3c-979f-b20a986c4c48","previous":{"v":"fab0bf6fa2aac1c2"},"stamps":[],"t":1757939107086,"v":"eba27b29552b3d5d"},{"a":["apps","0924db0f-7095-4b51-8966-bad1e45d68ec","a3b935e7-60bc-4996-9b18-668e4361067f"],"a_depth":3,"a_forms":["folder","application-form","form-folder"],"created":{"at":"2023-03-03T15:14:29+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1677856469977,"data":{"allowedChildrenForms":[],"commands":[],"definition":"[Titel][name] {140px|show if schlussgerechnet|readonly}[Schlussgerechnet][schlussgerechnet]\n[schlussgerechnet]: switch\n\n{multiline auto-grow=true}\n[Anmerkungen][anmerkungen]\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" file-name-field=\"name\"}\n[Unterlagen][unterlagen]\n[unterlagen]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df query-limit-command=2dc7a750-19f8-4663-ba6b-79080f2e1179 ui-filter-command=a74c2e9e-7ec2-44ac-bb03-cc5dddcf01a0}\n[Abrechnung geplant für][abrechnungFuer]\n[abrechnungFuer]: /ref (0-n)\n\n{readonly}[Angebote (Gesamtsumme)][angeboteGesamtsumme] {readonly}[Rechnungen (Gesamtsumme)][rechnungenGesamtsumme]\n\n{readonly}\n[Verbleibende Summe][verbleibendGesamtsumme]\n\n{children show-actions can-edit-command=9dc3f084-a420-471e-8ce9-8060a717da74 navigate disable-remove delete-on-remove show-templates template-location-form=6cfeb343-afc3-48ed-8f48-6f6262f1361b template-ancestor-index=1}\n[Angebote][angebote]\n[angebote]: /e9f42b0b-50dd-4e21-9152-02c89b73c6d7 (0-n)\n\n\n{contract-payment-planner show-actions can-edit-command=bb4dbf1c-1c71-4108-92cd-3c56ebfa7be8 disable-remove delete-on-remove navigate show-templates template-location-form=6cfeb343-afc3-48ed-8f48-6f6262f1361b template-ancestor-index=1}\n[Rechnungen][rechnungen]\n[rechnungen]: /54da686f-3f74-441b-b686-ed2b71dd35cc (0-n)\n\n{hidden}\n####### \n\n{readonly}\n[Angebote (Summen)][angeboteSummen]\n[angeboteSummen]: number (0-n)\n\n\n{readonly}\n[Rechnungen (Summen)][rechnungenSummen]\n[rechnungenSummen]: number (0-n)\n\n[angeboteGesamtsumme]: number = functions.calculateSum(angeboteSummen)\n[rechnungenGesamtsumme]: number = functions.calculateSum(rechnungenSummen)\n[verbleibendGesamtsumme]: number = functions.roundToDigits(angeboteGesamtsumme - rechnungenGesamtsumme)\n","description":"","functions":"calculateSum(numbers) {\n  let sum = 0\n  numbers.forEach(num => sum += num || 0)\n  return sum\n}\n\nroundToDigits(number, digits = 2) {\n  const power = Math.pow(10, digits)\n  return (Math.round(number * power) / power)\n}","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Vertrag","namedIcon":"fal fa-file-signature","namedIconColor":"","tags":"rd","theme":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"42ef1fd37c206edb"},"id":"fec93a80-86e6-4ccb-a473-14046bd4336e","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2026-03-03T11:01:41+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"p":"a3b935e7-60bc-4996-9b18-668e4361067f","previous":{"v":"76cc04052a36037a"},"stamps":[],"t":1772535701633,"v":"b343e524de2e368f"},{"a":["apps","0924db0f-7095-4b51-8966-bad1e45d68ec","a3b935e7-60bc-4996-9b18-668e4361067f"],"a_depth":3,"a_forms":["folder","application-form","form-folder"],"cloneOf":{"id":"6c501e3a-25c4-43c1-bd96-ec99333f5930","text":"Erfüllungs-Planung","v":"de4567d1149c5306"},"created":{"at":"2024-11-20T14:28:32+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1732112912742,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[],"commands":[],"defaults":"","definition":"{65}[Beschreibung][name] {20|readonly if fakturiert}[Datum][datum] {15|readonly if modalitaet}[Fakturiert][fakturiert]\n[datum]: date\n[fakturiert]: switch \"Wird automatisch gesetzt, sofern dieses Formular eine Modalität beeinhaltet und eine Zahlung für den entsprechenden %-Wert erstellt wird.\"\n\n{hidden if !modalitaet|readonly}[Modalität][modalitaet] {readonly if modalitaet}[% der Erfüllung][prozent]\n[prozent]: number","descendantCommands":[],"description":"","from":[],"functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"xErfüllungs-Planung","namedIcon":"","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"relatedDocuments":[],"tags":"","theme":{"id":"","text":"","v":""},"to":[],"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"230b4040236561b6"},"id":"d2984447-beb2-45c5-b150-0522eca855d7","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2024-11-20T15:22:44+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"6c501e3a-25c4-43c1-bd96-ec99333f5930","text":"Erfüllungs-Planung","v":"de4567d1149c5306"},"p":"a3b935e7-60bc-4996-9b18-668e4361067f","previous":{"v":"initial"},"stamps":[],"t":1732116164127,"v":"c208032df517210e"},{"a":["apps","94a64d89-d204-4918-b147-d717914fb03e","f254ce25-42f1-4333-8ee7-23554bf746c1"],"a_depth":3,"a_forms":["folder","application-form","form-folder"],"created":{"at":"2021-05-21T14:04:26+00:00","backedBy":null,"by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":null},"ct":1732102106561,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[],"commands":[],"defaults":"","definition":"{65}[Beschreibung][name] {20|readonly if fakturiert}[Datum][datum] {15|readonly if modalitaet}[Fakturiert][fakturiert]\n[datum]: date\n[fakturiert]: switch \"Wird automatisch gesetzt, sofern dieses Formular eine Modalität beeinhaltet und eine Zahlung für den entsprechenden %-Wert erstellt wird.\"\n\n{hidden if !modalitaet|readonly}[Modalität][modalitaet] {readonly if modalitaet}[% der Erfüllung][prozent]\n[prozent]: number","descendantCommands":[],"description":"","from":[],"functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Erfüllungs-Planung","namedIcon":"","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"relatedDocuments":[],"tags":"","theme":{"id":"","text":"","v":""},"to":[],"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"230b4040236561b6"},"id":"6c501e3a-25c4-43c1-bd96-ec99333f5930","inheritedLocks":[null,null,null,null],"locks":[],"meta":{"modified":{"at":"2024-11-20T11:28:26+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null}},"modified":{"at":"2021-05-21T14:04:26+00:00","backedBy":null,"by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":null},"p":"f254ce25-42f1-4333-8ee7-23554bf746c1","previous":{"f":{"id":"form","text":"Form","v":"e02c68c619719072"},"v":"initial"},"stamps":[],"t":1732102106561,"v":"de4567d1149c5306","dts":1732102127750},{"id":"f91389b0-5c78-498b-a6e3-27fc97ce898d","v":"initial","cloneOf":{"id":"f4544b6f-1909-49ac-bc8e-3f70db1125f1","v":"7ef4e8f1b7e28c60","text":"Instandhaltungsmaßnahme"},"originalCloneOf":{"id":"f4544b6f-1909-49ac-bc8e-3f70db1125f1","v":"7ef4e8f1b7e28c60","text":"Instandhaltungsmaßnahme"},"p":"05787127-986a-494f-a69e-8733c1176596","f":{"id":"form","v":"42ef1fd37c206edb","text":"Form"},"data":{"name":"Instandhaltungsmaßnahme","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Typ der Maßnahme][typ] {now}[Datum][datum]\n\n[typ]: Select\n  - STOERUNG: Funktionsstörung\n  - KONTROLLE: sicherheits- und messtechnische Kontrolle\n  - INSTANDHALTUNG: Instandhaltung\n  - MELDUNG: Vorkommnismeldung an Behörde und Hersteller\n\n[datum]: date\n\n\n{show if typ === 'STOERUNG'}\n## Funktionsstörung\n\n{multiline auto-grow=true}\n[Beschreibung][beschreibung]\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove=true}\n[Protokoll][protokoll]\n[protokoll]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n\n{show if typ === 'KONTROLLE'}\n## Kontrolle\n\n[Durchgeführt von][durchgefuehrtVon]\n\n{multiline auto-grow=true}\n[Beschreibung][beschreibung]\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove=true}\n[Protokoll][protokoll]\n[protokoll]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{show if typ === 'INSTANDHALTUNG'}\n## Instandhaltung\n\n{multiline auto-grow=true}\n[Beschreibung][beschreibung]\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove=true}\n[Protokoll][protokoll]\n[protokoll]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n\n{show if typ === 'MELDUNG'}\n## Vorkommnismeldung\n\n{multiline auto-grow=true}\n[Beschreibung][beschreibung]\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove=true}\n[Protokoll][protokoll]\n[protokoll]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)","functions":"","allowedChildrenForms":[],"commands":[],"description":"","theme":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2025-09-30T13:53:49+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2025-09-30T13:53:49+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1759240429565,"ct":1759240429557,"a_depth":3,"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[]},{"id":"7bd8d807-a0c2-49f4-90da-501e3a685ec5","v":"7c8cf34e62eaefce","previous":{"v":"a364224e50e6df4c"},"p":"efe6c460-ec94-41c6-994b-c27d08d74381","f":{"id":"form","v":"d497194b29933d26","text":"Form"},"data":{"name":"Wirksamkeitsüberprüfung","tags":"","allowUndefinedFields":false,"definition":"[Wann?][wann]\n[wann]: date\n\n[Ziel erreicht?][wirksamkeitZielErreicht]\n[wirksamkeitZielErreicht]: switch","functions":"","defaults":"","newTemplate":{"id":"","v":"","text":""},"newAction":{"id":"","v":"","text":""},"allowedChildrenForms":[],"commands":[],"namedIcon":"far fa-search","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"","v":"","text":""},"description":""},"locks":[],"created":{"at":"2023-06-16T10:20:28+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-06-16T10:47:45+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1686912465303,"ct":1686910828097,"a_depth":3,"a":["apps","075a56a2-3d34-402e-82ef-bd1fc7df456a","efe6c460-ec94-41c6-994b-c27d08d74381"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1686912374780},{"a":["apps","94a64d89-d204-4918-b147-d717914fb03e","f254ce25-42f1-4333-8ee7-23554bf746c1"],"a_depth":3,"a_forms":["folder","application-form","form-folder"],"created":{"at":"2026-03-12T12:35:41+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"ct":1773318941133,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[],"commands":[],"defaults":"","definition":"{ref handle-selected-readonly=true ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true creation-location-form=eccbf3d6-5fc6-473a-8b81-3049bac700e4 on-creation-run-action=29b33a65-4a12-4a7b-ae65-ad61c11cb989}\n[Kunde kommt von][empfehlungDurch]\n[empfehlungDurch]: /f8fd3176-4995-455f-a8a8-d2742a836816\n\n{percent}\n[Provision (%)][provision]\n[provision]: number\n\n{multiline auto-grow}\n[Anmerkungen][anmerkungen]","descendantCommands":[],"description":"","from":[],"functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Tippgeber","namedIcon":"far fa-hand-holding-circle-dollar","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"relatedDocuments":[],"tags":"","theme":{"id":"","text":"","v":""},"to":[],"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"410df4c62fb388dd"},"id":"da0f2915-48ea-45da-927b-640bb5173b96","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2026-03-16T13:37:21+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"p":"f254ce25-42f1-4333-8ee7-23554bf746c1","previous":{"v":"0a32be420c1fd72e"},"stamps":[],"t":1773668241961,"v":"0b95ca69e94d882a"},{"id":"c79a8171-022a-4c55-854c-a8119a7911ed","v":"577636265ec3ea6e","cloneOf":{"id":"55d8e8d9-b2a5-4414-aa80-95083c90a2ab","text":"Tierhalter","v":"06742336d8968644"},"originalCloneOf":{"id":"55d8e8d9-b2a5-4414-aa80-95083c90a2ab","text":"Tierhalter","v":"06742336d8968644"},"previous":{"v":"a1261d5ab1483f35"},"p":"169e87e0-0379-48e1-8c94-8fadac5969bb","f":{"id":"form","v":"4fa42fcff3786d1e","text":"Form"},"data":{"name":"Schlüssel","tags":"","namedIcon":"","namedIconColor":"#000000","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Name][name] {25|now}[Datum][datum]\n[datum]: date\n\n[Nummer des Schlüssels][schluesselNummer]\n\n[Status][status]\n[status]: select\n  - AUSGABE <icon=\"far fa-door-open\" iconcolor=\"red\">: Ausgabe erfolgt\n  - RUECKGABE <icon=\"far fa-door-closed\">: Rückgabe erfolgt\n\n[namedIcon]: text = status === 'AUSGABE' ? 'far fa-door-open' : 'far fa-door-closed'\n[namedIconColor]: text = status === 'AUSGABE' ? 'red' : ''\n\n{file}\n[Datei Ausgabe][dateiAusgabe]\n[dateiAusgabe]:file \"translate:personal:help:schluessel\"\n\n{file}\n[Datei Rückgabe][dateiRueckgabe]\n[dateiRueckgabe]:file \"translate:personal:help:schluessel\"\n\n\n{multiline} \n[Text][text]\n\n","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2021-11-09T15:51:02+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"modified":{"at":"2025-01-13T16:23:09+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1736785389484,"ct":1636473062525,"a_depth":3,"a":["apps","a590ce5b-28fc-4f85-9049-d006e1b8f880","169e87e0-0379-48e1-8c94-8fadac5969bb"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[]},{"id":"10c5491b-3aa8-452f-aa3b-230154258024","v":"84534204d8a0049f","previous":{"v":"initial"},"p":"3be7e887-1bcd-4c3c-979f-b20a986c4c48","f":{"id":"form","v":"42ef1fd37c206edb","text":"Form"},"data":{"name":"Unteraufgabe","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Erledigt][erledigt] [Titel][name]\n[erledigt]: switch","functions":"","allowedChildrenForms":[],"commands":[],"description":"","theme":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2023-02-24T15:31:35+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-02-24T15:32:14+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1677252734903,"ct":1677252695229,"a_depth":3,"a":["apps","59edbdbc-2cab-426a-bb42-6e57c5158e4f","3be7e887-1bcd-4c3c-979f-b20a986c4c48"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1727702221759},{"id":"125d3e08-d0c5-417c-b4fe-172bf5fade99","v":"03b546c273f48458","previous":{"v":"5d83e4d664ba543c"},"p":"f254ce25-42f1-4333-8ee7-23554bf746c1","f":{"id":"form","v":"d497194b29933d26","text":"Form"},"data":{"name":"Ansprechpartner mit Bestätigung","tags":"","allowUndefinedFields":false,"definition":"{hidden}\n[name]:=functions.name(ansprechpartner)\n\n{ref handle-selected-readonly=true ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true creation-location-form=eccbf3d6-5fc6-473a-8b81-3049bac700e4 on-creation-run-action=29b33a65-4a12-4a7b-ae65-ad61c11cb989}[Ansprechpartner][ansprechpartner] {30}[Identität bestätigt][identitaetBestaetigt]\n\n[ansprechpartner]: /f8fd3176-4995-455f-a8a8-d2742a836816\n[identitaetBestaetigt]: switch\n\n[namedIcon]: text = identitaetBestaetigt ? 'far fa-user-check' : 'far fa-user-times'\n[namedIconColor]: text = identitaetBestaetigt ? '' : 'red' ","functions":"name(ansprechpartner) {\n  if (!ansprechpartner) {\n    return ''\n  }\n\n  return ansprechpartner.text\n}","defaults":"","newTemplate":{"id":"","v":"","text":""},"newAction":{"id":"","v":"","text":""},"allowedChildrenForms":[],"commands":[],"namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"","v":"","text":""},"description":""},"locks":[],"created":{"at":"2020-12-18T14:58:46+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2024-04-10T13:35:40+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1712756140305,"ct":1712755257633,"a_depth":3,"a":["apps","94a64d89-d204-4918-b147-d717914fb03e","f254ce25-42f1-4333-8ee7-23554bf746c1"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1733392964008},{"id":"90877d25-bbae-421e-9ea7-0631dcbf11c2","v":"965d2823dbe13e9b","previous":{"v":"0d4743d88ad93a92"},"p":"79718664-ed22-4b52-9c10-037881df3578","f":{"id":"form","v":"dcc8032a347c59c7","text":"Form"},"data":{"name":"Aufgabe","tags":"energieberater","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"{line}\n[Titel][name] {30}[Bis][bis] {30}[Erledigt][erledigt]\n\n{editor}[Beschreibung][beschreibung]\n\n[erledigt]: switch\n[bis]: Date\n\n{attachment form-id=\"6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2\" file-field=\"datei\" name-field=\"name\" delete-on-remove=true}\n[Anhänge][anhaenge]\n[anhaenge]: /6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2 (0-n)\n\n{comments}\n","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2020-02-25T15:28:18+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2020-10-13T10:18:59+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1602584339468,"ct":1602584339468,"a_depth":3,"a":["apps","599db2de-4e07-4722-98bd-7f42d498b352","79718664-ed22-4b52-9c10-037881df3578"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1630501941518},{"id":"8b4121d2-1838-46b6-833f-43f6ded78011","v":"9b2bae30baa6b203","previous":{"v":"63eb7bdb565f12e4"},"p":"06b46bf8-ceeb-4fd4-bf6a-4a3da0cab4ad","f":{"id":"form","v":"42ef1fd37c206edb","text":"Form"},"data":{"name":"Mieteingang","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"\n{readonly}[Gebäude][gebaeude] {readonly}[Einheit][einheit] {readonly}[Vertrag][vertrag]\n[gebaeude]: /b433eabd-abe6-4564-940f-a918f71037fb\n[einheit]: /7105a939-989c-4154-96e8-44f17f556b2a (0-n)\n[vertrag]: /b4b13fc6-7d06-4832-93b0-cd27405e269d\n\n{readonly}\n[Mieter][mieter]\n[mieter]: /3c0a7011-6a65-4ed3-98e1-06e4f5a314d8 (0-n)\n\n[Bezahlt][bezahlt] {readonly}[Fälligkeits-Datum][datum]\n[bezahlt]: switch\n[datum]: date\n\n[Notizen][notizen]\n\n\n{readonly|number}[Kaltmiete][kaltmiete] {readonly|number}[Nebenkosten (Vorrauszahlung)][nebenkosten] {readonly|number}[Mehrwertsteuer][mehrwertsteuer] {readonly}[Summe][summe]\n\n{number}[Tatsächliche Zahlung][zahlung]\n[zahlung]: number\n\n[kaltmiete]: number\n[nebenkosten]: number\n[mehrwertsteuer]: number\n\n[summe]: number = functions.sum(kaltmiete, nebenkosten, mehrwertsteuer)\n","functions":"sum(kaltmiete, nebenkosten, mehrwertsteuer){\n  return (kaltmiete || 0) + (nebenkosten || 0) + (mehrwertsteuer || 0)\n}\n\nbezahlt(summe, zahlung) {\n  return zahlung >= summe\n}  ","allowedChildrenForms":[],"commands":[],"description":"","theme":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2022-11-18T09:57:50+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-02-01T13:05:33+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1675256733269,"ct":1668765470664,"a_depth":3,"a":["apps","253003a3-5cbd-4d84-bfb2-38f60a741fb5","06b46bf8-ceeb-4fd4-bf6a-4a3da0cab4ad"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1676374513200},{"id":"e6a96b1c-797f-4071-8568-dd7b1d0fdcfd","v":"initial","p":"dbd0bd68-3479-4032-9303-9d51615c27a7","f":{"id":"form","v":"6cd56a1170fa68e3","text":"Form"},"data":{"name":"Received Delivery Item","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Number of items][count] \r\n[count]: Number\r\n\r\n[Item][item]\r\n[item]: /5931d734-987a-483f-b948-b1b31dedae74\r\n\r\n[Manufacturing Date][itemManufacturingDate]\r\n[itemManufacturingDate]: Date\r\n\r\n{multiline}\r\n[Comment][comment]\r\n","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2021-11-02T09:38:36+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-11-02T09:38:36+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1635845916380,"ct":1635845916380,"a_depth":3,"a":["apps","781ff5de-69db-49dc-99f0-f328b308cd7d","dbd0bd68-3479-4032-9303-9d51615c27a7"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1635845916546},{"id":"5fbd94f1-09fb-4c05-bcaf-3e35ce71fb9d","v":"initial","p":"dbd0bd68-3479-4032-9303-9d51615c27a7","f":{"id":"form","v":"b0b1f4808edd7503","text":"Form"},"data":{"name":"Ordered Item","tags":"","definition":"[Item][item]\r\n[item]: /5931d734-987a-483f-b948-b1b31dedae74\r\n\r\n[Item No/ean][itemNo] [Amount][amount]\r\n\r\n[amount]: Number\r\n\r\n{currency unit=EUR}\r\n[Total Price][price]\r\n[price]: Number\r\n\r\n{multiline}\r\n[Comment][comment]","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2021-11-02T09:38:35+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-11-02T09:38:35+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1635845915730,"ct":1635845915730,"a_depth":3,"a":["apps","781ff5de-69db-49dc-99f0-f328b308cd7d","dbd0bd68-3479-4032-9303-9d51615c27a7"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1635845915781},{"id":"880453bb-d8f7-452d-ab65-b13e4d291a44","v":"08f165ee93f0a48a","previous":{"v":"20be48d589c0a5ba"},"p":"83e0eafe-40b0-4a4d-a4bf-88940f2d098b","f":{"id":"form","v":"4fa42fcff3786d1e","text":"Form"},"data":{"name":"Vertrag","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Vertragsname][name]\r\n\r\n{ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true}\r\n[Bizpin Produkt][produkt]\r\n[produkt]: /9bcbb6e8-5d66-4c3b-9132-8482e82e4594\r\n\r\n[Anzahl der Lizenzen][anzahlLizenzen]\r\n[anzahlLizenzen]: number\r\n\r\n\r\n{visible if (zahlungsmodalitaet === 'MONATLICH' || zahlungsmodalitaet === 'JAEHRLICH') }\r\n[Vertragsbeginn][vertragsbeginn]\r\n[vertragsbeginn]: date\r\n\r\n[Zahlungsmodalität][zahlungsmodalitaet]\r\n[zahlungsmodalitaet]: select\r\n  - \r\n  - EINMALIG: Einmalig\r\n  - EINMALIGUNDMONATLICH: Einmalig + Monatlich\r\n  - EINMALIGUNDJAEHRLICH: Einmalig + Jährlich\r\n  - MONATLICH: Monatlich\r\n  - JAEHRLICH: Jährlich\r\n\r\n{hidden if zahlungsmodalitaet === '' || zahlungsmodalitaet === 'JAEHRLICH' || zahlungsmodalitaet === 'MONATLICH'}[Betrag einmalig (netto)][betragEinmalig] {hidden if zahlungsmodalitaet === 'EINMALIG' || zahlungsmodalitaet === ''}[Betrag periodisch (netto)][betragPeriodisch]\r\n\r\n{attachment form-id=\"6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2\" file-field=\"datei\" name-field=\"name\" delete-on-remove=true}\r\n[Verträge][vertraege]\r\n[vertraege]: /6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2 (0-n)\r\n\r\n","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2020-05-08T08:52:26+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2020-06-09T11:30:00+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1591702200674,"ct":1588927946547,"a_depth":3,"a":["apps","9c1db9f8-e61a-46ef-9fb2-ca409e980f45","83e0eafe-40b0-4a4d-a4bf-88940f2d098b"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1588927946569},{"id":"a7afe18b-1688-4e33-a5a9-2f5369708f72","v":"initial","p":"dbd0bd68-3479-4032-9303-9d51615c27a7","f":{"id":"form","v":"b0b1f4808edd7503","text":"Form"},"data":{"name":"Picture","tags":"","definition":"[Picture][picture]\r\n[picture]: image\r\n\r\n[Name][name]\r\n","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2021-11-02T09:38:35+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-11-02T09:38:35+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1635845915281,"ct":1635845915280,"a_depth":3,"a":["apps","781ff5de-69db-49dc-99f0-f328b308cd7d","dbd0bd68-3479-4032-9303-9d51615c27a7"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1635845915340},{"id":"d16936c1-7ccc-40f1-b526-d2d9ce37ebd2","v":"f1e2d32bdba25580","previous":{"v":"02424536dc760065"},"p":"f254ce25-42f1-4333-8ee7-23554bf746c1","f":{"id":"form","v":"cc65f983157bf1fd","text":"Form"},"data":{"name":"Teambesprechung","tags":"","namedIcon":"fa fa-users-class","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Titel][name] {30|now control=datetime}[Datum][date]\n[date]: date\n\n{editor}\n[Protokoll][protocol]\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove=true}\n[Anhänge][anhaenge]\n[anhaenge]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2019-08-16T08:46:14+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2024-04-03T11:49:46+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1712144986931,"ct":1631798132116,"a_depth":3,"a":["apps","94a64d89-d204-4918-b147-d717914fb03e","f254ce25-42f1-4333-8ee7-23554bf746c1"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1624973583174},{"id":"8d5743bf-228b-4214-8ee3-8089ab480678","v":"initial","p":"fc09d59c-bdef-4b1e-854e-d907bc11b295","f":{"id":"form","v":"4fa42fcff3786d1e","text":"Form"},"data":{"name":"Interaktion","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"{hidden}\n[Name][name]\n\n[Auslöser][ausloeser] {now control=datetime}[Datum][datum]\n[ausloeser]: Select\n  - INTERN: Intern\n  - KUNDE: Kunde \n[datum]: date\n\n{editor}\n[Beschreibung][beschreibung]","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2020-05-08T08:51:12+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2020-05-08T08:51:12+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1588927872152,"ct":1588927872152,"a_depth":3,"a":["apps","f93ac233-7aa7-4561-a3b3-d8ebda0ee514","fc09d59c-bdef-4b1e-854e-d907bc11b295"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1588927872221},{"id":"d739ff5f-be4e-4eab-b466-c280d2819463","v":"initial","p":"dbd0bd68-3479-4032-9303-9d51615c27a7","f":{"id":"form","v":"a241685be918720e","text":"Form"},"data":{"name":"Component Serial Documentation","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Name][name] [Serial][serial] {hidden}[Required][required]\r\n\r\n[Photo][photo] \r\n\r\n{editor}\r\n[Comment][comment]\r\n\r\n[photo]: Image\r\n[required]: Switch\r\n","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2021-11-02T09:38:38+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-11-02T09:38:38+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1635845918370,"ct":1635845918370,"a_depth":3,"a":["apps","781ff5de-69db-49dc-99f0-f328b308cd7d","dbd0bd68-3479-4032-9303-9d51615c27a7"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1635845918430},{"id":"76ccd02e-b3f5-4642-991c-d908db66aa6b","v":"1ca111eacb24fa18","previous":{"v":"5ecf80271a7bf318"},"p":"e7de598c-6f5a-4ab4-a33b-213ca86e489d","f":{"id":"form","v":"d497194b29933d26","text":"Form"},"data":{"name":"Konstruktion: Insert","tags":"experimental-rendering","allowUndefinedFields":false,"definition":"{ae:select}\n[in Formschale][inMouldHalf]\n[inMouldHalf]: Select \"in mould half\"\n  - NONE: \n  - FS01: FS01\n  - FS02: FS02\n  - FS03: FS03\n  - FS04: FS04\n  - FS05: FS05\n  - FS06: FS06\n  - FS07: FS07\n  - FS08: FS08\n  - FS09: FS09\n  - FS10: FS10\n\n{ae:select}\n[Größe][size]\n[size]: Select \"size\"\n  - NONE: \n  - M3: M3\n  - M4: M4\n  - M5: M5\n  - M6: M6\n  - M8: M8\n  - M10: M10\n  - M12: M12\n\n[Position][position] [Spanner (clamp)][clamp]\n\n{ae:select}\n[position]: Select \"position\"\n  - NONE: \n  - FIX <help=\"fix\">: fest \n  - RETRACTABLE <help=\"retractable\">: zurückziehbar\n\n{ae:select}\n[clamp]: Select\n  - NONE: \n  - AMF_6844_2: AMF 6844-2\n  - TUENKERS_T6_04: Tünkers T6-04\n  - DESTACO_603_M: Destaco 603-M\n  - DESTACO_604_M_501: Destaco 604-MM-501\n  - DESTACO_607_M: Destaco 607-M\n  - DESTACO_630_M: Destaco 630-M\n  - FEDERINSERTHALTER: Federinserthalter\n  - HELIXSPANNER: Helixspanner\n\n[Anzahl (number)][number]\n[number]: number\n","functions":"","defaults":"","newTemplate":{"id":"","v":"","text":""},"newAction":{"id":"","v":"","text":""},"allowedChildrenForms":[],"commands":[],"namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"","v":"","text":""},"description":""},"locks":[],"created":{"at":"2022-01-18T11:03:50+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"modified":{"at":"2024-07-03T17:50:15+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720021815821,"ct":1718866006693,"a_depth":3,"a":["apps","deeef973-ce03-4557-bf75-75a059001767","e7de598c-6f5a-4ab4-a33b-213ca86e489d"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1689766779064},{"id":"e10a8072-024c-44a7-80e3-4cd75c6ec1ea","v":"e35af72435a25fe0","previous":{"v":"2239351745f8f035"},"p":"f254ce25-42f1-4333-8ee7-23554bf746c1","f":{"id":"form","v":"e02c68c619719072","text":"Form"},"data":{"name":"Zahlung","tags":"","namedIcon":"fa fa-money-bill","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"{25}[Titel][name] {25|now}[Datum][datum] {25}[Bezahlt][abgeschlossen] {25|show if abgeschlossen|now}[Bezahlt (Datum)][abgeschlossenDatum]\n\n  \n[datum]: date\n[abgeschlossen]: switch \"Projektleiter erhalten eine Benachrichtigung beim Setzen dieses Feldes\"\n[abgeschlossenDatum]: date\n\n{readonly}[Modalität][modalitaet] {readonly|hidden if modalitaetWert === 0}[Modalitäts Wert][modalitaetWert]\n[modalitaetWert]: number\n\n{readonly if modalitaetWert !== 0|number step=0.01}[Summe][summe]\n[summe]: number\n\n{attachment form-id=\"6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2\" file-field=\"datei\" name-field=\"name\" delete-on-remove=true}\n[Anhänge][anhaenge]\n[anhaenge]: /6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2 (0-n)","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2020-07-22T17:31:14+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2023-04-12T08:38:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1681288712937,"ct":1621605909483,"a_depth":3,"a":["apps","94a64d89-d204-4918-b147-d717914fb03e","f254ce25-42f1-4333-8ee7-23554bf746c1"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1647955687980},{"id":"1a6436b3-2e26-41e1-83b3-8aa65ff60d41","v":"4e744603fbde7335","p":"83e0eafe-40b0-4a4d-a4bf-88940f2d098b","f":{"id":"form","v":"dcc8032a347c59c7","text":"Form"},"data":{"name":"Ansprechpartner","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Anrede][anrede][Vorname][vorname][Nachname][nachname][Position][position]  \r\n[E-Mail][eMail][Telefon][telefon][Fax][fax][Mobil][mobil]\r\n\r\n[anrede]: select\r\n  - NONE: \r\n  - MALE: Herr\r\n  - FEMALE: Frau\r\n\r\n{hidden}\r\n[Name][name]\r\n[name]: =functions.name(vorname,nachname)","functions":"name(vorname, nachname) {\r\n  if (!vorname && !nachname) {\r\n    return ''\r\n  }\r\n\r\n  if (vorname) {\r\n    return `${vorname} ${nachname}`\r\n  }\r\n\r\n  return nachname\r\n}","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2019-04-12T14:29:23+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2020-10-13T10:18:59+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1602584339261,"ct":1602584339261,"a_depth":3,"a":["apps","9c1db9f8-e61a-46ef-9fb2-ca409e980f45","83e0eafe-40b0-4a4d-a4bf-88940f2d098b"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"previous":{"v":"initial","f":{"id":"form","v":"d38c7ea672c72204","text":"Form"}},"dts":1544178041443},{"id":"d886b1d3-42a8-47d7-aa6a-4be2ad2a4357","v":"d0652c046a7a37d1","p":"e7de598c-6f5a-4ab4-a33b-213ca86e489d","f":{"id":"form","v":"29610695588f5980","text":"Form"},"data":{"name":"Gießerei: Formschale","tags":"experimental-rendering","allowUndefinedFields":false,"definition":"### Informationen zur Formschale\n\n{ae:select}\n[Formschale][mould]\n[mould]: Select\n  - NONE: \n  - FS01: FS01\n  - FS02: FS02\n  - FS03: FS03\n  - FS04: FS04\n  - FS05: FS05\n  - FS06: FS06\n  - FS07: FS07\n  - FS08: FS08\n  - FS09: FS09\n  - FS10: FS10\n\n[Bearbeitungszugabe am Flansch][treatmentAdditionToFlange] [Stahlstife & Graphitstife][steelAndGraphitePins] [scharfe Kante][sharpEdges]\n\n[treatmentAdditionToFlange]: switch\n[steelAndGraphitePins]: switch\n[sharpEdges]: switch\n\n{collapsible}{show if treatmentAdditionToFlange}\n### 1. Informationen zu der Bearbeitungszugabe am Flansch\n\n{attachment always-show-title=true size=400px form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove=true}\n[Bearbeitungszugabe am Flansch][treatmentAdditionToFlangeImages]\n[treatmentAdditionToFlangeImages]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{collapsible}{show if steelAndGraphitePins}\n### 2. Informationen zu den Stahlstiften & Graphitstiften\n\n{attachment always-show-title=true size=400px form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove=true}\n[Stahlstifte & Graphitstifte][steelAndGraphitePinsImages]\n[steelAndGraphitePinsImages]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{collapsible}{show if sharpEdges}\n### 3. Informationen zu den scharfen Kanten\n\n{attachment always-show-title=true size=400px form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove=true}\n[Scharfe Kanten][sharpEdgesImages]\n[sharpEdgesImages]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)","functions":"","defaults":"","newTemplate":{"id":"","v":"","text":""},"newAction":{"id":"","v":"","text":""},"allowedChildrenForms":[],"commands":[],"descendantCommands":[],"namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"","v":"","text":""},"description":""},"locks":[],"created":{"at":"2022-01-27T14:08:24+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"modified":{"at":"2024-07-08T16:23:00+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720448583383,"ct":1720448583383,"a_depth":3,"a":["apps","deeef973-ce03-4557-bf75-75a059001767","e7de598c-6f5a-4ab4-a33b-213ca86e489d"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"previous":{"v":"f0e65179b1405894","f":{"id":"form","v":"d497194b29933d26","text":"Form"}},"meta":{"modified":{"at":"2024-07-08T16:23:03+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}},"dts":1689766814935},{"id":"bdd70340-1c59-4f92-8249-caa534e1cb15","v":"00b5534dae2ab55c","previous":{"v":"1b4b5b72e8ba31b1"},"p":"e7de598c-6f5a-4ab4-a33b-213ca86e489d","f":{"id":"form","v":"d497194b29933d26","text":"Form"},"data":{"name":"Konstruktion: Rahmen","tags":"experimental-rendering","allowUndefinedFields":false,"definition":"{ae:select}\n[Formschale][mouldHalf]\n[mouldHalf]: Select \"mould half\"\n  - NONE: \n  - FS01: FS01\n  - FS02: FS02\n  - FS03: FS03\n  - FS04: FS04\n  - FS05: FS05\n  - FS06: FS06\n  - FS07: FS07\n  - FS08: FS08\n\n{ae:select}\n[Rahmenart][frameSpecification]\n[frameSpecification]: Select \"frame specification\"\n  - NONE:\n  - STEEL_TUBING_40x40x5 <help=\"steel tubing\">: Stahlrohr 40x40x5\n  - STEEL_TUBING_40x40x3 <help=\"steel tubing\">: Stahlrohr 40x40x3\n  - STEEL_TUBING_40x25x3 <help=\"steel tubing\">: Stahlrohr 40x25x3\n  - STEEL_TUBING_30x30x5 <help=\"steel tubing\">: Stahlrohr 30x30x5\n  - STEEL_TUBING_30x30x3 <help=\"steel tubing\">: Stahlrohr 30x30x3\n  - LASER_CUT_FRAME <help=\"laser-cut-frame\">: Brennrahmen\n  - ALUMINIUM_TUBING <help=\"aluminium tubing\">: Alurohrrahmen\n  - SPACE_FRAME: Spaceframe\n  - LITE_FRAME: Lite-Frame\n  - NO_FRAME <help=\"none\">: Keiner\n\n[Federgelagert][springloaded]\n[springloaded]: switch","functions":"","defaults":"","newTemplate":{"id":"","v":"","text":""},"newAction":{"id":"","v":"","text":""},"allowedChildrenForms":[],"commands":[],"namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"","v":"","text":""},"description":""},"locks":[],"created":{"at":"2022-01-18T12:44:05+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"modified":{"at":"2024-07-04T08:11:35+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720073495187,"ct":1718866006701,"a_depth":3,"a":["apps","deeef973-ce03-4557-bf75-75a059001767","e7de598c-6f5a-4ab4-a33b-213ca86e489d"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1687965399167},{"id":"03d12b14-6ff2-45ea-877e-6b326b319b86","v":"13c35a51b7c987a7","previous":{"v":"77552df3433b6005"},"p":"f254ce25-42f1-4333-8ee7-23554bf746c1","f":{"id":"form","v":"42ef1fd37c206edb","text":"Form"},"data":{"name":"WIP.Protokoll der Projektübergabe","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"# After Quali\n\n## Projekt\n\n[Projektname][projektName]\n[projektName]: text <required>\n\n[Bezeichnung des BVH in der Planer & Bauherrn Bezeichnung][bezeichnungBauvorhaben]\n\n<!-- Automatisch auf: \"in Bearbeitung\" setzen -->\n\n{readonly}\n[Status][status]\n[status]: Select <required>\n  - NONE:\n  - ACQUISITION: Akquise\n  - DECLINED: Abgelehnt\n  - PROGRESS: In Bearbeitung (in der Planungsphase)\n  - ONSPOTCHECKS: In Ausführung (vor Ort Kontrollen)\n  - DONE: Abgeschlossen\n  - DORMANT: Ruhend\n\n\n{ref handle-selected-readonly=true ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true creation-location-form=eccbf3d6-5fc6-473a-8b81-3049bac700e4 on-creation-run-action=29b33a65-4a12-4a7b-ae65-ad61c11cb989}\n[Bauherr][bauherr] \n[bauherr]: /f8fd3176-4995-455f-a8a8-d2742a836816 <required>\n\n{ref handle-selected-readonly=true ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true creation-location-form=eccbf3d6-5fc6-473a-8b81-3049bac700e4 on-creation-run-action=29b33a65-4a12-4a7b-ae65-ad61c11cb989}\n[Ansprechpartner][ansprechpartner]\n[ansprechpartner]: /f8fd3176-4995-455f-a8a8-d2742a836816 (0-n) <required>\n\n{ref handle-selected-readonly=true ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true creation-location-form=eccbf3d6-5fc6-473a-8b81-3049bac700e4 on-creation-run-action=29b33a65-4a12-4a7b-ae65-ad61c11cb989}\n[Beteiligte][beteiligte]\n[beteiligte]: /f8fd3176-4995-455f-a8a8-d2742a836816 (0-n)\n\n{children}[Antragsteller][antragsteller]\n[antragsteller]: /125d3e08-d0c5-417c-b4fe-172bf5fade99 (0-n)\n \n[Kunde kommt von][kundeKommtVonTyp]\n[kundeKommtVonTyp]: Select <required>\n  - NONE: \n  - INTERNET: Internet\n  - WERBUNG: Werbung\n  - YOUTUBE: Youtube\n  - SOZIALES_UMFELD: Empfehlung durch Freunde oder Bekannte\n  - KUNDE: Empfehlung durch einen Kunden von uns\n\n{show if kundeKommtVonTyp === 'KUNDE'|ref handle-selected-readonly=true ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true creation-location-form=eccbf3d6-5fc6-473a-8b81-3049bac700e4 on-creation-run-action=29b33a65-4a12-4a7b-ae65-ad61c11cb989}\n[Kunde kommt von (Kontakt)][empfehlungDurch]\n[empfehlungDurch]: /f8fd3176-4995-455f-a8a8-d2742a836816 (0-n) <required>\n\n{multiline auto-grow=true rows=3}\n[Kundenspezifische Besonderheiten][kundenspezifischeBesonderheiten]\n[kundenspezifischeBesonderheiten]: text  <required> \"Was müssen wir bei diesem BVH machen? welche Eckdaten gibt es bereits?\"\n\n## Baustelle\n\n[Baubeginn/Zwischenordner][baubeginn] [Fertigstellung/Abschlussordner][fertigstellung]\n[baubeginn]: date\n[fertigstellung]: date\n\n[Baustellen Adresse][baustellenAdresse]\n[baustellenAdresse]: address <required>\n\n{multiline auto-grow=true rows=5}\n[Beschreibung][beschreibung]\n[beschreibung]: text <required>\n\n[Wohneinheiten][wohneinheiten] [Heizungsart][heizungsart] [KfW][kfwKennziffer] [Nachweis][nachweis]\n[wohneinheiten]: text <required>\n\n\n[nachweis]: Select\n  - NONE: \n  - ENEV: EnEV\n  - GEG: GEG\n\n## Dateien\n\n{attachment form-id=6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2 file-field=datei name-field=name delete-on-remove=true list=true}\n[Dateien][dateien]\n[dateien]: /6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2 (0-n)\n\n# After Sales\n\n[Priorität][prioritaet]\n[prioritaet]: Select\n  - NONE:\n  - LOW: Niedrig\n  - MEDIUM: Mittel\n  - HIGH: Hoch\n \n{ref handle-selected-readonly=true ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true}[Projektleiter (Junior)][projektleiter] {ref handle-selected-readonly=true ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true}[Projektleiter (Senior)][leitenderProjektleiter]\n{ref handle-selected-readonly=true ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true}[Wärmeschutz: Projektleiter (Junior)][projektleiterWaermeschutz] {ref handle-selected-readonly=true ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true}[Wärmeschutz: Projektleiter (Senior)][leitenderProjektleiterWaermeschutz]\n{ref handle-selected-readonly=true ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true}[Schallschutz: Projektleiter (Junior)][projektleiterSchallschutz] {ref handle-selected-readonly=true ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true}[Schallschutz: Projektleiter (Senior)][leitenderProjektleiterSchallschutz]\n{ref handle-selected-readonly=true ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true}[Brandschutz: Projektleiter (Junior)][projektleiterBrandschutz] {ref handle-selected-readonly=true ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true}[Brandschutz: Projektleiter (Senior)][leitenderProjektleiterBrandschutz]\n\n[projektleiter]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 <required> \"Der verantwortliche Mitarbeiter erhält verschiedene Projekt-Benachrichtigungen, beispielsweise wenn ein Kunde Dateien im Dokumenten Share hochlädt\" \n[leitenderProjektleiter]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 <required> \"Ein hier verknüpfter Mitarbeiter ist rein für organisatorische Zwecke relevant\" \n\n[projektleiterWaermeschutz]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 \"Ein hier verknüpfter Mitarbeiter ist rein für organisatorische Zwecke relevant\" \n[leitenderProjektleiterWaermeschutz]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 \"Ein hier verknüpfter Mitarbeiter ist rein für organisatorische Zwecke relevant\"\n\n[projektleiterSchallschutz]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 \"Ein hier verknüpfter Mitarbeiter ist rein für organisatorische Zwecke relevant\" \n[leitenderProjektleiterSchallschutz]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 \"Ein hier verknüpfter Mitarbeiter ist rein für organisatorische Zwecke relevant\"\n\n[projektleiterBrandschutz]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 \"Ein hier verknüpfter Mitarbeiter ist rein für organisatorische Zwecke relevant\" \n[leitenderProjektleiterBrandschutz]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 \"Ein hier verknüpfter Mitarbeiter ist rein für organisatorische Zwecke relevant\"\n\n\n<!-- In den Kontakten der Kunden müssen wir den Geburtstag noch hinzufügen <required> -->\n\n\n{ref handle-selected-readonly=true ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true}\n[Closer][closer]\n[closer]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n) <required>\n\n\n## Dokumenten Share\n\n[Passwort Kunde][passwortKunde]\n[passwortKunde]: text  <required> \"Geburtstag des Kunden\"\n\n{ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df}\n[Zu benachrichtigende Kontakte][empfaenger]\n[empfaenger]: /f8fd3176-4995-455f-a8a8-d2742a836816 (0-n) <required> \"Benachrichtigungen werden gesendet bei neuen Dateien in: `Vertrag`, `Förderanträge`, `Berechnungen`, `Berichte`.\"\n\n> Dokumente Kunde => Formulare die direkt abgelegt generriert werden sollen\n> TODO?\n\n{attachment form-id=6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2 file-field=datei name-field=name delete-on-remove=true list=true}\n[Vertrag, Angebot, Auftragsbestätigung, Rechnung][dateienVertrag]\n[dateienVertrag]: /6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2 (0-n) <required>\n\n[Passwort Baustelle][passwortBaustelle]\n[passwortBaustelle]: text \"PLZ der Baustelle\"\n\n{ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df}\n[Zu benachrichtigende Kontakte][empfaengerBaustelle]\n[empfaengerBaustelle]: /f8fd3176-4995-455f-a8a8-d2742a836816 (0-n) \"Benachrichtigungen werden gesendet bei neuen Dateien in: `Berechnungen`\"\n\n## Vertrag\n\n[Titel][vertragName]\n[vertragName]: text <required>\n\n{multiline auto-grow=true}\n[Anmerkungen][anmerkungen]\n[anmerkungen]: text <required>\n\n### Angebot\n\n{number step=0.01}\n[Angebotssumme (netto)][summeAngebot]\n\n{attachment form-id=\"6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2\" file-field=\"datei\" name-field=\"name\" delete-on-remove=true}\n[Angebote][anhaengeAngebot]\n[anhaengeAngebot]: /6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2 (0-n)\n\n### Planung\n\n> TODO?\n\n{readonly|children}\n[Planungen][planungen]\n[planungen]: /6c501e3a-25c4-43c1-bd96-ec99333f5930 (0-n) \"Die Planungen werden immer **gelöscht** und neu erstellt sobald sich die `Zahlungsmodalität` ändert.\"\n\n### Auftrag\n\n{number step=0.01}[Beauftrage Summe (netto)][summeAuftrag] [Zahlungsmodalität (netto)][zahlungsmodalitaet]\n\n{attachment form-id=\"6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2\" file-field=\"datei\" name-field=\"name\" delete-on-remove=true}\n[Anhänge (Auftrag mit Unterschrift)][anhaenge]\n[anhaenge]: /6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2 (0-n)  <required>\n\n[summeAngebot]: number  <required>\n[summeAuftrag]: number  <required>\n[zahlungsmodalitaet]: Select  <required>\n  - 60-30-10: 60% / 30% / 10%\n  - 90-10: 90% / 10%\n  - 70-30: 70% / 30%\n  - ZEIT: Leistungsbezogen\n\n## Fragenbögen\n\n{children only-template=true clone-template-with-elevated-rights=true template-location-form=089eb68f-d2ec-4e30-a3bb-6549d72932ec template-location-search-limit=2 delete-on-remove=true confirm-remove=true inline inline-layout=b49f14a7-aab4-401e-9958-cad026b2eec3}\n[Fragen für alle BVH][fragenbogenAlleBauvorhaben]\n[fragenbogenAlleBauvorhaben]: /f7583ba1-ddbc-4c46-b1fe-f7bb326fded6\n\n{children only-template=true clone-template-with-elevated-rights=true template-location-form=089eb68f-d2ec-4e30-a3bb-6549d72932ec template-location-search-limit=2 delete-on-remove=true confirm-remove=true inline inline-layout=b49f14a7-aab4-401e-9958-cad026b2eec3}\n[Haben wir Wärmeschutz beauftragt dann diese Fragen][fragenbogenWaermeschutz]\n[fragenbogenWaermeschutz]: /73729d8f-7a1f-429a-a198-13efa62ee116\n\n{children only-template=true clone-template-with-elevated-rights=true template-location-form=089eb68f-d2ec-4e30-a3bb-6549d72932ec template-location-search-limit=2 delete-on-remove=true confirm-remove=true inline inline-layout=b49f14a7-aab4-401e-9958-cad026b2eec3}\n[Haben wir Fördermittel beauftragt dann diese Fragen][fragenbogenFoedermittel]\n[fragenbogenFoedermittel]: /55e4b86c-4ca0-4f39-878a-a97ba0437e40\n\n{children only-template=true clone-template-with-elevated-rights=true template-location-form=089eb68f-d2ec-4e30-a3bb-6549d72932ec template-location-search-limit=2 delete-on-remove=true confirm-remove=true inline inline-layout=b49f14a7-aab4-401e-9958-cad026b2eec3}\n[Haben wir Schallschutz beauftragt dann diese Fragen][fragenbogenSchallschutz]\n[fragenbogenSchallschutz]: /177f2216-811f-4fdf-bc4a-c2cfe18cffd7\n\n{children only-template=true clone-template-with-elevated-rights=true template-location-form=089eb68f-d2ec-4e30-a3bb-6549d72932ec template-location-search-limit=2 delete-on-remove=true confirm-remove=true inline inline-layout=b49f14a7-aab4-401e-9958-cad026b2eec3}\n[Haben wir Brandschutz beauftragt dann diese Fragen][fragenbogenBrandschutz]\n[fragenbogenBrandschutz]: /b6e0328c-73b0-4bb9-85b4-d9c54b8c4745\n","functions":"","allowedChildrenForms":[],"commands":[],"description":"","theme":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2022-11-07T15:15:09+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2024-03-22T11:42:53+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1711107773829,"ct":1667834109969,"a_depth":3,"a":["apps","94a64d89-d204-4918-b147-d717914fb03e","f254ce25-42f1-4333-8ee7-23554bf746c1"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1668089395340},{"id":"df424bea-0f38-49bf-b18a-6d6fb36b8d0b","v":"ced87d234016f2e8","previous":{"v":"4f32e910fab9fa8d"},"p":"e7de598c-6f5a-4ab4-a33b-213ca86e489d","f":{"id":"form","v":"d497194b29933d26","text":"Form"},"data":{"name":"Konstruktion: Sachlochformer","tags":"experimental-rendering","allowUndefinedFields":false,"definition":"{ae:select}\n[in Formschale][inMouldHalf]\n[inMouldHalf]: Select \"in mould half\"\n  - NONE: \n  - FS01: FS01\n  - FS02: FS02\n  - FS03: FS03\n  - FS04: FS04\n  - FS05: FS05\n  - FS06: FS06\n  - FS07: FS07\n  - FS08: FS08\n  - FS09: FS09\n  - FS10: FS10\n\n\n[Variante (variant)][variant] {show if variant='CUSTOM'}[Sondervariante][customVariant]\n\n{ae:select}\n[variant]: Select\n  - NONE: \n  - 2_2_L15_SW4: Ø 2.2 L15 SW4\n  - 2_9_L20_SW4: Ø 2.9 L20 SW4\n  - 2_9_L25_SW4: Ø 2.9 L25 SW4\n  - 3_8_L20_SW6: Ø 3.8 L20 SW6\n  - 3_8_L25_SW6: Ø 3.8 L25 SW6\n  - 4_5_L20_SW6: Ø 4.5 L20 SW6\n  - 4_5_L25_SW6: Ø 4.5 L25 SW6\n  - 4_9_L20_SW6: Ø 4.9 L20 SW6\n  - 4_9_L25_SW6: Ø 4.9 L25 SW6\n  - 4_9_L30_SW6: Ø 4.9 L30 SW6\n  - 6_1_L20_SW7: Ø 6.1 L20 SW7\n  - 6_1_L25_SW7: Ø 6.1 L25 SW7\n  - 6_1_L30_SW7: Ø 6.1 L30 SW7\n  - 6_1_L39_SW7: Ø 6.1 L39 SW7\n  - CUSTOM: Sondergrösse\n\n\n{ae:select}\n[Position][position]\n[position]: Select \"position\"\n  - NONE: \n  - FIX <help=fix>: fest\n  - RETRACTABLE <help=retractable>: zurückziehbar\n\n\n[Anzahl][number]\n[number]: number \"number\"","functions":"","defaults":"","newTemplate":{"id":"","v":"","text":""},"newAction":{"id":"","v":"","text":""},"allowedChildrenForms":[],"commands":[],"namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"","v":"","text":""},"description":""},"locks":[],"created":{"at":"2022-01-18T12:15:27+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"modified":{"at":"2024-07-04T08:12:31+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720073551743,"ct":1718866006701,"a_depth":3,"a":["apps","deeef973-ce03-4557-bf75-75a059001767","e7de598c-6f5a-4ab4-a33b-213ca86e489d"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1689766775723},{"id":"3834e4d0-1de2-460f-b14c-a4b3b3f85e31","v":"7ce1e2fffbf6b769","previous":{"v":"33ce9393f30bec91"},"p":"e7de598c-6f5a-4ab4-a33b-213ca86e489d","f":{"id":"form","v":"d497194b29933d26","text":"Form"},"data":{"name":"Formenbau: Logo und Klebefläche","tags":"experimental-rendering","allowUndefinedFields":false,"definition":"{ae:select}\n[Geschliffen (grinded)][grinded]\n[grinded]: Select\n  - NONE: \n  - P80: P80\n  - P120: P120\n  - P180: P180\n  - P240: P240\n  - P320: P320\n  - P600: P600\n  - POLISHED: poliert (polished)\n\n{ae:select}\n[Sandgestrahlt (sandblasted)][sandblasted]\n[sandblasted]: Select\n  - NONE: \n  - BAR_2_0: 2.0 Bar\n  - BAR_2_5: 2.5 Bar\n  - BAR_3_0: 3.0 Bar\n  - BAR_3_5: 3.5 Bar\n  - BAR_4_0: 4.0 Bar\n\n{ae:select}\n[Kugelgestrahlt (shot-peened)][shotPeen]\n[shotPeen]: Select\n  - NONE: \n  - BAR_3_0: 3.0 Bar\n  - BAR_3_5: 3.5 Bar\n  - BAR_4_0: 4.0 Bar\n  - BAR_4_5: 4.5 Bar\n  - BAR_5_0: 5.0 Bar \n\n{attachment always-show-title=true size=800px form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove=true}\n[Bild (image)][image]\n[image]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n","functions":"","defaults":"","newTemplate":{"id":"","v":"","text":""},"newAction":{"id":"","v":"","text":""},"allowedChildrenForms":[],"commands":[],"namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"","v":"","text":""},"description":""},"locks":[],"created":{"at":"2022-01-27T15:06:09+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"modified":{"at":"2024-07-04T08:04:15+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720073055494,"ct":1718866006699,"a_depth":3,"a":["apps","deeef973-ce03-4557-bf75-75a059001767","e7de598c-6f5a-4ab4-a33b-213ca86e489d"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1689766858152},{"id":"e24202d4-aa6f-4ea9-933c-5c1be7e38556","v":"732a0e819f6b884b","previous":{"v":"c9c59d79c70eac96"},"p":"a3b935e7-60bc-4996-9b18-668e4361067f","f":{"id":"form","v":"24ab84939535fdcd","text":"Form"},"data":{"name":"Rechnung","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[name]:= functions.name(titel, nummer)\n\n\n{readonly}\n[Rechnung erstellt][erstellt]\n[erstellt]: switch\n\n# Daten\n\n{readonly if erstellt}[Titel][titel] {30|readonly if erstellt | now}[Datum][datum]\n[datum]: date\n\n{readonly if erstellt}\n[Rechnungs ID][id]\n[id]: text \"Diese ID wird an der Rechnungsnummer hinzugefügt\"\n\n{readonly}\n[Rechnungsnummer][nummer] \n[nummer]: \"Diese Nummer wird automatisch aus dem Nummernkreis bei der Erstellung erzeugt\"\n\n{readonly if erstellt}\n[Zusammenfassung anzeigen][zusammenfassungAnzeigen]\n[zusammenfassungAnzeigen]: switch\n\n{readonly if erstellt | children delete-on-remove}\n[Einleitungstext][einleitung]\n[einleitung]: /d48baecb-5aa1-4165-bb40-4e4a57e0cb12 (0-n)\n\n{readonly if erstellt | children delete-on-remove=true}\n[Schlusstext][schlusstext]\n[schlusstext]: /d48baecb-5aa1-4165-bb40-4e4a57e0cb12 (0-n)\n\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" file-name-field=\"name\"}\n[Unterlagen][unterlagen]\n[unterlagen]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n# Positionen\n\n{readonly if erstellt | ref ancestor-form=3d45f20b-ecb3-4dc5-aa39-67a28e3923d8 design=tag-with-copy-commands}\n[Angebot][angebot]\n[angebot]: /ea3fb00c-4b3e-44ed-8bfb-7dce7f8a8f4c\n\n{hidden if angebot.id}\n####### \n> Es muss ein Angebot ausgewählt werden, ehe Positionen erfasst werden können.\n\n{show if angebot.id}\n####### \n\n{readonly if erstellt | core:positions-copy}\n[Positionen][positionen]\n\n{readonly if erstellt | children delete-on-remove=true forms=a40633b4-c769-4457-a267-830738d4b549,d48baecb-5aa1-4165-bb40-4e4a57e0cb12 new-command=ae0ade39-2cd5-4b84-bfd6-eabed7c2918a}\n[][positionen]\n[positionen]: /ref (0-n)\n\n### Summen\n\n{readonly}[Brutto][brutto] {readonly}[Netto][netto]\n{readonly}[Umsatzsteuer (gesamt)][umsatzsteuer] {readonly}[Umsatzsteuer (normaler Satz)][umsatzsteuerNormal] {readonly}[Umsatzsteuer (reduzierter Satz)][umsatzsteuerErmaessigt] {readonly}[Umsatzsteuer (befreit)][umsatzsteuerBefreit]\n\n[brutto]: number\n[netto]: number\n[umsatzsteuer]: number\n[umsatzsteuerNormal]: number\n[umsatzsteuerBefreit]: number\n[umsatzsteuerErmaessigt]: number\n\n\n# PDF \n\n{hidden if erstellt|readonly|page design=page--left min-height=800px}\n[PDF Vorschau][pdfPreview]\n\n\n{hidden if erstellt|readonly|core:crm-pdf add-to-beginning=true only-historic=true}\n[PDF][pdf]\n\n{show if erstellt|readonly|core:crm-pdf add-to-beginning=true}\n[PDF][pdf]\n\n[pdfPreview]: /dbee6e16-d63a-493c-bba6-505f79918f9f\n[pdf]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)","functions":"name(titel, nummer) {\n  const parts = []\n  if (titel) {\n    parts.push(titel)\n  } else {\n    parts.push('Rechnung')\n  }\n\n  if (nummer) {\n    parts.push(`(${nummer})`)\n  }\n\n  return parts.join(' ').trim()\n}","allowedChildrenForms":[],"commands":[{"id":"8560bac8-3019-4bbd-b3d8-5d30cd48da1a","v":"initial","text":"Rechnung erstellen"},{"id":"eeb929fc-f129-4981-b153-046cb511b95a","v":"initial","text":"Rechnung erneut bearbeiten"}],"description":""},"locks":[],"created":{"at":"2020-09-04T09:44:58+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-01-24T14:11:08+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1643033468580,"ct":1599212698601,"a_depth":3,"a":["apps","0924db0f-7095-4b51-8966-bad1e45d68ec","a3b935e7-60bc-4996-9b18-668e4361067f"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1633510551163},{"id":"c186a5aa-6a83-4ed4-894a-c0c312925058","v":"7cfcaeb971ed6886","previous":{"v":"20905a585fee6625"},"p":"35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f","f":{"id":"form","v":"af06aca6217d20c5","text":"Form"},"data":{"name":"Feuchtigkeitsstelle","description":"","definition":"{mark-spot marker-x=posX marker-y=posY}\n[Foto][foto]\n[foto]: File\n\n{multiline}\n[Bezeichnung / Kommentar][kommentar]\n\n{hidden}\n[Stellenposition X][posX]\n[posX]: number\n\n{hidden}\n[Stellenposition Y][posY]\n[posY]: number\n\n{children}\n[Messungen][messungen]\n[messungen]: /f6bf4a0b-0f20-4295-b082-b8a106128f69 (0-n)","functions":"","semver":"1.3.2","allowedChildrenForms":[],"layout":{"id":"","v":"","text":""},"color":{"id":"","v":null,"text":""},"iconName":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null}},"applicationLayoutOptions":{"id":"","v":"0","text":""},"documentLayoutOptions":{"id":"","v":"0","text":""}},"locks":[],"created":{"at":"2018-02-06T09:44:03+01:00","by":"","from":"","client":"server"},"modified":{"at":"2018-04-20T12:30:34+02:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"from":"","client":"f8312258-bdc9-438a-a510-de77a69e61e9"},"t":null,"ct":1517906643329,"a_depth":3,"a":["apps","b791df37-6eef-4a3e-9066-1b79e0bdad31","35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1519370995196},{"id":"756a726d-56c8-452c-9a13-d47d4e04954c","v":"60fc68f768f6e0d8","previous":{"v":"3ca6731640fc5318"},"p":"e7de598c-6f5a-4ab4-a33b-213ca86e489d","f":{"id":"form","v":"d497194b29933d26","text":"Form"},"data":{"name":"Formerei: Gipsherstellung","tags":"experimental-rendering","allowUndefinedFields":false,"definition":"### Informationen zur Gipsherstellung der Formschale\n\n{ae:select}\n[Formschale][mould]\n[mould]: Select\n  - NONE: \n  - FS01: FS01\n  - FS02: FS02\n  - FS03: FS03\n  - FS04: FS04\n  - FS05: FS05\n  - FS06: FS06\n  - FS07: FS07\n  - FS08: FS08\n  - FS09: FS09\n  - FS10: FS10\n\n### 1. Informationen zur Herstellung vom Rahmen:\n\n{attachment always-show-title=true size=400px form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove=true}\n[Informationen zur Herstellung vom Rahmen][frameImages]\n[frameImages]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n### 2. Informationen zur Herstellung vom Gipsteil\n\n[Rahmenabstand von Teilung (mm)][frameDistranceFromSeparation][Gussgewicht (kg)][castingWeight]\n\n[frameDistranceFromSeparation]: number\n[castingWeight]: number\n\n\n{attachment always-show-title=true size=400px form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove=true}\n[Position der Eingüsse, Rahmenabstand von Teilung, Gussgewicht][castImages]\n[castImages]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n\n{attachment always-show-title=true size=400px form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove=true}\n[Position des Rahmens im Gipsteil][castInFrameImages]\n[castInFrameImages]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n### 3. weitere Informationen\n\n[Profitpins][profitPins] [Graphitstifte][graphitePins] [Graphitformer][graphiteFormer] [Verstärkungen][reinforcements]\n\n[profitPins]: switch\n[graphitePins]: switch\n[graphiteFormer]: switch\n[reinforcements]: switch\n\n{attachment always-show-title=true size=400px form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove=true}\n[Profitpins, Graphitstifte,- former und Verstärkungen][additionalImages]\n\n[additionalImages]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)","functions":"","defaults":"","newTemplate":{"id":"","v":"","text":""},"newAction":{"id":"","v":"","text":""},"allowedChildrenForms":[],"commands":[],"namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"","v":"","text":""},"description":""},"locks":[],"created":{"at":"2022-01-27T13:41:36+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"modified":{"at":"2024-07-08T16:17:03+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720448223514,"ct":1718866006700,"a_depth":3,"a":["apps","deeef973-ce03-4557-bf75-75a059001767","e7de598c-6f5a-4ab4-a33b-213ca86e489d"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1689766826971},{"id":"859f370d-2f40-4ab0-a841-134f57513254","v":"c5aa40c5d2c53780","previous":{"v":"8dfffe462154f42c"},"p":"f254ce25-42f1-4333-8ee7-23554bf746c1","f":{"id":"form","v":"e02c68c619719072","text":"Form"},"data":{"name":"Vertrag","tags":"","namedIcon":"fa fa-file-contract","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Titel][name]\n\n{multiline auto-grow=true}\n[Anmerkungen][anmerkungen]\n\n## Angebot\n\n{number step=0.01}\n[Angebotssumme (netto)][summeAngebot]\n\n{attachment form-id=\"6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2\" file-field=\"datei\" name-field=\"name\" delete-on-remove=true}\n[Versendete Offene Angebote][anhaengeAngebot]\n[anhaengeAngebot]: /6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2 (0-n)\n\n{switch delete-fields-if-false=angebotAngenommenDatum}[Angebot angenommen][angebotAngenommen] {hidden if !angebotAngenommen|now}[Angebot angenommen am][angebotAngenommenDatum]\n[angebotAngenommen]: switch\n[angebotAngenommenDatum]: date\n\n## Planung\n\n\n{energy:payment-planner}\n[Planungen][planungen]\n[planungen]: /6c501e3a-25c4-43c1-bd96-ec99333f5930 (0-n) \"Die Planungen werden immer **gelöscht** und neu erstellt sobald sich die `Zahlungsmodalität` ändert.\"\n\n## Auftrag\n\n{number step=0.01}[Beauftrage Summe (netto)][summeAuftrag] [Zahlungsmodalität (netto)][zahlungsmodalitaet]\n{readonly|number step=0.01}[Abgerechnete Summe (netto)][summeAbgerechnet] {readonly}[Vertrag erfüllt][vertragErfuellt]\n\n{attachment form-id=\"6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2\" file-field=\"datei\" name-field=\"name\" delete-on-remove=true}\n[Anhänge][anhaenge]\n[anhaenge]: /6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2 (0-n)\n\n{readonly-if-command id=ed9981ac-b11d-4406-be58-f8b2dd2eb0ec control=children handle-selected-readonly=true disable-remove=true new-command=ee113e0e-2ea9-4f14-8c46-988dfd71b46b}\n[Zahlungen][zahlungen]\n\n\n[vertragErfuellt]: switch = functions.vertragErfuellt(summeAuftrag, summeAbgerechnet)\n[summeAngebot]: number\n[summeAuftrag]: number\n[summeAbgerechnet]: number\n[zahlungsmodalitaet]: Select\n  - 60-30-10: 60% / 30% / 10%\n  - 90-10: 90% / 10%\n  - 70-30: 70% / 30%\n  - ZEIT: Leistungsbezogen\n[zahlungen]: /e10a8072-024c-44a7-80e3-4cd75c6ec1ea (0-n)\n","functions":"vertragErfuellt(summeAuftrag, summeAbgerechnet) {\n  return !!(summeAbgerechnet && summeAbgerechnet >= summeAuftrag)\n}","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2020-07-22T17:31:14+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2023-10-18T08:53:38+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1697619218791,"ct":1621605919542,"a_depth":3,"a":["apps","94a64d89-d204-4918-b147-d717914fb03e","f254ce25-42f1-4333-8ee7-23554bf746c1"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1598278596128},{"id":"857157fa-4c9b-4f7c-bba5-7a49646e849e","v":"250aa3539f29e78a","previous":{"v":"b497cde763f4ac3e"},"p":"e7de598c-6f5a-4ab4-a33b-213ca86e489d","f":{"id":"form","v":"d497194b29933d26","text":"Form"},"data":{"name":"Rahmenbau: Montierpfosten","tags":"experimental-rendering","allowUndefinedFields":false,"definition":"[Formschale][mould] [Montierpfosten (mountingposts)][mountingposts]\n\n{ae:select}\n[mould]: Select\n  - NONE: \n  - FS01: FS01\n  - FS02: FS02\n  - FS03: FS03\n  - FS04: FS04\n  - FS05: FS05\n  - FS06: FS06\n  - FS07: FS07\n  - FS08: FS08\n\n{ae:select}\n[mountingposts]: Select\n  - NONE: \n  - 25_THREAD_M8 <help=\"With thread M8\">: Ø 25mm mit Gewinde M8\n  - 25_HELICOIL_M8 <help=\"with Helicoil M8\">: Ø 25mm mit HeliCoil M8\n  - 30_THREAD_M8 <help=\"with thread M8\">: Ø 30mm mit Gewinde M8 \n  - 30_HELICOIL_M8 <help=\"with HeliCoil M8\">: Ø 30mm mit HeliCoil M8 \n\n  help(25_THREAD_M8):\n  ---\n  **Montierpfosten mit Gewinde**\n\n  <img src=\"/api/docs/597f9c65-1ebe-40f7-bd8b-7099d1f62398/fields/datei/_content\" width=\"600\">\n\n  help(25_HELICOIL_M8):\n  ---\n  **Montierpfosten mit HeliCoil**\n\n  <img src=\"/api/docs/589fa90a-1dca-4a93-96ab-9cf84bd580c6/fields/datei/_content\" width=\"600\">\n\n  help(30_THREAD_M8):\n  ---\n  **Montierpfosten mit Gewinde**\n\n  <img src=\"/api/docs/597f9c65-1ebe-40f7-bd8b-7099d1f62398/fields/datei/_content\" width=\"600\">\n\n  help(30_HELICOIL_M8):\n  ---\n  **Montierpfosten mit HeliCoil**\n\n  <img src=\"/api/docs/589fa90a-1dca-4a93-96ab-9cf84bd580c6/fields/datei/_content\" width=\"600\">\n","functions":"","defaults":"","newTemplate":{"id":"","v":"","text":""},"newAction":{"id":"","v":"","text":""},"allowedChildrenForms":[],"commands":[],"namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"","v":"","text":""},"description":""},"locks":[],"created":{"at":"2022-01-27T15:49:03+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"modified":{"at":"2024-07-04T08:15:24+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720073724265,"ct":1718866006701,"a_depth":3,"a":["apps","deeef973-ce03-4557-bf75-75a059001767","e7de598c-6f5a-4ab4-a33b-213ca86e489d"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1689766879381},{"id":"f800b4cd-7ef2-427e-9ce0-f5834126c09d","v":"57543333fa3bd2fa","previous":{"v":"93ef93e94e73a45a"},"p":"e7de598c-6f5a-4ab4-a33b-213ca86e489d","f":{"id":"form","v":"d497194b29933d26","text":"Form"},"data":{"name":"Konstruktion: Losteil","tags":"experimental-rendering","allowUndefinedFields":false,"definition":"[Name][name]\n\n{attachment always-show-title=true size=800px form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove=true}\n[CAD- Bilder der Losteile mit Angabe des Materials (CAD-images of the loose parts with indication of the material)][image]\n[image]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{ae:select}\n[Losteil][loosePart]\n[loosePart]: Select \"loose part\"\n  - NONE: \n  - ALUMINIUM_5083: Aluminium (5083)\n  - ALUMINIUM_BRONZE: Aluminium-Bronze\n  - BRASS <help=\"brass\">: Messing\n  - STEEL <help=\"steel\">: Stahl\n  - STAINLESS_STEEL <help=\"stainless steel\">: Edelstahl\n\n{ae:select}\n[Verschleißring][wearRing]\n[wearRing]: Select \"wear ring\"\n  - NONE: \n  - ALUMINIUM_5083: Aluminium (5083)\n  - ALUMINIUM_BRONZE: Aluminium-Bronze\n  - BRASS <help=\"brass\">: Messing\n  - STEEL <help=\"steel\">: Stahl\n  - STAINLESS_STEEL <help=\"stainless steel\">: Edelstahl\n","functions":"","defaults":"","newTemplate":{"id":"","v":"","text":""},"newAction":{"id":"","v":"","text":""},"allowedChildrenForms":[],"commands":[],"namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"","v":"","text":""},"description":""},"locks":[],"created":{"at":"2022-01-18T10:21:01+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"modified":{"at":"2024-07-04T08:10:09+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720073409654,"ct":1718866006700,"a_depth":3,"a":["apps","deeef973-ce03-4557-bf75-75a059001767","e7de598c-6f5a-4ab4-a33b-213ca86e489d"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1689584257029},{"id":"c2c9bf3d-3127-497a-8d96-cfdca483cb97","v":"875dae45a148eafa","p":"e7de598c-6f5a-4ab4-a33b-213ca86e489d","f":{"id":"form","v":"d497194b29933d26","text":"Form"},"data":{"name":"Formenbau: Standardteil","tags":"experimental-rendering","allowUndefinedFields":false,"definition":"[Artikelnummer][articleNumber] [Anzahl][quantity]\n\n[quantity]: number\n\n[Bezeichnung][label]\n[Gehalten durch][holdBy]\n\n{attachment always-show-title=true size=800px form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove=true}\n[Bild (image)][image]\n[image]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n","functions":"","defaults":"","newTemplate":{"id":"","v":"","text":""},"newAction":{"id":"","v":"","text":""},"allowedChildrenForms":[],"commands":[],"namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"","v":"","text":""},"description":""},"locks":[],"created":{"at":"2022-01-27T15:02:57+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-05-12T15:38:20+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1718866006699,"ct":1718866006699,"a_depth":3,"a":["apps","deeef973-ce03-4557-bf75-75a059001767","e7de598c-6f5a-4ab4-a33b-213ca86e489d"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"previous":{"v":"19bc220dbe1d8bd5","f":{"id":"form","v":"0f04783266efdaa5","text":"Form"}},"meta":{"modified":{"at":"2024-06-20T08:46:46+02:00","by":"427610a9-39dc-4014-9176-5f72aeb23263","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}},"dts":1689766860355},{"id":"d6b30723-9c28-47f2-a4d9-95ac705cc975","v":"554e0ed8f511c125","p":"710a1fcc-d225-4fb3-a1aa-64684f397ee6","f":{"id":"form","v":"dcc8032a347c59c7","text":"Form"},"data":{"name":"Ansprechpartner","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Anrede][anrede][Vorname][vorname][Nachname][nachname][Position][position]  \r\n[E-Mail][eMail][Telefon][telefon][Fax][fax][Mobil][mobil]\r\n\r\n[anrede]: select\r\n  - NONE: \r\n  - MALE: Herr\r\n  - FEMALE: Frau\r\n\r\n{hidden}\r\n[Name][name]\r\n[name]: =functions.name(vorname,nachname)","functions":"name(vorname, nachname) {\r\n  if (!vorname && !nachname) {\r\n    return ''\r\n  }\r\n\r\n  if (vorname) {\r\n    return `${vorname} ${nachname}`\r\n  }\r\n\r\n  return nachname\r\n}","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2019-04-12T14:29:37+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2020-10-13T10:19:13+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1602584353457,"ct":1602584353457,"a_depth":3,"a":["apps","7ba1fc90-8094-44ce-8f5a-54a0da3999ed","710a1fcc-d225-4fb3-a1aa-64684f397ee6"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"previous":{"v":"initial","f":{"id":"form","v":"8c1496d16c344c2e","text":"Form"}},"dts":1548864445966},{"id":"164a9d5b-53e9-448e-b9f5-d3bd3f78cbe5","v":"af7938aa271d4b0e","previous":{"v":"59a7ac808042b011"},"p":"e7de598c-6f5a-4ab4-a33b-213ca86e489d","f":{"id":"form","v":"d497194b29933d26","text":"Form"},"data":{"name":"Konstruktion: Bohrzentrierung","tags":"experimental-rendering","allowUndefinedFields":false,"definition":"{ae:select}\n[in Formschale][inMouldHalf]\n[inMouldHalf]: select \"in mould half\"\n  - NONE: \n  - FS01: FS01\n  - FS02: FS02\n  - FS03: FS03\n  - FS04: FS04\n  - FS05: FS05\n  - FS06: FS06\n  - FS07: FS07\n  - FS08: FS08\n  - FS09: FS09\n  - FS10: FS10\n\n{ae:select}\n[Variante][variant]\n[variant]: select \"variant\"\n  - NONE: \n  - ALLEN_SCREW_POINTED <help=\"allen screw \\\"pointed\\\"\">: Madenschraube \"spitz\" \n  - ALLEN_SCREW_FLAT <help=\"allen screw \\\"flat\\\"\">: Madenschraube \"flach\" \n  - NAMEPLATE_RIVETS <help=\"nameplate rivets\">: Typenschildniete \n\n  help(ALLEN_SCREW_POINTED):\n  ---\n  **Madenschraube \"spitz\"**\n\n  <img src=\"/api/docs/201d4260-2f23-4007-b4da-b99fe3b65a1a/fields/datei/_content\" width=\"250\">\n\n  help(ALLEN_SCREW_FLAT):\n  ---\n  **Madenschraube \"flach\"**\n\n  <img src=\"/api/docs/30557c7d-b2a0-4260-8ca1-4614153f0978/fields/datei/_content\" width=\"250\">\n\n  help(NAMEPLATE_RIVETS):\n  ---\n  **Typenschildniete**\n\n  <img src=\"/api/docs/bea0a7da-67ec-4535-9283-313b78d1d153/fields/datei/_content\" width=\"250\">\n\n{ae:select}\n[Position][position]\n[position]: Select \"position\"\n  - NONE: \n  - FIX: fest (fix)\n  - RETRACTABLE: zurückziehbar (retractable)\n\n[Anzahl][number]\n[number]: number \"number\"","functions":"","defaults":"","newTemplate":{"id":"","v":"","text":""},"newAction":{"id":"","v":"","text":""},"allowedChildrenForms":[],"commands":[],"namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"","v":"","text":""},"description":""},"locks":[],"created":{"at":"2022-01-18T12:09:26+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"modified":{"at":"2024-07-03T20:24:46+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720031086406,"ct":1718866006693,"a_depth":3,"a":["apps","deeef973-ce03-4557-bf75-75a059001767","e7de598c-6f5a-4ab4-a33b-213ca86e489d"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1689766783943},{"id":"0427f795-631c-4965-8a77-455ac3776ee2","v":"2cd7421ff97b908f","previous":{"v":"6551394da39d0104","p":"283dee24-e6de-4765-ac6a-3855e5726618"},"p":"e117ae4b-b53a-4d37-8e3b-a2764606fd7b","f":{"id":"form-folder","v":"e2e87df32e325504","text":"Form Folder"},"data":{"name":"Formular","description":""},"locks":[],"created":{"at":"2018-10-26T08:29:11+00:00","by":"2695f56c-96e6-4009-8e2f-d545ea1e02aa","from":"","client":"server"},"modified":{"at":"2020-05-08T08:52:51+00:00","by":null,"backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1588927971255,"ct":1540542551020,"a_depth":3,"a":["apps","83c76376-420e-4231-9275-d0fe2ab47c32","e117ae4b-b53a-4d37-8e3b-a2764606fd7b"],"a_forms":["folder","application-form","application-form"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1544105331805},{"id":"ea3fb00c-4b3e-44ed-8bfb-7dce7f8a8f4c","v":"1d85c608d6df2ed5","cloneOf":{"id":"e24202d4-aa6f-4ea9-933c-5c1be7e38556","v":"da28cd5694b8db62","text":"Abrechnung"},"originalCloneOf":{"id":"e24202d4-aa6f-4ea9-933c-5c1be7e38556","v":"da28cd5694b8db62","text":"Abrechnung"},"previous":{"v":"43aa520cf2484750"},"p":"a3b935e7-60bc-4996-9b18-668e4361067f","f":{"id":"form","v":"24ab84939535fdcd","text":"Form"},"data":{"name":"Angebot","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[name]:= functions.name(titel, nummer)\n\n{readonly}\n[Angebot erstellt][erstellt]\n[erstellt]: switch\n\n# Daten\n\n{readonly if erstellt}[Titel][titel] {30|readonly if erstellt | now}[Datum][datum]\n[datum]: date\n\n{readonly if erstellt}\n[Auftrags ID][id]\n\n{readonly}\n[Angebotsnummer][nummer] \n[nummer]: \"Diese Nummer wird automatisch aus dem Nummernkreis bei der Erstellung erzeugt\"\n\n\n\n{readonly if erstellt | children delete-on-remove}\n[Einleitungstext][einleitung]\n[einleitung]: /d48baecb-5aa1-4165-bb40-4e4a57e0cb12 (0-n)\n\n\n{readonly if erstellt}\n[Summe anzeigen][summeAnzeigen]\n[summeAnzeigen]: switch\n\n{readonly if erstellt | children delete-on-remove=true}\n[Schlusstext][schlusstext]\n[schlusstext]: /d48baecb-5aa1-4165-bb40-4e4a57e0cb12 (0-n)\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" file-name-field=\"name\"}\n[Unterlagen][unterlagen]\n[unterlagen]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n# Positionen\n\n{hidden if erstellt}\n####### \n{copy-fields-from ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df form=ccf254f6-4115-40fb-8b32-5cf86cc04231 fields=einleitung:einleitung,positionen:positionen,schlusstext:schlusstext}\n\n####### \n\n{readonly if erstellt | children delete-on-remove=true forms=8d1804b0-c5c6-4acf-a15f-1b02872e792e,d48baecb-5aa1-4165-bb40-4e4a57e0cb12 new-command=ae0ade39-2cd5-4b84-bfd6-eabed7c2918a}\n[Positionen][positionen]\n[positionen]: /ref (0-n)\n\n### Summen\n\n{readonly}[Brutto][brutto] {readonly}[Netto][netto]\n{readonly}[Umsatzsteuer (gesamt)][umsatzsteuer] {readonly}[Umsatzsteuer (normaler Satz)][umsatzsteuerNormal] {readonly}[Umsatzsteuer (reduzierter Satz)][umsatzsteuerErmaessigt] {readonly}[Umsatzsteuer (befreit)][umsatzsteuerBefreit]\n\n[brutto]: number\n[netto]: number\n[umsatzsteuer]: number\n[umsatzsteuerNormal]: number\n[umsatzsteuerBefreit]: number\n[umsatzsteuerErmaessigt]: number\n\n# PDF \n\n{hidden if erstellt|readonly|page design=page--left min-height=800px}\n[PDF Vorschau][pdfPreview]\n\n{hidden if erstellt|readonly|core:crm-pdf add-to-beginning=true only-historic=true}\n[PDF][pdf]\n\n{show if erstellt|readonly|core:crm-pdf add-to-beginning=true}\n[PDF][pdf]\n\n[pdfPreview]: /dbee6e16-d63a-493c-bba6-505f79918f9f\n[pdf]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)","functions":"name(titel, nummer) {\n  const parts = []\n  if (titel) {\n    parts.push(titel)\n  } else {\n    parts.push('Angebot')\n  }\n\n  if (nummer) {\n    parts.push(`(${nummer})`)\n  }\n\n  return parts.join(' ').trim()\n}","allowedChildrenForms":[],"commands":[{"id":"6ad47f85-1136-43f5-acc6-e39dd9b8631c","v":"initial","text":"Angebot erstellen"},{"id":"e4e67828-d4cb-4cda-84db-91be79c46e95","v":"initial","text":"Angebot erneut bearbeiten"}],"description":""},"locks":[],"created":{"at":"2020-09-04T13:51:29+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-01-24T14:11:02+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1643033462901,"ct":1599227489361,"a_depth":3,"a":["apps","0924db0f-7095-4b51-8966-bad1e45d68ec","a3b935e7-60bc-4996-9b18-668e4361067f"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1633511161466},{"id":"a77f917d-0d75-41b5-93e3-4c9da731ddbc","v":"a91e425bbe1d9ffa","previous":{"v":"5736ef12e1b1ad51"},"p":"e7de598c-6f5a-4ab4-a33b-213ca86e489d","f":{"id":"form","v":"d497194b29933d26","text":"Form"},"data":{"name":"Vertrieb: Beschichtung","tags":"experimental-rendering","allowUndefinedFields":false,"definition":"[Farbe][color] [Typ][type] \n\n{ae:select}\n[color]: Select\n  - C10 <colored-pill=#000000>: C10 Standard (deep black)\n  - C30 <colored-pill=#D3D3D3>: C30 extra-matt (light grey)\n  - C32 <colored-pill=#0000FF>: C32 Blue powder (blue)\n  - C40 <colored-pill=#008000>: C40 gloss (grass green)\n  - C60 <colored-pill=#C2B280>: C60 007 (sand)\n  - C63 <colored-pill=#808080>: C63 diamont (grey)\n  - C66 <colored-pill=#FFFFFF>: C66 Edelweiß (white)\n  - C80 <colored-pill=#00FF00>: C80 LT (green)\n\n{ae:select}\n[type]: Select\n  - FLANGE <help=flange>: Flansch\n  - CORE: Kern\n  - CAVITY: Kavität\n  - COMPLETE: Komplett\n","functions":"","defaults":"","newTemplate":{"id":"","v":"","text":""},"newAction":{"id":"","v":"","text":""},"allowedChildrenForms":[],"commands":[],"namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"","v":"","text":""},"description":""},"locks":[],"created":{"at":"2021-12-15T14:56:39+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"modified":{"at":"2024-07-04T08:16:32+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720073792307,"ct":1718866006701,"a_depth":3,"a":["apps","deeef973-ce03-4557-bf75-75a059001767","e7de598c-6f5a-4ab4-a33b-213ca86e489d"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1689582613362},{"id":"dbcc416d-bced-4cc4-89b2-7f18ef390e9e","v":"1aa304f7d8e3bcdc","previous":{"v":"d20572c3ad8c61bb"},"p":"e7de598c-6f5a-4ab4-a33b-213ca86e489d","f":{"id":"form","v":"d497194b29933d26","text":"Form"},"data":{"name":"Formenbau: Formschale","tags":"experimental-rendering","allowUndefinedFields":false,"definition":"### Informationen zur Formschale\n\n{ae:select}\n[Formschale][mould]\n[mould]: Select\n  - NONE: \n  - FS01: FS01\n  - FS02: FS02\n  - FS03: FS03\n  - FS04: FS04\n  - FS05: FS05\n  - FS06: FS06\n  - FS07: FS07\n  - FS08: FS08\n  - FS09: FS09\n  - FS10: FS10\n\n{readonly|embedded document-query=\"p -> p -> data.vertrieb\" inline-only-fields=toolType,oldToolNumber}\n[Vertrieb][vertrieb]\n\n### 1. Informationen zur Oberfläche\n\n{readonly|embedded document-query=\"p -> p -> data.vertrieb\" inline-only-fields=surfaceIsIndustrial,surfaceIsIndustrialText,surfaceGrinded,glassbeadBlasted,glassbeadBlastedText,surfaceSandblasted,surfaceSandblastedText,surfaceShotPeen,surfaceShotPeenText,corundumBlasted,corundumBlastedText}\n[Vertrieb][vertrieb]\n\n{attachment always-show-title=true size=400px form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove=true}\n[Oberflächen][surfacesImages]\n[surfacesImages]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n### 2. Informationen zu den gefrästen/gedrehten Einsätzen/Losteilen\n\n{attachment always-show-title=true size=400px form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove=true}\n[Gefräste/gedrehte Einsätze/Losteile][insertAndLoosePartsImages]\n[insertAndLoosePartsImages]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n### 3. Informationen zu den Standardteilen\n\n{children delete-on-remove=true}\n[Standardteile][standardParts]\n[standardParts]: /c2c9bf3d-3127-497a-8d96-cfdca483cb97 (0-n)\n\n### 4. Informationen zu Logos und Klebeflächen\n\n{children delete-on-remove=true}\n[Logos und Klebeflächen][logosAndStickySurfaces]\n[logosAndStickySurfaces]: /3834e4d0-1de2-460f-b14c-a4b3b3f85e31 (0-n)","functions":"","defaults":"","newTemplate":{"id":"","v":"","text":""},"newAction":{"id":"","v":"","text":""},"allowedChildrenForms":[],"commands":[],"namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"","v":"","text":""},"description":""},"locks":[],"created":{"at":"2022-01-27T14:49:59+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"modified":{"at":"2024-07-08T16:34:33+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720449273914,"ct":1718866006698,"a_depth":3,"a":["apps","deeef973-ce03-4557-bf75-75a059001767","e7de598c-6f5a-4ab4-a33b-213ca86e489d"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1689766855458},{"id":"39cc8c10-ef0e-4780-bec0-ba6b01b4d200","v":"0e6b29d9d0952fb7","previous":{"v":"a70f9fc245322bf1"},"p":"15292d56-6806-4263-b6d0-9194687203e1","f":{"id":"form","v":"42ef1fd37c206edb","text":"Form"},"data":{"name":"Geplante Vertrags-Anpassung","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Anpassung ab][datum] {20|readonly}[Ausgeführt][ausgefuehrt]\n[datum]: date <required>\n[ausgefuehrt]: switch\n\n## Zum Vertrag\n\n[Kosten anpassen][kostenAnpassen]\n[kostenAnpassen]: switch\n\n{show if kostenAnpassen}\n####### \n\n{number}[Kaltmiete][kaltmiete] {number}[Nebenkosten (Vorrauszahlung)][nebenkosten] [Mehrwertsteuer][mehrwertsteuer]\n\n{readonly}\n[Summe][summe]\n\n[kaltmiete]: number\n[nebenkosten]: number\n[mehrwertsteuer]: number\n\n[summe]: number = functions.sum(kaltmiete, nebenkosten, mehrwertsteuer)\n\n####### \n\n[Mietzeit anpassen][mietzeitAnpassen]\n[mietzeitAnpassen]: switch\n\n{show if mietzeitAnpassen}\n####### \n\n[Mietzeit][mietzeit]\n[mietzeit]: Select\n  - UNBEFRISTED: Unbefristet\n  - VERLAENGERUNG: Automatische Verlängerung\n  - MINDEST_LAUFZEIT: Mindestlaufzeit\n\n{show if mietzeit === 'UNBEFRISTED'}\n######## \n[Beginn][beginn]\n[Kündigungsfrist (in Monaten)][kuendigungsfrist]\n\n{show if mietzeit === 'VERLAENGERUNG'}\n######## \n[Beginn][beginn] [Ende][ende] [Verlängerung (in Monaten)][verlaengerungMonate]\n[Kündigungsfrist (in Monaten)][kuendigungsfrist]\n\n\n{show if mietzeit === 'MINDEST_LAUFZEIT'}\n######## \n[Beginn][beginn] [Ende][ende] \n[Kündigungsfrist (in Monaten)][kuendigungsfrist]\n\n####### \n\n\n\n[verlaengerungMonate]: number\n[beginn]: date\n[ende]: date\n[kuendigungsfrist]: number\n","functions":"sum(kaltmiete, nebenkosten, mehrwertsteuer){\n  return (kaltmiete || 0) + (nebenkosten || 0) + (mehrwertsteuer || 0)\n}","allowedChildrenForms":[],"commands":[],"description":"","theme":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2023-01-27T09:12:15+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-08-21T08:43:03+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1692607383322,"ct":1674810735423,"a_depth":3,"a":["apps","86189c5a-b9f4-445a-879f-d94574960df0","15292d56-6806-4263-b6d0-9194687203e1"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1675180216175},{"id":"a678e4d3-a2c1-4eeb-a106-6d47479692c8","v":"adf24b6fb154cb9c","previous":{"v":"53c01d3bc2afac38"},"p":"e7de598c-6f5a-4ab4-a33b-213ca86e489d","f":{"id":"form","v":"d497194b29933d26","text":"Form"},"data":{"name":"Konstruktion: Drehteil","tags":"experimental-rendering","allowUndefinedFields":false,"definition":"[Name][name]\n\n{attachment always-show-title=true size=800px form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove=true}\n[CAD- Bilder der Drehteile mit Angabe des Materials (CAD-images of the turned parts with indication of the material)][image]\n[image]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{ae:select}\n[Drehteil][turnedPart]\n[turnedPart]: Select \"turned part\"\n  - NONE: \n  - ALUMINIUM_5083: Aluminium (5083)\n  - ALUMINIUM_BRONZE: Aluminium-Bronze\n  - BRASS <help=\"brass\">: Messing\n  - STEEL <help=\"steel\">: Stahl\n  - STAINLESS_STEEL <help=\"stainless steel\">: Edelstahl\n\n{ae:select}\n[Verschleißring][wearRing]\n[wearRing]: Select \"wear ring\"\n  - NONE: \n  - ALUMINIUM_5083: Aluminium (5083)\n  - ALUMINIUM_BRONZE: Aluminium-Bronze\n  - BRASS <help=\"brass\">: Messing\n  - STEEL <help=\"steel\">: Stahl\n  - STAINLESS_STEEL <help=\"stainless steel\">: Edelstahl","functions":"","defaults":"","newTemplate":{"id":"","v":"","text":""},"newAction":{"id":"","v":"","text":""},"allowedChildrenForms":[],"commands":[],"namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"","v":"","text":""},"description":""},"locks":[],"created":{"at":"2022-01-18T10:44:56+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"modified":{"at":"2024-07-04T08:09:11+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720073351774,"ct":1718866006700,"a_depth":3,"a":["apps","deeef973-ce03-4557-bf75-75a059001767","e7de598c-6f5a-4ab4-a33b-213ca86e489d"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1689584587168},{"id":"02eaf357-29bd-45ab-a7ae-7184787bdca1","v":"f2027d78ad82b551","p":"e7de598c-6f5a-4ab4-a33b-213ca86e489d","f":{"id":"form","v":"d497194b29933d26","text":"Form"},"data":{"name":"Konstruktion: Gesprächsprotokoll","tags":"","allowUndefinedFields":false,"definition":"{now control=datetime}\n[Datum (date)][date]\n[date]: date\n\n{multiline auto-grow=true}\n[Informationen (informations)][informations]\n","functions":"","defaults":"","newTemplate":{"id":"","v":"","text":""},"newAction":{"id":"","v":"","text":""},"allowedChildrenForms":[],"commands":[],"namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"","v":"","text":""},"description":""},"locks":[],"created":{"at":"2022-01-18T13:22:02+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-05-12T15:39:02+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1718866006693,"ct":1718866006693,"a_depth":3,"a":["apps","deeef973-ce03-4557-bf75-75a059001767","e7de598c-6f5a-4ab4-a33b-213ca86e489d"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"previous":{"v":"aac224a9c14fb8e0","f":{"id":"form","v":"0f04783266efdaa5","text":"Form"}},"meta":{"modified":{"at":"2024-06-20T08:46:46+02:00","by":"427610a9-39dc-4014-9176-5f72aeb23263","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}},"dts":1689766781692},{"id":"4da4181d-2bf5-47b9-a0d2-6f0a05dcc702","v":"c3529d6ff77ef288","previous":{"v":"f459f9224e9019ac"},"p":"e7de598c-6f5a-4ab4-a33b-213ca86e489d","f":{"id":"form","v":"d497194b29933d26","text":"Form"},"data":{"name":"Gussputzerei: Formschalen","tags":"experimental-rendering","allowUndefinedFields":false,"definition":"### Informationen zur Formschale\n\n{ae:select}\n[Formschale][mould]\n[mould]: Select\n  - NONE: \n  - FS01: FS01\n  - FS02: FS02\n  - FS03: FS03\n  - FS04: FS04\n  - FS05: FS05\n  - FS06: FS06\n  - FS07: FS07\n  - FS08: FS08\n  - FS09: FS09\n  - FS10: FS10\n\n### 1. Informationen zu der Länge der Montierpfosten\n\n{attachment always-show-title=true size=400px form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove=true}\n[Länge der Montierpfosten][mountingPostsImages]\n[mountingPostsImages]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n### 2. Informationen zu Verstärkungen für Einsätze & Losteile\n\n{attachment always-show-title=true size=400px form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove=true}\n[Verstärkungen für Einsätze & Losteile][insertAndLoosePartsImages]\n[insertAndLoosePartsImages]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n","functions":"","defaults":"","newTemplate":{"id":"","v":"","text":""},"newAction":{"id":"","v":"","text":""},"allowedChildrenForms":[],"commands":[],"namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"","v":"","text":""},"description":""},"locks":[],"created":{"at":"2022-01-27T14:28:46+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"modified":{"at":"2024-07-04T08:04:42+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720073082652,"ct":1718866006700,"a_depth":3,"a":["apps","deeef973-ce03-4557-bf75-75a059001767","e7de598c-6f5a-4ab4-a33b-213ca86e489d"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1689766803815},{"id":"76235811-3e08-43d1-913b-bee6b62deab6","v":"976bbb10c86026c1","previous":{"v":"9ff1fd478f83cfe9"},"p":"d646d88a-6eea-424b-81a1-2df3c44993c4","f":{"id":"form","v":"24ab84939535fdcd","text":"Form"},"data":{"name":"Workflow Transition","tags":"","namedIcon":"fa fa-code-commit","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Name][name]\r\n\r\n[Label][label]\r\n\r\n# Transition\r\n\r\n{hidden if condition==\"ENTRY\"}[From][fromState]\r\n\r\n[To][toState]\r\n\r\n[fromState]: /stamp-type (0-n)\r\n\r\n[toState]: /stamp-type\r\n\r\n# Prompting\r\n\r\n[Confirmation is required][confirmationRequired]\r\n[confirmationRequired]: Switch\r\n\r\n{multiline|show if confirmationRequired}\r\n[Confirmation Text][confirmationText]\r\n\r\n{multiline|show if confirmationRequired}\r\n[Success Text][successText]\r\n\r\n# Required Entry Conditions\r\n\r\n[Allow transition only if workflow][condition]\r\n\r\n{hidden if !fromState.length}[Allowed if document changed since stamp][fromStampCondition]\r\n\r\n{readonly if fromState.length}\r\n[condition]: Select\r\n  - \"\" : \r\n  - STARTED_ONLY : Workflow has been started\r\n  - ENTRY: Workflow has not started yet\r\n\r\n[fromStampCondition]: Select \"Define whether the document is acceptable\"\r\n  - \"\": Always allow\r\n  - EXACT_VERSION: Allow only if no changes to document\r\n  - EDITED: Allow only if changed at least once since stamping\r\n\r\n{children}\r\n[Custom Filters][filters]\r\n[filters]: /action-form (0-n)\r\n\r\nExecute all `Actions` in order. Will stop executing with the first action returning `true` or `false`\r\n`context.document` is a reference to the original document. If  an Action returns another document\r\nit is used in the subsequent actions as `context.document`. The original document is available via `context.target`\r\n\r\nIf at the end of execution the last result is `undefined` the transition is allowed.\r\n\r\n# Do Before\r\n{children}[Actions to perform before applying Stamp][actionsBefore] {ref}[Actions to perform before applying Stamp][actionsBefore]\r\n[actionsBefore]: /action-form (0-n)\r\n\r\nIf any `Action` throws an **exception**, the transition is *not* performed.\r\n\r\nThe target document is available as `context.document` and passed through the actions.\r\nIf an action returns a document it is used as the `context.document` for the subsequent action *and*\r\nas the final target for the stamp. The original document can still be accessed via `context.target`\r\n\r\n\r\n# Do After\r\n\r\n{hidden|deprecated}\r\n[Actions to perform after applying Stamp][actionsAfter]\r\n[actionsAfter]: /action-form (0-n)\r\n\r\nThe target document is available as `context.document` and passed through the actions.\r\nIf an action returns a document it is used as the `context.document` for the subsequent action *and*\r\nas the final target for the stamp. The original document can still be accessed via `context.target`\r\n\r\nThe resulting `context.document` and the original `context.target` is passed on to the `Command` below\r\nThe context also contains the workflow configuration document in `context.workflow` and the stamps as named references\r\n\r\n>```\r\n>context = {\r\n>  \"document\": { ... /* current document. either the one being reviewed or the one returned from a previous action performed */  },\r\n>  \"workflow\": { ... /* workflow configuration document */ }\r\n>  \"transition\": { ... /* current transition document */ }\r\n>}\r\n>```\r\n\r\n[Command][command]\r\n[command]: /command-form\r\n\r\n> The command is always executed after the stamp has been applied. As with all commands, the result is used\r\n> to potentially navigate. If executed outside a UI the result is ignored.\r\n\r\n# Styling\r\n[Icon][icon] {color}[Color][color] [Classes][uiClasses]\r\n\r\n# Documentation\r\n{multiline}\r\n[Comment][comment]\r\n\r\n","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2020-06-19T08:33:30+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2024-11-04T16:23:34+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1730737414012,"ct":1594065169326,"a_depth":3,"a":["apps","47dd3677-407a-42ac-8542-20d8ecf10e4f","d646d88a-6eea-424b-81a1-2df3c44993c4"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1682517379309},{"id":"374d5754-a880-4ad6-8ba7-c5624204f158","v":"0d131fe26b402722","previous":{"v":"c7145e99f400a55a","p":"85385200-fc78-43d0-b347-039434329781","a":["apps","c978f91a-22e9-434c-9ad0-c9781eeae198","85385200-fc78-43d0-b347-039434329781"],"a_forms":["folder","application-form","folder"]},"p":"169e87e0-0379-48e1-8c94-8fadac5969bb","f":{"id":"form","v":"4fa42fcff3786d1e","text":"Form"},"data":{"name":"Bewerbungsunterlagen","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Name][name] {25|now}[Datum][datum]\n[datum]: date\n\n{file file-name-to-field=name}\n[Datei][datei]\n[datei]:file \"personal:help:bewerbungsunterlagen\"\n\n{multiline}\n[Text][text]\n\n","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2020-02-25T15:28:51+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2023-06-05T13:28:17+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1685971697515,"ct":1582644531923,"a_depth":3,"a":["apps","a590ce5b-28fc-4f85-9049-d006e1b8f880","169e87e0-0379-48e1-8c94-8fadac5969bb"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1588927890665},{"id":"b0e3875f-43ba-475d-9c92-98ed8da7b2ef","v":"aeb398cc83ec5775","previous":{"v":"511bddfe5518f479"},"p":"e7de598c-6f5a-4ab4-a33b-213ca86e489d","f":{"id":"form","v":"d497194b29933d26","text":"Form"},"data":{"name":"Konstruktion: Beschichtung","tags":"experimental-rendering","allowUndefinedFields":false,"definition":"{ae:select}\n[Typ][type]\n[type]: Select\n  - FLANGE <help=flange>: Flansch\n  - CORE: Kern\n  - CAVITY: Kavität\n  - COMPLETE: Komplett\n\n{ae:select}\n[Farbe][color]\n[color]: Select\n  - C10 <colored-pill=#000000>: C10 Standard (deep black)\n  - C30 <colored-pill=#D3D3D3>: C30 extra-matt (light grey)\n  - C32 <colored-pill=#0000FF>: C32 Blue powder (blue)\n  - C40 <colored-pill=#008000>: C40 gloss (grass green)\n  - C60 <colored-pill=#C2B280>: C60 007 (sand)\n  - C63 <colored-pill=#808080>: C63 diamont (grey)\n  - C66 <colored-pill=#FFFFFF>: C66 Edelweiß (white)\n  - C80 <colored-pill=#00FF00>: C80 LT (green)","functions":"","defaults":"","newTemplate":{"id":"","v":"","text":""},"newAction":{"id":"","v":"","text":""},"allowedChildrenForms":[],"commands":[],"namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"","v":"","text":""},"description":""},"locks":[],"created":{"at":"2022-01-18T13:18:00+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"modified":{"at":"2024-07-04T08:07:55+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720073275455,"ct":1718866006700,"a_depth":3,"a":["apps","deeef973-ce03-4557-bf75-75a059001767","e7de598c-6f5a-4ab4-a33b-213ca86e489d"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1689766787014},{"id":"3798ddaf-fd02-4b12-ae97-c545cd3dba01","f":{"id":"form","v":"5f508b9373050c50","text":"Form"},"v":"initial","p":"4c4390dd-b593-4bd1-8e6f-6a791cd234af","data":{"name":"Erinnerung","description":"","definition":"[Text][name]\n\n[Datum][datum]\n\n[datum]: Date","color":{"text":"Cyan - 500","id":"05155776-6864-4f90-88e5-34dda9a99aec","v":"initial"},"icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null}},"headerInfoStyle":"auto","defaultDesignStyle":"auto","semver":"1.0.0"},"locks":[],"lockRefs":[],"created":{"at":"2017-09-15T10:29:31+02:00","by":"","from":"","client":"import"},"modified":{"at":"2017-09-15T10:29:31+02:00","by":"","from":"","client":"import"},"t":1467644259358,"ct":1467644259358,"a":["apps","2a9f2f9c-28df-4418-8b85-b4158b35ed3d","4c4390dd-b593-4bd1-8e6f-6a791cd234af"],"a_forms":["folder","application-form","form-folder"],"a_depth":3,"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1467644255606},{"f":{"id":"folder","v":"f1e4977dbee77607","text":"Folder"},"p":"921c912f-d932-46d2-b061-ae7539e9a5a8","data":{"name":"Formulare","description":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null}}},"id":"4ff7b40d-67d1-4a31-bcf8-e8459db63855","v":"73574f63710b9c67","t":1467644265066,"ct":1467644265053,"previous":{"v":"initial"},"modified":{"at":"2017-09-15T10:29:31+02:00","by":"","from":"","client":"import"},"created":{"at":"2017-09-15T10:29:31+02:00","by":"","from":"","client":"import"},"locks":[],"lockRefs":[],"inheritedLocks":[null,null,null,null],"a":["apps","83c76376-420e-4231-9275-d0fe2ab47c32","921c912f-d932-46d2-b061-ae7539e9a5a8"],"a_forms":["folder","application-form","application-form"],"a_depth":3,"stamps":[],"dts":1467644261105},{"id":"88c49094-0126-4b9c-82e2-6617367f6807","f":{"id":"form","v":"5f508b9373050c50","text":"Form"},"v":"2e5c361154958446","p":"2d5b3e1c-5a2f-4e5a-8005-47373ea61666","previous":{"v":"initial"},"data":{"name":"Schulung","description":"","definition":"[Vorname][vorname]\n\n[Nachname][nachname]\n\n[Veranstaltung][name]\n\n[Veranstalter][veranstalter]\n\n[Veranstaltungsort][veranstaltungsort]\n\n[Datum][datum]\n[datum]: date\n\n[Uhrzeit][uhrzeit]\n\n[Bewilligt][bewilligt]\n[bewilligt]: switch\n\n[Bewertung][bewertung]\n[bewertung]: select\n    -\n    - sehr gut\n    - gut\n    - befriedigend\n    - ausreichend\n    - mangelhaft\n    - ungenügend\n    \n[ATF-Punkte][atfpunkte]\n\n[Zertifikat][zertifikat]\n[zertifikat]: file\n\n","color":{"text":"","id":"","v":null},"icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null}},"headerInfoStyle":"auto","defaultDesignStyle":"auto","semver":"2.0.0"},"locks":[],"lockRefs":[],"created":{"at":"2017-09-15T10:29:31+02:00","by":"","from":"","client":"import"},"modified":{"at":"2017-09-15T10:29:31+02:00","by":"","from":"","client":"import"},"t":1467644270396,"ct":1467644270377,"a":["apps","3a8b08c2-14ef-48ee-a5b8-2ede237892a9","2d5b3e1c-5a2f-4e5a-8005-47373ea61666"],"a_forms":["folder","application-form","folder"],"a_depth":3,"inheritedLocks":[null,null,null,null],"stamps":[]},{"id":"b761a694-27e9-4b16-b048-2c9c0c4cd971","v":"556b52e6ce60f2c3","previous":{"v":"eafe37c98cff480c"},"p":"25fda732-5296-4fab-8d4e-92c3e32ca2c0","f":{"id":"form","v":"42ef1fd37c206edb","text":"Form"},"data":{"name":"Nebenkosten Abrechnung (Mieter)","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"{readonly}[Vertrag][vertrag]  {readonly}[Datum][datum]\n{readonly}[Von][von] {readonly}[Bis][bis] {readonly}[Monate][monate]\n\n{readonly}\n[Größe (m²)][groesse]\n\n{readonly}[Summe (Tatsächliche Nebenkosten)][summe] {readonly}[Nebenkosten 1m²/Monat][nebenkostenProQuadratmeter]\n[summe]: number\n\n[nebenkostenProQuadratmeter]: number = functions.nebenkostenProQuadratmeter(summe, groesse, monate)\n\n{readonly}[Vertragliche Nebenkosten (pro Monat)][vertraglicheNebenkosten] {readonly}[Vertragliche Nebenkosten (Summe)][summeVertraglicheNebenkosten]\n[vertraglicheNebenkosten]: number\n[summeVertraglicheNebenkosten]: number = monate * vertraglicheNebenkosten\n\n{readonly}[Bereits bezahlt (Nebenkosten)][bereitsBezahlt]\n[bereitsBezahlt]: number\n\n\n[differenzStatus]: select = functions.differenzStatus(differenz)\n  - SMALLER: Überzahlung\n  - EQUAL: Differenz\n  - GREATER: Nachzahlung\n\n{show if differenz < 0|readonly}[Überzahlung][differenz] {show if differenz > 0|readonly}[Nachzahlung][differenz] {show if differenz === 0|readonly}[Differenz][differenz]\n[Bezahlt][bezahlt] [Bezahlt am][bezahltAm]\n\n{readonly}\n[Ausdruck][ausdruck]\n\n{readonly|ref list}\n[Mieteingänge][mieteingang]\n\n<!-- {attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove=true} -->\n\n\n{children}  \n[Positionen][position]\n[position]: /a1e6ab82-7c13-4a74-89e4-1a23e443e350 (0-n)\n\n[vertrag]: /b4b13fc6-7d06-4832-93b0-cd27405e269d\n[datum]: date\n[von]: date\n[bis]: date\n[monate]: number\n[groesse]: number\n[bezahlt]: switch\n[bezahltAm]: date\n[differenz]: number = functions.differenz(summe, bereitsBezahlt)\n[mieteingang]: /8b4121d2-1838-46b6-833f-43f6ded78011 (0-n)\n[ausdruck]: file\n<!-- [datei]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) -->","functions":"differenz(summe, bereitsBezahlt) {\n  return (summe || 0) - (bereitsBezahlt || 0)\n}\n\ndifferenzStatus(differenz) {\n  if (differenz < 0) {\n    return 'SMALLER'\n  }\n\n  if (differenz > 0) {\n    return 'GREATER'\n  }\n\n  return 'EQUAL'\n}\n\nnebenkostenProQuadratmeter(nebenkosten, vermieteteFlaeche, monate) {\n  function roundToDigits(number, digits) {\n    const power = Math.pow(10, digits)\n    return (Math.round(number * power) / power)\n  }\n\n  return roundToDigits(nebenkosten / vermieteteFlaeche / monate, 3)\n}","allowedChildrenForms":[],"commands":[],"description":"","theme":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2022-12-02T13:52:33+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-01-26T09:43:17+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1674726197495,"ct":1669989153370,"a_depth":3,"a":["apps","85d3c028-a61c-4be8-93d0-4366bc45752f","25fda732-5296-4fab-8d4e-92c3e32ca2c0"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1672757836766},{"id":"0a401e72-7ef0-40f4-ac90-360b8694a2aa","v":"initial","p":"dbd0bd68-3479-4032-9303-9d51615c27a7","f":{"id":"form","v":"a241685be918720e","text":"Form"},"data":{"name":"Component","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Name][name] {30}{text placeholder=E.g. RAM Stick A}[Notice][notice] \r\n\r\n{readonly}[Component Type][instructions] {hidden}[Has Subcomponents][hasSubComponents] [Assigned Device][device]\r\n\r\n[device]: /fb9f3c56-8bcf-43d4-a0d7-2a303791e90a\r\n[instructions]: /33b4d43f-ca46-46f7-98b6-0a077372188c\r\n\r\n[hasSubComponents]: Switch\r\n\r\n{hidden if !hasSubComponents}\r\n# Sub Components\r\n\r\n{ref inline inline-layout=\"2c8b15ba-8fed-44fd-89d1-04f859b4ee33\" list}\r\n[][components]\r\n[components]: /0a401e72-7ef0-40f4-ac90-360b8694a2aa (0-n)\r\n\r\n# Documentation\r\n\r\n## Serial Numbers\r\n\r\n{hidden if hasSerialNumbers && serialNumbers.length > 0}\r\n[This finished component has serial numbers][hasSerialNumbers]\r\n\r\n{show if hasSerialNumbers}\r\n{children}\r\n[][serialNumbers]\r\n\r\n> Note: Serial numbers of sub components are documented in the sub components\r\n\r\n[serialNumbers]: /d739ff5f-be4e-4eab-b466-c280d2819463 (0-n)\r\n\r\n[hasSerialNumbers]: Switch\r\n\r\n## Attachments\r\n\r\n{attachment}\r\n[][attachments]\r\n\r\n[attachments]: /6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2 (0-n)\r\n\r\n\r\n# Storage\r\n\r\n{component-storage-transaction}\r\n[Storage Transaction][storageTransaction]\r\n\r\n[storageTransaction]: /4beb7305-4b96-4fa8-b0d2-5fb898d183f0\r\n\r\n{multiline}\r\n[Comment][storageComment]\r\n\r\n{hidden}\r\n## Amounts\r\n\r\n[Usage][usage] [Unit][usageUnit]\r\n\r\n[usage]: Number\r\n\r\n[usageUnit]: Select\r\n  - CM: Centimeters (cm)\r\n  - G: Gramm (g)\r\n\r\n# Comment\r\n\r\n{editor}\r\n[][comment]","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2021-11-02T09:38:38+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-11-02T09:38:38+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1635845918188,"ct":1635845918188,"a_depth":3,"a":["apps","781ff5de-69db-49dc-99f0-f328b308cd7d","dbd0bd68-3479-4032-9303-9d51615c27a7"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1635845918317},{"id":"530cb8ec-47ef-4d15-9257-1d548798f5fe","v":"b6c3b6c1ea711a35","previous":{"v":"803d995b354d82d2"},"p":"e7de598c-6f5a-4ab4-a33b-213ca86e489d","f":{"id":"form","v":"29610695588f5980","text":"Form"},"data":{"name":"Vertrieb: Auftragsvorbereitung","tags":"experimental-rendering","allowUndefinedFields":true,"definition":"{hidden}[Name][name]\n\n[name]:= auftragsnummer + ' ' + projectName\n\n[Auftragsnummer][auftragsnummer] [Bezeichung][projectName]\n\n{collapsible|subtitle=\"informations about your rotational mould\"}\n## 1. Informationen zu Ihrem Werkzeug\n \n{readonly|attachment always-show-title=true width=200px height=null form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove=true}\n[Bild][image]\n[image]: /dbee6e16-d63a-493c-bba6-505f79918f9f \"Image\"\n\n{readonly|embedded document-query=\"p\" inline-only-fields=beschreibung}\n[Beschreibung][anfrageBeschreibung]\n\n{hidden|readonly}[Revisionsdaten][revisionFiles]\n[revisionFiles]: /ref (0-n)\n\n{collapsible|subtitle=\"Client, contact person & rotator\"}\n### Kunde, Ansprechpartner & Rotierer\n\n{readonly|embedded document-query=\"p\" inline-only-fields=customerName}\n[Anfrage][anfrage]\n[anfrage]: /9ae84206-e0bb-4d39-9200-066c2eaf0fe3\n\n{collapsible|subtitle=\"shrinkage allowance plastic\"}\n### Schwundzugabe Kunststoff\n\n[X %][plasticShrinkageAllowanceX] [Y %][plasticShrinkageAllowanceY] [Z %][plasticShrinkageAllowanceZ]\n\n{side-by-side}\n######\n[Welcher Kunststoff wird verwendet][plasticResin] {show if plasticResin == 'SONSTIGES'}[Sonderkunststoff][plasticResinSpecial]\n\n{ae:select}\n[plasticResin]: Select \"What resin will be used\"\n  - NONE: \n  - PE: PE\n  - XPE: X-PE\n  - PP: PP\n  - PA6: PA6\n  - PA12: PA12\n  - SONSTIGES: Sonstiges\n\n{ae:select}\n[Musterteil und sonstige Teile][patternPartAndOthers]\n[patternPartAndOthers]: Select \" Pattern part and others\"\n  - NONE: \n  - PLASTIC_PART_AND_INLAY: Kunststoffteil & Standardteile & Einleger\n  - PLASTIC_PART_AND_COMMON_PART_CUSTOMER: Kunststoffteil & Standardteile (Kunde)\n  - INLAY: Einleger\n  - COMMON_PART_CUSTOMER: Standardteile (Kunde)\n  - PLASTIC_PART: Kunststoffteil\n\n{collapsible|subtitle=\"number of mould- & loose parts\"}\n### Anzahl der Form- & Losteile \n\n[Formteile][numberOfMouldParts] [Losteile][numberOfLooseParts]\n\n[numberOfMouldParts]: number \"Number of mould parts\"\n[numberOfLooseParts]: number \"Number of loose parts\"\n\n{ae:select}\n[Herstellungsprozess][manufacturingProcess]\n[manufacturingProcess]: Select \"manufacturing process\"\n  - NONE: \n  - CNC: Rotationsform CNC\n  - FASTCAST: Rotationsform FastCast\n  - TRADIONAL <help=traditionell>: Rotationsform Kelch-Prozess \n  - CNC_FASTCAST: Rotationsform CNC & FastCast\n  - ALUMINIUM <help=traditionell>: Rotationsform CNC & Kelch-Prozess \n  - ROT_ALU: Rotationsform Aluminiumblech\n  - ROT_HYBRID: Rotationsform Hybrid\n  - TZF_CNC: Tiefziehform CNC\n  - TZF_FASTCAST: Tiefziehform FastCast\n  - TZF_KELCH <help=traditionell>: Tiefziehform Kelch-Prozess \n  - TZF_CNC_FASTCAST: Tiefziehform CNC & FastCast\n  - BW_CNC: Blaswerkzeug CNC\n  - BW_FASTCAST: Blaswerkzeug FastCast\n  - BW_KELCH <help=traditionell>: Blaswerkzeug Kelch-Prozess \n  - AKV: Abkühlvorrichtung\n  - EB_CNC: Elektrisch beheizte Form CNC\n  - EB_FASTCAST: Elektrisch beheizte Form FastCast\n  - EB_CNC_FASTCAST: Elektrisch beheizte Form CNC & FastCast\n\n{ae:select}[Neuwerkzeug / Folgewerkzeug][toolType] {hidden if toolType !== 'FOLLOW_ON_TOOL'}[alte Auftragsnummer][oldToolNumber]\n[toolType]: Select \"New Tool / duplicate-tool\"\n  - NONE:\n  - NEW_TOOL: Neuwerkzeug (new tool)\n  - FOLLOW_ON_TOOL: Folgewerkzeug (follow-on-tool)\n\n{ae:select}\n[Werkzeugqualität][toolQuality]\n[toolQuality]: Select \"Tool quality\"\n  - NONE: \n  - A: A-Form (A-mould)\n  - B: B-Form (B-mould)\n  - C: C-Form (C-mould)\n\n{ae:select}\n[Lastenheft][mouldSpecification]\n[mouldSpecification]: Select\n  - UNKNOWN: Nicht bekannt\n  - KNOWN: Lastenheft vorhanden\n  - NONE: Kein Lastenheft \n\n{collapsible|subtitle=\"demoulding direction\"}\n## 1.1 Entformungsrichtung\n\n{ae:select}\n[Entformung][demoulding]\n[demoulding]: Select \"Demoulding\"\n  - NONE: \n  - TABLE <help=\"lifting/scissor table\">: Hubtisch\n  - CRANE <help=\"crane\">: Kran\n  - MANUAL <help=\"manual demolding\">: manuelle Entformung\n\n[Auf welche Formseite soll die Maschinenaufnahme ?][mouldSideOfMountingPlate]\n[mouldSideOfMountingPlate]: \"Which mould halve should feature the mounting plate ?\"\n\n{collapsible|subtitle=\"clamps\"}\n## 1.2 Verschlussspanner\n\n{ae:select}\n[Welcher Verschlussspanner?][kindOfClamp]\n[kindOfClamp]: Select \"Which kind of clamp?\"\n  - NONE: \n  - CLAMP_MAUS_STEEL <help=\"Maus-Steel clamp\">: Maus-Stahl Spanner\n  - CLAMP_MOEVE <help=\"Möwe-clamp\">: Möwe-Spanner\n  - KISTENSPANNER_XL: Kistenspanner XL\n  - NO: keine\n  - SPIDER <help=\"Spider\">: keine\n\n{collapsible|subtitle=\"mould splitting\"}\n## 1.3 Trennung\n\n{ae:select}\n[Trennungsverlauf ist][mouldSplitLine]\n[mouldSplitLine]: Select \"Mould split-line is\"\n  - NONE: \n  - DRAWING <help=\"given by drawing\">: Vorgegeben nach Zeichnung \n  - FILE <help=\"given by file\">: Vorgegeben nach Daten \n  - TEMPLATE <help=\"given by template\">: Vorgegeben nach Muster \n  - FREE <help=\"free\">: Frei \n\n[Ausführung des Flansches][designOfTheFlange] [abgesetzt][flangeRecessed]\n\n{ae:select}\n[designOfTheFlange]: Select  \"Design of the flange\"\n  - NONE: \n  - 50_15: 50/15\n  - 40_13: 40/13\n\n[flangeRecessed]: switch\n  help:\n  ----\n  \n  **Abgesetzt**\n  <img src=\"/api/docs/6976650a-e9e6-45bb-b6ac-8c36ad810725/fields/datei/_content\" width=\"800px\">\n\n{ae:select}\n[Größe und Art der Dübel][specificationsOfDowels]\n[specificationsOfDowels]: Select \"Specifications of dowels\"\n  - NONE:\n  - MAUS_25 <help=\"Maus-Dowels \\\"big\\\"\">: Maus-Dübel \"groß\" Ø 25mm\n  - MAUS_16 <help=\"Maus-Dowels \\\"small\\\"\">: Maus Dübel \"klein\" Ø 16mm\n  - MASTER_15 <help=\"Masterdowel size 1\">: Meisterdübel Größe 1 Ø 15mm\n  - MASTER_22 <help=\"Masterdowel size 2\">: Meisterdübel Größe 2 Ø 22mm\n\n  help(MAUS_25):\n  ---\n  **Maus-Dübel \"groß\" Ø 25mm**\n  <img src=\"/api/docs/e3d3811a-2acb-4f52-8de1-d4e5edcef82d/fields/datei/_content\" width=\"600\">\n\n  help(MAUS_16):\n  ---\n  **Maus Dübel \"klein\" Ø 16mm**\n  <img src=\"/api/docs/126e2282-7719-4cda-914f-d96e691239e4/fields/datei/_content\" width=\"600\">\n\n  help(MASTER_15):\n  ---\n  **Meisterdübel Größe 1 Ø 15mm**\n  <img src=\"/api/docs/fa1a7ebb-7057-4ace-8737-7b77bcda9f6e/fields/datei/_content\" width=\"600\">\n\n  help(MASTER_22):\n  ---\n  **Meisterdübel Größe 2 Ø 22mm**\n  <img src=\"/api/docs/5fe2436e-0c5e-4fbc-ac4a-3dbbd1ea9734/fields/datei/_content\" width=\"600\">\n\n[Nut und Feder][tongueAndGroove]\n[tongueAndGroove]: switch \"Tongue & Groove\"\n  help:\n  ---\n  **Nut und Feder**\n  <img src=\"/api/docs/c88919ef-84f4-4a1c-88da-5b521d0a6c42/fields/datei/_content\" width=\"600\">\n\n\n{collapsible|subtitle=\"frame and clamps\"}\n## 1.4. Rahmen und Verschlüsse \n\n{ae:select}\n[Formrahmen][framing]\n[framing]: Select \"Framing\"\n  - NONE: \n  - STEEL_40x40x5 <help=\"mounting plate\">: Stahlrohr 40x40x5\n  - STEEL_40x40x3 <help=\"mounting plate\">: Stahlrohr 40x40x3\n  - STEEL_40x25x3 <help=\"mounting plate\">: Stahlrohr 40x25x3\n  - STEEL_30x30x3 <help=\"mounting plate\">: Stahlrohr 30x30x3\n  - LASERCUT <help=\"laser-cut-frame\">: Brennrahmen\n  - ALUMINIUM <help=\"aluminium tubing\">: Alurohrrahmen\n  - SPACE: Spaceframe\n  - LITE: Lite-Frame\n\n{ae:select}\n[Ausführung der Montierplatte][mountingPlate]\n[mountingPlate]: select \"Mounting plate\"\n  - NO: keine (no)\n  - CUSTOMER_PROVIDED: Wird vom Kunden gestellt\n  - MOUNTING_PLATE <help=\"mounting plate\">: Brennteil/Aufnahmeplatte\n  - STEEL_ANGLE <help=\"steel angle profil with hole pattern\">: Stahlwinkel mit Lochbild\n           \n[Montierplatte - Zeichnung / Daten vorhanden?][mountingPlateDrawingAvailable]\n[mountingPlateDrawingAvailable]: switch \"Drawing / file available\"\n\n[Abstellrahmen][parkingFrames]\n[parkingFrames]: switch \"Parking frames\"\n\n{ae:select}\n[Kranösen][liftingLugs]\n[liftingLugs]: Select \"lifting lugs\"\n  - NONE: \n  - LIFTING_LUGS_70x12 <help=\"lifting lugs\">: Kranöse 70x12\n  - LIFTING_LUGS_80x16 <help=\"lifting lugs\">: Kranöse 80x16\n  - EYEBOLT <help=\"eyebolt\">: Augenschraube\n  - NO: keine (no)\n\n  help(LIFTING_LUGS_70x12):\n  ---\n  **Kranöse 70x12**\n  \n  <img src=\"/api/docs/1721c4ea-cb49-463d-9758-fdf730e62778/fields/datei/_content\" width=\"600\">\n\n  help(LIFTING_LUGS_80x16):\n  ---\n  **Kranöse 80x16**\n  \n  <img src=\"/api/docs/1e877424-ee53-4bea-a9f6-72c2d6c72563/fields/datei/_content\" width=\"600\">\n\n  help(EYEBOLT):\n  ---\n  **Augenschraube**\n  \n  <img src=\"/api/docs/29cc34eb-e102-4877-99f5-9d52d7fc2762/fields/datei/_content\" width=\"600\">\n\n{ae:select}\n[Vorführungen][preCentring]\n[preCentring]: Select \"pre-centering\"\n  - NONE: \n  - FUNNEL_BIG <help=\"funnel \\\"big\\\"\">: Trichter \"groß\" \n  - FUNNEL_SMALL <help=\"funnel \\\"small\\\"\">: Trichter \"klein\" \n  - CENTERING_BRACKET <help=\"centering bracket\">: Schweifeisen \n  - FUNNEL_BIG_WITH_PTFE <help=\"funnel \\\"big\\\" with PTFE\">: Trichter \"groß\" mit PTFE \n  - FUNNEL_SMALL_WITH_PTFE <help=\"funnel \\\"small\\\" with PTFE\">: Trichter \"klein\" mit PTFE \n\n  help(FUNNEL_SMALL_WITH_PTFE):\n  ---\n  **Trichter \"klein\" mit PTFE**\n  \n  <img src=\"/api/docs/b212439e-5a0e-48b9-a8d3-cba329a40588/fields/datei/_content\" height=\"300\">\n\n  help(FUNNEL_SMALL):\n  ---\n  **Trichter \"klein\"**\n  \n  <img src=\"/api/docs/b252677e-d74e-40c6-acfa-07180cfb69f5/fields/datei/_content\" height=\"300\">\n\n  help(FUNNEL_BIG_WITH_PTFE):\n  ---\n  **Trichter \"groß\" mit PTFE**\n  \n  <img src=\"/api/docs/e5674013-3d5b-4505-a712-447b45f91ecf/fields/datei/_content\" height=\"300\">\n\n  help(FUNNEL_BIG):\n  ---\n  **Trichter \"groß\"**\n  \n  <img src=\"/api/docs/9ba54fe5-1c7b-47a8-b21f-948bc1274c9b/fields/datei/_content\" height=\"300\">\n\n  help(CENTERING_BRACKET):\n  ---\n  **Schweifeisen**\n  \n  <img src=\"/api/docs/6639e0ca-7e9a-4092-a23f-c29276aa0833/fields/datei/_content\" height=\"300\">\n\n\n{ae:select}\n[Abdrücker][pryPoints]\n[pryPoints]: Select \"pry points\"\n  - NONE: \n  - CUSTOMER_DEFAULT: Kunden Standard\n  - SQUARE_30x30: Vierkant 30x30\n  - MAUS_DEFAULT: Maus-Standard\n\n[Linear Führungen & Scharniere][slides] [Typ][slidesType]\n\n{ae:select}\n[slides]: Select \"slides & hinges\"\n  - NONE: \n  - ROLLONG_43_RUNNER_120: Rollon 43 mit Läufer 120 (with runner 120)\n  - ROLLONG_43_RUNNER_150: Rollon 43 mit Läufer 150 (with runner 150)\n  - ROLLONG_63_RUNNER_180: Rollon 63 mit Läufer 180 (with runner 180)\n  - ROLLONG_63_RUNNER_235: Rollon 63 mit Läufer 235 (with runner 235)\n  - TUBE_IN_TUBE: Rohr in Rohr (tube in tube guide)\n  - ANGLE_IN_ANGLE: Winkelführungen (angle in angle guide)\n  - HINGES: Scharnier (hinges)\n\n{ae:select}\n[slidesType]: Select\n  - NONE: \n  - SANDER_S60: Sander S60\n  - SANDER_S80: Sander S80\n  - SANDER_S100: Sander S100\n\n{collapsible|subtitle=\"identification marking\"}\n## 1.5 Sachkennzeichnung\n\n///{optional switch-field=dateClock}\n\n{15}[Datumsuhr][dateClock] {80}[Text][dateClockText]\n\n[dateClockText]: <optional=\"dateClock\" >\n\n[dateClock]: switch \"Date clock\"\n  help:\n  ---\n   **Datumsuhr**\n\n  <img src=\"/api/docs/cc31b3a8-74fd-4a8e-a140-6b7aa6e87713/fields/datei/_content\" width=\"600\">\n\n{optional switch-field=material}\n[Materialkennzeichung][materialText]\n[material]: switch \"Material\"\n\n{optional switch-field=itemNumber}\n[Artikelnummer][itemNumberText]\n[itemNumber]: switch  \"Item Number\"\n\n{optional switch-field=identificationPlate}\n[Typenschild][identificationPlateText]\n[identificationPlate]: switch \"identification plate\"\n\n{show if identificationPlate}\n[Ausführung Sachkennzeichnung][identificationMarking]\n\n{ae:select}\n[identificationMarking]: Select \"identification marking\"\n  - NONE: \n  - MILLED: eingefräst (milled)\n  - FIXED: fest (fixed)\n  - CHANGEABLE: wechselbar (changeable)\n\n{collapsible|subtitle=\"venting/breather\"}\n## 1.6 Entlüftung \n\n[Keine Entlüftung][noVenting]\n[noVenting]: switch\n\n{hidden if noVenting}\n###### \n\n[SupaVent][mediumMouldType]\n\n[Smartvent (für kleine Formen / for small moulds)][smallMouldType]\n[Intellivent (nur mit PTFE-Ring / only with PTFE-Ring)][ptfeRingType]\n\n{ae:select}\n[mediumMouldType]: Select \"für mittel große Formen / for medium sized moulds\"\n  - NONE: \n  - SUPAVENT_RJ1: SupaVent RJ1\n  - SupaVent_M19: SupaVent M19\n\n{ae:select}\n[smallMouldType]: Select\n  - NONE: \n  - SmartVent_LS8: SmartVent LS8\n  - SmartVent_VG13: SmartVent VG13\n  - SmartVent_G25: SmartVent G25\n\n{ae:select}\n[ptfeRingType]: Select\n  - NONE: \n  - BIG: Groß (big)\n  - SMALL: Klein (small)\n\n[Supa-, SmartVent mit PTFE-Halter][ptfeHolderType]\n[ptfeHolderType]: text \"with PTFE-holder\"\n\n[PTFE-Rohr][ptfePipeType]\n\n{ae:select}\n[ptfePipeType]: Select \"PTFE-pipe\"\n  - NONE: \n  - 40: Ø 40mm\n  - 30: Ø 30mm\n  - 25: Ø 25mm\n  - 20: Ø 20mm\n  - 15: Ø 15mm\n\n{optional switch-field=hasVentEmbeddedInSplitLine}[Donut][ventEmbeddedInSplitLineType]\n\n[hasVentEmbeddedInSplitLine]: switch \"Vent enbedded in splitline\"\n\n[ventEmbeddedInSplitLineType]: text \"Entlüftung in Teilung eingelegt\"\n\n[Einwegentlüftung][cigaretteFilterType]\n\n{ae:select}\n[cigaretteFilterType]: Select \"cigarettefilter\"\n  - NONE: \n  - 7_5: Ø 7.5mm\n  - 15: Ø 15mm\n\n{collapsible}\n## 1.7 Oberfläche (surface)\n\n{optional switch-field=surfaceIsIndustrial}[Industriell][surfaceIsIndustrialText]\n\n[surfaceIsIndustrial]: switch \"industrial\"\n\n[surfaceIsIndustrialText]: text <colored-square='#e6e6e6'>\n\n[Geschliffen][surfaceGrinded]\n\n{ae:select}\n[surfaceGrinded]: Select <colored-square='#6aa84f'> \"grinded\"\n  - NONE: \n  - P80: P80\n  - P120: P120\n  - P180: P180\n  - P240: P240\n  - P320: P320\n  - P600: P600\n  - POLISHED: poliert (polished)\n\n{optional switch-field=glassbeadBlasted}[Glassperlengestrahlt][glassbeadBlastedText]\n[glassbeadBlasted]: Switch \"glass-bead blasted\"\n\n[glassbeadBlastedText]: \n\n{optional switch-field=surfaceSandblasted}[Sandgestrahlt][surfaceSandblastedText]\n[surfaceSandblasted]: Switch \"sandblasted\"\n\n[surfaceSandblastedText]: <colored-square=\"#e69138\"> \n\n{optional switch-field=surfaceShotPeen}[Kugelgestrahlt][surfaceShotPeenText]\n[surfaceShotPeen]: Switch \"shot-peened\"\n\n[surfaceShotPeenText]: <colored-square=\"#cc0000\">\n\n{optional switch-field=corundumBlasted}[Korundgestrahlt][corundumBlastedText]\n[corundumBlasted]: Switch \"corundum blasted\"\n\n{optional switch-field=surfaceIsTreatedOther}[Sonstige][surfaceIsTreatedOtherText]\n\n[surfaceIsTreatedOther]: switch \"Other\"\n[surfaceIsTreatedOtherText]: <colored-square=\"#6fa8dc\">\n\n{container-css=background:#6fa8dc|show if surfaceIsTreatedOther}\n[surfaceOtherTreatment][surfaceOtherTreatment]\n\n{optional-comment-field=coating-comment}\n{collapsible|subtitle=\"coating\"}\n## 1.8 Beschichtung \n\n[Wird die Form beschichtet][isMouldCoated]\n[isMouldCoated]: switch \"is the mould coated\"\n\n{hidden if !isMouldCoated|children delete-on-remove=true}\n[Beschichtungen][coatings]\n[coatings]: /a77f917d-0d75-41b5-93e3-4c9da731ddbc (0-n)\n\n{multiline rows=5}\n[Coating Comment][coatingComment]\n\n{collapsible|subtitle=\"further specification\"}\n## 1.9 weitere Spezifikationen \n\n{rd:editor}\n[Weitere Spezifikationen][furtherSpecifications]\n\n\n&nbsp;","functions":"","defaults":"","newTemplate":{"id":"","v":"","text":""},"newAction":{"id":"","v":"","text":""},"allowedChildrenForms":[],"commands":[],"descendantCommands":[],"namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"44fcb1b4-940c-4dbe-a648-d004ffd840a5","v":"e22e6ed0e1fb64c3","text":"Default Form Theme"},"description":""},"locks":[],"created":{"at":"2021-12-15T12:31:53+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"modified":{"at":"2024-08-01T08:39:29+02:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1722494369107,"ct":1718891218428,"a_depth":3,"a":["apps","deeef973-ce03-4557-bf75-75a059001767","e7de598c-6f5a-4ab4-a33b-213ca86e489d"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1720419687338},{"id":"ab0a6c33-36a3-4347-9bb3-e73bf0a912f1","v":"43697404a8abad96","p":"35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f","f":{"id":"form","v":"dcc8032a347c59c7","text":"Form"},"data":{"name":"Ansprechpartner","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Name][name] {40}[Telefonnummer][telefon]\n\n[Email][email]","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2018-02-06T09:43:49+01:00","by":"","from":"","client":"server"},"modified":{"at":"2020-10-13T10:18:41+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1602584321739,"ct":1602584321739,"a_depth":3,"a":["apps","b791df37-6eef-4a3e-9066-1b79e0bdad31","35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"previous":{"v":"initial","f":{"id":"form","v":"af06aca6217d20c5","text":"Form"}},"dts":1519751177986},{"id":"3c8d23b1-8721-46f8-9baa-15ee91d2a750","v":"initial","previous":{"v":""},"p":"58cc45fb-3fb3-45e8-b61d-4b89899e357a","f":{"id":"form","v":"af06aca6217d20c5","text":"Form"},"data":{"name":"Sprint Eintrag","description":"","definition":"[Titel][name]\n\n[Datum][date]\n[date]: Date\n\n[Erledigt][finished]\n[Entfernt][removed]\n\n[Sprint Aufgabe][workItem]\n\n[finished]: switch\n[removed]: switch\n[workItem]: /a1a03095-df18-418e-8353-e8ac14b83ebe","functions":"","semver":"","allowedChildrenForms":[],"layout":{"id":"","v":"","text":""},"color":{"id":"","v":"","text":""},"iconName":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null}},"applicationLayoutOptions":{"id":"","v":"","text":""},"documentLayoutOptions":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2018-04-18T15:41:54+02:00","by":"","backedBy":"","from":"","client":"server"},"modified":{"at":"2018-04-18T15:41:54+02:00","by":"","backedBy":"","from":"","client":"server"},"t":1524058914798,"ct":1524058914798,"a_depth":3,"a":["apps","aed1ba1c-9095-4aca-8176-74a37325f0e5","58cc45fb-3fb3-45e8-b61d-4b89899e357a"],"a_forms":["folder","application-form","folder"],"inheritedLocks":[null,null,null,null],"stamps":[]},{"id":"3090c06d-faea-41f6-a6ea-846b900faad5","v":"024458506412742b","previous":{"v":"e1af6f5a83fc4844"},"p":"169e87e0-0379-48e1-8c94-8fadac5969bb","f":{"id":"form","v":"4fa42fcff3786d1e","text":"Form"},"data":{"name":"Personaldaten","tags":"","namedIcon":"fa fa-user","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"{hidden}\n[Name][name]\n[name]: = functions.name(vorname, nachname)\n\n{ref ancestor-form=df3870fe-b129-4535-9e52-c33a05fb4bce hide-path move-on-change}\n[Ordner][ordner]\n[ordner]: /4f3c48aa-8d12-4dfa-8a66-064d8a851a5b <required>\n\n## Zur Person\n\n{x=1|y=1}\n###  \n\n[Vorname][vorname] [Nachname][nachname] [Geburtsname][geburtsname]\n\n[Geburtsdatum][geburtsdatum]\n[geburtsdatum]: date\n\n\n{phone}\n[Telefon][telefon]\n[telefon]: text (0-n)\n\n{email}\n[E-Mail][email]\n[email]: text (0-n)\n\n{x=2|y=1}\n###  \n[Adresse][adresse]\n[adresse]: address\n\n{x=1|y=2|w=2}\n### \n\n[Familienstand][familienstand] [Geburtsort][geburtsort] \n\n{32}[Hat Kinder][kinder] {32|show if kinder}[Hat Kinder (unter 16 Jahren)][kinderUnter16]\n\n[Staatsangehörigkeit][staatsangehoerigkeit] [Religion][religion] [Ausbildungsberuf][ausbildungsberuf]\n\n[kinder]: switch\n[kinderUnter16]: switch\n\n{32}[Grad der Behinderung (GdB)][behinderungsGrad]\n\n{x=1|y=2|w=2}\n### Im Unternehmen\n\n[Position][position] [Personalnummer][personalnummer] [SSR-Nummer][ssrnummer]\n[ssrnummer]: text \"personal:help:ssrnummer\"\n\n[Entgeltgruppe/Tätigkeitsgruppe][taetigkeitsgruppe] [Ausgelernt/Approbation][datumAusgelerntApprobation] [Berufsjahre][berufsjahre]\n[datumAusgelerntApprobation]: date\n\n[Urlaubstage][urlaubstage] {multiline auto-grow}[Arbeitszeit (laut Vertrag)][arbeitszeit] {multiline auto-grow}[Arbeitstage][arbeitstage]\n\n[Gehalt (brutto)][gehalt] [Letzte Gehaltsanpassung][gehaltAnpassungBetrag] [Letzte Gehaltsanpassung][gehaltAnpassungDatum]\n[gehaltAnpassungDatum]: date\n\n[Eintrittsdatum][eintrittsdatum][Ende Probezeit][endeProbezeit]\n[eintrittsdatum]: date\n[endeProbezeit]: date\n\n[Abwesenheit von][abwesenheitVon] [Abwesenheit bis][abwesenheitBis]\n[abwesenheitVon]: date\n[abwesenheitBis]: date\n\n\n{show if (abwesenheitVon || abwesenheitBis)}[Grund der Abwesenheit][abwesenheitGrund] {show if (abwesenheitVon || abwesenheitBis) && abwesenheitGrund === 'ANDERE'}[Grund der Abwesenheit (Andere)][abwesenheitGrundAndere]\n[abwesenheitGrund]: Select\n  - ANDERE: Andere\n  - ELTERZEIT: Elternzeit\n  - MUTTERSCHUTZ: Mutterschutz\n\n{49}[Austrittsdatum][austrittsdatum]\n[austrittsdatum]: date\n\n{multiline auto-grow=true}\n[Notizen][notizen]\n\n[Gültige Impfung COVID-19 vorgelegt][corvid19Geimpft] {hidden if !corvid19Geimpft}[Impfung am][corvid19GeimpftAm] {hidden if !corvid19Geimpft}[Ablaufdatum Impfnachweis][corvid19AblaufdatumNachweis]\n[corvid19Geimpft]: switch\n[corvid19GeimpftAm]: date\n[corvid19AblaufdatumNachweis]: date\n\n## Unterlagen\n\n {children delete-on-remove=true}[Arbeitsvertrag][arbeitsvertrag]\n\n\n\n\n{children delete-on-remove=true}[Entgelt][entgelt]\n{children delete-on-remove=true}[Reisekosten][reisekosten] \n\n{children delete-on-remove=true}[Aus- und Weiterbildung][ausUndWeiterbildung]\n\n\n\n\n\n{children delete-on-remove=true}[Arbeitsunfähigkeitsbescheinigung][arbeitsunfaehigkeitsbescheinigung] {children delete-on-remove=true}[Arbeitsunfähigkeitsbescheinigung (Unfall)][arbeitsunfaehigkeitsbescheinigungUnfall]\n\n\n\n\n\n{children delete-on-remove=true}[Sozialversicherungsunterlagen][sozialversicherungsunterlagen]\n\n{children delete-on-remove=true}[Schwangerschaft/Mutterschutz/Elternzeit][elternzeit]\n\n\n\n\n\n\n\n\n{children delete-on-remove=true}[Bescheinigungen][bescheinigungen] {children delete-on-remove=true}[Betriebliche Altersversorgung/Versicherungen][betrieblicheAltersversorgungVersicherungen] \n\n{children delete-on-remove=true}[Arbeitsmedizinische Vorsorge][arbeitsmedizinischeVorsorge] \n\n{children delete-on-remove=true}[Beurteilungen][beurteilungen] {children delete-on-remove=true}[Mitarbeitergespräche][mitarbeitergespraeche]\n\n{children delete-on-remove=true}[Bewerbungsunterlagen][bewerbungsunterlagen] {children delete-on-remove=true}[Abmahnungen][abmahnungen]\n\n\n{children delete-on-remove=true}[Persönliche Ereignisse][persoenlicheEreignisse] \n\n{children delete-on-remove=true}[Aushändigungen/Belehrungen/Arbeitsmittel][aushaendigungenBelehrungenArbeitsmittel] {children delete-on-remove=true}[Firmen-PKW][firmenPkw]\n\n\n\n{children delete-on-remove=true}[Schlüssel][schluessel] {children delete-on-remove=true}[Tierhalter][tierhalter]\n\n\n\n\n\n\n\n{children delete-on-remove=true}[Sonstiges][sonstiges]\n\n\n[bewerbungsunterlagen]: /374d5754-a880-4ad6-8ba7-c5624204f158 (0-n) \"personal:help:bewerbungsunterlagen\"\n[arbeitsvertrag]: /170f4396-463e-4f28-8b19-01d2bca2b14b (0-n) \"personal:help:arbeitsvertrag\"\n[entgelt]: /1bd8882e-5919-40bc-92a8-09feac9f011c (0-n) \"personal:help:entgelt\"\n[reisekosten]: /5e3e7b0b-5b18-4361-a1ed-38c0adc7ab9b (0-n) \"personal:help:reisekosten\"\n[ausUndWeiterbildung]: /fbd71e49-5291-45f0-8edc-6a6830779afd (0-n) \"personal:help:ausUndWeiterbildung\"\n[arbeitsunfaehigkeitsbescheinigung]: /e35c0aed-fc11-4208-bb76-ce5aed2a2bc6 (0-n) \"personal:help:arbeitsunfaehigkeitsbescheinigung\"\n[arbeitsunfaehigkeitsbescheinigungUnfall]: /e35c0aed-fc11-4208-bb76-ce5aed2a2bc6 (0-n) \"personal:help:arbeitsunfaehigkeitsbescheinigungUnfall\"\n[arbeitsmedizinischeVorsorge]: /1c468ac6-a46a-4452-a59f-a9c2b40dc326 (0-n) \"personal:help:arbeitsmedizinischeVorsorge\"\n[mitarbeitergespraeche]: /2fdf2bd3-8a0a-4933-b808-f3eca82b03ea (0-n) \"personal:help:mitarbeitergespraeche\"\n[beurteilungen]: /aa40350f-b984-4539-821b-4c0b97e62d1c (0-n) \"personal:help:beurteilungen\"\n[sozialversicherungsunterlagen]: /cc674381-1d0c-40ca-8113-80dcc639d337 (0-n) \"personal:help:sozialversicherungsunterlagen\"\n[elternzeit]: /833c05f7-cc83-479b-a97a-c351af4b004e (0-n)\n[betrieblicheAltersversorgungVersicherungen]: /c72c2c54-599c-4756-87e9-de2726874b9c (0-n) \"personal:help:betrieblicheAltersversorungVersicherungen\"\n[bescheinigungen]: /3c1a4c38-e244-4299-94c6-f8ca7ee4db7a (0-n) \"personal:help:bescheinigungen\"\n[aushaendigungenBelehrungenArbeitsmittel]: /69f6deb6-fc05-471f-b60e-1a91653dfcf8 (0-n) \"personal:help:aushaendigungenBelehrungenArbeitsmittel\"\n[firmenPkw]: /c19b3733-4cb8-48a4-80fa-b7ab9fe44217 (0-n) \"personal:help:firmenPkw\"\n[persoenlicheEreignisse]: /83e172ca-8e87-472b-901e-c32cdc99bb4a (0-n) \"personal:help:persoenlicheEreignisse\"\n[abmahnungen]: /aead29b3-1293-413d-a70e-f1b2c68fa193 (0-n) \"personal:help:abmahnung\"\n[tierhalter]: /55d8e8d9-b2a5-4414-aa80-95083c90a2ab (0-n) \"personal:help:tierhalter\"\n[schluessel]: /c79a8171-022a-4c55-854c-a8119a7911ed (0-n) \"personal:help:schluessel\"\n[sonstiges]: /925e9bf5-2a2c-4f49-ad56-505d137e62ad (0-n)","functions":"name(vorname, nachname) {\n  const parts = [vorname, nachname]\n\n  return parts.filter(p => p != null).join(' ')\n}","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2020-05-08T08:51:30+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":""},"modified":{"at":"2025-02-07T09:20:21+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1738920021877,"ct":1588927890972,"a_depth":3,"a":["apps","a590ce5b-28fc-4f85-9049-d006e1b8f880","169e87e0-0379-48e1-8c94-8fadac5969bb"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[]},{"id":"a2dc56cc-cc32-44e5-8c87-433123cc7af5","v":"936a341e735fd890","p":"e7de598c-6f5a-4ab4-a33b-213ca86e489d","f":{"id":"form","v":"d497194b29933d26","text":"Form"},"data":{"name":"Fauser Kontakt","tags":"","allowUndefinedFields":false,"definition":"{hidden}\n[Fauser Kontakt Id][fauserId]\n\n{hidden}\n[Fauser Kunden Id][fauserCustomerId]\n\n[fauserId]: number\n[fauserCustomerId]: number\n\n[Position][position] \n\n[Anrede][anrede] [Vorname][vorname] [Nachname][nachname]\n\n{hidden}[Name][name]\n[name]: = `${vorname} ${nachname} (${position}) `\n\n{maus:phone}[Phone1][phone1]\n{maus:phone}[Phone2][phone2]\n{maus:phone}[Phone3][phone3]\n\n[Fax][fax]\n\n{maus:email}\n[E-Mail][email]\n[Webseite][webseite]\n\n[Kommentar][kommentar]\n","functions":"","defaults":"","newTemplate":{"id":"","v":"","text":""},"newAction":{"id":"","v":"","text":""},"allowedChildrenForms":[],"commands":[],"namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"","v":"","text":""},"description":""},"locks":[],"created":{"at":"2023-02-08T06:35:52+00:00","by":"427610a9-39dc-4014-9176-5f72aeb23263","from":"","client":"server"},"modified":{"at":"2023-06-21T06:23:42+00:00","by":"427610a9-39dc-4014-9176-5f72aeb23263","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1718866007112,"ct":1718866007112,"a_depth":3,"a":["apps","deeef973-ce03-4557-bf75-75a059001767","e7de598c-6f5a-4ab4-a33b-213ca86e489d"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"previous":{"v":"92a4f0923370f909","f":{"id":"form","v":"42ef1fd37c206edb","text":"Form"}},"meta":{"modified":{"at":"2024-06-20T08:46:47+02:00","by":"427610a9-39dc-4014-9176-5f72aeb23263","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}},"dts":1718866007163},{"id":"b12cba63-8003-4f84-a235-d67fd506b155","v":"0ce9faf6882c8bea","previous":{"v":"fda7943e1b8b7c67"},"p":"53b70eca-0cef-448b-9674-22a70a937eb1","f":{"id":"form","v":"cc65f983157bf1fd","text":"Form"},"data":{"name":"Kategorie","tags":"","namedIcon":"fa fa-tag","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Name][name]\n\n{color}\n[Farbe][farbe]","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2021-09-20T11:36:55+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-10-01T10:09:09+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1633082949867,"ct":1632137815810,"a_depth":3,"a":["apps","9d6ee173-26fe-4472-a271-7667f717094e","53b70eca-0cef-448b-9674-22a70a937eb1"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1633089948344},{"id":"62b0cd19-3103-4de3-a64e-b4bbfda6156a","v":"initial","p":"d73c1511-5bc0-4e4f-9e3b-b7ae22cd349b","f":{"id":"form","v":"4682421246fb9333","text":"Form"},"data":{"name":"Machine","label":"","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Name][name]\r\n\r\n[Gruppe][gruppe]\r\n[Kunde][kunde]\r\n\r\n{hidden}\r\n[GruppenId][gruppenId]\r\n\r\n[kunde]: Select\r\n  -\r\n  - curasystems GmbH\r\n  - Maus GmbH\r\n  - Wohlfeil\r\n  - Richter Hausverwaltung\r\n  - Schuplitz GmbH\r\n  - Randolf Graef\r\n  - Getränke Hetz\r\n  - Charité\r\n  - joimax - Vitegra\r\n  - MVZ Westpfalz\r\n  - Alice Hospital\r\n  - Praxisklinik Titisee-Neustadt\r\n  - Winghofer Medicum\r\n  - Zwickau - Radiologische Gemeinschaftspraxis\r\n  - Tierklinik Schneichel\r\n  - Kleintierpraxis Dr. Lewitschek\r\n\r\n[Kategorien][categories]\r\n\r\n{teamviewer password=not4all showId=true}[TeamViewer Id][teamviewerId] [TV 15][teamviewerVersion15]\r\n\r\n[teamviewerVersion15]: Switch\r\n\r\n{multiline}\r\n[Kommentar][comment]","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2021-11-02T09:38:59+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-11-02T09:38:59+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1635845939213,"ct":1635845939210,"a_depth":3,"a":["apps","6a2e3a55-42ca-4f04-ae62-0a2447c5f759","d73c1511-5bc0-4e4f-9e3b-b7ae22cd349b"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1635845939265},{"id":"2cb914fb-782c-4311-9b34-1734e523816f","v":"initial","p":"dbd0bd68-3479-4032-9303-9d51615c27a7","f":{"id":"form","v":"d17efc12b0cdc0be","text":"Form"},"data":{"name":"Activation","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Type][type]\r\n\r\n[type]: Select\r\n  - VITEGRA\r\n  - TABLET\r\n\r\n[Prompt][prompt]\r\n\r\n{vitegra:activation-code}\r\n[Code][code]\r\n\r\n# Comment\r\n{multiline}\r\n[][comment]\r\n\r\n# Details\r\n{readonly}{multiline}\r\n[][details]","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2021-11-02T09:38:39+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-11-02T09:38:39+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1635845919459,"ct":1635845919459,"a_depth":3,"a":["apps","781ff5de-69db-49dc-99f0-f328b308cd7d","dbd0bd68-3479-4032-9303-9d51615c27a7"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1635845919518},{"id":"573a7cb1-789b-4600-94a1-95edc76fc34c","v":"initial","p":"f6d2a869-980d-4654-ad06-0564b9aa747c","f":{"id":"form","v":"11f0636f2e853848","text":"Form"},"data":{"name":"Transport Manifest Entry","tags":"","definition":"\n[Root Document][rootDocument] {20}[Files][includeBinaryContent]\n\n[rootDocument]: Ref \"The root of a subtree to include\"\n[includeBinaryContent]: switch \"Whether to include binary content\"","functions":"","allowedChildrenForms":[],"description":""},"locks":[],"created":{"at":"2019-03-12T14:39:32+00:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2019-03-12T14:39:32+00:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1552401572390,"ct":1552401572390,"a_depth":3,"a":["apps","e4a62254-c6ab-4d0d-a9ae-81934093f6e2","f6d2a869-980d-4654-ad06-0564b9aa747c"],"a_forms":["folder","application-form","folder"],"inheritedLocks":[null,null,null,null],"stamps":[]},{"id":"b2e28e17-ca96-4b86-b471-3468390c37af","v":"initial","p":"dbd0bd68-3479-4032-9303-9d51615c27a7","f":{"id":"form","v":"b0b1f4808edd7503","text":"Form"},"data":{"name":"Item Distributor Information","tags":"","definition":"[Distributor][distributor]\r\n[distributor]: /fa174e00-7c64-4c28-8208-9d43afdf6bd3\r\n\r\n{currency unit=EUR}\r\n[Price][price]\r\n\r\n[price]: Number\r\n\r\n{editor}\r\n[Comment][comment]","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2021-11-02T09:38:35+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-11-02T09:38:35+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1635845915395,"ct":1635845915394,"a_depth":3,"a":["apps","781ff5de-69db-49dc-99f0-f328b308cd7d","dbd0bd68-3479-4032-9303-9d51615c27a7"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1635845915448},{"id":"4b32ce35-8fe8-44b5-90b8-4da80a9475d1","v":"4803dd398dc08464","previous":{"v":"initial"},"p":"ee59298b-ba97-4f92-9c29-c7db3d4dd7b7","f":{"id":"form","v":"3163b16b782f3ff6","text":"Form"},"data":{"name":"Matching Form Ancestor Condition","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Document has ancestor of form][form]\n[form]: /form","functions":"","allowedChildrenForms":[],"commands":[],"description":"","theme":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2023-05-02T08:31:59+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-05-02T08:32:13+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1683016333197,"ct":1683016319615,"a_depth":3,"a":["apps","bafa23ba-a0dc-406d-8854-77ea31b4ea4b","ee59298b-ba97-4f92-9c29-c7db3d4dd7b7"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[]},{"id":"f6bf4a0b-0f20-4295-b082-b8a106128f69","v":"6d379858b7db6dca","previous":{"v":"initial"},"p":"35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f","f":{"id":"form","v":"af06aca6217d20c5","text":"Form"},"data":{"name":"Feuchtigkeitsmessung","description":"","definition":"[Messwert][wert]\n[wert]: Number\n","functions":"","semver":"1.0.2","allowedChildrenForms":[],"layout":{"id":"","v":"","text":""},"color":{"id":"","v":null,"text":""},"iconName":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null}},"applicationLayoutOptions":{"id":"","v":"0","text":""},"documentLayoutOptions":{"id":"","v":"0","text":""}},"locks":[],"created":{"at":"2018-02-06T09:44:01+01:00","by":"","from":"","client":"server"},"modified":{"at":"2018-02-23T08:29:02+01:00","by":"","from":"","client":"server"},"t":1519370942086,"ct":1517906641556,"a_depth":3,"a":["apps","b791df37-6eef-4a3e-9066-1b79e0bdad31","35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1519370948447},{"id":"3b171b7f-ea90-4a19-84a0-ae25428717a0","v":"4da01412fd80ece5","previous":{"v":"171e6f21e10c5df6"},"p":"d5af4a55-e134-47cc-a10c-da22b8645ffb","f":{"id":"form","v":"f0e1626ad2b3fe9e","text":"Form"},"data":{"name":"Sms","description":"","tags":"","definition":"[From][from]\r\n\r\n> From is the name of the sender as it should appear\r\n> if not set the default is used from the service options.\r\n> Umlaute might not work here due to the way SMS work.\r\n\r\n{telephonenumber}\r\n[To][to]\r\n\r\n> A number of valid telephone numbers. If they do start with a single 0 or +\r\n> 0049 (Germany) is prepended instead as the numbers need to be valid internationally. \r\n\r\n[To Account][toAccount]\r\n\r\n[to]: (0-n)\r\n[toAccount]: /account  (0-n)\r\n\r\n> When using an account as target the mobile phone number\r\n> defined in the account is used as target\r\n\r\n{multiline}\r\n[Content][content]\r\n\r\n\r\n[name]:= from + ': ' + content \r\n\r\n\r\n","functions":"","semver":"","allowedChildrenForms":[],"useLock":false,"sharedLock":{"id":"","v":"","text":""},"creatorKeys":[],"cloneLock":{"id":"","v":"","text":""},"cloneRoles":[],"layout":{"id":"","v":"","text":""},"color":{"id":"","v":"","text":""},"iconName":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null}},"applicationLayoutOptions":{"id":"","v":"","text":""},"documentLayoutOptions":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2019-03-27T11:46:27+01:00","by":"21755d65-c561-473a-ad0d-bac9a744d145","from":"","client":"server"},"modified":{"at":"2020-08-06T08:38:12+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1596703092867,"ct":1596703092866,"a_depth":3,"a":["system","a9cb5a02-4c8f-4f0e-a29a-dfa9a977cecd","d5af4a55-e134-47cc-a10c-da22b8645ffb"],"a_forms":["system-folder-form","folder","c0d56b6e-a7f6-4eaf-9e3b-cfc592ade3be"],"inheritedLocks":[null,null,null,null],"stamps":[]},{"id":"d4d31804-1519-4866-8808-52a4f656a041","v":"800d1945c3dad09b","p":"d646d88a-6eea-424b-81a1-2df3c44993c4","f":{"id":"form","v":"24ab84939535fdcd","text":"Form","client":"server"},"data":{"name":"Workflow Act as Actor Right","tags":"Right","namedIcon":"fa fa-hand-holding","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Name][name]\r\n[name]: = functions.generateName(workflow, actors)\r\n\r\n[Workflow][workflow]\r\n[workflow]: /28920b1b-fc03-454a-817f-fd7e19133d92\r\n\r\n[Actors][actors]\r\n[actors]: /100118dc-bd29-4fa2-833e-366a475728ef (0-n)\r\n","functions":"generateName(workflowRef, actorRefs) {\r\n  const name = workflowRef.text || 'Unknown Workflow'\r\n  const actorNames = actorRefs.map(a => a.text).join(' & ')\r\n\r\n  return `${actorNames} - ${name}`\r\n}","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2020-06-24T07:54:42+00:00","by":"8e6c22aa-8c69-4ff8-919a-7032841cf636","from":"","client":"server"},"modified":{"at":"2020-07-01T08:46:47+00:00","by":"8e6c22aa-8c69-4ff8-919a-7032841cf636","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1593593207143,"ct":1593593207143,"a_depth":3,"a":["apps","47dd3677-407a-42ac-8542-20d8ecf10e4f","d646d88a-6eea-424b-81a1-2df3c44993c4"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"previous":{"v":"8bebf8a42d88c3bb","f":{"id":"form","v":"dcc8032a347c59c7","text":"Form","client":"server"}},"dts":1600337455193},{"id":"bb044165-bc50-4a7f-a231-a58e6c48b5c1","v":"bc24e7c6dd191dd0","previous":{"v":"6d8c5e7ac21c2334"},"p":"ee59298b-ba97-4f92-9c29-c7db3d4dd7b7","f":{"id":"form","v":"8c1496d16c344c2e","text":"Form"},"data":{"name":"Matching Form Condition","tags":"","definition":"[Document is of form][form]\r\n\r\n[form]: /form","functions":"","allowedChildrenForms":[],"description":""},"locks":[],"created":{"at":"2019-03-11T14:16:02+00:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","from":"","client":"server"},"modified":{"at":"2023-04-26T13:30:17+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1682515817912,"ct":1552313762495,"a_depth":3,"a":["apps","bafa23ba-a0dc-406d-8854-77ea31b4ea4b","ee59298b-ba97-4f92-9c29-c7db3d4dd7b7"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1682601886027},{"id":"e6f256c2-35de-4026-89f1-8641b6995290","v":"b452bd2b23f11b35","previous":{"v":"initial","f":{"id":"form","v":"af06aca6217d20c5","text":"Form"}},"p":"35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f","f":{"id":"form","v":"8c1496d16c344c2e","text":"Form"},"data":{"name":"Leistung","tags":"","definition":"{20}[Einheit][einheit] [Name][name] ","functions":"","allowedChildrenForms":[],"description":""},"locks":[],"created":{"at":"2019-05-03T14:03:51+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2019-05-03T14:03:51+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1556885031059,"ct":1556885031059,"a_depth":3,"a":["apps","b791df37-6eef-4a3e-9066-1b79e0bdad31","35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1519371036077},{"id":"fc3d1b75-fb96-469b-b92c-c51358404252","v":"ac73b82521549da6","previous":{"v":"6a314e73e0ae0330"},"p":"35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f","f":{"id":"form","v":"8c1496d16c344c2e","text":"Form"},"data":{"name":"Aufgestelltes Gerät","tags":"","definition":"{60|barcode barcode-field-name=seriennummer ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true}[Gerät][geraet] {readonly}[Betriebsstunden][betriebsstunden] {readonly}[Verbrauch KWh][verbrauch]\n\n[geraet]: /ddc6440e-022a-4b0c-80cb-7588b2daf51b\n[verbrauch]: number\n[betriebsstunden]: number\n\n# Aufbau\n\n[Datum][aufbaudatum]\n[aufbaudatum]: date\n\n[Zählerstand][aufbauzaehlerstand]\n[aufbauzaehlerstand]: number\n\n[Bild vorher][bildvorher]\n[bildvorher]: file\n\n# Abbau\n\n[Datum][abbaudatum] {20|now}[][abbaudatum]\n[abbaudatum]: date\n\n[Zählerstand][abbauzaehlerstand]\n[abbauzaehlerstand]: number\n\n[Bild nachher][bildnachher]\n[bildnachher]: file\n\n","functions":"","allowedChildrenForms":[],"description":""},"locks":[],"created":{"at":"2019-05-03T14:03:50+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2019-05-03T14:03:50+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1556885030910,"ct":1556885030909,"a_depth":3,"a":["apps","b791df37-6eef-4a3e-9066-1b79e0bdad31","35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1519371014153},{"id":"669c29f7-4732-4c54-92ac-e3aaf93c66fe","v":"4258bca682786ad8","previous":{"v":"7259a6b35c340e22","f":{"id":"form","v":"af06aca6217d20c5","text":"Form"}},"p":"35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f","f":{"id":"form","v":"8c1496d16c344c2e","text":"Form"},"data":{"name":"Erbrachte Leistung","tags":"","definition":"{80px}[Menge][menge]{select}[Leistung][leistung]\n\n[menge]: Number\n[leistung]: /e6f256c2-35de-4026-89f1-8641b6995290","functions":"","allowedChildrenForms":[],"description":""},"locks":[],"created":{"at":"2019-05-03T14:03:50+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2019-05-03T14:03:50+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1556885030937,"ct":1556885030937,"a_depth":3,"a":["apps","b791df37-6eef-4a3e-9066-1b79e0bdad31","35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1519371348353},{"id":"dcf7ec7a-fde9-4dd2-b861-90a3a81ab01c","f":{"id":"form","v":"5f508b9373050c50","text":"Form"},"v":"53ee4aa812e4ff66","p":"252f693f-4fdd-4aa4-8185-95c2e0539c62","previous":{"v":"08ddb3b564dd210a"},"data":{"name":"Termin","description":"","definition":"# Allgemein\n\n[Begriff][name]\n\n[Beschreibung][description]\n[description]: Text\n\n[Mitarbeiter][mitarbeiter]\n\n[mitarbeiter]:/d2ac3563-3c3f-4f02-b923-9b67abf98d10\n\n{15}[Ganztägig][allday] {datetime}[Start][start] {datetime}[Ende][end]\n\n[start]:Date\n[end]:Date\n[allday]: Switch\n\n# Erweitert\n\n{10|simple-color}[Farbe][color] {90|multi-select}[Wiederholung][daysOfWeek]\n\n[daysOfWeek]: Select (0-n)\n  - 1: Montag\n  - 2: Dienstag\n  - 3: Mittwoch\n  - 4: Donnerstag\n  - 5: Freitag\n  - 6: Samstag\n  - 7: Sonntag\n ","color":{"text":"","id":"","v":0},"icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null}},"headerInfoStyle":null,"defaultDesignStyle":null,"semver":"16.0.0"},"locks":[],"lockRefs":[],"created":{"at":"2017-09-15T10:29:32+02:00","by":"","from":"","client":"import"},"modified":{"at":"2017-09-15T10:29:32+02:00","by":"","from":"","client":"import"},"t":1467644306434,"ct":1467644302802,"a":["apps","21ba9d78-2545-4495-a24b-129f934de2f1","252f693f-4fdd-4aa4-8185-95c2e0539c62"],"a_forms":["folder","application-form","form-folder"],"a_depth":3,"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1467644306525},{"id":"c9739936-bf7b-4c09-a0d7-cd3454e1fc53","v":"5adfaf488feed232","previous":{"v":"75f4eb323a232561"},"p":"cd0dc80e-74a7-44b2-ac65-972cbf47562e","f":{"id":"form","v":"3163b16b782f3ff6","text":"Form"},"data":{"name":"Workflow On Stamp Transition","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[name]:= functions.name(stamp, forms)\n\n[On Stamp Type][stamp]\n[stamp]: /stamp-type\n\n{ref keep-open-after-selection}\n[Create documents of these forms][forms]\n[forms]: /form (0-n)\n\n\n{children}\n[Workflow Lock by Form][workflowLockByForm]\n[workflowLockByForm]: /895df5c7-6a42-484b-8437-22c43529c11c (0-n)","functions":"name(stamp, forms) {\n  const parts = []\n\n  if (stamp?.text) {\n    parts.push(stamp.text)\n  }\n\n  if (forms?.length) {\n    parts.push(...forms.map(f => f.text))\n  }\n\n  return parts.join(' ')\n}","allowedChildrenForms":[],"commands":[],"description":"","theme":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2023-05-03T13:17:34+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-05-30T15:26:19+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1685460379926,"ct":1683119854266,"a_depth":3,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1685088731101},{"id":"584e3569-9dc2-45e8-b89e-7afbbf3d0fe2","v":"7ed0781a4f2fcbf7","previous":{"v":"initial"},"p":"710a1fcc-d225-4fb3-a1aa-64684f397ee6","f":{"id":"form","v":"8c1496d16c344c2e","text":"Form"},"data":{"name":"Kundenmaschine","tags":"","definition":"{10}[Inaktiv][inaktiv] [Name][name] {url}[Url][url]\n[inaktiv]: switch\n\n{15}[Anzahl der Lizenzen][anzahlLizenzen] {ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true}[Bizpin Produkt][produkt]\n[anzahlLizenzen]: number\n\n\n\n[produkt]: /9bcbb6e8-5d66-4c3b-9132-8482e82e4594 (0-n)\n\n{multiline auto-expand=true}\n[Beschreibung][beschreibung]\n","functions":"","allowedChildrenForms":[],"description":""},"locks":[],"created":{"at":"2019-04-12T14:29:37+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2020-02-25T15:30:06+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1582644606514,"ct":1555079377507,"a_depth":3,"a":["apps","7ba1fc90-8094-44ce-8f5a-54a0da3999ed","710a1fcc-d225-4fb3-a1aa-64684f397ee6"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1548864446150},{"a":["apps","0af4f8a7-729e-4318-8f82-7e976555004e","0ae4ef2a-62fc-4042-b07e-e93a134fe055"],"a_depth":3,"a_forms":["folder","application-form","folder"],"created":{"at":"2025-08-19T14:38:23+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1755614303608,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[],"commands":[],"defaults":"","definition":"\n{ref query-limit-command=90a1b381-90a1-4dcb-b98b-15aa09c9b31b design=tag picker-design=\"search-card\"}\n[Design][design]\n\n \n{ref design=tag picker-design=\"search-card\"}\n[Design (no query limit)][design]\n\n\n[design]: /design-form","descendantCommands":[],"description":"","from":[],"functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"EpicPages Form FallbackDesign","namedIcon":"","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"relatedDocuments":[],"tags":"","theme":{"id":"","text":"","v":""},"to":[],"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"16a1fc2c7a734357"},"id":"38b0b6a1-46f6-41ed-ac20-4144aee4d57f","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2026-01-13T15:25:39+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"p":"0ae4ef2a-62fc-4042-b07e-e93a134fe055","previous":{"v":"f37cfc02cf2afc75"},"stamps":[],"t":1768317939747,"v":"88f6f6bb9b170ec7"},{"a":["apps","83c76376-420e-4231-9275-d0fe2ab47c32","247b574c-24bd-4cf1-88e6-69944b56e161"],"a_depth":3,"a_forms":["folder","application-form","form-folder"],"created":{"at":"2023-10-09T14:38:40+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1696862320617,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[],"commands":[],"defaults":"","definition":"","description":"","functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Verzeichnisse","namedIcon":"","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"tags":"transparent","theme":{"id":"","text":"","v":""},"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"d497194b29933d26"},"id":"c9210f72-f48e-47f5-92b8-c2d7a34eecfb","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2026-07-29T07:18:35+00:00","backedBy":"","by":"09763886-6748-4a56-8e0e-54a2293ee96b","client":"server","from":"","impersonatedBy":""},"p":"247b574c-24bd-4cf1-88e6-69944b56e161","previous":{"v":"7f334ba7eaa44abe"},"stamps":[],"t":1785309515685,"v":"c806ecce921462de"},{"a":["apps","0af4f8a7-729e-4318-8f82-7e976555004e","0ae4ef2a-62fc-4042-b07e-e93a134fe055"],"a_depth":3,"a_forms":["folder","application-form","folder"],"created":{"at":"2025-08-18T14:14:34+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1755526474009,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[],"commands":[],"defaults":"","definition":"[Name][name] {ref}[Document][document]\n\n[document]: /ref\n\n{json}\n[Parameters][parameters]\n","descendantCommands":[],"description":"","from":[],"functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"EpicPages State","namedIcon":"","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"relatedDocuments":[],"tags":"","theme":{"id":"","text":"","v":""},"to":[],"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"16a1fc2c7a734357"},"id":"f62598b6-1cbf-433c-ad71-aca731261f42","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2025-08-19T14:38:49+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"0ae4ef2a-62fc-4042-b07e-e93a134fe055","previous":{"v":"dc488f954973e3e7"},"stamps":[],"t":1755614329497,"v":"9a807140d9ee003d"},{"id":"232fd875-45c5-4ed8-9e8e-0120bcba31c5","v":"43bff5c928d3d14a","previous":{"v":"initial"},"p":"9b024049-2573-4921-acaa-3e172e9332d7","f":{"id":"form","v":"12ceedaed4c81b21","text":"Form"},"data":{"name":"Tablet Rückgabe","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Name][name]\n\n{sct:rueckgabe-unterschrift}\n[Unterschrift][unterschrift]\n\n[unterschrift]: File","functions":"","allowedChildrenForms":[],"commands":[],"description":"","theme":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2022-02-28T15:00:20+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-02-28T15:02:49+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1646060569312,"ct":1646060420036,"a_depth":3,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1646062009361},{"id":"83d025fd-16d4-472d-bbd2-36db20e832ee","v":"828a04d550d83e7c","previous":{"v":"937197c59b83016f"},"p":"1096c5df-2773-4914-9455-dc54e0f3e0e5","f":{"id":"form","v":"2e7e396282349d68","text":"Form"},"data":{"name":"Unterweisungsfrage","label":"","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"{editor}\r\n[Frage][frage]\r\n\r\n{hidden}[Name][name]\r\n[name]: = functions.shortenContent(frage, 40)\r\n\r\n{multiline auto-grow}\r\n[Kommentar][kommentar]\r\n\r\n{children}\r\n[Korrekte Antworten][antworten]\r\n[antworten]: /21d736d8-1761-4fd7-b448-160ee2ede152 (1-n)\r\n\r\n{children}\r\n[Falsche Antworten][falscheAntworten]\r\n[falscheAntworten]: /21d736d8-1761-4fd7-b448-160ee2ede152 (1-n)","functions":"shortenContent(content, maxLength) {\n  if (!content || content[0] !== '{') {\n    return ''\n  }\n  \n  let resultingText = ''\n\n  const data = JSON.parse(content)\n  const paragraphs = data.content.filter(o => o.type === 'paragraph')\n  for (const paragraph of data.content) {\n    if (paragraph.type !== 'paragraph' || !paragraph.content) {\n      continue\n    }\n\n    for (const content of paragraph.content) {\n      if (content.type !== 'text') {\n        continue\n      }\n\n      resultingText += ' ' + content.text\n\n      if (resultingText.length >= maxLength) {\n        return resultingText.substr(0, maxLength).trim() + '...'\n      }\n    }\n  }\n\n  return resultingText.trim()\n}","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2021-05-11T08:08:58+00:00","by":"8e6c22aa-8c69-4ff8-919a-7032841cf636","from":"","client":"server"},"modified":{"at":"2021-05-27T10:44:55+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1622112295761,"ct":1620720538100,"a_depth":3,"a":["apps","f416e371-07cc-4987-a6de-5934ef5ff3e4","1096c5df-2773-4914-9455-dc54e0f3e0e5"],"a_forms":["folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"dts":1622112272925},{"a":["system","b2533f7b-ea85-4680-99ed-d8e11be641b9","0e6939d6-9b93-4165-b6bd-977e4da881f3","627f5b74-3baf-45f8-a1d3-a5936839b844"],"a_depth":4,"a_forms":["system-folder-form","folder","application-form","form-folder"],"created":{"at":"2019-03-08T10:41:49+00:00","by":"c28abfb5-e53a-40df-8454-8cc8666cbe15","client":"server","from":""},"ct":1579186000845,"data":{"allowedChildrenForms":[],"commands":[],"definition":"{readonly if systemManaged}[Name][name]\n\n{hidden}[Managed by system][systemManaged]\n[systemManaged]: switch\n\n{readonly if systemManaged|multiline}\n[Description][description]\n\n{ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df prevent-pick-self hide-path}\n[Subgroup of group][group]\n[group]: /group\n\n{hidden|deprecated}\n[Keys][keys]\n[keys]: /key-form (0-n)\n\n{group-users}\n[Users][users]\n","description":"","functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Group","namedIcon":"fa fa-users","namedIconColor":"","tags":""},"f":{"id":"form","text":"Form","v":"a57e5af653d72344"},"id":"group","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-11-27T12:43:34+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"627f5b74-3baf-45f8-a1d3-a5936839b844","previous":{"v":"457d34588a2f6b32"},"stamps":[],"t":1764247414944,"v":"5fb8a8132b91eb95"},{"a":["system","b2533f7b-ea85-4680-99ed-d8e11be641b9","0e6939d6-9b93-4165-b6bd-977e4da881f3","627f5b74-3baf-45f8-a1d3-a5936839b844"],"a_depth":4,"a_forms":["system-folder-form","folder","application-form","form-folder"],"created":{"at":"2019-06-24T08:39:56+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":""},"ct":1719319447735,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[],"commands":[{"id":"474fbb13-6577-4514-8275-745edbc7d2d6","text":"Account","v":"3a39d117aa5ee5dc"},{"id":"6611ff1d-b8e0-49ee-b55f-7f018a732be6","text":"rd:Account","v":"c51ca53056c3cb09"}],"defaults":"","definition":"# General\n\n[Name][name]\n[name]: <sanitize=trim>\n\n[Password][password]\n[password]: password\n\n[Require Password Reset][resetPassword]\n[resetPassword]: Switch\n[Display Name][displayName]\n\nWhen not empty the display name is used instead of the user name for display purposes \n\n[Disabled][disabled]\n[disabled]: switch\n\n> Disabled accounts cannot log in\n\n# Access\n\n[Groups][groups]\n[groups]: /group (0-n)\n\n[Keys][keys]\n[keys]: /key-form (0-n)\n\n# Login\n\n## Settings\n\n[Autologout after][autologoutTime]\n\n[autologoutTime]: Select\n  - 0: 'Never'\n  - 60: 'After 1 Minute'\n  - 120: 'After 2 Minutes'\n  - 180: 'After 3 Minutes'\n  - 240: 'After 4 Minutes'\n  - 300: 'After 5 Minutes'\n  - 600: 'After 10 Minutes'\n  - 900: 'After 15 Minutes'\n  - 1800: 'After 30 Minutes'\n  - 2400: 'After 1 hour'\n  - 5800: 'After 2 hours'\n  - 10800: 'After 3 hours'\n\n> The account is automatically logged out after this period of inactivity.\n\n[Allow direct login][allowDirectLogin]\n[allowDirectLogin]: Switch\n\n> Allows to login directly from the login page without using a previously\n> logged-in authorized account\n\n\n[Is Group Account][isGroupAccount]\n[isGroupAccount]: Switch\n\n> Group accounts are shared by all users and can be set to automatically remain logged in on specific devices.\n \n[Is Administrator][isAdmin]\n[isAdmin]: Switch\n\n> Administrators are exempt from access control\n\n[Allow API Access for Services and/or Commands][allowApi]\n[allowApi]: Switch\n\n> Allows to be used to execute server-side `Commands` or use for `Services` to access\n> the server API. \n\n[Allow to impersonate other Accounts][allowImpersonate]\n[allowImpersonate]: Switch\n\n> Allows to impersonate other accounts\n\n{hidden if !allowImpersonate}\n[Limit impersonation][impersonationLimitation]\n[impersonationLimitation]: ref (0-n)\n\n[Developer mode accessible][allowDevMode]\n[allowDevMode]: switch\n\n> Allows to open Developer mode\n\n# Profile\n\n[Parent is Profile Page][parentIsProfile]\n[parentIsProfile]: Switch\n \n{hidden if parentIsProfile}\n[Profile Page][profilePage]\n[profilePage]: Ref\n\nWhen the user clicks on his login avatar, he is directed here.\n\n[Default Page][defaultPage]\n[defaultPage]: Ref\n \nWhen logging in the user will be redirected here by default.\n\n{hidden if parentIsProfile || profilePage.id}\n## Images\n\n[Profile Image][profileImage]\n[Banner Image][bannerImage]\n\n[profileImage]: File\n[bannerImage]: File\n\n# Contact \n\n{email}\n[Email][email]\n\n[Mobile Phone][mobilePhone]\n\n# Culture\n\n[User Interface Language][uilanguage]\n\n[uilanguage]: Select\n  - 'auto': 'Automatic'\n  - 'en-us': 'English - United States'\n  - 'de-de': 'German - Germany'\n  - 'ar-sa': 'Arabic - Saudi Arabia'\n\n[Locale][locale]\n\n[locale]: Select\n  - 'auto': 'Automatic'\n  - 'en-us': 'English - United States'\n  - 'de-de': 'German - Germany'\n  - 'ar-sa': 'Arabic - Saudi Arabia'\n","description":"In order to log-in an `Account` is required.","functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Account","namedIcon":"fa fa-passport","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"tags":"","theme":{"id":"","text":"","v":""},"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"d497194b29933d26"},"id":"account","inheritedLocks":[null,null,null,null,null],"locks":[],"meta":{},"modified":{"at":"2026-07-03T13:59:31+00:00","backedBy":"","by":"6b5e19d2-aa43-46cd-b486-0182161b6a85","client":"server","from":"","impersonatedBy":""},"p":"627f5b74-3baf-45f8-a1d3-a5936839b844","previous":{"v":"0e1cfe0e8bc730a0"},"stamps":[],"t":1783087171640,"v":"70e6858fc5dd49dc"},{"a":["system","b2533f7b-ea85-4680-99ed-d8e11be641b9","0e6939d6-9b93-4165-b6bd-977e4da881f3","627f5b74-3baf-45f8-a1d3-a5936839b844"],"a_depth":4,"a_forms":["system-folder-form","folder","application-form","form-folder"],"created":{"at":"2017-08-23T08:24:50+02:00","by":"","client":"import","from":""},"ct":1753789789882,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[],"commands":[],"defaults":"","definition":"[Name][name]\n\n[Shared][shared]\n[shared]: switch\n\n[Initials][initials]\n\n[Description][description]\n[description]: Text","descendantCommands":[],"description":"","from":[],"functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Lock","namedIcon":"fad fa-lock","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"relatedDocuments":[],"tags":"","theme":{"id":"","text":"","v":""},"to":[],"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"b0b69a951dde83ea"},"id":"lock-form","inheritedLocks":[null,null,null,null,null],"locks":[],"meta":{"modified":{"at":"2025-07-29T11:49:49+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null}},"modified":{"at":"2022-01-26T09:43:30+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"627f5b74-3baf-45f8-a1d3-a5936839b844","previous":{"f":{"id":"form","text":"Form","v":"dcc8032a347c59c7"},"v":"08409d50e21c3e98"},"stamps":[],"t":1753789789882,"v":"3e00ba50b555a39c"},{"id":"093b2f65-2a18-4639-9a6a-59b9006d52ee","v":"9347549b7951beb8","p":"351909be-5fd2-4c27-834d-3c094a8bade3","f":{"id":"form","v":"4fa42fcff3786d1e","text":"Form"},"data":{"name":"OP Kategorie","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Name][name]\n\n{color}\n[Farbe][color]","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2018-09-05T08:55:39+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2020-10-13T10:18:59+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1602584339722,"ct":1602584339722,"a_depth":4,"a":["apps","83c76376-420e-4231-9275-d0fe2ab47c32","5f76a5c6-0ebc-4a08-b5ae-84fd3176f9c9","351909be-5fd2-4c27-834d-3c094a8bade3"],"a_forms":["folder","application-form","application-form","folder"],"inheritedLocks":[null,null,null,null,null],"stamps":[],"previous":{"v":"4c349e9e1bd5307a","f":{"id":"form","v":"f0e1626ad2b3fe9e","text":"Form"}},"dts":1566477407359},{"id":"74a858ae-4f61-4533-a6f7-a1d56dc81c0f","v":"eb42e75be36f2df6","previous":{"v":"f46099de2b087d41"},"p":"5cdd2d20-7676-43e3-8997-e176dd3434ed","f":{"id":"form","v":"636c28c49e0bd3c5","text":"Form"},"data":{"name":"Optionlist questions: with agency","description":"","tags":"","definition":"[To][to]\n[Reply to][replyTo]\n[CC][cc]\n[BCC][bcc]\n[From][from]\n[Subject][subject]\n\n[Anrede][salutation]\n[Vorname][firstname]\n[Nachname][surname]\n\n[Projektname][projectName]\n\n[Shortlist Questions Link][questionsLink]\n\n[Template][template]\n[template]: ref\n","functions":"","semver":"","allowedChildrenForms":[],"layout":{"id":"","v":"","text":""},"color":{"id":"","v":"","text":""},"iconName":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null}},"applicationLayoutOptions":{"id":"","v":"","text":""},"documentLayoutOptions":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2018-05-30T14:43:57+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2019-05-03T14:02:43+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1556884963857,"ct":1527691437035,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","1116d922-d8df-4da5-a7c2-70191d07d929","5cdd2d20-7676-43e3-8997-e176dd3434ed"],"a_forms":["folder","application-form","folder","form-folder"],"inheritedLocks":[null,null,null,null,null],"stamps":[],"dts":1540904230237},{"id":"b5c3fe35-3566-4975-b10c-fc93cfb43297","v":"55a07aea1aef7919","previous":{"v":"3115ffdc2c52e009"},"p":"5cdd2d20-7676-43e3-8997-e176dd3434ed","f":{"id":"form","v":"636c28c49e0bd3c5","text":"Form"},"data":{"name":"Model Application for Casting: without Agency","description":"","tags":"","definition":"[To][to]\n[Reply to][replyTo]\n[CC][cc]\n[BCC][bcc]\n[From][from]\n[Subject][subject]\n\n[Vorname][firstname]\n[Nachname][surname]\n\n[Projektname][projectName]\n\n[Application Detail Questions Link][applicationDetailQuestionsLink]\n\n[Template][template]\n[template]: ref\n","functions":"","semver":"","allowedChildrenForms":[],"layout":{"id":"","v":"","text":""},"color":{"id":"","v":"","text":""},"iconName":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null}},"applicationLayoutOptions":{"id":"","v":"","text":""},"documentLayoutOptions":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2018-05-30T14:54:07+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2019-03-27T11:47:31+01:00","by":"21755d65-c561-473a-ad0d-bac9a744d145","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1553683651289,"ct":1527692047264,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","1116d922-d8df-4da5-a7c2-70191d07d929","5cdd2d20-7676-43e3-8997-e176dd3434ed"],"a_forms":["folder","application-form","folder","form-folder"],"inheritedLocks":[null,null,null,null,null],"stamps":[],"dts":1540904200075},{"id":"4ae738ec-fc22-40d8-8d2b-159b5652a173","v":"initial","p":"5cdd2d20-7676-43e3-8997-e176dd3434ed","f":{"id":"form","v":"f0e1626ad2b3fe9e","text":"Form"},"data":{"name":"Model on Optionlist: note","description":"","tags":"","definition":"[To][to]\n[Reply to][replyTo]\n[CC][cc]\n[BCC][bcc]\n[From][from]\n[Subject][subject]\n\n[Anrede][salutation]\n[Vorname][firstname]\n[Nachname][surname]\n\n[Projektname][projectName]\n\n[Template][template]\n[template]: ref\n","functions":"","semver":"","allowedChildrenForms":[],"useLock":false,"sharedLock":{"id":"","v":"","text":""},"creatorKeys":[],"cloneLock":{"id":"","v":"","text":""},"cloneRoles":[],"layout":{"id":"","v":"","text":""},"color":{"id":"","v":"","text":""},"iconName":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null}},"applicationLayoutOptions":{"id":"","v":"","text":""},"documentLayoutOptions":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2018-10-30T12:56:58+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2018-10-30T12:56:58+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1540904218116,"ct":1540904218115,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","1116d922-d8df-4da5-a7c2-70191d07d929","5cdd2d20-7676-43e3-8997-e176dd3434ed"],"a_forms":["folder","application-form","folder","form-folder"],"inheritedLocks":[null,null,null,null,null],"stamps":[],"dts":1540904218340},{"id":"fe83e9dd-c628-4109-b1b6-5461dec2d156","v":"c9ab13c7614530d5","previous":{"v":"1e23ae6853b6adb1"},"p":"5cdd2d20-7676-43e3-8997-e176dd3434ed","f":{"id":"form","v":"636c28c49e0bd3c5","text":"Form"},"data":{"name":"Model Application for Casting: with Agency","description":"","tags":"","definition":"[To][to]\n[Reply to][replyTo]\n[CC][cc]\n[BCC][bcc]\n[From][from]\n[Subject][subject]\n\n[Anrede][salutation]\n[Vorname][firstname]\n[Nachname][surname]\n\n[Username][username]\n\n[Projektname][projectName]\n\n[Application Detail Questions Link][applicationDetailQuestionsLink]\n\n[Template][template]\n[template]: ref\n","functions":"","semver":"","allowedChildrenForms":[],"layout":{"id":"","v":"","text":""},"color":{"id":"","v":"","text":""},"iconName":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null}},"applicationLayoutOptions":{"id":"","v":"","text":""},"documentLayoutOptions":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2018-05-30T14:15:20+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2019-03-27T11:47:30+01:00","by":"21755d65-c561-473a-ad0d-bac9a744d145","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1553683650894,"ct":1527689720247,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","1116d922-d8df-4da5-a7c2-70191d07d929","5cdd2d20-7676-43e3-8997-e176dd3434ed"],"a_forms":["folder","application-form","folder","form-folder"],"inheritedLocks":[null,null,null,null,null],"stamps":[],"dts":1540904190416},{"id":"0a985995-9335-45ae-a549-457fd9c4b9cc","v":"94b2ff2e11d17feb","previous":{"v":"004f30646811cea4"},"p":"5cdd2d20-7676-43e3-8997-e176dd3434ed","f":{"id":"form","v":"636c28c49e0bd3c5","text":"Form"},"data":{"name":"[backup] Model Application: Successful","description":"","tags":"","definition":"[To][to]\n[Reply to][replyTo]\n[CC][cc]\n[BCC][bcc]\n[From][from]\n[Subject][subject]\n\n[Vorname][firstname]\n[Nachname][surname]\n\n[Projektname][projectName]\n\n[Template][template]\n[template]: ref\n","functions":"","semver":"","allowedChildrenForms":[],"layout":{"id":"","v":"","text":""},"color":{"id":"","v":"","text":""},"iconName":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null}},"applicationLayoutOptions":{"id":"","v":"","text":""},"documentLayoutOptions":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2018-05-30T14:57:28+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2020-10-13T10:11:31+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1602583891515,"ct":1527692248518,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","1116d922-d8df-4da5-a7c2-70191d07d929","5cdd2d20-7676-43e3-8997-e176dd3434ed"],"a_forms":["folder","application-form","folder","form-folder"],"inheritedLocks":[null,null,null,null,null],"stamps":[],"dts":1540904215979},{"id":"5b36e2dc-cb89-46a0-8806-0db032bbc247","v":"f318c753b567565f","previous":{"v":"04aef4b17ae49458"},"p":"5cdd2d20-7676-43e3-8997-e176dd3434ed","f":{"id":"form","v":"636c28c49e0bd3c5","text":"Form"},"data":{"name":"Optionlist questions: without agency","description":"","tags":"","definition":"[To][to]\n[Reply to][replyTo]\n[CC][cc]\n[BCC][bcc]\n[From][from]\n[Subject][subject]\n\n[Anrede][salutation]\n[Vorname][firstname]\n[Nachname][surname]\n\n[Username][username]\n\n[Projektname][projectName]\n\n[Shortlist Questions Link][questionsLink]\n\n[Template][template]\n[template]: ref\n","functions":"","semver":"","allowedChildrenForms":[],"layout":{"id":"","v":"","text":""},"color":{"id":"","v":"","text":""},"iconName":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null}},"applicationLayoutOptions":{"id":"","v":"","text":""},"documentLayoutOptions":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2018-05-30T14:53:15+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2019-05-03T14:02:43+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1556884963868,"ct":1527691995475,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","1116d922-d8df-4da5-a7c2-70191d07d929","5cdd2d20-7676-43e3-8997-e176dd3434ed"],"a_forms":["folder","application-form","folder","form-folder"],"inheritedLocks":[null,null,null,null,null],"stamps":[],"dts":1540904239034},{"id":"5d7d1886-fee5-43f5-8b9d-d1a3e11fb2c4","v":"8fe612ce8e7a134f","previous":{"v":"0dcc1b15f77a28f6"},"p":"5cdd2d20-7676-43e3-8997-e176dd3434ed","f":{"id":"form","v":"636c28c49e0bd3c5","text":"Form"},"data":{"name":"Model Signup","description":"","tags":"","definition":"[To][to]\n[Reply to][replyTo]\n[CC][cc]\n[BCC][bcc]\n[From][from]\n[Subject][subject]\n\n[Anrede][salutation]\n\n[Vorname][firstname]\n[Nachname][surname]\n\n[Projektname][projectName]\n[Projektlink][projectLink]\n\n[Agentur Email][agencyEmail]\n\n[Username][username]\n\n[Confirmation Link][confirmationLink]\n[Profile Link][profileLink]\n\n[Template][template]\n[template]: ref\n\n","functions":"","semver":"","allowedChildrenForms":[],"layout":{"id":"","v":"","text":""},"color":{"id":"","v":"","text":""},"iconName":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null}},"applicationLayoutOptions":{"id":"","v":"","text":""},"documentLayoutOptions":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2018-05-30T14:03:36+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2019-05-03T14:02:43+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1556884963845,"ct":1527689016652,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","1116d922-d8df-4da5-a7c2-70191d07d929","5cdd2d20-7676-43e3-8997-e176dd3434ed"],"a_forms":["folder","application-form","folder","form-folder"],"inheritedLocks":[null,null,null,null,null],"stamps":[],"dts":1540904224142},{"id":"777ae286-69f6-4047-b3db-adde4e37db8e","v":"6377857712035565","previous":{"v":"72171b8a86237f48"},"p":"5cdd2d20-7676-43e3-8997-e176dd3434ed","f":{"id":"form","v":"636c28c49e0bd3c5","text":"Form"},"data":{"name":"[backup] Model Application: Failed","description":"","tags":"","definition":"[To][to]\n[Reply to][replyTo]\n[CC][cc]\n[BCC][bcc]\n[From][from]\n[Subject][subject]\n\n[Vorname][firstname]\n[Nachname][surname]\n\n[Projektname][projectName]\n\n[Template][template]\n[template]: ref\n","functions":"","semver":"","allowedChildrenForms":[],"layout":{"id":"","v":"","text":""},"color":{"id":"","v":"","text":""},"iconName":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null}},"applicationLayoutOptions":{"id":"","v":"","text":""},"documentLayoutOptions":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2018-05-30T14:55:29+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2020-10-13T10:11:31+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1602583891503,"ct":1527692129477,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","1116d922-d8df-4da5-a7c2-70191d07d929","5cdd2d20-7676-43e3-8997-e176dd3434ed"],"a_forms":["folder","application-form","folder","form-folder"],"inheritedLocks":[null,null,null,null,null],"stamps":[],"dts":1540904207614},{"id":"f56e0113-f097-4665-b04d-70d59acf8262","v":"3fd1df2eb42601aa","previous":{"v":"5b4b09d4e0670041"},"p":"c65a0941-942e-499f-8cd7-774aeeaf0a96","f":{"id":"form","v":"4fa42fcff3786d1e","text":"Form"},"data":{"name":"Tierarzt Terminvergabe","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[name]: = tierarzt.text\r\n\r\n{ref hide-path ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df}[Tierarzt][tierarzt]\r\n[tierarzt]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10\r\n\r\n{editor}\r\n[Fachgebiet][fachgebiet]\r\n \r\n{editor}\r\n[Kriterien zur Terminvergabe][terminvergabe] ","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2018-09-03T12:43:18+00:00","by":"2695f56c-96e6-4009-8e2f-d545ea1e02aa","from":"","client":"server"},"modified":{"at":"2024-02-13T13:19:43+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1707830383210,"ct":1602584357751,"a_depth":4,"a":["apps","83c76376-420e-4231-9275-d0fe2ab47c32","bbe4e999-ca2c-4be4-8740-d07f051be556","c65a0941-942e-499f-8cd7-774aeeaf0a96"],"a_forms":["folder","application-form","application-form","folder"],"inheritedLocks":[null,null,null,null,null],"stamps":[],"dts":1588927971151},{"id":"38aab2e1-ee5c-4fc2-90e9-962b4161ac22","v":"a2c69a25e038e314","previous":{"v":"4e836a9bc8c151ff"},"p":"d206ec4a-14b4-4425-9843-143e545ec76e","f":{"id":"form","v":"d497194b29933d26","text":"Form"},"data":{"name":"Medikament","tags":"tierklinik","allowUndefinedFields":false,"definition":"{multiline auto-grow=true}\n[Wirkstoff][wirkstoff]\n\n{multiline auto-grow=true}\n[Handelsname][name]\n\n{multiline auto-grow=true}\n[Wirkstoffklasse/- mechanismus][wirkstoffklasse]\n\n{multiline auto-grow=true}\n[Indikation/Einsatz][indikation]\n\n{multiline auto-grow=true}\n[Dosierung][dosierung]\n\n{multiline auto-grow=true}\n[Anwendung am Tier wenn nicht zugelassen: Umwidmung § 56 Abs. 2][anwendungAmTier]\n\n{multiline auto-grow=true}\n[Lagerungshinweis/ Anbruchsstabilität][lagerungshinweisAnbruchsstabilitaet]\n\n{multiline auto-grow=true}\n[Sonstiges][sonstiges]\n\n{multiline auto-grow=true}\n[Mitarbeiter][mitarbeiter]\n\n{hidden if !packungsbeilage.dataUrl}\n[Packungsbeilage (Nur Backup. Stattdessen Packungsbeilagen nutzen)][packungsbeilage]\n[packungsbeilage]: file\n\n{attachment form-id=\"6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2\" file-field=\"datei\" name-field=\"name\"}\n[Packungsbeilagen][packungsbeilagen]\n[packungsbeilagen]: /6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2 (0-n)","functions":"","defaults":"","newTemplate":{"id":"","v":"","text":""},"newAction":{"id":"","v":"","text":""},"allowedChildrenForms":[],"commands":[],"namedIcon":"far fa-pills","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"","v":"","text":""},"description":"Formular für Tierkliniken"},"locks":[],"created":{"at":"2019-04-12T14:29:38+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2023-10-12T10:56:00+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1697108160826,"ct":1697108157103,"a_depth":4,"a":["apps","83c76376-420e-4231-9275-d0fe2ab47c32","2c872bc9-30dc-45b4-9aed-8c1c89a69baa","d206ec4a-14b4-4425-9843-143e545ec76e"],"a_forms":["folder","application-form","application-form","folder"],"inheritedLocks":[null,null,null,null,null],"stamps":[],"dts":1553589852974},{"id":"e4af0e46-8a46-4741-935d-13e29befd300","v":"4466eb7cc8f4dd3f","previous":{"v":"fb5dc064e7ac4334"},"p":"d206ec4a-14b4-4425-9843-143e545ec76e","f":{"id":"form","v":"d497194b29933d26","text":"Form"},"data":{"name":"Medikament","tags":"pferdeklinik","allowUndefinedFields":false,"definition":"{multiline auto-grow=true}\n[Wirkstoff][wirkstoff]\n\n{multiline auto-grow=true}\n[Handelsname][name]\n\n{multiline auto-grow=true}\n[Wirkstoffklasse/- mechanismus][wirkstoffklasse]\n\n{multiline auto-grow=true}\n[Zugelassen für (Tierart)][zugelassenfuer]\n\n{multiline auto-grow=true}\n[Indikation/Einsatz][indikation]\n\n{multiline auto-grow=true}\n[Dosierung][dosierung]\n\n{multiline auto-grow=true}\n[Anwendung am Pferd wenn nicht zugelassen: Umwidmung § 56 Abs. 2][anwendung]\n\n{multiline auto-grow=true}\n[Anwendung bei LM Pferd /Tier? Wartezeit][anwendungLM]\n\n{multiline auto-grow=true}\n[Sonstiges][sonstiges]\n\n{multiline auto-grow=true}\n[Mitarbeiter][mitarbeiter]\n\n{hidden if !packungsbeilage.dataUrl}\n[Packungsbeilage (Nur Backup. Stattdessen Packungsbeilagen nutzen)][packungsbeilage]\n[packungsbeilage]: file\n\n{attachment form-id=\"6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2\" file-field=\"datei\" name-field=\"name\"}\n[Packungsbeilagen][packungsbeilagen]\n[packungsbeilagen]: /6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2 (0-n)","functions":"","defaults":"","newTemplate":{"id":"","v":"","text":""},"newAction":{"id":"","v":"","text":""},"allowedChildrenForms":[],"commands":[],"namedIcon":"far fa-pills","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"","v":"","text":""},"description":"Formular für Pferdekliniken"},"locks":[],"created":{"at":"2019-03-11T09:30:08+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2023-10-12T10:55:54+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1697108154557,"ct":1697108149356,"a_depth":4,"a":["apps","83c76376-420e-4231-9275-d0fe2ab47c32","2c872bc9-30dc-45b4-9aed-8c1c89a69baa","d206ec4a-14b4-4425-9843-143e545ec76e"],"a_forms":["folder","application-form","application-form","folder"],"inheritedLocks":[null,null,null,null,null],"stamps":[],"dts":1547036952791},{"id":"right","v":"e0473fc6df8c444c","previous":{"v":"07059f6872810aa2","p":"system-forms","a":["system","system-forms"]},"p":"627f5b74-3baf-45f8-a1d3-a5936839b844","f":{"id":"form","v":"8c1496d16c344c2e","text":"Form"},"data":{"name":"Right","tags":"","definition":"[Name][name]\n\n{multiline}\n[Description][description]\n","functions":"","allowedChildrenForms":[],"description":""},"locks":[],"created":{"at":"2019-01-28T11:46:11+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2022-01-26T09:43:55+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1643190235628,"ct":1548675971022,"a_depth":4,"a":["system","b2533f7b-ea85-4680-99ed-d8e11be641b9","0e6939d6-9b93-4165-b6bd-977e4da881f3","627f5b74-3baf-45f8-a1d3-a5936839b844"],"a_forms":["system-folder-form","folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null,null],"stamps":[],"dts":1552906931282},{"id":"3dc78392-be3d-4804-996e-df4bcd1c5ce4","v":"c41879bed54ee23a","previous":{"v":"ace8a3dcf01d9bef"},"p":"91352b74-c5e5-4c05-aa68-f13b0b723f35","f":{"id":"form","v":"02cb7a987693d08b","text":"Form"},"data":{"name":"Stammdaten","tags":"","namedIcon":"fas fa-archive","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Name][name]","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2019-04-12T14:29:29+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2020-10-13T10:18:52+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1602584332830,"ct":1602584332829,"a_depth":4,"a":["apps","83c76376-420e-4231-9275-d0fe2ab47c32","ba440134-1703-495e-b869-0f0c8d447f75","91352b74-c5e5-4c05-aa68-f13b0b723f35"],"a_forms":["folder","application-form","application-form","folder"],"inheritedLocks":[null,null,null,null,null],"stamps":[],"dts":1669909650658},{"id":"c91f85c0-63af-48ac-bc69-94561b27025a","v":"77c000817d7cf4da","previous":{"v":"f1f06023271151a2"},"p":"91352b74-c5e5-4c05-aa68-f13b0b723f35","f":{"id":"form","v":"02cb7a987693d08b","text":"Form"},"data":{"name":"IT-Systeme","tags":"","namedIcon":"fas fa-desktop","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Name][name]\r\n\r\n{children}[Berechtigte Rollen][berechtigteRollen]\r\n[berechtigteRollen]: /0697d5e8-13be-40b8-bfb7-1159a5de5795 (0-n)","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2018-05-24T16:28:36+02:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","from":"","client":"server"},"modified":{"at":"2020-10-13T10:18:53+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1602584333314,"ct":1588927857145,"a_depth":4,"a":["apps","83c76376-420e-4231-9275-d0fe2ab47c32","ba440134-1703-495e-b869-0f0c8d447f75","91352b74-c5e5-4c05-aa68-f13b0b723f35"],"a_forms":["folder","application-form","application-form","folder"],"inheritedLocks":[null,null,null,null,null],"stamps":[],"dts":1534500794637},{"id":"2b4d7b0d-1b7c-49b7-956c-ab1b701fbe3d","v":"053ccf0c9ac1076a","previous":{"v":"fb06ec5d93f7e7aa","f":{"id":"form","v":"636c28c49e0bd3c5","text":"Form"}},"p":"91352b74-c5e5-4c05-aa68-f13b0b723f35","f":{"id":"form","v":"cc65f983157bf1fd","text":"Form"},"data":{"name":"Dashboard DSGVO","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Name][name]\n\n{ref list=true}\n[Navigations-Buttons][buttons]\n[buttons]: /3cf04f76-f463-4b98-9c73-78df68374ede (0-n)","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2018-05-24T16:28:36+02:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","from":"","client":"server"},"modified":{"at":"2021-07-13T14:29:26+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1626186566830,"ct":1584004265262,"a_depth":4,"a":["apps","83c76376-420e-4231-9275-d0fe2ab47c32","ba440134-1703-495e-b869-0f0c8d447f75","91352b74-c5e5-4c05-aa68-f13b0b723f35"],"a_forms":["folder","application-form","application-form","folder"],"inheritedLocks":[null,null,null,null,null],"stamps":[],"dts":1669907851355},{"id":"5a191229-b708-4242-9c44-8a49376c46b7","v":"initial","p":"5cdd2d20-7676-43e3-8997-e176dd3434ed","f":{"id":"form","v":"f0e1626ad2b3fe9e","text":"Form"},"data":{"name":"Emails Outgoing","description":"","tags":"","definition":"[Name][name]","functions":"","semver":"","allowedChildrenForms":[],"useLock":false,"sharedLock":{"id":"","v":"","text":""},"creatorKeys":[],"cloneLock":{"id":"","v":"","text":""},"cloneRoles":[],"layout":{"id":"","v":"","text":""},"color":{"id":"","v":"","text":""},"iconName":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null}},"applicationLayoutOptions":{"id":"","v":"","text":""},"documentLayoutOptions":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2018-10-30T12:56:20+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2018-10-30T12:56:20+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1540904180842,"ct":1540904180841,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","1116d922-d8df-4da5-a7c2-70191d07d929","5cdd2d20-7676-43e3-8997-e176dd3434ed"],"a_forms":["folder","application-form","folder","form-folder"],"inheritedLocks":[null,null,null,null,null],"stamps":[],"dts":1602583891604},{"id":"7715cc20-f7b2-43df-bc47-8792f168b137","v":"initial","p":"5cdd2d20-7676-43e3-8997-e176dd3434ed","f":{"id":"form","v":"f0e1626ad2b3fe9e","text":"Form"},"data":{"name":"Emails Sent","description":"","tags":"","definition":"[Name][name]","functions":"","semver":"","allowedChildrenForms":[],"useLock":false,"sharedLock":{"id":"","v":"","text":""},"creatorKeys":[],"cloneLock":{"id":"","v":"","text":""},"cloneRoles":[],"layout":{"id":"","v":"","text":""},"color":{"id":"","v":"","text":""},"iconName":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null}},"applicationLayoutOptions":{"id":"","v":"","text":""},"documentLayoutOptions":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2018-10-30T12:56:22+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2018-10-30T12:56:22+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1540904182831,"ct":1540904182831,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","1116d922-d8df-4da5-a7c2-70191d07d929","5cdd2d20-7676-43e3-8997-e176dd3434ed"],"a_forms":["folder","application-form","folder","form-folder"],"inheritedLocks":[null,null,null,null,null],"stamps":[],"dts":1555078433516},{"id":"9d799d7e-fac8-40dc-aab4-bce2055c3c0c","v":"8b3a364fc44d6f2a","previous":{"v":"ac6519f8d1a31243"},"p":"5cdd2d20-7676-43e3-8997-e176dd3434ed","f":{"id":"form","v":"84ffcfcc2f925959","text":"Form"},"data":{"name":"Email Template","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Name][name]\n\n{json}\n[Preview data][previewData]\n\n> Emails can have both HTML and pure text content at the same time. The type of content displayed is determined by the receivers email client.\n\n{preview data-field=previewData}[HTML preview][html] {html}[HTML Template][html]\n\n{preview data-field=previewData}[Text preview][text] {plaintext}[Text template][text]","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2018-06-07T11:23:35+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2020-10-13T10:11:31+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1602583891598,"ct":1602583891593,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","1116d922-d8df-4da5-a7c2-70191d07d929","5cdd2d20-7676-43e3-8997-e176dd3434ed"],"a_forms":["folder","application-form","folder","form-folder"],"inheritedLocks":[null,null,null,null,null],"stamps":[],"dts":1555078433290},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","680a53ff-2457-41b4-aa4e-d832af3bce52"],"a_depth":4,"a_forms":["folder","application-form","form-folder","folder"],"created":{"at":"2026-05-07T14:58:42+00:00","backedBy":"","by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":""},"ct":1778165922863,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[],"commands":[],"defaults":"","definition":"[name]: = decisionName\n\n## Klassifikation\n\n[Kategorie][category]\n[category]: Select\n    - NONE:\n    - ABLAUF_PILOTIERUNG: Ablauf Pilotierung\n    - AUFLAGENERFUELLUNG: Auflagenerfüllung\n    - WIEDERVORSTELLUNG: Wiedervorstellung\n    - ANDERES: Anderes\n\n{60px|action hide-label expand-icon}[Erledigt][completed] [Name / ITM-Nummer][decisionName] \n[completed]: Switch \n[decisionName]: Text\n\n[Ablaufdatum][expiryDate] \n[expiryDate]: Date\n\n## Verantwortlichkeiten\n\n{employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Verantwortliche Person][responsible]\n[responsible]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n)\n\n{employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Zuständiger BITM][responsibleBitm]\n[responsibleBitm]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n)\n\n## Beschluss\n\n{multiline auto-grow max=1500}\n[Beschreibung / Beschlusstext][description]\n[description]: Text <max=1500>\n\n{multiline auto-grow max=1500}\n[Ergebniskommentar][resultComment]\n[resultComment]: Text <max=1500>\n\n{readonly|embed}\n[Interner Kommentar ITA][internalItaComment]\n[internalItaComment]: /d6fcaa71-ee8a-4c89-a066-6fff5d35b4d5","descendantCommands":[],"description":"","from":[],"functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Beschlussergebnis","namedIcon":"","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"relatedDocuments":[],"tags":"","theme":{"id":"","text":"","v":""},"to":[],"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"c2759612aee0e8c4"},"id":"7bcd74d7-106e-4076-8d36-cdff37d162b9","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-05-07T15:05:58+00:00","backedBy":"","by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":""},"p":"680a53ff-2457-41b4-aa4e-d832af3bce52","previous":{"v":"9dcebbc359403d95"},"stamps":[],"t":1778166358208,"v":"649e1a077611c2c7"},{"a":["apps","089481c4-a42f-4a98-9bc9-12e9f1131f4b","5fa71c32-0186-4007-92a9-f03a32b0ff33","f008b3c3-3f60-4d12-b0b8-4fa95bc57936"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form-folder"],"created":{"at":"2025-04-11T07:56:10+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"ct":1744358170711,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[],"commands":[],"defaults":"","definition":"[Spaltenname][name]\n\n[Feld Name][fieldName]\n[fieldName]: text\n\n{color}\n[Farbe][color]\n\n[Filter][filter]\n[filter]: text","descendantCommands":[],"description":"","from":[],"functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Column-Select-Text","namedIcon":"","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"relatedDocuments":[],"tags":"","theme":{"id":"","text":"","v":""},"to":[],"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"b0b69a951dde83ea"},"id":"0433f3dc-f144-4f59-823e-8f0d32118ebe","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-04-14T08:53:44+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"f008b3c3-3f60-4d12-b0b8-4fa95bc57936","previous":{"v":"94141652c0b13e20"},"stamps":[],"t":1744620824832,"v":"c394a6706f4d3acf"},{"a":["apps","089481c4-a42f-4a98-9bc9-12e9f1131f4b","5fa71c32-0186-4007-92a9-f03a32b0ff33","f008b3c3-3f60-4d12-b0b8-4fa95bc57936"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form-folder"],"created":{"at":"2025-04-14T13:57:48+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"ct":1744639068459,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[],"commands":[],"defaults":"","definition":"[Spaltenname][name]\n\n[Feld Name][fieldName]\n[fieldName]: text\n\n{color}\n[Farbe][color]\n\n[Filter][filter]\n[filter]: /ref","descendantCommands":[],"description":"","from":[],"functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Column-References","namedIcon":"","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"relatedDocuments":[],"tags":"","theme":{"id":"","text":"","v":""},"to":[],"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"b0b69a951dde83ea"},"id":"d6c394cd-7e18-4602-a222-eaf419ff9922","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-04-14T13:58:01+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"f008b3c3-3f60-4d12-b0b8-4fa95bc57936","previous":{"v":"initial"},"stamps":[],"t":1744639081389,"v":"48b0f14fbfcff2d1"},{"a":["apps","089481c4-a42f-4a98-9bc9-12e9f1131f4b","5fa71c32-0186-4007-92a9-f03a32b0ff33","f008b3c3-3f60-4d12-b0b8-4fa95bc57936"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form-folder"],"created":{"at":"2025-04-11T08:24:10+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"ct":1744359850077,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[],"commands":[],"defaults":"","definition":"[Spaltenname][name]\n\n[Feld Name][fieldName]\n[fieldName]: text\n\n{color}\n[Farbe][color]\n\n[Filter][filter]\n[filter]: switch","descendantCommands":[],"description":"","from":[],"functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Column-Switch","namedIcon":"","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"relatedDocuments":[],"tags":"","theme":{"id":"","text":"","v":""},"to":[],"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"b0b69a951dde83ea"},"id":"d2d60610-aa7b-4f73-9a2a-7655e8955234","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-04-14T08:53:48+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"f008b3c3-3f60-4d12-b0b8-4fa95bc57936","previous":{"v":"7957adec537e8691"},"stamps":[],"t":1744620828680,"v":"02f999259968cb40"},{"a":["apps","089481c4-a42f-4a98-9bc9-12e9f1131f4b","5fa71c32-0186-4007-92a9-f03a32b0ff33","f008b3c3-3f60-4d12-b0b8-4fa95bc57936"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form-folder"],"created":{"at":"2025-04-11T07:52:58+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"ct":1744357978343,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[],"commands":[],"defaults":"","definition":"[Spaltenname][name]\n\n{color}\n[Farbe][color]\n\n[Filter][filter]\n[filter]: /ref (0-n)","descendantCommands":[],"description":"","from":[],"functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Column-Manual","namedIcon":"","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"relatedDocuments":[],"tags":"","theme":{"id":"","text":"","v":""},"to":[],"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"b0b69a951dde83ea"},"id":"7ffd7cb7-3f51-459f-8fa1-26de32ff095d","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-04-14T08:53:25+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"f008b3c3-3f60-4d12-b0b8-4fa95bc57936","previous":{"v":"cd7bfb9d985edfc2"},"stamps":[],"t":1744620805844,"v":"686539557dede6a3"},{"a":["apps","089481c4-a42f-4a98-9bc9-12e9f1131f4b","5fa71c32-0186-4007-92a9-f03a32b0ff33","f008b3c3-3f60-4d12-b0b8-4fa95bc57936"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form-folder"],"created":{"at":"2025-04-11T07:55:08+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"ct":1744358108294,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[],"commands":[],"defaults":"","definition":"[Spaltenname][name]\n\n[Feld Name][fieldName]\n[fieldName]: text\n\n{color}\n[Farbe][color]\n\n[Filter][filter]\n[filter]: /ref","descendantCommands":[],"description":"","from":[],"functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Column-Reference","namedIcon":"","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"relatedDocuments":[],"tags":"","theme":{"id":"","text":"","v":""},"to":[],"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"b0b69a951dde83ea"},"id":"e7af0745-5a1d-4671-82af-0a0681e74d13","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-04-14T08:53:32+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"f008b3c3-3f60-4d12-b0b8-4fa95bc57936","previous":{"v":"472693aa7b43e655"},"stamps":[],"t":1744620812312,"v":"2aa660c43a65c9a2"},{"a":["apps","089481c4-a42f-4a98-9bc9-12e9f1131f4b","5fa71c32-0186-4007-92a9-f03a32b0ff33","f008b3c3-3f60-4d12-b0b8-4fa95bc57936"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form-folder"],"created":{"at":"2025-04-11T07:55:52+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"ct":1744358152477,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[],"commands":[],"defaults":"","definition":"[Spaltenname][name]\n\n[Feld Name][fieldName]\n[fieldName]: text\n\n{color}\n[Farbe][color]\n\n[Filter][filter]\n[filter]: number","descendantCommands":[],"description":"","from":[],"functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Column-Select-Number","namedIcon":"","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"relatedDocuments":[],"tags":"","theme":{"id":"","text":"","v":""},"to":[],"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"b0b69a951dde83ea"},"id":"f780b382-da9e-4ba3-98ef-1b8106e1e73c","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-04-14T08:53:40+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"f008b3c3-3f60-4d12-b0b8-4fa95bc57936","previous":{"v":"7ffa4a81a252fd6e"},"stamps":[],"t":1744620820719,"v":"eca18bab6a34592a"},{"a":["apps","089481c4-a42f-4a98-9bc9-12e9f1131f4b","5fa71c32-0186-4007-92a9-f03a32b0ff33","5fde1cdf-71c3-4851-b7ba-c5f2c551675f"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form-folder"],"created":{"at":"2025-04-11T08:25:04+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"ct":1744359904489,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[],"commands":[],"defaults":"","definition":"[Spaltenname][name]\n\n{color}\n[Farbe][color]","descendantCommands":[],"description":"","from":[],"functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Column-Manual-Backlog","namedIcon":"","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"relatedDocuments":[],"tags":"","theme":{"id":"","text":"","v":""},"to":[],"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"b0b69a951dde83ea"},"id":"a24024f6-9365-44f8-98b5-b2b417157eeb","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-04-14T08:53:54+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"5fde1cdf-71c3-4851-b7ba-c5f2c551675f","previous":{"v":"b05661061ac3b308"},"stamps":[],"t":1744620834942,"v":"241f9d7cc23d50c9"},{"a":["apps","089481c4-a42f-4a98-9bc9-12e9f1131f4b","5fa71c32-0186-4007-92a9-f03a32b0ff33","5fde1cdf-71c3-4851-b7ba-c5f2c551675f"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form-folder"],"created":{"at":"2025-04-11T08:26:05+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"ct":1744359965720,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[],"commands":[],"defaults":"","definition":"[Spaltenname][name]\n\n[Feld Name][fieldName]\n[fieldName]: text\n\n{color}\n[Farbe][color]","descendantCommands":[],"description":"","from":[],"functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Column-Select-Number-Backlog","namedIcon":"","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"relatedDocuments":[],"tags":"","theme":{"id":"","text":"","v":""},"to":[],"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"b0b69a951dde83ea"},"id":"35404daa-90fa-4c1b-89ec-86eeec5f0c37","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-04-14T08:54:10+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"5fde1cdf-71c3-4851-b7ba-c5f2c551675f","previous":{"v":"cb12ec1f52a72820"},"stamps":[],"t":1744620850846,"v":"b1ab7d7e9651aa8b"},{"a":["apps","089481c4-a42f-4a98-9bc9-12e9f1131f4b","5fa71c32-0186-4007-92a9-f03a32b0ff33","5fde1cdf-71c3-4851-b7ba-c5f2c551675f"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form-folder"],"created":{"at":"2025-04-11T08:25:49+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"ct":1744359949259,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[],"commands":[],"defaults":"","definition":"[Spaltenname][name]\n\n[Feld Name][fieldName]\n[fieldName]: text\n\n{color}\n[Farbe][color]","descendantCommands":[],"description":"","from":[],"functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Column-References-Backlog","namedIcon":"","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"relatedDocuments":[],"tags":"","theme":{"id":"","text":"","v":""},"to":[],"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"b0b69a951dde83ea"},"id":"397f3746-b4aa-4b9f-8d05-a512eecda8a7","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-04-14T08:54:07+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"5fde1cdf-71c3-4851-b7ba-c5f2c551675f","previous":{"v":"46b9cdd19b14aa4f"},"stamps":[],"t":1744620847188,"v":"886121cd9b5cb3b8"},{"a":["apps","089481c4-a42f-4a98-9bc9-12e9f1131f4b","5fa71c32-0186-4007-92a9-f03a32b0ff33","5fde1cdf-71c3-4851-b7ba-c5f2c551675f"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form-folder"],"created":{"at":"2025-04-11T08:26:29+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"ct":1744359989978,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[],"commands":[],"defaults":"","definition":"[Spaltenname][name]\n\n[Feld Name][fieldName]\n[fieldName]: text\n\n{color}\n[Farbe][color]","descendantCommands":[],"description":"","from":[],"functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Column-Select-Text-Backlog","namedIcon":"","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"relatedDocuments":[],"tags":"","theme":{"id":"","text":"","v":""},"to":[],"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"b0b69a951dde83ea"},"id":"5fbca3f7-50a7-4578-aa4c-bd4d70c0900d","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-04-14T08:54:14+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"5fde1cdf-71c3-4851-b7ba-c5f2c551675f","previous":{"v":"9f26a1a3b0a9f52c"},"stamps":[],"t":1744620854711,"v":"0976ef30d26cf49c"},{"a":["apps","089481c4-a42f-4a98-9bc9-12e9f1131f4b","5fa71c32-0186-4007-92a9-f03a32b0ff33","5fde1cdf-71c3-4851-b7ba-c5f2c551675f"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form-folder"],"created":{"at":"2025-04-11T08:25:24+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"ct":1744359924619,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[],"commands":[],"defaults":"","definition":"[Spaltenname][name]\n\n[Feld Name][fieldName]\n[fieldName]: text\n\n{color}\n[Farbe][color]","descendantCommands":[],"description":"","from":[],"functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Column-Reference-Backlog","namedIcon":"","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"relatedDocuments":[],"tags":"","theme":{"id":"","text":"","v":""},"to":[],"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"b0b69a951dde83ea"},"id":"8bd04799-d815-4d29-bb40-7a60047af426","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-04-14T08:54:03+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"5fde1cdf-71c3-4851-b7ba-c5f2c551675f","previous":{"v":"ac1df82dab2ddff8"},"stamps":[],"t":1744620843197,"v":"57d5fc83d23b1daf"},{"id":"81939b86-a48e-480e-afd1-cb2907568550","v":"5871aade76fd5edb","previous":{"v":"a45cc6857d0cb536"},"p":"627f5b74-3baf-45f8-a1d3-a5936839b844","f":{"id":"form","v":"96231a28cf6ba7cd","text":"Form"},"data":{"name":"Security","tags":"","definition":"{hidden}\r\n[Name][name]\r\n\r\n{hidden|ref handle-selected-readonly=true}[Security Administrators][securityGroup] {20|hidden}[Only administrator can manage access][manageAccessAdminOnly]\r\n[securityGroup]: /group\r\n[manageAccessAdminOnly]: switch\r\n\r\n{hidden}\r\n[Tracked Time Managers][trackedTimeGroup]\r\n[trackedTimeGroup]: /group\r\n\r\n{hidden}\r\n[Working Time Managers][workingTimeGroup]\r\n[workingTimeGroup]: /group\r\n\r\n# Benutzer\r\n\r\n{security:users}[][name]\r\n\r\n# Gruppen\r\n\r\n{security:groups}[][name]","functions":"","allowedChildrenForms":[],"commands":[{"id":"a50628ac-b0e7-4269-947f-99c1f54b72ca","v":"bccf5756689d14e4","text":"Neu"},{"id":"134eddb7-5cf4-4001-ab00-249c713db536","v":"e60fff794fee3bf7","text":"rd:Neu"}],"description":"# Locks\n\nThere are two types of locks.\nDocuments shall reference only shared locks from any location or locks where they are the parent. \n\n## (Normal) lock\n\nLock is owned by the parent.\nLock is a child of a document.\n\n## Shared lock\n\nMust have Lock.data.shared = true\nCan be a child of document.\nCan be placed beneath a Security folder. \n\n"},"locks":[],"created":{"at":"2019-05-07T10:59:36+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2023-03-21T14:58:03+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1679410683643,"ct":1631109734371,"a_depth":4,"a":["system","b2533f7b-ea85-4680-99ed-d8e11be641b9","0e6939d6-9b93-4165-b6bd-977e4da881f3","627f5b74-3baf-45f8-a1d3-a5936839b844"],"a_forms":["system-folder-form","folder","application-form","form-folder"],"inheritedLocks":[null,null,null,null,null],"stamps":[],"dts":1731408240711},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","680a53ff-2457-41b4-aa4e-d832af3bce52"],"a_depth":4,"a_forms":["folder","application-form","form-folder","folder"],"created":{"at":"2026-05-11T07:45:29+00:00","backedBy":"","by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":""},"ct":1778485529427,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[{"id":"7bcd74d7-106e-4076-8d36-cdff37d162b9","text":"Beschlussergebnis","v":"649e1a077611c2c7"}],"commands":[{"id":"324678e7-a512-4b1e-b4a6-b9104a94c106","text":"rd:New","v":"5dbbe5a4fee38b78"}],"defaults":"","definition":"","descendantCommands":[],"description":"","from":[],"functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Beschlussergebnisse","namedIcon":"","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"relatedDocuments":[],"tags":"","theme":{"id":"","text":"","v":""},"to":[],"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"c2759612aee0e8c4"},"id":"c56e7b2c-4092-4fa4-965b-d8befc9a998c","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-05-11T08:59:12+00:00","backedBy":"","by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":""},"p":"680a53ff-2457-41b4-aa4e-d832af3bce52","previous":{"v":"ac2a71383752bcc9"},"stamps":[],"t":1778489952316,"v":"a3db6804b873d85b"},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","5beeae17-7bb1-4eeb-bcb6-cf0e6950e27c"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2025-05-23T08:37:30+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1747989450031,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[],"commands":[],"defaults":"","definition":"{hidden}\n[syncTo][syncTo]\n[syncTo]: /ref\n\n[documentDataValid]: Switch\n[allDocumentDataValid]: Switch\n\n{readonly|select}\n[Typ][type]\n[type]: select <required>\n  - RESOLUTION: Beschluss\n  - RECOMMENDATION: Beschluss als Empfehlung\n  - POSTPONEMENT: Vertagung\n  - CLARIFICATION: Klärungsauftrag\n\n{show if type === 'RESOLUTION'}\n####### Beschluss\n\n{show if type === 'RESOLUTION'|readonly|multiline auto-grow}\n[Veröffentlichungskommentar ITA][itaPublicationComment]\n\n{show if type === 'RESOLUTION'|readonly|multiline auto-grow}\n[Beschlusstext][decisionText]\n\n{show if type === 'RESOLUTION'|readonly|switch delete-fields-if-false=resubmissionDate}\n[Wiedervorlage][resubmission]\n\n{show if (type === 'RESOLUTION' && resubmission)|readonly}\n[Wiedervorlage Datum][resubmissionDate]\n\n{show if type === 'RESOLUTION'|readonly|switch appearance=\"toggle-text\"}\n[Textbaustein LuVK][textModuleLuVK]\n\n{show if type === 'RESOLUTION'|readonly|date}\n[Beschlussdatum][decisionDate]\n\n{show if type === 'RESOLUTION'|readonly|date}\n[Sitzungsdatum][sessionDate]\n\n{show if type === 'RESOLUTION'|readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Sitzungsleiter][sessionLeader]\n\n{show if type === 'RESOLUTION'|readonly|signature}\n[Unterschrift Sitzungsleiter][sessionLeaderSignature]\n\n{show if type === 'RECOMMENDATION'}\n####### Beschluss als Empfehlung\n\n{show if type === 'RECOMMENDATION'|readonly|ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Standort-/GBR Empfehlung][locationGbrRecommendation]\n\n{show if type === 'RECOMMENDATION'|readonly|multiline auto-grow}\n[Veröffentlichungskommentar ITA][itaPublicationComment]\n\n{show if type === 'RECOMMENDATION'|readonly|switch delete-fields-if-false=resubmissionDate}\n[Wiedervorlage][resubmission]\n\n{show if type === 'RECOMMENDATION'|readonly|show if resubmission}\n[Wiedervorlage Datum][resubmissionDate]\n\n{show if type === 'RECOMMENDATION'|readonly|switch appearance=\"toggle-text\"}\n[Textbaustein LuVK][textModuleLuVK]\n\n{show if type === 'RECOMMENDATION'|readonly|date}\n[Beschlussdatum][decisionDate]\n\n{show if type === 'RECOMMENDATION'|readonly|date}\n[Sitzungsdatum][sessionDate]\n\n{show if type === 'RECOMMENDATION'|readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Sitzungsleiter][sessionLeader]\n\n{show if type === 'RECOMMENDATION'|readonly|signature}\n[Unterschrift Sitzungsleiter][sessionLeaderSignature]\n\n{show if type === 'POSTPONEMENT'}\n####### Vertagung\n\n{show if type === 'POSTPONEMENT'|readonly|date}\n[Sitzungsdatum][sessionDate]\n\n{show if type === 'POSTPONEMENT'|readonly|multiline auto-grow}\n[Vertagungsgrund][postponementReason]\n\n\n{show if type === 'CLARIFICATION'}\n####### Klärungsauftrag\n\n{show if type === 'CLARIFICATION'|readonly|date}\n[Sitzungsdatum][sessionDate]\n\n{show if type === 'CLARIFICATION'|readonly|multiline auto-grow}\n[Klärungsauftrag][clarificationOrder]\n\n\n// field definitions\n[itaPublicationComment]: text <required>\n[decisionText]: text <required>\n[resubmission]: switch\n[resubmissionDate]: date <required>\n[textModuleLuVK]: switch\n[decisionDate]: date <required>\n[sessionDate]: date <required>\n[sessionLeader]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 <required>\n[sessionLeaderSignature]: file <required>\n[clarificationOrder]: text <required>\n[postponementReason]: text <required>\n[locationGbrRecommendation]: /af8aa2f7-1c0b-404d-b6c8-06e5be0ffd38 <required>\n","descendantCommands":[],"description":"","from":[],"functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Beschluss / Empfehlung / Klärungsauftrag (Antragsteller)","namedIcon":"","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"relatedDocuments":[],"tags":"","theme":{"id":"","text":"","v":""},"to":[],"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"b0b69a951dde83ea"},"id":"030be2b6-fcad-4d3c-b44f-c40618e772c0","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-05-27T09:41:08+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"5beeae17-7bb1-4eeb-bcb6-cf0e6950e27c","previous":{"v":"4a7664ad4914a9d8"},"stamps":[],"t":1748338868301,"v":"551f2fc8753dafaf"},{"id":"c04e4a56-2064-4663-9cad-1792a719db35","v":"f0cd4e4db41f700f","previous":{"v":"903b9e9421c6db66"},"p":"5beeae17-7bb1-4eeb-bcb6-cf0e6950e27c","f":{"id":"form","v":"b0b69a951dde83ea","text":"Form"},"data":{"name":"Beschluss / Empfehlung / Klärungsauftrag (ITA-Sekretariat)","tags":"","allowUndefinedFields":false,"definition":"{hidden}\n[syncTo][syncTo]\n[syncTo]: /ref\n\n[documentDataValid]: Switch\n[allDocumentDataValid]: Switch\n\n{readonly|select}\n[Typ][type]\n[type]: select <required>\n  - RESOLUTION: Beschluss\n  - RECOMMENDATION: Beschluss als Empfehlung\n  - POSTPONEMENT: Vertagung\n  - CLARIFICATION: Klärungsauftrag\n\n{show if type === 'RESOLUTION'}\n####### Beschluss\n\n{show if type === 'RESOLUTION'|multiline auto-grow}\n[Veröffentlichungskommentar ITA][itaPublicationComment]\n\n{show if type === 'RESOLUTION'|multiline auto-grow}\n[Beschlusstext][decisionText]\n\n{show if type === 'RESOLUTION'|switch delete-fields-if-false=resubmissionDate}\n[Wiedervorlage][resubmission]\n\n{show if (type === 'RESOLUTION' && resubmission)}\n[Wiedervorlage Datum][resubmissionDate]\n\n{show if type === 'RESOLUTION'|switch appearance=\"toggle-text\"}\n[Textbaustein LuVK][textModuleLuVK]\n\n{show if type === 'RESOLUTION'|date}\n[Beschlussdatum][decisionDate]\n\n{show if type === 'RESOLUTION'|date}\n[Sitzungsdatum][sessionDate]\n\n{show if type === 'RESOLUTION'|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Sitzungsleiter][sessionLeader]\n\n{show if type === 'RESOLUTION'|readonly|signature}\n[Unterschrift Sitzungsleiter][sessionLeaderSignature]\n\n{show if type === 'RECOMMENDATION'}\n####### Beschluss als Empfehlung\n\n{show if type === 'RECOMMENDATION'|ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Standort-/GBR Empfehlung][locationGbrRecommendation]\n\n{show if type === 'RECOMMENDATION'|multiline auto-grow}\n[Veröffentlichungskommentar ITA][itaPublicationComment]\n\n{show if type === 'RECOMMENDATION'|multiline auto-grow}\n[Empfehlungstext][recommendationText]\n\n{show if type === 'RECOMMENDATION'|switch delete-fields-if-false=resubmissionDate}\n[Wiedervorlage][resubmission]\n\n{show if (type === 'RECOMMENDATION' && resubmission)}\n[Wiedervorlage Datum][resubmissionDate]\n\n{show if type === 'RECOMMENDATION'|switch appearance=\"toggle-text\"}\n[Textbaustein LuVK][textModuleLuVK]\n\n{show if type === 'RECOMMENDATION'|date}\n[Beschlussdatum][decisionDate]\n\n{show if type === 'RECOMMENDATION'|date}\n[Sitzungsdatum][sessionDate]\n\n{show if type === 'RECOMMENDATION'|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Sitzungsleiter][sessionLeader]\n\n{show if type === 'RECOMMENDATION'|readonly|signature}\n[Unterschrift Sitzungsleiter][sessionLeaderSignature]\n\n{show if type === 'POSTPONEMENT'}\n####### Vertagung\n\n{show if type === 'POSTPONEMENT'|date}\n[Sitzungsdatum][sessionDate]\n\n{show if type === 'POSTPONEMENT'|multiline auto-grow}\n[Vertagungsgrund][postponementReason]\n\n\n{show if type === 'CLARIFICATION'}\n####### Klärungsauftrag\n\n{show if type === 'CLARIFICATION'|date}\n[Sitzungsdatum][sessionDate]\n\n{show if type === 'CLARIFICATION'|multiline auto-grow}\n[Klärungsauftrag][clarificationOrder]\n\n\n// field definitions\n[recommendationText]: text <required>\n[itaPublicationComment]: text <required>\n[decisionText]: text <required>\n[resubmission]: switch\n[resubmissionDate]: date <required>\n[textModuleLuVK]: switch\n[decisionDate]: date <required>\n[sessionDate]: date <required>\n[sessionLeader]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 <required>\n[sessionLeaderSignature]: file <required>\n[clarificationOrder]: text <required>\n[postponementReason]: text <required>\n[locationGbrRecommendation]: /af8aa2f7-1c0b-404d-b6c8-06e5be0ffd38 <required>\n","functions":"","relatedDocuments":[],"defaults":"","newTemplate":{"id":"","v":"","text":""},"newAction":{"id":"","v":"","text":""},"allowedChildrenForms":[],"commands":[],"descendantCommands":[],"to":[],"from":[],"namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"","v":"","text":""},"description":""},"locks":[],"created":{"at":"2025-05-23T14:36:19+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2025-05-26T14:46:51+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1748270811510,"ct":1748010979415,"a_depth":4,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","5beeae17-7bb1-4eeb-bcb6-cf0e6950e27c"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","5beeae17-7bb1-4eeb-bcb6-cf0e6950e27c"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"cbdb17cb-885b-4e8b-bfa4-ee22f5c3122f","text":"Beschluss / Empfehlung / Klärungsauftrag (readonly","v":"e56a338c42efbf6b"},"created":{"at":"2025-05-23T15:07:42+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1748012862289,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[],"commands":[],"defaults":"","definition":"{hidden}\n[syncTo][syncTo]\n[syncTo]: /ref\n\n[documentDataValid]: Switch\n[allDocumentDataValid]: Switch\n\n{readonly|select}\n[Typ][type]\n[type]: select <required>\n  - RESOLUTION: Beschluss\n  - RECOMMENDATION: Beschluss als Empfehlung\n  - POSTPONEMENT: Vertagung\n  - CLARIFICATION: Klärungsauftrag\n\n{show if type === 'RESOLUTION'}\n####### Beschluss\n\n{show if type === 'RESOLUTION'|multiline auto-grow}\n[Veröffentlichungskommentar ITA][itaPublicationComment]\n\n{show if type === 'RESOLUTION'|readonly|multiline auto-grow}\n[Beschlusstext][decisionText]\n\n{show if type === 'RESOLUTION'|switch delete-fields-if-false=resubmissionDate}\n[Wiedervorlage][resubmission]\n\n{show if (type === 'RESOLUTION' && resubmission)}\n[Wiedervorlage Datum][resubmissionDate]\n\n{show if type === 'RESOLUTION'|readonly|switch appearance=\"toggle-text\"}\n[Textbaustein LuVK][textModuleLuVK]\n\n{show if type === 'RESOLUTION'|readonly|date}\n[Beschlussdatum][decisionDate]\n\n{show if type === 'RESOLUTION'|readonly|date}\n[Sitzungsdatum][sessionDate]\n\n{show if type === 'RESOLUTION'|readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Sitzungsleiter][sessionLeader]\n\n{show if type === 'RESOLUTION'|readonly|signature}\n[Unterschrift Sitzungsleiter][sessionLeaderSignature]\n\n{show if type === 'RECOMMENDATION'}\n####### Beschluss als Empfehlung\n\n{show if type === 'RECOMMENDATION'|readonly|ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Standort-/GBR Empfehlung][locationGbrRecommendation]\n\n{show if type === 'RECOMMENDATION'|readonly|multiline auto-grow}\n[Veröffentlichungskommentar ITA][itaPublicationComment]\n\n{show if type === 'RECOMMENDATION'|readonly|multiline auto-grow}\n[Empfehlungstext][recommendationText]\n\n{show if type === 'RECOMMENDATION'|readonly|switch delete-fields-if-false=resubmissionDate}\n[Wiedervorlage][resubmission]\n\n{show if (type === 'RECOMMENDATION' && resubmission)}\n[Wiedervorlage Datum][resubmissionDate]\n\n{show if type === 'RECOMMENDATION'|readonly|switch appearance=\"toggle-text\"}\n[Textbaustein LuVK][textModuleLuVK]\n\n{show if type === 'RECOMMENDATION'|readonly|date}\n[Beschlussdatum][decisionDate]\n\n{show if type === 'RECOMMENDATION'|readonly|date}\n[Sitzungsdatum][sessionDate]\n\n{show if type === 'RECOMMENDATION'|readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Sitzungsleiter][sessionLeader]\n\n{show if type === 'RECOMMENDATION'|readonly|signature}\n[Unterschrift Sitzungsleiter][sessionLeaderSignature]\n\n{show if type === 'POSTPONEMENT'}\n####### Vertagung\n\n{show if type === 'POSTPONEMENT'|readonly|date}\n[Sitzungsdatum][sessionDate]\n\n{show if type === 'POSTPONEMENT'|readonly|multiline auto-grow}\n[Vertagungsgrund][postponementReason]\n\n\n{show if type === 'CLARIFICATION'}\n####### Klärungsauftrag\n\n{show if type === 'CLARIFICATION'|readonly|date}\n[Sitzungsdatum][sessionDate]\n\n{show if type === 'CLARIFICATION'|readonly|multiline auto-grow}\n[Klärungsauftrag][clarificationOrder]\n\n\n// field definitions\n[recommendationText]: text <required>\n[itaPublicationComment]: text <required>\n[decisionText]: text <required>\n[resubmission]: switch\n[resubmissionDate]: date <required>\n[textModuleLuVK]: switch\n[decisionDate]: date <required>\n[sessionDate]: date <required>\n[sessionLeader]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 <required>\n[sessionLeaderSignature]: file <required>\n[clarificationOrder]: text <required>\n[postponementReason]: text <required>\n[locationGbrRecommendation]: /af8aa2f7-1c0b-404d-b6c8-06e5be0ffd38 <required>\n","descendantCommands":[],"description":"","from":[],"functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Beschluss / Empfehlung / Klärungsauftrag (readonly. edit Wiedervorlage)","namedIcon":"","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"relatedDocuments":[],"tags":"","theme":{"id":"","text":"","v":""},"to":[],"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"b0b69a951dde83ea"},"id":"374a4c32-b30e-4fa8-a134-bdc51a4605a8","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-05-26T14:48:44+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"cbdb17cb-885b-4e8b-bfa4-ee22f5c3122f","text":"Beschluss / Empfehlung / Klärungsauftrag (readonly","v":"e56a338c42efbf6b"},"p":"5beeae17-7bb1-4eeb-bcb6-cf0e6950e27c","previous":{"v":"fecb8a1d720ea91a"},"stamps":[],"t":1748270924608,"v":"9572089fca4c3824"},{"id":"cbdb17cb-885b-4e8b-bfa4-ee22f5c3122f","v":"41d1b3ca75696a38","cloneOf":{"id":"ee60c716-511c-4ef3-a6f6-2c5c8d5bde74","v":"003f34f891254705","text":"Beschluss / Empfehlung / Klärungsauftrag (readonly"},"originalCloneOf":{"id":"ee60c716-511c-4ef3-a6f6-2c5c8d5bde74","v":"003f34f891254705","text":"Beschluss / Empfehlung / Klärungsauftrag (readonly"},"previous":{"v":"acb6dd8bfc776eed"},"p":"5beeae17-7bb1-4eeb-bcb6-cf0e6950e27c","f":{"id":"form","v":"b0b69a951dde83ea","text":"Form"},"data":{"name":"Beschluss / Empfehlung / Klärungsauftrag (readonly. edit Veröffentlichungskommentar)","tags":"","allowUndefinedFields":false,"definition":"{hidden}\n[syncTo][syncTo]\n[syncTo]: /ref\n\n[documentDataValid]: Switch\n[allDocumentDataValid]: Switch\n\n{readonly|select}\n[Typ][type]\n[type]: select <required>\n  - RESOLUTION: Beschluss\n  - RECOMMENDATION: Beschluss als Empfehlung\n  - POSTPONEMENT: Vertagung\n  - CLARIFICATION: Klärungsauftrag\n\n{show if type === 'RESOLUTION'}\n####### Beschluss\n\n{show if type === 'RESOLUTION'|multiline auto-grow}\n[Veröffentlichungskommentar ITA][itaPublicationComment]\n\n{show if type === 'RESOLUTION'|readonly|multiline auto-grow}\n[Beschlusstext][decisionText]\n\n{show if type === 'RESOLUTION'|readonly|switch delete-fields-if-false=resubmissionDate}\n[Wiedervorlage][resubmission]\n\n{show if (type === 'RESOLUTION' && resubmission)|readonly}\n[Wiedervorlage Datum][resubmissionDate]\n\n{show if type === 'RESOLUTION'|readonly|switch appearance=\"toggle-text\"}\n[Textbaustein LuVK][textModuleLuVK]\n\n{show if type === 'RESOLUTION'|readonly|date}\n[Beschlussdatum][decisionDate]\n\n{show if type === 'RESOLUTION'|readonly|date}\n[Sitzungsdatum][sessionDate]\n\n{show if type === 'RESOLUTION'|readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Sitzungsleiter][sessionLeader]\n\n{show if type === 'RESOLUTION'|readonly|signature}\n[Unterschrift Sitzungsleiter][sessionLeaderSignature]\n\n{show if type === 'RECOMMENDATION'}\n####### Beschluss als Empfehlung\n\n{show if type === 'RECOMMENDATION'|readonly|ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Standort-/GBR Empfehlung][locationGbrRecommendation]\n\n{show if type === 'RECOMMENDATION'|readonly|multiline auto-grow}\n[Veröffentlichungskommentar ITA][itaPublicationComment]\n\n{show if type === 'RECOMMENDATION'|readonly|multiline auto-grow}\n[Empfehlungstext][recommendationText]\n\n{show if type === 'RECOMMENDATION'|readonly|switch delete-fields-if-false=resubmissionDate}\n[Wiedervorlage][resubmission]\n\n{show if (type === 'RECOMMENDATION' && resubmission)}\n[Wiedervorlage Datum][resubmissionDate]\n\n{show if type === 'RECOMMENDATION'|readonly|switch appearance=\"toggle-text\"}\n[Textbaustein LuVK][textModuleLuVK]\n\n{show if type === 'RECOMMENDATION'|readonly|date}\n[Beschlussdatum][decisionDate]\n\n{show if type === 'RECOMMENDATION'|readonly|date}\n[Sitzungsdatum][sessionDate]\n\n{show if type === 'RECOMMENDATION'|readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Sitzungsleiter][sessionLeader]\n\n{show if type === 'RECOMMENDATION'|readonly|signature}\n[Unterschrift Sitzungsleiter][sessionLeaderSignature]\n\n{show if type === 'POSTPONEMENT'}\n####### Vertagung\n\n{show if type === 'POSTPONEMENT'|readonly|date}\n[Sitzungsdatum][sessionDate]\n\n{show if type === 'POSTPONEMENT'|readonly|multiline auto-grow}\n[Vertagungsgrund][postponementReason]\n\n\n{show if type === 'CLARIFICATION'}\n####### Klärungsauftrag\n\n{show if type === 'CLARIFICATION'|readonly|date}\n[Sitzungsdatum][sessionDate]\n\n{show if type === 'CLARIFICATION'|readonly|multiline auto-grow}\n[Klärungsauftrag][clarificationOrder]\n\n\n// field definitions\n[recommendationText]: text <required>\n[itaPublicationComment]: text <required>\n[decisionText]: text <required>\n[resubmission]: switch\n[resubmissionDate]: date <required>\n[textModuleLuVK]: switch\n[decisionDate]: date <required>\n[sessionDate]: date <required>\n[sessionLeader]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 <required>\n[sessionLeaderSignature]: file <required>\n[clarificationOrder]: text <required>\n[postponementReason]: text <required>\n[locationGbrRecommendation]: /af8aa2f7-1c0b-404d-b6c8-06e5be0ffd38 <required>\n","functions":"","relatedDocuments":[],"defaults":"","newTemplate":{"id":"","v":"","text":""},"newAction":{"id":"","v":"","text":""},"allowedChildrenForms":[],"commands":[],"descendantCommands":[],"to":[],"from":[],"namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"","v":"","text":""},"description":""},"locks":[],"created":{"at":"2025-05-23T15:03:50+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2025-05-26T14:47:50+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1748270870764,"ct":1748012630683,"a_depth":4,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","5beeae17-7bb1-4eeb-bcb6-cf0e6950e27c"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"ee60c716-511c-4ef3-a6f6-2c5c8d5bde74","v":"cb2e0841d5c6ca97","previous":{"v":"814f5e7448760e81"},"p":"5beeae17-7bb1-4eeb-bcb6-cf0e6950e27c","f":{"id":"form","v":"b0b69a951dde83ea","text":"Form"},"data":{"name":"Beschluss / Empfehlung / Klärungsauftrag (readonly)","tags":"","allowUndefinedFields":false,"definition":"{hidden}\n[syncTo][syncTo]\n[syncTo]: /ref\n\n[documentDataValid]: Switch\n[allDocumentDataValid]: Switch\n\n{readonly|select}\n[Typ][type]\n[type]: select <required>\n  - RESOLUTION: Beschluss\n  - RECOMMENDATION: Beschluss als Empfehlung\n  - POSTPONEMENT: Vertagung\n  - CLARIFICATION: Klärungsauftrag\n\n{show if type === 'RESOLUTION'}\n####### Beschluss\n\n{show if type === 'RESOLUTION'|readonly|multiline auto-grow}\n[Veröffentlichungskommentar ITA][itaPublicationComment]\n\n{show if type === 'RESOLUTION'|readonly|multiline auto-grow}\n[Beschlusstext][decisionText]\n\n{show if type === 'RESOLUTION'|readonly|switch delete-fields-if-false=resubmissionDate}\n[Wiedervorlage][resubmission]\n\n{show if (type === 'RESOLUTION' && resubmission)|readonly}\n[Wiedervorlage Datum][resubmissionDate]\n\n{show if type === 'RESOLUTION'|readonly|switch appearance=\"toggle-text\"}\n[Textbaustein LuVK][textModuleLuVK]\n\n{show if type === 'RESOLUTION'|readonly|date}\n[Beschlussdatum][decisionDate]\n\n{show if type === 'RESOLUTION'|readonly|date}\n[Sitzungsdatum][sessionDate]\n\n{show if type === 'RESOLUTION'|readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Sitzungsleiter][sessionLeader]\n\n{show if type === 'RESOLUTION'|readonly|signature}\n[Unterschrift Sitzungsleiter][sessionLeaderSignature]\n\n{show if type === 'RECOMMENDATION'}\n####### Beschluss als Empfehlung\n\n{show if type === 'RECOMMENDATION'|readonly|ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Standort-/GBR Empfehlung][locationGbrRecommendation]\n\n{show if type === 'RECOMMENDATION'|readonly|multiline auto-grow}\n[Veröffentlichungskommentar ITA][itaPublicationComment]\n\n{show if type === 'RECOMMENDATION'|readonly|multiline auto-grow}\n[Empfehlungstext][recommendationText]\n\n{show if type === 'RECOMMENDATION'|readonly|switch delete-fields-if-false=resubmissionDate}\n[Wiedervorlage][resubmission]\n\n{show if (type === 'RECOMMENDATION' && resubmission)}\n[Wiedervorlage Datum][resubmissionDate]\n\n{show if type === 'RECOMMENDATION'|readonly|switch appearance=\"toggle-text\"}\n[Textbaustein LuVK][textModuleLuVK]\n\n{show if type === 'RECOMMENDATION'|readonly|date}\n[Beschlussdatum][decisionDate]\n\n{show if type === 'RECOMMENDATION'|readonly|date}\n[Sitzungsdatum][sessionDate]\n\n{show if type === 'RECOMMENDATION'|readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Sitzungsleiter][sessionLeader]\n\n{show if type === 'RECOMMENDATION'|readonly|signature}\n[Unterschrift Sitzungsleiter][sessionLeaderSignature]\n\n{show if type === 'POSTPONEMENT'}\n####### Vertagung\n\n{show if type === 'POSTPONEMENT'|readonly|date}\n[Sitzungsdatum][sessionDate]\n\n{show if type === 'POSTPONEMENT'|readonly|multiline auto-grow}\n[Vertagungsgrund][postponementReason]\n\n\n{show if type === 'CLARIFICATION'}\n####### Klärungsauftrag\n\n{show if type === 'CLARIFICATION'|readonly|date}\n[Sitzungsdatum][sessionDate]\n\n{show if type === 'CLARIFICATION'|readonly|multiline auto-grow}\n[Klärungsauftrag][clarificationOrder]\n\n\n// field definitions\n[recommendationText]: text <required>\n[itaPublicationComment]: text <required>\n[decisionText]: text <required>\n[resubmission]: switch\n[resubmissionDate]: date <required>\n[textModuleLuVK]: switch\n[decisionDate]: date <required>\n[sessionDate]: date <required>\n[sessionLeader]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 <required>\n[sessionLeaderSignature]: file <required>\n[clarificationOrder]: text <required>\n[postponementReason]: text <required>\n[locationGbrRecommendation]: /af8aa2f7-1c0b-404d-b6c8-06e5be0ffd38 <required>\n","functions":"","relatedDocuments":[],"defaults":"","newTemplate":{"id":"","v":"","text":""},"newAction":{"id":"","v":"","text":""},"allowedChildrenForms":[],"commands":[],"descendantCommands":[],"to":[],"from":[],"namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"","v":"","text":""},"description":""},"locks":[],"created":{"at":"2025-05-23T08:36:38+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2025-05-26T14:47:50+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1748270870767,"ct":1747989398562,"a_depth":4,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","5beeae17-7bb1-4eeb-bcb6-cf0e6950e27c"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","50c3c7c5-c3d4-460c-b34d-0d61a4cb09ae"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2023-07-26T13:08:17+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1690382338207,"data":{"allowUndefinedFields":true,"allowedChildrenForms":[],"commands":[],"defaults":"","definition":"{readonly}\n[Bestandseinträge][inventoryEntries]\n[inventoryEntries]: /50c3c7c5-c3d4-460c-b34d-0d61a4cb09ae (0-n) <defined>\n\n\n[Systemname (des Herstellers)][systemName]\n[systemName]: text <required>\n\n[Interner Name][internalName]\n\n{ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df creation-location-form=b40fd5c3-1bc2-42b4-a269-f3cb2e9cf477 hide-path}\n[Hersteller][manufacturer]\n[manufacturer]: /e0978a3d-9761-4849-8a44-d22d8a175f87 (0-n) <required>\n\n{multiline auto-grow=true max=500}\n[Kurzbeschreibung (Zweck)][description]\n[description]: text <required>\n\n{multiline auto-grow=true max=500}\n[Modulname(n)][moduleNames]\n\n[Softwareversion][softwareVersion]\n[softwareVersion]: text <required>\n\n[Kategorie nach GBV ITM][category]\n[category]: Select <required>\n  - ZERO: Kat 0\n  - ONE: Kat 1\n  - TWO: Kat 2\n  - THREE: Kat 3\n\n{ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Standorte][locations]\n[locations]: /af8aa2f7-1c0b-404d-b6c8-06e5be0ffd38 (0-n) <required>\n\n{ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Geltungsbereich][scope]\n[scope]: /21a59b67-da7b-4d24-ab4c-001362e46246 (0-n) <required>\n\n{children delete-on-remove}\n[Prozesseigner][processOwners]\n[processOwners]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{children delete-on-remove}\n[Prozesseigner Vorgesetzte][processSupervisors]\n[processSupervisors]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{children delete-on-remove}\n[Systemeigner][systemOwner]\n[systemOwner]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{multiline auto-grow}\n[Daten-/Dokumenteneignerschaft][dataDocumentOwnership]\n","description":"","functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"Bestandseintrag (Massenaktualisierung)","namedIcon":"","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"tags":"","theme":{"id":"","text":"","v":""},"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"d497194b29933d26"},"id":"1b6ab907-537e-4ea0-a262-13a4852e0cb2","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-05-20T14:37:23+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"50c3c7c5-c3d4-460c-b34d-0d61a4cb09ae","previous":{"v":"5f9fd4b85a1180a8"},"stamps":[],"t":1747751843764,"v":"e2539a6afd7eee89"},{"id":"530c1e59-195c-4714-a31a-f8f292bd79c8","v":"e23ce77343ed7925","previous":{"v":"0dafc831481cb604"},"p":"c881dec7-95f5-434f-9423-93143aaa976b","f":{"id":"form","v":"b0b69a951dde83ea","text":"Form"},"data":{"name":"1_Sammelinfo_Admin","tags":"","allowUndefinedFields":false,"definition":"{hidden|readonly}\n[syncTo][syncTo]\n[syncTo]: /ref\n\n[allDocumentDataValid]: switch\n[allEditableDocumentDataValid]: switch\n\n{readonly}\n[Sammelinformationsnummer][informationNumberTitle]\n[informationNumberTitle]: text\n\n{text max=100}\n[Sammelinformationstitel][informationTitle]\n[informationTitle]: text <required>\n\n{children disable-remove no-add design=\"itm:inventory-card\"}\n[Bestandseintrag][inventoryEntry]\n[inventoryEntry]: /312af864-b1e6-42cf-b6b1-8ebba22707cb\n\n{multiline auto-grow max=3000}\n[Beschreibung][description]\n[description]: text <required>\n\n{employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true}\n[Verantwortlicher Ansprechpartner Business][responsible]\n[responsible]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n) <required>\n\n{multiline auto-grow max=500}\n[Kommentar BITM][itcoComment]\n[itcoComment]: text\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlagen][attachments]\n[attachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{readonly|datetime}\n[Zeitstempel Erstellung][creationTimestamp]\n[creationTimestamp]: date\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Ersteller][creator]\n[creator]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10","functions":"","relatedDocuments":[],"defaults":"","newTemplate":{"id":"","v":"","text":""},"newAction":{"id":"","v":"","text":""},"allowedChildrenForms":[],"commands":[],"descendantCommands":[],"to":[],"from":[],"namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"","v":"","text":""},"description":""},"locks":[],"created":{"at":"2025-07-07T09:47:43+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2025-08-01T07:55:02+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1754034902064,"ct":1751881663682,"a_depth":4,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","c881dec7-95f5-434f-9423-93143aaa976b"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"136b5b34-7b9f-4566-9f40-799296868765","v":"c25a2be12759083b","cloneOf":{"id":"7e43e773-d6fa-4d97-9054-6ab6d21f1904","v":"4f254cea89560f83","text":"3_Sammelinfo_Alle"},"originalCloneOf":{"id":"7e43e773-d6fa-4d97-9054-6ab6d21f1904","v":"4f254cea89560f83","text":"3_Sammelinfo_Alle"},"previous":{"v":"48658563f44e3946"},"p":"c881dec7-95f5-434f-9423-93143aaa976b","f":{"id":"form","v":"b0b69a951dde83ea","text":"Form"},"data":{"name":"3_Sammelinfo_Admin","tags":"","allowUndefinedFields":false,"definition":"{hidden|readonly}\n[syncTo][syncTo]\n[syncTo]: /ref\n\n[allDocumentDataValid]: switch\n[allEditableDocumentDataValid]: switch\n\n{readonly}\n[Sammelinformationsnummer][informationNumberTitle]\n[informationNumberTitle]: text\n\n{text max=100}\n[Sammelinformationstitel][informationTitle]\n[informationTitle]: text <required>\n\n{children disable-remove no-add design=\"itm:inventory-card\"}\n[Bestandseintrag][inventoryEntry]\n[inventoryEntry]: /312af864-b1e6-42cf-b6b1-8ebba22707cb\n\n{multiline auto-grow max=3000}\n[Beschreibung][description]\n[description]: text <required>\n\n{employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true}\n[Verantwortlicher Ansprechpartner Business][responsible]\n[responsible]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n) <required>\n\n{multiline auto-grow max=500}\n[Kommentar BITM][itcoComment]\n[itcoComment]: text\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlagen][attachments]\n[attachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{multiline auto-grow max=500}\n[Kommentar IT-Ref][commentItReferee]\n[commentItReferee]: text\n\n{readonly|datetime}\n[Zeitstempel Erstellung][creationTimestamp]\n[creationTimestamp]: date\n\n{readonly|datetime}\n[Zeitstempel Einreichung][submissionTimestamp]\n[submissionTimestamp]: date\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Ersteller][creator]\n[creator]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10","functions":"","relatedDocuments":[],"defaults":"","newTemplate":{"id":"","v":"","text":""},"newAction":{"id":"","v":"","text":""},"allowedChildrenForms":[],"commands":[],"descendantCommands":[],"to":[],"from":[],"namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"","v":"","text":""},"description":""},"locks":[],"created":{"at":"2025-07-09T11:43:54+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2025-08-01T07:55:02+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1754034902066,"ct":1752061434481,"a_depth":4,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","c881dec7-95f5-434f-9423-93143aaa976b"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"50aa592e-2979-4e6a-aaac-efbab2f0e665","v":"c0142dd5444fccc1","cloneOf":{"id":"0b71e123-3a9b-4cba-b6fd-0d92e77067d2","v":"fab4855df51661cb","text":"3_Antrag_BITM"},"originalCloneOf":{"id":"0b71e123-3a9b-4cba-b6fd-0d92e77067d2","v":"fab4855df51661cb","text":"3_Antrag_BITM"},"previous":{"v":"fd7ca23d703e1ec8"},"p":"03d08db0-f873-48cd-a5b5-c34937bddc2f","f":{"id":"form","v":"3163b16b782f3ff6","text":"Form"},"data":{"name":"3_Antrag_DPA","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"{hidden|readonly}\n[syncTo][syncTo]\n[syncTo]: /ref\n\n[allDocumentDataValid]: switch\n[allEditableDocumentDataValid]: switch\n\n# Antrag\n\n{readonly}\n[Antragsnummer][applicationNumberTitle]\n\n// applicationNumber should be used in sorting\n{hidden|readonly}\n[Antragsnummer][applicationNumber]\n[applicationNumber]: number\n\n{readonly|datetime}\n[Zeitstempel Erstellung][creationTimestamp]\n[creationTimestamp]: date\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Ersteller][creator]\n[creator]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10\n\n{readonly|children design=\"itm:inventory-card\"}\n[Bestandseintrag][inventoryEntry]\n[inventoryEntry]: /0572195f-176d-40d5-920a-f5b5505e2ef6\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Beratender BITM][consultingItco]\n[consultingItco]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n) <required>\n\n{readonly}\n[Antragstitel][applicationTitle]\n[applicationTitle]: text <required>\n\n{readonly|multiline auto-grow max=500}\n[Beschreibung][description]\n[description]: text <required>\n\n{readonly|select}\n[Aktionstyp][actionType]\n[actionType]: select <required help=layoutId> \"003ffe3b-61e1-4553-acb8-1d8e68874ce0\"\n  - ZERO: \"0\"\n  - ONE: 1\n  - TWO: 2\n  - THREE: 3\n  - FOUR: 4\n  - FIVE: 5\n  - INFORMATION: Information\n\n{readonly|switch appearance=\"toggle-text\"}\n[Mitarbeiterdatenbezug][employeeDataReference]\n[employeeDataReference]: switch\n\n{readonly|switch delete-fields-if-false=plannedPilotingDurationInMonths,pilotingEndDate,pilotingComment appearance=\"toggle-text\"}\n[Pilotierung][piloting]\n[piloting]: switch\n\n{readonly|show if piloting}\n[Geplante Dauer der Pilotierung (Angabe in Monaten)][plannedPilotingDurationInMonths]\n[plannedPilotingDurationInMonths]: number <required>\n\n{readonly}\n[Prozess][process]\n[process]: Select <required> \"Wird automatisch berechnet aus **Aktionstyp**, **Mitarbeiterdatenbezug** sowie **Kategorie nach GBV ITM** (letzteres im Bestandseintrag)\"\n  - \n  - NO_ACTIVITY: keine Aktivität im Rahmen der IT-Mitbestimmung\n  - INFORMATION: Informationsprozess\n  - SIMPLE: Vereinfachter Prozess\n  - DETAILED: Detaillierter Prozess\n  - SEPARATE: Gesonderter Prozess\n  - INAPPLICABLE: nicht anwendbar\n\n\n{readonly|switch appearance=\"toggle-text\"}\n[Standortentscheidung][locationDecision]\n[locationDecision]: switch \"Ja: SBR. Nein: ITA/GBR.\"\n\n{readonly|children delete-on-remove}\n[Antragsteller][applicant]\n[applicant]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true}\n[Bearbeiter][editor]\n[editor]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n)\n\n{readonly|switch delete-fields-if-false=applicantSupervisor,applicantSupervisorSignature appearance=\"toggle-text\"}\n[Antragsteller Befugnis (Ist der Antragsteller handlungsbevollmächtigt?)][applicantAuthorization]\n[applicantAuthorization]: switch\n\n{readonly|show if !applicantAuthorization|children delete-on-remove}\n[Antragsteller Vorgesetzter][applicantSupervisor]\n[applicantSupervisor]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{readonly|children delete-on-remove}\n[Gast / Präsentator][guestOrPresenter]\n[guestOrPresenter]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n)\n\n{readonly|date type=\"year-month\"}\n[ITA Sitzungsmonat (AG Wunsch)][itaMeetingMonthByEmployer]\n[itaMeetingMonthByEmployer]: date <required>\n\n{readonly|multiline auto-grow max=500}\n[Kommentar BITM][itcoComment]\n\n# Unterschriften\n\n{readonly|signature}\n[Unterschrift Antragsteller][applicantSignature]\n[applicantSignature]: file <required=\"applicantSignatureAttachments.length === 0\">\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlage Unterschrift Antragsteller][applicantSignatureAttachments]\n[applicantSignatureAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required=\"!applicantSignature.dataUrl\"> \"Als Alternative zu *Unterschrift Antragsteller* kann eine Datei angehängt werden\"\n\n{readonly|show if !applicantAuthorization|signature}\n[Unterschrift Antragsteller Vorgesetzter][applicantSupervisorSignature]\n[applicantSupervisorSignature]: file <required=\"applicantSupervisorSignatureAttachments.length === 0\">\n\n{show if !applicantAuthorization|readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlage Unterschrift Antragsteller Vorgesetzter][applicantSupervisorSignatureAttachments]\n[applicantSupervisorSignatureAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required=\"!applicantSupervisorSignature.dataUrl\"> \"Als Alternative zu *Unterschrift Antragsteller Vorgesetzter* kann eine Datei angehängt werden\"\n\n# Prüfkatalog\n\n{readonly|children delete-on-remove design=\"itm:questionnaire-card\"}\n[Fragebogen][questionnaire]\n[questionnaire]: /86879215-6d39-4a94-b5b4-77d022ca64db <required>\n\n# Präsentation / Anlagen\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Präsentation][presentation]\n[presentation]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlagen][attachments]\n[attachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{readonly|multiline auto-grow max=500}\n[Nachgereichte Informationen][subsequentlyAddedInformation]\n[subsequentlyAddedInformation]: text\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Nachgereichte Anlagen][subsequentlyAddedAttachments]\n[subsequentlyAddedAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{readonly|multiline auto-grow}\n[Weitere Mitteilung an den IT-Ausschuss][additionalMessageToIta]\n\n\n# Datenschutzstellungnahme\n\n{show if dpoStatementNotRequired|readonly}\n[Stellungnahme DPO ist nicht erforderlich][dpoStatementNotRequired]\n[dpoStatementNotRequired]: switch\n\n{multiline auto-grow max=5000}\n[Stellungnahme DPA][dpaStatement]\n\n{readonly|select}\n[Stellungnahme Ampel][dpoStatementRating]\n[dpoStatementRating]: Select \n  - \n  - GOOD <icon=\"fa fa-circle\" iconcolor=\"green\">: Empfehlung\n  - OK <icon=\"fa fa-circle\" iconcolor=\"yellow\">: Empfehlung mit Auflagen\n  - BAD <icon=\"fa fa-circle\" iconcolor=\"red\">: Keine Empfehlung\n  - NOT_APPLICABLE <icon=\"fa fa-circle\" iconcolor=\"blue\">: Neutral / Nicht bewertbar / Nicht bewertet \n\n\n{readonly|multiline auto-grow max=5000}\n[Stellungnahme DPO][dpoStatement]\n[dpoStatement]: text \n\n{readonly|multiline auto-grow max=5000}\n[Kommentar zur DPO Stellungnahme][commentOnDpoStatement]\n[commentOnDpoStatement]: text \n\n{readonly|multiline auto-grow max=500}\n[Vorschlag Auflagen][dpoProposalConditions]","functions":"","allowedChildrenForms":[],"commands":[],"description":"Phase 1 und 2","theme":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2023-05-23T14:58:43+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2025-05-22T13:49:28+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1747921768932,"ct":1684853923067,"a_depth":4,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","50c3c7c5-c3d4-460c-b34d-0d61a4cb09ae"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"0572195f-176d-40d5-920a-f5b5505e2ef6","text":"2_Bestandseintrag_AntragstellerVorgesetzter","v":"b08d527dbb73c398"},"created":{"at":"2025-07-07T09:53:58+00:00","backedBy":null,"by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":null},"ct":1751882038844,"data":{"allowedChildrenForms":[],"commands":[{"id":"29679280-6be9-449e-9d8c-8e179950588b","text":"rd:Neu","v":"initial"}],"definition":"{hidden|readonly}\n[syncTo][syncTo]\n[syncTo]: /ref\n\n[allDocumentDataValid]: Switch\n\n{hidden}\n[Name][name]\n[name]: = functions.name(systemName, inventoryNumberTitle)\n\n{readonly}\n[Bestandslistennummer][inventoryNumberTitle]\n\n// inventoryNumber should be used in sorting\n{hidden|readonly}\n[Bestandslistennummer][inventoryNumber]\n[inventoryNumber]: number\n\n{readonly}\n[Systemname (des Herstellers)][systemName]\n[systemName]: text <required>\n\n{readonly}\n[Interner Name][internalName]\n\n{readonly|ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df creation-location-form=b40fd5c3-1bc2-42b4-a269-f3cb2e9cf477 hide-path}\n[Hersteller][manufacturer]\n[manufacturer]: /e0978a3d-9761-4849-8a44-d22d8a175f87 (0-n) <required>\n\n{readonly|multiline auto-grow=true max=500}\n[Kurzbeschreibung (Zweck)][description]\n[description]: text <required>\n\n{readonly|multiline auto-grow=true max=500}\n[Modulname(n)][moduleNames]\n\n{readonly}\n[Softwareversion][softwareVersion]\n[softwareVersion]: text <required>\n\n{readonly}\n[Kategorie nach GBV ITM][category]\n[category]: Select <required help=layoutId> \"64fda001-597c-4bd2-a2e9-c988f45e43fb\"\n  - ZERO: Kat 0\n  - ONE: Kat 1\n  - TWO: Kat 2\n  - THREE: Kat 3\n\n{readonly|ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Standorte][locations]\n[locations]: /af8aa2f7-1c0b-404d-b6c8-06e5be0ffd38 (0-n) <required>\n\n{readonly|ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Geltungsbereich][scope]\n[scope]: /21a59b67-da7b-4d24-ab4c-001362e46246 (0-n) <required>\n\n{readonly|children delete-on-remove}\n[Prozesseigner][processOwners]\n[processOwners]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{readonly|children delete-on-remove}\n[Prozesseigner Vorgesetzte][processSupervisors]\n[processSupervisors]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{readonly|children delete-on-remove}\n[Systemeigner][systemOwner]\n[systemOwner]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{readonly|multiline auto-grow}\n[Daten-/Dokumenteneignerschaft][dataDocumentOwnership]\n\n\n\n{readonly|now control=datetime}\n[Zeitstempel Erstellung][creationTimestamp]\n[creationTimestamp]: date\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Ersteller][creator]\n[creator]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10\n","description":"","functions":"name(nameOfSystem, identifier) {\n  if (identifier) {\n    return `[${identifier}]: ${nameOfSystem}`\n  }\n\n  return nameOfSystem\n}","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"SI_Bestandseintrag_readonly","namedIcon":"","namedIconColor":"","tags":"","theme":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"3163b16b782f3ff6"},"id":"1fc12c11-7c26-41e4-9250-b8e3ff306cc5","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-07-08T08:23:16+00:00","backedBy":null,"by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"0572195f-176d-40d5-920a-f5b5505e2ef6","text":"2_Bestandseintrag_AntragstellerVorgesetzter","v":"b08d527dbb73c398"},"p":"50c3c7c5-c3d4-460c-b34d-0d61a4cb09ae","previous":{"v":"0c780467b8e3532e"},"stamps":[],"t":1751962996146,"v":"9719395d5b168bf4"},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","c881dec7-95f5-434f-9423-93143aaa976b"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2025-07-07T09:48:08+00:00","backedBy":null,"by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":null},"ct":1751881688169,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[],"commands":[],"defaults":"","definition":"{hidden|readonly}\n[syncTo][syncTo]\n[syncTo]: /ref\n\n[allDocumentDataValid]: switch\n[allEditableDocumentDataValid]: switch\n\n{readonly}\n[Sammelinformationsnummer][informationNumberTitle]\n[informationNumberTitle]: text\n\n{readonly|text max=100}\n[Sammelinformationstitel][informationTitle]\n[informationTitle]: text <required>\n\n{children disable-remove no-add design=\"itm:inventory-card\"}\n[Bestandseintrag][inventoryEntry]\n[inventoryEntry]: /1fc12c11-7c26-41e4-9250-b8e3ff306cc5\n\n{readonly|multiline auto-grow max=3000}\n[Beschreibung][description]\n[description]: text <required>\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true}\n[Verantwortlicher Ansprechpartner Business][responsible]\n[responsible]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n) <required>\n\n{readonly|multiline auto-grow max=500}\n[Kommentar BITM][itcoComment]\n[itcoComment]: text\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlagen][attachments]\n[attachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{readonly|multiline auto-grow max=500}\n[Kommentar IT-Ref][commentItReferee]\n[commentItReferee]: text\n\n{readonly|datetime}\n[Zeitstempel Erstellung][creationTimestamp]\n[creationTimestamp]: date\n\n{readonly|datetime}\n[Zeitstempel Einreichung][submissionTimestamp]\n[submissionTimestamp]: date\n\n{readonly|datetime}\n[Zeitstempel Annahme][acceptanceTimestamp]\n[acceptanceTimestamp]: date\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Ersteller][creator]\n[creator]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10","descendantCommands":[],"description":"","from":[],"functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"3_Sammelinfo_Alle","namedIcon":"","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"relatedDocuments":[],"tags":"","theme":{"id":"","text":"","v":""},"to":[],"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"b0b69a951dde83ea"},"id":"7e43e773-d6fa-4d97-9054-6ab6d21f1904","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-08-01T07:55:01+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"c881dec7-95f5-434f-9423-93143aaa976b","previous":{"v":"48001f75e07c3067"},"stamps":[],"t":1754034901621,"v":"b1dd264dc672c005"},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"4a02737d-d9fb-43d8-9065-a7071730ffc4","text":"6_Antrag_Antragsteller/AntragstellerVorgesetzter","v":"109b953ae12e0c78"},"created":{"at":"2023-05-25T12:33:57+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1685018037985,"data":{"allowedChildrenForms":[],"commands":[],"definition":"{hidden|readonly}\n[syncTo][syncTo]\n[syncTo]: /ref\n\n[allDocumentDataValid]: switch\n[allEditableDocumentDataValid]: switch\n\n# Application Header Data (individual per new Version)\n\n{readonly}\n[Antragsnummer][applicationNumberTitle]\n\n// applicationNumber should be used in sorting\n{hidden|readonly}\n[Antragsnummer][applicationNumber]\n[applicationNumber]: number\n\n{readonly|datetime}\n[Zeitstempel Erstellung][creationTimestamp]\n[creationTimestamp]: date\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Ersteller][creator]\n[creator]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10\n\n{readonly|children design=\"itm:inventory-card\"}\n[Bestandseintrag][inventoryEntry]\n[inventoryEntry]: /dd51bf3c-69df-4bcd-a630-1a8e0f7dba2e\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Beratender BITM][consultingItco]\n[consultingItco]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n) <required>\n\n{readonly}\n[Antragstitel][applicationTitle]\n[applicationTitle]: text <required>\n\n{readonly|multiline auto-grow max=500}\n[Beschreibung][description]\n[description]: text <required>\n\n{readonly|select}\n[Aktionstyp][actionType]\n[actionType]: select <required help=layoutId> \"003ffe3b-61e1-4553-acb8-1d8e68874ce0\"\n  - ZERO: \"0\"\n  - ONE: 1\n  - TWO: 2\n  - THREE: 3\n  - FOUR: 4\n  - FIVE: 5\n  - INFORMATION: Information\n\n{readonly|switch appearance=\"toggle-text\"}\n[Mitarbeiterdatenbezug][employeeDataReference]\n[employeeDataReference]: switch\n\n{readonly|switch delete-fields-if-false=plannedPilotingDurationInMonths,pilotingEndDate,pilotingComment appearance=\"toggle-text\"}\n[Pilotierung][piloting]\n[piloting]: switch\n\n{readonly|show if piloting}\n[Geplante Dauer der Pilotierung (Angabe in Monaten)][plannedPilotingDurationInMonths]\n[plannedPilotingDurationInMonths]: number <required>\n\n{readonly}\n[Prozess][process]\n[process]: Select <required> \"Wird automatisch berechnet aus **Aktionstyp**, **Mitarbeiterdatenbezug** sowie **Kategorie nach GBV ITM** (letzteres im Bestandseintrag)\"\n  - \n  - NO_ACTIVITY: keine Aktivität im Rahmen der IT-Mitbestimmung\n  - INFORMATION: Informationsprozess\n  - SIMPLE: Vereinfachter Prozess\n  - DETAILED: Detaillierter Prozess\n  - SEPARATE: Gesonderter Prozess\n  - INAPPLICABLE: nicht anwendbar\n\n{readonly}\n[Prozess (angepasst)][processAdjusted]\n[processAdjusted]: Select\n  - \n  - NO_ACTIVITY: keine Aktivität im Rahmen der IT-Mitbestimmung\n  - INFORMATION: Informationsprozess\n  - SIMPLE: Vereinfachter Prozess\n  - DETAILED: Detaillierter Prozess\n  - SEPARATE: Gesonderter Prozess\n  - INAPPLICABLE: nicht anwendbar\n\n\n\n{readonly|switch appearance=\"toggle-text\"}\n[Standortentscheidung][locationDecision]\n[locationDecision]: switch \"Ja: SBR. Nein: ITA/GBR.\"\n\n{readonly|children delete-on-remove}\n[Antragsteller][applicant]\n[applicant]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true}\n[Bearbeiter][editor]\n[editor]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n)\n\n{readonly|switch delete-fields-if-false=applicantSupervisor,applicantSupervisorSignature appearance=\"toggle-text\"}\n[Antragsteller Befugnis (Ist der Antragsteller handlungsbevollmächtigt?)][applicantAuthorization]\n[applicantAuthorization]: switch\n\n{readonly|show if !applicantAuthorization|children delete-on-remove}\n[Antragsteller Vorgesetzter][applicantSupervisor]\n[applicantSupervisor]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{readonly|children delete-on-remove}\n[Gast / Präsentator][guestOrPresenter]\n[guestOrPresenter]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n)\n\n{readonly|date type=\"year-month\"}\n[ITA Sitzungsmonat (AG Wunsch)][itaMeetingMonthByEmployer]\n[itaMeetingMonthByEmployer]: date \n<required>\n\n{readonly|multiline auto-grow max=500}\n[Kommentar BITM][itcoComment]\n\n# Application Signatures\n\n{readonly|signature}\n[Unterschrift Antragsteller][applicantSignature]\n[applicantSignature]: file <required=\"applicantSignatureAttachments.length === 0\">\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlage Unterschrift Antragsteller][applicantSignatureAttachments]\n[applicantSignatureAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required=\"!applicantSignature.dataUrl\"> \"Als Alternative zu *Unterschrift Antragsteller* kann eine Datei angehängt werden\"\n\n{readonly|show if !applicantAuthorization|signature}\n[Unterschrift Antragsteller Vorgesetzter][applicantSupervisorSignature]\n[applicantSupervisorSignature]: file <required=\"applicantSupervisorSignatureAttachments.length === 0\">\n\n{show if !applicantAuthorization|readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlage Unterschrift Antragsteller Vorgesetzter][applicantSupervisorSignatureAttachments]\n[applicantSupervisorSignatureAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required=\"!applicantSupervisorSignature.dataUrl\"> \"Als Alternative zu *Unterschrift Antragsteller Vorgesetzter* kann eine Datei angehängt werden\"\n\n# Questionnaire (Prüfkatalog)\n\n{readonly|children delete-on-remove design=\"itm:questionnaire-card\"}\n[Fragebogen][questionnaire]\n[questionnaire]: /86879215-6d39-4a94-b5b4-77d022ca64db <required>\n\n# Präsentation / Anlagen\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Präsentation][presentation]\n[presentation]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required>\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlagen][attachments]\n[attachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{readonly|multiline auto-grow max=500}\n[Nachgereichte Informationen][subsequentlyAddedInformation]\n[subsequentlyAddedInformation]: text\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Nachgereichte Anlagen][subsequentlyAddedAttachments]\n[subsequentlyAddedAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{readonly|multiline auto-grow}\n[Weitere Mitteilung an den IT-Ausschuss][additionalMessageToIta]\n\n# Datenschutzstellungnahme\n\n{readonly|multiline auto-grow max=5000}\n[Stellungnahme DPA][dpaStatement]\n\n{show if dpoStatementNotRequired|readonly}\n[Stellungnahme DPO ist nicht erforderlich][dpoStatementNotRequired]\n[dpoStatementNotRequired]: switch\n\n\n{readonly|select}\n[Stellungnahme Ampel][dpoStatementRating]\n[dpoStatementRating]: Select \n  - \n  - GOOD <icon=\"fa fa-circle\" iconcolor=\"green\">: Empfehlung\n  - OK <icon=\"fa fa-circle\" iconcolor=\"yellow\">: Empfehlung mit Auflagen\n  - BAD <icon=\"fa fa-circle\" iconcolor=\"red\">: Keine Empfehlung\n  - NOT_APPLICABLE <icon=\"fa fa-circle\" iconcolor=\"blue\">: Neutral / Nicht bewertbar / Nicht bewertet \n\n{readonly|multiline auto-grow max=5000}\n[Stellungnahme DPO][dpoStatement]\n[dpoStatement]: text\n\n{readonly|multiline auto-grow max=5000}\n[Nachträgliche Ergänzung DPO][dpoAdditionalStatement]\n\n{readonly|multiline auto-grow max=5000}\n[Kommentar zur DPO Stellungnahme][commentOnDpoStatement]\n[commentOnDpoStatement]: text \n\n{readonly|multiline auto-grow max=500}\n[Vorschlag Auflagen][dpoProposalConditions]\n\n# Beschluss / Empfehlung / Klärungsauftrag\n\n{readonly|show if piloting}\n[Pilotierung Enddatum][pilotingEndDate]\n[pilotingEndDate]: date\n\n{readonly|children delete-on-remove navigate new-commands=81a8087a-f250-4ee0-acba-dd64518b72b1,2811e9f3-0f97-4425-8b4e-fd96493048de,2a90d0b4-3d71-47b6-b30d-7d254d006ef1,f2e863bd-940e-4fa9-8528-6b606ef7ad43}\n[Beschluss/Empfehlung/Klärungsauftrag][decisions]\n[decisions]: /030be2b6-fcad-4d3c-b44f-c40618e772c0 (0-n) <required>","description":"Phase 1 und 2","functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"6_Antrag_DPO/DPA","namedIcon":"","namedIconColor":"","tags":"","theme":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"3163b16b782f3ff6"},"id":"652365db-adf2-49d8-b1b8-f4d826d3f270","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-10-13T12:12:23+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"4a02737d-d9fb-43d8-9065-a7071730ffc4","text":"6_Antrag_Antragsteller/AntragstellerVorgesetzter","v":"109b953ae12e0c78"},"p":"03d08db0-f873-48cd-a5b5-c34937bddc2f","previous":{"v":"f5f85fb518b3b2b9"},"stamps":[],"t":1760357543342,"v":"d77ea295a8e05931"},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"85b423da-a5e7-4012-8992-29ac8505ecca","text":"4_Antrag_BITM/Antragsteller/Bearbeiter/Antragstell","v":"a6b53a2a3f8c3bb3"},"created":{"at":"2023-05-24T08:41:29+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1684917689549,"data":{"allowedChildrenForms":[],"commands":[],"definition":"{hidden|readonly}\n[syncTo][syncTo]\n[syncTo]: /ref\n\n[allDocumentDataValid]: switch\n[allEditableDocumentDataValid]: switch\n\n# Antrag\n\n{readonly}\n[Antragsnummer][applicationNumberTitle]\n\n// applicationNumber should be used in sorting\n{hidden|readonly}\n[Antragsnummer][applicationNumber]\n[applicationNumber]: number\n\n{readonly|datetime}\n[Zeitstempel Erstellung][creationTimestamp]\n[creationTimestamp]: date\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Ersteller][creator]\n[creator]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10\n\n{readonly|children design=\"itm:inventory-card\"}\n[Bestandseintrag][inventoryEntry]\n[inventoryEntry]: /dd51bf3c-69df-4bcd-a630-1a8e0f7dba2e\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Beratender BITM][consultingItco]\n[consultingItco]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n) <required>\n\n{readonly}\n[Antragstitel][applicationTitle]\n[applicationTitle]: text <required>\n\n{readonly|multiline auto-grow max=500}\n[Beschreibung][description]\n[description]: text <required>\n\n{readonly|select}\n[Aktionstyp][actionType]\n[actionType]: select <required help=layoutId> \"003ffe3b-61e1-4553-acb8-1d8e68874ce0\"\n  - ZERO: \"0\"\n  - ONE: 1\n  - TWO: 2\n  - THREE: 3\n  - FOUR: 4\n  - FIVE: 5\n  - INFORMATION: Information\n\n{readonly|switch appearance=\"toggle-text\"}\n[Mitarbeiterdatenbezug][employeeDataReference]\n[employeeDataReference]: switch\n\n{readonly|switch delete-fields-if-false=plannedPilotingDurationInMonths,pilotingEndDate,pilotingComment appearance=\"toggle-text\"}\n[Pilotierung][piloting]\n[piloting]: switch\n\n{readonly|show if piloting}\n[Geplante Dauer der Pilotierung (Angabe in Monaten)][plannedPilotingDurationInMonths]\n[plannedPilotingDurationInMonths]: number <required>\n\n{readonly}\n[Prozess][process]\n[process]: Select <required> \"Wird automatisch berechnet aus **Aktionstyp**, **Mitarbeiterdatenbezug** sowie **Kategorie nach GBV ITM** (letzteres im Bestandseintrag)\"\n  - \n  - NO_ACTIVITY: keine Aktivität im Rahmen der IT-Mitbestimmung\n  - INFORMATION: Informationsprozess\n  - SIMPLE: Vereinfachter Prozess\n  - DETAILED: Detaillierter Prozess\n  - SEPARATE: Gesonderter Prozess\n  - INAPPLICABLE: nicht anwendbar\n\n{readonly}\n[Prozess (angepasst)][processAdjusted]\n[processAdjusted]: Select\n  - \n  - NO_ACTIVITY: keine Aktivität im Rahmen der IT-Mitbestimmung\n  - INFORMATION: Informationsprozess\n  - SIMPLE: Vereinfachter Prozess\n  - DETAILED: Detaillierter Prozess\n  - SEPARATE: Gesonderter Prozess\n  - INAPPLICABLE: nicht anwendbar\n\n\n\n{readonly|switch appearance=\"toggle-text\"}\n[Standortentscheidung][locationDecision]\n[locationDecision]: switch \"Ja: SBR. Nein: ITA/GBR.\"\n\n{readonly|children delete-on-remove}\n[Antragsteller][applicant]\n[applicant]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true}\n[Bearbeiter][editor]\n[editor]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n)\n\n{readonly|switch delete-fields-if-false=applicantSupervisor,applicantSupervisorSignature appearance=\"toggle-text\"}\n[Antragsteller Befugnis (Ist der Antragsteller handlungsbevollmächtigt?)][applicantAuthorization]\n[applicantAuthorization]: switch\n\n{readonly|show if !applicantAuthorization|children delete-on-remove}\n[Antragsteller Vorgesetzter][applicantSupervisor]\n[applicantSupervisor]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{readonly|children delete-on-remove}\n[Gast / Präsentator][guestOrPresenter]\n[guestOrPresenter]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n)\n\n{readonly|date type=\"year-month\"}\n[ITA Sitzungsmonat (AG Wunsch)][itaMeetingMonthByEmployer]\n[itaMeetingMonthByEmployer]: date <required>\n\n{readonly|multiline auto-grow max=500}\n[Kommentar BITM][itcoComment]\n\n# Unterschriften\n\n{readonly|signature}\n[Unterschrift Antragsteller][applicantSignature]\n[applicantSignature]: file <required=\"applicantSignatureAttachments.length === 0\">\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlage Unterschrift Antragsteller][applicantSignatureAttachments]\n[applicantSignatureAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required=\"!applicantSignature.dataUrl\"> \"Als Alternative zu *Unterschrift Antragsteller* kann eine Datei angehängt werden\"\n\n{readonly|show if !applicantAuthorization|signature}\n[Unterschrift Antragsteller Vorgesetzter][applicantSupervisorSignature]\n[applicantSupervisorSignature]: file <required=\"applicantSupervisorSignatureAttachments.length === 0\">\n\n{show if !applicantAuthorization|readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlage Unterschrift Antragsteller Vorgesetzter][applicantSupervisorSignatureAttachments]\n[applicantSupervisorSignatureAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required=\"!applicantSupervisorSignature.dataUrl\"> \"Als Alternative zu *Unterschrift Antragsteller Vorgesetzter* kann eine Datei angehängt werden\"\n\n# Prüfkatalog\n\n{readonly|children delete-on-remove design=\"itm:questionnaire-card\"}\n[Fragebogen][questionnaire]\n[questionnaire]: /86879215-6d39-4a94-b5b4-77d022ca64db <required>\n\n# Präsentation / Anlagen\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Präsentation][presentation]\n[presentation]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required>\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlagen][attachments]\n[attachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{readonly|multiline auto-grow max=500}\n[Nachgereichte Informationen][subsequentlyAddedInformation]\n[subsequentlyAddedInformation]: text\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Nachgereichte Anlagen][subsequentlyAddedAttachments]\n[subsequentlyAddedAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{readonly|multiline auto-grow}\n[Weitere Mitteilung an den IT-Ausschuss][additionalMessageToIta]\n\n# Datenschutzstellungnahme\n\n{readonly|multiline auto-grow max=5000}\n[Stellungnahme DPA][dpaStatement]\n\n{show if dpoStatementNotRequired|readonly}\n[Stellungnahme DPO ist nicht erforderlich][dpoStatementNotRequired]\n[dpoStatementNotRequired]: switch\n\n{select}\n[Stellungnahme Ampel][dpoStatementRating]\n[dpoStatementRating]: Select \n  - \n  - GOOD <icon=\"fa fa-circle\" iconcolor=\"green\">: Empfehlung\n  - OK <icon=\"fa fa-circle\" iconcolor=\"yellow\">: Empfehlung mit Auflagen\n  - BAD <icon=\"fa fa-circle\" iconcolor=\"red\">: Keine Empfehlung\n  - NOT_APPLICABLE <icon=\"fa fa-circle\" iconcolor=\"blue\">: Neutral / Nicht bewertbar / Nicht bewertet \n\n{readonly|multiline auto-grow max=5000}\n[Stellungnahme DPO][dpoStatement]\n[dpoStatement]: text\n\n{readonly|multiline auto-grow max=5000}\n[Kommentar zur DPO Stellungnahme][commentOnDpoStatement]\n[commentOnDpoStatement]: text \n\n{multiline auto-grow max=5000}\n[Nachträgliche Ergänzung DPO][dpoAdditionalStatement]\n\n{multiline auto-grow max=500}\n[Vorschlag Auflagen][dpoProposalConditions]","description":"Phase 1 und 2","functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"4_Antrag_DPO","namedIcon":"","namedIconColor":"","tags":"","theme":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"3163b16b782f3ff6"},"id":"58a5a63d-794a-4233-b294-f8e731a9251e","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-10-13T11:50:48+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"85b423da-a5e7-4012-8992-29ac8505ecca","text":"4_Antrag_BITM/Antragsteller/Bearbeiter/Antragstell","v":"a6b53a2a3f8c3bb3"},"p":"03d08db0-f873-48cd-a5b5-c34937bddc2f","previous":{"v":"0fe5f83b5eaf25cc"},"stamps":[],"t":1760356248890,"v":"4e0aca76244e111d"},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"98a077cd-4317-409d-9aa6-628648d6413e","text":"6_Antrag_ITA-Sekretariat","v":"78d874827b888b0b"},"created":{"at":"2023-05-25T15:02:56+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1685026976256,"data":{"allowedChildrenForms":[],"commands":[],"definition":"{hidden|readonly}\n[syncTo][syncTo]\n[syncTo]: /ref\n\n[allDocumentDataValid]: switch\n[allEditableDocumentDataValid]: switch\n\n# Antrag\n\n{readonly}\n[Antragsnummer][applicationNumberTitle]\n\n// applicationNumber should be used in sorting\n{hidden|readonly}\n[Antragsnummer][applicationNumber]\n[applicationNumber]: number\n\n{readonly|datetime}\n[Zeitstempel Erstellung][creationTimestamp]\n[creationTimestamp]: date\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Ersteller][creator]\n[creator]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10\n\n{readonly|children design=\"itm:inventory-card\"}\n[Bestandseintrag][inventoryEntry]\n[inventoryEntry]: /dd51bf3c-69df-4bcd-a630-1a8e0f7dba2e\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Beratender BITM][consultingItco]\n[consultingItco]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n) <required>\n\n{readonly}\n[Antragstitel][applicationTitle]\n[applicationTitle]: text <required>\n\n{readonly|multiline auto-grow max=500}\n[Beschreibung][description]\n[description]: text <required>\n\n{readonly|select}\n[Aktionstyp][actionType]\n[actionType]: select <required help=layoutId> \"003ffe3b-61e1-4553-acb8-1d8e68874ce0\"\n  - ZERO: \"0\"\n  - ONE: 1\n  - TWO: 2\n  - THREE: 3\n  - FOUR: 4\n  - FIVE: 5\n  - INFORMATION: Information\n\n{readonly|switch appearance=\"toggle-text\"}\n[Mitarbeiterdatenbezug][employeeDataReference]\n[employeeDataReference]: switch\n\n{readonly|switch delete-fields-if-false=plannedPilotingDurationInMonths,pilotingEndDate,pilotingComment appearance=\"toggle-text\"}\n[Pilotierung][piloting]\n[piloting]: switch\n\n{readonly|show if piloting}\n[Geplante Dauer der Pilotierung (Angabe in Monaten)][plannedPilotingDurationInMonths]\n[plannedPilotingDurationInMonths]: number <required>\n\n{readonly}\n[Prozess][process]\n[process]: Select <required> \"Wird automatisch berechnet aus **Aktionstyp**, **Mitarbeiterdatenbezug** sowie **Kategorie nach GBV ITM** (letzteres im Bestandseintrag)\"\n  - \n  - NO_ACTIVITY: keine Aktivität im Rahmen der IT-Mitbestimmung\n  - INFORMATION: Informationsprozess\n  - SIMPLE: Vereinfachter Prozess\n  - DETAILED: Detaillierter Prozess\n  - SEPARATE: Gesonderter Prozess\n  - INAPPLICABLE: nicht anwendbar\n\n{readonly}\n[Prozess (angepasst)][processAdjusted]\n[processAdjusted]: Select\n  - \n  - NO_ACTIVITY: keine Aktivität im Rahmen der IT-Mitbestimmung\n  - INFORMATION: Informationsprozess\n  - SIMPLE: Vereinfachter Prozess\n  - DETAILED: Detaillierter Prozess\n  - SEPARATE: Gesonderter Prozess\n  - INAPPLICABLE: nicht anwendbar\n\n\n\n{readonly|switch appearance=\"toggle-text\"}\n[Standortentscheidung][locationDecision]\n[locationDecision]: switch \"Ja: SBR. Nein: ITA/GBR.\"\n\n{readonly|children delete-on-remove}\n[Antragsteller][applicant]\n[applicant]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true}\n[Bearbeiter][editor]\n[editor]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n)\n\n{readonly|switch delete-fields-if-false=applicantSupervisor,applicantSupervisorSignature appearance=\"toggle-text\"}\n[Antragsteller Befugnis (Ist der Antragsteller handlungsbevollmächtigt?)][applicantAuthorization]\n[applicantAuthorization]: switch\n\n{readonly|show if !applicantAuthorization|children delete-on-remove}\n[Antragsteller Vorgesetzter][applicantSupervisor]\n[applicantSupervisor]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{readonly|children delete-on-remove}\n[Gast / Präsentator][guestOrPresenter]\n[guestOrPresenter]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n)\n\n{readonly|date type=\"year-month\"}\n[ITA Sitzungsmonat (AG Wunsch)][itaMeetingMonthByEmployer]\n[itaMeetingMonthByEmployer]: date \n<required>\n\n{readonly|multiline auto-grow max=500}\n[Kommentar BITM][itcoComment]\n\n# Unterschriften\n\n{readonly|signature}\n[Unterschrift Antragsteller][applicantSignature]\n[applicantSignature]: file <required=\"applicantSignatureAttachments.length === 0\">\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlage Unterschrift Antragsteller][applicantSignatureAttachments]\n[applicantSignatureAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required=\"!applicantSignature.dataUrl\"> \"Als Alternative zu *Unterschrift Antragsteller* kann eine Datei angehängt werden\"\n\n{readonly|show if !applicantAuthorization|signature}\n[Unterschrift Antragsteller Vorgesetzter][applicantSupervisorSignature]\n[applicantSupervisorSignature]: file <required=\"applicantSupervisorSignatureAttachments.length === 0\">\n\n{show if !applicantAuthorization|readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlage Unterschrift Antragsteller Vorgesetzter][applicantSupervisorSignatureAttachments]\n[applicantSupervisorSignatureAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required=\"!applicantSupervisorSignature.dataUrl\"> \"Als Alternative zu *Unterschrift Antragsteller Vorgesetzter* kann eine Datei angehängt werden\"\n\n# Prüfkatalog\n\n{readonly|children delete-on-remove design=\"itm:questionnaire-card\"}\n[Fragebogen][questionnaire]\n[questionnaire]: /86879215-6d39-4a94-b5b4-77d022ca64db <required>\n\n# Präsentation / Anlagen\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Präsentation][presentation]\n[presentation]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required>\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlagen][attachments]\n[attachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{readonly|multiline auto-grow max=500}\n[Nachgereichte Informationen][subsequentlyAddedInformation]\n[subsequentlyAddedInformation]: text\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Nachgereichte Anlagen][subsequentlyAddedAttachments]\n[subsequentlyAddedAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{readonly|multiline auto-grow}\n[Weitere Mitteilung an den IT-Ausschuss][additionalMessageToIta]\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlagen ITA Seite][attachmentsIta]\n[attachmentsIta]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n# Datenschutzstellungnahme\n\n{readonly|multiline auto-grow max=5000}\n[Stellungnahme DPA][dpaStatement]\n\n{show if dpoStatementNotRequired|readonly}\n[Stellungnahme DPO ist nicht erforderlich][dpoStatementNotRequired]\n[dpoStatementNotRequired]: switch\n\n\n{readonly|select}\n[Stellungnahme Ampel][dpoStatementRating]\n[dpoStatementRating]: Select \n  - \n  - GOOD <icon=\"fa fa-circle\" iconcolor=\"green\">: Empfehlung\n  - OK <icon=\"fa fa-circle\" iconcolor=\"yellow\">: Empfehlung mit Auflagen\n  - BAD <icon=\"fa fa-circle\" iconcolor=\"red\">: Keine Empfehlung\n  - NOT_APPLICABLE <icon=\"fa fa-circle\" iconcolor=\"blue\">: Neutral / Nicht bewertbar / Nicht bewertet \n\n{readonly|multiline auto-grow max=5000}\n[Stellungnahme DPO][dpoStatement]\n[dpoStatement]: text\n\n{readonly|multiline auto-grow max=5000}\n[Nachträgliche Ergänzung DPO][dpoAdditionalStatement]\n\n{readonly|multiline auto-grow max=5000}\n[Kommentar zur DPO Stellungnahme][commentOnDpoStatement]\n[commentOnDpoStatement]: text \n\n{readonly|multiline auto-grow max=500}\n[Vorschlag Auflagen][dpoProposalConditions]\n\n# Sitzungszuordnung / ITA Kommentare\n\n{readonly|multiline auto-grow max=500}\n[Kommentar IT-Ref][commentItReferee]\n\n{readonly|multiline auto-grow max=500}\n[Kommentar ITA-Vorsitz][commentItaChair]\n\n{readonly|multiline auto-grow max=500}\n[Kommentar ITA Sekretariat][commentItaOffice]\n\n{readonly|date type=\"year-month\"}\n[ITA Sitzungsmonat (ITA)][itaMeetingMonthByIta]\n[itaMeetingMonthByIta]: date (0-n)\n\n{readonly|switch appearance=\"toggle-text\"}\n[Papierentscheid][paperDecision]\n[paperDecision]: switch\n\n# Beschluss / Empfehlung / Klärungsauftrag\n\n{readonly|multiline auto-grow}\n[Beschlussvorschlag][proposalDecision]\n\n{readonly|show if piloting}\n[Pilotierung Enddatum][pilotingEndDate]\n[pilotingEndDate]: date\n\n{readonly|show if piloting|multiline auto-grow}\n[Pilotierung Kommentar][pilotingComment]\n\n{readonly|children delete-on-remove navigate new-commands=81a8087a-f250-4ee0-acba-dd64518b72b1,2811e9f3-0f97-4425-8b4e-fd96493048de,2a90d0b4-3d71-47b6-b30d-7d254d006ef1,f2e863bd-940e-4fa9-8528-6b606ef7ad43}\n[Beschluss/Empfehlung/Klärungsauftrag][decisions]\n[decisions]: /cbdb17cb-885b-4e8b-bfa4-ee22f5c3122f (0-n) <required>","description":"Phase 1 und 2","functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"7_Antrag_ITA-Sekretariat","namedIcon":"","namedIconColor":"","tags":"","theme":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"3163b16b782f3ff6"},"id":"40e67965-2ce0-4fa0-b0d9-6afa7a584886","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-10-13T12:16:10+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"98a077cd-4317-409d-9aa6-628648d6413e","text":"6_Antrag_ITA-Sekretariat","v":"78d874827b888b0b"},"p":"03d08db0-f873-48cd-a5b5-c34937bddc2f","previous":{"v":"d07b2c6987b53260"},"stamps":[],"t":1760357770106,"v":"4762332712487662"},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"a64625f3-92f8-4c0b-935a-d93891ecfcd4","text":"2_Antrag_Antragsteller","v":"bf571310e376d14f"},"created":{"at":"2023-05-23T14:45:36+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1684853136208,"data":{"allowedChildrenForms":[],"commands":[],"definition":"{hidden|readonly}\n[syncTo][syncTo]\n[syncTo]: /ref\n\n[allDocumentDataValid]: switch\n[allEditableDocumentDataValid]: switch\n\n# Antrag\n\n{readonly}\n[Antragsnummer][applicationNumberTitle]\n\n// applicationNumber should be used in sorting\n{hidden|readonly}\n[Antragsnummer][applicationNumber]\n[applicationNumber]: number\n\n{readonly|datetime}\n[Zeitstempel Erstellung][creationTimestamp]\n[creationTimestamp]: date\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Ersteller][creator]\n[creator]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10\n\n{readonly|children design=\"itm:inventory-card\"}\n[Bestandseintrag][inventoryEntry]\n[inventoryEntry]: /dd51bf3c-69df-4bcd-a630-1a8e0f7dba2e\n\n{readonly}\n[Antragstitel][applicationTitle]\n\n{readonly|multiline auto-grow max=500}\n[Beschreibung][description]\n\n{readonly|select}\n[Aktionstyp][actionType]\n[actionType]: select\n  - ZERO: \"0\"\n  - ONE: 1\n  - TWO: 2\n  - THREE: 3\n  - FOUR: 4\n  - FIVE: 5\n  - INFORMATION: Information\n\n{readonly|switch appearance=\"toggle-text\"}\n[Mitarbeiterdatenbezug][employeeDataReference]\n[employeeDataReference]: switch\n\n{readonly|switch appearance=\"toggle-text\"}\n[Pilotierung][piloting]\n[piloting]: switch\n\n{readonly|show if piloting}\n[Geplante Dauer der Pilotierung (Angabe in Monaten)][plannedPilotingDurationInMonths]\n[plannedPilotingDurationInMonths]: number\n\n{readonly|readonly}\n[Prozess][process]\n[process]: Select <required> \"Wird automatisch berechnet aus **Aktionstyp**, **Mitarbeiterdatenbezug** sowie **Kategorie nach GBV ITM** (letzteres im Bestandseintrag)\"\n  - \n  - NO_ACTIVITY: keine Aktivität im Rahmen der IT-Mitbestimmung\n  - INFORMATION: Informationsprozess\n  - SIMPLE: Vereinfachter Prozess\n  - DETAILED: Detaillierter Prozess\n  - SEPARATE: Gesonderter Prozess\n  - INAPPLICABLE: nicht anwendbar\n\n\n{readonly|switch appearance=\"toggle-text\"}\n[Standortentscheidung][locationDecision]\n[locationDecision]: switch \"Ja: SBR. Nein: ITA/GBR.\"\n\n{readonly|children delete-on-remove}\n[Antragsteller][applicant]\n[applicant]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n)\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true}\n[Bearbeiter][editor]\n[editor]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n)\n\n{readonly|switch appearance=\"toggle-text\"}\n[Antragsteller Befugnis (Ist der Antragsteller handlungsbevollmächtigt?)][applicantAuthorization]\n[applicantAuthorization]: switch\n\n{readonly|children delete-on-remove}\n[Antragsteller Vorgesetzter][applicantSupervisor]\n[applicantSupervisor]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n)\n\n{readonly|children delete-on-remove}\n[Gast / Präsentator][guestOrPresenter]\n[guestOrPresenter]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n)\n\n{readonly|date type=\"year-month\"}\n[ITA Sitzungsmonat (AG Wunsch)][itaMeetingMonthByEmployer]\n[itaMeetingMonthByEmployer]: date\n\n{readonly|multiline auto-grow max=500}\n[Kommentar BITM][itcoComment]\n\n# Unterschriften\n\n{signature}\n[Unterschrift Antragsteller][applicantSignature]\n[applicantSignature]: file <required=\"applicantSignatureAttachments.length === 0\">\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlage Unterschrift Antragsteller][applicantSignatureAttachments]\n[applicantSignatureAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required=\"!applicantSignature.dataUrl\"> \"Als Alternative zu *Unterschrift Antragsteller* kann eine Datei angehängt werden\"\n\n{show if !applicantAuthorization|readonly|signature}\n[Unterschrift Antragsteller Vorgesetzter][applicantSupervisorSignature]\n[applicantSupervisorSignature]: file <required=\"applicantSupervisorSignatureAttachments.length === 0\">\n\n{show if !applicantAuthorization|readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlage Unterschrift Antragsteller Vorgesetzter][applicantSupervisorSignatureAttachments]\n[applicantSupervisorSignatureAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required=\"!applicantSupervisorSignature.dataUrl\"> \"Als Alternative zu *Unterschrift Antragsteller Vorgesetzter* kann eine Datei angehängt werden\"\n\n# Prüfkatalog\n\n{readonly|children delete-on-remove design=\"itm:questionnaire-card\"}\n[Fragebogen][questionnaire]\n[questionnaire]: /86879215-6d39-4a94-b5b4-77d022ca64db <required>\n\n# Präsentation / Anlagen\n\n{show if presentationTemplate.length > 0|readonly|attachment show-download-original-only}\n[Präsentation (Vorlage)][presentationTemplate]\n[presentationTemplate]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Präsentation][presentation]\n[presentation]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required>\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlagen][attachments]\n[attachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{readonly|multiline auto-grow max=500}\n[Nachgereichte Informationen][subsequentlyAddedInformation]\n[subsequentlyAddedInformation]: text\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Nachgereichte Anlagen][subsequentlyAddedAttachments]\n[subsequentlyAddedAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{multiline auto-grow}\n[Weitere Mitteilung an den IT-Ausschuss][additionalMessageToIta]\n\n# Datenschutzstellungnahme\n\n{show if dpoStatementNotRequired|readonly}\n[Stellungnahme DPO ist nicht erforderlich][dpoStatementNotRequired]\n[dpoStatementNotRequired]: switch\n\n{readonly|multiline auto-grow max=5000}\n[Stellungnahme DPO][dpoStatement]\n[dpoStatement]: text \n\n{multiline auto-grow max=5000}\n[Kommentar zur DPO Stellungnahme][commentOnDpoStatement]\n[commentOnDpoStatement]: text ","description":"Phase 1 und 2","functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"3_Antrag_Antragsteller","namedIcon":"","namedIconColor":"","tags":"","theme":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"3163b16b782f3ff6"},"id":"afa8ae9e-ca0b-4e96-8ddb-c6147c6549ac","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-05-22T13:49:28+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"a64625f3-92f8-4c0b-935a-d93891ecfcd4","text":"2_Antrag_Antragsteller","v":"bf571310e376d14f"},"p":"03d08db0-f873-48cd-a5b5-c34937bddc2f","previous":{"v":"8f36c75badd08a18"},"stamps":[],"t":1747921768493,"v":"e63fb19f25e76734"},{"id":"20634b91-66ce-4399-a680-d34549dd7923","v":"08b858309be3e61d","cloneOf":{"id":"a64625f3-92f8-4c0b-935a-d93891ecfcd4","text":"2_Antrag (In Bearbeitung durch Antragsteller)_Antr","v":"7f83f88eb8d37ddc"},"originalCloneOf":{"id":"a64625f3-92f8-4c0b-935a-d93891ecfcd4","text":"2_Antrag (In Bearbeitung durch Antragsteller)_Antr","v":"7f83f88eb8d37ddc"},"previous":{"v":"cb6935f0e15cff65"},"p":"03d08db0-f873-48cd-a5b5-c34937bddc2f","f":{"id":"form","v":"3163b16b782f3ff6","text":"Form"},"data":{"name":"2_Antrag_Bearbeiter","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"{hidden|readonly}\n[syncTo][syncTo]\n[syncTo]: /ref\n\n[allDocumentDataValid]: switch\n[allEditableDocumentDataValid]: switch\n\n\n# Antrag\n\n{readonly}\n[Antragsnummer][applicationNumberTitle]\n\n// applicationNumber should be used in sorting\n{hidden|readonly}\n[Antragsnummer][applicationNumber]\n[applicationNumber]: number\n\n{readonly|datetime}\n[Zeitstempel Erstellung][creationTimestamp]\n[creationTimestamp]: date\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Ersteller][creator]\n[creator]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10\n\n{children disable-remove no-add design=\"itm:inventory-card\"}\n[Bestandseintrag][inventoryEntry]\n[inventoryEntry]: /91f74438-399a-4397-a599-a5f386ea0ed8\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Beratender BITM][consultingItco]\n[consultingItco]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n) <required>\n\n{readonly}\n[Antragstitel][applicationTitle]\n[applicationTitle]: text <required>\n\n{readonly|multiline auto-grow max=500}\n[Beschreibung][description]\n[description]: text <required>\n\n{readonly|select}\n[Aktionstyp][actionType]\n[actionType]: select <required help=layoutId> \"003ffe3b-61e1-4553-acb8-1d8e68874ce0\"\n  - ZERO: \"0\"\n  - ONE: 1\n  - TWO: 2\n  - THREE: 3\n  - FOUR: 4\n  - FIVE: 5\n  - INFORMATION: Information\n\n{readonly|switch appearance=\"toggle-text\"}\n[Mitarbeiterdatenbezug][employeeDataReference]\n[employeeDataReference]: switch\n\n{readonly|switch delete-fields-if-false=plannedPilotingDurationInMonths,pilotingEndDate,pilotingComment appearance=\"toggle-text\"}\n[Pilotierung][piloting]\n[piloting]: switch\n\n{readonly|show if piloting}\n[Geplante Dauer der Pilotierung (Angabe in Monaten)][plannedPilotingDurationInMonths]\n[plannedPilotingDurationInMonths]: number <required>\n\n{readonly}\n[Prozess][process]\n[process]: Select <required> \"Wird automatisch berechnet aus **Aktionstyp**, **Mitarbeiterdatenbezug** sowie **Kategorie nach GBV ITM** (letzteres im Bestandseintrag)\"\n  - \n  - NO_ACTIVITY: keine Aktivität im Rahmen der IT-Mitbestimmung\n  - INFORMATION: Informationsprozess\n  - SIMPLE: Vereinfachter Prozess\n  - DETAILED: Detaillierter Prozess\n  - SEPARATE: Gesonderter Prozess\n  - INAPPLICABLE: nicht anwendbar\n\n\n{readonly|switch appearance=\"toggle-text\"}\n[Standortentscheidung][locationDecision]\n[locationDecision]: switch \"Ja: SBR. Nein: ITA/GBR.\"\n\n{readonly|children delete-on-remove}\n[Antragsteller][applicant]\n[applicant]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Bearbeiter][editor]\n[editor]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n)\n\n{readonly|switch delete-fields-if-false=applicantSupervisor,applicantSupervisorSignature appearance=\"toggle-text\"}\n[Antragsteller Befugnis (Ist der Antragsteller handlungsbevollmächtigt?)][applicantAuthorization]\n[applicantAuthorization]: switch\n\n{readonly|show if !applicantAuthorization|children delete-on-remove}\n[Antragsteller Vorgesetzter][applicantSupervisor]\n[applicantSupervisor]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{readonly|children delete-on-remove}\n[Gast / Präsentator][guestOrPresenter]\n[guestOrPresenter]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n)\n\n{readonly|date type=\"year-month\"}\n[ITA Sitzungsmonat (AG Wunsch)][itaMeetingMonthByEmployer]\n[itaMeetingMonthByEmployer]: date <required>\n\n{readonly|multiline auto-grow max=500}\n[Kommentar BITM][itcoComment]\n\n# Unterschriften\n\n{readonly|signature}\n[Unterschrift Antragsteller][applicantSignature]\n[applicantSignature]: file <required=\"applicantSignatureAttachments.length === 0\">\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlage Unterschrift Antragsteller][applicantSignatureAttachments]\n[applicantSignatureAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required=\"!applicantSignature.dataUrl\"> \"Als Alternative zu *Unterschrift Antragsteller* kann eine Datei angehängt werden\"\n\n{readonly|show if !applicantAuthorization|signature}\n[Unterschrift Antragsteller Vorgesetzter][applicantSupervisorSignature]\n[applicantSupervisorSignature]: file <required=\"applicantSupervisorSignatureAttachments.length === 0\">\n\n{show if !applicantAuthorization|readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlage Unterschrift Antragsteller Vorgesetzter][applicantSupervisorSignatureAttachments]\n[applicantSupervisorSignatureAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required=\"!applicantSupervisorSignature.dataUrl\"> \"Als Alternative zu *Unterschrift Antragsteller Vorgesetzter* kann eine Datei angehängt werden\"\n\n# Prüfkatalog\n\n{children disable-remove no-add design=\"itm:questionnaire-card\"}\n[Fragebogen][questionnaire]\n[questionnaire]: /b5dcdd5b-6a84-4e13-92a2-052a1f1d1492 <required>\n\n# Präsentation / Anlagen\n\n{show if presentationTemplate.length > 0|readonly|attachment show-download-original-only}\n[Präsentation (Vorlage)][presentationTemplate]\n[presentationTemplate]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Präsentation][presentation]\n[presentation]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlagen][attachments]\n[attachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{multiline auto-grow}\n[Weitere Mitteilung an den IT-Ausschuss][additionalMessageToIta]\n","functions":"","allowedChildrenForms":[],"commands":[],"description":"Phase 1 und 2","theme":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2023-05-23T12:23:59+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"modified":{"at":"2025-05-20T14:51:54+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1747752714217,"ct":1684844639694,"a_depth":4,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"7665f38b-e1a1-4708-9173-70d015272792","text":"6_Antrag_BITM/Bearbeiter","v":"47058cd376acfc67"},"created":{"at":"2023-05-25T12:31:29+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1685017889504,"data":{"allowedChildrenForms":[],"commands":[],"definition":"{hidden|readonly}\n[syncTo][syncTo]\n[syncTo]: /ref\n\n[allDocumentDataValid]: switch\n[allEditableDocumentDataValid]: switch\n\n# Antrag\n\n{readonly}\n[Antragsnummer][applicationNumberTitle]\n\n// applicationNumber should be used in sorting\n{hidden|readonly}\n[Antragsnummer][applicationNumber]\n[applicationNumber]: number\n\n{readonly|datetime}\n[Zeitstempel Erstellung][creationTimestamp]\n[creationTimestamp]: date\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Ersteller][creator]\n[creator]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10\n\n{readonly|children design=\"itm:inventory-card\"}\n[Bestandseintrag][inventoryEntry]\n[inventoryEntry]: /dd51bf3c-69df-4bcd-a630-1a8e0f7dba2e\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Beratender BITM][consultingItco]\n[consultingItco]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n) <required>\n\n{readonly}\n[Antragstitel][applicationTitle]\n[applicationTitle]: text <required>\n\n{readonly|multiline auto-grow max=500}\n[Beschreibung][description]\n[description]: text <required>\n\n{readonly|select}\n[Aktionstyp][actionType]\n[actionType]: select <required help=layoutId> \"003ffe3b-61e1-4553-acb8-1d8e68874ce0\"\n  - ZERO: \"0\"\n  - ONE: 1\n  - TWO: 2\n  - THREE: 3\n  - FOUR: 4\n  - FIVE: 5\n  - INFORMATION: Information\n\n{readonly|switch appearance=\"toggle-text\"}\n[Mitarbeiterdatenbezug][employeeDataReference]\n[employeeDataReference]: switch\n\n{readonly|switch delete-fields-if-false=plannedPilotingDurationInMonths,pilotingEndDate,pilotingComment appearance=\"toggle-text\"}\n[Pilotierung][piloting]\n[piloting]: switch\n\n{readonly|show if piloting}\n[Geplante Dauer der Pilotierung (Angabe in Monaten)][plannedPilotingDurationInMonths]\n[plannedPilotingDurationInMonths]: number <required>\n\n{readonly}\n[Prozess][process]\n[process]: Select <required> \"Wird automatisch berechnet aus **Aktionstyp**, **Mitarbeiterdatenbezug** sowie **Kategorie nach GBV ITM** (letzteres im Bestandseintrag)\"\n  - \n  - NO_ACTIVITY: keine Aktivität im Rahmen der IT-Mitbestimmung\n  - INFORMATION: Informationsprozess\n  - SIMPLE: Vereinfachter Prozess\n  - DETAILED: Detaillierter Prozess\n  - SEPARATE: Gesonderter Prozess\n  - INAPPLICABLE: nicht anwendbar\n\n{readonly}\n[Prozess (angepasst)][processAdjusted]\n[processAdjusted]: Select\n  - \n  - NO_ACTIVITY: keine Aktivität im Rahmen der IT-Mitbestimmung\n  - INFORMATION: Informationsprozess\n  - SIMPLE: Vereinfachter Prozess\n  - DETAILED: Detaillierter Prozess\n  - SEPARATE: Gesonderter Prozess\n  - INAPPLICABLE: nicht anwendbar\n\n\n\n{readonly|switch appearance=\"toggle-text\"}\n[Standortentscheidung][locationDecision]\n[locationDecision]: switch \"Ja: SBR. Nein: ITA/GBR.\"\n\n{readonly|children delete-on-remove}\n[Antragsteller][applicant]\n[applicant]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true}\n[Bearbeiter][editor]\n[editor]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n)\n\n{readonly|switch delete-fields-if-false=applicantSupervisor,applicantSupervisorSignature appearance=\"toggle-text\"}\n[Antragsteller Befugnis (Ist der Antragsteller handlungsbevollmächtigt?)][applicantAuthorization]\n[applicantAuthorization]: switch\n\n{readonly|show if !applicantAuthorization|children delete-on-remove}\n[Antragsteller Vorgesetzter][applicantSupervisor]\n[applicantSupervisor]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{readonly|children delete-on-remove}\n[Gast / Präsentator][guestOrPresenter]\n[guestOrPresenter]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n)\n\n{readonly|date type=\"year-month\"}\n[ITA Sitzungsmonat (AG Wunsch)][itaMeetingMonthByEmployer]\n[itaMeetingMonthByEmployer]: date \n<required>\n\n{readonly|multiline auto-grow max=500}\n[Kommentar BITM][itcoComment]\n\n# Unterschriften\n\n{readonly|signature}\n[Unterschrift Antragsteller][applicantSignature]\n[applicantSignature]: file <required=\"applicantSignatureAttachments.length === 0\">\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlage Unterschrift Antragsteller][applicantSignatureAttachments]\n[applicantSignatureAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required=\"!applicantSignature.dataUrl\"> \"Als Alternative zu *Unterschrift Antragsteller* kann eine Datei angehängt werden\"\n\n{readonly|show if !applicantAuthorization|signature}\n[Unterschrift Antragsteller Vorgesetzter][applicantSupervisorSignature]\n[applicantSupervisorSignature]: file <required=\"applicantSupervisorSignatureAttachments.length === 0\">\n\n{show if !applicantAuthorization|readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlage Unterschrift Antragsteller Vorgesetzter][applicantSupervisorSignatureAttachments]\n[applicantSupervisorSignatureAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required=\"!applicantSupervisorSignature.dataUrl\"> \"Als Alternative zu *Unterschrift Antragsteller Vorgesetzter* kann eine Datei angehängt werden\"\n\n# Prüfkatalog\n\n{readonly|children delete-on-remove design=\"itm:questionnaire-card\"}\n[Fragebogen][questionnaire]\n[questionnaire]: /86879215-6d39-4a94-b5b4-77d022ca64db <required>\n\n# Präsentation / Anlagen\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Präsentation][presentation]\n[presentation]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required>\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlagen][attachments]\n[attachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{readonly|multiline auto-grow max=500}\n[Nachgereichte Informationen][subsequentlyAddedInformation]\n[subsequentlyAddedInformation]: text\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Nachgereichte Anlagen][subsequentlyAddedAttachments]\n[subsequentlyAddedAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{readonly|multiline auto-grow}\n[Weitere Mitteilung an den IT-Ausschuss][additionalMessageToIta]\n\n# Datenschutzstellungnahme\n\n{readonly|multiline auto-grow max=5000}\n[Stellungnahme DPA][dpaStatement]\n\n{show if dpoStatementNotRequired|readonly}\n[Stellungnahme DPO ist nicht erforderlich][dpoStatementNotRequired]\n[dpoStatementNotRequired]: switch\n\n\n{readonly|multiline auto-grow max=5000}\n[Nachträgliche Ergänzung DPO][dpoAdditionalStatement]\n\n{readonly|multiline auto-grow max=5000}\n[Kommentar zur DPO Stellungnahme][commentOnDpoStatement]\n[commentOnDpoStatement]: text \n\n\n\n# Beschluss / Empfehlung / Klärungsauftrag\n\n{readonly|show if piloting}\n[Pilotierung Enddatum][pilotingEndDate]\n[pilotingEndDate]: date\n\n{readonly|children delete-on-remove navigate new-commands=81a8087a-f250-4ee0-acba-dd64518b72b1,2811e9f3-0f97-4425-8b4e-fd96493048de,2a90d0b4-3d71-47b6-b30d-7d254d006ef1,f2e863bd-940e-4fa9-8528-6b606ef7ad43}\n[Beschluss/Empfehlung/Klärungsauftrag][decisions]\n[decisions]: /030be2b6-fcad-4d3c-b44f-c40618e772c0 (0-n) <required>","description":"Phase 1 und 2","functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"6_Antrag_Antragsteller/AntragstellerVorgesetzter/Gast","namedIcon":"","namedIconColor":"","tags":"","theme":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"3163b16b782f3ff6"},"id":"4a02737d-d9fb-43d8-9065-a7071730ffc4","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-10-13T12:11:40+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"7665f38b-e1a1-4708-9173-70d015272792","text":"6_Antrag_BITM/Bearbeiter","v":"47058cd376acfc67"},"p":"03d08db0-f873-48cd-a5b5-c34937bddc2f","previous":{"v":"740126ccfff26ef4"},"stamps":[],"t":1760357500900,"v":"50cfb9d7ee22efdb"},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"85b423da-a5e7-4012-8992-29ac8505ecca","text":"4_Antrag_BITM/Antragsteller/Bearbeiter/Antragstell","v":"74efb540160a89b6"},"created":{"at":"2023-05-25T08:14:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1685002472771,"data":{"allowedChildrenForms":[],"commands":[],"definition":"{hidden|readonly}\n[syncTo][syncTo]\n[syncTo]: /ref\n\n[allDocumentDataValid]: switch\n[allEditableDocumentDataValid]: switch\n\n# Antrag\n\n{readonly}\n[Antragsnummer][applicationNumberTitle]\n\n// applicationNumber should be used in sorting\n{hidden|readonly}\n[Antragsnummer][applicationNumber]\n[applicationNumber]: number\n\n{readonly|datetime}\n[Zeitstempel Erstellung][creationTimestamp]\n[creationTimestamp]: date\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Ersteller][creator]\n[creator]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10\n\n{readonly|children design=\"itm:inventory-card\"}\n[Bestandseintrag][inventoryEntry]\n[inventoryEntry]: /dd51bf3c-69df-4bcd-a630-1a8e0f7dba2e\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Beratender BITM][consultingItco]\n[consultingItco]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n) <required>\n\n{readonly}\n[Antragstitel][applicationTitle]\n[applicationTitle]: text <required>\n\n{readonly|multiline auto-grow max=500}\n[Beschreibung][description]\n[description]: text <required>\n\n{readonly|select}\n[Aktionstyp][actionType]\n[actionType]: select <required help=layoutId> \"003ffe3b-61e1-4553-acb8-1d8e68874ce0\"\n  - ZERO: \"0\"\n  - ONE: 1\n  - TWO: 2\n  - THREE: 3\n  - FOUR: 4\n  - FIVE: 5\n  - INFORMATION: Information\n\n{readonly|switch appearance=\"toggle-text\"}\n[Mitarbeiterdatenbezug][employeeDataReference]\n[employeeDataReference]: switch\n\n{readonly|switch delete-fields-if-false=plannedPilotingDurationInMonths,pilotingEndDate,pilotingComment appearance=\"toggle-text\"}\n[Pilotierung][piloting]\n[piloting]: switch\n\n{readonly|show if piloting}\n[Geplante Dauer der Pilotierung (Angabe in Monaten)][plannedPilotingDurationInMonths]\n[plannedPilotingDurationInMonths]: number <required>\n\n{readonly}\n[Prozess][process]\n[process]: Select <required> \"Wird automatisch berechnet aus **Aktionstyp**, **Mitarbeiterdatenbezug** sowie **Kategorie nach GBV ITM** (letzteres im Bestandseintrag)\"\n  - \n  - NO_ACTIVITY: keine Aktivität im Rahmen der IT-Mitbestimmung\n  - INFORMATION: Informationsprozess\n  - SIMPLE: Vereinfachter Prozess\n  - DETAILED: Detaillierter Prozess\n  - SEPARATE: Gesonderter Prozess\n  - INAPPLICABLE: nicht anwendbar\n\n{readonly}\n[Prozess (angepasst)][processAdjusted]\n[processAdjusted]: Select\n  - \n  - NO_ACTIVITY: keine Aktivität im Rahmen der IT-Mitbestimmung\n  - INFORMATION: Informationsprozess\n  - SIMPLE: Vereinfachter Prozess\n  - DETAILED: Detaillierter Prozess\n  - SEPARATE: Gesonderter Prozess\n  - INAPPLICABLE: nicht anwendbar\n\n\n\n{readonly|switch appearance=\"toggle-text\"}\n[Standortentscheidung][locationDecision]\n[locationDecision]: switch \"Ja: SBR. Nein: ITA/GBR.\"\n\n{readonly|children delete-on-remove}\n[Antragsteller][applicant]\n[applicant]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true}\n[Bearbeiter][editor]\n[editor]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n)\n\n{readonly|switch delete-fields-if-false=applicantSupervisor,applicantSupervisorSignature appearance=\"toggle-text\"}\n[Antragsteller Befugnis (Ist der Antragsteller handlungsbevollmächtigt?)][applicantAuthorization]\n[applicantAuthorization]: switch\n\n{readonly|show if !applicantAuthorization|children delete-on-remove}\n[Antragsteller Vorgesetzter][applicantSupervisor]\n[applicantSupervisor]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{readonly|children delete-on-remove}\n[Gast / Präsentator][guestOrPresenter]\n[guestOrPresenter]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n)\n\n{readonly|date type=\"year-month\"}\n[ITA Sitzungsmonat (AG Wunsch)][itaMeetingMonthByEmployer]\n[itaMeetingMonthByEmployer]: date \n<required>\n\n{readonly|multiline auto-grow max=500}\n[Kommentar BITM][itcoComment]\n\n# Unterschriften\n\n{readonly|signature}\n[Unterschrift Antragsteller][applicantSignature]\n[applicantSignature]: file <required=\"applicantSignatureAttachments.length === 0\">\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlage Unterschrift Antragsteller][applicantSignatureAttachments]\n[applicantSignatureAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required=\"!applicantSignature.dataUrl\"> \"Als Alternative zu *Unterschrift Antragsteller* kann eine Datei angehängt werden\"\n\n{readonly|show if !applicantAuthorization|signature}\n[Unterschrift Antragsteller Vorgesetzter][applicantSupervisorSignature]\n[applicantSupervisorSignature]: file <required=\"applicantSupervisorSignatureAttachments.length === 0\">\n\n{show if !applicantAuthorization|readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlage Unterschrift Antragsteller Vorgesetzter][applicantSupervisorSignatureAttachments]\n[applicantSupervisorSignatureAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required=\"!applicantSupervisorSignature.dataUrl\"> \"Als Alternative zu *Unterschrift Antragsteller Vorgesetzter* kann eine Datei angehängt werden\"\n\n# Prüfkatalog\n\n{readonly|children delete-on-remove design=\"itm:questionnaire-card\"}\n[Fragebogen][questionnaire]\n[questionnaire]: /86879215-6d39-4a94-b5b4-77d022ca64db <required>\n\n# Präsentation / Anlagen\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Präsentation][presentation]\n[presentation]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required>\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlagen][attachments]\n[attachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{readonly|multiline auto-grow max=500}\n[Nachgereichte Informationen][subsequentlyAddedInformation]\n[subsequentlyAddedInformation]: text\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Nachgereichte Anlagen][subsequentlyAddedAttachments]\n[subsequentlyAddedAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{readonly|multiline auto-grow}\n[Weitere Mitteilung an den IT-Ausschuss][additionalMessageToIta]\n\n# Datenschutzstellungnahme\n\n{readonly|multiline auto-grow max=5000}\n[Stellungnahme DPA][dpaStatement]\n\n{show if dpoStatementNotRequired|readonly}\n[Stellungnahme DPO ist nicht erforderlich][dpoStatementNotRequired]\n[dpoStatementNotRequired]: switch\n\n\n{readonly|multiline auto-grow max=5000}\n[Nachträgliche Ergänzung DPO][dpoAdditionalStatement]\n\n{readonly|multiline auto-grow max=5000}\n[Kommentar zur DPO Stellungnahme][commentOnDpoStatement]\n[commentOnDpoStatement]: text \n\n","description":"Phase 1 und 2","functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"5_Antrag_BITM/Antragsteller/Bearbeiter/AntragstellerVorgesetzter/Gast","namedIcon":"","namedIconColor":"","tags":"","theme":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"3163b16b782f3ff6"},"id":"6866160a-3fd8-4e3c-b60e-c7f7577a7458","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-10-13T12:08:45+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"85b423da-a5e7-4012-8992-29ac8505ecca","text":"4_Antrag_BITM/Antragsteller/Bearbeiter/Antragstell","v":"74efb540160a89b6"},"p":"03d08db0-f873-48cd-a5b5-c34937bddc2f","previous":{"v":"b3137e58ba3d29a5"},"stamps":[],"t":1760357325783,"v":"8424652a1d175081"},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"a70e0efb-a4e8-4508-9d75-974537ca72c1","text":"7_Antrag_IT-Ref/ITA-Vorsitz","v":"0074633a3d3371e8"},"created":{"at":"2024-11-27T09:50:02+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1732701002810,"data":{"allowedChildrenForms":[],"commands":[],"definition":"{hidden|readonly}\n[syncTo][syncTo]\n[syncTo]: /ref\n\n[allDocumentDataValid]: switch\n[allEditableDocumentDataValid]: switch\n\n# Antrag\n\n{readonly}\n[Antragsnummer][applicationNumberTitle]\n\n// applicationNumber should be used in sorting\n{hidden|readonly}\n[Antragsnummer][applicationNumber]\n[applicationNumber]: number\n\n{readonly|datetime}\n[Zeitstempel Erstellung][creationTimestamp]\n[creationTimestamp]: date\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Ersteller][creator]\n[creator]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10\n\n{children design=\"itm:inventory-card\"}\n[Bestandseintrag][inventoryEntry]\n[inventoryEntry]: /11452ef0-a6c2-49e9-845e-73133019ba59\n\n{employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Beratender BITM][consultingItco]\n[consultingItco]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n) <required>\n\n[Antragstitel][applicationTitle]\n[applicationTitle]: text <required>\n\n{multiline auto-grow max=500}\n[Beschreibung][description]\n[description]: text <required>\n\n{select}\n[Aktionstyp][actionType]\n[actionType]: select <required help=layoutId> \"003ffe3b-61e1-4553-acb8-1d8e68874ce0\"\n  - ZERO: \"0\"\n  - ONE: 1\n  - TWO: 2\n  - THREE: 3\n  - FOUR: 4\n  - FIVE: 5\n  - INFORMATION: Information\n\n{switch appearance=\"toggle-text\"}\n[Mitarbeiterdatenbezug][employeeDataReference]\n[employeeDataReference]: switch\n\n{switch delete-fields-if-false=plannedPilotingDurationInMonths,pilotingEndDate,pilotingComment appearance=\"toggle-text\"}\n[Pilotierung][piloting]\n[piloting]: switch\n\n{show if piloting}\n[Geplante Dauer der Pilotierung (Angabe in Monaten)][plannedPilotingDurationInMonths]\n[plannedPilotingDurationInMonths]: number <required>\n\n{readonly}\n[Prozess][process]\n[process]: Select <required> \"Wird automatisch berechnet aus **Aktionstyp**, **Mitarbeiterdatenbezug** sowie **Kategorie nach GBV ITM** (letzteres im Bestandseintrag)\"\n  - \n  - NO_ACTIVITY: keine Aktivität im Rahmen der IT-Mitbestimmung\n  - INFORMATION: Informationsprozess\n  - SIMPLE: Vereinfachter Prozess\n  - DETAILED: Detaillierter Prozess\n  - SEPARATE: Gesonderter Prozess\n  - INAPPLICABLE: nicht anwendbar\n\n[Prozess (angepasst)][processAdjusted]\n[processAdjusted]: Select\n  - \n  - NO_ACTIVITY: keine Aktivität im Rahmen der IT-Mitbestimmung\n  - INFORMATION: Informationsprozess\n  - SIMPLE: Vereinfachter Prozess\n  - DETAILED: Detaillierter Prozess\n  - SEPARATE: Gesonderter Prozess\n  - INAPPLICABLE: nicht anwendbar\n\n\n\n{switch appearance=\"toggle-text\"}\n[Standortentscheidung][locationDecision]\n[locationDecision]: switch \"Ja: SBR. Nein: ITA/GBR.\"\n\n{children delete-on-remove}\n[Antragsteller][applicant]\n[applicant]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true}\n[Bearbeiter][editor]\n[editor]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n)\n\n{switch delete-fields-if-false=applicantSupervisor,applicantSupervisorSignature appearance=\"toggle-text\"}\n[Antragsteller Befugnis (Ist der Antragsteller handlungsbevollmächtigt?)][applicantAuthorization]\n[applicantAuthorization]: switch\n\n{show if !applicantAuthorization|children delete-on-remove}\n[Antragsteller Vorgesetzter][applicantSupervisor]\n[applicantSupervisor]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{children delete-on-remove}\n[Gast / Präsentator][guestOrPresenter]\n[guestOrPresenter]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n)\n\n{date type=\"year-month\"}\n[ITA Sitzungsmonat (AG Wunsch)][itaMeetingMonthByEmployer]\n[itaMeetingMonthByEmployer]: date \n<required>\n\n{multiline auto-grow max=500}\n[Kommentar BITM][itcoComment]\n\n# Unterschriften\n\n{signature}\n[Unterschrift Antragsteller][applicantSignature]\n[applicantSignature]: file <required=\"applicantSignatureAttachments.length === 0\">\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlage Unterschrift Antragsteller][applicantSignatureAttachments]\n[applicantSignatureAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required=\"!applicantSignature.dataUrl\"> \"Als Alternative zu *Unterschrift Antragsteller* kann eine Datei angehängt werden\"\n\n{show if !applicantAuthorization|signature}\n[Unterschrift Antragsteller Vorgesetzter][applicantSupervisorSignature]\n[applicantSupervisorSignature]: file <required=\"applicantSupervisorSignatureAttachments.length === 0\">\n\n{show if !applicantAuthorization|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlage Unterschrift Antragsteller Vorgesetzter][applicantSupervisorSignatureAttachments]\n[applicantSupervisorSignatureAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required=\"!applicantSupervisorSignature.dataUrl\"> \"Als Alternative zu *Unterschrift Antragsteller Vorgesetzter* kann eine Datei angehängt werden\"\n\n# Prüfkatalog\n\n{children delete-on-remove design=\"itm:questionnaire-card\"}\n[Fragebogen][questionnaire]\n[questionnaire]: /b5dcdd5b-6a84-4e13-92a2-052a1f1d1492 <required>\n\n# Präsentation / Anlagen\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Präsentation][presentation]\n[presentation]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required>\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlagen][attachments]\n[attachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{multiline auto-grow max=500}\n[Nachgereichte Informationen][subsequentlyAddedInformation]\n[subsequentlyAddedInformation]: text\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Nachgereichte Anlagen][subsequentlyAddedAttachments]\n[subsequentlyAddedAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{multiline auto-grow}\n[Weitere Mitteilung an den IT-Ausschuss][additionalMessageToIta]\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlagen ITA Seite][attachmentsIta]\n[attachmentsIta]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n# Datenschutzstellungnahme\n\n{multiline auto-grow max=5000}\n[Stellungnahme DPA][dpaStatement]\n\n{show if dpoStatementNotRequired}\n[Stellungnahme DPO ist nicht erforderlich][dpoStatementNotRequired]\n[dpoStatementNotRequired]: switch\n\n\n{select}\n[Stellungnahme Ampel][dpoStatementRating]\n[dpoStatementRating]: Select \n  - \n  - GOOD <icon=\"fa fa-circle\" iconcolor=\"green\">: Empfehlung\n  - OK <icon=\"fa fa-circle\" iconcolor=\"yellow\">: Empfehlung mit Auflagen\n  - BAD <icon=\"fa fa-circle\" iconcolor=\"red\">: Keine Empfehlung\n  - NOT_APPLICABLE <icon=\"fa fa-circle\" iconcolor=\"blue\">: Neutral / Nicht bewertbar / Nicht bewertet \n\n{multiline auto-grow max=5000}\n[Stellungnahme DPO][dpoStatement]\n[dpoStatement]: text\n\n{multiline auto-grow max=5000}\n[Nachträgliche Ergänzung DPO][dpoAdditionalStatement]\n\n{multiline auto-grow max=5000}\n[Kommentar zur DPO Stellungnahme][commentOnDpoStatement]\n[commentOnDpoStatement]: text \n\n{multiline auto-grow max=500}\n[Vorschlag Auflagen][dpoProposalConditions]\n\n# Sitzungszuordnung / ITA Kommentare\n\n{multiline auto-grow max=500}\n[Kommentar IT-Ref][commentItReferee]\n\n{multiline auto-grow max=500}\n[Kommentar ITA-Vorsitz][commentItaChair]\n\n{multiline auto-grow max=500}\n[Kommentar ITA Sekretariat][commentItaOffice]\n\n{date type=\"year-month\"}\n[ITA Sitzungsmonat (ITA)][itaMeetingMonthByIta]\n[itaMeetingMonthByIta]: date (0-n)\n\n{switch appearance=\"toggle-text\"}\n[Papierentscheid][paperDecision]\n[paperDecision]: switch\n\n# Beschluss / Empfehlung / Klärungsauftrag\n\n{multiline auto-grow}\n[Beschlussvorschlag][proposalDecision]\n\n{show if piloting}\n[Pilotierung Enddatum][pilotingEndDate]\n[pilotingEndDate]: date\n\n{show if piloting|multiline auto-grow}\n[Pilotierung Kommentar][pilotingComment]\n\n{children delete-on-remove navigate new-commands=81a8087a-f250-4ee0-acba-dd64518b72b1,2811e9f3-0f97-4425-8b4e-fd96493048de,2a90d0b4-3d71-47b6-b30d-7d254d006ef1,f2e863bd-940e-4fa9-8528-6b606ef7ad43}\n[Beschluss/Empfehlung/Klärungsauftrag][decisions]\n[decisions]: /5beeae17-7bb1-4eeb-bcb6-cf0e6950e27c (0-n) <required>","description":"Wie 7_Antrag_IT-Ref/ITA-Vorsitz","functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"7_Antrag_Admin","namedIcon":"","namedIconColor":"","tags":"","theme":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"3163b16b782f3ff6"},"id":"0098b97d-15a5-4f5a-951a-29d815f2db73","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-10-13T12:14:41+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"a70e0efb-a4e8-4508-9d75-974537ca72c1","text":"7_Antrag_IT-Ref/ITA-Vorsitz","v":"0074633a3d3371e8"},"p":"03d08db0-f873-48cd-a5b5-c34937bddc2f","previous":{"v":"9f801df5221c276c"},"stamps":[],"t":1760357681990,"v":"fb75fa5a76b8f936"},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"4a02737d-d9fb-43d8-9065-a7071730ffc4","text":"6_Antrag_Antragsteller/AntragstellerVorgesetzter","v":"109b953ae12e0c78"},"created":{"at":"2023-05-25T15:02:37+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1685026957642,"data":{"allowedChildrenForms":[],"commands":[],"definition":"{hidden|readonly}\n[syncTo][syncTo]\n[syncTo]: /ref\n\n[allDocumentDataValid]: switch\n[allEditableDocumentDataValid]: switch\n\n# Antrag\n\n{readonly}\n[Antragsnummer][applicationNumberTitle]\n\n// applicationNumber should be used in sorting\n{hidden|readonly}\n[Antragsnummer][applicationNumber]\n[applicationNumber]: number\n\n{readonly|datetime}\n[Zeitstempel Erstellung][creationTimestamp]\n[creationTimestamp]: date\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Ersteller][creator]\n[creator]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10\n\n{readonly|children design=\"itm:inventory-card\"}\n[Bestandseintrag][inventoryEntry]\n[inventoryEntry]: /dd51bf3c-69df-4bcd-a630-1a8e0f7dba2e\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Beratender BITM][consultingItco]\n[consultingItco]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n) <required>\n\n{readonly}\n[Antragstitel][applicationTitle]\n[applicationTitle]: text <required>\n\n{readonly|multiline auto-grow max=500}\n[Beschreibung][description]\n[description]: text <required>\n\n{readonly|select}\n[Aktionstyp][actionType]\n[actionType]: select <required help=layoutId> \"003ffe3b-61e1-4553-acb8-1d8e68874ce0\"\n  - ZERO: \"0\"\n  - ONE: 1\n  - TWO: 2\n  - THREE: 3\n  - FOUR: 4\n  - FIVE: 5\n  - INFORMATION: Information\n\n{readonly|switch appearance=\"toggle-text\"}\n[Mitarbeiterdatenbezug][employeeDataReference]\n[employeeDataReference]: switch\n\n{readonly|switch delete-fields-if-false=plannedPilotingDurationInMonths,pilotingEndDate,pilotingComment appearance=\"toggle-text\"}\n[Pilotierung][piloting]\n[piloting]: switch\n\n{readonly|show if piloting}\n[Geplante Dauer der Pilotierung (Angabe in Monaten)][plannedPilotingDurationInMonths]\n[plannedPilotingDurationInMonths]: number <required>\n\n{readonly}\n[Prozess][process]\n[process]: Select <required> \"Wird automatisch berechnet aus **Aktionstyp**, **Mitarbeiterdatenbezug** sowie **Kategorie nach GBV ITM** (letzteres im Bestandseintrag)\"\n  - \n  - NO_ACTIVITY: keine Aktivität im Rahmen der IT-Mitbestimmung\n  - INFORMATION: Informationsprozess\n  - SIMPLE: Vereinfachter Prozess\n  - DETAILED: Detaillierter Prozess\n  - SEPARATE: Gesonderter Prozess\n  - INAPPLICABLE: nicht anwendbar\n\n{readonly}\n[Prozess (angepasst)][processAdjusted]\n[processAdjusted]: Select\n  - \n  - NO_ACTIVITY: keine Aktivität im Rahmen der IT-Mitbestimmung\n  - INFORMATION: Informationsprozess\n  - SIMPLE: Vereinfachter Prozess\n  - DETAILED: Detaillierter Prozess\n  - SEPARATE: Gesonderter Prozess\n  - INAPPLICABLE: nicht anwendbar\n\n\n\n{readonly|switch appearance=\"toggle-text\"}\n[Standortentscheidung][locationDecision]\n[locationDecision]: switch \"Ja: SBR. Nein: ITA/GBR.\"\n\n{readonly|children delete-on-remove}\n[Antragsteller][applicant]\n[applicant]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true}\n[Bearbeiter][editor]\n[editor]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n)\n\n{readonly|switch delete-fields-if-false=applicantSupervisor,applicantSupervisorSignature appearance=\"toggle-text\"}\n[Antragsteller Befugnis (Ist der Antragsteller handlungsbevollmächtigt?)][applicantAuthorization]\n[applicantAuthorization]: switch\n\n{readonly|show if !applicantAuthorization|children delete-on-remove}\n[Antragsteller Vorgesetzter][applicantSupervisor]\n[applicantSupervisor]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{readonly|children delete-on-remove}\n[Gast / Präsentator][guestOrPresenter]\n[guestOrPresenter]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n)\n\n{readonly|date type=\"year-month\"}\n[ITA Sitzungsmonat (AG Wunsch)][itaMeetingMonthByEmployer]\n[itaMeetingMonthByEmployer]: date \n<required>\n\n{readonly|multiline auto-grow max=500}\n[Kommentar BITM][itcoComment]\n\n# Unterschriften\n\n{readonly|signature}\n[Unterschrift Antragsteller][applicantSignature]\n[applicantSignature]: file <required=\"applicantSignatureAttachments.length === 0\">\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlage Unterschrift Antragsteller][applicantSignatureAttachments]\n[applicantSignatureAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required=\"!applicantSignature.dataUrl\"> \"Als Alternative zu *Unterschrift Antragsteller* kann eine Datei angehängt werden\"\n\n{readonly|show if !applicantAuthorization|signature}\n[Unterschrift Antragsteller Vorgesetzter][applicantSupervisorSignature]\n[applicantSupervisorSignature]: file <required=\"applicantSupervisorSignatureAttachments.length === 0\">\n\n{show if !applicantAuthorization|readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlage Unterschrift Antragsteller Vorgesetzter][applicantSupervisorSignatureAttachments]\n[applicantSupervisorSignatureAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required=\"!applicantSupervisorSignature.dataUrl\"> \"Als Alternative zu *Unterschrift Antragsteller Vorgesetzter* kann eine Datei angehängt werden\"\n\n# Prüfkatalog\n\n{readonly|children delete-on-remove design=\"itm:questionnaire-card\"}\n[Fragebogen][questionnaire]\n[questionnaire]: /86879215-6d39-4a94-b5b4-77d022ca64db <required>\n\n# Präsentation / Anlagen\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Präsentation][presentation]\n[presentation]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required>\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlagen][attachments]\n[attachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{readonly|multiline auto-grow max=500}\n[Nachgereichte Informationen][subsequentlyAddedInformation]\n[subsequentlyAddedInformation]: text\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Nachgereichte Anlagen][subsequentlyAddedAttachments]\n[subsequentlyAddedAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{readonly|multiline auto-grow}\n[Weitere Mitteilung an den IT-Ausschuss][additionalMessageToIta]\n\n# Datenschutzstellungnahme\n\n{readonly|multiline auto-grow max=5000}\n[Stellungnahme DPA][dpaStatement]\n\n{show if dpoStatementNotRequired|readonly}\n[Stellungnahme DPO ist nicht erforderlich][dpoStatementNotRequired]\n[dpoStatementNotRequired]: switch\n\n\n{readonly|multiline auto-grow max=5000}\n[Nachträgliche Ergänzung DPO][dpoAdditionalStatement]\n\n{readonly|multiline auto-grow max=5000}\n[Kommentar zur DPO Stellungnahme][commentOnDpoStatement]\n[commentOnDpoStatement]: text \n\n\n\n# Beschluss / Empfehlung / Klärungsauftrag\n\n{readonly|show if piloting}\n[Pilotierung Enddatum][pilotingEndDate]\n[pilotingEndDate]: date\n\n{readonly|children delete-on-remove navigate new-commands=81a8087a-f250-4ee0-acba-dd64518b72b1,2811e9f3-0f97-4425-8b4e-fd96493048de,2a90d0b4-3d71-47b6-b30d-7d254d006ef1,f2e863bd-940e-4fa9-8528-6b606ef7ad43}\n[Beschluss/Empfehlung/Klärungsauftrag][decisions]\n[decisions]: /030be2b6-fcad-4d3c-b44f-c40618e772c0 (0-n) <required>","description":"Phase 1 und 2","functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"7_Antrag_Antragsteller/AntragstellerVorgesetzter/Gast","namedIcon":"","namedIconColor":"","tags":"","theme":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"3163b16b782f3ff6"},"id":"f4b55907-9baf-4f12-8d3c-c4b1379c5596","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-10-13T12:15:15+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"4a02737d-d9fb-43d8-9065-a7071730ffc4","text":"6_Antrag_Antragsteller/AntragstellerVorgesetzter","v":"109b953ae12e0c78"},"p":"03d08db0-f873-48cd-a5b5-c34937bddc2f","previous":{"v":"fd5bcfa4ac1bab9f"},"stamps":[],"t":1760357715963,"v":"657faba138e3fd40"},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"0b71e123-3a9b-4cba-b6fd-0d92e77067d2","text":"3_Antrag_BITM","v":"fab4855df51661cb"},"created":{"at":"2023-05-24T08:53:45+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1684918425936,"data":{"allowedChildrenForms":[],"commands":[],"definition":"{hidden|readonly}\n[syncTo][syncTo]\n[syncTo]: /ref\n\n[allDocumentDataValid]: switch\n[allEditableDocumentDataValid]: switch\n\n# Antrag\n\n{readonly}\n[Antragsnummer][applicationNumberTitle]\n\n// applicationNumber should be used in sorting\n{hidden|readonly}\n[Antragsnummer][applicationNumber]\n[applicationNumber]: number\n\n{readonly|datetime}\n[Zeitstempel Erstellung][creationTimestamp]\n[creationTimestamp]: date\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Ersteller][creator]\n[creator]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10\n\n{children disable-remove no-add design=\"itm:inventory-card\"}\n[Bestandseintrag][inventoryEntry]\n[inventoryEntry]: /51a7fc42-06e5-4100-836d-1ba43f6604e1\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Beratender BITM][consultingItco]\n[consultingItco]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n) <required>\n\n[Antragstitel][applicationTitle]\n[applicationTitle]: text <required>\n\n{multiline auto-grow max=500}\n[Beschreibung][description]\n[description]: text <required>\n\n{select}\n[Aktionstyp][actionType]\n[actionType]: select <required help=layoutId> \"003ffe3b-61e1-4553-acb8-1d8e68874ce0\"\n  - ZERO: \"0\"\n  - ONE: 1\n  - TWO: 2\n  - THREE: 3\n  - FOUR: 4\n  - FIVE: 5\n  - INFORMATION: Information\n\n{switch appearance=\"toggle-text\"}\n[Mitarbeiterdatenbezug][employeeDataReference]\n[employeeDataReference]: switch\n\n{switch delete-fields-if-false=plannedPilotingDurationInMonths,pilotingEndDate,pilotingComment appearance=\"toggle-text\"}\n[Pilotierung][piloting]\n[piloting]: switch\n\n{show if piloting}\n[Geplante Dauer der Pilotierung (Angabe in Monaten)][plannedPilotingDurationInMonths]\n[plannedPilotingDurationInMonths]: number <required>\n\n{readonly}\n[Prozess][process]\n[process]: Select <required> \"Wird automatisch berechnet aus **Aktionstyp**, **Mitarbeiterdatenbezug** sowie **Kategorie nach GBV ITM** (letzteres im Bestandseintrag)\"\n  - \n  - NO_ACTIVITY: keine Aktivität im Rahmen der IT-Mitbestimmung\n  - INFORMATION: Informationsprozess\n  - SIMPLE: Vereinfachter Prozess\n  - DETAILED: Detaillierter Prozess\n  - SEPARATE: Gesonderter Prozess\n  - INAPPLICABLE: nicht anwendbar\n\n[Prozess (angepasst)][processAdjusted]\n[processAdjusted]: Select\n  - \n  - NO_ACTIVITY: keine Aktivität im Rahmen der IT-Mitbestimmung\n  - INFORMATION: Informationsprozess\n  - SIMPLE: Vereinfachter Prozess\n  - DETAILED: Detaillierter Prozess\n  - SEPARATE: Gesonderter Prozess\n  - INAPPLICABLE: nicht anwendbar\n\n\n\n{switch appearance=\"toggle-text\"}\n[Standortentscheidung][locationDecision]\n[locationDecision]: switch \"Ja: SBR. Nein: ITA/GBR.\"\n\n{children delete-on-remove}\n[Antragsteller][applicant]\n[applicant]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true}\n[Bearbeiter][editor]\n[editor]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n)\n\n// Cannot use delete-fields-if to delete Signature because cannot be set again by other forms (those fields are already readonly there)\n// delete-fields-if-false=applicantSupervisor,applicantSupervisorSignature\n{switch delete-fields-if-false=applicantSupervisor appearance=\"toggle-text\"}\n[Antragsteller Befugnis (Ist der Antragsteller handlungsbevollmächtigt?)][applicantAuthorization]\n[applicantAuthorization]: switch\n\n{show if !applicantAuthorization|children delete-on-remove}\n[Antragsteller Vorgesetzter][applicantSupervisor]\n[applicantSupervisor]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{children delete-on-remove}\n[Gast / Präsentator][guestOrPresenter]\n[guestOrPresenter]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n)\n\n{readonly|date type=\"year-month\"}\n[ITA Sitzungsmonat (AG Wunsch)][itaMeetingMonthByEmployer]\n[itaMeetingMonthByEmployer]: date <required>\n\n{readonly|multiline auto-grow max=500}\n[Kommentar BITM][itcoComment]\n\n# Unterschriften\n\n{readonly|signature}\n[Unterschrift Antragsteller][applicantSignature]\n[applicantSignature]: file <required=\"applicantSignatureAttachments.length === 0\">\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlage Unterschrift Antragsteller][applicantSignatureAttachments]\n[applicantSignatureAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required=\"!applicantSignature.dataUrl\"> \"Als Alternative zu *Unterschrift Antragsteller* kann eine Datei angehängt werden\"\n\n{readonly|show if !applicantAuthorization|signature}\n[Unterschrift Antragsteller Vorgesetzter][applicantSupervisorSignature]\n[applicantSupervisorSignature]: file <required=\"applicantSupervisorSignatureAttachments.length === 0\">\n\n{show if !applicantAuthorization|readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlage Unterschrift Antragsteller Vorgesetzter][applicantSupervisorSignatureAttachments]\n[applicantSupervisorSignatureAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required=\"!applicantSupervisorSignature.dataUrl\"> \"Als Alternative zu *Unterschrift Antragsteller Vorgesetzter* kann eine Datei angehängt werden\"\n\n# Prüfkatalog\n\n{children disable-remove no-add design=\"itm:questionnaire-card\"}\n[Fragebogen][questionnaire]\n[questionnaire]: /b5dcdd5b-6a84-4e13-92a2-052a1f1d1492 <required>\n\n# Präsentation / Anlagen\n\n{show if presentationTemplate.length > 0|readonly|attachment show-download-original-only}\n[Präsentation (Vorlage)][presentationTemplate]\n[presentationTemplate]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Präsentation][presentation]\n[presentation]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required>\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlagen][attachments]\n[attachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{multiline auto-grow max=500}\n[Nachgereichte Informationen][subsequentlyAddedInformation]\n[subsequentlyAddedInformation]: text\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Nachgereichte Anlagen][subsequentlyAddedAttachments]\n[subsequentlyAddedAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{readonly|multiline auto-grow}\n[Weitere Mitteilung an den IT-Ausschuss][additionalMessageToIta]\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlagen ITA Seite][attachmentsIta]\n[attachmentsIta]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n# Datenschutzstellungnahme\n\n{readonly|multiline auto-grow max=5000}\n[Stellungnahme DPA][dpaStatement]\n\n{show if dpoStatementNotRequired|readonly}\n[Stellungnahme DPO ist nicht erforderlich][dpoStatementNotRequired]\n[dpoStatementNotRequired]: switch\n\n{readonly|select}\n[Stellungnahme Ampel][dpoStatementRating]\n[dpoStatementRating]: Select \n  - \n  - GOOD <icon=\"fa fa-circle\" iconcolor=\"green\">: Empfehlung\n  - OK <icon=\"fa fa-circle\" iconcolor=\"yellow\">: Empfehlung mit Auflagen\n  - BAD <icon=\"fa fa-circle\" iconcolor=\"red\">: Keine Empfehlung\n  - NOT_APPLICABLE <icon=\"fa fa-circle\" iconcolor=\"blue\">: Neutral / Nicht bewertbar / Nicht bewertet \n\n\n{readonly|multiline auto-grow max=5000}\n[Stellungnahme DPO][dpoStatement]\n[dpoStatement]: text\n\n{readonly|multiline auto-grow max=5000}\n[Nachträgliche Ergänzung DPO][dpoAdditionalStatement]\n\n{readonly|multiline auto-grow max=5000}\n[Kommentar zur DPO Stellungnahme][commentOnDpoStatement]\n[commentOnDpoStatement]: text \n{readonly|multiline auto-grow max=500}\n[Vorschlag Auflagen][dpoProposalConditions]\n\n\n# Sitzungszuordnung / ITA Kommentare\n\n{multiline auto-grow max=500}\n[Kommentar IT-Ref][commentItReferee]\n\n{readonly|multiline auto-grow max=500}\n[Kommentar ITA-Vorsitz][commentItaChair]\n\n{readonly|multiline auto-grow max=500}\n[Kommentar ITA Sekretariat][commentItaOffice]\n\n{date type=\"year-month\"}\n[ITA Sitzungsmonat (ITA)][itaMeetingMonthByIta]\n[itaMeetingMonthByIta]: date (0-n)\n\n{switch appearance=\"toggle-text\"}\n[Papierentscheid][paperDecision]\n[paperDecision]: switch\n\n\n# Beschluss / Empfehlung / Klärungsauftrag\n\n{select}\n[Beschlussart][decisionType]\n[decisionType]: select <required>\n  - RESOLUTION: Beschluss\n  - RECOMMENDATION: Empfehlung\n\n{multiline auto-grow}\n[Beschlussvorschlag][proposalDecision]\n","description":"Phase 1 und 2","functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"4_Antrag_IT-Ref","namedIcon":"","namedIconColor":"","tags":"","theme":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"3163b16b782f3ff6"},"id":"a71ed848-5126-4abc-bbd7-86791c96a82f","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-10-13T12:04:18+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"0b71e123-3a9b-4cba-b6fd-0d92e77067d2","text":"3_Antrag_BITM","v":"fab4855df51661cb"},"p":"03d08db0-f873-48cd-a5b5-c34937bddc2f","previous":{"v":"a2d814bfc8598cf6"},"stamps":[],"t":1760357058509,"v":"ae59b6a88f8434ef"},{"id":"0572195f-176d-40d5-920a-f5b5505e2ef6","v":"b08d527dbb73c398","cloneOf":{"id":"91f74438-399a-4397-a599-a5f386ea0ed8","v":"90c8d44ea6d9b83d","text":"2_Bestandseintrag_Antragsteller/Bearbeiter"},"originalCloneOf":{"id":"91f74438-399a-4397-a599-a5f386ea0ed8","v":"90c8d44ea6d9b83d","text":"2_Bestandseintrag_Antragsteller/Bearbeiter"},"previous":{"v":"9b6528604acd3407"},"p":"50c3c7c5-c3d4-460c-b34d-0d61a4cb09ae","f":{"id":"form","v":"3163b16b782f3ff6","text":"Form"},"data":{"name":"2_Bestandseintrag_AntragstellerVorgesetzter","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"{hidden|readonly}\n[syncTo][syncTo]\n[syncTo]: /ref\n\n[allDocumentDataValid]: Switch\n\n{hidden}\n[Name][name]\n[name]: = functions.name(systemName, inventoryNumberTitle)\n\n{readonly}\n[Bestandslistennummer][inventoryNumberTitle]\n\n// inventoryNumber should be used in sorting\n{hidden|readonly}\n[Bestandslistennummer][inventoryNumber]\n[inventoryNumber]: number\n\n{readonly}\n[Systemname (des Herstellers)][systemName]\n[systemName]: text <required>\n\n{readonly}\n[Interner Name][internalName]\n\n{readonly|ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df creation-location-form=b40fd5c3-1bc2-42b4-a269-f3cb2e9cf477 hide-path}\n[Hersteller][manufacturer]\n[manufacturer]: /e0978a3d-9761-4849-8a44-d22d8a175f87 (0-n) <required>\n\n{readonly|multiline auto-grow=true max=500}\n[Kurzbeschreibung (Zweck)][description]\n[description]: text <required>\n\n{readonly|multiline auto-grow=true max=500}\n[Modulname(n)][moduleNames]\n\n{readonly}\n[Softwareversion][softwareVersion]\n[softwareVersion]: text <required>\n\n{readonly}\n[Kategorie nach GBV ITM][category]\n[category]: Select <required help=layoutId> \"64fda001-597c-4bd2-a2e9-c988f45e43fb\"\n  - ZERO: Kat 0\n  - ONE: Kat 1\n  - TWO: Kat 2\n  - THREE: Kat 3\n\n{readonly|ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Standorte][locations]\n[locations]: /af8aa2f7-1c0b-404d-b6c8-06e5be0ffd38 (0-n) <required>\n\n{readonly|ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Geltungsbereich][scope]\n[scope]: /21a59b67-da7b-4d24-ab4c-001362e46246 (0-n) <required>\n\n{readonly|children delete-on-remove}\n[Prozesseigner][processOwners]\n[processOwners]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{readonly|children delete-on-remove}\n[Prozesseigner Vorgesetzte][processSupervisors]\n[processSupervisors]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{readonly|children delete-on-remove}\n[Systemeigner][systemOwner]\n[systemOwner]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{readonly|multiline auto-grow}\n[Daten-/Dokumenteneignerschaft][dataDocumentOwnership]\n\n\n\n{readonly|now control=datetime}\n[Zeitstempel Erstellung][creationTimestamp]\n[creationTimestamp]: date\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Ersteller][creator]\n[creator]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10\n","functions":"name(nameOfSystem, identifier) {\n  if (identifier) {\n    return `[${identifier}]: ${nameOfSystem}`\n  }\n\n  return nameOfSystem\n}","allowedChildrenForms":[],"commands":[{"id":"76be4f8d-a0ef-40e7-a7eb-552e48cbc3a7","v":"initial","text":"Neu"},{"id":"29679280-6be9-449e-9d8c-8e179950588b","v":"initial","text":"rd:Neu"}],"description":"","theme":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2023-05-23T12:06:50+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2025-05-20T14:36:58+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1747751818285,"ct":1684843610355,"a_depth":4,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","50c3c7c5-c3d4-460c-b34d-0d61a4cb09ae"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"13adf1b7-9d42-4d26-85db-a0a210fba556","v":"6a1cfa63eb1b2839","cloneOf":{"id":"dd51bf3c-69df-4bcd-a630-1a8e0f7dba2e","v":"78a8c62a1d7888de","text":"3_Bestandseintrag_Antragsteller/Bearbeiter"},"originalCloneOf":{"id":"dd51bf3c-69df-4bcd-a630-1a8e0f7dba2e","v":"78a8c62a1d7888de","text":"3_Bestandseintrag_Antragsteller/Bearbeiter"},"previous":{"v":"b065096598c0a734"},"p":"50c3c7c5-c3d4-460c-b34d-0d61a4cb09ae","f":{"id":"form","v":"3163b16b782f3ff6","text":"Form"},"data":{"name":"5_Bestandseintrag_ITA-Vorsitz/ITA-Sekretariat","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"{hidden|readonly}\n[syncTo][syncTo]\n[syncTo]: /ref\n\n[allDocumentDataValid]: Switch\n\n\n{hidden}\n[Name][name]\n[name]: = functions.name(systemName, inventoryNumberTitle)\n\n{readonly}\n[Bestandslistennummer][inventoryNumberTitle]\n\n// inventoryNumber should be used in sorting\n{hidden|readonly}\n[Bestandslistennummer][inventoryNumber]\n[inventoryNumber]: number\n\n{readonly}\n[Systemname (des Herstellers)][systemName]\n[systemName]: text <required>\n\n{readonly}\n[Interner Name][internalName]\n\n{readonly|ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df creation-location-form=b40fd5c3-1bc2-42b4-a269-f3cb2e9cf477 hide-path}\n[Hersteller][manufacturer]\n[manufacturer]: /e0978a3d-9761-4849-8a44-d22d8a175f87 (0-n) <required>\n\n{readonly|multiline auto-grow=true max=500}\n[Kurzbeschreibung (Zweck)][description]\n[description]: text <required>\n\n{readonly|multiline auto-grow=true max=500}\n[Modulname(n)][moduleNames]\n\n{readonly}\n[Softwareversion][softwareVersion]\n[softwareVersion]: text <required>\n\n{readonly}\n[Kategorie nach GBV ITM][category]\n[category]: Select <required help=layoutId> \"64fda001-597c-4bd2-a2e9-c988f45e43fb\"\n  - ZERO: Kat 0\n  - ONE: Kat 1\n  - TWO: Kat 2\n  - THREE: Kat 3\n\n{readonly|ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Standorte][locations]\n[locations]: /af8aa2f7-1c0b-404d-b6c8-06e5be0ffd38 (0-n) <required>\n\n{readonly|ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Geltungsbereich][scope]\n[scope]: /21a59b67-da7b-4d24-ab4c-001362e46246 (0-n) <required>\n\n{readonly|children delete-on-remove}\n[Prozesseigner][processOwners]\n[processOwners]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{readonly|children delete-on-remove}\n[Prozesseigner Vorgesetzte][processSupervisors]\n[processSupervisors]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{readonly|children delete-on-remove}\n[Systemeigner][systemOwner]\n[systemOwner]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{readonly|multiline auto-grow}\n[Daten-/Dokumenteneignerschaft][dataDocumentOwnership]\n\n\n\n{readonly|now control=datetime}\n[Zeitstempel Erstellung][creationTimestamp]\n[creationTimestamp]: date\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Ersteller][creator]\n[creator]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10\n","functions":"name(nameOfSystem, identifier) {\n  if (identifier) {\n    return `[${identifier}]: ${nameOfSystem}`\n  }\n\n  return nameOfSystem\n}","allowedChildrenForms":[],"commands":[{"id":"76be4f8d-a0ef-40e7-a7eb-552e48cbc3a7","v":"initial","text":"Neu"},{"id":"29679280-6be9-449e-9d8c-8e179950588b","v":"initial","text":"rd:Neu"}],"description":"","theme":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2023-05-25T09:55:52+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2025-05-20T14:36:44+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1747751804972,"ct":1685008552558,"a_depth":4,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","50c3c7c5-c3d4-460c-b34d-0d61a4cb09ae"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"dcdf4048-fd75-42ce-bbb0-e2594a0a3e07","text":"5_Antrag_ITA-Vorsitz","v":"5a3fbc8719280a81"},"created":{"at":"2024-11-27T09:49:46+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1732700986295,"data":{"allowedChildrenForms":[],"commands":[],"definition":"{hidden|readonly}\n[syncTo][syncTo]\n[syncTo]: /ref\n\n[allDocumentDataValid]: switch\n[allEditableDocumentDataValid]: switch\n\n# Antrag\n\n{readonly}\n[Antragsnummer][applicationNumberTitle]\n\n// applicationNumber should be used in sorting\n{hidden|readonly}\n[Antragsnummer][applicationNumber]\n[applicationNumber]: number\n\n{readonly|datetime}\n[Zeitstempel Erstellung][creationTimestamp]\n[creationTimestamp]: date\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Ersteller][creator]\n[creator]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10\n\n{children disable-remove no-add design=\"itm:inventory-card\"}\n[Bestandseintrag][inventoryEntry]\n[inventoryEntry]: /11452ef0-a6c2-49e9-845e-73133019ba59\n\n{employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Beratender BITM][consultingItco]\n[consultingItco]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n) <required>\n\n[Antragstitel][applicationTitle]\n[applicationTitle]: text <required>\n\n{multiline auto-grow max=500}\n[Beschreibung][description]\n[description]: text <required>\n\n{select}\n[Aktionstyp][actionType]\n[actionType]: select <required help=layoutId> \"003ffe3b-61e1-4553-acb8-1d8e68874ce0\"\n  - ZERO: \"0\"\n  - ONE: 1\n  - TWO: 2\n  - THREE: 3\n  - FOUR: 4\n  - FIVE: 5\n  - INFORMATION: Information\n\n{switch appearance=\"toggle-text\"}\n[Mitarbeiterdatenbezug][employeeDataReference]\n[employeeDataReference]: switch\n\n{switch delete-fields-if-false=plannedPilotingDurationInMonths,pilotingEndDate,pilotingComment appearance=\"toggle-text\"}\n[Pilotierung][piloting]\n[piloting]: switch\n\n{show if piloting}\n[Geplante Dauer der Pilotierung (Angabe in Monaten)][plannedPilotingDurationInMonths]\n[plannedPilotingDurationInMonths]: number <required>\n\n{readonly}\n[Prozess][process]\n[process]: Select <required> \"Wird automatisch berechnet aus **Aktionstyp**, **Mitarbeiterdatenbezug** sowie **Kategorie nach GBV ITM** (letzteres im Bestandseintrag)\"\n  - \n  - NO_ACTIVITY: keine Aktivität im Rahmen der IT-Mitbestimmung\n  - INFORMATION: Informationsprozess\n  - SIMPLE: Vereinfachter Prozess\n  - DETAILED: Detaillierter Prozess\n  - SEPARATE: Gesonderter Prozess\n  - INAPPLICABLE: nicht anwendbar\n\n[Prozess (angepasst)][processAdjusted]\n[processAdjusted]: Select\n  - \n  - NO_ACTIVITY: keine Aktivität im Rahmen der IT-Mitbestimmung\n  - INFORMATION: Informationsprozess\n  - SIMPLE: Vereinfachter Prozess\n  - DETAILED: Detaillierter Prozess\n  - SEPARATE: Gesonderter Prozess\n  - INAPPLICABLE: nicht anwendbar\n\n\n\n{switch appearance=\"toggle-text\"}\n[Standortentscheidung][locationDecision]\n[locationDecision]: switch \"Ja: SBR. Nein: ITA/GBR.\"\n\n{children delete-on-remove}\n[Antragsteller][applicant]\n[applicant]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true}\n[Bearbeiter][editor]\n[editor]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n)\n\n{switch delete-fields-if-false=applicantSupervisor,applicantSupervisorSignature appearance=\"toggle-text\"}\n[Antragsteller Befugnis (Ist der Antragsteller handlungsbevollmächtigt?)][applicantAuthorization]\n[applicantAuthorization]: switch\n\n{show if !applicantAuthorization|children delete-on-remove}\n[Antragsteller Vorgesetzter][applicantSupervisor]\n[applicantSupervisor]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{children delete-on-remove}\n[Gast / Präsentator][guestOrPresenter]\n[guestOrPresenter]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n)\n\n{date type=\"year-month\"}\n[ITA Sitzungsmonat (AG Wunsch)][itaMeetingMonthByEmployer]\n[itaMeetingMonthByEmployer]: date \n<required>\n\n{multiline auto-grow max=500}\n[Kommentar BITM][itcoComment]\n\n# Unterschriften\n\n{signature}\n[Unterschrift Antragsteller][applicantSignature]\n[applicantSignature]: file <required=\"applicantSignatureAttachments.length === 0\">\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlage Unterschrift Antragsteller][applicantSignatureAttachments]\n[applicantSignatureAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required=\"!applicantSignature.dataUrl\"> \"Als Alternative zu *Unterschrift Antragsteller* kann eine Datei angehängt werden\"\n\n{show if !applicantAuthorization|signature}\n[Unterschrift Antragsteller Vorgesetzter][applicantSupervisorSignature]\n[applicantSupervisorSignature]: file <required=\"applicantSupervisorSignatureAttachments.length === 0\">\n\n{show if !applicantAuthorization|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlage Unterschrift Antragsteller Vorgesetzter][applicantSupervisorSignatureAttachments]\n[applicantSupervisorSignatureAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required=\"!applicantSupervisorSignature.dataUrl\"> \"Als Alternative zu *Unterschrift Antragsteller Vorgesetzter* kann eine Datei angehängt werden\"\n\n# Prüfkatalog\n\n{children delete-on-remove design=\"itm:questionnaire-card\"}\n[Fragebogen][questionnaire]\n[questionnaire]: /b5dcdd5b-6a84-4e13-92a2-052a1f1d1492 <required>\n\n# Präsentation / Anlagen\n\n{show if presentationTemplate.length > 0|readonly|attachment show-download-original-only}\n[Präsentation (Vorlage)][presentationTemplate]\n[presentationTemplate]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Präsentation][presentation]\n[presentation]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required>\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlagen][attachments]\n[attachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{multiline auto-grow max=500}\n[Nachgereichte Informationen][subsequentlyAddedInformation]\n[subsequentlyAddedInformation]: text\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Nachgereichte Anlagen][subsequentlyAddedAttachments]\n[subsequentlyAddedAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{multiline auto-grow}\n[Weitere Mitteilung an den IT-Ausschuss][additionalMessageToIta]\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlagen ITA Seite][attachmentsIta]\n[attachmentsIta]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n# Datenschutzstellungnahme\n\n{multiline auto-grow max=5000}\n[Stellungnahme DPA][dpaStatement]\n\n{show if dpoStatementNotRequired}\n[Stellungnahme DPO ist nicht erforderlich][dpoStatementNotRequired]\n[dpoStatementNotRequired]: switch\n\n\n{select}\n[Stellungnahme Ampel][dpoStatementRating]\n[dpoStatementRating]: Select \n  - \n  - GOOD <icon=\"fa fa-circle\" iconcolor=\"green\">: Empfehlung\n  - OK <icon=\"fa fa-circle\" iconcolor=\"yellow\">: Empfehlung mit Auflagen\n  - BAD <icon=\"fa fa-circle\" iconcolor=\"red\">: Keine Empfehlung\n  - NOT_APPLICABLE <icon=\"fa fa-circle\" iconcolor=\"blue\">: Neutral / Nicht bewertbar / Nicht bewertet \n\n\n{multiline auto-grow max=5000}\n[Stellungnahme DPO][dpoStatement]\n[dpoStatement]: text\n\n{multiline auto-grow max=5000}\n[Nachträgliche Ergänzung DPO][dpoAdditionalStatement]\n\n{multiline auto-grow max=5000}\n[Kommentar zur DPO Stellungnahme][commentOnDpoStatement]\n[commentOnDpoStatement]: text \n\n{multiline auto-grow max=500}\n[Vorschlag Auflagen][dpoProposalConditions]\n\n\n# Sitzungszuordnung / ITA Kommentare\n\n{multiline auto-grow max=500}\n[Kommentar IT-Ref][commentItReferee]\n\n{multiline auto-grow max=500}\n[Kommentar ITA-Vorsitz][commentItaChair]\n\n{multiline auto-grow max=500}\n[Kommentar ITA Sekretariat][commentItaOffice]\n\n{multiline auto-grow}\n[Kommentar/Notizen ITA Mitglieder][commentItaMembers]\n\n{date type=\"year-month\"}\n[ITA Sitzungsmonat (ITA)][itaMeetingMonthByIta]\n[itaMeetingMonthByIta]: date (0-n)\n\n{switch appearance=\"toggle-text\"}\n[Papierentscheid][paperDecision]\n[paperDecision]: switch\n\n\n# Beschluss / Empfehlung / Klärungsauftrag\n\n{multiline auto-grow}\n[Beschlussvorschlag][proposalDecision]\n\n{show if piloting}\n[Pilotierung Enddatum][pilotingEndDate]\n[pilotingEndDate]: date\n\n{show if piloting|multiline auto-grow}\n[Pilotierung Kommentar][pilotingComment]\n\n{children delete-on-remove navigate new-commands=81a8087a-f250-4ee0-acba-dd64518b72b1,2811e9f3-0f97-4425-8b4e-fd96493048de,2a90d0b4-3d71-47b6-b30d-7d254d006ef1,f2e863bd-940e-4fa9-8528-6b606ef7ad43}\n[Beschluss/Empfehlung/Klärungsauftrag][decisions]\n[decisions]: /5beeae17-7bb1-4eeb-bcb6-cf0e6950e27c (0-n) <required>","description":"Base: 5_Antrag_ITA-Vorsitz","functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"5_Antrag_Admin","namedIcon":"","namedIconColor":"","tags":"","theme":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"3163b16b782f3ff6"},"id":"8b9a2285-5e60-448c-8d79-c1a321e13e49","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-10-13T12:13:14+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"dcdf4048-fd75-42ce-bbb0-e2594a0a3e07","text":"5_Antrag_ITA-Vorsitz","v":"5a3fbc8719280a81"},"p":"03d08db0-f873-48cd-a5b5-c34937bddc2f","previous":{"v":"8815bc22e9f5dfd0"},"stamps":[],"t":1760357594189,"v":"13afebf71225dfc8"},{"id":"c7380d56-a3ef-42bc-9b98-9e4ac6d4d53f","v":"086a1fdfcd5a9be0","previous":{"v":"5c7bff373ad973c3"},"p":"c881dec7-95f5-434f-9423-93143aaa976b","f":{"id":"form","v":"b0b69a951dde83ea","text":"Form"},"data":{"name":"1_Sammelinfo_Verantwortlich","tags":"","allowUndefinedFields":false,"definition":"{hidden|readonly}\n[syncTo][syncTo]\n[syncTo]: /ref\n\n[allDocumentDataValid]: switch\n[allEditableDocumentDataValid]: switch\n\n{readonly}\n[Sammelinformationsnummer][informationNumberTitle]\n[informationNumberTitle]: text\n\n{readonly|text max=100}\n[Sammelinformationstitel][informationTitle]\n[informationTitle]: text <required>\n\n{children disable-remove no-add design=\"itm:inventory-card\"}\n[Bestandseintrag][inventoryEntry]\n[inventoryEntry]: /1fc12c11-7c26-41e4-9250-b8e3ff306cc5\n\n{readonly|multiline auto-grow max=3000}\n[Beschreibung][description]\n[description]: text <required>\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true}\n[Verantwortlicher Ansprechpartner Business][responsible]\n[responsible]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n) <required>\n\n{readonly|multiline auto-grow max=500}\n[Kommentar BITM][itcoComment]\n[itcoComment]: text\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlagen][attachments]\n[attachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{readonly|datetime}\n[Zeitstempel Erstellung][creationTimestamp]\n[creationTimestamp]: date\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Ersteller][creator]\n[creator]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10","functions":"","relatedDocuments":[],"defaults":"","newTemplate":{"id":"","v":"","text":""},"newAction":{"id":"","v":"","text":""},"allowedChildrenForms":[],"commands":[],"descendantCommands":[],"to":[],"from":[],"namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"","v":"","text":""},"description":""},"locks":[],"created":{"at":"2025-07-07T09:42:27+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2025-08-01T07:55:01+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1754034901748,"ct":1751881347587,"a_depth":4,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","c881dec7-95f5-434f-9423-93143aaa976b"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"e5da9f31-b1bc-4562-ba5d-b165c1d017b4","v":"d1e2d7cefa1fb789","cloneOf":{"id":"a64625f3-92f8-4c0b-935a-d93891ecfcd4","v":"f2b0d7c0e074dc8a","text":"2_Antrag (In Bearbeitung durch Antragsteller)_Antr"},"originalCloneOf":{"id":"a64625f3-92f8-4c0b-935a-d93891ecfcd4","v":"f2b0d7c0e074dc8a","text":"2_Antrag (In Bearbeitung durch Antragsteller)_Antr"},"previous":{"v":"f7291ce9f5038804"},"p":"03d08db0-f873-48cd-a5b5-c34937bddc2f","f":{"id":"form","v":"3163b16b782f3ff6","text":"Form"},"data":{"name":"2_Antrag_AntragstellerVorgesetzter","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"{hidden|readonly}\n[syncTo][syncTo]\n[syncTo]: /ref\n\n[allDocumentDataValid]: switch\n[allEditableDocumentDataValid]: switch\n\n\n# Antrag\n\n{readonly}\n[Antragsnummer][applicationNumberTitle]\n\n// applicationNumber should be used in sorting\n{hidden|readonly}\n[Antragsnummer][applicationNumber]\n[applicationNumber]: number\n\n{readonly|datetime}\n[Zeitstempel Erstellung][creationTimestamp]\n[creationTimestamp]: date\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Ersteller][creator]\n[creator]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10\n\n{children disable-remove no-add design=\"itm:inventory-card\"}\n[Bestandseintrag][inventoryEntry]\n[inventoryEntry]: /0572195f-176d-40d5-920a-f5b5505e2ef6\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Beratender BITM][consultingItco]\n[consultingItco]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n) <required>\n\n{readonly}\n[Antragstitel][applicationTitle]\n[applicationTitle]: text <required>\n\n{readonly|multiline auto-grow max=500}\n[Beschreibung][description]\n[description]: text <required>\n\n# Unterschriften Vorgesetzter\n\n{show if !applicantAuthorization|signature}\n[Unterschrift Antragsteller Vorgesetzter][applicantSupervisorSignature]\n[applicantSupervisorSignature]: file <required=\"applicantSupervisorSignatureAttachments.length === 0\">\n\n{show if !applicantAuthorization|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlage Unterschrift Antragsteller Vorgesetzter][applicantSupervisorSignatureAttachments]\n[applicantSupervisorSignatureAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required=\"!applicantSupervisorSignature.dataUrl\"> \"Als Alternative zu *Unterschrift Antragsteller Vorgesetzter* kann eine Datei angehängt werden\"\n\n# Antrag\n\n{readonly|select}\n[Aktionstyp][actionType]\n[actionType]: select <required help=layoutId> \"003ffe3b-61e1-4553-acb8-1d8e68874ce0\"\n  - ZERO: \"0\"\n  - ONE: 1\n  - TWO: 2\n  - THREE: 3\n  - FOUR: 4\n  - FIVE: 5\n  - INFORMATION: Information\n\n{readonly|switch appearance=\"toggle-text\"}\n[Mitarbeiterdatenbezug][employeeDataReference]\n[employeeDataReference]: switch\n\n{readonly|switch delete-fields-if-false=plannedPilotingDurationInMonths,pilotingEndDate,pilotingComment appearance=\"toggle-text\"}\n[Pilotierung][piloting]\n[piloting]: switch\n\n{readonly|show if piloting}\n[Geplante Dauer der Pilotierung (Angabe in Monaten)][plannedPilotingDurationInMonths]\n[plannedPilotingDurationInMonths]: number <required>\n\n{readonly}\n[Prozess][process]\n[process]: Select <required> \"Wird automatisch berechnet aus **Aktionstyp**, **Mitarbeiterdatenbezug** sowie **Kategorie nach GBV ITM** (letzteres im Bestandseintrag)\"\n  - \n  - NO_ACTIVITY: keine Aktivität im Rahmen der IT-Mitbestimmung\n  - INFORMATION: Informationsprozess\n  - SIMPLE: Vereinfachter Prozess\n  - DETAILED: Detaillierter Prozess\n  - SEPARATE: Gesonderter Prozess\n  - INAPPLICABLE: nicht anwendbar\n\n\n{readonly|switch appearance=\"toggle-text\"}\n[Standortentscheidung][locationDecision]\n[locationDecision]: switch \"Ja: SBR. Nein: ITA/GBR.\"\n\n{readonly|children delete-on-remove}\n[Antragsteller][applicant]\n[applicant]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true}\n[Bearbeiter][editor]\n[editor]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n)\n\n{readonly|switch delete-fields-if-false=applicantSupervisor,applicantSupervisorSignature appearance=\"toggle-text\"}\n[Antragsteller Befugnis (Ist der Antragsteller handlungsbevollmächtigt?)][applicantAuthorization]\n[applicantAuthorization]: switch\n\n{readonly|show if !applicantAuthorization|children delete-on-remove}\n[Antragsteller Vorgesetzter][applicantSupervisor]\n[applicantSupervisor]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{readonly|children delete-on-remove}\n[Gast / Präsentator][guestOrPresenter]\n[guestOrPresenter]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n)\n\n{readonly|date type=\"year-month\"}\n[ITA Sitzungsmonat (AG Wunsch)][itaMeetingMonthByEmployer]\n[itaMeetingMonthByEmployer]: date <required>\n\n{readonly|multiline auto-grow max=500}\n[Kommentar BITM][itcoComment]\n\n# Unterschriften\n\n{readonly|signature}\n[Unterschrift Antragsteller][applicantSignature]\n[applicantSignature]: file <required=\"applicantSignatureAttachments.length === 0\">\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlage Unterschrift Antragsteller][applicantSignatureAttachments]\n[applicantSignatureAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required=\"!applicantSignature.dataUrl\"> \"Als Alternative zu *Unterschrift Antragsteller* kann eine Datei angehängt werden\"\n\n# Prüfkatalog\n\n{readonly|children delete-on-remove design=\"itm:questionnaire-card\"}\n[Fragebogen][questionnaire]\n[questionnaire]: /86879215-6d39-4a94-b5b4-77d022ca64db <required>\n\n# Präsentation / Anlagen\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Präsentation][presentation]\n[presentation]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlagen][attachments]\n[attachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{readonly|multiline auto-grow}\n[Weitere Mitteilung an den IT-Ausschuss][additionalMessageToIta]\n","functions":"","allowedChildrenForms":[],"commands":[],"description":"Phase 1 und 2","theme":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2023-05-23T12:20:13+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2025-05-20T14:51:54+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1747752714217,"ct":1684844413701,"a_depth":4,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"dcdf4048-fd75-42ce-bbb0-e2594a0a3e07","text":"5_Antrag_IT-Vorsitz","v":"73565b379b87051b"},"created":{"at":"2023-05-25T10:26:18+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1685010378429,"data":{"allowedChildrenForms":[],"commands":[],"definition":"{hidden|readonly}\n[syncTo][syncTo]\n[syncTo]: /ref\n\n[allDocumentDataValid]: switch\n[allEditableDocumentDataValid]: switch\n\n# Antrag\n\n{readonly}\n[Antragsnummer][applicationNumberTitle]\n\n// applicationNumber should be used in sorting\n{hidden|readonly}\n[Antragsnummer][applicationNumber]\n[applicationNumber]: number\n\n{readonly|datetime}\n[Zeitstempel Erstellung][creationTimestamp]\n[creationTimestamp]: date\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Ersteller][creator]\n[creator]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10\n\n{children disable-remove no-add design=\"itm:inventory-card\"}\n[Bestandseintrag][inventoryEntry]\n[inventoryEntry]: /13adf1b7-9d42-4d26-85db-a0a210fba556\n\n{employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Beratender BITM][consultingItco]\n[consultingItco]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n) <required>\n\n{readonly}\n[Antragstitel][applicationTitle]\n[applicationTitle]: text <required>\n\n{readonly|multiline auto-grow max=500}\n[Beschreibung][description]\n[description]: text <required>\n\n{readonly|select}\n[Aktionstyp][actionType]\n[actionType]: select <required help=layoutId> \"003ffe3b-61e1-4553-acb8-1d8e68874ce0\"\n  - ZERO: \"0\"\n  - ONE: 1\n  - TWO: 2\n  - THREE: 3\n  - FOUR: 4\n  - FIVE: 5\n  - INFORMATION: Information\n\n{readonly|switch appearance=\"toggle-text\"}\n[Mitarbeiterdatenbezug][employeeDataReference]\n[employeeDataReference]: switch\n\n{readonly|switch delete-fields-if-false=plannedPilotingDurationInMonths,pilotingEndDate,pilotingComment appearance=\"toggle-text\"}\n[Pilotierung][piloting]\n[piloting]: switch\n\n{readonly|show if piloting}\n[Geplante Dauer der Pilotierung (Angabe in Monaten)][plannedPilotingDurationInMonths]\n[plannedPilotingDurationInMonths]: number <required>\n\n{readonly}\n[Prozess][process]\n[process]: Select <required> \"Wird automatisch berechnet aus **Aktionstyp**, **Mitarbeiterdatenbezug** sowie **Kategorie nach GBV ITM** (letzteres im Bestandseintrag)\"\n  - \n  - NO_ACTIVITY: keine Aktivität im Rahmen der IT-Mitbestimmung\n  - INFORMATION: Informationsprozess\n  - SIMPLE: Vereinfachter Prozess\n  - DETAILED: Detaillierter Prozess\n  - SEPARATE: Gesonderter Prozess\n  - INAPPLICABLE: nicht anwendbar\n\n{readonly}\n[Prozess (angepasst)][processAdjusted]\n[processAdjusted]: Select\n  - \n  - NO_ACTIVITY: keine Aktivität im Rahmen der IT-Mitbestimmung\n  - INFORMATION: Informationsprozess\n  - SIMPLE: Vereinfachter Prozess\n  - DETAILED: Detaillierter Prozess\n  - SEPARATE: Gesonderter Prozess\n  - INAPPLICABLE: nicht anwendbar\n\n\n\n{readonly|switch appearance=\"toggle-text\"}\n[Standortentscheidung][locationDecision]\n[locationDecision]: switch \"Ja: SBR. Nein: ITA/GBR.\"\n\n{children delete-on-remove}\n[Antragsteller][applicant]\n[applicant]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true}\n[Bearbeiter][editor]\n[editor]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n)\n\n{switch delete-fields-if-false=applicantSupervisor,applicantSupervisorSignature appearance=\"toggle-text\"}\n[Antragsteller Befugnis (Ist der Antragsteller handlungsbevollmächtigt?)][applicantAuthorization]\n[applicantAuthorization]: switch\n\n{show if !applicantAuthorization|children delete-on-remove}\n[Antragsteller Vorgesetzter][applicantSupervisor]\n[applicantSupervisor]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{children delete-on-remove}\n[Gast / Präsentator][guestOrPresenter]\n[guestOrPresenter]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n)\n\n{readonly|date type=\"year-month\"}\n[ITA Sitzungsmonat (AG Wunsch)][itaMeetingMonthByEmployer]\n[itaMeetingMonthByEmployer]: date \n<required>\n\n{readonly|multiline auto-grow max=500}\n[Kommentar BITM][itcoComment]\n\n# Unterschriften\n\n{readonly|signature}\n[Unterschrift Antragsteller][applicantSignature]\n[applicantSignature]: file <required=\"applicantSignatureAttachments.length === 0\">\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlage Unterschrift Antragsteller][applicantSignatureAttachments]\n[applicantSignatureAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required=\"!applicantSignature.dataUrl\"> \"Als Alternative zu *Unterschrift Antragsteller* kann eine Datei angehängt werden\"\n\n{readonly|show if !applicantAuthorization|signature}\n[Unterschrift Antragsteller Vorgesetzter][applicantSupervisorSignature]\n[applicantSupervisorSignature]: file <required=\"applicantSupervisorSignatureAttachments.length === 0\">\n\n{show if !applicantAuthorization|readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlage Unterschrift Antragsteller Vorgesetzter][applicantSupervisorSignatureAttachments]\n[applicantSupervisorSignatureAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required=\"!applicantSupervisorSignature.dataUrl\"> \"Als Alternative zu *Unterschrift Antragsteller Vorgesetzter* kann eine Datei angehängt werden\"\n\n# Prüfkatalog\n\n{readonly|children delete-on-remove design=\"itm:questionnaire-card\"}\n[Fragebogen][questionnaire]\n[questionnaire]: /86879215-6d39-4a94-b5b4-77d022ca64db <required>\n\n# Präsentation / Anlagen\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Präsentation][presentation]\n[presentation]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required>\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlagen][attachments]\n[attachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{readonly|multiline auto-grow max=500}\n[Nachgereichte Informationen][subsequentlyAddedInformation]\n[subsequentlyAddedInformation]: text\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Nachgereichte Anlagen][subsequentlyAddedAttachments]\n[subsequentlyAddedAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{readonly|multiline auto-grow}\n[Weitere Mitteilung an den IT-Ausschuss][additionalMessageToIta]\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlagen ITA Seite][attachmentsIta]\n[attachmentsIta]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n# Datenschutzstellungnahme\n\n{readonly|multiline auto-grow max=5000}\n[Stellungnahme DPA][dpaStatement]\n\n{show if dpoStatementNotRequired|readonly}\n[Stellungnahme DPO ist nicht erforderlich][dpoStatementNotRequired]\n[dpoStatementNotRequired]: switch\n\n\n{readonly|select}\n[Stellungnahme Ampel][dpoStatementRating]\n[dpoStatementRating]: Select \n  - \n  - GOOD <icon=\"fa fa-circle\" iconcolor=\"green\">: Empfehlung\n  - OK <icon=\"fa fa-circle\" iconcolor=\"yellow\">: Empfehlung mit Auflagen\n  - BAD <icon=\"fa fa-circle\" iconcolor=\"red\">: Keine Empfehlung\n  - NOT_APPLICABLE <icon=\"fa fa-circle\" iconcolor=\"blue\">: Neutral / Nicht bewertbar / Nicht bewertet \n\n\n{readonly|multiline auto-grow max=5000}\n[Stellungnahme DPO][dpoStatement]\n[dpoStatement]: text\n\n{readonly|multiline auto-grow max=5000}\n[Nachträgliche Ergänzung DPO][dpoAdditionalStatement]\n\n{readonly|multiline auto-grow max=5000}\n[Kommentar zur DPO Stellungnahme][commentOnDpoStatement]\n[commentOnDpoStatement]: text \n\n{readonly|multiline auto-grow max=500}\n[Vorschlag Auflagen][dpoProposalConditions]\n\n\n# Sitzungszuordnung / ITA Kommentare\n\n{readonly|multiline auto-grow max=500}\n[Kommentar IT-Ref][commentItReferee]\n\n{readonly|multiline auto-grow max=500}\n[Kommentar ITA-Vorsitz][commentItaChair]\n\n{multiline auto-grow max=500}\n[Kommentar ITA Sekretariat][commentItaOffice]\n\n{readonly|multiline auto-grow}\n[Kommentar/Notizen ITA Mitglieder][commentItaMembers]\n\n{date type=\"year-month\"}\n[ITA Sitzungsmonat (ITA)][itaMeetingMonthByIta]\n[itaMeetingMonthByIta]: date (0-n)\n\n{switch appearance=\"toggle-text\"}\n[Papierentscheid][paperDecision]\n[paperDecision]: switch\n\n# Beschluss / Empfehlung / Klärungsauftrag\n\n{readonly|multiline auto-grow}\n[Beschlussvorschlag][proposalDecision]\n\n{show if piloting}\n[Pilotierung Enddatum][pilotingEndDate]\n[pilotingEndDate]: date\n\n{show if piloting|multiline auto-grow}\n[Pilotierung Kommentar][pilotingComment]\n\n{children delete-on-remove navigate new-commands=81a8087a-f250-4ee0-acba-dd64518b72b1,2811e9f3-0f97-4425-8b4e-fd96493048de,2a90d0b4-3d71-47b6-b30d-7d254d006ef1,f2e863bd-940e-4fa9-8528-6b606ef7ad43}\n[Beschluss/Empfehlung/Klärungsauftrag][decisions]\n[decisions]: /c04e4a56-2064-4663-9cad-1792a719db35 (0-n) <required>","description":"Phase 1 und 2","functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"5_Antrag_ITA-Sekretariat","namedIcon":"","namedIconColor":"","tags":"","theme":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"3163b16b782f3ff6"},"id":"bb6854fe-25ae-448c-bd33-58d0ecd66c5b","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-10-13T12:07:52+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"dcdf4048-fd75-42ce-bbb0-e2594a0a3e07","text":"5_Antrag_IT-Vorsitz","v":"73565b379b87051b"},"p":"03d08db0-f873-48cd-a5b5-c34937bddc2f","previous":{"v":"08e8cea75f695cf0"},"stamps":[],"t":1760357272069,"v":"5643adb7c6b51c68"},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"bbd108c5-a15b-448a-8302-0c97cc5688ab","text":"6_Antrag_IT-Ref/ITA-Vorsitz","v":"675c8c3834835f94"},"created":{"at":"2023-05-25T15:02:52+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1685026972487,"data":{"allowedChildrenForms":[],"commands":[],"definition":"{hidden|readonly}\n[syncTo][syncTo]\n[syncTo]: /ref\n\n[allDocumentDataValid]: switch\n[allEditableDocumentDataValid]: switch\n\n# Antrag\n\n{readonly}\n[Antragsnummer][applicationNumberTitle]\n\n// applicationNumber should be used in sorting\n{hidden|readonly}\n[Antragsnummer][applicationNumber]\n[applicationNumber]: number\n\n{readonly|datetime}\n[Zeitstempel Erstellung][creationTimestamp]\n[creationTimestamp]: date\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Ersteller][creator]\n[creator]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10\n\n{readonly|children design=\"itm:inventory-card\"}\n[Bestandseintrag][inventoryEntry]\n[inventoryEntry]: /dd51bf3c-69df-4bcd-a630-1a8e0f7dba2e\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Beratender BITM][consultingItco]\n[consultingItco]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n) <required>\n\n{readonly}\n[Antragstitel][applicationTitle]\n[applicationTitle]: text <required>\n\n{readonly|multiline auto-grow max=500}\n[Beschreibung][description]\n[description]: text <required>\n\n{readonly|select}\n[Aktionstyp][actionType]\n[actionType]: select <required help=layoutId> \"003ffe3b-61e1-4553-acb8-1d8e68874ce0\"\n  - ZERO: \"0\"\n  - ONE: 1\n  - TWO: 2\n  - THREE: 3\n  - FOUR: 4\n  - FIVE: 5\n  - INFORMATION: Information\n\n{readonly|switch appearance=\"toggle-text\"}\n[Mitarbeiterdatenbezug][employeeDataReference]\n[employeeDataReference]: switch\n\n{readonly|switch delete-fields-if-false=plannedPilotingDurationInMonths,pilotingEndDate,pilotingComment appearance=\"toggle-text\"}\n[Pilotierung][piloting]\n[piloting]: switch\n\n{readonly|show if piloting}\n[Geplante Dauer der Pilotierung (Angabe in Monaten)][plannedPilotingDurationInMonths]\n[plannedPilotingDurationInMonths]: number <required>\n\n{readonly}\n[Prozess][process]\n[process]: Select <required> \"Wird automatisch berechnet aus **Aktionstyp**, **Mitarbeiterdatenbezug** sowie **Kategorie nach GBV ITM** (letzteres im Bestandseintrag)\"\n  - \n  - NO_ACTIVITY: keine Aktivität im Rahmen der IT-Mitbestimmung\n  - INFORMATION: Informationsprozess\n  - SIMPLE: Vereinfachter Prozess\n  - DETAILED: Detaillierter Prozess\n  - SEPARATE: Gesonderter Prozess\n  - INAPPLICABLE: nicht anwendbar\n\n{readonly}\n[Prozess (angepasst)][processAdjusted]\n[processAdjusted]: Select\n  - \n  - NO_ACTIVITY: keine Aktivität im Rahmen der IT-Mitbestimmung\n  - INFORMATION: Informationsprozess\n  - SIMPLE: Vereinfachter Prozess\n  - DETAILED: Detaillierter Prozess\n  - SEPARATE: Gesonderter Prozess\n  - INAPPLICABLE: nicht anwendbar\n\n\n\n{readonly|switch appearance=\"toggle-text\"}\n[Standortentscheidung][locationDecision]\n[locationDecision]: switch \"Ja: SBR. Nein: ITA/GBR.\"\n\n{readonly|children delete-on-remove}\n[Antragsteller][applicant]\n[applicant]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true}\n[Bearbeiter][editor]\n[editor]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n)\n\n{readonly|switch delete-fields-if-false=applicantSupervisor,applicantSupervisorSignature appearance=\"toggle-text\"}\n[Antragsteller Befugnis (Ist der Antragsteller handlungsbevollmächtigt?)][applicantAuthorization]\n[applicantAuthorization]: switch\n\n{readonly|show if !applicantAuthorization|children delete-on-remove}\n[Antragsteller Vorgesetzter][applicantSupervisor]\n[applicantSupervisor]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{readonly|children delete-on-remove}\n[Gast / Präsentator][guestOrPresenter]\n[guestOrPresenter]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n)\n\n{readonly|date type=\"year-month\"}\n[ITA Sitzungsmonat (AG Wunsch)][itaMeetingMonthByEmployer]\n[itaMeetingMonthByEmployer]: date \n<required>\n\n{readonly|multiline auto-grow max=500}\n[Kommentar BITM][itcoComment]\n\n# Unterschriften\n\n{readonly|signature}\n[Unterschrift Antragsteller][applicantSignature]\n[applicantSignature]: file <required=\"applicantSignatureAttachments.length === 0\">\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlage Unterschrift Antragsteller][applicantSignatureAttachments]\n[applicantSignatureAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required=\"!applicantSignature.dataUrl\"> \"Als Alternative zu *Unterschrift Antragsteller* kann eine Datei angehängt werden\"\n\n{readonly|show if !applicantAuthorization|signature}\n[Unterschrift Antragsteller Vorgesetzter][applicantSupervisorSignature]\n[applicantSupervisorSignature]: file <required=\"applicantSupervisorSignatureAttachments.length === 0\">\n\n{show if !applicantAuthorization|readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlage Unterschrift Antragsteller Vorgesetzter][applicantSupervisorSignatureAttachments]\n[applicantSupervisorSignatureAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required=\"!applicantSupervisorSignature.dataUrl\"> \"Als Alternative zu *Unterschrift Antragsteller Vorgesetzter* kann eine Datei angehängt werden\"\n\n# Prüfkatalog\n\n{readonly|children delete-on-remove design=\"itm:questionnaire-card\"}\n[Fragebogen][questionnaire]\n[questionnaire]: /86879215-6d39-4a94-b5b4-77d022ca64db <required>\n\n# Präsentation / Anlagen\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Präsentation][presentation]\n[presentation]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required>\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlagen][attachments]\n[attachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{readonly|multiline auto-grow max=500}\n[Nachgereichte Informationen][subsequentlyAddedInformation]\n[subsequentlyAddedInformation]: text\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Nachgereichte Anlagen][subsequentlyAddedAttachments]\n[subsequentlyAddedAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{readonly|multiline auto-grow}\n[Weitere Mitteilung an den IT-Ausschuss][additionalMessageToIta]\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlagen ITA Seite][attachmentsIta]\n[attachmentsIta]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n# Datenschutzstellungnahme\n\n{readonly|multiline auto-grow max=5000}\n[Stellungnahme DPA][dpaStatement]\n\n{show if dpoStatementNotRequired|readonly}\n[Stellungnahme DPO ist nicht erforderlich][dpoStatementNotRequired]\n[dpoStatementNotRequired]: switch\n\n\n{readonly|select}\n[Stellungnahme Ampel][dpoStatementRating]\n[dpoStatementRating]: Select \n  - \n  - GOOD <icon=\"fa fa-circle\" iconcolor=\"green\">: Empfehlung\n  - OK <icon=\"fa fa-circle\" iconcolor=\"yellow\">: Empfehlung mit Auflagen\n  - BAD <icon=\"fa fa-circle\" iconcolor=\"red\">: Keine Empfehlung\n  - NOT_APPLICABLE <icon=\"fa fa-circle\" iconcolor=\"blue\">: Neutral / Nicht bewertbar / Nicht bewertet \n\n{readonly|multiline auto-grow max=5000}\n[Stellungnahme DPO][dpoStatement]\n[dpoStatement]: text\n\n{readonly|multiline auto-grow max=5000}\n[Nachträgliche Ergänzung DPO][dpoAdditionalStatement]\n\n{readonly|multiline auto-grow max=5000}\n[Kommentar zur DPO Stellungnahme][commentOnDpoStatement]\n[commentOnDpoStatement]: text \n\n{readonly|multiline auto-grow max=500}\n[Vorschlag Auflagen][dpoProposalConditions]\n\n# Sitzungszuordnung / ITA Kommentare\n\n{readonly|multiline auto-grow max=500}\n[Kommentar IT-Ref][commentItReferee]\n\n{readonly|multiline auto-grow max=500}\n[Kommentar ITA-Vorsitz][commentItaChair]\n\n{readonly|multiline auto-grow max=500}\n[Kommentar ITA Sekretariat][commentItaOffice]\n\n{readonly|date type=\"year-month\"}\n[ITA Sitzungsmonat (ITA)][itaMeetingMonthByIta]\n[itaMeetingMonthByIta]: date (0-n)\n\n{readonly|switch appearance=\"toggle-text\"}\n[Papierentscheid][paperDecision]\n[paperDecision]: switch\n\n# Beschluss / Empfehlung / Klärungsauftrag\n\n{readonly|multiline auto-grow}\n[Beschlussvorschlag][proposalDecision]\n\n{readonly|show if piloting}\n[Pilotierung Enddatum][pilotingEndDate]\n[pilotingEndDate]: date\n\n{readonly|show if piloting|multiline auto-grow}\n[Pilotierung Kommentar][pilotingComment]\n\n{readonly|children delete-on-remove navigate new-commands=81a8087a-f250-4ee0-acba-dd64518b72b1,2811e9f3-0f97-4425-8b4e-fd96493048de,2a90d0b4-3d71-47b6-b30d-7d254d006ef1,f2e863bd-940e-4fa9-8528-6b606ef7ad43}\n[Beschluss/Empfehlung/Klärungsauftrag][decisions]\n[decisions]: /cbdb17cb-885b-4e8b-bfa4-ee22f5c3122f (0-n) <required>","description":"Phase 1 und 2","functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"7_Antrag_IT-Ref/ITA-Vorsitz","namedIcon":"","namedIconColor":"","tags":"","theme":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"3163b16b782f3ff6"},"id":"a70e0efb-a4e8-4508-9d75-974537ca72c1","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-10-13T12:15:27+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"bbd108c5-a15b-448a-8302-0c97cc5688ab","text":"6_Antrag_IT-Ref/ITA-Vorsitz","v":"675c8c3834835f94"},"p":"03d08db0-f873-48cd-a5b5-c34937bddc2f","previous":{"v":"656227c7d2a64185"},"stamps":[],"t":1760357727800,"v":"ee7dde1c73186680"},{"id":"cbf33a14-e8c8-40d4-b4b1-2006f6831376","v":"df32617229767c03","previous":{"v":"b21070ad872e79c2"},"p":"c881dec7-95f5-434f-9423-93143aaa976b","f":{"id":"form","v":"b0b69a951dde83ea","text":"Form"},"data":{"name":"2_Sammelinfo_Admin","tags":"","allowUndefinedFields":false,"definition":"{hidden|readonly}\n[syncTo][syncTo]\n[syncTo]: /ref\n\n[allDocumentDataValid]: switch\n[allEditableDocumentDataValid]: switch\n\n{readonly}\n[Sammelinformationsnummer][informationNumberTitle]\n[informationNumberTitle]: text\n\n{text max=100}\n[Sammelinformationstitel][informationTitle]\n[informationTitle]: text <required>\n\n{children disable-remove no-add design=\"itm:inventory-card\"}\n[Bestandseintrag][inventoryEntry]\n[inventoryEntry]: /312af864-b1e6-42cf-b6b1-8ebba22707cb\n\n{multiline auto-grow max=3000}\n[Beschreibung][description]\n[description]: text <required>\n\n{employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true}\n[Verantwortlicher Ansprechpartner Business][responsible]\n[responsible]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n) <required>\n\n{multiline auto-grow max=500}\n[Kommentar BITM][itcoComment]\n[itcoComment]: text\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlagen][attachments]\n[attachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{multiline auto-grow max=500}\n[Kommentar IT-Ref][commentItReferee]\n[commentItReferee]: text\n\n{readonly|datetime}\n[Zeitstempel Erstellung][creationTimestamp]\n[creationTimestamp]: date\n\n{readonly|datetime}\n[Zeitstempel Einreichung][submissionTimestamp]\n[submissionTimestamp]: date\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Ersteller][creator]\n[creator]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10","functions":"","relatedDocuments":[],"defaults":"","newTemplate":{"id":"","v":"","text":""},"newAction":{"id":"","v":"","text":""},"allowedChildrenForms":[],"commands":[],"descendantCommands":[],"to":[],"from":[],"namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"","v":"","text":""},"description":""},"locks":[],"created":{"at":"2025-07-07T09:47:36+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2025-08-01T07:55:02+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1754034902067,"ct":1751881656156,"a_depth":4,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","c881dec7-95f5-434f-9423-93143aaa976b"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"a64625f3-92f8-4c0b-935a-d93891ecfcd4","v":"f778e8d3fa484a3b","cloneOf":{"id":"24820f19-ae1f-48b2-89e4-f71a2849b5f6","v":"a2d57908b95e02af","text":"2_Antrag (In Bearbeitung durch Antragsteller)_BITM"},"originalCloneOf":{"id":"24820f19-ae1f-48b2-89e4-f71a2849b5f6","v":"a2d57908b95e02af","text":"2_Antrag (In Bearbeitung durch Antragsteller)_BITM"},"previous":{"v":"ce36f5df5cec765b"},"p":"03d08db0-f873-48cd-a5b5-c34937bddc2f","f":{"id":"form","v":"3163b16b782f3ff6","text":"Form"},"data":{"name":"2_Antrag_Antragsteller","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"{hidden|readonly}\n[syncTo][syncTo]\n[syncTo]: /ref\n\n[allDocumentDataValid]: switch\n[allEditableDocumentDataValid]: switch\n\n\n# Antrag\n\n{readonly}\n[Antragsnummer][applicationNumberTitle]\n\n// applicationNumber should be used in sorting\n{hidden|readonly}\n[Antragsnummer][applicationNumber]\n[applicationNumber]: number\n\n{readonly|datetime}\n[Zeitstempel Erstellung][creationTimestamp]\n[creationTimestamp]: date\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Ersteller][creator]\n[creator]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10\n\n{children disable-remove no-add design=\"itm:inventory-card\"}\n[Bestandseintrag][inventoryEntry]\n[inventoryEntry]: /91f74438-399a-4397-a599-a5f386ea0ed8\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Beratender BITM][consultingItco]\n[consultingItco]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n) <required>\n\n{readonly}\n[Antragstitel][applicationTitle]\n[applicationTitle]: text <required>\n\n{readonly|multiline auto-grow max=500}\n[Beschreibung][description]\n[description]: text <required>\n\n{readonly|select}\n[Aktionstyp][actionType]\n[actionType]: select <required help=layoutId> \"003ffe3b-61e1-4553-acb8-1d8e68874ce0\"\n  - ZERO: \"0\"\n  - ONE: 1\n  - TWO: 2\n  - THREE: 3\n  - FOUR: 4\n  - FIVE: 5\n  - INFORMATION: Information\n\n{readonly|switch appearance=\"toggle-text\"}\n[Mitarbeiterdatenbezug][employeeDataReference]\n[employeeDataReference]: switch\n\n{readonly|switch delete-fields-if-false=plannedPilotingDurationInMonths,pilotingEndDate,pilotingComment appearance=\"toggle-text\"}\n[Pilotierung][piloting]\n[piloting]: switch\n\n{readonly|show if piloting}\n[Geplante Dauer der Pilotierung (Angabe in Monaten)][plannedPilotingDurationInMonths]\n[plannedPilotingDurationInMonths]: number <required>\n\n{readonly}\n[Prozess][process]\n[process]: Select <required> \"Wird automatisch berechnet aus **Aktionstyp**, **Mitarbeiterdatenbezug** sowie **Kategorie nach GBV ITM** (letzteres im Bestandseintrag)\"\n  - \n  - NO_ACTIVITY: keine Aktivität im Rahmen der IT-Mitbestimmung\n  - INFORMATION: Informationsprozess\n  - SIMPLE: Vereinfachter Prozess\n  - DETAILED: Detaillierter Prozess\n  - SEPARATE: Gesonderter Prozess\n  - INAPPLICABLE: nicht anwendbar\n\n\n{readonly|switch appearance=\"toggle-text\"}\n[Standortentscheidung][locationDecision]\n[locationDecision]: switch \"Ja: SBR. Nein: ITA/GBR.\"\n\n{readonly|children delete-on-remove}\n[Antragsteller][applicant]\n[applicant]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true}\n[Bearbeiter][editor]\n[editor]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n)\n\n{readonly|switch delete-fields-if-false=applicantSupervisor,applicantSupervisorSignature appearance=\"toggle-text\"}\n[Antragsteller Befugnis (Ist der Antragsteller handlungsbevollmächtigt?)][applicantAuthorization]\n[applicantAuthorization]: switch\n\n{readonly|show if !applicantAuthorization|children delete-on-remove}\n[Antragsteller Vorgesetzter][applicantSupervisor]\n[applicantSupervisor]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{readonly|children delete-on-remove}\n[Gast / Präsentator][guestOrPresenter]\n[guestOrPresenter]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n)\n\n{readonly|date type=\"year-month\"}\n[ITA Sitzungsmonat (AG Wunsch)][itaMeetingMonthByEmployer]\n[itaMeetingMonthByEmployer]: date <required>\n\n{readonly|multiline auto-grow max=500}\n[Kommentar BITM][itcoComment]\n\n# Unterschriften\n\n{signature}\n[Unterschrift Antragsteller][applicantSignature]\n[applicantSignature]: file <required=\"applicantSignatureAttachments.length === 0\">\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlage Unterschrift Antragsteller][applicantSignatureAttachments]\n[applicantSignatureAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required=\"!applicantSignature.dataUrl\"> \"Als Alternative zu *Unterschrift Antragsteller* kann eine Datei angehängt werden\"\n\n{readonly|show if !applicantAuthorization|signature}\n[Unterschrift Antragsteller Vorgesetzter][applicantSupervisorSignature]\n[applicantSupervisorSignature]: file <required=\"applicantSupervisorSignatureAttachments.length === 0\">\n\n{show if !applicantAuthorization|readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlage Unterschrift Antragsteller Vorgesetzter][applicantSupervisorSignatureAttachments]\n[applicantSupervisorSignatureAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required=\"!applicantSupervisorSignature.dataUrl\"> \"Als Alternative zu *Unterschrift Antragsteller Vorgesetzter* kann eine Datei angehängt werden\"\n\n# Prüfkatalog\n\n{children disable-remove no-add design=\"itm:questionnaire-card\"}\n[Fragebogen][questionnaire]\n[questionnaire]: /b5dcdd5b-6a84-4e13-92a2-052a1f1d1492 <required>\n\n# Präsentation / Anlagen\n\n{show if presentationTemplate.length > 0|readonly|attachment show-download-original-only}\n[Präsentation (Vorlage)][presentationTemplate]\n[presentationTemplate]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Präsentation][presentation]\n[presentation]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlagen][attachments]\n[attachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{multiline auto-grow}\n[Weitere Mitteilung an den IT-Ausschuss][additionalMessageToIta]\n","functions":"","allowedChildrenForms":[],"commands":[],"description":"Phase 1 und 2","theme":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2023-04-19T14:20:22+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2025-05-20T14:51:54+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1747752714216,"ct":1681914022566,"a_depth":4,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"bbd108c5-a15b-448a-8302-0c97cc5688ab","text":"6_Antrag_IT-Ref/ITA-Vorsitz","v":"790a137f683da1ee"},"created":{"at":"2024-11-27T09:49:54+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1732700994637,"data":{"allowedChildrenForms":[],"commands":[],"definition":"{hidden|readonly}\n[syncTo][syncTo]\n[syncTo]: /ref\n\n[allDocumentDataValid]: switch\n[allEditableDocumentDataValid]: switch\n\n# Antrag\n\n{readonly}\n[Antragsnummer][applicationNumberTitle]\n\n// applicationNumber should be used in sorting\n{hidden|readonly}\n[Antragsnummer][applicationNumber]\n[applicationNumber]: number\n\n{readonly|datetime}\n[Zeitstempel Erstellung][creationTimestamp]\n[creationTimestamp]: date\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Ersteller][creator]\n[creator]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10\n\n{children design=\"itm:inventory-card\"}\n[Bestandseintrag][inventoryEntry]\n[inventoryEntry]: /11452ef0-a6c2-49e9-845e-73133019ba59\n\n{employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Beratender BITM][consultingItco]\n[consultingItco]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n) <required>\n\n[Antragstitel][applicationTitle]\n[applicationTitle]: text <required>\n\n{multiline auto-grow max=500}\n[Beschreibung][description]\n[description]: text <required>\n\n{readonly|select}\n[Aktionstyp][actionType]\n[actionType]: select <required help=layoutId> \"003ffe3b-61e1-4553-acb8-1d8e68874ce0\"\n  - ZERO: \"0\"\n  - ONE: 1\n  - TWO: 2\n  - THREE: 3\n  - FOUR: 4\n  - FIVE: 5\n  - INFORMATION: Information\n\n{switch appearance=\"toggle-text\"}\n[Mitarbeiterdatenbezug][employeeDataReference]\n[employeeDataReference]: switch\n\n{switch delete-fields-if-false=plannedPilotingDurationInMonths,pilotingEndDate,pilotingComment appearance=\"toggle-text\"}\n[Pilotierung][piloting]\n[piloting]: switch\n\n{show if piloting}\n[Geplante Dauer der Pilotierung (Angabe in Monaten)][plannedPilotingDurationInMonths]\n[plannedPilotingDurationInMonths]: number <required>\n\n{readonly}\n[Prozess][process]\n[process]: Select <required> \"Wird automatisch berechnet aus **Aktionstyp**, **Mitarbeiterdatenbezug** sowie **Kategorie nach GBV ITM** (letzteres im Bestandseintrag)\"\n  - \n  - NO_ACTIVITY: keine Aktivität im Rahmen der IT-Mitbestimmung\n  - INFORMATION: Informationsprozess\n  - SIMPLE: Vereinfachter Prozess\n  - DETAILED: Detaillierter Prozess\n  - SEPARATE: Gesonderter Prozess\n  - INAPPLICABLE: nicht anwendbar\n\n[Prozess (angepasst)][processAdjusted]\n[processAdjusted]: Select\n  - \n  - NO_ACTIVITY: keine Aktivität im Rahmen der IT-Mitbestimmung\n  - INFORMATION: Informationsprozess\n  - SIMPLE: Vereinfachter Prozess\n  - DETAILED: Detaillierter Prozess\n  - SEPARATE: Gesonderter Prozess\n  - INAPPLICABLE: nicht anwendbar\n\n\n\n{switch appearance=\"toggle-text\"}\n[Standortentscheidung][locationDecision]\n[locationDecision]: switch \"Ja: SBR. Nein: ITA/GBR.\"\n\n{children delete-on-remove}\n[Antragsteller][applicant]\n[applicant]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true}\n[Bearbeiter][editor]\n[editor]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n)\n\n{switch delete-fields-if-false=applicantSupervisor,applicantSupervisorSignature appearance=\"toggle-text\"}\n[Antragsteller Befugnis (Ist der Antragsteller handlungsbevollmächtigt?)][applicantAuthorization]\n[applicantAuthorization]: switch\n\n{show if !applicantAuthorization|children delete-on-remove}\n[Antragsteller Vorgesetzter][applicantSupervisor]\n[applicantSupervisor]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{children delete-on-remove}\n[Gast / Präsentator][guestOrPresenter]\n[guestOrPresenter]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n)\n\n{date type=\"year-month\"}\n[ITA Sitzungsmonat (AG Wunsch)][itaMeetingMonthByEmployer]\n[itaMeetingMonthByEmployer]: date \n<required>\n\n{multiline auto-grow max=500}\n[Kommentar BITM][itcoComment]\n\n# Unterschriften\n\n{signature}\n[Unterschrift Antragsteller][applicantSignature]\n[applicantSignature]: file <required=\"applicantSignatureAttachments.length === 0\">\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlage Unterschrift Antragsteller][applicantSignatureAttachments]\n[applicantSignatureAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required=\"!applicantSignature.dataUrl\"> \"Als Alternative zu *Unterschrift Antragsteller* kann eine Datei angehängt werden\"\n\n{show if !applicantAuthorization|signature}\n[Unterschrift Antragsteller Vorgesetzter][applicantSupervisorSignature]\n[applicantSupervisorSignature]: file <required=\"applicantSupervisorSignatureAttachments.length === 0\">\n\n{show if !applicantAuthorization|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlage Unterschrift Antragsteller Vorgesetzter][applicantSupervisorSignatureAttachments]\n[applicantSupervisorSignatureAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required=\"!applicantSupervisorSignature.dataUrl\"> \"Als Alternative zu *Unterschrift Antragsteller Vorgesetzter* kann eine Datei angehängt werden\"\n\n# Prüfkatalog\n\n{children delete-on-remove design=\"itm:questionnaire-card\"}\n[Fragebogen][questionnaire]\n[questionnaire]: /b5dcdd5b-6a84-4e13-92a2-052a1f1d1492 <required>\n\n# Präsentation / Anlagen\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Präsentation][presentation]\n[presentation]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required>\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlagen][attachments]\n[attachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{multiline auto-grow max=500}\n[Nachgereichte Informationen][subsequentlyAddedInformation]\n[subsequentlyAddedInformation]: text\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Nachgereichte Anlagen][subsequentlyAddedAttachments]\n[subsequentlyAddedAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{multiline auto-grow}\n[Weitere Mitteilung an den IT-Ausschuss][additionalMessageToIta]\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlagen ITA Seite][attachmentsIta]\n[attachmentsIta]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n# Datenschutzstellungnahme\n\n{multiline auto-grow max=5000}\n[Stellungnahme DPA][dpaStatement]\n\n{show if dpoStatementNotRequired}\n[Stellungnahme DPO ist nicht erforderlich][dpoStatementNotRequired]\n[dpoStatementNotRequired]: switch\n\n\n{select}\n[Stellungnahme Ampel][dpoStatementRating]\n[dpoStatementRating]: Select \n  - \n  - GOOD <icon=\"fa fa-circle\" iconcolor=\"green\">: Empfehlung\n  - OK <icon=\"fa fa-circle\" iconcolor=\"yellow\">: Empfehlung mit Auflagen\n  - BAD <icon=\"fa fa-circle\" iconcolor=\"red\">: Keine Empfehlung\n  - NOT_APPLICABLE <icon=\"fa fa-circle\" iconcolor=\"blue\">: Neutral / Nicht bewertbar / Nicht bewertet \n\n{multiline auto-grow max=5000}\n[Stellungnahme DPO][dpoStatement]\n[dpoStatement]: text\n\n{multiline auto-grow max=5000}\n[Nachträgliche Ergänzung DPO][dpoAdditionalStatement]\n\n{multiline auto-grow max=5000}\n[Kommentar zur DPO Stellungnahme][commentOnDpoStatement]\n[commentOnDpoStatement]: text \n\n{multiline auto-grow max=500}\n[Vorschlag Auflagen][dpoProposalConditions]\n\n# Sitzungszuordnung / ITA Kommentare\n\n{multiline auto-grow max=500}\n[Kommentar IT-Ref][commentItReferee]\n\n{multiline auto-grow max=500}\n[Kommentar ITA-Vorsitz][commentItaChair]\n\n{multiline auto-grow max=500}\n[Kommentar ITA Sekretariat][commentItaOffice]\n\n{date type=\"year-month\"}\n[ITA Sitzungsmonat (ITA)][itaMeetingMonthByIta]\n[itaMeetingMonthByIta]: date (0-n)\n\n{switch appearance=\"toggle-text\"}\n[Papierentscheid][paperDecision]\n[paperDecision]: switch\n\n# Beschluss / Empfehlung / Klärungsauftrag\n\n{multiline auto-grow}\n[Beschlussvorschlag][proposalDecision]\n\n{show if piloting}\n[Pilotierung Enddatum][pilotingEndDate]\n[pilotingEndDate]: date\n\n{show if piloting|multiline auto-grow}\n[Pilotierung Kommentar][pilotingComment]\n\n{children delete-on-remove navigate new-commands=81a8087a-f250-4ee0-acba-dd64518b72b1,2811e9f3-0f97-4425-8b4e-fd96493048de,2a90d0b4-3d71-47b6-b30d-7d254d006ef1,f2e863bd-940e-4fa9-8528-6b606ef7ad43}\n[Beschluss/Empfehlung/Klärungsauftrag][decisions]\n[decisions]: /5beeae17-7bb1-4eeb-bcb6-cf0e6950e27c (0-n) <required>","description":"Phase 1 und 2","functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"6_Antrag_Admin","namedIcon":"","namedIconColor":"","tags":"","theme":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"3163b16b782f3ff6"},"id":"a1e357c4-2adf-46a5-8e40-c9d824270342","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-10-13T12:11:07+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"bbd108c5-a15b-448a-8302-0c97cc5688ab","text":"6_Antrag_IT-Ref/ITA-Vorsitz","v":"790a137f683da1ee"},"p":"03d08db0-f873-48cd-a5b5-c34937bddc2f","previous":{"v":"c738800dfb902c62"},"stamps":[],"t":1760357467112,"v":"aa893792e57bf211"},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"cc7efcd9-e932-455a-8a77-cb1338b057b7","text":"6_Antrag_ITA-Mitglied","v":"7bf688ab5ba30aa7"},"created":{"at":"2023-05-25T15:02:54+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1685026974419,"data":{"allowedChildrenForms":[],"commands":[],"definition":"{hidden|readonly}\n[syncTo][syncTo]\n[syncTo]: /ref\n\n[allDocumentDataValid]: switch\n[allEditableDocumentDataValid]: switch\n\n# Antrag\n\n{readonly}\n[Antragsnummer][applicationNumberTitle]\n\n// applicationNumber should be used in sorting\n{hidden|readonly}\n[Antragsnummer][applicationNumber]\n[applicationNumber]: number\n\n{readonly|datetime}\n[Zeitstempel Erstellung][creationTimestamp]\n[creationTimestamp]: date\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Ersteller][creator]\n[creator]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10\n\n{readonly|children design=\"itm:inventory-card\"}\n[Bestandseintrag][inventoryEntry]\n[inventoryEntry]: /dd51bf3c-69df-4bcd-a630-1a8e0f7dba2e\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Beratender BITM][consultingItco]\n[consultingItco]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n) <required>\n\n{readonly}\n[Antragstitel][applicationTitle]\n[applicationTitle]: text <required>\n\n{readonly|multiline auto-grow max=500}\n[Beschreibung][description]\n[description]: text <required>\n\n{readonly|select}\n[Aktionstyp][actionType]\n[actionType]: select <required help=layoutId> \"003ffe3b-61e1-4553-acb8-1d8e68874ce0\"\n  - ZERO: \"0\"\n  - ONE: 1\n  - TWO: 2\n  - THREE: 3\n  - FOUR: 4\n  - FIVE: 5\n  - INFORMATION: Information\n\n{readonly|switch appearance=\"toggle-text\"}\n[Mitarbeiterdatenbezug][employeeDataReference]\n[employeeDataReference]: switch\n\n{readonly|switch delete-fields-if-false=plannedPilotingDurationInMonths,pilotingEndDate,pilotingComment appearance=\"toggle-text\"}\n[Pilotierung][piloting]\n[piloting]: switch\n\n{readonly|show if piloting}\n[Geplante Dauer der Pilotierung (Angabe in Monaten)][plannedPilotingDurationInMonths]\n[plannedPilotingDurationInMonths]: number <required>\n\n{readonly}\n[Prozess][process]\n[process]: Select <required> \"Wird automatisch berechnet aus **Aktionstyp**, **Mitarbeiterdatenbezug** sowie **Kategorie nach GBV ITM** (letzteres im Bestandseintrag)\"\n  - \n  - NO_ACTIVITY: keine Aktivität im Rahmen der IT-Mitbestimmung\n  - INFORMATION: Informationsprozess\n  - SIMPLE: Vereinfachter Prozess\n  - DETAILED: Detaillierter Prozess\n  - SEPARATE: Gesonderter Prozess\n  - INAPPLICABLE: nicht anwendbar\n\n{readonly}\n[Prozess (angepasst)][processAdjusted]\n[processAdjusted]: Select\n  - \n  - NO_ACTIVITY: keine Aktivität im Rahmen der IT-Mitbestimmung\n  - INFORMATION: Informationsprozess\n  - SIMPLE: Vereinfachter Prozess\n  - DETAILED: Detaillierter Prozess\n  - SEPARATE: Gesonderter Prozess\n  - INAPPLICABLE: nicht anwendbar\n\n\n\n{readonly|switch appearance=\"toggle-text\"}\n[Standortentscheidung][locationDecision]\n[locationDecision]: switch \"Ja: SBR. Nein: ITA/GBR.\"\n\n{readonly|children delete-on-remove}\n[Antragsteller][applicant]\n[applicant]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true}\n[Bearbeiter][editor]\n[editor]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n)\n\n{readonly|switch delete-fields-if-false=applicantSupervisor,applicantSupervisorSignature appearance=\"toggle-text\"}\n[Antragsteller Befugnis (Ist der Antragsteller handlungsbevollmächtigt?)][applicantAuthorization]\n[applicantAuthorization]: switch\n\n{readonly|show if !applicantAuthorization|children delete-on-remove}\n[Antragsteller Vorgesetzter][applicantSupervisor]\n[applicantSupervisor]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{readonly|children delete-on-remove}\n[Gast / Präsentator][guestOrPresenter]\n[guestOrPresenter]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n)\n\n{readonly|date type=\"year-month\"}\n[ITA Sitzungsmonat (AG Wunsch)][itaMeetingMonthByEmployer]\n[itaMeetingMonthByEmployer]: date \n<required>\n\n{readonly|multiline auto-grow max=500}\n[Kommentar BITM][itcoComment]\n\n# Unterschriften\n\n{readonly|signature}\n[Unterschrift Antragsteller][applicantSignature]\n[applicantSignature]: file <required=\"applicantSignatureAttachments.length === 0\">\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlage Unterschrift Antragsteller][applicantSignatureAttachments]\n[applicantSignatureAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required=\"!applicantSignature.dataUrl\"> \"Als Alternative zu *Unterschrift Antragsteller* kann eine Datei angehängt werden\"\n\n{readonly|show if !applicantAuthorization|signature}\n[Unterschrift Antragsteller Vorgesetzter][applicantSupervisorSignature]\n[applicantSupervisorSignature]: file <required=\"applicantSupervisorSignatureAttachments.length === 0\">\n\n{show if !applicantAuthorization|readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlage Unterschrift Antragsteller Vorgesetzter][applicantSupervisorSignatureAttachments]\n[applicantSupervisorSignatureAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required=\"!applicantSupervisorSignature.dataUrl\"> \"Als Alternative zu *Unterschrift Antragsteller Vorgesetzter* kann eine Datei angehängt werden\"\n\n# Prüfkatalog\n\n{readonly|children delete-on-remove design=\"itm:questionnaire-card\"}\n[Fragebogen][questionnaire]\n[questionnaire]: /86879215-6d39-4a94-b5b4-77d022ca64db <required>\n\n# Präsentation / Anlagen\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Präsentation][presentation]\n[presentation]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required>\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlagen][attachments]\n[attachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{readonly|multiline auto-grow max=500}\n[Nachgereichte Informationen][subsequentlyAddedInformation]\n[subsequentlyAddedInformation]: text\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Nachgereichte Anlagen][subsequentlyAddedAttachments]\n[subsequentlyAddedAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{readonly|multiline auto-grow}\n[Weitere Mitteilung an den IT-Ausschuss][additionalMessageToIta]\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlagen ITA Seite][attachmentsIta]\n[attachmentsIta]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n# Datenschutzstellungnahme\n\n{readonly|multiline auto-grow max=5000}\n[Stellungnahme DPA][dpaStatement]\n\n{show if dpoStatementNotRequired|readonly}\n[Stellungnahme DPO ist nicht erforderlich][dpoStatementNotRequired]\n[dpoStatementNotRequired]: switch\n\n\n{readonly|select}\n[Stellungnahme Ampel][dpoStatementRating]\n[dpoStatementRating]: Select \n  - \n  - GOOD <icon=\"fa fa-circle\" iconcolor=\"green\">: Empfehlung\n  - OK <icon=\"fa fa-circle\" iconcolor=\"yellow\">: Empfehlung mit Auflagen\n  - BAD <icon=\"fa fa-circle\" iconcolor=\"red\">: Keine Empfehlung\n  - NOT_APPLICABLE <icon=\"fa fa-circle\" iconcolor=\"blue\">: Neutral / Nicht bewertbar / Nicht bewertet \n\n{readonly|multiline auto-grow max=5000}\n[Stellungnahme DPO][dpoStatement]\n[dpoStatement]: text\n\n{readonly|multiline auto-grow max=5000}\n[Nachträgliche Ergänzung DPO][dpoAdditionalStatement]\n\n{readonly|multiline auto-grow max=5000}\n[Kommentar zur DPO Stellungnahme][commentOnDpoStatement]\n[commentOnDpoStatement]: text \n\n{readonly|multiline auto-grow max=500}\n[Vorschlag Auflagen][dpoProposalConditions]\n\n# Sitzungszuordnung / ITA Kommentare\n\n{readonly|multiline auto-grow max=500}\n[Kommentar IT-Ref][commentItReferee]\n\n{readonly|multiline auto-grow max=500}\n[Kommentar ITA-Vorsitz][commentItaChair]\n\n{readonly|multiline auto-grow max=500}\n[Kommentar ITA Sekretariat][commentItaOffice]\n\n{readonly|date type=\"year-month\"}\n[ITA Sitzungsmonat (ITA)][itaMeetingMonthByIta]\n[itaMeetingMonthByIta]: date (0-n)\n\n{readonly|switch appearance=\"toggle-text\"}\n[Papierentscheid][paperDecision]\n[paperDecision]: switch\n\n# Beschluss / Empfehlung / Klärungsauftrag\n\n{readonly|multiline auto-grow}\n[Beschlussvorschlag][proposalDecision]\n\n{readonly|show if piloting}\n[Pilotierung Enddatum][pilotingEndDate]\n[pilotingEndDate]: date\n\n{readonly|show if piloting|multiline auto-grow}\n[Pilotierung Kommentar][pilotingComment]\n\n{readonly|children delete-on-remove navigate new-commands=81a8087a-f250-4ee0-acba-dd64518b72b1,2811e9f3-0f97-4425-8b4e-fd96493048de,2a90d0b4-3d71-47b6-b30d-7d254d006ef1,f2e863bd-940e-4fa9-8528-6b606ef7ad43}\n[Beschluss/Empfehlung/Klärungsauftrag][decisions]\n[decisions]: /ee60c716-511c-4ef3-a6f6-2c5c8d5bde74 (0-n) <required>","description":"Phase 1 und 2","functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"7_Antrag_ITA-Mitglied","namedIcon":"","namedIconColor":"","tags":"","theme":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"3163b16b782f3ff6"},"id":"200a3064-a0ef-45a7-9aa3-a60d68977b7d","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-10-13T12:16:27+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"cc7efcd9-e932-455a-8a77-cb1338b057b7","text":"6_Antrag_ITA-Mitglied","v":"7bf688ab5ba30aa7"},"p":"03d08db0-f873-48cd-a5b5-c34937bddc2f","previous":{"v":"c75661cb246230c8"},"stamps":[],"t":1760357787333,"v":"790ae3ba768fdf72"},{"id":"753d7f68-252e-44de-96f0-4794cfb361aa","v":"d592c289f788b671","cloneOf":{"id":"bbd108c5-a15b-448a-8302-0c97cc5688ab","v":"675c8c3834835f94","text":"6_Antrag_IT-Ref/ITA-Vorsitz"},"originalCloneOf":{"id":"bbd108c5-a15b-448a-8302-0c97cc5688ab","v":"675c8c3834835f94","text":"6_Antrag_IT-Ref/ITA-Vorsitz"},"previous":{"v":"067dacdb28f2ae50"},"p":"03d08db0-f873-48cd-a5b5-c34937bddc2f","f":{"id":"form","v":"3163b16b782f3ff6","text":"Form"},"data":{"name":"K_Antrag_ITA-Vorsitz/ITA-Sekretariat","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"{hidden}\n[syncTo][syncTo]\n[syncTo]: /ref\n\n[allDocumentDataValid]: switch\n[allEditableDocumentDataValid]: switch\n\n# Antrag\n\n{readonly}\n[Antragsnummer][applicationNumberTitle]\n\n// applicationNumber should be used in sorting\n{hidden|readonly}\n[Antragsnummer][applicationNumber]\n[applicationNumber]: number\n\n{readonly|datetime}\n[Zeitstempel Erstellung][creationTimestamp]\n[creationTimestamp]: date\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Ersteller][creator]\n[creator]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10\n\n{readonly|children design=\"itm:inventory-card\"}\n[Bestandseintrag][inventoryEntry]\n[inventoryEntry]: /dd51bf3c-69df-4bcd-a630-1a8e0f7dba2e\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Beratender BITM][consultingItco]\n[consultingItco]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n) <required>\n\n{readonly}\n[Antragstitel][applicationTitle]\n[applicationTitle]: text <required>\n\n{readonly|multiline auto-grow=true}\n[Beschreibung][description]\n[description]: text <required>\n\n{readonly|select}\n[Aktionstyp][actionType]\n[actionType]: select <required help=layoutId> \"003ffe3b-61e1-4553-acb8-1d8e68874ce0\"\n  - ZERO: \"0\"\n  - ONE: 1\n  - TWO: 2\n  - THREE: 3\n  - FOUR: 4\n  - FIVE: 5\n  - INFORMATION: Information\n\n{readonly|switch appearance=\"toggle-text\"}\n[Mitarbeiterdatenbezug][employeeDataReference]\n[employeeDataReference]: switch\n\n{readonly|switch delete-fields-if-false=plannedPilotingDurationInMonths,pilotingEndDate,pilotingComment appearance=\"toggle-text\"}\n[Pilotierung][piloting]\n[piloting]: switch\n\n{readonly|show if piloting}\n[Geplante Dauer der Pilotierung (Angabe in Monaten)][plannedPilotingDurationInMonths]\n[plannedPilotingDurationInMonths]: number <required>\n\n{readonly}\n[Prozess][process]\n[process]: Select <required> \"Wird automatisch berechnet aus **Aktionstyp**, **Mitarbeiterdatenbezug** sowie **Kategorie nach GBV ITM** (letzteres im Bestandseintrag)\"\n  - \n  - NO_ACTIVITY: keine Aktivität im Rahmen der IT-Mitbestimmung\n  - INFORMATION: Informationsprozess\n  - SIMPLE: Vereinfachter Prozess\n  - DETAILED: Detaillierter Prozess\n  - SEPARATE: Gesonderter Prozess\n  - INAPPLICABLE: nicht anwendbar\n\n{readonly}\n[Prozess (angepasst)][processAdjusted]\n[processAdjusted]: Select\n  - \n  - NO_ACTIVITY: keine Aktivität im Rahmen der IT-Mitbestimmung\n  - INFORMATION: Informationsprozess\n  - SIMPLE: Vereinfachter Prozess\n  - DETAILED: Detaillierter Prozess\n  - SEPARATE: Gesonderter Prozess\n  - INAPPLICABLE: nicht anwendbar\n\n\n\n{readonly|switch appearance=\"toggle-text\"}\n[Standortentscheidung][locationDecision]\n[locationDecision]: switch \"Ja: SBR. Nein: ITA/GBR.\"\n\n{readonly|children delete-on-remove}\n[Antragsteller][applicant]\n[applicant]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true}\n[Bearbeiter][editor]\n[editor]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n)\n\n{readonly|switch delete-fields-if-false=applicantSupervisor,applicantSupervisorSignature appearance=\"toggle-text\"}\n[Antragsteller Befugnis (Ist der Antragsteller handlungsbevollmächtigt?)][applicantAuthorization]\n[applicantAuthorization]: switch\n\n{readonly|show if !applicantAuthorization|children delete-on-remove}\n[Antragsteller Vorgesetzter][applicantSupervisor]\n[applicantSupervisor]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{readonly|children delete-on-remove}\n[Gast / Präsentator][guestOrPresenter]\n[guestOrPresenter]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n)\n\n{readonly|date type=\"year-month\"}\n[ITA Sitzungsmonat (AG Wunsch)][itaMeetingMonthByEmployer]\n[itaMeetingMonthByEmployer]: date \n<required>\n\n{readonly|multiline auto-grow=true}\n[Kommentar BITM][itcoComment]\n\n# Unterschriften\n\n{readonly|signature}\n[Unterschrift Antragsteller][applicantSignature]\n[applicantSignature]: file <required=\"applicantSignatureAttachments.length === 0\">\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlage Unterschrift Antragsteller][applicantSignatureAttachments]\n[applicantSignatureAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required=\"!applicantSignature.dataUrl\"> \"Als Alternative zu *Unterschrift Antragsteller* kann eine Datei angehängt werden\"\n\n{readonly|show if !applicantAuthorization|signature}\n[Unterschrift Antragsteller Vorgesetzter][applicantSupervisorSignature]\n[applicantSupervisorSignature]: file <required=\"applicantSupervisorSignatureAttachments.length === 0\">\n\n{show if !applicantAuthorization|readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlage Unterschrift Antragsteller Vorgesetzter][applicantSupervisorSignatureAttachments]\n[applicantSupervisorSignatureAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required=\"!applicantSupervisorSignature.dataUrl\"> \"Als Alternative zu *Unterschrift Antragsteller Vorgesetzter* kann eine Datei angehängt werden\"\n\n# Prüfkatalog\n\n{readonly|children delete-on-remove design=\"itm:questionnaire-card\"}\n[Fragebogen][questionnaire]\n[questionnaire]: /86879215-6d39-4a94-b5b4-77d022ca64db <required>\n\n# Präsentation / Anlagen\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Präsentation][presentation]\n[presentation]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required>\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlagen][attachments]\n[attachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{readonly|multiline auto-grow max=500}\n[Nachgereichte Informationen][subsequentlyAddedInformation]\n[subsequentlyAddedInformation]: text\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Nachgereichte Anlagen][subsequentlyAddedAttachments]\n[subsequentlyAddedAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{readonly|multiline auto-grow}\n[Weitere Mitteilung an den IT-Ausschuss][additionalMessageToIta]\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlagen ITA Seite][attachmentsIta]\n[attachmentsIta]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n# Datenschutzstellungnahme\n\n{show if dpoStatementNotRequired|readonly}\n[Stellungnahme DPO ist nicht erforderlich][dpoStatementNotRequired]\n[dpoStatementNotRequired]: switch\n\n\n{readonly|select}\n[Stellungnahme Ampel][dpoStatementRating]\n[dpoStatementRating]: Select \n  - \n  - GOOD <icon=\"fa fa-circle\" iconcolor=\"green\">: Empfehlung\n  - OK <icon=\"fa fa-circle\" iconcolor=\"yellow\">: Empfehlung mit Auflagen\n  - BAD <icon=\"fa fa-circle\" iconcolor=\"red\">: Keine Empfehlung\n  - NOT_APPLICABLE <icon=\"fa fa-circle\" iconcolor=\"blue\">: Neutral / Nicht bewertbar / Nicht bewertet \n\n{readonly|multiline auto-grow}\n[Stellungnahme DPO][dpoStatement]\n[dpoStatement]: text\n\n{readonly|multiline auto-grow max=5000}\n[Kommentar zur DPO Stellungnahme][commentOnDpoStatement]\n[commentOnDpoStatement]: text \n\n{readonly|multiline auto-grow}\n[Nachträgliche Ergänzung DPO][dpoAdditionalStatement]\n\n{readonly|multiline auto-grow}\n[Vorschlag Auflagen][dpoProposalConditions]\n\n# Sitzungszuordnung / ITA Kommentare\n\n{readonly|multiline auto-grow}\n[Kommentar IT-Ref][commentItReferee]\n\n{readonly|multiline auto-grow}\n[Kommentar ITA-Vorsitz][commentItaChair]\n\n{readonly|multiline auto-grow}\n[Kommentar ITA Sekretariat][commentItaOffice]\n\n{readonly|date type=\"year-month\"}\n[ITA Sitzungsmonat (ITA)][itaMeetingMonthByIta]\n[itaMeetingMonthByIta]: date (0-n)\n\n{readonly|switch appearance=\"toggle-text\"}\n[Papierentscheid][paperDecision]\n[paperDecision]: switch\n\n# Beschluss / Empfehlung / Klärungsauftrag\n\n{readonly|select delete-fields-if-changed=clarificationOrder,postponementReason}\n[Vertagung/Klärung][postponementClarification]\n[postponementClarification]: select\n  - POSTPONEMENT: Vertagung\n  - CLARIFICATION: Klärungsauftrag\n\n{readonly|select delete-fields-if-changed=itaPublicationComment,locationGbrRecommendation,decisionText,recommendationText}\n[Beschlussart][decisionType]\n[decisionType]: select <required>\n  - RESOLUTION: Beschluss\n  - RECOMMENDATION: Empfehlung\n\n{show if decisionType === 'RESOLUTION'|multiline auto-grow}\n[Veröffentlichungskommentar ITA][itaPublicationComment]\n\n{readonly|show if decisionType === 'RECOMMENDATION'|ref}\n[Standort-/GBR Empfehlung][locationGbrRecommendation]\n[locationGbrRecommendation]: /af8aa2f7-1c0b-404d-b6c8-06e5be0ffd38\n\n{readonly|multiline auto-grow}\n[Beschlussvorschlag][proposalDecision]\n\n{readonly|show if decisionType === 'RESOLUTION'|multiline auto-grow}\n[Beschlusstext][decisionText]\n\n{readonly|show if postponementClarification === 'CLARIFICATION'|multiline auto-grow}\n[Klärungsauftrag][clarificationOrder]\n\n{readonly|show if postponementClarification === 'POSTPONEMENT'|multiline auto-grow}\n[Vertagungsgrund][postponementReason]\n\n{readonly|switch appearance=\"toggle-text\"}\n[Wiedervorlage][resubmission]\n[resubmission]: switch\n\n{readonly|show if resubmission}\n[Wiedervorlage Datum][resubmissionDate]\n[resubmissionDate]: date <required>\n\n{readonly|show if resubmission|multiline auto-grow}\n[Wiedervorlage Kommentar][resubmissionComment]\n\n{readonly|show if piloting}\n[Pilotierung Enddatum][pilotingEndDate]\n[pilotingEndDate]: date\n\n{readonly|show if piloting|multiline auto-grow}\n[Pilotierung Kommentar][pilotingComment]\n\n{readonly|switch appearance=\"toggle-text\"}\n[Textbaustein LuVK][textModuleLuVK]\n[textModuleLuVK]: switch\n\n{readonly|date}\n[Beschlussdatum][decisionDate]\n[decisionDate]: date <required>\n\n{readonly|date}\n[Sitzungsdatum][sessionDate]\n[sessionDate]: date (0-n) <required>\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Sitzungsleiter][sessionLeader]\n[sessionLeader]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 <required>\n\n{readonly|signature}\n[Unterschrift Sitzungsleiter][sessionLeaderSignature]\n[sessionLeaderSignature]: file <required>\n\n# Klärung\n\n{readonly|multiline auto-grow}\n[Klärung des Antragstellers][applicantClarification]\n[applicantClarification]: text <required>\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anhang Klärung des Antragstellers][applicantClarificationAttachment]\n[applicantClarificationAttachment]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)","functions":"","allowedChildrenForms":[],"commands":[],"description":"Phase 1 und 2","theme":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2023-05-25T13:22:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2025-05-22T13:49:28+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1747921768946,"ct":1685020952656,"a_depth":4,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"2c5ec2e2-a72a-43ac-9a30-d5ebacb26c10","text":"5_Antrag_DPO","v":"ce427d5015d1d877"},"created":{"at":"2025-10-13T12:05:43+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1760357143030,"data":{"allowedChildrenForms":[],"commands":[],"definition":"{hidden|readonly}\n[syncTo][syncTo]\n[syncTo]: /ref\n\n[allDocumentDataValid]: switch\n[allEditableDocumentDataValid]: switch\n\n# Antrag\n\n{readonly}\n[Antragsnummer][applicationNumberTitle]\n\n// applicationNumber should be used in sorting\n{hidden|readonly}\n[Antragsnummer][applicationNumber]\n[applicationNumber]: number\n\n{readonly|datetime}\n[Zeitstempel Erstellung][creationTimestamp]\n[creationTimestamp]: date\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Ersteller][creator]\n[creator]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10\n\n{readonly|children design=\"itm:inventory-card\"}\n[Bestandseintrag][inventoryEntry]\n[inventoryEntry]: /dd51bf3c-69df-4bcd-a630-1a8e0f7dba2e\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Beratender BITM][consultingItco]\n[consultingItco]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n) <required>\n\n{readonly}\n[Antragstitel][applicationTitle]\n[applicationTitle]: text <required>\n\n{readonly|multiline auto-grow max=500}\n[Beschreibung][description]\n[description]: text <required>\n\n{readonly|select}\n[Aktionstyp][actionType]\n[actionType]: select <required help=layoutId> \"003ffe3b-61e1-4553-acb8-1d8e68874ce0\"\n  - ZERO: \"0\"\n  - ONE: 1\n  - TWO: 2\n  - THREE: 3\n  - FOUR: 4\n  - FIVE: 5\n  - INFORMATION: Information\n\n{readonly|switch appearance=\"toggle-text\"}\n[Mitarbeiterdatenbezug][employeeDataReference]\n[employeeDataReference]: switch\n\n{readonly|switch delete-fields-if-false=plannedPilotingDurationInMonths,pilotingEndDate,pilotingComment appearance=\"toggle-text\"}\n[Pilotierung][piloting]\n[piloting]: switch\n\n{readonly|show if piloting}\n[Geplante Dauer der Pilotierung (Angabe in Monaten)][plannedPilotingDurationInMonths]\n[plannedPilotingDurationInMonths]: number <required>\n\n{readonly}\n[Prozess][process]\n[process]: Select <required> \"Wird automatisch berechnet aus **Aktionstyp**, **Mitarbeiterdatenbezug** sowie **Kategorie nach GBV ITM** (letzteres im Bestandseintrag)\"\n  - \n  - NO_ACTIVITY: keine Aktivität im Rahmen der IT-Mitbestimmung\n  - INFORMATION: Informationsprozess\n  - SIMPLE: Vereinfachter Prozess\n  - DETAILED: Detaillierter Prozess\n  - SEPARATE: Gesonderter Prozess\n  - INAPPLICABLE: nicht anwendbar\n\n{readonly}\n[Prozess (angepasst)][processAdjusted]\n[processAdjusted]: Select\n  - \n  - NO_ACTIVITY: keine Aktivität im Rahmen der IT-Mitbestimmung\n  - INFORMATION: Informationsprozess\n  - SIMPLE: Vereinfachter Prozess\n  - DETAILED: Detaillierter Prozess\n  - SEPARATE: Gesonderter Prozess\n  - INAPPLICABLE: nicht anwendbar\n\n\n\n{readonly|switch appearance=\"toggle-text\"}\n[Standortentscheidung][locationDecision]\n[locationDecision]: switch \"Ja: SBR. Nein: ITA/GBR.\"\n\n{readonly|children delete-on-remove}\n[Antragsteller][applicant]\n[applicant]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true}\n[Bearbeiter][editor]\n[editor]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n)\n\n{readonly|switch delete-fields-if-false=applicantSupervisor,applicantSupervisorSignature appearance=\"toggle-text\"}\n[Antragsteller Befugnis (Ist der Antragsteller handlungsbevollmächtigt?)][applicantAuthorization]\n[applicantAuthorization]: switch\n\n{readonly|show if !applicantAuthorization|children delete-on-remove}\n[Antragsteller Vorgesetzter][applicantSupervisor]\n[applicantSupervisor]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{readonly|children delete-on-remove}\n[Gast / Präsentator][guestOrPresenter]\n[guestOrPresenter]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n)\n\n{readonly|date type=\"year-month\"}\n[ITA Sitzungsmonat (AG Wunsch)][itaMeetingMonthByEmployer]\n[itaMeetingMonthByEmployer]: date \n<required>\n\n{readonly|multiline auto-grow max=500}\n[Kommentar BITM][itcoComment]\n\n# Unterschriften\n\n{readonly|signature}\n[Unterschrift Antragsteller][applicantSignature]\n[applicantSignature]: file <required=\"applicantSignatureAttachments.length === 0\">\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlage Unterschrift Antragsteller][applicantSignatureAttachments]\n[applicantSignatureAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required=\"!applicantSignature.dataUrl\"> \"Als Alternative zu *Unterschrift Antragsteller* kann eine Datei angehängt werden\"\n\n{readonly|show if !applicantAuthorization|signature}\n[Unterschrift Antragsteller Vorgesetzter][applicantSupervisorSignature]\n[applicantSupervisorSignature]: file <required=\"applicantSupervisorSignatureAttachments.length === 0\">\n\n{show if !applicantAuthorization|readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlage Unterschrift Antragsteller Vorgesetzter][applicantSupervisorSignatureAttachments]\n[applicantSupervisorSignatureAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required=\"!applicantSupervisorSignature.dataUrl\"> \"Als Alternative zu *Unterschrift Antragsteller Vorgesetzter* kann eine Datei angehängt werden\"\n\n# Prüfkatalog\n\n{readonly|children delete-on-remove design=\"itm:questionnaire-card\"}\n[Fragebogen][questionnaire]\n[questionnaire]: /86879215-6d39-4a94-b5b4-77d022ca64db <required>\n\n# Präsentation / Anlagen\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Präsentation][presentation]\n[presentation]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required>\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlagen][attachments]\n[attachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{readonly|multiline auto-grow max=500}\n[Nachgereichte Informationen][subsequentlyAddedInformation]\n[subsequentlyAddedInformation]: text\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Nachgereichte Anlagen][subsequentlyAddedAttachments]\n[subsequentlyAddedAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{readonly|multiline auto-grow}\n[Weitere Mitteilung an den IT-Ausschuss][additionalMessageToIta]\n\n# Datenschutzstellungnahme\n\n{readonly|multiline auto-grow max=5000}\n[Stellungnahme DPA][dpaStatement]\n\n{show if dpoStatementNotRequired|readonly}\n[Stellungnahme DPO ist nicht erforderlich][dpoStatementNotRequired]\n[dpoStatementNotRequired]: switch\n\n\n{readonly|select}\n[Stellungnahme Ampel][dpoStatementRating]\n[dpoStatementRating]: Select \n  - \n  - GOOD <icon=\"fa fa-circle\" iconcolor=\"green\">: Empfehlung\n  - OK <icon=\"fa fa-circle\" iconcolor=\"yellow\">: Empfehlung mit Auflagen\n  - BAD <icon=\"fa fa-circle\" iconcolor=\"red\">: Keine Empfehlung\n  - NOT_APPLICABLE <icon=\"fa fa-circle\" iconcolor=\"blue\">: Neutral / Nicht bewertbar / Nicht bewertet \n\n{readonly|multiline auto-grow max=5000}\n[Stellungnahme DPO][dpoStatement]\n[dpoStatement]: text\n\n{readonly|multiline auto-grow max=5000}\n[Nachträgliche Ergänzung DPO][dpoAdditionalStatement]\n\n{readonly|multiline auto-grow max=5000}\n[Kommentar zur DPO Stellungnahme][commentOnDpoStatement]\n[commentOnDpoStatement]: text \n\n{readonly|multiline auto-grow max=500}\n[Vorschlag Auflagen][dpoProposalConditions]","description":"Phase 1 und 2","functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"5_Antrag_DPA","namedIcon":"","namedIconColor":"","tags":"","theme":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"3163b16b782f3ff6"},"id":"1d5daf59-8391-41e2-b814-8cc922ebb39c","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-10-13T12:08:20+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"2c5ec2e2-a72a-43ac-9a30-d5ebacb26c10","text":"5_Antrag_DPO","v":"ce427d5015d1d877"},"p":"03d08db0-f873-48cd-a5b5-c34937bddc2f","previous":{"v":"2445e103400474de"},"stamps":[],"t":1760357300469,"v":"098b206aaeb43ac8"},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"bbd108c5-a15b-448a-8302-0c97cc5688ab","text":"6_Antrag_IT-Ref/ITA-Vorsitz","v":"675c8c3834835f94"},"created":{"at":"2023-05-25T13:12:15+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1685020335145,"data":{"allowedChildrenForms":[],"commands":[],"definition":"{hidden|readonly}\n[syncTo][syncTo]\n[syncTo]: /ref\n\n[allDocumentDataValid]: switch\n[allEditableDocumentDataValid]: switch\n\n# Antrag\n\n{readonly}\n[Antragsnummer][applicationNumberTitle]\n\n// applicationNumber should be used in sorting\n{hidden|readonly}\n[Antragsnummer][applicationNumber]\n[applicationNumber]: number\n\n{readonly|datetime}\n[Zeitstempel Erstellung][creationTimestamp]\n[creationTimestamp]: date\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Ersteller][creator]\n[creator]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10\n\n{readonly|children design=\"itm:inventory-card\"}\n[Bestandseintrag][inventoryEntry]\n[inventoryEntry]: /dd51bf3c-69df-4bcd-a630-1a8e0f7dba2e\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Beratender BITM][consultingItco]\n[consultingItco]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n) <required>\n\n{readonly}\n[Antragstitel][applicationTitle]\n[applicationTitle]: text <required>\n\n{readonly|multiline auto-grow max=500}\n[Beschreibung][description]\n[description]: text <required>\n\n{readonly|select}\n[Aktionstyp][actionType]\n[actionType]: select <required help=layoutId> \"003ffe3b-61e1-4553-acb8-1d8e68874ce0\"\n  - ZERO: \"0\"\n  - ONE: 1\n  - TWO: 2\n  - THREE: 3\n  - FOUR: 4\n  - FIVE: 5\n  - INFORMATION: Information\n\n{readonly|switch appearance=\"toggle-text\"}\n[Mitarbeiterdatenbezug][employeeDataReference]\n[employeeDataReference]: switch\n\n{readonly|switch delete-fields-if-false=plannedPilotingDurationInMonths,pilotingEndDate,pilotingComment appearance=\"toggle-text\"}\n[Pilotierung][piloting]\n[piloting]: switch\n\n{readonly|show if piloting}\n[Geplante Dauer der Pilotierung (Angabe in Monaten)][plannedPilotingDurationInMonths]\n[plannedPilotingDurationInMonths]: number <required>\n\n{readonly}\n[Prozess][process]\n[process]: Select <required> \"Wird automatisch berechnet aus **Aktionstyp**, **Mitarbeiterdatenbezug** sowie **Kategorie nach GBV ITM** (letzteres im Bestandseintrag)\"\n  - \n  - NO_ACTIVITY: keine Aktivität im Rahmen der IT-Mitbestimmung\n  - INFORMATION: Informationsprozess\n  - SIMPLE: Vereinfachter Prozess\n  - DETAILED: Detaillierter Prozess\n  - SEPARATE: Gesonderter Prozess\n  - INAPPLICABLE: nicht anwendbar\n\n{readonly}\n[Prozess (angepasst)][processAdjusted]\n[processAdjusted]: Select\n  - \n  - NO_ACTIVITY: keine Aktivität im Rahmen der IT-Mitbestimmung\n  - INFORMATION: Informationsprozess\n  - SIMPLE: Vereinfachter Prozess\n  - DETAILED: Detaillierter Prozess\n  - SEPARATE: Gesonderter Prozess\n  - INAPPLICABLE: nicht anwendbar\n\n\n\n{readonly|switch appearance=\"toggle-text\"}\n[Standortentscheidung][locationDecision]\n[locationDecision]: switch \"Ja: SBR. Nein: ITA/GBR.\"\n\n{readonly|children delete-on-remove}\n[Antragsteller][applicant]\n[applicant]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true}\n[Bearbeiter][editor]\n[editor]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n)\n\n{readonly|switch delete-fields-if-false=applicantSupervisor,applicantSupervisorSignature appearance=\"toggle-text\"}\n[Antragsteller Befugnis (Ist der Antragsteller handlungsbevollmächtigt?)][applicantAuthorization]\n[applicantAuthorization]: switch\n\n{readonly|show if !applicantAuthorization|children delete-on-remove}\n[Antragsteller Vorgesetzter][applicantSupervisor]\n[applicantSupervisor]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{readonly|children delete-on-remove}\n[Gast / Präsentator][guestOrPresenter]\n[guestOrPresenter]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n)\n\n{readonly|date type=\"year-month\"}\n[ITA Sitzungsmonat (AG Wunsch)][itaMeetingMonthByEmployer]\n[itaMeetingMonthByEmployer]: date \n<required>\n\n{readonly|multiline auto-grow max=500}\n[Kommentar BITM][itcoComment]\n\n# Unterschriften\n\n{readonly|signature}\n[Unterschrift Antragsteller][applicantSignature]\n[applicantSignature]: file <required=\"applicantSignatureAttachments.length === 0\">\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlage Unterschrift Antragsteller][applicantSignatureAttachments]\n[applicantSignatureAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required=\"!applicantSignature.dataUrl\"> \"Als Alternative zu *Unterschrift Antragsteller* kann eine Datei angehängt werden\"\n\n{readonly|show if !applicantAuthorization|signature}\n[Unterschrift Antragsteller Vorgesetzter][applicantSupervisorSignature]\n[applicantSupervisorSignature]: file <required=\"applicantSupervisorSignatureAttachments.length === 0\">\n\n{show if !applicantAuthorization|readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlage Unterschrift Antragsteller Vorgesetzter][applicantSupervisorSignatureAttachments]\n[applicantSupervisorSignatureAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required=\"!applicantSupervisorSignature.dataUrl\"> \"Als Alternative zu *Unterschrift Antragsteller Vorgesetzter* kann eine Datei angehängt werden\"\n\n# Prüfkatalog\n\n{readonly|children delete-on-remove design=\"itm:questionnaire-card\"}\n[Fragebogen][questionnaire]\n[questionnaire]: /86879215-6d39-4a94-b5b4-77d022ca64db <required>\n\n# Präsentation / Anlagen\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Präsentation][presentation]\n[presentation]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required>\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlagen][attachments]\n[attachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{readonly|multiline auto-grow max=500}\n[Nachgereichte Informationen][subsequentlyAddedInformation]\n[subsequentlyAddedInformation]: text\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Nachgereichte Anlagen][subsequentlyAddedAttachments]\n[subsequentlyAddedAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{readonly|multiline auto-grow}\n[Weitere Mitteilung an den IT-Ausschuss][additionalMessageToIta]\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlagen ITA Seite][attachmentsIta]\n[attachmentsIta]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n# Datenschutzstellungnahme\n\n{readonly|multiline auto-grow max=5000}\n[Stellungnahme DPA][dpaStatement]\n\n{show if dpoStatementNotRequired|readonly}\n[Stellungnahme DPO ist nicht erforderlich][dpoStatementNotRequired]\n[dpoStatementNotRequired]: switch\n\n\n{readonly|select}\n[Stellungnahme Ampel][dpoStatementRating]\n[dpoStatementRating]: Select \n  - \n  - GOOD <icon=\"fa fa-circle\" iconcolor=\"green\">: Empfehlung\n  - OK <icon=\"fa fa-circle\" iconcolor=\"yellow\">: Empfehlung mit Auflagen\n  - BAD <icon=\"fa fa-circle\" iconcolor=\"red\">: Keine Empfehlung\n  - NOT_APPLICABLE <icon=\"fa fa-circle\" iconcolor=\"blue\">: Neutral / Nicht bewertbar / Nicht bewertet \n\n{readonly|multiline auto-grow max=5000}\n[Stellungnahme DPO][dpoStatement]\n[dpoStatement]: text\n\n{readonly|multiline auto-grow max=5000}\n[Nachträgliche Ergänzung DPO][dpoAdditionalStatement]\n\n{readonly|multiline auto-grow max=5000}\n[Kommentar zur DPO Stellungnahme][commentOnDpoStatement]\n[commentOnDpoStatement]: text \n\n{readonly|multiline auto-grow max=500}\n[Vorschlag Auflagen][dpoProposalConditions]\n\n# Sitzungszuordnung / ITA Kommentare\n\n{readonly|multiline auto-grow max=500}\n[Kommentar IT-Ref][commentItReferee]\n\n{readonly|multiline auto-grow max=500}\n[Kommentar ITA-Vorsitz][commentItaChair]\n\n{readonly|multiline auto-grow max=500}\n[Kommentar ITA Sekretariat][commentItaOffice]\n\n{readonly|date type=\"year-month\"}\n[ITA Sitzungsmonat (ITA)][itaMeetingMonthByIta]\n[itaMeetingMonthByIta]: date (0-n)\n\n{readonly|switch appearance=\"toggle-text\"}\n[Papierentscheid][paperDecision]\n[paperDecision]: switch\n\n# Beschluss / Empfehlung / Klärungsauftrag\n\n{readonly|multiline auto-grow}\n[Beschlussvorschlag][proposalDecision]\n\n{readonly|show if piloting}\n[Pilotierung Enddatum][pilotingEndDate]\n[pilotingEndDate]: date\n\n{readonly|show if piloting|multiline auto-grow}\n[Pilotierung Kommentar][pilotingComment]\n\n{readonly|children delete-on-remove navigate new-commands=81a8087a-f250-4ee0-acba-dd64518b72b1,2811e9f3-0f97-4425-8b4e-fd96493048de,2a90d0b4-3d71-47b6-b30d-7d254d006ef1,f2e863bd-940e-4fa9-8528-6b606ef7ad43}\n[Beschluss/Empfehlung/Klärungsauftrag][decisions]\n[decisions]: /cbdb17cb-885b-4e8b-bfa4-ee22f5c3122f (0-n) <required>","description":"Phase 1 und 2","functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"6_Antrag_ITA-Sekretariat","namedIcon":"","namedIconColor":"","tags":"","theme":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"3163b16b782f3ff6"},"id":"98a077cd-4317-409d-9aa6-628648d6413e","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-10-13T12:12:43+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"bbd108c5-a15b-448a-8302-0c97cc5688ab","text":"6_Antrag_IT-Ref/ITA-Vorsitz","v":"675c8c3834835f94"},"p":"03d08db0-f873-48cd-a5b5-c34937bddc2f","previous":{"v":"93bf6b385a6ff31b"},"stamps":[],"t":1760357563448,"v":"f6fb6f6f68d431f3"},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"7343f86d-bfd2-4768-a26a-d4229c603418","text":"1/2_Antrag (In Bearbeitung)","v":"8eadb4d7b6d33721"},"created":{"at":"2023-04-13T13:53:34+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1681394014030,"data":{"allowedChildrenForms":[],"commands":[],"definition":"{hidden|readonly}\n[syncTo][syncTo]\n[syncTo]: /ref\n\n[allDocumentDataValid]: switch\n[allEditableDocumentDataValid]: switch\n\n\n# Antrag\n\n{readonly}\n[Antragsnummer][applicationNumberTitle]\n\n// applicationNumber should be used in sorting\n{hidden|readonly}\n[Antragsnummer][applicationNumber]\n[applicationNumber]: number\n\n{readonly|datetime}\n[Zeitstempel Erstellung][creationTimestamp]\n[creationTimestamp]: date\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Ersteller][creator]\n[creator]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10\n\n{children disable-remove no-add design=\"itm:inventory-card\"}\n[Bestandseintrag][inventoryEntry]\n[inventoryEntry]: /51a7fc42-06e5-4100-836d-1ba43f6604e1\n\n{employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Beratender BITM][consultingItco]\n[consultingItco]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n) <required>\n\n[Antragstitel][applicationTitle]\n[applicationTitle]: text <required>\n\n{multiline auto-grow max=500}\n[Beschreibung][description]\n[description]: text <required>\n\n{select}\n[Aktionstyp][actionType]\n[actionType]: select <required help=layoutId> \"003ffe3b-61e1-4553-acb8-1d8e68874ce0\"\n  - ZERO: \"0\"\n  - ONE: 1\n  - TWO: 2\n  - THREE: 3\n  - FOUR: 4\n  - FIVE: 5\n  - INFORMATION: Information\n\n{switch appearance=\"toggle-text\"}\n[Mitarbeiterdatenbezug][employeeDataReference]\n[employeeDataReference]: switch\n\n{switch delete-fields-if-false=plannedPilotingDurationInMonths,pilotingEndDate,pilotingComment appearance=\"toggle-text\"}\n[Pilotierung][piloting]\n[piloting]: switch\n\n{show if piloting}\n[Geplante Dauer der Pilotierung (Angabe in Monaten)][plannedPilotingDurationInMonths]\n[plannedPilotingDurationInMonths]: number <required>\n\n{readonly}\n[Prozess][process]\n[process]: Select <required> \"Wird automatisch berechnet aus **Aktionstyp**, **Mitarbeiterdatenbezug** sowie **Kategorie nach GBV ITM** (letzteres im Bestandseintrag)\"\n  - \n  - NO_ACTIVITY: keine Aktivität im Rahmen der IT-Mitbestimmung\n  - INFORMATION: Informationsprozess\n  - SIMPLE: Vereinfachter Prozess\n  - DETAILED: Detaillierter Prozess\n  - SEPARATE: Gesonderter Prozess\n  - INAPPLICABLE: nicht anwendbar\n\n\n{switch appearance=\"toggle-text\"}\n[Standortentscheidung][locationDecision]\n[locationDecision]: switch \"Ja: SBR. Nein: ITA/GBR.\"\n\n{children delete-on-remove}\n[Antragsteller][applicant]\n[applicant]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Bearbeiter][editor]\n[editor]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n)\n\n{switch delete-fields-if-false=applicantSupervisor,applicantSupervisorSignature appearance=\"toggle-text\"}\n[Antragsteller Befugnis (Ist der Antragsteller handlungsbevollmächtigt?)][applicantAuthorization]\n[applicantAuthorization]: switch\n\n{show if !applicantAuthorization|children delete-on-remove}\n[Antragsteller Vorgesetzter][applicantSupervisor]\n[applicantSupervisor]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{children delete-on-remove}\n[Gast / Präsentator][guestOrPresenter]\n[guestOrPresenter]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n)\n\n{date type=\"year-month\"}\n[ITA Sitzungsmonat (AG Wunsch)][itaMeetingMonthByEmployer]\n[itaMeetingMonthByEmployer]: date <required>\n\n{multiline auto-grow max=500}\n[Kommentar BITM][itcoComment]\n\n# Unterschriften\n\n{readonly|signature}\n[Unterschrift Antragsteller][applicantSignature]\n[applicantSignature]: file <required=\"applicantSignatureAttachments.length === 0\">\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlage Unterschrift Antragsteller][applicantSignatureAttachments]\n[applicantSignatureAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required=\"!applicantSignature.dataUrl\"> \"Als Alternative zu *Unterschrift Antragsteller* kann eine Datei angehängt werden\"\n\n{readonly|show if !applicantAuthorization|signature}\n[Unterschrift Antragsteller Vorgesetzter][applicantSupervisorSignature]\n[applicantSupervisorSignature]: file <required=\"applicantSupervisorSignatureAttachments.length === 0\">\n\n{show if !applicantAuthorization|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlage Unterschrift Antragsteller Vorgesetzter][applicantSupervisorSignatureAttachments]\n[applicantSupervisorSignatureAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required=\"!applicantSupervisorSignature.dataUrl\"> \"Als Alternative zu *Unterschrift Antragsteller Vorgesetzter* kann eine Datei angehängt werden\"\n\n# Prüfkatalog\n\n{children disable-remove no-add design=\"itm:questionnaire-card\"}\n[Fragebogen][questionnaire]\n[questionnaire]: /b5dcdd5b-6a84-4e13-92a2-052a1f1d1492 <required>\n\n# Präsentation / Anlagen\n\n{show if presentationTemplate.length > 0|readonly|attachment show-download-original-only}\n[Präsentation (Vorlage)][presentationTemplate]\n[presentationTemplate]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Präsentation][presentation]\n[presentation]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlagen][attachments]\n[attachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{multiline auto-grow}\n[Weitere Mitteilung an den IT-Ausschuss][additionalMessageToIta]\n","description":"Phase 1 und 2","functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"2_Antrag_BITM","namedIcon":"","namedIconColor":"","tags":"","theme":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"3163b16b782f3ff6"},"id":"24820f19-ae1f-48b2-89e4-f71a2849b5f6","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-05-20T14:57:11+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"7343f86d-bfd2-4768-a26a-d4229c603418","text":"1/2_Antrag (In Bearbeitung)","v":"8eadb4d7b6d33721"},"p":"03d08db0-f873-48cd-a5b5-c34937bddc2f","previous":{"v":"a3580d3e68721a1c"},"stamps":[],"t":1747753031071,"v":"a1326b86fd905d38"},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"a71ed848-5126-4abc-bbd7-86791c96a82f","text":"4_Antrag_IT-Ref","v":"f8b6a511900d93c4"},"created":{"at":"2023-05-25T08:38:40+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1685003920533,"data":{"allowedChildrenForms":[],"commands":[],"definition":"{hidden|readonly}\n[syncTo][syncTo]\n[syncTo]: /ref\n\n[allDocumentDataValid]: switch\n[allEditableDocumentDataValid]: switch\n\n# Antrag\n\n{readonly}\n[Antragsnummer][applicationNumberTitle]\n\n// applicationNumber should be used in sorting\n{hidden|readonly}\n[Antragsnummer][applicationNumber]\n[applicationNumber]: number\n\n{readonly|datetime}\n[Zeitstempel Erstellung][creationTimestamp]\n[creationTimestamp]: date\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Ersteller][creator]\n[creator]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10\n\n{children disable-remove no-add design=\"itm:inventory-card\"}\n[Bestandseintrag][inventoryEntry]\n[inventoryEntry]: /51a7fc42-06e5-4100-836d-1ba43f6604e1\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Beratender BITM][consultingItco]\n[consultingItco]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n) <required>\n\n[Antragstitel][applicationTitle]\n[applicationTitle]: text <required>\n\n{multiline auto-grow max=500}\n[Beschreibung][description]\n[description]: text <required>\n\n{select}\n[Aktionstyp][actionType]\n[actionType]: select <required help=layoutId> \"003ffe3b-61e1-4553-acb8-1d8e68874ce0\"\n  - ZERO: \"0\"\n  - ONE: 1\n  - TWO: 2\n  - THREE: 3\n  - FOUR: 4\n  - FIVE: 5\n  - INFORMATION: Information\n\n{switch appearance=\"toggle-text\"}\n[Mitarbeiterdatenbezug][employeeDataReference]\n[employeeDataReference]: switch\n\n{switch delete-fields-if-false=plannedPilotingDurationInMonths,pilotingEndDate,pilotingComment appearance=\"toggle-text\"}\n[Pilotierung][piloting]\n[piloting]: switch\n\n{show if piloting}\n[Geplante Dauer der Pilotierung (Angabe in Monaten)][plannedPilotingDurationInMonths]\n[plannedPilotingDurationInMonths]: number <required>\n\n{readonly}\n[Prozess][process]\n[process]: Select <required> \"Wird automatisch berechnet aus **Aktionstyp**, **Mitarbeiterdatenbezug** sowie **Kategorie nach GBV ITM** (letzteres im Bestandseintrag)\"\n  - \n  - NO_ACTIVITY: keine Aktivität im Rahmen der IT-Mitbestimmung\n  - INFORMATION: Informationsprozess\n  - SIMPLE: Vereinfachter Prozess\n  - DETAILED: Detaillierter Prozess\n  - SEPARATE: Gesonderter Prozess\n  - INAPPLICABLE: nicht anwendbar\n\n[Prozess (angepasst)][processAdjusted]\n[processAdjusted]: Select\n  - \n  - NO_ACTIVITY: keine Aktivität im Rahmen der IT-Mitbestimmung\n  - INFORMATION: Informationsprozess\n  - SIMPLE: Vereinfachter Prozess\n  - DETAILED: Detaillierter Prozess\n  - SEPARATE: Gesonderter Prozess\n  - INAPPLICABLE: nicht anwendbar\n\n\n\n{switch appearance=\"toggle-text\"}\n[Standortentscheidung][locationDecision]\n[locationDecision]: switch \"Ja: SBR. Nein: ITA/GBR.\"\n\n{children delete-on-remove}\n[Antragsteller][applicant]\n[applicant]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true}\n[Bearbeiter][editor]\n[editor]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n)\n\n{switch delete-fields-if-false=applicantSupervisor,applicantSupervisorSignature appearance=\"toggle-text\"}\n[Antragsteller Befugnis (Ist der Antragsteller handlungsbevollmächtigt?)][applicantAuthorization]\n[applicantAuthorization]: switch\n\n{show if !applicantAuthorization|children delete-on-remove}\n[Antragsteller Vorgesetzter][applicantSupervisor]\n[applicantSupervisor]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{children delete-on-remove}\n[Gast / Präsentator][guestOrPresenter]\n[guestOrPresenter]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n)\n\n{readonly|date type=\"year-month\"}\n[ITA Sitzungsmonat (AG Wunsch)][itaMeetingMonthByEmployer]\n[itaMeetingMonthByEmployer]: date \n<required>\n\n{readonly|multiline auto-grow max=500}\n[Kommentar BITM][itcoComment]\n\n# Unterschriften\n\n{readonly|signature}\n[Unterschrift Antragsteller][applicantSignature]\n[applicantSignature]: file <required=\"applicantSignatureAttachments.length === 0\">\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlage Unterschrift Antragsteller][applicantSignatureAttachments]\n[applicantSignatureAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required=\"!applicantSignature.dataUrl\"> \"Als Alternative zu *Unterschrift Antragsteller* kann eine Datei angehängt werden\"\n\n{readonly|show if !applicantAuthorization|signature}\n[Unterschrift Antragsteller Vorgesetzter][applicantSupervisorSignature]\n[applicantSupervisorSignature]: file <required=\"applicantSupervisorSignatureAttachments.length === 0\">\n\n{show if !applicantAuthorization|readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlage Unterschrift Antragsteller Vorgesetzter][applicantSupervisorSignatureAttachments]\n[applicantSupervisorSignatureAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required=\"!applicantSupervisorSignature.dataUrl\"> \"Als Alternative zu *Unterschrift Antragsteller Vorgesetzter* kann eine Datei angehängt werden\"\n\n# Prüfkatalog\n\n{children disable-remove no-add design=\"itm:questionnaire-card\"}\n[Fragebogen][questionnaire]\n[questionnaire]: /b5dcdd5b-6a84-4e13-92a2-052a1f1d1492 <required>\n\n# Präsentation / Anlagen\n\n{show if presentationTemplate.length > 0|readonly|attachment show-download-original-only}\n[Präsentation (Vorlage)][presentationTemplate]\n[presentationTemplate]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Präsentation][presentation]\n[presentation]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required>\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlagen][attachments]\n[attachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{multiline auto-grow max=500}\n[Nachgereichte Informationen][subsequentlyAddedInformation]\n[subsequentlyAddedInformation]: text\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Nachgereichte Anlagen][subsequentlyAddedAttachments]\n[subsequentlyAddedAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{readonly|multiline auto-grow}\n[Weitere Mitteilung an den IT-Ausschuss][additionalMessageToIta]\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlagen ITA Seite][attachmentsIta]\n[attachmentsIta]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n# Datenschutzstellungnahme\n\n{readonly|multiline auto-grow max=5000}\n[Stellungnahme DPA][dpaStatement]\n\n{show if dpoStatementNotRequired|readonly}\n[Stellungnahme DPO ist nicht erforderlich][dpoStatementNotRequired]\n[dpoStatementNotRequired]: switch\n\n\n{readonly|select}\n[Stellungnahme Ampel][dpoStatementRating]\n[dpoStatementRating]: Select \n  - \n  - GOOD <icon=\"fa fa-circle\" iconcolor=\"green\">: Empfehlung\n  - OK <icon=\"fa fa-circle\" iconcolor=\"yellow\">: Empfehlung mit Auflagen\n  - BAD <icon=\"fa fa-circle\" iconcolor=\"red\">: Keine Empfehlung\n  - NOT_APPLICABLE <icon=\"fa fa-circle\" iconcolor=\"blue\">: Neutral / Nicht bewertbar / Nicht bewertet \n\n\n{readonly|multiline auto-grow max=5000}\n[Stellungnahme DPO][dpoStatement]\n[dpoStatement]: text\n\n{readonly|multiline auto-grow max=5000}\n[Nachträgliche Ergänzung DPO][dpoAdditionalStatement]\n\n{readonly|multiline auto-grow max=5000}\n[Kommentar zur DPO Stellungnahme][commentOnDpoStatement]\n[commentOnDpoStatement]: text \n\n{readonly|multiline auto-grow max=500}\n[Vorschlag Auflagen][dpoProposalConditions]\n\n\n# Sitzungszuordnung / ITA Kommentare\n\n{multiline auto-grow max=500}\n[Kommentar IT-Ref][commentItReferee]\n\n{readonly|multiline auto-grow max=500}\n[Kommentar ITA-Vorsitz][commentItaChair]\n\n{readonly|multiline auto-grow max=500}\n[Kommentar ITA Sekretariat][commentItaOffice]\n\n{readonly|multiline auto-grow}\n[Kommentar/Notizen ITA Mitglieder][commentItaMembers]\n\n{date type=\"year-month\"}\n[ITA Sitzungsmonat (ITA)][itaMeetingMonthByIta]\n[itaMeetingMonthByIta]: date (0-n)\n\n{switch appearance=\"toggle-text\"}\n[Papierentscheid][paperDecision]\n[paperDecision]: switch\n\n\n# Beschluss / Empfehlung / Klärungsauftrag\n\n{multiline auto-grow}\n[Beschlussvorschlag][proposalDecision]\n\n{show if piloting}\n[Pilotierung Enddatum][pilotingEndDate]\n[pilotingEndDate]: date\n\n{show if piloting|multiline auto-grow}\n[Pilotierung Kommentar][pilotingComment]\n\n{readonly|children delete-on-remove navigate new-commands=81a8087a-f250-4ee0-acba-dd64518b72b1,2811e9f3-0f97-4425-8b4e-fd96493048de,2a90d0b4-3d71-47b6-b30d-7d254d006ef1,f2e863bd-940e-4fa9-8528-6b606ef7ad43}\n[Beschluss/Empfehlung/Klärungsauftrag][decisions]\n[decisions]: /374a4c32-b30e-4fa8-a134-bdc51a4605a8 (0-n) <required>","description":"Phase 1 und 2","functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"5_Antrag_IT-Ref","namedIcon":"","namedIconColor":"","tags":"","theme":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"3163b16b782f3ff6"},"id":"8938270d-0c2f-46b4-a91a-1345e1866879","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-10-13T12:06:37+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"a71ed848-5126-4abc-bbd7-86791c96a82f","text":"4_Antrag_IT-Ref","v":"f8b6a511900d93c4"},"p":"03d08db0-f873-48cd-a5b5-c34937bddc2f","previous":{"v":"226585a2215196fe"},"stamps":[],"t":1760357197387,"v":"51560ea9e70dc324"},{"id":"01e6f087-b221-4df6-a3a6-4bac0a1b36b6","v":"ce7fef907da74edf","cloneOf":{"id":"0b71e123-3a9b-4cba-b6fd-0d92e77067d2","text":"3_Antrag_BITM","v":"b822f4a0171e7e8d"},"originalCloneOf":{"id":"0b71e123-3a9b-4cba-b6fd-0d92e77067d2","text":"3_Antrag_BITM","v":"b822f4a0171e7e8d"},"previous":{"v":"f2155b12b9652f39"},"p":"03d08db0-f873-48cd-a5b5-c34937bddc2f","f":{"id":"form","v":"3163b16b782f3ff6","text":"Form"},"data":{"name":"3_Antrag_Admin","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"{hidden|readonly}\n[syncTo][syncTo]\n[syncTo]: /ref\n\n[allDocumentDataValid]: switch\n[allEditableDocumentDataValid]: switch\n\n# Antrag\n\n{readonly}\n[Antragsnummer][applicationNumberTitle]\n\n// applicationNumber should be used in sorting\n{hidden|readonly}\n[Antragsnummer][applicationNumber]\n[applicationNumber]: number\n\n{readonly|datetime}\n[Zeitstempel Erstellung][creationTimestamp]\n[creationTimestamp]: date\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Ersteller][creator]\n[creator]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10\n\n{children disable-remove no-add design=\"itm:inventory-card\"}\n[Bestandseintrag][inventoryEntry]\n[inventoryEntry]: /11452ef0-a6c2-49e9-845e-73133019ba59\n\n{employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Beratender BITM][consultingItco]\n[consultingItco]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n) <required>\n\n[Antragstitel][applicationTitle]\n[applicationTitle]: text <required>\n\n{multiline auto-grow max=500}\n[Beschreibung][description]\n[description]: text <required>\n\n{select}\n[Aktionstyp][actionType]\n[actionType]: select <required help=layoutId> \"003ffe3b-61e1-4553-acb8-1d8e68874ce0\"\n  - ZERO: \"0\"\n  - ONE: 1\n  - TWO: 2\n  - THREE: 3\n  - FOUR: 4\n  - FIVE: 5\n  - INFORMATION: Information\n\n{switch appearance=\"toggle-text\"}\n[Mitarbeiterdatenbezug][employeeDataReference]\n[employeeDataReference]: switch\n\n{switch delete-fields-if-false=plannedPilotingDurationInMonths,pilotingEndDate,pilotingComment appearance=\"toggle-text\"}\n[Pilotierung][piloting]\n[piloting]: switch\n\n{show if piloting}\n[Geplante Dauer der Pilotierung (Angabe in Monaten)][plannedPilotingDurationInMonths]\n[plannedPilotingDurationInMonths]: number <required>\n\n{readonly}\n[Prozess][process]\n[process]: Select <required> \"Wird automatisch berechnet aus **Aktionstyp**, **Mitarbeiterdatenbezug** sowie **Kategorie nach GBV ITM** (letzteres im Bestandseintrag)\"\n  - \n  - NO_ACTIVITY: keine Aktivität im Rahmen der IT-Mitbestimmung\n  - INFORMATION: Informationsprozess\n  - SIMPLE: Vereinfachter Prozess\n  - DETAILED: Detaillierter Prozess\n  - SEPARATE: Gesonderter Prozess\n  - INAPPLICABLE: nicht anwendbar\n\n\n{switch appearance=\"toggle-text\"}\n[Standortentscheidung][locationDecision]\n[locationDecision]: switch \"Ja: SBR. Nein: ITA/GBR.\"\n\n{children delete-on-remove}\n[Antragsteller][applicant]\n[applicant]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true}\n[Bearbeiter][editor]\n[editor]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n)\n\n{switch delete-fields-if-false=applicantSupervisor,applicantSupervisorSignature appearance=\"toggle-text\"}\n[Antragsteller Befugnis (Ist der Antragsteller handlungsbevollmächtigt?)][applicantAuthorization]\n[applicantAuthorization]: switch\n\n{show if !applicantAuthorization|children delete-on-remove}\n[Antragsteller Vorgesetzter][applicantSupervisor]\n[applicantSupervisor]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{children delete-on-remove}\n[Gast / Präsentator][guestOrPresenter]\n[guestOrPresenter]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n)\n\n{date type=\"year-month\"}\n[ITA Sitzungsmonat (AG Wunsch)][itaMeetingMonthByEmployer]\n[itaMeetingMonthByEmployer]: date <required>\n\n{multiline auto-grow max=500}\n[Kommentar BITM][itcoComment]\n\n# Unterschriften\n\n{signature}\n[Unterschrift Antragsteller][applicantSignature]\n[applicantSignature]: file <required=\"applicantSignatureAttachments.length === 0\">\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlage Unterschrift Antragsteller][applicantSignatureAttachments]\n[applicantSignatureAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required=\"!applicantSignature.dataUrl\"> \"Als Alternative zu *Unterschrift Antragsteller* kann eine Datei angehängt werden\"\n\n{show if !applicantAuthorization|signature}\n[Unterschrift Antragsteller Vorgesetzter][applicantSupervisorSignature]\n[applicantSupervisorSignature]: file <required=\"applicantSupervisorSignatureAttachments.length === 0\">\n\n{show if !applicantAuthorization|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlage Unterschrift Antragsteller Vorgesetzter][applicantSupervisorSignatureAttachments]\n[applicantSupervisorSignatureAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required=\"!applicantSupervisorSignature.dataUrl\"> \"Als Alternative zu *Unterschrift Antragsteller Vorgesetzter* kann eine Datei angehängt werden\"\n\n# Prüfkatalog\n\n{children disable-remove no-add design=\"itm:questionnaire-card\"}\n[Fragebogen][questionnaire]\n[questionnaire]: /b5dcdd5b-6a84-4e13-92a2-052a1f1d1492 <required>\n\n# Präsentation / Anlagen\n\n{show if presentationTemplate.length > 0|readonly|attachment show-download-original-only}\n[Präsentation (Vorlage)][presentationTemplate]\n[presentationTemplate]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Präsentation][presentation]\n[presentation]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required>\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlagen][attachments]\n[attachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{multiline auto-grow max=500}\n[Nachgereichte Informationen][subsequentlyAddedInformation]\n[subsequentlyAddedInformation]: text\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Nachgereichte Anlagen][subsequentlyAddedAttachments]\n[subsequentlyAddedAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{multiline auto-grow}\n[Weitere Mitteilung an den IT-Ausschuss][additionalMessageToIta]\n\n\n# Datenschutzstellungnahme\n\n[Stellungnahme DPO ist nicht erforderlich][dpoStatementNotRequired]\n[dpoStatementNotRequired]: switch\n\n{select}\n[Stellungnahme Ampel][dpoStatementRating]\n[dpoStatementRating]: Select \n  - \n  - GOOD <icon=\"fa fa-circle\" iconcolor=\"green\">: Empfehlung\n  - OK <icon=\"fa fa-circle\" iconcolor=\"yellow\">: Empfehlung mit Auflagen\n  - BAD <icon=\"fa fa-circle\" iconcolor=\"red\">: Keine Empfehlung\n  - NOT_APPLICABLE <icon=\"fa fa-circle\" iconcolor=\"blue\">: Neutral / Nicht bewertbar / Nicht bewertet \n\n{multiline auto-grow max=5000}\n[Stellungnahme DPA][dpaStatement]\n\n{multiline auto-grow max=5000}\n[Stellungnahme DPO][dpoStatement]\n[dpoStatement]: text \n","functions":"","allowedChildrenForms":[],"commands":[],"description":"Wie 3_Antrag_BITM","theme":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2024-11-27T09:48:47+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"modified":{"at":"2025-07-17T11:42:34+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1752752554929,"ct":1732700927091,"a_depth":4,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"98a077cd-4317-409d-9aa6-628648d6413e","text":"6_Antrag_ITA-Sekretariat","v":"78d874827b888b0b"},"created":{"at":"2023-05-25T13:14:00+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1685020440169,"data":{"allowedChildrenForms":[],"commands":[],"definition":"{hidden|readonly}\n[syncTo][syncTo]\n[syncTo]: /ref\n\n[allDocumentDataValid]: switch\n[allEditableDocumentDataValid]: switch\n\n# Antrag\n\n{readonly}\n[Antragsnummer][applicationNumberTitle]\n\n// applicationNumber should be used in sorting\n{hidden|readonly}\n[Antragsnummer][applicationNumber]\n[applicationNumber]: number\n\n{readonly|datetime}\n[Zeitstempel Erstellung][creationTimestamp]\n[creationTimestamp]: date\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Ersteller][creator]\n[creator]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10\n\n{readonly|children design=\"itm:inventory-card\"}\n[Bestandseintrag][inventoryEntry]\n[inventoryEntry]: /dd51bf3c-69df-4bcd-a630-1a8e0f7dba2e\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Beratender BITM][consultingItco]\n[consultingItco]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n) <required>\n\n{readonly}\n[Antragstitel][applicationTitle]\n[applicationTitle]: text <required>\n\n{readonly|multiline auto-grow max=500}\n[Beschreibung][description]\n[description]: text <required>\n\n{readonly|select}\n[Aktionstyp][actionType]\n[actionType]: select <required help=layoutId> \"003ffe3b-61e1-4553-acb8-1d8e68874ce0\"\n  - ZERO: \"0\"\n  - ONE: 1\n  - TWO: 2\n  - THREE: 3\n  - FOUR: 4\n  - FIVE: 5\n  - INFORMATION: Information\n\n{readonly|switch appearance=\"toggle-text\"}\n[Mitarbeiterdatenbezug][employeeDataReference]\n[employeeDataReference]: switch\n\n{readonly|switch delete-fields-if-false=plannedPilotingDurationInMonths,pilotingEndDate,pilotingComment appearance=\"toggle-text\"}\n[Pilotierung][piloting]\n[piloting]: switch\n\n{readonly|show if piloting}\n[Geplante Dauer der Pilotierung (Angabe in Monaten)][plannedPilotingDurationInMonths]\n[plannedPilotingDurationInMonths]: number <required>\n\n{readonly}\n[Prozess][process]\n[process]: Select <required> \"Wird automatisch berechnet aus **Aktionstyp**, **Mitarbeiterdatenbezug** sowie **Kategorie nach GBV ITM** (letzteres im Bestandseintrag)\"\n  - \n  - NO_ACTIVITY: keine Aktivität im Rahmen der IT-Mitbestimmung\n  - INFORMATION: Informationsprozess\n  - SIMPLE: Vereinfachter Prozess\n  - DETAILED: Detaillierter Prozess\n  - SEPARATE: Gesonderter Prozess\n  - INAPPLICABLE: nicht anwendbar\n\n{readonly}\n[Prozess (angepasst)][processAdjusted]\n[processAdjusted]: Select\n  - \n  - NO_ACTIVITY: keine Aktivität im Rahmen der IT-Mitbestimmung\n  - INFORMATION: Informationsprozess\n  - SIMPLE: Vereinfachter Prozess\n  - DETAILED: Detaillierter Prozess\n  - SEPARATE: Gesonderter Prozess\n  - INAPPLICABLE: nicht anwendbar\n\n\n\n{readonly|switch appearance=\"toggle-text\"}\n[Standortentscheidung][locationDecision]\n[locationDecision]: switch \"Ja: SBR. Nein: ITA/GBR.\"\n\n{readonly|children delete-on-remove}\n[Antragsteller][applicant]\n[applicant]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true}\n[Bearbeiter][editor]\n[editor]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n)\n\n{readonly|switch delete-fields-if-false=applicantSupervisor,applicantSupervisorSignature appearance=\"toggle-text\"}\n[Antragsteller Befugnis (Ist der Antragsteller handlungsbevollmächtigt?)][applicantAuthorization]\n[applicantAuthorization]: switch\n\n{readonly|show if !applicantAuthorization|children delete-on-remove}\n[Antragsteller Vorgesetzter][applicantSupervisor]\n[applicantSupervisor]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{readonly|children delete-on-remove}\n[Gast / Präsentator][guestOrPresenter]\n[guestOrPresenter]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n)\n\n{readonly|date type=\"year-month\"}\n[ITA Sitzungsmonat (AG Wunsch)][itaMeetingMonthByEmployer]\n[itaMeetingMonthByEmployer]: date \n<required>\n\n{readonly|multiline auto-grow max=500}\n[Kommentar BITM][itcoComment]\n\n# Unterschriften\n\n{readonly|signature}\n[Unterschrift Antragsteller][applicantSignature]\n[applicantSignature]: file <required=\"applicantSignatureAttachments.length === 0\">\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlage Unterschrift Antragsteller][applicantSignatureAttachments]\n[applicantSignatureAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required=\"!applicantSignature.dataUrl\"> \"Als Alternative zu *Unterschrift Antragsteller* kann eine Datei angehängt werden\"\n\n{readonly|show if !applicantAuthorization|signature}\n[Unterschrift Antragsteller Vorgesetzter][applicantSupervisorSignature]\n[applicantSupervisorSignature]: file <required=\"applicantSupervisorSignatureAttachments.length === 0\">\n\n{show if !applicantAuthorization|readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlage Unterschrift Antragsteller Vorgesetzter][applicantSupervisorSignatureAttachments]\n[applicantSupervisorSignatureAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required=\"!applicantSupervisorSignature.dataUrl\"> \"Als Alternative zu *Unterschrift Antragsteller Vorgesetzter* kann eine Datei angehängt werden\"\n\n# Prüfkatalog\n\n{readonly|children delete-on-remove design=\"itm:questionnaire-card\"}\n[Fragebogen][questionnaire]\n[questionnaire]: /86879215-6d39-4a94-b5b4-77d022ca64db <required>\n\n# Präsentation / Anlagen\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Präsentation][presentation]\n[presentation]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required>\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlagen][attachments]\n[attachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{readonly|multiline auto-grow max=500}\n[Nachgereichte Informationen][subsequentlyAddedInformation]\n[subsequentlyAddedInformation]: text\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Nachgereichte Anlagen][subsequentlyAddedAttachments]\n[subsequentlyAddedAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{readonly|multiline auto-grow}\n[Weitere Mitteilung an den IT-Ausschuss][additionalMessageToIta]\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlagen ITA Seite][attachmentsIta]\n[attachmentsIta]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n# Datenschutzstellungnahme\n\n{readonly|multiline auto-grow max=5000}\n[Stellungnahme DPA][dpaStatement]\n\n{show if dpoStatementNotRequired|readonly}\n[Stellungnahme DPO ist nicht erforderlich][dpoStatementNotRequired]\n[dpoStatementNotRequired]: switch\n\n\n{readonly|select}\n[Stellungnahme Ampel][dpoStatementRating]\n[dpoStatementRating]: Select \n  - \n  - GOOD <icon=\"fa fa-circle\" iconcolor=\"green\">: Empfehlung\n  - OK <icon=\"fa fa-circle\" iconcolor=\"yellow\">: Empfehlung mit Auflagen\n  - BAD <icon=\"fa fa-circle\" iconcolor=\"red\">: Keine Empfehlung\n  - NOT_APPLICABLE <icon=\"fa fa-circle\" iconcolor=\"blue\">: Neutral / Nicht bewertbar / Nicht bewertet \n\n{readonly|multiline auto-grow max=5000}\n[Stellungnahme DPO][dpoStatement]\n[dpoStatement]: text\n\n{readonly|multiline auto-grow max=5000}\n[Nachträgliche Ergänzung DPO][dpoAdditionalStatement]\n\n{readonly|multiline auto-grow max=5000}\n[Kommentar zur DPO Stellungnahme][commentOnDpoStatement]\n[commentOnDpoStatement]: text \n\n{readonly|multiline auto-grow max=500}\n[Vorschlag Auflagen][dpoProposalConditions]\n\n# Sitzungszuordnung / ITA Kommentare\n\n{readonly|multiline auto-grow max=500}\n[Kommentar IT-Ref][commentItReferee]\n\n{readonly|multiline auto-grow max=500}\n[Kommentar ITA-Vorsitz][commentItaChair]\n\n{readonly|multiline auto-grow max=500}\n[Kommentar ITA Sekretariat][commentItaOffice]\n\n{readonly|date type=\"year-month\"}\n[ITA Sitzungsmonat (ITA)][itaMeetingMonthByIta]\n[itaMeetingMonthByIta]: date (0-n)\n\n{readonly|switch appearance=\"toggle-text\"}\n[Papierentscheid][paperDecision]\n[paperDecision]: switch\n\n# Beschluss / Empfehlung / Klärungsauftrag\n\n{readonly|multiline auto-grow}\n[Beschlussvorschlag][proposalDecision]\n\n{readonly|show if piloting}\n[Pilotierung Enddatum][pilotingEndDate]\n[pilotingEndDate]: date\n\n{readonly|show if piloting|multiline auto-grow}\n[Pilotierung Kommentar][pilotingComment]\n\n{readonly|children delete-on-remove navigate new-commands=81a8087a-f250-4ee0-acba-dd64518b72b1,2811e9f3-0f97-4425-8b4e-fd96493048de,2a90d0b4-3d71-47b6-b30d-7d254d006ef1,f2e863bd-940e-4fa9-8528-6b606ef7ad43}\n[Beschluss/Empfehlung/Klärungsauftrag][decisions]\n[decisions]: /ee60c716-511c-4ef3-a6f6-2c5c8d5bde74 (0-n) <required>","description":"Phase 1 und 2","functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"6_Antrag_ITA-Mitglied","namedIcon":"","namedIconColor":"","tags":"","theme":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"3163b16b782f3ff6"},"id":"cc7efcd9-e932-455a-8a77-cb1338b057b7","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-10-13T12:12:57+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"98a077cd-4317-409d-9aa6-628648d6413e","text":"6_Antrag_ITA-Sekretariat","v":"78d874827b888b0b"},"p":"03d08db0-f873-48cd-a5b5-c34937bddc2f","previous":{"v":"b7cd0ac8b356813b"},"stamps":[],"t":1760357577901,"v":"72f2817d4d31dbc7"},{"id":"e2898c99-bb67-48a5-8ee9-6ee5dfbea0be","v":"30463d9c574e94bc","cloneOf":{"id":"652365db-adf2-49d8-b1b8-f4d826d3f270","v":"00d0c515e7dce072","text":"6_Antrag_DPO/DPA"},"originalCloneOf":{"id":"652365db-adf2-49d8-b1b8-f4d826d3f270","v":"00d0c515e7dce072","text":"6_Antrag_DPO/DPA"},"previous":{"v":"536068ccf67d93cb"},"p":"03d08db0-f873-48cd-a5b5-c34937bddc2f","f":{"id":"form","v":"3163b16b782f3ff6","text":"Form"},"data":{"name":"K_Antrag_DPO/DPA","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"{hidden|readonly}\n[syncTo][syncTo]\n[syncTo]: /ref\n\n[allDocumentDataValid]: switch\n[allEditableDocumentDataValid]: switch\n\n# Antrag\n\n{readonly}\n[Antragsnummer][applicationNumberTitle]\n\n// applicationNumber should be used in sorting\n{hidden|readonly}\n[Antragsnummer][applicationNumber]\n[applicationNumber]: number\n\n{readonly|datetime}\n[Zeitstempel Erstellung][creationTimestamp]\n[creationTimestamp]: date\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Ersteller][creator]\n[creator]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10\n\n{readonly|children design=\"itm:inventory-card\"}\n[Bestandseintrag][inventoryEntry]\n[inventoryEntry]: /dd51bf3c-69df-4bcd-a630-1a8e0f7dba2e\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Beratender BITM][consultingItco]\n[consultingItco]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n) <required>\n\n{readonly}\n[Antragstitel][applicationTitle]\n[applicationTitle]: text <required>\n\n{readonly|multiline auto-grow max=500}\n[Beschreibung][description]\n[description]: text <required>\n\n{readonly|select}\n[Aktionstyp][actionType]\n[actionType]: select <required help=layoutId> \"003ffe3b-61e1-4553-acb8-1d8e68874ce0\"\n  - ZERO: \"0\"\n  - ONE: 1\n  - TWO: 2\n  - THREE: 3\n  - FOUR: 4\n  - FIVE: 5\n  - INFORMATION: Information\n\n{readonly|switch appearance=\"toggle-text\"}\n[Mitarbeiterdatenbezug][employeeDataReference]\n[employeeDataReference]: switch\n\n{readonly|switch delete-fields-if-false=plannedPilotingDurationInMonths,pilotingEndDate,pilotingComment appearance=\"toggle-text\"}\n[Pilotierung][piloting]\n[piloting]: switch\n\n{readonly|show if piloting}\n[Geplante Dauer der Pilotierung (Angabe in Monaten)][plannedPilotingDurationInMonths]\n[plannedPilotingDurationInMonths]: number <required>\n\n{readonly}\n[Prozess][process]\n[process]: Select <required> \"Wird automatisch berechnet aus **Aktionstyp**, **Mitarbeiterdatenbezug** sowie **Kategorie nach GBV ITM** (letzteres im Bestandseintrag)\"\n  - \n  - NO_ACTIVITY: keine Aktivität im Rahmen der IT-Mitbestimmung\n  - INFORMATION: Informationsprozess\n  - SIMPLE: Vereinfachter Prozess\n  - DETAILED: Detaillierter Prozess\n  - SEPARATE: Gesonderter Prozess\n  - INAPPLICABLE: nicht anwendbar\n\n{readonly}\n[Prozess (angepasst)][processAdjusted]\n[processAdjusted]: Select\n  - \n  - NO_ACTIVITY: keine Aktivität im Rahmen der IT-Mitbestimmung\n  - INFORMATION: Informationsprozess\n  - SIMPLE: Vereinfachter Prozess\n  - DETAILED: Detaillierter Prozess\n  - SEPARATE: Gesonderter Prozess\n  - INAPPLICABLE: nicht anwendbar\n\n\n\n{readonly|switch appearance=\"toggle-text\"}\n[Standortentscheidung][locationDecision]\n[locationDecision]: switch \"Ja: SBR. Nein: ITA/GBR.\"\n\n{readonly|children delete-on-remove}\n[Antragsteller][applicant]\n[applicant]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true}\n[Bearbeiter][editor]\n[editor]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n)\n\n{readonly|switch delete-fields-if-false=applicantSupervisor,applicantSupervisorSignature appearance=\"toggle-text\"}\n[Antragsteller Befugnis (Ist der Antragsteller handlungsbevollmächtigt?)][applicantAuthorization]\n[applicantAuthorization]: switch\n\n{readonly|show if !applicantAuthorization|children delete-on-remove}\n[Antragsteller Vorgesetzter][applicantSupervisor]\n[applicantSupervisor]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{readonly|children delete-on-remove}\n[Gast / Präsentator][guestOrPresenter]\n[guestOrPresenter]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n)\n\n{readonly|date type=\"year-month\"}\n[ITA Sitzungsmonat (AG Wunsch)][itaMeetingMonthByEmployer]\n[itaMeetingMonthByEmployer]: date \n<required>\n\n{readonly|multiline auto-grow max=500}\n[Kommentar BITM][itcoComment]\n\n# Unterschriften\n\n{readonly|signature}\n[Unterschrift Antragsteller][applicantSignature]\n[applicantSignature]: file <required=\"applicantSignatureAttachments.length === 0\">\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlage Unterschrift Antragsteller][applicantSignatureAttachments]\n[applicantSignatureAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required=\"!applicantSignature.dataUrl\"> \"Als Alternative zu *Unterschrift Antragsteller* kann eine Datei angehängt werden\"\n\n{readonly|show if !applicantAuthorization|signature}\n[Unterschrift Antragsteller Vorgesetzter][applicantSupervisorSignature]\n[applicantSupervisorSignature]: file <required=\"applicantSupervisorSignatureAttachments.length === 0\">\n\n{show if !applicantAuthorization|readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlage Unterschrift Antragsteller Vorgesetzter][applicantSupervisorSignatureAttachments]\n[applicantSupervisorSignatureAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required=\"!applicantSupervisorSignature.dataUrl\"> \"Als Alternative zu *Unterschrift Antragsteller Vorgesetzter* kann eine Datei angehängt werden\"\n\n# Prüfkatalog\n\n{readonly|children delete-on-remove design=\"itm:questionnaire-card\"}\n[Fragebogen][questionnaire]\n[questionnaire]: /86879215-6d39-4a94-b5b4-77d022ca64db <required>\n\n# Präsentation / Anlagen\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Präsentation][presentation]\n[presentation]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required>\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlagen][attachments]\n[attachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{readonly|multiline auto-grow max=500}\n[Nachgereichte Informationen][subsequentlyAddedInformation]\n[subsequentlyAddedInformation]: text\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Nachgereichte Anlagen][subsequentlyAddedAttachments]\n[subsequentlyAddedAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{readonly|multiline auto-grow}\n[Weitere Mitteilung an den IT-Ausschuss][additionalMessageToIta]\n\n# Datenschutzstellungnahme\n\n{show if dpoStatementNotRequired|readonly}\n[Stellungnahme DPO ist nicht erforderlich][dpoStatementNotRequired]\n[dpoStatementNotRequired]: switch\n\n\n{readonly|select}\n[Stellungnahme Ampel][dpoStatementRating]\n[dpoStatementRating]: Select \n  - \n  - GOOD <icon=\"fa fa-circle\" iconcolor=\"green\">: Empfehlung\n  - OK <icon=\"fa fa-circle\" iconcolor=\"yellow\">: Empfehlung mit Auflagen\n  - BAD <icon=\"fa fa-circle\" iconcolor=\"red\">: Keine Empfehlung\n  - NOT_APPLICABLE <icon=\"fa fa-circle\" iconcolor=\"blue\">: Neutral / Nicht bewertbar / Nicht bewertet \n\n{readonly|multiline auto-grow max=5000}\n[Stellungnahme DPO][dpoStatement]\n[dpoStatement]: text\n\n{readonly|multiline auto-grow max=5000}\n[Nachträgliche Ergänzung DPO][dpoAdditionalStatement]\n\n{readonly|multiline auto-grow max=5000}\n[Kommentar zur DPO Stellungnahme][commentOnDpoStatement]\n[commentOnDpoStatement]: text \n{readonly|multiline auto-grow max=500}\n[Vorschlag Auflagen][dpoProposalConditions]\n\n# Beschluss / Empfehlung / Klärungsauftrag\n\n{readonly|show if piloting}\n[Pilotierung Enddatum][pilotingEndDate]\n[pilotingEndDate]: date\n\n{readonly|children delete-on-remove navigate new-commands=81a8087a-f250-4ee0-acba-dd64518b72b1,2811e9f3-0f97-4425-8b4e-fd96493048de}\n[Beschluss/Empfehlung/Klärungsauftrag][decisions]\n[decisions]: /030be2b6-fcad-4d3c-b44f-c40618e772c0 (0-n) <required>\n\n# Klärung\n\n{readonly|multiline auto-grow}\n[Klärung des Antragstellers][applicantClarification]\n[applicantClarification]: text <required>\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anhang Klärung des Antragstellers][applicantClarificationAttachment]\n[applicantClarificationAttachment]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)","functions":"","allowedChildrenForms":[],"commands":[],"description":"Phase 1 und 2","theme":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2023-05-25T13:15:22+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2025-05-26T11:23:09+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1748258589525,"ct":1685020522433,"a_depth":4,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"91f74438-399a-4397-a599-a5f386ea0ed8","v":"d442898eb9f94925","cloneOf":{"id":"51a7fc42-06e5-4100-836d-1ba43f6604e1","v":"e5214ccd63afc8d1","text":"2_Bestandseintrag_BITM"},"originalCloneOf":{"id":"51a7fc42-06e5-4100-836d-1ba43f6604e1","v":"e5214ccd63afc8d1","text":"2_Bestandseintrag_BITM"},"previous":{"v":"7c7ce28f84063e8c"},"p":"50c3c7c5-c3d4-460c-b34d-0d61a4cb09ae","f":{"id":"form","v":"3163b16b782f3ff6","text":"Form"},"data":{"name":"2_Bestandseintrag_Antragsteller/Bearbeiter","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"{hidden|readonly}\n[syncTo][syncTo]\n[syncTo]: /ref\n\n[allDocumentDataValid]: Switch\n\n{hidden}\n[Name][name]\n[name]: = functions.name(systemName, inventoryNumberTitle)\n\n{readonly}\n[Bestandslistennummer][inventoryNumberTitle]\n\n// inventoryNumber should be used in sorting\n{hidden|readonly}\n[Bestandslistennummer][inventoryNumber]\n[inventoryNumber]: number\n\n{readonly}\n[Systemname (des Herstellers)][systemName]\n[systemName]: text <required>\n\n[Interner Name][internalName]\n\n{readonly|ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df creation-location-form=b40fd5c3-1bc2-42b4-a269-f3cb2e9cf477 hide-path}\n[Hersteller][manufacturer]\n[manufacturer]: /e0978a3d-9761-4849-8a44-d22d8a175f87 (0-n) <required>\n\n{readonly|multiline auto-grow=true max=500}\n[Kurzbeschreibung (Zweck)][description]\n[description]: text <required>\n\n{readonly|multiline auto-grow=true max=500}\n[Modulname(n)][moduleNames]\n\n[Softwareversion][softwareVersion]\n[softwareVersion]: text <required>\n\n{readonly}\n[Kategorie nach GBV ITM][category]\n[category]: Select <required help=layoutId> \"64fda001-597c-4bd2-a2e9-c988f45e43fb\"\n  - ZERO: Kat 0\n  - ONE: Kat 1\n  - TWO: Kat 2\n  - THREE: Kat 3\n\n{readonly|ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Standorte][locations]\n[locations]: /af8aa2f7-1c0b-404d-b6c8-06e5be0ffd38 (0-n) <required>\n\n{readonly|ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Geltungsbereich][scope]\n[scope]: /21a59b67-da7b-4d24-ab4c-001362e46246 (0-n) <required>\n\n{readonly|children delete-on-remove}\n[Prozesseigner][processOwners]\n[processOwners]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{readonly|children delete-on-remove}\n[Prozesseigner Vorgesetzte][processSupervisors]\n[processSupervisors]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{readonly|children delete-on-remove}\n[Systemeigner][systemOwner]\n[systemOwner]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{readonly|multiline auto-grow}\n[Daten-/Dokumenteneignerschaft][dataDocumentOwnership]\n\n\n\n\n{readonly|now control=datetime}\n[Zeitstempel Erstellung][creationTimestamp]\n[creationTimestamp]: date\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Ersteller][creator]\n[creator]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10\n","functions":"name(nameOfSystem, identifier) {\n  if (identifier) {\n    return `[${identifier}]: ${nameOfSystem}`\n  }\n\n  return nameOfSystem\n}","allowedChildrenForms":[],"commands":[{"id":"76be4f8d-a0ef-40e7-a7eb-552e48cbc3a7","v":"initial","text":"Neu"},{"id":"29679280-6be9-449e-9d8c-8e179950588b","v":"initial","text":"rd:Neu"}],"description":"","theme":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2023-04-28T10:20:18+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2025-05-20T14:36:58+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1747751818284,"ct":1682677218727,"a_depth":4,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","50c3c7c5-c3d4-460c-b34d-0d61a4cb09ae"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"cd3a1d65-8fe9-45f2-9b8e-1146b3926be5","v":"d4acfcf373503b66","cloneOf":{"id":"0b71e123-3a9b-4cba-b6fd-0d92e77067d2","v":"fab4855df51661cb","text":"3_Antrag_BITM"},"originalCloneOf":{"id":"0b71e123-3a9b-4cba-b6fd-0d92e77067d2","v":"fab4855df51661cb","text":"3_Antrag_BITM"},"previous":{"v":"9484668b1de0bd73"},"p":"03d08db0-f873-48cd-a5b5-c34937bddc2f","f":{"id":"form","v":"3163b16b782f3ff6","text":"Form"},"data":{"name":"3_Antrag_DPO","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"{hidden|readonly}\n[syncTo][syncTo]\n[syncTo]: /ref\n\n[allDocumentDataValid]: switch\n[allEditableDocumentDataValid]: switch\n\n# Antrag\n\n{readonly}\n[Antragsnummer][applicationNumberTitle]\n\n// applicationNumber should be used in sorting\n{hidden|readonly}\n[Antragsnummer][applicationNumber]\n[applicationNumber]: number\n\n{readonly|datetime}\n[Zeitstempel Erstellung][creationTimestamp]\n[creationTimestamp]: date\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Ersteller][creator]\n[creator]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10\n\n{readonly|children design=\"itm:inventory-card\"}\n[Bestandseintrag][inventoryEntry]\n[inventoryEntry]: /0572195f-176d-40d5-920a-f5b5505e2ef6\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Beratender BITM][consultingItco]\n[consultingItco]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n) <required>\n\n{readonly}\n[Antragstitel][applicationTitle]\n[applicationTitle]: text <required>\n\n{readonly|multiline auto-grow max=500}\n[Beschreibung][description]\n[description]: text <required>\n\n{readonly|select}\n[Aktionstyp][actionType]\n[actionType]: select <required help=layoutId> \"003ffe3b-61e1-4553-acb8-1d8e68874ce0\"\n  - ZERO: \"0\"\n  - ONE: 1\n  - TWO: 2\n  - THREE: 3\n  - FOUR: 4\n  - FIVE: 5\n  - INFORMATION: Information\n\n{readonly|switch appearance=\"toggle-text\"}\n[Mitarbeiterdatenbezug][employeeDataReference]\n[employeeDataReference]: switch\n\n{readonly|switch delete-fields-if-false=plannedPilotingDurationInMonths,pilotingEndDate,pilotingComment appearance=\"toggle-text\"}\n[Pilotierung][piloting]\n[piloting]: switch\n\n{readonly|show if piloting}\n[Geplante Dauer der Pilotierung (Angabe in Monaten)][plannedPilotingDurationInMonths]\n[plannedPilotingDurationInMonths]: number <required>\n\n{readonly}\n[Prozess][process]\n[process]: Select <required> \"Wird automatisch berechnet aus **Aktionstyp**, **Mitarbeiterdatenbezug** sowie **Kategorie nach GBV ITM** (letzteres im Bestandseintrag)\"\n  - \n  - NO_ACTIVITY: keine Aktivität im Rahmen der IT-Mitbestimmung\n  - INFORMATION: Informationsprozess\n  - SIMPLE: Vereinfachter Prozess\n  - DETAILED: Detaillierter Prozess\n  - SEPARATE: Gesonderter Prozess\n  - INAPPLICABLE: nicht anwendbar\n\n\n{readonly|switch appearance=\"toggle-text\"}\n[Standortentscheidung][locationDecision]\n[locationDecision]: switch \"Ja: SBR. Nein: ITA/GBR.\"\n\n{readonly|children delete-on-remove}\n[Antragsteller][applicant]\n[applicant]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true}\n[Bearbeiter][editor]\n[editor]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n)\n\n{readonly|switch delete-fields-if-false=applicantSupervisor,applicantSupervisorSignature appearance=\"toggle-text\"}\n[Antragsteller Befugnis (Ist der Antragsteller handlungsbevollmächtigt?)][applicantAuthorization]\n[applicantAuthorization]: switch\n\n{readonly|show if !applicantAuthorization|children delete-on-remove}\n[Antragsteller Vorgesetzter][applicantSupervisor]\n[applicantSupervisor]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{readonly|children delete-on-remove}\n[Gast / Präsentator][guestOrPresenter]\n[guestOrPresenter]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n)\n\n{readonly|date type=\"year-month\"}\n[ITA Sitzungsmonat (AG Wunsch)][itaMeetingMonthByEmployer]\n[itaMeetingMonthByEmployer]: date <required>\n\n{readonly|multiline auto-grow max=500}\n[Kommentar BITM][itcoComment]\n\n# Unterschriften\n\n{readonly|signature}\n[Unterschrift Antragsteller][applicantSignature]\n[applicantSignature]: file <required=\"applicantSignatureAttachments.length === 0\">\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlage Unterschrift Antragsteller][applicantSignatureAttachments]\n[applicantSignatureAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required=\"!applicantSignature.dataUrl\"> \"Als Alternative zu *Unterschrift Antragsteller* kann eine Datei angehängt werden\"\n\n{readonly|show if !applicantAuthorization|signature}\n[Unterschrift Antragsteller Vorgesetzter][applicantSupervisorSignature]\n[applicantSupervisorSignature]: file <required=\"applicantSupervisorSignatureAttachments.length === 0\">\n\n{show if !applicantAuthorization|readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlage Unterschrift Antragsteller Vorgesetzter][applicantSupervisorSignatureAttachments]\n[applicantSupervisorSignatureAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required=\"!applicantSupervisorSignature.dataUrl\"> \"Als Alternative zu *Unterschrift Antragsteller Vorgesetzter* kann eine Datei angehängt werden\"\n\n# Prüfkatalog\n\n{readonly|children delete-on-remove design=\"itm:questionnaire-card\"}\n[Fragebogen][questionnaire]\n[questionnaire]: /86879215-6d39-4a94-b5b4-77d022ca64db <required>\n\n# Präsentation / Anlagen\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Präsentation][presentation]\n[presentation]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required>\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlagen][attachments]\n[attachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{readonly|multiline auto-grow max=500}\n[Nachgereichte Informationen][subsequentlyAddedInformation]\n[subsequentlyAddedInformation]: text\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Nachgereichte Anlagen][subsequentlyAddedAttachments]\n[subsequentlyAddedAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{readonly|multiline auto-grow}\n[Weitere Mitteilung an den IT-Ausschuss][additionalMessageToIta]\n\n\n# Datenschutzstellungnahme\n\n{readonly|multiline auto-grow max=5000}\n[Stellungnahme DPA][dpaStatement]\n\n\n{show if dpoStatementNotRequired|readonly}\n[Stellungnahme DPO ist nicht erforderlich][dpoStatementNotRequired]\n[dpoStatementNotRequired]: switch\n\n{select}\n[Stellungnahme Ampel][dpoStatementRating]\n[dpoStatementRating]: Select \n  - \n  - GOOD <icon=\"fa fa-circle\" iconcolor=\"green\">: Empfehlung\n  - OK <icon=\"fa fa-circle\" iconcolor=\"yellow\">: Empfehlung mit Auflagen\n  - BAD <icon=\"fa fa-circle\" iconcolor=\"red\">: Keine Empfehlung\n  - NOT_APPLICABLE <icon=\"fa fa-circle\" iconcolor=\"blue\">: Neutral / Nicht bewertbar / Nicht bewertet \n\n\n{multiline auto-grow max=5000}\n[Stellungnahme DPO][dpoStatement]\n[dpoStatement]: text \n\n{readonly|multiline auto-grow max=5000}\n[Kommentar zur DPO Stellungnahme][commentOnDpoStatement]\n[commentOnDpoStatement]: text \n\n{multiline auto-grow max=500}\n[Vorschlag Auflagen][dpoProposalConditions]","functions":"","allowedChildrenForms":[],"commands":[],"description":"Phase 1 und 2","theme":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2023-05-23T14:58:41+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2025-05-22T13:49:28+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1747921768932,"ct":1684853921184,"a_depth":4,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"58a5a63d-794a-4233-b294-f8e731a9251e","text":"4_Antrag_DPO","v":"22d22000108715e2"},"created":{"at":"2023-05-25T08:25:31+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1685003131779,"data":{"allowedChildrenForms":[],"commands":[],"definition":"{hidden|readonly}\n[syncTo][syncTo]\n[syncTo]: /ref\n\n[allDocumentDataValid]: switch\n[allEditableDocumentDataValid]: switch\n\n# Antrag\n\n{readonly}\n[Antragsnummer][applicationNumberTitle]\n\n// applicationNumber should be used in sorting\n{hidden|readonly}\n[Antragsnummer][applicationNumber]\n[applicationNumber]: number\n\n{readonly|datetime}\n[Zeitstempel Erstellung][creationTimestamp]\n[creationTimestamp]: date\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Ersteller][creator]\n[creator]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10\n\n{readonly|children design=\"itm:inventory-card\"}\n[Bestandseintrag][inventoryEntry]\n[inventoryEntry]: /dd51bf3c-69df-4bcd-a630-1a8e0f7dba2e\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Beratender BITM][consultingItco]\n[consultingItco]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n) <required>\n\n{readonly}\n[Antragstitel][applicationTitle]\n[applicationTitle]: text <required>\n\n{readonly|multiline auto-grow max=500}\n[Beschreibung][description]\n[description]: text <required>\n\n{readonly|select}\n[Aktionstyp][actionType]\n[actionType]: select <required help=layoutId> \"003ffe3b-61e1-4553-acb8-1d8e68874ce0\"\n  - ZERO: \"0\"\n  - ONE: 1\n  - TWO: 2\n  - THREE: 3\n  - FOUR: 4\n  - FIVE: 5\n  - INFORMATION: Information\n\n{readonly|switch appearance=\"toggle-text\"}\n[Mitarbeiterdatenbezug][employeeDataReference]\n[employeeDataReference]: switch\n\n{readonly|switch delete-fields-if-false=plannedPilotingDurationInMonths,pilotingEndDate,pilotingComment appearance=\"toggle-text\"}\n[Pilotierung][piloting]\n[piloting]: switch\n\n{readonly|show if piloting}\n[Geplante Dauer der Pilotierung (Angabe in Monaten)][plannedPilotingDurationInMonths]\n[plannedPilotingDurationInMonths]: number <required>\n\n{readonly}\n[Prozess][process]\n[process]: Select <required> \"Wird automatisch berechnet aus **Aktionstyp**, **Mitarbeiterdatenbezug** sowie **Kategorie nach GBV ITM** (letzteres im Bestandseintrag)\"\n  - \n  - NO_ACTIVITY: keine Aktivität im Rahmen der IT-Mitbestimmung\n  - INFORMATION: Informationsprozess\n  - SIMPLE: Vereinfachter Prozess\n  - DETAILED: Detaillierter Prozess\n  - SEPARATE: Gesonderter Prozess\n  - INAPPLICABLE: nicht anwendbar\n\n{readonly}\n[Prozess (angepasst)][processAdjusted]\n[processAdjusted]: Select\n  - \n  - NO_ACTIVITY: keine Aktivität im Rahmen der IT-Mitbestimmung\n  - INFORMATION: Informationsprozess\n  - SIMPLE: Vereinfachter Prozess\n  - DETAILED: Detaillierter Prozess\n  - SEPARATE: Gesonderter Prozess\n  - INAPPLICABLE: nicht anwendbar\n\n\n\n{readonly|switch appearance=\"toggle-text\"}\n[Standortentscheidung][locationDecision]\n[locationDecision]: switch \"Ja: SBR. Nein: ITA/GBR.\"\n\n{readonly|children delete-on-remove}\n[Antragsteller][applicant]\n[applicant]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true}\n[Bearbeiter][editor]\n[editor]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n)\n\n{readonly|switch delete-fields-if-false=applicantSupervisor,applicantSupervisorSignature appearance=\"toggle-text\"}\n[Antragsteller Befugnis (Ist der Antragsteller handlungsbevollmächtigt?)][applicantAuthorization]\n[applicantAuthorization]: switch\n\n{readonly|show if !applicantAuthorization|children delete-on-remove}\n[Antragsteller Vorgesetzter][applicantSupervisor]\n[applicantSupervisor]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{readonly|children delete-on-remove}\n[Gast / Präsentator][guestOrPresenter]\n[guestOrPresenter]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n)\n\n{readonly|date type=\"year-month\"}\n[ITA Sitzungsmonat (AG Wunsch)][itaMeetingMonthByEmployer]\n[itaMeetingMonthByEmployer]: date \n<required>\n\n{readonly|multiline auto-grow max=500}\n[Kommentar BITM][itcoComment]\n\n# Unterschriften\n\n{readonly|signature}\n[Unterschrift Antragsteller][applicantSignature]\n[applicantSignature]: file <required=\"applicantSignatureAttachments.length === 0\">\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlage Unterschrift Antragsteller][applicantSignatureAttachments]\n[applicantSignatureAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required=\"!applicantSignature.dataUrl\"> \"Als Alternative zu *Unterschrift Antragsteller* kann eine Datei angehängt werden\"\n\n{readonly|show if !applicantAuthorization|signature}\n[Unterschrift Antragsteller Vorgesetzter][applicantSupervisorSignature]\n[applicantSupervisorSignature]: file <required=\"applicantSupervisorSignatureAttachments.length === 0\">\n\n{show if !applicantAuthorization|readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlage Unterschrift Antragsteller Vorgesetzter][applicantSupervisorSignatureAttachments]\n[applicantSupervisorSignatureAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required=\"!applicantSupervisorSignature.dataUrl\"> \"Als Alternative zu *Unterschrift Antragsteller Vorgesetzter* kann eine Datei angehängt werden\"\n\n# Prüfkatalog\n\n{readonly|children delete-on-remove design=\"itm:questionnaire-card\"}\n[Fragebogen][questionnaire]\n[questionnaire]: /86879215-6d39-4a94-b5b4-77d022ca64db <required>\n\n# Präsentation / Anlagen\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Präsentation][presentation]\n[presentation]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required>\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlagen][attachments]\n[attachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{readonly|multiline auto-grow max=500}\n[Nachgereichte Informationen][subsequentlyAddedInformation]\n[subsequentlyAddedInformation]: text\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Nachgereichte Anlagen][subsequentlyAddedAttachments]\n[subsequentlyAddedAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{readonly|multiline auto-grow}\n[Weitere Mitteilung an den IT-Ausschuss][additionalMessageToIta]\n\n# Datenschutzstellungnahme\n\n{readonly|multiline auto-grow max=5000}\n[Stellungnahme DPA][dpaStatement]\n\n{show if dpoStatementNotRequired|readonly}\n[Stellungnahme DPO ist nicht erforderlich][dpoStatementNotRequired]\n[dpoStatementNotRequired]: switch\n\n\n{select}\n[Stellungnahme Ampel][dpoStatementRating]\n[dpoStatementRating]: Select \n  - \n  - GOOD <icon=\"fa fa-circle\" iconcolor=\"green\">: Empfehlung\n  - OK <icon=\"fa fa-circle\" iconcolor=\"yellow\">: Empfehlung mit Auflagen\n  - BAD <icon=\"fa fa-circle\" iconcolor=\"red\">: Keine Empfehlung\n  - NOT_APPLICABLE <icon=\"fa fa-circle\" iconcolor=\"blue\">: Neutral / Nicht bewertbar / Nicht bewertet \n\n{readonly|multiline auto-grow max=5000}\n[Stellungnahme DPO][dpoStatement]\n[dpoStatement]: text\n\n{multiline auto-grow max=5000}\n[Nachträgliche Ergänzung DPO][dpoAdditionalStatement]\n\n{readonly|multiline auto-grow max=5000}\n[Kommentar zur DPO Stellungnahme][commentOnDpoStatement]\n[commentOnDpoStatement]: text \n\n{multiline auto-grow max=500}\n[Vorschlag Auflagen][dpoProposalConditions]","description":"Phase 1 und 2","functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"5_Antrag_DPO","namedIcon":"","namedIconColor":"","tags":"","theme":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"3163b16b782f3ff6"},"id":"2c5ec2e2-a72a-43ac-9a30-d5ebacb26c10","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-10-13T12:07:18+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"58a5a63d-794a-4233-b294-f8e731a9251e","text":"4_Antrag_DPO","v":"22d22000108715e2"},"p":"03d08db0-f873-48cd-a5b5-c34937bddc2f","previous":{"v":"ce427d5015d1d877"},"stamps":[],"t":1760357238525,"v":"792f9e1c9579dccb"},{"id":"565b1bc2-c2fd-4f1b-8095-b434a5d79e38","v":"a26e46c4659a7b1c","cloneOf":{"id":"7343f86d-bfd2-4768-a26a-d4229c603418","text":"1_Antrag_BITM","v":"8e38344e8cd9176c"},"originalCloneOf":{"id":"7343f86d-bfd2-4768-a26a-d4229c603418","text":"1_Antrag_BITM","v":"8e38344e8cd9176c"},"previous":{"v":"db5acf52f3894709"},"p":"03d08db0-f873-48cd-a5b5-c34937bddc2f","f":{"id":"form","v":"3163b16b782f3ff6","text":"Form"},"data":{"name":"1_Antrag_Admin","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"{hidden|readonly}\n[syncTo][syncTo]\n[syncTo]: /ref\n\n[allDocumentDataValid]: switch\n[allEditableDocumentDataValid]: switch\n\n# Antrag\n\n{readonly}\n[Antragsnummer][applicationNumberTitle]\n\n// applicationNumber should be used in sorting\n{hidden|readonly}\n[Antragsnummer][applicationNumber]\n[applicationNumber]: number\n\n{readonly|datetime}\n[Zeitstempel Erstellung][creationTimestamp]\n[creationTimestamp]: date\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Ersteller][creator]\n[creator]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10\n\n{children disable-remove no-add design=\"itm:inventory-card\"}\n[Bestandseintrag][inventoryEntry]\n[inventoryEntry]: /11452ef0-a6c2-49e9-845e-73133019ba59\n\n{employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Beratender BITM][consultingItco]\n[consultingItco]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n) <required>\n\n[Antragstitel][applicationTitle]\n[applicationTitle]: text <required>\n\n{multiline auto-grow max=500}\n[Beschreibung][description]\n[description]: text <required>\n\n{select}\n[Aktionstyp][actionType]\n[actionType]: select <required help=layoutId> \"003ffe3b-61e1-4553-acb8-1d8e68874ce0\"\n  - ZERO: \"0\"\n  - ONE: 1\n  - TWO: 2\n  - THREE: 3\n  - FOUR: 4\n  - FIVE: 5\n  - INFORMATION: Information\n\n{switch appearance=\"toggle-text\"}\n[Mitarbeiterdatenbezug][employeeDataReference]\n[employeeDataReference]: switch\n\n{switch delete-fields-if-false=plannedPilotingDurationInMonths,pilotingEndDate,pilotingComment appearance=\"toggle-text\"}\n[Pilotierung][piloting]\n[piloting]: switch\n\n{show if piloting}\n[Geplante Dauer der Pilotierung (Angabe in Monaten)][plannedPilotingDurationInMonths]\n[plannedPilotingDurationInMonths]: number <required>\n\n{readonly}\n[Prozess][process]\n[process]: Select <required> \"Wird automatisch berechnet aus **Aktionstyp**, **Mitarbeiterdatenbezug** sowie **Kategorie nach GBV ITM** (letzteres im Bestandseintrag)\"\n  - \n  - NO_ACTIVITY: keine Aktivität im Rahmen der IT-Mitbestimmung\n  - INFORMATION: Informationsprozess\n  - SIMPLE: Vereinfachter Prozess\n  - DETAILED: Detaillierter Prozess\n  - SEPARATE: Gesonderter Prozess\n  - INAPPLICABLE: nicht anwendbar\n\n\n{switch appearance=\"toggle-text\"}\n[Standortentscheidung][locationDecision]\n[locationDecision]: switch \"Ja: SBR. Nein: ITA/GBR.\"\n\n{children delete-on-remove}\n[Antragsteller][applicant]\n[applicant]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true}\n[Bearbeiter][editor]\n[editor]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n)\n\n{switch delete-fields-if-false=applicantSupervisor,applicantSupervisorSignature appearance=\"toggle-text\"}\n[Antragsteller Befugnis (Ist der Antragsteller handlungsbevollmächtigt?)][applicantAuthorization]\n[applicantAuthorization]: switch\n\n{show if !applicantAuthorization|children delete-on-remove}\n[Antragsteller Vorgesetzter][applicantSupervisor]\n[applicantSupervisor]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{children delete-on-remove}\n[Gast / Präsentator][guestOrPresenter]\n[guestOrPresenter]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n)\n\n{date type=\"year-month\"}\n[ITA Sitzungsmonat (AG Wunsch)][itaMeetingMonthByEmployer]\n[itaMeetingMonthByEmployer]: date <required>\n\n{multiline auto-grow max=500}\n[Kommentar BITM][itcoComment]\n","functions":"","allowedChildrenForms":[],"commands":[],"description":"Wie 1_Antrag_BITM","theme":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2024-11-27T09:47:00+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"modified":{"at":"2025-07-17T11:42:35+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1752752555104,"ct":1732700820622,"a_depth":4,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"58a5a63d-794a-4233-b294-f8e731a9251e","text":"4_Antrag_DPO","v":"4e0aca76244e111d"},"created":{"at":"2025-10-13T11:58:00+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1760356680273,"data":{"allowedChildrenForms":[],"commands":[],"definition":"{hidden|readonly}\n[syncTo][syncTo]\n[syncTo]: /ref\n\n[allDocumentDataValid]: switch\n[allEditableDocumentDataValid]: switch\n\n# Antrag\n\n{readonly}\n[Antragsnummer][applicationNumberTitle]\n\n// applicationNumber should be used in sorting\n{hidden|readonly}\n[Antragsnummer][applicationNumber]\n[applicationNumber]: number\n\n{readonly|datetime}\n[Zeitstempel Erstellung][creationTimestamp]\n[creationTimestamp]: date\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Ersteller][creator]\n[creator]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10\n\n{readonly|children design=\"itm:inventory-card\"}\n[Bestandseintrag][inventoryEntry]\n[inventoryEntry]: /dd51bf3c-69df-4bcd-a630-1a8e0f7dba2e\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Beratender BITM][consultingItco]\n[consultingItco]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n) <required>\n\n{readonly}\n[Antragstitel][applicationTitle]\n[applicationTitle]: text <required>\n\n{readonly|multiline auto-grow max=500}\n[Beschreibung][description]\n[description]: text <required>\n\n{readonly|select}\n[Aktionstyp][actionType]\n[actionType]: select <required help=layoutId> \"003ffe3b-61e1-4553-acb8-1d8e68874ce0\"\n  - ZERO: \"0\"\n  - ONE: 1\n  - TWO: 2\n  - THREE: 3\n  - FOUR: 4\n  - FIVE: 5\n  - INFORMATION: Information\n\n{readonly|switch appearance=\"toggle-text\"}\n[Mitarbeiterdatenbezug][employeeDataReference]\n[employeeDataReference]: switch\n\n{readonly|switch delete-fields-if-false=plannedPilotingDurationInMonths,pilotingEndDate,pilotingComment appearance=\"toggle-text\"}\n[Pilotierung][piloting]\n[piloting]: switch\n\n{readonly|show if piloting}\n[Geplante Dauer der Pilotierung (Angabe in Monaten)][plannedPilotingDurationInMonths]\n[plannedPilotingDurationInMonths]: number <required>\n\n{readonly}\n[Prozess][process]\n[process]: Select <required> \"Wird automatisch berechnet aus **Aktionstyp**, **Mitarbeiterdatenbezug** sowie **Kategorie nach GBV ITM** (letzteres im Bestandseintrag)\"\n  - \n  - NO_ACTIVITY: keine Aktivität im Rahmen der IT-Mitbestimmung\n  - INFORMATION: Informationsprozess\n  - SIMPLE: Vereinfachter Prozess\n  - DETAILED: Detaillierter Prozess\n  - SEPARATE: Gesonderter Prozess\n  - INAPPLICABLE: nicht anwendbar\n\n{readonly}\n[Prozess (angepasst)][processAdjusted]\n[processAdjusted]: Select\n  - \n  - NO_ACTIVITY: keine Aktivität im Rahmen der IT-Mitbestimmung\n  - INFORMATION: Informationsprozess\n  - SIMPLE: Vereinfachter Prozess\n  - DETAILED: Detaillierter Prozess\n  - SEPARATE: Gesonderter Prozess\n  - INAPPLICABLE: nicht anwendbar\n\n\n\n{readonly|switch appearance=\"toggle-text\"}\n[Standortentscheidung][locationDecision]\n[locationDecision]: switch \"Ja: SBR. Nein: ITA/GBR.\"\n\n{readonly|children delete-on-remove}\n[Antragsteller][applicant]\n[applicant]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true}\n[Bearbeiter][editor]\n[editor]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n)\n\n{readonly|switch delete-fields-if-false=applicantSupervisor,applicantSupervisorSignature appearance=\"toggle-text\"}\n[Antragsteller Befugnis (Ist der Antragsteller handlungsbevollmächtigt?)][applicantAuthorization]\n[applicantAuthorization]: switch\n\n{readonly|show if !applicantAuthorization|children delete-on-remove}\n[Antragsteller Vorgesetzter][applicantSupervisor]\n[applicantSupervisor]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{readonly|children delete-on-remove}\n[Gast / Präsentator][guestOrPresenter]\n[guestOrPresenter]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n)\n\n{readonly|date type=\"year-month\"}\n[ITA Sitzungsmonat (AG Wunsch)][itaMeetingMonthByEmployer]\n[itaMeetingMonthByEmployer]: date <required>\n\n{readonly|multiline auto-grow max=500}\n[Kommentar BITM][itcoComment]\n\n# Unterschriften\n\n{readonly|signature}\n[Unterschrift Antragsteller][applicantSignature]\n[applicantSignature]: file <required=\"applicantSignatureAttachments.length === 0\">\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlage Unterschrift Antragsteller][applicantSignatureAttachments]\n[applicantSignatureAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required=\"!applicantSignature.dataUrl\"> \"Als Alternative zu *Unterschrift Antragsteller* kann eine Datei angehängt werden\"\n\n{readonly|show if !applicantAuthorization|signature}\n[Unterschrift Antragsteller Vorgesetzter][applicantSupervisorSignature]\n[applicantSupervisorSignature]: file <required=\"applicantSupervisorSignatureAttachments.length === 0\">\n\n{show if !applicantAuthorization|readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlage Unterschrift Antragsteller Vorgesetzter][applicantSupervisorSignatureAttachments]\n[applicantSupervisorSignatureAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required=\"!applicantSupervisorSignature.dataUrl\"> \"Als Alternative zu *Unterschrift Antragsteller Vorgesetzter* kann eine Datei angehängt werden\"\n\n# Prüfkatalog\n\n{readonly|children delete-on-remove design=\"itm:questionnaire-card\"}\n[Fragebogen][questionnaire]\n[questionnaire]: /86879215-6d39-4a94-b5b4-77d022ca64db <required>\n\n# Präsentation / Anlagen\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Präsentation][presentation]\n[presentation]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required>\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlagen][attachments]\n[attachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{readonly|multiline auto-grow max=500}\n[Nachgereichte Informationen][subsequentlyAddedInformation]\n[subsequentlyAddedInformation]: text\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Nachgereichte Anlagen][subsequentlyAddedAttachments]\n[subsequentlyAddedAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{readonly|multiline auto-grow}\n[Weitere Mitteilung an den IT-Ausschuss][additionalMessageToIta]\n\n# Datenschutzstellungnahme\n\n{multiline auto-grow max=5000}\n[Stellungnahme DPA][dpaStatement]\n\n{show if dpoStatementNotRequired|readonly}\n[Stellungnahme DPO ist nicht erforderlich][dpoStatementNotRequired]\n[dpoStatementNotRequired]: switch\n\n{readonly|select}\n[Stellungnahme Ampel][dpoStatementRating]\n[dpoStatementRating]: Select \n  - \n  - GOOD <icon=\"fa fa-circle\" iconcolor=\"green\">: Empfehlung\n  - OK <icon=\"fa fa-circle\" iconcolor=\"yellow\">: Empfehlung mit Auflagen\n  - BAD <icon=\"fa fa-circle\" iconcolor=\"red\">: Keine Empfehlung\n  - NOT_APPLICABLE <icon=\"fa fa-circle\" iconcolor=\"blue\">: Neutral / Nicht bewertbar / Nicht bewertet \n\n{readonly|multiline auto-grow max=5000}\n[Stellungnahme DPO][dpoStatement]\n[dpoStatement]: text\n\n{readonly|multiline auto-grow max=5000}\n[Kommentar zur DPO Stellungnahme][commentOnDpoStatement]\n[commentOnDpoStatement]: text \n\n{readonly|multiline auto-grow max=5000}\n[Nachträgliche Ergänzung DPO][dpoAdditionalStatement]\n\n{readonly|multiline auto-grow max=500}\n[Vorschlag Auflagen][dpoProposalConditions]","description":"Phase 1 und 2","functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"4_Antrag_DPA","namedIcon":"","namedIconColor":"","tags":"","theme":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"3163b16b782f3ff6"},"id":"2447cc27-9da7-43e1-a459-76210a050354","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-10-13T11:59:02+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"58a5a63d-794a-4233-b294-f8e731a9251e","text":"4_Antrag_DPO","v":"4e0aca76244e111d"},"p":"03d08db0-f873-48cd-a5b5-c34937bddc2f","previous":{"v":"7b35f4d5a28b9683"},"stamps":[],"t":1760356742895,"v":"2781e6c515bde151"},{"id":"b96c95e6-bda3-4599-abfd-95186e405d37","v":"2dfc338fba56626e","cloneOf":{"id":"e5da9f31-b1bc-4562-ba5d-b165c1d017b4","v":"03345bb555ac0cc1","text":"2_Antrag_AntragstellerVorgesetzter"},"originalCloneOf":{"id":"e5da9f31-b1bc-4562-ba5d-b165c1d017b4","v":"03345bb555ac0cc1","text":"2_Antrag_AntragstellerVorgesetzter"},"previous":{"v":"2abd8641ab6442b7"},"p":"03d08db0-f873-48cd-a5b5-c34937bddc2f","f":{"id":"form","v":"3163b16b782f3ff6","text":"Form"},"data":{"name":"3_Antrag_AntragstellerVorgesetzter","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"{hidden|readonly}\n[syncTo][syncTo]\n[syncTo]: /ref\n\n[allDocumentDataValid]: switch\n[allEditableDocumentDataValid]: switch\n\n# Antrag\n\n{readonly}\n[Antragsnummer][applicationNumberTitle]\n\n// applicationNumber should be used in sorting\n{hidden|readonly}\n[Antragsnummer][applicationNumber]\n[applicationNumber]: number\n\n{readonly|datetime}\n[Zeitstempel Erstellung][creationTimestamp]\n[creationTimestamp]: date\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Ersteller][creator]\n[creator]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10\n\n{readonly|children design=\"itm:inventory-card\"}\n[Bestandseintrag][inventoryEntry]\n[inventoryEntry]: /0572195f-176d-40d5-920a-f5b5505e2ef6\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Beratender BITM][consultingItco]\n[consultingItco]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n) <required>\n\n{readonly}\n[Antragstitel][applicationTitle]\n[applicationTitle]: text <required>\n\n{readonly|multiline auto-grow max=500}\n[Beschreibung][description]\n[description]: text <required>\n\n# Unterschriften Vorgesetzter\n\n{show if !applicantAuthorization|signature}\n[Unterschrift Antragsteller Vorgesetzter][applicantSupervisorSignature]\n[applicantSupervisorSignature]: file <required=\"applicantSupervisorSignatureAttachments.length === 0\">\n\n{show if !applicantAuthorization|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlage Unterschrift Antragsteller Vorgesetzter][applicantSupervisorSignatureAttachments]\n[applicantSupervisorSignatureAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required=\"!applicantSupervisorSignature.dataUrl\"> \"Als Alternative zu *Unterschrift Antragsteller Vorgesetzter* kann eine Datei angehängt werden\"\n\n# Antrag\n\n{readonly|select}\n[Aktionstyp][actionType]\n[actionType]: select <required help=layoutId> \"003ffe3b-61e1-4553-acb8-1d8e68874ce0\"\n  - ZERO: \"0\"\n  - ONE: 1\n  - TWO: 2\n  - THREE: 3\n  - FOUR: 4\n  - FIVE: 5\n  - INFORMATION: Information\n\n{readonly|switch appearance=\"toggle-text\"}\n[Mitarbeiterdatenbezug][employeeDataReference]\n[employeeDataReference]: switch\n\n{readonly|switch delete-fields-if-false=plannedPilotingDurationInMonths,pilotingEndDate,pilotingComment appearance=\"toggle-text\"}\n[Pilotierung][piloting]\n[piloting]: switch\n\n{readonly|show if piloting}\n[Geplante Dauer der Pilotierung (Angabe in Monaten)][plannedPilotingDurationInMonths]\n[plannedPilotingDurationInMonths]: number <required>\n\n{readonly}\n[Prozess][process]\n[process]: Select <required> \"Wird automatisch berechnet aus **Aktionstyp**, **Mitarbeiterdatenbezug** sowie **Kategorie nach GBV ITM** (letzteres im Bestandseintrag)\"\n  - \n  - NO_ACTIVITY: keine Aktivität im Rahmen der IT-Mitbestimmung\n  - INFORMATION: Informationsprozess\n  - SIMPLE: Vereinfachter Prozess\n  - DETAILED: Detaillierter Prozess\n  - SEPARATE: Gesonderter Prozess\n  - INAPPLICABLE: nicht anwendbar\n\n\n{readonly|switch appearance=\"toggle-text\"}\n[Standortentscheidung][locationDecision]\n[locationDecision]: switch \"Ja: SBR. Nein: ITA/GBR.\"\n\n{readonly|children delete-on-remove}\n[Antragsteller][applicant]\n[applicant]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true}\n[Bearbeiter][editor]\n[editor]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n)\n\n{readonly|switch delete-fields-if-false=applicantSupervisor,applicantSupervisorSignature appearance=\"toggle-text\"}\n[Antragsteller Befugnis (Ist der Antragsteller handlungsbevollmächtigt?)][applicantAuthorization]\n[applicantAuthorization]: switch\n\n{readonly|show if !applicantAuthorization|children delete-on-remove}\n[Antragsteller Vorgesetzter][applicantSupervisor]\n[applicantSupervisor]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{readonly|children delete-on-remove}\n[Gast / Präsentator][guestOrPresenter]\n[guestOrPresenter]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n)\n\n{readonly|date type=\"year-month\"}\n[ITA Sitzungsmonat (AG Wunsch)][itaMeetingMonthByEmployer]\n[itaMeetingMonthByEmployer]: date <required>\n\n{readonly|multiline auto-grow max=500}\n[Kommentar BITM][itcoComment]\n\n# Unterschriften\n\n{readonly|signature}\n[Unterschrift Antragsteller][applicantSignature]\n[applicantSignature]: file <required=\"applicantSignatureAttachments.length === 0\">\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlage Unterschrift Antragsteller][applicantSignatureAttachments]\n[applicantSignatureAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required=\"!applicantSignature.dataUrl\"> \"Als Alternative zu *Unterschrift Antragsteller* kann eine Datei angehängt werden\"\n\n# Prüfkatalog\n\n{readonly|children delete-on-remove design=\"itm:questionnaire-card\"}\n[Fragebogen][questionnaire]\n[questionnaire]: /86879215-6d39-4a94-b5b4-77d022ca64db <required>\n\n# Präsentation / Anlagen\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Präsentation][presentation]\n[presentation]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required>\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlagen][attachments]\n[attachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{readonly|multiline auto-grow max=500}\n[Nachgereichte Informationen][subsequentlyAddedInformation]\n[subsequentlyAddedInformation]: text\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Nachgereichte Anlagen][subsequentlyAddedAttachments]\n[subsequentlyAddedAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{readonly|multiline auto-grow}\n[Weitere Mitteilung an den IT-Ausschuss][additionalMessageToIta]\n\n# Datenschutzstellungnahme\n\n{show if dpoStatementNotRequired|readonly}\n[Stellungnahme DPO ist nicht erforderlich][dpoStatementNotRequired]\n[dpoStatementNotRequired]: switch\n\n{readonly|multiline auto-grow max=5000}\n[Stellungnahme DPO][dpoStatement]\n[dpoStatement]: text \n\n{readonly|multiline auto-grow max=5000}\n[Kommentar zur DPO Stellungnahme][commentOnDpoStatement]\n[commentOnDpoStatement]: text \n","functions":"","allowedChildrenForms":[],"commands":[],"description":"Phase 1 und 2","theme":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2023-05-23T14:45:43+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2025-05-22T13:49:28+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1747921768929,"ct":1684853143705,"a_depth":4,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"7665f38b-e1a1-4708-9173-70d015272792","text":"6_Antrag_BITM/Bearbeiter","v":"47058cd376acfc67"},"created":{"at":"2023-05-25T15:02:48+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1685026968742,"data":{"allowedChildrenForms":[],"commands":[],"definition":"{hidden|readonly}\n[syncTo][syncTo]\n[syncTo]: /ref\n\n[allDocumentDataValid]: switch\n[allEditableDocumentDataValid]: switch\n\n# Antrag\n\n{readonly}\n[Antragsnummer][applicationNumberTitle]\n\n// applicationNumber should be used in sorting\n{hidden|readonly}\n[Antragsnummer][applicationNumber]\n[applicationNumber]: number\n\n{readonly|datetime}\n[Zeitstempel Erstellung][creationTimestamp]\n[creationTimestamp]: date\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Ersteller][creator]\n[creator]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10\n\n{readonly|children design=\"itm:inventory-card\"}\n[Bestandseintrag][inventoryEntry]\n[inventoryEntry]: /dd51bf3c-69df-4bcd-a630-1a8e0f7dba2e\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Beratender BITM][consultingItco]\n[consultingItco]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n) <required>\n\n{readonly}\n[Antragstitel][applicationTitle]\n[applicationTitle]: text <required>\n\n{readonly|multiline auto-grow max=500}\n[Beschreibung][description]\n[description]: text <required>\n\n{readonly|select}\n[Aktionstyp][actionType]\n[actionType]: select <required help=layoutId> \"003ffe3b-61e1-4553-acb8-1d8e68874ce0\"\n  - ZERO: \"0\"\n  - ONE: 1\n  - TWO: 2\n  - THREE: 3\n  - FOUR: 4\n  - FIVE: 5\n  - INFORMATION: Information\n\n{readonly|switch appearance=\"toggle-text\"}\n[Mitarbeiterdatenbezug][employeeDataReference]\n[employeeDataReference]: switch\n\n{readonly|switch delete-fields-if-false=plannedPilotingDurationInMonths,pilotingEndDate,pilotingComment appearance=\"toggle-text\"}\n[Pilotierung][piloting]\n[piloting]: switch\n\n{readonly|show if piloting}\n[Geplante Dauer der Pilotierung (Angabe in Monaten)][plannedPilotingDurationInMonths]\n[plannedPilotingDurationInMonths]: number <required>\n\n{readonly}\n[Prozess][process]\n[process]: Select <required> \"Wird automatisch berechnet aus **Aktionstyp**, **Mitarbeiterdatenbezug** sowie **Kategorie nach GBV ITM** (letzteres im Bestandseintrag)\"\n  - \n  - NO_ACTIVITY: keine Aktivität im Rahmen der IT-Mitbestimmung\n  - INFORMATION: Informationsprozess\n  - SIMPLE: Vereinfachter Prozess\n  - DETAILED: Detaillierter Prozess\n  - SEPARATE: Gesonderter Prozess\n  - INAPPLICABLE: nicht anwendbar\n\n{readonly}\n[Prozess (angepasst)][processAdjusted]\n[processAdjusted]: Select\n  - \n  - NO_ACTIVITY: keine Aktivität im Rahmen der IT-Mitbestimmung\n  - INFORMATION: Informationsprozess\n  - SIMPLE: Vereinfachter Prozess\n  - DETAILED: Detaillierter Prozess\n  - SEPARATE: Gesonderter Prozess\n  - INAPPLICABLE: nicht anwendbar\n\n\n\n{readonly|switch appearance=\"toggle-text\"}\n[Standortentscheidung][locationDecision]\n[locationDecision]: switch \"Ja: SBR. Nein: ITA/GBR.\"\n\n{readonly|children delete-on-remove}\n[Antragsteller][applicant]\n[applicant]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true}\n[Bearbeiter][editor]\n[editor]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n)\n\n{readonly|switch delete-fields-if-false=applicantSupervisor,applicantSupervisorSignature appearance=\"toggle-text\"}\n[Antragsteller Befugnis (Ist der Antragsteller handlungsbevollmächtigt?)][applicantAuthorization]\n[applicantAuthorization]: switch\n\n{readonly|show if !applicantAuthorization|children delete-on-remove}\n[Antragsteller Vorgesetzter][applicantSupervisor]\n[applicantSupervisor]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{readonly|children delete-on-remove}\n[Gast / Präsentator][guestOrPresenter]\n[guestOrPresenter]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n)\n\n{readonly|date type=\"year-month\"}\n[ITA Sitzungsmonat (AG Wunsch)][itaMeetingMonthByEmployer]\n[itaMeetingMonthByEmployer]: date \n<required>\n\n{readonly|multiline auto-grow max=500}\n[Kommentar BITM][itcoComment]\n\n# Unterschriften\n\n{readonly|signature}\n[Unterschrift Antragsteller][applicantSignature]\n[applicantSignature]: file <required=\"applicantSignatureAttachments.length === 0\">\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlage Unterschrift Antragsteller][applicantSignatureAttachments]\n[applicantSignatureAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required=\"!applicantSignature.dataUrl\"> \"Als Alternative zu *Unterschrift Antragsteller* kann eine Datei angehängt werden\"\n\n{readonly|show if !applicantAuthorization|signature}\n[Unterschrift Antragsteller Vorgesetzter][applicantSupervisorSignature]\n[applicantSupervisorSignature]: file <required=\"applicantSupervisorSignatureAttachments.length === 0\">\n\n{show if !applicantAuthorization|readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlage Unterschrift Antragsteller Vorgesetzter][applicantSupervisorSignatureAttachments]\n[applicantSupervisorSignatureAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required=\"!applicantSupervisorSignature.dataUrl\"> \"Als Alternative zu *Unterschrift Antragsteller Vorgesetzter* kann eine Datei angehängt werden\"\n\n# Prüfkatalog\n\n{readonly|children delete-on-remove design=\"itm:questionnaire-card\"}\n[Fragebogen][questionnaire]\n[questionnaire]: /86879215-6d39-4a94-b5b4-77d022ca64db <required>\n\n# Präsentation / Anlagen\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Präsentation][presentation]\n[presentation]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required>\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlagen][attachments]\n[attachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{readonly|multiline auto-grow max=500}\n[Nachgereichte Informationen][subsequentlyAddedInformation]\n[subsequentlyAddedInformation]: text\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Nachgereichte Anlagen][subsequentlyAddedAttachments]\n[subsequentlyAddedAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{readonly|multiline auto-grow}\n[Weitere Mitteilung an den IT-Ausschuss][additionalMessageToIta]\n\n# Datenschutzstellungnahme\n\n{readonly|multiline auto-grow max=5000}\n[Stellungnahme DPA][dpaStatement]\n\n{show if dpoStatementNotRequired|readonly}\n[Stellungnahme DPO ist nicht erforderlich][dpoStatementNotRequired]\n[dpoStatementNotRequired]: switch\n\n\n{readonly|multiline auto-grow max=5000}\n[Nachträgliche Ergänzung DPO][dpoAdditionalStatement]\n\n{readonly|multiline auto-grow max=5000}\n[Kommentar zur DPO Stellungnahme][commentOnDpoStatement]\n[commentOnDpoStatement]: text \n\n\n\n# Beschluss / Empfehlung / Klärungsauftrag\n\n{readonly|show if piloting}\n[Pilotierung Enddatum][pilotingEndDate]\n[pilotingEndDate]: date\n\n{readonly|children delete-on-remove navigate new-commands=81a8087a-f250-4ee0-acba-dd64518b72b1,2811e9f3-0f97-4425-8b4e-fd96493048de,2a90d0b4-3d71-47b6-b30d-7d254d006ef1,f2e863bd-940e-4fa9-8528-6b606ef7ad43}\n[Beschluss/Empfehlung/Klärungsauftrag][decisions]\n[decisions]: /030be2b6-fcad-4d3c-b44f-c40618e772c0 (0-n) <required>","description":"Phase 1 und 2","functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"7_Antrag_BITM/Bearbeiter","namedIcon":"","namedIconColor":"","tags":"","theme":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"3163b16b782f3ff6"},"id":"4c040433-48aa-48cf-b126-5fe78abd1b27","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-10-13T12:15:57+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"7665f38b-e1a1-4708-9173-70d015272792","text":"6_Antrag_BITM/Bearbeiter","v":"47058cd376acfc67"},"p":"03d08db0-f873-48cd-a5b5-c34937bddc2f","previous":{"v":"1ee9a9781794ce3e"},"stamps":[],"t":1760357757775,"v":"c45d33b4fd3f623e"},{"id":"8d3c96d8-d246-412d-9f7b-3f70cff3860c","v":"079a6ddd5b986d94","previous":{"v":"fff0a1c9fd9fe315"},"p":"c881dec7-95f5-434f-9423-93143aaa976b","f":{"id":"form","v":"b0b69a951dde83ea","text":"Form"},"data":{"name":"1_Sammelinfo_BITM","tags":"","allowUndefinedFields":false,"definition":"{hidden|readonly}\n[syncTo][syncTo]\n[syncTo]: /ref\n\n[allDocumentDataValid]: switch\n[allEditableDocumentDataValid]: switch\n\n{readonly}\n[Sammelinformationsnummer][informationNumberTitle]\n[informationNumberTitle]: text\n\n{text max=100}\n[Sammelinformationstitel][informationTitle]\n[informationTitle]: text <required>\n\n{children disable-remove no-add design=\"itm:inventory-card\"}\n[Bestandseintrag][inventoryEntry]\n[inventoryEntry]: /312af864-b1e6-42cf-b6b1-8ebba22707cb\n\n{multiline auto-grow max=3000}\n[Beschreibung][description]\n[description]: text <required>\n\n{employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true}\n[Verantwortlicher Ansprechpartner Business][responsible]\n[responsible]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n) <required>\n\n{multiline auto-grow max=500}\n[Kommentar BITM][itcoComment]\n[itcoComment]: text\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlagen][attachments]\n[attachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{readonly|datetime}\n[Zeitstempel Erstellung][creationTimestamp]\n[creationTimestamp]: date\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Ersteller][creator]\n[creator]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10","functions":"","relatedDocuments":[],"defaults":"","newTemplate":{"id":"","v":"","text":""},"newAction":{"id":"","v":"","text":""},"allowedChildrenForms":[],"commands":[],"descendantCommands":[],"to":[],"from":[],"namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"","v":"","text":""},"description":""},"locks":[],"created":{"at":"2025-07-07T09:30:58+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2025-08-01T07:55:02+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1754034902069,"ct":1751880658753,"a_depth":4,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","c881dec7-95f5-434f-9423-93143aaa976b"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"a5a1eee5-1b9f-4360-af4c-e8e80dc4d5e1","v":"e336aa4bbb6bc5e4","previous":{"v":"ae416f24a065b661"},"p":"c881dec7-95f5-434f-9423-93143aaa976b","f":{"id":"form","v":"b0b69a951dde83ea","text":"Form"},"data":{"name":"1_Sammelinfo_IT-Ref","tags":"","allowUndefinedFields":false,"definition":"{hidden|readonly}\n[syncTo][syncTo]\n[syncTo]: /ref\n\n[allDocumentDataValid]: switch\n[allEditableDocumentDataValid]: switch\n\n{readonly}\n[Sammelinformationsnummer][informationNumberTitle]\n[informationNumberTitle]: text\n\n{readonly|text max=100}\n[Sammelinformationstitel][informationTitle]\n[informationTitle]: text <required>\n\n{children disable-remove no-add design=\"itm:inventory-card\"}\n[Bestandseintrag][inventoryEntry]\n[inventoryEntry]: /1fc12c11-7c26-41e4-9250-b8e3ff306cc5\n\n{readonly|multiline auto-grow max=3000}\n[Beschreibung][description]\n[description]: text <required>\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true}\n[Verantwortlicher Ansprechpartner Business][responsible]\n[responsible]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n) <required>\n\n{readonly|multiline auto-grow max=500}\n[Kommentar BITM][itcoComment]\n[itcoComment]: text\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlagen][attachments]\n[attachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{readonly|datetime}\n[Zeitstempel Erstellung][creationTimestamp]\n[creationTimestamp]: date\n\n{readonly|datetime}\n[Zeitstempel Einreichung][submissionTimestamp]\n[submissionTimestamp]: date\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Ersteller][creator]\n[creator]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10","functions":"","relatedDocuments":[],"defaults":"","newTemplate":{"id":"","v":"","text":""},"newAction":{"id":"","v":"","text":""},"allowedChildrenForms":[],"commands":[],"descendantCommands":[],"to":[],"from":[],"namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"","v":"","text":""},"description":""},"locks":[],"created":{"at":"2025-07-07T09:42:40+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2025-08-01T07:55:02+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1754034902065,"ct":1751881360080,"a_depth":4,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","c881dec7-95f5-434f-9423-93143aaa976b"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"4dc0da6b-1dd9-44cc-bcc7-28f4a79b3bbf","text":"5_Antrag_ITA-Mitglied","v":"e3359525114564d8"},"created":{"at":"2023-05-25T11:49:21+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1685015361680,"data":{"allowedChildrenForms":[],"commands":[],"definition":"{hidden|readonly}\n[syncTo][syncTo]\n[syncTo]: /ref\n\n[allDocumentDataValid]: switch\n[allEditableDocumentDataValid]: switch\n\n# Antrag\n\n{readonly}\n[Antragsnummer][applicationNumberTitle]\n\n// applicationNumber should be used in sorting\n{hidden|readonly}\n[Antragsnummer][applicationNumber]\n[applicationNumber]: number\n\n{readonly|datetime}\n[Zeitstempel Erstellung][creationTimestamp]\n[creationTimestamp]: date\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Ersteller][creator]\n[creator]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10\n\n{readonly|children design=\"itm:inventory-card\"}\n[Bestandseintrag][inventoryEntry]\n[inventoryEntry]: /dd51bf3c-69df-4bcd-a630-1a8e0f7dba2e\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Beratender BITM][consultingItco]\n[consultingItco]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n) <required>\n\n{readonly}\n[Antragstitel][applicationTitle]\n[applicationTitle]: text <required>\n\n{readonly|multiline auto-grow max=500}\n[Beschreibung][description]\n[description]: text <required>\n\n{readonly|select}\n[Aktionstyp][actionType]\n[actionType]: select <required help=layoutId> \"003ffe3b-61e1-4553-acb8-1d8e68874ce0\"\n  - ZERO: \"0\"\n  - ONE: 1\n  - TWO: 2\n  - THREE: 3\n  - FOUR: 4\n  - FIVE: 5\n  - INFORMATION: Information\n\n{readonly|switch appearance=\"toggle-text\"}\n[Mitarbeiterdatenbezug][employeeDataReference]\n[employeeDataReference]: switch\n\n{readonly|switch delete-fields-if-false=plannedPilotingDurationInMonths,pilotingEndDate,pilotingComment appearance=\"toggle-text\"}\n[Pilotierung][piloting]\n[piloting]: switch\n\n{readonly|show if piloting}\n[Geplante Dauer der Pilotierung (Angabe in Monaten)][plannedPilotingDurationInMonths]\n[plannedPilotingDurationInMonths]: number <required>\n\n{readonly}\n[Prozess][process]\n[process]: Select <required> \"Wird automatisch berechnet aus **Aktionstyp**, **Mitarbeiterdatenbezug** sowie **Kategorie nach GBV ITM** (letzteres im Bestandseintrag)\"\n  - \n  - NO_ACTIVITY: keine Aktivität im Rahmen der IT-Mitbestimmung\n  - INFORMATION: Informationsprozess\n  - SIMPLE: Vereinfachter Prozess\n  - DETAILED: Detaillierter Prozess\n  - SEPARATE: Gesonderter Prozess\n  - INAPPLICABLE: nicht anwendbar\n\n{readonly}\n[Prozess (angepasst)][processAdjusted]\n[processAdjusted]: Select\n  - \n  - NO_ACTIVITY: keine Aktivität im Rahmen der IT-Mitbestimmung\n  - INFORMATION: Informationsprozess\n  - SIMPLE: Vereinfachter Prozess\n  - DETAILED: Detaillierter Prozess\n  - SEPARATE: Gesonderter Prozess\n  - INAPPLICABLE: nicht anwendbar\n\n\n\n{readonly|switch appearance=\"toggle-text\"}\n[Standortentscheidung][locationDecision]\n[locationDecision]: switch \"Ja: SBR. Nein: ITA/GBR.\"\n\n{readonly|children delete-on-remove}\n[Antragsteller][applicant]\n[applicant]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true}\n[Bearbeiter][editor]\n[editor]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n)\n\n{readonly|switch delete-fields-if-false=applicantSupervisor,applicantSupervisorSignature appearance=\"toggle-text\"}\n[Antragsteller Befugnis (Ist der Antragsteller handlungsbevollmächtigt?)][applicantAuthorization]\n[applicantAuthorization]: switch\n\n{readonly|show if !applicantAuthorization|children delete-on-remove}\n[Antragsteller Vorgesetzter][applicantSupervisor]\n[applicantSupervisor]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{readonly|children delete-on-remove}\n[Gast / Präsentator][guestOrPresenter]\n[guestOrPresenter]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n)\n\n{readonly|date type=\"year-month\"}\n[ITA Sitzungsmonat (AG Wunsch)][itaMeetingMonthByEmployer]\n[itaMeetingMonthByEmployer]: date \n<required>\n\n{readonly|multiline auto-grow max=500}\n[Kommentar BITM][itcoComment]\n\n# Unterschriften\n\n{readonly|signature}\n[Unterschrift Antragsteller][applicantSignature]\n[applicantSignature]: file <required=\"applicantSignatureAttachments.length === 0\">\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlage Unterschrift Antragsteller][applicantSignatureAttachments]\n[applicantSignatureAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required=\"!applicantSignature.dataUrl\"> \"Als Alternative zu *Unterschrift Antragsteller* kann eine Datei angehängt werden\"\n\n{readonly|show if !applicantAuthorization|signature}\n[Unterschrift Antragsteller Vorgesetzter][applicantSupervisorSignature]\n[applicantSupervisorSignature]: file <required=\"applicantSupervisorSignatureAttachments.length === 0\">\n\n{show if !applicantAuthorization|readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlage Unterschrift Antragsteller Vorgesetzter][applicantSupervisorSignatureAttachments]\n[applicantSupervisorSignatureAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required=\"!applicantSupervisorSignature.dataUrl\"> \"Als Alternative zu *Unterschrift Antragsteller Vorgesetzter* kann eine Datei angehängt werden\"\n\n# Prüfkatalog\n\n{readonly|children delete-on-remove design=\"itm:questionnaire-card\"}\n[Fragebogen][questionnaire]\n[questionnaire]: /86879215-6d39-4a94-b5b4-77d022ca64db <required>\n\n# Präsentation / Anlagen\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Präsentation][presentation]\n[presentation]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required>\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlagen][attachments]\n[attachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{readonly|multiline auto-grow max=500}\n[Nachgereichte Informationen][subsequentlyAddedInformation]\n[subsequentlyAddedInformation]: text\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Nachgereichte Anlagen][subsequentlyAddedAttachments]\n[subsequentlyAddedAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{readonly|multiline auto-grow}\n[Weitere Mitteilung an den IT-Ausschuss][additionalMessageToIta]\n\n# Datenschutzstellungnahme\n\n{readonly|multiline auto-grow max=5000}\n[Stellungnahme DPA][dpaStatement]\n\n{show if dpoStatementNotRequired|readonly}\n[Stellungnahme DPO ist nicht erforderlich][dpoStatementNotRequired]\n[dpoStatementNotRequired]: switch\n\n\n{readonly|multiline auto-grow max=5000}\n[Nachträgliche Ergänzung DPO][dpoAdditionalStatement]\n\n{readonly|multiline auto-grow max=5000}\n[Kommentar zur DPO Stellungnahme][commentOnDpoStatement]\n[commentOnDpoStatement]: text \n\n\n\n# Beschluss / Empfehlung / Klärungsauftrag\n\n{readonly|show if piloting}\n[Pilotierung Enddatum][pilotingEndDate]\n[pilotingEndDate]: date\n\n{readonly|children delete-on-remove navigate new-commands=81a8087a-f250-4ee0-acba-dd64518b72b1,2811e9f3-0f97-4425-8b4e-fd96493048de,2a90d0b4-3d71-47b6-b30d-7d254d006ef1,f2e863bd-940e-4fa9-8528-6b606ef7ad43}\n[Beschluss/Empfehlung/Klärungsauftrag][decisions]\n[decisions]: /030be2b6-fcad-4d3c-b44f-c40618e772c0 (0-n) <required>","description":"Phase 1 und 2","functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"6_Antrag_BITM/Bearbeiter","namedIcon":"","namedIconColor":"","tags":"","theme":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"3163b16b782f3ff6"},"id":"7665f38b-e1a1-4708-9173-70d015272792","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-10-13T12:11:29+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"4dc0da6b-1dd9-44cc-bcc7-28f4a79b3bbf","text":"5_Antrag_ITA-Mitglied","v":"e3359525114564d8"},"p":"03d08db0-f873-48cd-a5b5-c34937bddc2f","previous":{"v":"6f53a4e3fe863b7d"},"stamps":[],"t":1760357489532,"v":"2dae64c17cc98e2c"},{"id":"5076beba-8e94-4503-bfcb-8694df11f4e5","v":"80ee2e2648287590","cloneOf":{"id":"afa8ae9e-ca0b-4e96-8ddb-c6147c6549ac","v":"dca8cf4c46e36d7c","text":"3_Antrag_Antragsteller"},"originalCloneOf":{"id":"afa8ae9e-ca0b-4e96-8ddb-c6147c6549ac","v":"dca8cf4c46e36d7c","text":"3_Antrag_Antragsteller"},"previous":{"v":"327bf6d52223233e"},"p":"03d08db0-f873-48cd-a5b5-c34937bddc2f","f":{"id":"form","v":"3163b16b782f3ff6","text":"Form"},"data":{"name":"3_Antrag_Gast","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"{hidden|readonly}\n[syncTo][syncTo]\n[syncTo]: /ref\n\n[allDocumentDataValid]: switch\n[allEditableDocumentDataValid]: switch\n\n# Antrag\n\n{readonly}\n[Antragsnummer][applicationNumberTitle]\n\n// applicationNumber should be used in sorting\n{hidden|readonly}\n[Antragsnummer][applicationNumber]\n[applicationNumber]: number\n\n{readonly|datetime}\n[Zeitstempel Erstellung][creationTimestamp]\n[creationTimestamp]: date\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Ersteller][creator]\n[creator]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10\n\n{readonly|children design=\"itm:inventory-card\"}\n[Bestandseintrag][inventoryEntry]\n[inventoryEntry]: /0572195f-176d-40d5-920a-f5b5505e2ef6\n\n{readonly}\n[Antragstitel][applicationTitle]\n\n{readonly|multiline auto-grow max=500}\n[Beschreibung][description]\n\n{readonly|select}\n[Aktionstyp][actionType]\n[actionType]: select\n  - ZERO: \"0\"\n  - ONE: 1\n  - TWO: 2\n  - THREE: 3\n  - FOUR: 4\n  - FIVE: 5\n  - INFORMATION: Information\n\n{readonly|switch appearance=\"toggle-text\"}\n[Mitarbeiterdatenbezug][employeeDataReference]\n[employeeDataReference]: switch\n\n{readonly|switch appearance=\"toggle-text\"}\n[Pilotierung][piloting]\n[piloting]: switch\n\n{readonly|show if piloting}\n[Geplante Dauer der Pilotierung (Angabe in Monaten)][plannedPilotingDurationInMonths]\n[plannedPilotingDurationInMonths]: number\n\n{readonly|readonly}\n[Prozess][process]\n[process]: Select <required> \"Wird automatisch berechnet aus **Aktionstyp**, **Mitarbeiterdatenbezug** sowie **Kategorie nach GBV ITM** (letzteres im Bestandseintrag)\"\n  - \n  - NO_ACTIVITY: keine Aktivität im Rahmen der IT-Mitbestimmung\n  - INFORMATION: Informationsprozess\n  - SIMPLE: Vereinfachter Prozess\n  - DETAILED: Detaillierter Prozess\n  - SEPARATE: Gesonderter Prozess\n  - INAPPLICABLE: nicht anwendbar\n\n\n{readonly|switch appearance=\"toggle-text\"}\n[Standortentscheidung][locationDecision]\n[locationDecision]: switch \"Ja: SBR. Nein: ITA/GBR.\"\n\n{readonly|children delete-on-remove}\n[Antragsteller][applicant]\n[applicant]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n)\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true}\n[Bearbeiter][editor]\n[editor]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n)\n\n{readonly|switch appearance=\"toggle-text\"}\n[Antragsteller Befugnis (Ist der Antragsteller handlungsbevollmächtigt?)][applicantAuthorization]\n[applicantAuthorization]: switch\n\n{readonly|children delete-on-remove}\n[Antragsteller Vorgesetzter][applicantSupervisor]\n[applicantSupervisor]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n)\n\n{readonly|children delete-on-remove}\n[Gast / Präsentator][guestOrPresenter]\n[guestOrPresenter]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n)\n\n{readonly|date type=\"year-month\"}\n[ITA Sitzungsmonat (AG Wunsch)][itaMeetingMonthByEmployer]\n[itaMeetingMonthByEmployer]: date\n\n{readonly|multiline auto-grow max=500}\n[Kommentar BITM][itcoComment]\n\n# Unterschriften\n\n{readonly|signature}\n[Unterschrift Antragsteller][applicantSignature]\n[applicantSignature]: file <required=\"applicantSignatureAttachments.length === 0\">\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlage Unterschrift Antragsteller][applicantSignatureAttachments]\n[applicantSignatureAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required=\"!applicantSignature.dataUrl\"> \"Als Alternative zu *Unterschrift Antragsteller* kann eine Datei angehängt werden\"\n\n{show if !applicantAuthorization|readonly|signature}\n[Unterschrift Antragsteller Vorgesetzter][applicantSupervisorSignature]\n[applicantSupervisorSignature]: file <required=\"applicantSupervisorSignatureAttachments.length === 0\">\n\n{show if !applicantAuthorization|readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlage Unterschrift Antragsteller Vorgesetzter][applicantSupervisorSignatureAttachments]\n[applicantSupervisorSignatureAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required=\"!applicantSupervisorSignature.dataUrl\"> \"Als Alternative zu *Unterschrift Antragsteller Vorgesetzter* kann eine Datei angehängt werden\"\n\n# Prüfkatalog\n\n{readonly|children delete-on-remove design=\"itm:questionnaire-card\"}\n[Fragebogen][questionnaire]\n[questionnaire]: /86879215-6d39-4a94-b5b4-77d022ca64db <required>\n\n# Präsentation / Anlagen\n\n{show if presentationTemplate.length > 0|readonly|attachment show-download-original-only}\n[Präsentation (Vorlage)][presentationTemplate]\n[presentationTemplate]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Präsentation][presentation]\n[presentation]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required>\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlagen][attachments]\n[attachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{readonly|multiline auto-grow max=500}\n[Nachgereichte Informationen][subsequentlyAddedInformation]\n[subsequentlyAddedInformation]: text\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Nachgereichte Anlagen][subsequentlyAddedAttachments]\n[subsequentlyAddedAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{readonly|multiline auto-grow}\n[Weitere Mitteilung an den IT-Ausschuss][additionalMessageToIta]\n\n# Datenschutzstellungnahme\n\n{show if dpoStatementNotRequired|readonly}\n[Stellungnahme DPO ist nicht erforderlich][dpoStatementNotRequired]\n[dpoStatementNotRequired]: switch\n\n{readonly|multiline auto-grow max=5000}\n[Stellungnahme DPO][dpoStatement]\n[dpoStatement]: text \n\n{readonly|multiline auto-grow max=5000}\n[Kommentar zur DPO Stellungnahme][commentOnDpoStatement]\n[commentOnDpoStatement]: text ","functions":"","allowedChildrenForms":[],"commands":[],"description":"Phase 1 und 2","theme":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2025-05-19T12:35:19+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2025-05-22T13:49:28+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1747921768933,"ct":1747658119345,"a_depth":4,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"823f49b2-ea5e-4ce2-8c1b-4eab59f04281","v":"283edbe481c8b7a8","cloneOf":{"id":"a64625f3-92f8-4c0b-935a-d93891ecfcd4","v":"ce36f5df5cec765b","text":"2_Antrag_Antragsteller"},"originalCloneOf":{"id":"a64625f3-92f8-4c0b-935a-d93891ecfcd4","v":"ce36f5df5cec765b","text":"2_Antrag_Antragsteller"},"previous":{"v":"c6ae58825d076d42"},"p":"03d08db0-f873-48cd-a5b5-c34937bddc2f","f":{"id":"form","v":"3163b16b782f3ff6","text":"Form"},"data":{"name":"2_Antrag_Gast","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"{hidden|readonly}\n[syncTo][syncTo]\n[syncTo]: /ref\n\n[allDocumentDataValid]: switch\n[allEditableDocumentDataValid]: switch\n\n\n# Antrag\n\n{readonly}\n[Antragsnummer][applicationNumberTitle]\n\n// applicationNumber should be used in sorting\n{hidden|readonly}\n[Antragsnummer][applicationNumber]\n[applicationNumber]: number\n\n{readonly|datetime}\n[Zeitstempel Erstellung][creationTimestamp]\n[creationTimestamp]: date\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Ersteller][creator]\n[creator]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10\n\n{children disable-remove no-add design=\"itm:inventory-card\"}\n[Bestandseintrag][inventoryEntry]\n[inventoryEntry]: /0572195f-176d-40d5-920a-f5b5505e2ef6\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Beratender BITM][consultingItco]\n[consultingItco]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n) <required>\n\n{readonly}\n[Antragstitel][applicationTitle]\n[applicationTitle]: text <required>\n\n{readonly|multiline auto-grow max=500}\n[Beschreibung][description]\n[description]: text <required>\n\n{readonly|select}\n[Aktionstyp][actionType]\n[actionType]: select <required help=layoutId> \"003ffe3b-61e1-4553-acb8-1d8e68874ce0\"\n  - ZERO: \"0\"\n  - ONE: 1\n  - TWO: 2\n  - THREE: 3\n  - FOUR: 4\n  - FIVE: 5\n  - INFORMATION: Information\n\n{readonly|switch appearance=\"toggle-text\"}\n[Mitarbeiterdatenbezug][employeeDataReference]\n[employeeDataReference]: switch\n\n{readonly|switch delete-fields-if-false=plannedPilotingDurationInMonths,pilotingEndDate,pilotingComment appearance=\"toggle-text\"}\n[Pilotierung][piloting]\n[piloting]: switch\n\n{readonly|show if piloting}\n[Geplante Dauer der Pilotierung (Angabe in Monaten)][plannedPilotingDurationInMonths]\n[plannedPilotingDurationInMonths]: number <required>\n\n{readonly}\n[Prozess][process]\n[process]: Select <required> \"Wird automatisch berechnet aus **Aktionstyp**, **Mitarbeiterdatenbezug** sowie **Kategorie nach GBV ITM** (letzteres im Bestandseintrag)\"\n  - \n  - NO_ACTIVITY: keine Aktivität im Rahmen der IT-Mitbestimmung\n  - INFORMATION: Informationsprozess\n  - SIMPLE: Vereinfachter Prozess\n  - DETAILED: Detaillierter Prozess\n  - SEPARATE: Gesonderter Prozess\n  - INAPPLICABLE: nicht anwendbar\n\n\n{readonly|switch appearance=\"toggle-text\"}\n[Standortentscheidung][locationDecision]\n[locationDecision]: switch \"Ja: SBR. Nein: ITA/GBR.\"\n\n{readonly|children delete-on-remove}\n[Antragsteller][applicant]\n[applicant]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true}\n[Bearbeiter][editor]\n[editor]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n)\n\n{readonly|switch delete-fields-if-false=applicantSupervisor,applicantSupervisorSignature appearance=\"toggle-text\"}\n[Antragsteller Befugnis (Ist der Antragsteller handlungsbevollmächtigt?)][applicantAuthorization]\n[applicantAuthorization]: switch\n\n{readonly|show if !applicantAuthorization|children delete-on-remove}\n[Antragsteller Vorgesetzter][applicantSupervisor]\n[applicantSupervisor]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{readonly|children delete-on-remove}\n[Gast / Präsentator][guestOrPresenter]\n[guestOrPresenter]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n)\n\n{readonly|date type=\"year-month\"}\n[ITA Sitzungsmonat (AG Wunsch)][itaMeetingMonthByEmployer]\n[itaMeetingMonthByEmployer]: date <required>\n\n{readonly|multiline auto-grow max=500}\n[Kommentar BITM][itcoComment]\n\n# Unterschriften\n\n{readonly|signature}\n[Unterschrift Antragsteller][applicantSignature]\n[applicantSignature]: file <required=\"applicantSignatureAttachments.length === 0\">\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlage Unterschrift Antragsteller][applicantSignatureAttachments]\n[applicantSignatureAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required=\"!applicantSignature.dataUrl\"> \"Als Alternative zu *Unterschrift Antragsteller* kann eine Datei angehängt werden\"\n\n{readonly|show if !applicantAuthorization|signature}\n[Unterschrift Antragsteller Vorgesetzter][applicantSupervisorSignature]\n[applicantSupervisorSignature]: file <required=\"applicantSupervisorSignatureAttachments.length === 0\">\n\n{show if !applicantAuthorization|readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlage Unterschrift Antragsteller Vorgesetzter][applicantSupervisorSignatureAttachments]\n[applicantSupervisorSignatureAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required=\"!applicantSupervisorSignature.dataUrl\"> \"Als Alternative zu *Unterschrift Antragsteller Vorgesetzter* kann eine Datei angehängt werden\"\n\n# Prüfkatalog\n\n{readonly|children disable-remove no-add design=\"itm:questionnaire-card\"}\n[Fragebogen][questionnaire]\n[questionnaire]: /86879215-6d39-4a94-b5b4-77d022ca64db <required>\n\n# Präsentation / Anlagen\n\n{show if presentationTemplate.length > 0|readonly|attachment show-download-original-only}\n[Präsentation (Vorlage)][presentationTemplate]\n[presentationTemplate]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Präsentation][presentation]\n[presentation]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlagen][attachments]\n[attachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{readonly|multiline auto-grow}\n[Weitere Mitteilung an den IT-Ausschuss][additionalMessageToIta]\n","functions":"","allowedChildrenForms":[],"commands":[],"description":"Phase 1 und 2","theme":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2025-05-19T12:35:16+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2025-05-20T14:51:54+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1747752714219,"ct":1747658116177,"a_depth":4,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2022-11-15T13:14:15+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1681389760612,"data":{"allowedChildrenForms":[],"commands":[],"definition":"{hidden|readonly}\n[syncTo][syncTo]\n[syncTo]: /ref\n\n[allDocumentDataValid]: switch\n[allEditableDocumentDataValid]: switch\n\n# Antrag\n\n{readonly}\n[Antragsnummer][applicationNumberTitle]\n\n// applicationNumber should be used in sorting\n{hidden|readonly}\n[Antragsnummer][applicationNumber]\n[applicationNumber]: number\n\n{readonly|datetime}\n[Zeitstempel Erstellung][creationTimestamp]\n[creationTimestamp]: date\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Ersteller][creator]\n[creator]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10\n\n{children disable-remove no-add design=\"itm:inventory-card\"}\n[Bestandseintrag][inventoryEntry]\n[inventoryEntry]: /11452ef0-a6c2-49e9-845e-73133019ba59\n\n{employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Beratender BITM][consultingItco]\n[consultingItco]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n) <required>\n\n[Antragstitel][applicationTitle]\n[applicationTitle]: text <required>\n\n{multiline auto-grow max=500}\n[Beschreibung][description]\n[description]: text <required>\n\n{select}\n[Aktionstyp][actionType]\n[actionType]: select <required help=layoutId> \"003ffe3b-61e1-4553-acb8-1d8e68874ce0\"\n  - ZERO: \"0\"\n  - ONE: 1\n  - TWO: 2\n  - THREE: 3\n  - FOUR: 4\n  - FIVE: 5\n  - INFORMATION: Information\n\n{switch appearance=\"toggle-text\"}\n[Mitarbeiterdatenbezug][employeeDataReference]\n[employeeDataReference]: switch\n\n{switch delete-fields-if-false=plannedPilotingDurationInMonths,pilotingEndDate,pilotingComment appearance=\"toggle-text\"}\n[Pilotierung][piloting]\n[piloting]: switch\n\n{show if piloting}\n[Geplante Dauer der Pilotierung (Angabe in Monaten)][plannedPilotingDurationInMonths]\n[plannedPilotingDurationInMonths]: number <required>\n\n{readonly}\n[Prozess][process]\n[process]: Select <required> \"Wird automatisch berechnet aus **Aktionstyp**, **Mitarbeiterdatenbezug** sowie **Kategorie nach GBV ITM** (letzteres im Bestandseintrag)\"\n  - \n  - NO_ACTIVITY: keine Aktivität im Rahmen der IT-Mitbestimmung\n  - INFORMATION: Informationsprozess\n  - SIMPLE: Vereinfachter Prozess\n  - DETAILED: Detaillierter Prozess\n  - SEPARATE: Gesonderter Prozess\n  - INAPPLICABLE: nicht anwendbar\n\n\n{switch appearance=\"toggle-text\"}\n[Standortentscheidung][locationDecision]\n[locationDecision]: switch \"Ja: SBR. Nein: ITA/GBR.\"\n\n{children delete-on-remove}\n[Antragsteller][applicant]\n[applicant]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true}\n[Bearbeiter][editor]\n[editor]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n)\n\n{switch delete-fields-if-false=applicantSupervisor,applicantSupervisorSignature appearance=\"toggle-text\"}\n[Antragsteller Befugnis (Ist der Antragsteller handlungsbevollmächtigt?)][applicantAuthorization]\n[applicantAuthorization]: switch\n\n{show if !applicantAuthorization|children delete-on-remove}\n[Antragsteller Vorgesetzter][applicantSupervisor]\n[applicantSupervisor]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{children delete-on-remove}\n[Gast / Präsentator][guestOrPresenter]\n[guestOrPresenter]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n)\n\n{date type=\"year-month\"}\n[ITA Sitzungsmonat (AG Wunsch)][itaMeetingMonthByEmployer]\n[itaMeetingMonthByEmployer]: date <required>\n\n{multiline auto-grow max=500}\n[Kommentar BITM][itcoComment]\n","description":"Phase 1 und 2","functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"1_Antrag_BITM","namedIcon":"","namedIconColor":"","tags":"","theme":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"3163b16b782f3ff6"},"id":"7343f86d-bfd2-4768-a26a-d4229c603418","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-05-20T14:57:01+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"03d08db0-f873-48cd-a5b5-c34937bddc2f","previous":{"v":"48dce2c4876fcaf3"},"stamps":[],"t":1747753021789,"v":"13a44aff4316db2d"},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"8938270d-0c2f-46b4-a91a-1345e1866879","text":"5_Antrag_IT-Ref","v":"06aa9b15963412a2"},"created":{"at":"2023-05-25T09:46:54+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1685008014956,"data":{"allowedChildrenForms":[],"commands":[],"definition":"{hidden|readonly}\n[syncTo][syncTo]\n[syncTo]: /ref\n\n[allDocumentDataValid]: switch\n[allEditableDocumentDataValid]: switch\n\n# Antrag\n\n{readonly}\n[Antragsnummer][applicationNumberTitle]\n\n// applicationNumber should be used in sorting\n{hidden|readonly}\n[Antragsnummer][applicationNumber]\n[applicationNumber]: number\n\n{readonly|datetime}\n[Zeitstempel Erstellung][creationTimestamp]\n[creationTimestamp]: date\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Ersteller][creator]\n[creator]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10\n\n{children disable-remove no-add design=\"itm:inventory-card\"}\n[Bestandseintrag][inventoryEntry]\n[inventoryEntry]: /13adf1b7-9d42-4d26-85db-a0a210fba556\n\n{employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Beratender BITM][consultingItco]\n[consultingItco]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n) <required>\n\n{readonly}\n[Antragstitel][applicationTitle]\n[applicationTitle]: text <required>\n\n{readonly|multiline auto-grow max=500}\n[Beschreibung][description]\n[description]: text <required>\n\n{readonly|select}\n[Aktionstyp][actionType]\n[actionType]: select <required help=layoutId> \"003ffe3b-61e1-4553-acb8-1d8e68874ce0\"\n  - ZERO: \"0\"\n  - ONE: 1\n  - TWO: 2\n  - THREE: 3\n  - FOUR: 4\n  - FIVE: 5\n  - INFORMATION: Information\n\n{readonly|switch appearance=\"toggle-text\"}\n[Mitarbeiterdatenbezug][employeeDataReference]\n[employeeDataReference]: switch\n\n{readonly|switch delete-fields-if-false=plannedPilotingDurationInMonths,pilotingEndDate,pilotingComment appearance=\"toggle-text\"}\n[Pilotierung][piloting]\n[piloting]: switch\n\n{readonly|show if piloting}\n[Geplante Dauer der Pilotierung (Angabe in Monaten)][plannedPilotingDurationInMonths]\n[plannedPilotingDurationInMonths]: number <required>\n\n{readonly}\n[Prozess][process]\n[process]: Select <required> \"Wird automatisch berechnet aus **Aktionstyp**, **Mitarbeiterdatenbezug** sowie **Kategorie nach GBV ITM** (letzteres im Bestandseintrag)\"\n  - \n  - NO_ACTIVITY: keine Aktivität im Rahmen der IT-Mitbestimmung\n  - INFORMATION: Informationsprozess\n  - SIMPLE: Vereinfachter Prozess\n  - DETAILED: Detaillierter Prozess\n  - SEPARATE: Gesonderter Prozess\n  - INAPPLICABLE: nicht anwendbar\n\n[Prozess (angepasst)][processAdjusted]\n[processAdjusted]: Select\n  - \n  - NO_ACTIVITY: keine Aktivität im Rahmen der IT-Mitbestimmung\n  - INFORMATION: Informationsprozess\n  - SIMPLE: Vereinfachter Prozess\n  - DETAILED: Detaillierter Prozess\n  - SEPARATE: Gesonderter Prozess\n  - INAPPLICABLE: nicht anwendbar\n\n\n\n{readonly|switch appearance=\"toggle-text\"}\n[Standortentscheidung][locationDecision]\n[locationDecision]: switch \"Ja: SBR. Nein: ITA/GBR.\"\n\n{children delete-on-remove}\n[Antragsteller][applicant]\n[applicant]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true}\n[Bearbeiter][editor]\n[editor]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n)\n\n{switch delete-fields-if-false=applicantSupervisor,applicantSupervisorSignature appearance=\"toggle-text\"}\n[Antragsteller Befugnis (Ist der Antragsteller handlungsbevollmächtigt?)][applicantAuthorization]\n[applicantAuthorization]: switch\n\n{show if !applicantAuthorization|children delete-on-remove}\n[Antragsteller Vorgesetzter][applicantSupervisor]\n[applicantSupervisor]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{children delete-on-remove}\n[Gast / Präsentator][guestOrPresenter]\n[guestOrPresenter]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n)\n\n{readonly|date type=\"year-month\"}\n[ITA Sitzungsmonat (AG Wunsch)][itaMeetingMonthByEmployer]\n[itaMeetingMonthByEmployer]: date \n<required>\n\n{readonly|multiline auto-grow max=500}\n[Kommentar BITM][itcoComment]\n\n# Unterschriften\n\n{readonly|signature}\n[Unterschrift Antragsteller][applicantSignature]\n[applicantSignature]: file <required=\"applicantSignatureAttachments.length === 0\">\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlage Unterschrift Antragsteller][applicantSignatureAttachments]\n[applicantSignatureAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required=\"!applicantSignature.dataUrl\"> \"Als Alternative zu *Unterschrift Antragsteller* kann eine Datei angehängt werden\"\n\n{readonly|show if !applicantAuthorization|signature}\n[Unterschrift Antragsteller Vorgesetzter][applicantSupervisorSignature]\n[applicantSupervisorSignature]: file <required=\"applicantSupervisorSignatureAttachments.length === 0\">\n\n{show if !applicantAuthorization|readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlage Unterschrift Antragsteller Vorgesetzter][applicantSupervisorSignatureAttachments]\n[applicantSupervisorSignatureAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required=\"!applicantSupervisorSignature.dataUrl\"> \"Als Alternative zu *Unterschrift Antragsteller Vorgesetzter* kann eine Datei angehängt werden\"\n\n# Prüfkatalog\n\n{readonly|children delete-on-remove design=\"itm:questionnaire-card\"}\n[Fragebogen][questionnaire]\n[questionnaire]: /86879215-6d39-4a94-b5b4-77d022ca64db <required>\n\n# Präsentation / Anlagen\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Präsentation][presentation]\n[presentation]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required>\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlagen][attachments]\n[attachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{readonly|multiline auto-grow max=500}\n[Nachgereichte Informationen][subsequentlyAddedInformation]\n[subsequentlyAddedInformation]: text\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Nachgereichte Anlagen][subsequentlyAddedAttachments]\n[subsequentlyAddedAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{readonly|multiline auto-grow}\n[Weitere Mitteilung an den IT-Ausschuss][additionalMessageToIta]\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlagen ITA Seite][attachmentsIta]\n[attachmentsIta]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n# Datenschutzstellungnahme\n\n{readonly|multiline auto-grow max=5000}\n[Stellungnahme DPA][dpaStatement]\n\n{show if dpoStatementNotRequired|readonly}\n[Stellungnahme DPO ist nicht erforderlich][dpoStatementNotRequired]\n[dpoStatementNotRequired]: switch\n\n\n{readonly|select}\n[Stellungnahme Ampel][dpoStatementRating]\n[dpoStatementRating]: Select \n  - \n  - GOOD <icon=\"fa fa-circle\" iconcolor=\"green\">: Empfehlung\n  - OK <icon=\"fa fa-circle\" iconcolor=\"yellow\">: Empfehlung mit Auflagen\n  - BAD <icon=\"fa fa-circle\" iconcolor=\"red\">: Keine Empfehlung\n  - NOT_APPLICABLE <icon=\"fa fa-circle\" iconcolor=\"blue\">: Neutral / Nicht bewertbar / Nicht bewertet \n\n\n{readonly|multiline auto-grow max=5000}\n[Stellungnahme DPO][dpoStatement]\n[dpoStatement]: text\n\n{readonly|multiline auto-grow max=5000}\n[Nachträgliche Ergänzung DPO][dpoAdditionalStatement]\n\n{readonly|multiline auto-grow max=5000}\n[Kommentar zur DPO Stellungnahme][commentOnDpoStatement]\n[commentOnDpoStatement]: text \n\n{readonly|multiline auto-grow max=500}\n[Vorschlag Auflagen][dpoProposalConditions]\n\n\n# Sitzungszuordnung / ITA Kommentare\n\n{readonly|multiline auto-grow max=500}\n[Kommentar IT-Ref][commentItReferee]\n\n{multiline auto-grow max=500}\n[Kommentar ITA-Vorsitz][commentItaChair]\n\n{readonly|multiline auto-grow max=500}\n[Kommentar ITA Sekretariat][commentItaOffice]\n\n{readonly|multiline auto-grow}\n[Kommentar/Notizen ITA Mitglieder][commentItaMembers]\n\n{date type=\"year-month\"}\n[ITA Sitzungsmonat (ITA)][itaMeetingMonthByIta]\n[itaMeetingMonthByIta]: date (0-n)\n\n{switch appearance=\"toggle-text\"}\n[Papierentscheid][paperDecision]\n[paperDecision]: switch\n\n\n# Beschluss / Empfehlung / Klärungsauftrag\n\n{readonly|multiline auto-grow}\n[Beschlussvorschlag][proposalDecision]\n\n{show if piloting}\n[Pilotierung Enddatum][pilotingEndDate]\n[pilotingEndDate]: date\n\n{show if piloting|multiline auto-grow}\n[Pilotierung Kommentar][pilotingComment]\n\n{children delete-on-remove navigate new-commands=81a8087a-f250-4ee0-acba-dd64518b72b1,2811e9f3-0f97-4425-8b4e-fd96493048de,2a90d0b4-3d71-47b6-b30d-7d254d006ef1,f2e863bd-940e-4fa9-8528-6b606ef7ad43}\n[Beschluss/Empfehlung/Klärungsauftrag][decisions]\n[decisions]: /5beeae17-7bb1-4eeb-bcb6-cf0e6950e27c (0-n) <required>","description":"Phase 1 und 2","functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"5_Antrag_ITA-Vorsitz","namedIcon":"","namedIconColor":"","tags":"","theme":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"3163b16b782f3ff6"},"id":"dcdf4048-fd75-42ce-bbb0-e2594a0a3e07","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-10-13T12:07:37+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"8938270d-0c2f-46b4-a91a-1345e1866879","text":"5_Antrag_IT-Ref","v":"06aa9b15963412a2"},"p":"03d08db0-f873-48cd-a5b5-c34937bddc2f","previous":{"v":"2bf11dad1040cfa7"},"stamps":[],"t":1760357257198,"v":"a3a523e53cf61fdf"},{"id":"dae29199-d0fc-42f3-bc0c-e9dc3a7238d0","v":"7bcef65831c235c6","previous":{"v":"1cf799fa689f9e59"},"p":"c881dec7-95f5-434f-9423-93143aaa976b","f":{"id":"form","v":"b0b69a951dde83ea","text":"Form"},"data":{"name":"2_Sammelinfo_Verantwortlich","tags":"","allowUndefinedFields":false,"definition":"{hidden|readonly}\n[syncTo][syncTo]\n[syncTo]: /ref\n\n[allDocumentDataValid]: switch\n[allEditableDocumentDataValid]: switch\n\n{readonly}\n[Sammelinformationsnummer][informationNumberTitle]\n[informationNumberTitle]: text\n\n{readonly|text max=100}\n[Sammelinformationstitel][informationTitle]\n[informationTitle]: text <required>\n\n{children disable-remove no-add design=\"itm:inventory-card\"}\n[Bestandseintrag][inventoryEntry]\n[inventoryEntry]: /1fc12c11-7c26-41e4-9250-b8e3ff306cc5\n\n{readonly|multiline auto-grow max=3000}\n[Beschreibung][description]\n[description]: text <required>\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true}\n[Verantwortlicher Ansprechpartner Business][responsible]\n[responsible]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n) <required>\n\n{readonly|multiline auto-grow max=500}\n[Kommentar BITM][itcoComment]\n[itcoComment]: text\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlagen][attachments]\n[attachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{readonly|multiline auto-grow max=500}\n[Kommentar IT-Ref][commentItReferee]\n[commentItReferee]: text\n\n{readonly|datetime}\n[Zeitstempel Erstellung][creationTimestamp]\n[creationTimestamp]: date\n\n{readonly|datetime}\n[Zeitstempel Einreichung][submissionTimestamp]\n[submissionTimestamp]: date\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Ersteller][creator]\n[creator]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10","functions":"","relatedDocuments":[],"defaults":"","newTemplate":{"id":"","v":"","text":""},"newAction":{"id":"","v":"","text":""},"allowedChildrenForms":[],"commands":[],"descendantCommands":[],"to":[],"from":[],"namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"","v":"","text":""},"description":""},"locks":[],"created":{"at":"2025-07-07T09:47:07+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2025-08-01T07:55:02+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1754034902062,"ct":1751881627331,"a_depth":4,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","c881dec7-95f5-434f-9423-93143aaa976b"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"a71ed848-5126-4abc-bbd7-86791c96a82f","text":"4_Antrag_IT-Ref","v":"1e5e42ac72527ee9"},"created":{"at":"2024-11-27T09:49:24+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1732700964455,"data":{"allowedChildrenForms":[],"commands":[],"definition":"{hidden|readonly}\n[syncTo][syncTo]\n[syncTo]: /ref\n\n[allDocumentDataValid]: switch\n[allEditableDocumentDataValid]: switch\n\n# Antrag\n\n{readonly}\n[Antragsnummer][applicationNumberTitle]\n\n// applicationNumber should be used in sorting\n{hidden|readonly}\n[Antragsnummer][applicationNumber]\n[applicationNumber]: number\n\n{readonly|datetime}\n[Zeitstempel Erstellung][creationTimestamp]\n[creationTimestamp]: date\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Ersteller][creator]\n[creator]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10\n\n{children disable-remove no-add design=\"itm:inventory-card\"}\n[Bestandseintrag][inventoryEntry]\n[inventoryEntry]: /11452ef0-a6c2-49e9-845e-73133019ba59\n\n{employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Beratender BITM][consultingItco]\n[consultingItco]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n) <required>\n\n[Antragstitel][applicationTitle]\n[applicationTitle]: text <required>\n\n{multiline auto-grow max=500}\n[Beschreibung][description]\n[description]: text <required>\n\n{select}\n[Aktionstyp][actionType]\n[actionType]: select <required help=layoutId> \"003ffe3b-61e1-4553-acb8-1d8e68874ce0\"\n  - ZERO: \"0\"\n  - ONE: 1\n  - TWO: 2\n  - THREE: 3\n  - FOUR: 4\n  - FIVE: 5\n  - INFORMATION: Information\n\n{switch appearance=\"toggle-text\"}\n[Mitarbeiterdatenbezug][employeeDataReference]\n[employeeDataReference]: switch\n\n{switch delete-fields-if-false=plannedPilotingDurationInMonths,pilotingEndDate,pilotingComment appearance=\"toggle-text\"}\n[Pilotierung][piloting]\n[piloting]: switch\n\n{show if piloting}\n[Geplante Dauer der Pilotierung (Angabe in Monaten)][plannedPilotingDurationInMonths]\n[plannedPilotingDurationInMonths]: number <required>\n\n{readonly}\n[Prozess][process]\n[process]: Select <required> \"Wird automatisch berechnet aus **Aktionstyp**, **Mitarbeiterdatenbezug** sowie **Kategorie nach GBV ITM** (letzteres im Bestandseintrag)\"\n  - \n  - NO_ACTIVITY: keine Aktivität im Rahmen der IT-Mitbestimmung\n  - INFORMATION: Informationsprozess\n  - SIMPLE: Vereinfachter Prozess\n  - DETAILED: Detaillierter Prozess\n  - SEPARATE: Gesonderter Prozess\n  - INAPPLICABLE: nicht anwendbar\n\n[Prozess (angepasst)][processAdjusted]\n[processAdjusted]: Select\n  - \n  - NO_ACTIVITY: keine Aktivität im Rahmen der IT-Mitbestimmung\n  - INFORMATION: Informationsprozess\n  - SIMPLE: Vereinfachter Prozess\n  - DETAILED: Detaillierter Prozess\n  - SEPARATE: Gesonderter Prozess\n  - INAPPLICABLE: nicht anwendbar\n\n\n\n{switch appearance=\"toggle-text\"}\n[Standortentscheidung][locationDecision]\n[locationDecision]: switch \"Ja: SBR. Nein: ITA/GBR.\"\n\n{children delete-on-remove}\n[Antragsteller][applicant]\n[applicant]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true}\n[Bearbeiter][editor]\n[editor]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n)\n\n// Cannot use delete-fields-if to delete Signature because cannot be set again by other forms (those fields are already readonly there)\n// delete-fields-if-false=applicantSupervisor,applicantSupervisorSignature\n{switch delete-fields-if-false=applicantSupervisor appearance=\"toggle-text\"}\n[Antragsteller Befugnis (Ist der Antragsteller handlungsbevollmächtigt?)][applicantAuthorization]\n[applicantAuthorization]: switch\n\n{show if !applicantAuthorization|children delete-on-remove}\n[Antragsteller Vorgesetzter][applicantSupervisor]\n[applicantSupervisor]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{children delete-on-remove}\n[Gast / Präsentator][guestOrPresenter]\n[guestOrPresenter]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n)\n\n{date type=\"year-month\"}\n[ITA Sitzungsmonat (AG Wunsch)][itaMeetingMonthByEmployer]\n[itaMeetingMonthByEmployer]: date <required>\n\n{multiline auto-grow max=500}\n[Kommentar BITM][itcoComment]\n\n# Unterschriften\n\n{signature}\n[Unterschrift Antragsteller][applicantSignature]\n[applicantSignature]: file <required=\"applicantSignatureAttachments.length === 0\">\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlage Unterschrift Antragsteller][applicantSignatureAttachments]\n[applicantSignatureAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required=\"!applicantSignature.dataUrl\"> \"Als Alternative zu *Unterschrift Antragsteller* kann eine Datei angehängt werden\"\n\n{show if !applicantAuthorization|signature}\n[Unterschrift Antragsteller Vorgesetzter][applicantSupervisorSignature]\n[applicantSupervisorSignature]: file <required=\"applicantSupervisorSignatureAttachments.length === 0\">\n\n{show if !applicantAuthorization|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlage Unterschrift Antragsteller Vorgesetzter][applicantSupervisorSignatureAttachments]\n[applicantSupervisorSignatureAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required=\"!applicantSupervisorSignature.dataUrl\"> \"Als Alternative zu *Unterschrift Antragsteller Vorgesetzter* kann eine Datei angehängt werden\"\n\n# Prüfkatalog\n\n{children disable-remove no-add design=\"itm:questionnaire-card\"}\n[Fragebogen][questionnaire]\n[questionnaire]: /b5dcdd5b-6a84-4e13-92a2-052a1f1d1492 <required>\n\n# Präsentation / Anlagen\n\n{show if presentationTemplate.length > 0|readonly|attachment show-download-original-only}\n[Präsentation (Vorlage)][presentationTemplate]\n[presentationTemplate]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Präsentation][presentation]\n[presentation]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required>\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlagen][attachments]\n[attachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{multiline auto-grow max=500}\n[Nachgereichte Informationen][subsequentlyAddedInformation]\n[subsequentlyAddedInformation]: text\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Nachgereichte Anlagen][subsequentlyAddedAttachments]\n[subsequentlyAddedAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{multiline auto-grow}\n[Weitere Mitteilung an den IT-Ausschuss][additionalMessageToIta]\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlagen ITA Seite][attachmentsIta]\n[attachmentsIta]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n# Datenschutzstellungnahme\n\n{multiline auto-grow max=5000}\n[Stellungnahme DPA][dpaStatement]\n\n{show if dpoStatementNotRequired|readonly}\n[Stellungnahme DPO ist nicht erforderlich][dpoStatementNotRequired]\n[dpoStatementNotRequired]: switch\n\n{select}\n[Stellungnahme Ampel][dpoStatementRating]\n[dpoStatementRating]: Select \n  - \n  - GOOD <icon=\"fa fa-circle\" iconcolor=\"green\">: Empfehlung\n  - OK <icon=\"fa fa-circle\" iconcolor=\"yellow\">: Empfehlung mit Auflagen\n  - BAD <icon=\"fa fa-circle\" iconcolor=\"red\">: Keine Empfehlung\n  - NOT_APPLICABLE <icon=\"fa fa-circle\" iconcolor=\"blue\">: Neutral / Nicht bewertbar / Nicht bewertet \n\n\n{multiline auto-grow max=5000}\n[Stellungnahme DPO][dpoStatement]\n[dpoStatement]: text\n\n{multiline auto-grow max=5000}\n[Nachträgliche Ergänzung DPO][dpoAdditionalStatement]\n\n{multiline auto-grow max=5000}\n[Kommentar zur DPO Stellungnahme][commentOnDpoStatement]\n[commentOnDpoStatement]: text \n\n{multiline auto-grow max=500}\n[Vorschlag Auflagen][dpoProposalConditions]\n\n\n# Sitzungszuordnung / ITA Kommentare\n\n{multiline auto-grow max=500}\n[Kommentar IT-Ref][commentItReferee]\n\n{multiline auto-grow max=500}\n[Kommentar ITA-Vorsitz][commentItaChair]\n\n{multiline auto-grow max=500}\n[Kommentar ITA Sekretariat][commentItaOffice]\n\n{date type=\"year-month\"}\n[ITA Sitzungsmonat (ITA)][itaMeetingMonthByIta]\n[itaMeetingMonthByIta]: date (0-n)\n\n{switch appearance=\"toggle-text\"}\n[Papierentscheid][paperDecision]\n[paperDecision]: switch\n\n\n# Beschluss / Empfehlung / Klärungsauftrag\n\n{multiline auto-grow}\n[Beschlussvorschlag][proposalDecision]\n","description":"Wie 4_Antrag_IT-Ref","functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"4_Antrag_Admin","namedIcon":"","namedIconColor":"","tags":"","theme":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"3163b16b782f3ff6"},"id":"8748ffd7-2c37-4640-86ea-7fd63fab410c","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-10-13T12:13:24+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"a71ed848-5126-4abc-bbd7-86791c96a82f","text":"4_Antrag_IT-Ref","v":"1e5e42ac72527ee9"},"p":"03d08db0-f873-48cd-a5b5-c34937bddc2f","previous":{"v":"431904f533867f38"},"stamps":[],"t":1760357604923,"v":"ba6c1c085ff96365"},{"id":"e79a992e-0495-4257-bad0-d97b0b882ccb","v":"0ffeeb83e3b47790","cloneOf":{"id":"20634b91-66ce-4399-a680-d34549dd7923","v":"0f579a9665d9485c","text":"2_Antrag_Bearbeiter"},"originalCloneOf":{"id":"20634b91-66ce-4399-a680-d34549dd7923","v":"0f579a9665d9485c","text":"2_Antrag_Bearbeiter"},"previous":{"v":"26529770a08e9b15"},"p":"03d08db0-f873-48cd-a5b5-c34937bddc2f","f":{"id":"form","v":"3163b16b782f3ff6","text":"Form"},"data":{"name":"3_Antrag_Bearbeiter","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"{hidden|readonly}\n[syncTo][syncTo]\n[syncTo]: /ref\n\n[allDocumentDataValid]: switch\n[allEditableDocumentDataValid]: switch\n\n# Antrag\n\n{readonly}\n[Antragsnummer][applicationNumberTitle]\n\n// applicationNumber should be used in sorting\n{hidden|readonly}\n[Antragsnummer][applicationNumber]\n[applicationNumber]: number\n\n{readonly|datetime}\n[Zeitstempel Erstellung][creationTimestamp]\n[creationTimestamp]: date\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Ersteller][creator]\n[creator]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10\n\n{readonly|children design=\"itm:inventory-card\"}\n[Bestandseintrag][inventoryEntry]\n[inventoryEntry]: /dd51bf3c-69df-4bcd-a630-1a8e0f7dba2e\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Beratender BITM][consultingItco]\n[consultingItco]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n) <required>\n\n{readonly}\n[Antragstitel][applicationTitle]\n[applicationTitle]: text <required>\n\n{readonly|multiline auto-grow max=500}\n[Beschreibung][description]\n[description]: text <required>\n\n{readonly|select}\n[Aktionstyp][actionType]\n[actionType]: select <required help=layoutId> \"003ffe3b-61e1-4553-acb8-1d8e68874ce0\"\n  - ZERO: \"0\"\n  - ONE: 1\n  - TWO: 2\n  - THREE: 3\n  - FOUR: 4\n  - FIVE: 5\n  - INFORMATION: Information\n\n{readonly|switch appearance=\"toggle-text\"}\n[Mitarbeiterdatenbezug][employeeDataReference]\n[employeeDataReference]: switch\n\n{readonly|switch delete-fields-if-false=plannedPilotingDurationInMonths,pilotingEndDate,pilotingComment appearance=\"toggle-text\"}\n[Pilotierung][piloting]\n[piloting]: switch\n\n{readonly|show if piloting}\n[Geplante Dauer der Pilotierung (Angabe in Monaten)][plannedPilotingDurationInMonths]\n[plannedPilotingDurationInMonths]: number <required>\n\n{readonly}\n[Prozess][process]\n[process]: Select <required> \"Wird automatisch berechnet aus **Aktionstyp**, **Mitarbeiterdatenbezug** sowie **Kategorie nach GBV ITM** (letzteres im Bestandseintrag)\"\n  - \n  - NO_ACTIVITY: keine Aktivität im Rahmen der IT-Mitbestimmung\n  - INFORMATION: Informationsprozess\n  - SIMPLE: Vereinfachter Prozess\n  - DETAILED: Detaillierter Prozess\n  - SEPARATE: Gesonderter Prozess\n  - INAPPLICABLE: nicht anwendbar\n\n\n{readonly|switch appearance=\"toggle-text\"}\n[Standortentscheidung][locationDecision]\n[locationDecision]: switch \"Ja: SBR. Nein: ITA/GBR.\"\n\n{readonly|children delete-on-remove}\n[Antragsteller][applicant]\n[applicant]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true}\n[Bearbeiter][editor]\n[editor]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n)\n\n{readonly|switch delete-fields-if-false=applicantSupervisor,applicantSupervisorSignature appearance=\"toggle-text\"}\n[Antragsteller Befugnis (Ist der Antragsteller handlungsbevollmächtigt?)][applicantAuthorization]\n[applicantAuthorization]: switch\n\n{readonly|show if !applicantAuthorization|children delete-on-remove}\n[Antragsteller Vorgesetzter][applicantSupervisor]\n[applicantSupervisor]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{readonly|children delete-on-remove}\n[Gast / Präsentator][guestOrPresenter]\n[guestOrPresenter]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n)\n\n{readonly|date type=\"year-month\"}\n[ITA Sitzungsmonat (AG Wunsch)][itaMeetingMonthByEmployer]\n[itaMeetingMonthByEmployer]: date <required>\n\n{readonly|multiline auto-grow max=500}\n[Kommentar BITM][itcoComment]\n\n# Unterschriften\n\n{readonly|signature}\n[Unterschrift Antragsteller][applicantSignature]\n[applicantSignature]: file <required=\"applicantSignatureAttachments.length === 0\">\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlage Unterschrift Antragsteller][applicantSignatureAttachments]\n[applicantSignatureAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required=\"!applicantSignature.dataUrl\"> \"Als Alternative zu *Unterschrift Antragsteller* kann eine Datei angehängt werden\"\n\n{readonly|show if !applicantAuthorization|signature}\n[Unterschrift Antragsteller Vorgesetzter][applicantSupervisorSignature]\n[applicantSupervisorSignature]: file <required=\"applicantSupervisorSignatureAttachments.length === 0\">\n\n{show if !applicantAuthorization|readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlage Unterschrift Antragsteller Vorgesetzter][applicantSupervisorSignatureAttachments]\n[applicantSupervisorSignatureAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required=\"!applicantSupervisorSignature.dataUrl\"> \"Als Alternative zu *Unterschrift Antragsteller Vorgesetzter* kann eine Datei angehängt werden\"\n\n# Prüfkatalog\n\n{readonly|children delete-on-remove design=\"itm:questionnaire-card\"}\n[Fragebogen][questionnaire]\n[questionnaire]: /86879215-6d39-4a94-b5b4-77d022ca64db <required>\n\n# Präsentation / Anlagen\n\n{show if presentationTemplate.length > 0|readonly|attachment show-download-original-only}\n[Präsentation (Vorlage)][presentationTemplate]\n[presentationTemplate]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Präsentation][presentation]\n[presentation]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required>\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlagen][attachments]\n[attachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{readonly|multiline auto-grow max=500}\n[Nachgereichte Informationen][subsequentlyAddedInformation]\n[subsequentlyAddedInformation]: text\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Nachgereichte Anlagen][subsequentlyAddedAttachments]\n[subsequentlyAddedAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{multiline auto-grow}\n[Weitere Mitteilung an den IT-Ausschuss][additionalMessageToIta]\n\n# Datenschutzstellungnahme\n\n{show if dpoStatementNotRequired|readonly}\n[Stellungnahme DPO ist nicht erforderlich][dpoStatementNotRequired]\n[dpoStatementNotRequired]: switch\n\n{readonly|multiline auto-grow max=5000}\n[Stellungnahme DPO][dpoStatement]\n[dpoStatement]: text \n\n{multiline auto-grow max=5000}\n[Kommentar zur DPO Stellungnahme][commentOnDpoStatement]\n[commentOnDpoStatement]: text ","functions":"","allowedChildrenForms":[],"commands":[],"description":"Phase 1 und 2","theme":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2023-05-23T14:45:41+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2025-05-22T13:49:28+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1747921768931,"ct":1684853141812,"a_depth":4,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"02566e34-c497-4002-96aa-745e406c5439","v":"9aea7df0a5216cb0","cloneOf":{"id":"cc7efcd9-e932-455a-8a77-cb1338b057b7","v":"7bf688ab5ba30aa7","text":"6_Antrag_ITA-Mitglied"},"originalCloneOf":{"id":"cc7efcd9-e932-455a-8a77-cb1338b057b7","v":"7bf688ab5ba30aa7","text":"6_Antrag_ITA-Mitglied"},"previous":{"v":"5858aed856037108"},"p":"03d08db0-f873-48cd-a5b5-c34937bddc2f","f":{"id":"form","v":"3163b16b782f3ff6","text":"Form"},"data":{"name":"K_Antrag_Antragsteller/Bearbeiter","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"{hidden|readonly}\n[syncTo][syncTo]\n[syncTo]: /ref\n\n[allDocumentDataValid]: switch\n[allEditableDocumentDataValid]: switch\n\n# Antrag\n\n{readonly}\n[Antragsnummer][applicationNumberTitle]\n\n// applicationNumber should be used in sorting\n{hidden|readonly}\n[Antragsnummer][applicationNumber]\n[applicationNumber]: number\n\n{readonly|datetime}\n[Zeitstempel Erstellung][creationTimestamp]\n[creationTimestamp]: date\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Ersteller][creator]\n[creator]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10\n\n{readonly|children design=\"itm:inventory-card\"}\n[Bestandseintrag][inventoryEntry]\n[inventoryEntry]: /dd51bf3c-69df-4bcd-a630-1a8e0f7dba2e\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Beratender BITM][consultingItco]\n[consultingItco]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n) <required>\n\n{readonly}\n[Antragstitel][applicationTitle]\n[applicationTitle]: text <required>\n\n{readonly|multiline auto-grow max=500}\n[Beschreibung][description]\n[description]: text <required>\n\n{readonly|select}\n[Aktionstyp][actionType]\n[actionType]: select <required help=layoutId> \"003ffe3b-61e1-4553-acb8-1d8e68874ce0\"\n  - ZERO: \"0\"\n  - ONE: 1\n  - TWO: 2\n  - THREE: 3\n  - FOUR: 4\n  - FIVE: 5\n  - INFORMATION: Information\n\n{readonly|switch appearance=\"toggle-text\"}\n[Mitarbeiterdatenbezug][employeeDataReference]\n[employeeDataReference]: switch\n\n{readonly|switch delete-fields-if-false=plannedPilotingDurationInMonths,pilotingEndDate,pilotingComment appearance=\"toggle-text\"}\n[Pilotierung][piloting]\n[piloting]: switch\n\n{readonly|show if piloting}\n[Geplante Dauer der Pilotierung (Angabe in Monaten)][plannedPilotingDurationInMonths]\n[plannedPilotingDurationInMonths]: number <required>\n\n{readonly}\n[Prozess][process]\n[process]: Select <required> \"Wird automatisch berechnet aus **Aktionstyp**, **Mitarbeiterdatenbezug** sowie **Kategorie nach GBV ITM** (letzteres im Bestandseintrag)\"\n  - \n  - NO_ACTIVITY: keine Aktivität im Rahmen der IT-Mitbestimmung\n  - INFORMATION: Informationsprozess\n  - SIMPLE: Vereinfachter Prozess\n  - DETAILED: Detaillierter Prozess\n  - SEPARATE: Gesonderter Prozess\n  - INAPPLICABLE: nicht anwendbar\n\n{readonly}\n[Prozess (angepasst)][processAdjusted]\n[processAdjusted]: Select\n  - \n  - NO_ACTIVITY: keine Aktivität im Rahmen der IT-Mitbestimmung\n  - INFORMATION: Informationsprozess\n  - SIMPLE: Vereinfachter Prozess\n  - DETAILED: Detaillierter Prozess\n  - SEPARATE: Gesonderter Prozess\n  - INAPPLICABLE: nicht anwendbar\n\n\n\n{readonly|switch appearance=\"toggle-text\"}\n[Standortentscheidung][locationDecision]\n[locationDecision]: switch \"Ja: SBR. Nein: ITA/GBR.\"\n\n{readonly|children delete-on-remove}\n[Antragsteller][applicant]\n[applicant]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true}\n[Bearbeiter][editor]\n[editor]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n)\n\n{readonly|switch delete-fields-if-false=applicantSupervisor,applicantSupervisorSignature appearance=\"toggle-text\"}\n[Antragsteller Befugnis (Ist der Antragsteller handlungsbevollmächtigt?)][applicantAuthorization]\n[applicantAuthorization]: switch\n\n{readonly|show if !applicantAuthorization|children delete-on-remove}\n[Antragsteller Vorgesetzter][applicantSupervisor]\n[applicantSupervisor]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{readonly|children delete-on-remove}\n[Gast / Präsentator][guestOrPresenter]\n[guestOrPresenter]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n)\n\n{readonly|date type=\"year-month\"}\n[ITA Sitzungsmonat (AG Wunsch)][itaMeetingMonthByEmployer]\n[itaMeetingMonthByEmployer]: date \n<required>\n\n{readonly|multiline auto-grow max=500}\n[Kommentar BITM][itcoComment]\n\n# Unterschriften\n\n{readonly|signature}\n[Unterschrift Antragsteller][applicantSignature]\n[applicantSignature]: file <required=\"applicantSignatureAttachments.length === 0\">\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlage Unterschrift Antragsteller][applicantSignatureAttachments]\n[applicantSignatureAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required=\"!applicantSignature.dataUrl\"> \"Als Alternative zu *Unterschrift Antragsteller* kann eine Datei angehängt werden\"\n\n{readonly|show if !applicantAuthorization|signature}\n[Unterschrift Antragsteller Vorgesetzter][applicantSupervisorSignature]\n[applicantSupervisorSignature]: file <required=\"applicantSupervisorSignatureAttachments.length === 0\">\n\n{show if !applicantAuthorization|readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlage Unterschrift Antragsteller Vorgesetzter][applicantSupervisorSignatureAttachments]\n[applicantSupervisorSignatureAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required=\"!applicantSupervisorSignature.dataUrl\"> \"Als Alternative zu *Unterschrift Antragsteller Vorgesetzter* kann eine Datei angehängt werden\"\n\n# Prüfkatalog\n\n{readonly|children delete-on-remove design=\"itm:questionnaire-card\"}\n[Fragebogen][questionnaire]\n[questionnaire]: /86879215-6d39-4a94-b5b4-77d022ca64db <required>\n\n# Präsentation / Anlagen\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Präsentation][presentation]\n[presentation]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required>\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlagen][attachments]\n[attachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{readonly|multiline auto-grow max=500}\n[Nachgereichte Informationen][subsequentlyAddedInformation]\n[subsequentlyAddedInformation]: text\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Nachgereichte Anlagen][subsequentlyAddedAttachments]\n[subsequentlyAddedAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{readonly|multiline auto-grow}\n[Weitere Mitteilung an den IT-Ausschuss][additionalMessageToIta]\n\n# Datenschutzstellungnahme\n\n{show if dpoStatementNotRequired|readonly}\n[Stellungnahme DPO ist nicht erforderlich][dpoStatementNotRequired]\n[dpoStatementNotRequired]: switch\n\n\n{readonly|multiline auto-grow max=5000}\n[Nachträgliche Ergänzung DPO][dpoAdditionalStatement]\n\n{readonly|multiline auto-grow max=5000}\n[Kommentar zur DPO Stellungnahme][commentOnDpoStatement]\n[commentOnDpoStatement]: text \n\n\n\n# Sitzungszuordnung / ITA Kommentare\n\n{readonly|multiline auto-grow max=500}\n[Kommentar IT-Ref][commentItReferee]\n\n{readonly|multiline auto-grow max=500}\n[Kommentar ITA-Vorsitz][commentItaChair]\n\n{readonly|multiline auto-grow max=500}\n[Kommentar ITA Sekretariat][commentItaOffice]\n\n{readonly|date type=\"year-month\"}\n[ITA Sitzungsmonat (ITA)][itaMeetingMonthByIta]\n[itaMeetingMonthByIta]: date (0-n)\n\n{readonly|switch appearance=\"toggle-text\"}\n[Papierentscheid][paperDecision]\n[paperDecision]: switch\n\n# Beschluss / Empfehlung / Klärungsauftrag\n\n{readonly|select delete-fields-if-changed=clarificationOrder,postponementReason}\n[Vertagung/Klärung][postponementClarification]\n[postponementClarification]: select\n  - POSTPONEMENT: Vertagung\n  - CLARIFICATION: Klärungsauftrag\n\n{readonly|select delete-fields-if-changed=itaPublicationComment,locationGbrRecommendation,decisionText,recommendationText}\n[Beschlussart][decisionType]\n[decisionType]: select <required>\n  - RESOLUTION: Beschluss\n  - RECOMMENDATION: Empfehlung\n\n{readonly|show if decisionType === 'RESOLUTION'|multiline auto-grow}\n[Veröffentlichungskommentar ITA][itaPublicationComment]\n\n{readonly|show if decisionType === 'RESOLUTION'|multiline auto-grow}\n[Beschlusstext][decisionText]\n\n{readonly|show if postponementClarification === 'CLARIFICATION'|multiline auto-grow}\n[Klärungsauftrag][clarificationOrder]\n\n{readonly|show if postponementClarification === 'POSTPONEMENT'|multiline auto-grow}\n[Vertagungsgrund][postponementReason]\n\n{readonly|switch appearance=\"toggle-text\"}\n[Wiedervorlage][resubmission]\n[resubmission]: switch\n\n{readonly|show if resubmission}\n[Wiedervorlage Datum][resubmissionDate]\n[resubmissionDate]: date <required>\n\n{readonly|show if resubmission|multiline auto-grow}\n[Wiedervorlage Kommentar][resubmissionComment]\n\n{readonly|show if piloting}\n[Pilotierung Enddatum][pilotingEndDate]\n[pilotingEndDate]: date\n\n{readonly|date}\n[Beschlussdatum][decisionDate]\n[decisionDate]: date <required>\n\n{readonly|date}\n[Sitzungsdatum][sessionDate]\n[sessionDate]: date (0-n) <required>\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Sitzungsleiter][sessionLeader]\n[sessionLeader]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 <required>\n\n{readonly|signature}\n[Unterschrift Sitzungsleiter][sessionLeaderSignature]\n[sessionLeaderSignature]: file <required>\n\n# Klärung\n\n{multiline auto-grow}\n[Klärung des Antragstellers][applicantClarification]\n[applicantClarification]: text <required>\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anhang Klärung des Antragstellers][applicantClarificationAttachment]\n[applicantClarificationAttachment]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)","functions":"","allowedChildrenForms":[],"commands":[],"description":"Phase 1 und 2","theme":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2023-05-25T13:16:35+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2025-08-29T13:32:28+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1756474348233,"ct":1685020595815,"a_depth":4,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"afa8ae9e-ca0b-4e96-8ddb-c6147c6549ac","text":"3_Antrag_Antragsteller","v":"abf3d7eab82a29f9"},"created":{"at":"2023-05-24T08:32:28+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1684917148632,"data":{"allowedChildrenForms":[],"commands":[],"definition":"{hidden|readonly}\n[syncTo][syncTo]\n[syncTo]: /ref\n\n[allDocumentDataValid]: switch\n[allEditableDocumentDataValid]: switch\n\n# Antrag\n\n{readonly}\n[Antragsnummer][applicationNumberTitle]\n\n// applicationNumber should be used in sorting\n{hidden|readonly}\n[Antragsnummer][applicationNumber]\n[applicationNumber]: number\n\n{readonly|datetime}\n[Zeitstempel Erstellung][creationTimestamp]\n[creationTimestamp]: date\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Ersteller][creator]\n[creator]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10\n\n{readonly|children design=\"itm:inventory-card\"}\n[Bestandseintrag][inventoryEntry]\n[inventoryEntry]: /dd51bf3c-69df-4bcd-a630-1a8e0f7dba2e\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Beratender BITM][consultingItco]\n[consultingItco]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n) <required>\n\n{readonly}\n[Antragstitel][applicationTitle]\n[applicationTitle]: text <required>\n\n{readonly|multiline auto-grow max=500}\n[Beschreibung][description]\n[description]: text <required>\n\n{readonly|select}\n[Aktionstyp][actionType]\n[actionType]: select <required help=layoutId> \"003ffe3b-61e1-4553-acb8-1d8e68874ce0\"\n  - ZERO: \"0\"\n  - ONE: 1\n  - TWO: 2\n  - THREE: 3\n  - FOUR: 4\n  - FIVE: 5\n  - INFORMATION: Information\n\n{readonly|switch appearance=\"toggle-text\"}\n[Mitarbeiterdatenbezug][employeeDataReference]\n[employeeDataReference]: switch\n\n{readonly|switch delete-fields-if-false=plannedPilotingDurationInMonths,pilotingEndDate,pilotingComment appearance=\"toggle-text\"}\n[Pilotierung][piloting]\n[piloting]: switch\n\n{readonly|show if piloting}\n[Geplante Dauer der Pilotierung (Angabe in Monaten)][plannedPilotingDurationInMonths]\n[plannedPilotingDurationInMonths]: number <required>\n\n{readonly}\n[Prozess][process]\n[process]: Select <required> \"Wird automatisch berechnet aus **Aktionstyp**, **Mitarbeiterdatenbezug** sowie **Kategorie nach GBV ITM** (letzteres im Bestandseintrag)\"\n  - \n  - NO_ACTIVITY: keine Aktivität im Rahmen der IT-Mitbestimmung\n  - INFORMATION: Informationsprozess\n  - SIMPLE: Vereinfachter Prozess\n  - DETAILED: Detaillierter Prozess\n  - SEPARATE: Gesonderter Prozess\n  - INAPPLICABLE: nicht anwendbar\n\n{readonly}\n[Prozess (angepasst)][processAdjusted]\n[processAdjusted]: Select\n  - \n  - NO_ACTIVITY: keine Aktivität im Rahmen der IT-Mitbestimmung\n  - INFORMATION: Informationsprozess\n  - SIMPLE: Vereinfachter Prozess\n  - DETAILED: Detaillierter Prozess\n  - SEPARATE: Gesonderter Prozess\n  - INAPPLICABLE: nicht anwendbar\n\n\n\n{readonly|switch appearance=\"toggle-text\"}\n[Standortentscheidung][locationDecision]\n[locationDecision]: switch \"Ja: SBR. Nein: ITA/GBR.\"\n\n{readonly|children delete-on-remove}\n[Antragsteller][applicant]\n[applicant]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true}\n[Bearbeiter][editor]\n[editor]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n)\n\n{readonly|switch delete-fields-if-false=applicantSupervisor,applicantSupervisorSignature appearance=\"toggle-text\"}\n[Antragsteller Befugnis (Ist der Antragsteller handlungsbevollmächtigt?)][applicantAuthorization]\n[applicantAuthorization]: switch\n\n{readonly|show if !applicantAuthorization|children delete-on-remove}\n[Antragsteller Vorgesetzter][applicantSupervisor]\n[applicantSupervisor]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{readonly|children delete-on-remove}\n[Gast / Präsentator][guestOrPresenter]\n[guestOrPresenter]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n)\n\n{readonly|date type=\"year-month\"}\n[ITA Sitzungsmonat (AG Wunsch)][itaMeetingMonthByEmployer]\n[itaMeetingMonthByEmployer]: date <required>\n\n{readonly|multiline auto-grow max=500}\n[Kommentar BITM][itcoComment]\n\n# Unterschriften\n\n{readonly|signature}\n[Unterschrift Antragsteller][applicantSignature]\n[applicantSignature]: file <required=\"applicantSignatureAttachments.length === 0\">\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlage Unterschrift Antragsteller][applicantSignatureAttachments]\n[applicantSignatureAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required=\"!applicantSignature.dataUrl\"> \"Als Alternative zu *Unterschrift Antragsteller* kann eine Datei angehängt werden\"\n\n{readonly|show if !applicantAuthorization|signature}\n[Unterschrift Antragsteller Vorgesetzter][applicantSupervisorSignature]\n[applicantSupervisorSignature]: file <required=\"applicantSupervisorSignatureAttachments.length === 0\">\n\n{show if !applicantAuthorization|readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlage Unterschrift Antragsteller Vorgesetzter][applicantSupervisorSignatureAttachments]\n[applicantSupervisorSignatureAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required=\"!applicantSupervisorSignature.dataUrl\"> \"Als Alternative zu *Unterschrift Antragsteller Vorgesetzter* kann eine Datei angehängt werden\"\n\n# Prüfkatalog\n\n{readonly|children delete-on-remove design=\"itm:questionnaire-card\"}\n[Fragebogen][questionnaire]\n[questionnaire]: /86879215-6d39-4a94-b5b4-77d022ca64db <required>\n\n# Präsentation / Anlagen\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Präsentation][presentation]\n[presentation]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required>\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlagen][attachments]\n[attachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{readonly|multiline auto-grow max=500}\n[Nachgereichte Informationen][subsequentlyAddedInformation]\n[subsequentlyAddedInformation]: text\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Nachgereichte Anlagen][subsequentlyAddedAttachments]\n[subsequentlyAddedAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{readonly|multiline auto-grow}\n[Weitere Mitteilung an den IT-Ausschuss][additionalMessageToIta]\n\n# Datenschutzstellungnahme\n\n{readonly|multiline auto-grow max=5000}\n[Stellungnahme DPA][dpaStatement]\n\n{show if dpoStatementNotRequired|readonly}\n[Stellungnahme DPO ist nicht erforderlich][dpoStatementNotRequired]\n[dpoStatementNotRequired]: switch\n\n{readonly|multiline auto-grow max=5000}\n[Nachträgliche Ergänzung DPO][dpoAdditionalStatement]\n\n{readonly|multiline auto-grow max=5000}\n[Kommentar zur DPO Stellungnahme][commentOnDpoStatement]\n[commentOnDpoStatement]: text\n","description":"Phase 1 und 2","functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"4_Antrag_BITM/AntragstellerVorgesetzter/Gast","namedIcon":"","namedIconColor":"","tags":"","theme":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"3163b16b782f3ff6"},"id":"85b423da-a5e7-4012-8992-29ac8505ecca","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-10-13T12:04:07+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"afa8ae9e-ca0b-4e96-8ddb-c6147c6549ac","text":"3_Antrag_Antragsteller","v":"abf3d7eab82a29f9"},"p":"03d08db0-f873-48cd-a5b5-c34937bddc2f","previous":{"v":"7b1a29d0bd81fbbf"},"stamps":[],"t":1760357047557,"v":"abf1de9b4fa66460"},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"4dc0da6b-1dd9-44cc-bcc7-28f4a79b3bbf","text":"5_Antrag_ITA-Mitglied","v":"1f131f5cf63982d2"},"created":{"at":"2023-05-25T12:38:23+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1685018303776,"data":{"allowedChildrenForms":[],"commands":[],"definition":"{hidden|readonly}\n[syncTo][syncTo]\n[syncTo]: /ref\n\n[allDocumentDataValid]: switch\n[allEditableDocumentDataValid]: switch\n\n# Antrag\n\n{readonly}\n[Antragsnummer][applicationNumberTitle]\n\n// applicationNumber should be used in sorting\n{hidden|readonly}\n[Antragsnummer][applicationNumber]\n[applicationNumber]: number\n\n{readonly|datetime}\n[Zeitstempel Erstellung][creationTimestamp]\n[creationTimestamp]: date\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Ersteller][creator]\n[creator]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10\n\n{readonly|children design=\"itm:inventory-card\"}\n[Bestandseintrag][inventoryEntry]\n[inventoryEntry]: /dd51bf3c-69df-4bcd-a630-1a8e0f7dba2e\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Beratender BITM][consultingItco]\n[consultingItco]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n) <required>\n\n{readonly}\n[Antragstitel][applicationTitle]\n[applicationTitle]: text <required>\n\n{readonly|multiline auto-grow max=500}\n[Beschreibung][description]\n[description]: text <required>\n\n{readonly|select}\n[Aktionstyp][actionType]\n[actionType]: select <required help=layoutId> \"003ffe3b-61e1-4553-acb8-1d8e68874ce0\"\n  - ZERO: \"0\"\n  - ONE: 1\n  - TWO: 2\n  - THREE: 3\n  - FOUR: 4\n  - FIVE: 5\n  - INFORMATION: Information\n\n{readonly|switch appearance=\"toggle-text\"}\n[Mitarbeiterdatenbezug][employeeDataReference]\n[employeeDataReference]: switch\n\n{readonly|switch delete-fields-if-false=plannedPilotingDurationInMonths,pilotingEndDate,pilotingComment appearance=\"toggle-text\"}\n[Pilotierung][piloting]\n[piloting]: switch\n\n{readonly|show if piloting}\n[Geplante Dauer der Pilotierung (Angabe in Monaten)][plannedPilotingDurationInMonths]\n[plannedPilotingDurationInMonths]: number <required>\n\n{readonly}\n[Prozess][process]\n[process]: Select <required> \"Wird automatisch berechnet aus **Aktionstyp**, **Mitarbeiterdatenbezug** sowie **Kategorie nach GBV ITM** (letzteres im Bestandseintrag)\"\n  - \n  - NO_ACTIVITY: keine Aktivität im Rahmen der IT-Mitbestimmung\n  - INFORMATION: Informationsprozess\n  - SIMPLE: Vereinfachter Prozess\n  - DETAILED: Detaillierter Prozess\n  - SEPARATE: Gesonderter Prozess\n  - INAPPLICABLE: nicht anwendbar\n\n{readonly}\n[Prozess (angepasst)][processAdjusted]\n[processAdjusted]: Select\n  - \n  - NO_ACTIVITY: keine Aktivität im Rahmen der IT-Mitbestimmung\n  - INFORMATION: Informationsprozess\n  - SIMPLE: Vereinfachter Prozess\n  - DETAILED: Detaillierter Prozess\n  - SEPARATE: Gesonderter Prozess\n  - INAPPLICABLE: nicht anwendbar\n\n\n\n{readonly|switch appearance=\"toggle-text\"}\n[Standortentscheidung][locationDecision]\n[locationDecision]: switch \"Ja: SBR. Nein: ITA/GBR.\"\n\n{readonly|children delete-on-remove}\n[Antragsteller][applicant]\n[applicant]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true}\n[Bearbeiter][editor]\n[editor]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n)\n\n{readonly|switch delete-fields-if-false=applicantSupervisor,applicantSupervisorSignature appearance=\"toggle-text\"}\n[Antragsteller Befugnis (Ist der Antragsteller handlungsbevollmächtigt?)][applicantAuthorization]\n[applicantAuthorization]: switch\n\n{readonly|show if !applicantAuthorization|children delete-on-remove}\n[Antragsteller Vorgesetzter][applicantSupervisor]\n[applicantSupervisor]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{readonly|children delete-on-remove}\n[Gast / Präsentator][guestOrPresenter]\n[guestOrPresenter]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n)\n\n{readonly|date type=\"year-month\"}\n[ITA Sitzungsmonat (AG Wunsch)][itaMeetingMonthByEmployer]\n[itaMeetingMonthByEmployer]: date \n<required>\n\n{readonly|multiline auto-grow max=500}\n[Kommentar BITM][itcoComment]\n\n# Unterschriften\n\n{readonly|signature}\n[Unterschrift Antragsteller][applicantSignature]\n[applicantSignature]: file <required=\"applicantSignatureAttachments.length === 0\">\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlage Unterschrift Antragsteller][applicantSignatureAttachments]\n[applicantSignatureAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required=\"!applicantSignature.dataUrl\"> \"Als Alternative zu *Unterschrift Antragsteller* kann eine Datei angehängt werden\"\n\n{readonly|show if !applicantAuthorization|signature}\n[Unterschrift Antragsteller Vorgesetzter][applicantSupervisorSignature]\n[applicantSupervisorSignature]: file <required=\"applicantSupervisorSignatureAttachments.length === 0\">\n\n{show if !applicantAuthorization|readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlage Unterschrift Antragsteller Vorgesetzter][applicantSupervisorSignatureAttachments]\n[applicantSupervisorSignatureAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required=\"!applicantSupervisorSignature.dataUrl\"> \"Als Alternative zu *Unterschrift Antragsteller Vorgesetzter* kann eine Datei angehängt werden\"\n\n# Prüfkatalog\n\n{readonly|children delete-on-remove design=\"itm:questionnaire-card\"}\n[Fragebogen][questionnaire]\n[questionnaire]: /86879215-6d39-4a94-b5b4-77d022ca64db <required>\n\n# Präsentation / Anlagen\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Präsentation][presentation]\n[presentation]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required>\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlagen][attachments]\n[attachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{readonly|multiline auto-grow max=500}\n[Nachgereichte Informationen][subsequentlyAddedInformation]\n[subsequentlyAddedInformation]: text\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Nachgereichte Anlagen][subsequentlyAddedAttachments]\n[subsequentlyAddedAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{readonly|multiline auto-grow}\n[Weitere Mitteilung an den IT-Ausschuss][additionalMessageToIta]\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlagen ITA Seite][attachmentsIta]\n[attachmentsIta]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n# Datenschutzstellungnahme\n\n{readonly|multiline auto-grow max=5000}\n[Stellungnahme DPA][dpaStatement]\n\n{show if dpoStatementNotRequired|readonly}\n[Stellungnahme DPO ist nicht erforderlich][dpoStatementNotRequired]\n[dpoStatementNotRequired]: switch\n\n\n{readonly|select}\n[Stellungnahme Ampel][dpoStatementRating]\n[dpoStatementRating]: Select \n  - \n  - GOOD <icon=\"fa fa-circle\" iconcolor=\"green\">: Empfehlung\n  - OK <icon=\"fa fa-circle\" iconcolor=\"yellow\">: Empfehlung mit Auflagen\n  - BAD <icon=\"fa fa-circle\" iconcolor=\"red\">: Keine Empfehlung\n  - NOT_APPLICABLE <icon=\"fa fa-circle\" iconcolor=\"blue\">: Neutral / Nicht bewertbar / Nicht bewertet \n\n{readonly|multiline auto-grow max=5000}\n[Stellungnahme DPO][dpoStatement]\n[dpoStatement]: text\n\n{readonly|multiline auto-grow max=5000}\n[Nachträgliche Ergänzung DPO][dpoAdditionalStatement]\n\n{readonly|multiline auto-grow max=5000}\n[Kommentar zur DPO Stellungnahme][commentOnDpoStatement]\n[commentOnDpoStatement]: text \n\n{readonly|multiline auto-grow max=500}\n[Vorschlag Auflagen][dpoProposalConditions]\n\n# Sitzungszuordnung / ITA Kommentare\n\n{readonly|multiline auto-grow max=500}\n[Kommentar IT-Ref][commentItReferee]\n\n{readonly|multiline auto-grow max=500}\n[Kommentar ITA-Vorsitz][commentItaChair]\n\n{readonly|multiline auto-grow max=500}\n[Kommentar ITA Sekretariat][commentItaOffice]\n\n{readonly|date type=\"year-month\"}\n[ITA Sitzungsmonat (ITA)][itaMeetingMonthByIta]\n[itaMeetingMonthByIta]: date (0-n)\n\n{readonly|switch appearance=\"toggle-text\"}\n[Papierentscheid][paperDecision]\n[paperDecision]: switch\n\n# Beschluss / Empfehlung / Klärungsauftrag\n\n{readonly|multiline auto-grow}\n[Beschlussvorschlag][proposalDecision]\n\n{readonly|show if piloting}\n[Pilotierung Enddatum][pilotingEndDate]\n[pilotingEndDate]: date\n\n{readonly|show if piloting|multiline auto-grow}\n[Pilotierung Kommentar][pilotingComment]\n\n{readonly|children delete-on-remove navigate new-commands=81a8087a-f250-4ee0-acba-dd64518b72b1,2811e9f3-0f97-4425-8b4e-fd96493048de,2a90d0b4-3d71-47b6-b30d-7d254d006ef1,f2e863bd-940e-4fa9-8528-6b606ef7ad43}\n[Beschluss/Empfehlung/Klärungsauftrag][decisions]\n[decisions]: /cbdb17cb-885b-4e8b-bfa4-ee22f5c3122f (0-n) <required>","description":"Phase 1 und 2","functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"6_Antrag_IT-Ref/ITA-Vorsitz","namedIcon":"","namedIconColor":"","tags":"","theme":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"3163b16b782f3ff6"},"id":"bbd108c5-a15b-448a-8302-0c97cc5688ab","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-10-13T12:11:55+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"4dc0da6b-1dd9-44cc-bcc7-28f4a79b3bbf","text":"5_Antrag_ITA-Mitglied","v":"1f131f5cf63982d2"},"p":"03d08db0-f873-48cd-a5b5-c34937bddc2f","previous":{"v":"b411df4332e871b3"},"stamps":[],"t":1760357515031,"v":"8afa45d6a6798c1f"},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","c881dec7-95f5-434f-9423-93143aaa976b"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"136b5b34-7b9f-4566-9f40-799296868765","text":"3_Sammelinfo_Admin","v":"c25a2be12759083b"},"created":{"at":"2026-05-07T11:26:32+00:00","backedBy":"","by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":""},"ct":1778153192549,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[],"commands":[],"defaults":"","definition":"{hidden|readonly}\n[syncTo][syncTo]\n[syncTo]: /ref\n\n[allDocumentDataValid]: switch\n[allEditableDocumentDataValid]: switch\n\n{readonly}\n[Sammelinformationsnummer][informationNumberTitle]\n[informationNumberTitle]: text\n\n{text max=100}\n[Sammelinformationstitel][informationTitle]\n[informationTitle]: text <required>\n\n{children disable-remove no-add design=\"itm:inventory-card\"}\n[Bestandseintrag][inventoryEntry]\n[inventoryEntry]: /312af864-b1e6-42cf-b6b1-8ebba22707cb\n\n{multiline auto-grow max=3000}\n[Beschreibung][description]\n[description]: text <required>\n\n{employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true}\n[Verantwortlicher Ansprechpartner Business][responsible]\n[responsible]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n) <required>\n\n{multiline auto-grow max=500}\n[Kommentar BITM][itcoComment]\n[itcoComment]: text\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlagen][attachments]\n[attachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{multiline auto-grow max=500}\n[Kommentar IT-Ref][commentItReferee]\n[commentItReferee]: text\n\n{readonly|datetime}\n[Zeitstempel Erstellung][creationTimestamp]\n[creationTimestamp]: date\n\n{readonly|datetime}\n[Zeitstempel Einreichung][submissionTimestamp]\n[submissionTimestamp]: date\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Ersteller][creator]\n[creator]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10","descendantCommands":[],"description":"","from":[],"functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"X_Sammelinfo_Admin","namedIcon":"","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"relatedDocuments":[],"tags":"","theme":{"id":"","text":"","v":""},"to":[],"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"b0b69a951dde83ea"},"id":"4f9156b5-edad-4770-9451-312a3065174f","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-05-07T11:26:41+00:00","backedBy":"","by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"136b5b34-7b9f-4566-9f40-799296868765","text":"3_Sammelinfo_Admin","v":"c25a2be12759083b"},"p":"c881dec7-95f5-434f-9423-93143aaa976b","previous":{"v":"632bb2ef48de1a7f"},"stamps":[],"t":1778153201111,"v":"bc7fca1879671ad0"},{"id":"0bca16a9-0f48-4b63-8cd2-9abd142246f0","v":"11849604fa6997ce","previous":{"v":"9e21adc730083069"},"p":"c881dec7-95f5-434f-9423-93143aaa976b","f":{"id":"form","v":"b0b69a951dde83ea","text":"Form"},"data":{"name":"2_Sammelinfo_BITM","tags":"","allowUndefinedFields":false,"definition":"{hidden|readonly}\n[syncTo][syncTo]\n[syncTo]: /ref\n\n[allDocumentDataValid]: switch\n[allEditableDocumentDataValid]: switch\n\n{readonly}\n[Sammelinformationsnummer][informationNumberTitle]\n[informationNumberTitle]: text\n\n{readonly|text max=100}\n[Sammelinformationstitel][informationTitle]\n[informationTitle]: text <required>\n\n{children disable-remove no-add design=\"itm:inventory-card\"}\n[Bestandseintrag][inventoryEntry]\n[inventoryEntry]: /1fc12c11-7c26-41e4-9250-b8e3ff306cc5\n\n{readonly|multiline auto-grow max=3000}\n[Beschreibung][description]\n[description]: text <required>\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true}\n[Verantwortlicher Ansprechpartner Business][responsible]\n[responsible]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n) <required>\n\n{readonly|multiline auto-grow max=500}\n[Kommentar BITM][itcoComment]\n[itcoComment]: text\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlagen][attachments]\n[attachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{readonly|multiline auto-grow max=500}\n[Kommentar IT-Ref][commentItReferee]\n[commentItReferee]: text\n\n{readonly|datetime}\n[Zeitstempel Erstellung][creationTimestamp]\n[creationTimestamp]: date\n\n{readonly|datetime}\n[Zeitstempel Einreichung][submissionTimestamp]\n[submissionTimestamp]: date\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Ersteller][creator]\n[creator]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10","functions":"","relatedDocuments":[],"defaults":"","newTemplate":{"id":"","v":"","text":""},"newAction":{"id":"","v":"","text":""},"allowedChildrenForms":[],"commands":[],"descendantCommands":[],"to":[],"from":[],"namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"","v":"","text":""},"description":""},"locks":[],"created":{"at":"2025-07-07T09:46:48+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2025-08-01T07:55:01+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1754034901749,"ct":1751881608930,"a_depth":4,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","c881dec7-95f5-434f-9423-93143aaa976b"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"6c649473-bbea-4eb8-82fd-714a97b185cd","v":"f3adfe76a222e9e0","cloneOf":{"id":"e5da9f31-b1bc-4562-ba5d-b165c1d017b4","v":"f7291ce9f5038804","text":"2_Antrag_AntragstellerVorgesetzter"},"originalCloneOf":{"id":"e5da9f31-b1bc-4562-ba5d-b165c1d017b4","v":"f7291ce9f5038804","text":"2_Antrag_AntragstellerVorgesetzter"},"previous":{"v":"4aa57a79faada5ff"},"p":"03d08db0-f873-48cd-a5b5-c34937bddc2f","f":{"id":"form","v":"3163b16b782f3ff6","text":"Form"},"data":{"name":"2_Antrag_DPO/DPA","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"{hidden|readonly}\n[syncTo][syncTo]\n[syncTo]: /ref\n\n[allDocumentDataValid]: switch\n[allEditableDocumentDataValid]: switch\n\n\n# Antrag\n\n{readonly}\n[Antragsnummer][applicationNumberTitle]\n\n// applicationNumber should be used in sorting\n{hidden|readonly}\n[Antragsnummer][applicationNumber]\n[applicationNumber]: number\n\n{readonly|datetime}\n[Zeitstempel Erstellung][creationTimestamp]\n[creationTimestamp]: date\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Ersteller][creator]\n[creator]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10\n\n{children disable-remove no-add design=\"itm:inventory-card\"}\n[Bestandseintrag][inventoryEntry]\n[inventoryEntry]: /0572195f-176d-40d5-920a-f5b5505e2ef6\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Beratender BITM][consultingItco]\n[consultingItco]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n) <required>\n\n{readonly}\n[Antragstitel][applicationTitle]\n[applicationTitle]: text <required>\n\n{readonly|multiline auto-grow max=500}\n[Beschreibung][description]\n[description]: text <required>\n\n# Unterschriften Vorgesetzter\n\n{show if !applicantAuthorization|readonly|signature}\n[Unterschrift Antragsteller Vorgesetzter][applicantSupervisorSignature]\n[applicantSupervisorSignature]: file <required=\"applicantSupervisorSignatureAttachments.length === 0\">\n\n{show if !applicantAuthorization|readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlage Unterschrift Antragsteller Vorgesetzter][applicantSupervisorSignatureAttachments]\n[applicantSupervisorSignatureAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required=\"!applicantSupervisorSignature.dataUrl\"> \"Als Alternative zu *Unterschrift Antragsteller Vorgesetzter* kann eine Datei angehängt werden\"\n\n# Antrag\n\n{readonly|select}\n[Aktionstyp][actionType]\n[actionType]: select <required help=layoutId> \"003ffe3b-61e1-4553-acb8-1d8e68874ce0\"\n  - ZERO: \"0\"\n  - ONE: 1\n  - TWO: 2\n  - THREE: 3\n  - FOUR: 4\n  - FIVE: 5\n  - INFORMATION: Information\n\n{readonly|switch appearance=\"toggle-text\"}\n[Mitarbeiterdatenbezug][employeeDataReference]\n[employeeDataReference]: switch\n\n{readonly|switch delete-fields-if-false=plannedPilotingDurationInMonths,pilotingEndDate,pilotingComment appearance=\"toggle-text\"}\n[Pilotierung][piloting]\n[piloting]: switch\n\n{readonly|show if piloting}\n[Geplante Dauer der Pilotierung (Angabe in Monaten)][plannedPilotingDurationInMonths]\n[plannedPilotingDurationInMonths]: number <required>\n\n{readonly}\n[Prozess][process]\n[process]: Select <required> \"Wird automatisch berechnet aus **Aktionstyp**, **Mitarbeiterdatenbezug** sowie **Kategorie nach GBV ITM** (letzteres im Bestandseintrag)\"\n  - \n  - NO_ACTIVITY: keine Aktivität im Rahmen der IT-Mitbestimmung\n  - INFORMATION: Informationsprozess\n  - SIMPLE: Vereinfachter Prozess\n  - DETAILED: Detaillierter Prozess\n  - SEPARATE: Gesonderter Prozess\n  - INAPPLICABLE: nicht anwendbar\n\n\n{readonly|switch appearance=\"toggle-text\"}\n[Standortentscheidung][locationDecision]\n[locationDecision]: switch \"Ja: SBR. Nein: ITA/GBR.\"\n\n{readonly|children delete-on-remove}\n[Antragsteller][applicant]\n[applicant]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true}\n[Bearbeiter][editor]\n[editor]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n)\n\n{readonly|switch delete-fields-if-false=applicantSupervisor,applicantSupervisorSignature appearance=\"toggle-text\"}\n[Antragsteller Befugnis (Ist der Antragsteller handlungsbevollmächtigt?)][applicantAuthorization]\n[applicantAuthorization]: switch\n\n{readonly|show if !applicantAuthorization|children delete-on-remove}\n[Antragsteller Vorgesetzter][applicantSupervisor]\n[applicantSupervisor]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{readonly|children delete-on-remove}\n[Gast / Präsentator][guestOrPresenter]\n[guestOrPresenter]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n)\n\n{readonly|date type=\"year-month\"}\n[ITA Sitzungsmonat (AG Wunsch)][itaMeetingMonthByEmployer]\n[itaMeetingMonthByEmployer]: date <required>\n\n{readonly|multiline auto-grow max=500}\n[Kommentar BITM][itcoComment]\n\n# Unterschriften\n\n{readonly|signature}\n[Unterschrift Antragsteller][applicantSignature]\n[applicantSignature]: file <required=\"applicantSignatureAttachments.length === 0\">\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlage Unterschrift Antragsteller][applicantSignatureAttachments]\n[applicantSignatureAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required=\"!applicantSignature.dataUrl\"> \"Als Alternative zu *Unterschrift Antragsteller* kann eine Datei angehängt werden\"\n\n# Prüfkatalog\n\n{readonly|children delete-on-remove design=\"itm:questionnaire-card\"}\n[Fragebogen][questionnaire]\n[questionnaire]: /86879215-6d39-4a94-b5b4-77d022ca64db <required>\n\n# Präsentation / Anlagen\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Präsentation][presentation]\n[presentation]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlagen][attachments]\n[attachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{readonly|multiline auto-grow}\n[Weitere Mitteilung an den IT-Ausschuss][additionalMessageToIta]\n","functions":"","allowedChildrenForms":[],"commands":[],"description":"Phase 1 und 2","theme":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2025-05-19T11:54:11+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2025-05-20T14:51:54+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1747752714218,"ct":1747655651955,"a_depth":4,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"652365db-adf2-49d8-b1b8-f4d826d3f270","text":"6_Antrag_DPO/DPA","v":"00d0c515e7dce072"},"created":{"at":"2023-05-25T15:02:51+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1685026971125,"data":{"allowedChildrenForms":[],"commands":[],"definition":"{hidden|readonly}\n[syncTo][syncTo]\n[syncTo]: /ref\n\n[allDocumentDataValid]: switch\n[allEditableDocumentDataValid]: switch\n\n# Antrag\n\n{readonly}\n[Antragsnummer][applicationNumberTitle]\n\n// applicationNumber should be used in sorting\n{hidden|readonly}\n[Antragsnummer][applicationNumber]\n[applicationNumber]: number\n\n{readonly|datetime}\n[Zeitstempel Erstellung][creationTimestamp]\n[creationTimestamp]: date\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Ersteller][creator]\n[creator]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10\n\n{readonly|children design=\"itm:inventory-card\"}\n[Bestandseintrag][inventoryEntry]\n[inventoryEntry]: /dd51bf3c-69df-4bcd-a630-1a8e0f7dba2e\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Beratender BITM][consultingItco]\n[consultingItco]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n) <required>\n\n{readonly}\n[Antragstitel][applicationTitle]\n[applicationTitle]: text <required>\n\n{readonly|multiline auto-grow max=500}\n[Beschreibung][description]\n[description]: text <required>\n\n{readonly|select}\n[Aktionstyp][actionType]\n[actionType]: select <required help=layoutId> \"003ffe3b-61e1-4553-acb8-1d8e68874ce0\"\n  - ZERO: \"0\"\n  - ONE: 1\n  - TWO: 2\n  - THREE: 3\n  - FOUR: 4\n  - FIVE: 5\n  - INFORMATION: Information\n\n{readonly|switch appearance=\"toggle-text\"}\n[Mitarbeiterdatenbezug][employeeDataReference]\n[employeeDataReference]: switch\n\n{readonly|switch delete-fields-if-false=plannedPilotingDurationInMonths,pilotingEndDate,pilotingComment appearance=\"toggle-text\"}\n[Pilotierung][piloting]\n[piloting]: switch\n\n{readonly|show if piloting}\n[Geplante Dauer der Pilotierung (Angabe in Monaten)][plannedPilotingDurationInMonths]\n[plannedPilotingDurationInMonths]: number <required>\n\n{readonly}\n[Prozess][process]\n[process]: Select <required> \"Wird automatisch berechnet aus **Aktionstyp**, **Mitarbeiterdatenbezug** sowie **Kategorie nach GBV ITM** (letzteres im Bestandseintrag)\"\n  - \n  - NO_ACTIVITY: keine Aktivität im Rahmen der IT-Mitbestimmung\n  - INFORMATION: Informationsprozess\n  - SIMPLE: Vereinfachter Prozess\n  - DETAILED: Detaillierter Prozess\n  - SEPARATE: Gesonderter Prozess\n  - INAPPLICABLE: nicht anwendbar\n\n{readonly}\n[Prozess (angepasst)][processAdjusted]\n[processAdjusted]: Select\n  - \n  - NO_ACTIVITY: keine Aktivität im Rahmen der IT-Mitbestimmung\n  - INFORMATION: Informationsprozess\n  - SIMPLE: Vereinfachter Prozess\n  - DETAILED: Detaillierter Prozess\n  - SEPARATE: Gesonderter Prozess\n  - INAPPLICABLE: nicht anwendbar\n\n\n\n{readonly|switch appearance=\"toggle-text\"}\n[Standortentscheidung][locationDecision]\n[locationDecision]: switch \"Ja: SBR. Nein: ITA/GBR.\"\n\n{readonly|children delete-on-remove}\n[Antragsteller][applicant]\n[applicant]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true}\n[Bearbeiter][editor]\n[editor]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n)\n\n{readonly|switch delete-fields-if-false=applicantSupervisor,applicantSupervisorSignature appearance=\"toggle-text\"}\n[Antragsteller Befugnis (Ist der Antragsteller handlungsbevollmächtigt?)][applicantAuthorization]\n[applicantAuthorization]: switch\n\n{readonly|show if !applicantAuthorization|children delete-on-remove}\n[Antragsteller Vorgesetzter][applicantSupervisor]\n[applicantSupervisor]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{readonly|children delete-on-remove}\n[Gast / Präsentator][guestOrPresenter]\n[guestOrPresenter]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n)\n\n{readonly|date type=\"year-month\"}\n[ITA Sitzungsmonat (AG Wunsch)][itaMeetingMonthByEmployer]\n[itaMeetingMonthByEmployer]: date \n<required>\n\n{readonly|multiline auto-grow max=500}\n[Kommentar BITM][itcoComment]\n\n# Unterschriften\n\n{readonly|signature}\n[Unterschrift Antragsteller][applicantSignature]\n[applicantSignature]: file <required=\"applicantSignatureAttachments.length === 0\">\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlage Unterschrift Antragsteller][applicantSignatureAttachments]\n[applicantSignatureAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required=\"!applicantSignature.dataUrl\"> \"Als Alternative zu *Unterschrift Antragsteller* kann eine Datei angehängt werden\"\n\n{readonly|show if !applicantAuthorization|signature}\n[Unterschrift Antragsteller Vorgesetzter][applicantSupervisorSignature]\n[applicantSupervisorSignature]: file <required=\"applicantSupervisorSignatureAttachments.length === 0\">\n\n{show if !applicantAuthorization|readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlage Unterschrift Antragsteller Vorgesetzter][applicantSupervisorSignatureAttachments]\n[applicantSupervisorSignatureAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required=\"!applicantSupervisorSignature.dataUrl\"> \"Als Alternative zu *Unterschrift Antragsteller Vorgesetzter* kann eine Datei angehängt werden\"\n\n# Prüfkatalog\n\n{readonly|children delete-on-remove design=\"itm:questionnaire-card\"}\n[Fragebogen][questionnaire]\n[questionnaire]: /86879215-6d39-4a94-b5b4-77d022ca64db <required>\n\n# Präsentation / Anlagen\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Präsentation][presentation]\n[presentation]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required>\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlagen][attachments]\n[attachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{readonly|multiline auto-grow max=500}\n[Nachgereichte Informationen][subsequentlyAddedInformation]\n[subsequentlyAddedInformation]: text\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Nachgereichte Anlagen][subsequentlyAddedAttachments]\n[subsequentlyAddedAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{readonly|multiline auto-grow}\n[Weitere Mitteilung an den IT-Ausschuss][additionalMessageToIta]\n\n# Datenschutzstellungnahme\n\n{readonly|multiline auto-grow max=5000}\n[Stellungnahme DPA][dpaStatement]\n\n{show if dpoStatementNotRequired|readonly}\n[Stellungnahme DPO ist nicht erforderlich][dpoStatementNotRequired]\n[dpoStatementNotRequired]: switch\n\n\n{readonly|select}\n[Stellungnahme Ampel][dpoStatementRating]\n[dpoStatementRating]: Select \n  - \n  - GOOD <icon=\"fa fa-circle\" iconcolor=\"green\">: Empfehlung\n  - OK <icon=\"fa fa-circle\" iconcolor=\"yellow\">: Empfehlung mit Auflagen\n  - BAD <icon=\"fa fa-circle\" iconcolor=\"red\">: Keine Empfehlung\n  - NOT_APPLICABLE <icon=\"fa fa-circle\" iconcolor=\"blue\">: Neutral / Nicht bewertbar / Nicht bewertet \n\n{readonly|multiline auto-grow max=5000}\n[Stellungnahme DPO][dpoStatement]\n[dpoStatement]: text\n\n{readonly|multiline auto-grow max=5000}\n[Nachträgliche Ergänzung DPO][dpoAdditionalStatement]\n\n{readonly|multiline auto-grow max=5000}\n[Kommentar zur DPO Stellungnahme][commentOnDpoStatement]\n[commentOnDpoStatement]: text \n\n{readonly|multiline auto-grow max=500}\n[Vorschlag Auflagen][dpoProposalConditions]\n\n# Beschluss / Empfehlung / Klärungsauftrag\n\n{readonly|show if piloting}\n[Pilotierung Enddatum][pilotingEndDate]\n[pilotingEndDate]: date\n\n{readonly|children delete-on-remove navigate new-commands=81a8087a-f250-4ee0-acba-dd64518b72b1,2811e9f3-0f97-4425-8b4e-fd96493048de,2a90d0b4-3d71-47b6-b30d-7d254d006ef1,f2e863bd-940e-4fa9-8528-6b606ef7ad43}\n[Beschluss/Empfehlung/Klärungsauftrag][decisions]\n[decisions]: /030be2b6-fcad-4d3c-b44f-c40618e772c0 (0-n) <required>","description":"Phase 1 und 2","functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"7_Antrag_DPO/DPA","namedIcon":"","namedIconColor":"","tags":"","theme":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"3163b16b782f3ff6"},"id":"b100456f-0d74-4ef5-a76c-9855bddd64cb","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-10-13T12:15:38+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"652365db-adf2-49d8-b1b8-f4d826d3f270","text":"6_Antrag_DPO/DPA","v":"00d0c515e7dce072"},"p":"03d08db0-f873-48cd-a5b5-c34937bddc2f","previous":{"v":"3672f4c82c45b33d"},"stamps":[],"t":1760357738338,"v":"02bff1d2e4b5493d"},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","c881dec7-95f5-434f-9423-93143aaa976b"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2025-07-07T09:46:56+00:00","backedBy":null,"by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":null},"ct":1751881616432,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[],"commands":[],"defaults":"","definition":"{hidden|readonly}\n[syncTo][syncTo]\n[syncTo]: /ref\n\n[allDocumentDataValid]: switch\n[allEditableDocumentDataValid]: switch\n\n{readonly}\n[Sammelinformationsnummer][informationNumberTitle]\n[informationNumberTitle]: text\n\n{text max=100}\n[Sammelinformationstitel][informationTitle]\n[informationTitle]: text <required>\n\n{children disable-remove no-add design=\"itm:inventory-card\"}\n[Bestandseintrag][inventoryEntry]\n[inventoryEntry]: /312af864-b1e6-42cf-b6b1-8ebba22707cb\n\n{multiline auto-grow max=3000}\n[Beschreibung][description]\n[description]: text <required>\n\n{employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true}\n[Verantwortlicher Ansprechpartner Business][responsible]\n[responsible]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n) <required>\n\n{readonly|multiline auto-grow max=500}\n[Kommentar BITM][itcoComment]\n[itcoComment]: text\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlagen][attachments]\n[attachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{multiline auto-grow max=500}\n[Kommentar IT-Ref][commentItReferee]\n[commentItReferee]: text\n\n{readonly|datetime}\n[Zeitstempel Erstellung][creationTimestamp]\n[creationTimestamp]: date\n\n{readonly|datetime}\n[Zeitstempel Einreichung][submissionTimestamp]\n[submissionTimestamp]: date\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Ersteller][creator]\n[creator]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 ","descendantCommands":[],"description":"","from":[],"functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"2_Sammelinfo_IT-Ref","namedIcon":"","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"relatedDocuments":[],"tags":"","theme":{"id":"","text":"","v":""},"to":[],"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"b0b69a951dde83ea"},"id":"19b56bb6-fa63-4238-8c13-5439b507edc2","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-08-01T08:02:50+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"c881dec7-95f5-434f-9423-93143aaa976b","previous":{"v":"58e4263d97aeeb00"},"stamps":[],"t":1754035370921,"v":"00990a55e3163007"},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"6866160a-3fd8-4e3c-b60e-c7f7577a7458","text":"5_Antrag_BITM/Antragsteller/Bearbeiter/Antragstell","v":"d4602cb8fb592955"},"created":{"at":"2023-05-25T10:29:46+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1685010586216,"data":{"allowedChildrenForms":[],"commands":[],"definition":"{hidden|readonly}\n[syncTo][syncTo]\n[syncTo]: /ref\n\n[allDocumentDataValid]: switch\n[allEditableDocumentDataValid]: switch\n\n# Antrag\n\n{readonly}\n[Antragsnummer][applicationNumberTitle]\n\n// applicationNumber should be used in sorting\n{hidden|readonly}\n[Antragsnummer][applicationNumber]\n[applicationNumber]: number\n\n{readonly|datetime}\n[Zeitstempel Erstellung][creationTimestamp]\n[creationTimestamp]: date\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Ersteller][creator]\n[creator]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10\n\n{readonly|children design=\"itm:inventory-card\"}\n[Bestandseintrag][inventoryEntry]\n[inventoryEntry]: /dd51bf3c-69df-4bcd-a630-1a8e0f7dba2e\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Beratender BITM][consultingItco]\n[consultingItco]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n) <required>\n\n{readonly}\n[Antragstitel][applicationTitle]\n[applicationTitle]: text <required>\n\n{readonly|multiline auto-grow max=500}\n[Beschreibung][description]\n[description]: text <required>\n\n{readonly|select}\n[Aktionstyp][actionType]\n[actionType]: select <required help=layoutId> \"003ffe3b-61e1-4553-acb8-1d8e68874ce0\"\n  - ZERO: \"0\"\n  - ONE: 1\n  - TWO: 2\n  - THREE: 3\n  - FOUR: 4\n  - FIVE: 5\n  - INFORMATION: Information\n\n{readonly|switch appearance=\"toggle-text\"}\n[Mitarbeiterdatenbezug][employeeDataReference]\n[employeeDataReference]: switch\n\n{readonly|switch delete-fields-if-false=plannedPilotingDurationInMonths,pilotingEndDate,pilotingComment appearance=\"toggle-text\"}\n[Pilotierung][piloting]\n[piloting]: switch\n\n{readonly|show if piloting}\n[Geplante Dauer der Pilotierung (Angabe in Monaten)][plannedPilotingDurationInMonths]\n[plannedPilotingDurationInMonths]: number <required>\n\n{readonly}\n[Prozess][process]\n[process]: Select <required> \"Wird automatisch berechnet aus **Aktionstyp**, **Mitarbeiterdatenbezug** sowie **Kategorie nach GBV ITM** (letzteres im Bestandseintrag)\"\n  - \n  - NO_ACTIVITY: keine Aktivität im Rahmen der IT-Mitbestimmung\n  - INFORMATION: Informationsprozess\n  - SIMPLE: Vereinfachter Prozess\n  - DETAILED: Detaillierter Prozess\n  - SEPARATE: Gesonderter Prozess\n  - INAPPLICABLE: nicht anwendbar\n\n{readonly}\n[Prozess (angepasst)][processAdjusted]\n[processAdjusted]: Select\n  - \n  - NO_ACTIVITY: keine Aktivität im Rahmen der IT-Mitbestimmung\n  - INFORMATION: Informationsprozess\n  - SIMPLE: Vereinfachter Prozess\n  - DETAILED: Detaillierter Prozess\n  - SEPARATE: Gesonderter Prozess\n  - INAPPLICABLE: nicht anwendbar\n\n\n\n{readonly|switch appearance=\"toggle-text\"}\n[Standortentscheidung][locationDecision]\n[locationDecision]: switch \"Ja: SBR. Nein: ITA/GBR.\"\n\n{readonly|children delete-on-remove}\n[Antragsteller][applicant]\n[applicant]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true}\n[Bearbeiter][editor]\n[editor]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n)\n\n{readonly|switch delete-fields-if-false=applicantSupervisor,applicantSupervisorSignature appearance=\"toggle-text\"}\n[Antragsteller Befugnis (Ist der Antragsteller handlungsbevollmächtigt?)][applicantAuthorization]\n[applicantAuthorization]: switch\n\n{readonly|show if !applicantAuthorization|children delete-on-remove}\n[Antragsteller Vorgesetzter][applicantSupervisor]\n[applicantSupervisor]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{readonly|children delete-on-remove}\n[Gast / Präsentator][guestOrPresenter]\n[guestOrPresenter]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n)\n\n{readonly|date type=\"year-month\"}\n[ITA Sitzungsmonat (AG Wunsch)][itaMeetingMonthByEmployer]\n[itaMeetingMonthByEmployer]: date \n<required>\n\n{readonly|multiline auto-grow max=500}\n[Kommentar BITM][itcoComment]\n\n# Unterschriften\n\n{readonly|signature}\n[Unterschrift Antragsteller][applicantSignature]\n[applicantSignature]: file <required=\"applicantSignatureAttachments.length === 0\">\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlage Unterschrift Antragsteller][applicantSignatureAttachments]\n[applicantSignatureAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required=\"!applicantSignature.dataUrl\"> \"Als Alternative zu *Unterschrift Antragsteller* kann eine Datei angehängt werden\"\n\n{readonly|show if !applicantAuthorization|signature}\n[Unterschrift Antragsteller Vorgesetzter][applicantSupervisorSignature]\n[applicantSupervisorSignature]: file <required=\"applicantSupervisorSignatureAttachments.length === 0\">\n\n{show if !applicantAuthorization|readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlage Unterschrift Antragsteller Vorgesetzter][applicantSupervisorSignatureAttachments]\n[applicantSupervisorSignatureAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required=\"!applicantSupervisorSignature.dataUrl\"> \"Als Alternative zu *Unterschrift Antragsteller Vorgesetzter* kann eine Datei angehängt werden\"\n\n# Prüfkatalog\n\n{readonly|children delete-on-remove design=\"itm:questionnaire-card\"}\n[Fragebogen][questionnaire]\n[questionnaire]: /86879215-6d39-4a94-b5b4-77d022ca64db <required>\n\n# Präsentation / Anlagen\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Präsentation][presentation]\n[presentation]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required>\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlagen][attachments]\n[attachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{readonly|multiline auto-grow max=500}\n[Nachgereichte Informationen][subsequentlyAddedInformation]\n[subsequentlyAddedInformation]: text\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Nachgereichte Anlagen][subsequentlyAddedAttachments]\n[subsequentlyAddedAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{readonly|multiline auto-grow}\n[Weitere Mitteilung an den IT-Ausschuss][additionalMessageToIta]\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlagen ITA Seite][attachmentsIta]\n[attachmentsIta]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n# Datenschutzstellungnahme\n\n{readonly|multiline auto-grow max=5000}\n[Stellungnahme DPA][dpaStatement]\n\n{show if dpoStatementNotRequired|readonly}\n[Stellungnahme DPO ist nicht erforderlich][dpoStatementNotRequired]\n[dpoStatementNotRequired]: switch\n\n\n{readonly|select}\n[Stellungnahme Ampel][dpoStatementRating]\n[dpoStatementRating]: Select \n  - \n  - GOOD <icon=\"fa fa-circle\" iconcolor=\"green\">: Empfehlung\n  - OK <icon=\"fa fa-circle\" iconcolor=\"yellow\">: Empfehlung mit Auflagen\n  - BAD <icon=\"fa fa-circle\" iconcolor=\"red\">: Keine Empfehlung\n  - NOT_APPLICABLE <icon=\"fa fa-circle\" iconcolor=\"blue\">: Neutral / Nicht bewertbar / Nicht bewertet \n\n{readonly|multiline auto-grow max=5000}\n[Stellungnahme DPO][dpoStatement]\n[dpoStatement]: text\n\n{readonly|multiline auto-grow max=5000}\n[Nachträgliche Ergänzung DPO][dpoAdditionalStatement]\n\n{readonly|multiline auto-grow max=5000}\n[Kommentar zur DPO Stellungnahme][commentOnDpoStatement]\n[commentOnDpoStatement]: text \n\n{readonly|multiline auto-grow max=500}\n[Vorschlag Auflagen][dpoProposalConditions]\n\n# Sitzungszuordnung / ITA Kommentare\n\n{readonly|multiline auto-grow max=500}\n[Kommentar IT-Ref][commentItReferee]\n\n{readonly|multiline auto-grow max=500}\n[Kommentar ITA-Vorsitz][commentItaChair]\n\n{readonly|multiline auto-grow max=500}\n[Kommentar ITA Sekretariat][commentItaOffice]\n\n{multiline auto-grow}\n[Kommentar/Notizen ITA Mitglieder][commentItaMembers]\n\n{readonly|date type=\"year-month\"}\n[ITA Sitzungsmonat (ITA)][itaMeetingMonthByIta]\n[itaMeetingMonthByIta]: date (0-n)\n\n{readonly|switch appearance=\"toggle-text\"}\n[Papierentscheid][paperDecision]\n[paperDecision]: switch\n\n# Beschluss / Empfehlung / Klärungsauftrag\n\n{readonly|multiline auto-grow}\n[Beschlussvorschlag][proposalDecision]\n\n{readonly|show if piloting}\n[Pilotierung Enddatum][pilotingEndDate]\n[pilotingEndDate]: date\n\n{readonly|show if piloting|multiline auto-grow}\n[Pilotierung Kommentar][pilotingComment]\n\n{readonly|children delete-on-remove navigate new-commands=81a8087a-f250-4ee0-acba-dd64518b72b1,2811e9f3-0f97-4425-8b4e-fd96493048de,2a90d0b4-3d71-47b6-b30d-7d254d006ef1,f2e863bd-940e-4fa9-8528-6b606ef7ad43}\n[Beschluss/Empfehlung/Klärungsauftrag][decisions]\n[decisions]: /ee60c716-511c-4ef3-a6f6-2c5c8d5bde74 (0-n) <required>","description":"Phase 1 und 2","functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"5_Antrag_ITA-Mitglied","namedIcon":"","namedIconColor":"","tags":"","theme":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"3163b16b782f3ff6"},"id":"4dc0da6b-1dd9-44cc-bcc7-28f4a79b3bbf","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-10-13T12:09:01+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"6866160a-3fd8-4e3c-b60e-c7f7577a7458","text":"5_Antrag_BITM/Antragsteller/Bearbeiter/Antragstell","v":"d4602cb8fb592955"},"p":"03d08db0-f873-48cd-a5b5-c34937bddc2f","previous":{"v":"64629ff6ca2f7ed8"},"stamps":[],"t":1760357341638,"v":"5cdbb6167e35cf33"},{"id":"dd51bf3c-69df-4bcd-a630-1a8e0f7dba2e","v":"931832df4af8c9d7","cloneOf":{"id":"91f74438-399a-4397-a599-a5f386ea0ed8","v":"90c8d44ea6d9b83d","text":"2_Bestandseintrag_Antragsteller/Bearbeiter"},"originalCloneOf":{"id":"91f74438-399a-4397-a599-a5f386ea0ed8","v":"90c8d44ea6d9b83d","text":"2_Bestandseintrag_Antragsteller/Bearbeiter"},"previous":{"v":"02beaffbdec49834"},"p":"50c3c7c5-c3d4-460c-b34d-0d61a4cb09ae","f":{"id":"form","v":"3163b16b782f3ff6","text":"Form"},"data":{"name":"3_Bestandseintrag_Antragsteller/Bearbeiter","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"{hidden|readonly}\n[syncTo][syncTo]\n[syncTo]: /ref\n\n[allDocumentDataValid]: Switch\n\n\n{hidden}\n[Name][name]\n[name]: = functions.name(systemName, inventoryNumberTitle)\n\n{readonly}\n[Bestandslistennummer][inventoryNumberTitle]\n\n// inventoryNumber should be used in sorting\n{hidden|readonly}\n[Bestandslistennummer][inventoryNumber]\n[inventoryNumber]: number\n\n{readonly}\n[Systemname (des Herstellers)][systemName]\n[systemName]: text <required>\n\n{readonly}\n[Interner Name][internalName]\n\n{readonly|ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df creation-location-form=b40fd5c3-1bc2-42b4-a269-f3cb2e9cf477 hide-path}\n[Hersteller][manufacturer]\n[manufacturer]: /e0978a3d-9761-4849-8a44-d22d8a175f87 (0-n) <required>\n\n{readonly|multiline auto-grow=true max=500}\n[Kurzbeschreibung (Zweck)][description]\n[description]: text <required>\n\n{readonly|multiline auto-grow=true max=500}\n[Modulname(n)][moduleNames]\n\n{readonly}\n[Softwareversion][softwareVersion]\n[softwareVersion]: text <required>\n\n{readonly}\n[Kategorie nach GBV ITM][category]\n[category]: Select <required help=layoutId> \"64fda001-597c-4bd2-a2e9-c988f45e43fb\"\n  - ZERO: Kat 0\n  - ONE: Kat 1\n  - TWO: Kat 2\n  - THREE: Kat 3\n\n{readonly|ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Standorte][locations]\n[locations]: /af8aa2f7-1c0b-404d-b6c8-06e5be0ffd38 (0-n) <required>\n\n{readonly|ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Geltungsbereich][scope]\n[scope]: /21a59b67-da7b-4d24-ab4c-001362e46246 (0-n) <required>\n\n{readonly|children delete-on-remove}\n[Prozesseigner][processOwners]\n[processOwners]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{readonly|children delete-on-remove}\n[Prozesseigner Vorgesetzte][processSupervisors]\n[processSupervisors]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{readonly|children delete-on-remove}\n[Systemeigner][systemOwner]\n[systemOwner]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{readonly|multiline auto-grow}\n[Daten-/Dokumenteneignerschaft][dataDocumentOwnership]\n\n\n\n{readonly|now control=datetime}\n[Zeitstempel Erstellung][creationTimestamp]\n[creationTimestamp]: date\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Ersteller][creator]\n[creator]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10\n","functions":"name(nameOfSystem, identifier) {\n  if (identifier) {\n    return `[${identifier}]: ${nameOfSystem}`\n  }\n\n  return nameOfSystem\n}","allowedChildrenForms":[],"commands":[{"id":"76be4f8d-a0ef-40e7-a7eb-552e48cbc3a7","v":"initial","text":"Neu"},{"id":"29679280-6be9-449e-9d8c-8e179950588b","v":"initial","text":"rd:Neu"}],"description":"","theme":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2023-05-23T14:52:31+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2025-05-20T14:36:58+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1747751818285,"ct":1684853551749,"a_depth":4,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","50c3c7c5-c3d4-460c-b34d-0d61a4cb09ae"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"11452ef0-a6c2-49e9-845e-73133019ba59","v":"89796ecfe68b133c","cloneOf":{"id":"50c3c7c5-c3d4-460c-b34d-0d61a4cb09ae","text":"Bestandseintrag","v":"5dca8cc4cfa185cf"},"originalCloneOf":{"id":"50c3c7c5-c3d4-460c-b34d-0d61a4cb09ae","text":"Bestandseintrag","v":"5dca8cc4cfa185cf"},"previous":{"v":"bd362e14a36f2dfd"},"p":"50c3c7c5-c3d4-460c-b34d-0d61a4cb09ae","f":{"id":"form","v":"3163b16b782f3ff6","text":"Form"},"data":{"name":"1_Bestandseintrag_BITM","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"{hidden|readonly}\n[syncTo][syncTo]\n[syncTo]: /ref\n\n[allDocumentDataValid]: Switch\n\n{hidden}\n[Name][name]\n[name]: = functions.name(systemName, inventoryNumberTitle)\n\n{readonly}\n[Bestandslistennummer][inventoryNumberTitle]\n\n// inventoryNumber should be used in sorting\n{hidden|readonly}\n[Bestandslistennummer][inventoryNumber]\n[inventoryNumber]: number\n\n[Systemname (des Herstellers)][systemName]\n[systemName]: text <required>\n[Interner Name][internalName]\n\n{ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df creation-location-form=b40fd5c3-1bc2-42b4-a269-f3cb2e9cf477 hide-path}\n[Hersteller][manufacturer]\n[manufacturer]: /e0978a3d-9761-4849-8a44-d22d8a175f87 (0-n) <required>\n\n{multiline auto-grow=true max=500}\n[Kurzbeschreibung (Zweck)][description]\n[description]: text <required>\n\n{multiline auto-grow=true max=500}\n[Modulname(n)][moduleNames]\n\n[Softwareversion][softwareVersion]\n[softwareVersion]: text <required>\n\n[Kategorie nach GBV ITM][category]\n[category]: Select <required help=layoutId> \"64fda001-597c-4bd2-a2e9-c988f45e43fb\"\n  - ZERO: Kat 0\n  - ONE: Kat 1\n  - TWO: Kat 2\n  - THREE: Kat 3\n\n\n{ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path show-add-all}\n[Standorte][locations]\n[locations]: /af8aa2f7-1c0b-404d-b6c8-06e5be0ffd38 (0-n) <required>\n\n{ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Geltungsbereich][scope]\n[scope]: /21a59b67-da7b-4d24-ab4c-001362e46246 (0-n) <required>\n\n{children delete-on-remove}\n[Prozesseigner][processOwners]\n[processOwners]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{children delete-on-remove}\n[Prozesseigner Vorgesetzte][processSupervisors]\n[processSupervisors]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{children delete-on-remove}\n[Systemeigner][systemOwner]\n[systemOwner]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{multiline auto-grow}\n[Daten-/Dokumenteneignerschaft][dataDocumentOwnership]\n\n\n\n{readonly|now control=datetime}\n[Zeitstempel Erstellung][creationTimestamp]\n[creationTimestamp]: date\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Ersteller][creator]\n[creator]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10\n","functions":"name(nameOfSystem, identifier) {\n  if (identifier) {\n    return `[${identifier}]: ${nameOfSystem}`\n  }\n\n  return nameOfSystem\n}","allowedChildrenForms":[],"commands":[{"id":"76be4f8d-a0ef-40e7-a7eb-552e48cbc3a7","v":"initial","text":"Neu"},{"id":"29679280-6be9-449e-9d8c-8e179950588b","v":"initial","text":"rd:Neu"}],"description":"","theme":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2023-04-28T08:18:48+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"modified":{"at":"2026-05-07T12:47:25+00:00","by":"b7485498-f1f3-4ab1-87d1-9cb63ea890c8","backedBy":"","impersonatedBy":"","from":"","client":"server"},"t":1778158045593,"ct":1682669928305,"a_depth":4,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","50c3c7c5-c3d4-460c-b34d-0d61a4cb09ae"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"435abfe0-01e2-4bae-a38d-9f7b80978fb1","v":"ee3d1746d4c733fd","cloneOf":{"id":"753d7f68-252e-44de-96f0-4794cfb361aa","text":"K_Antrag_ITA-Vorsitz/ITA-Sekretariat","v":"a7dc4b9b74225fd8"},"originalCloneOf":{"id":"753d7f68-252e-44de-96f0-4794cfb361aa","text":"K_Antrag_ITA-Vorsitz/ITA-Sekretariat","v":"a7dc4b9b74225fd8"},"previous":{"v":"2d2ed1fce8a0457b"},"p":"03d08db0-f873-48cd-a5b5-c34937bddc2f","f":{"id":"form","v":"3163b16b782f3ff6","text":"Form"},"data":{"name":"K_Antrag_Admin","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"{hidden}\n[syncTo][syncTo]\n[syncTo]: /ref\n\n[allDocumentDataValid]: switch\n[allEditableDocumentDataValid]: switch\n\n# Antrag\n\n{readonly}\n[Antragsnummer][applicationNumberTitle]\n\n// applicationNumber should be used in sorting\n{hidden|readonly}\n[Antragsnummer][applicationNumber]\n[applicationNumber]: number\n\n{readonly|datetime}\n[Zeitstempel Erstellung][creationTimestamp]\n[creationTimestamp]: date\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Ersteller][creator]\n[creator]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10\n\n{children design=\"itm:inventory-card\"}\n[Bestandseintrag][inventoryEntry]\n[inventoryEntry]: /11452ef0-a6c2-49e9-845e-73133019ba59\n\n{employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Beratender BITM][consultingItco]\n[consultingItco]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n) <required>\n\n[Antragstitel][applicationTitle]\n[applicationTitle]: text <required>\n\n{multiline auto-grow=true}\n[Beschreibung][description]\n[description]: text <required>\n\n{select}\n[Aktionstyp][actionType]\n[actionType]: select <required help=layoutId> \"003ffe3b-61e1-4553-acb8-1d8e68874ce0\"\n  - ZERO: \"0\"\n  - ONE: 1\n  - TWO: 2\n  - THREE: 3\n  - FOUR: 4\n  - FIVE: 5\n  - INFORMATION: Information\n\n{switch appearance=\"toggle-text\"}\n[Mitarbeiterdatenbezug][employeeDataReference]\n[employeeDataReference]: switch\n\n{switch delete-fields-if-false=plannedPilotingDurationInMonths,pilotingEndDate,pilotingComment appearance=\"toggle-text\"}\n[Pilotierung][piloting]\n[piloting]: switch\n\n{show if piloting}\n[Geplante Dauer der Pilotierung (Angabe in Monaten)][plannedPilotingDurationInMonths]\n[plannedPilotingDurationInMonths]: number <required>\n\n{readonly}\n[Prozess][process]\n[process]: Select <required> \"Wird automatisch berechnet aus **Aktionstyp**, **Mitarbeiterdatenbezug** sowie **Kategorie nach GBV ITM** (letzteres im Bestandseintrag)\"\n  - \n  - NO_ACTIVITY: keine Aktivität im Rahmen der IT-Mitbestimmung\n  - INFORMATION: Informationsprozess\n  - SIMPLE: Vereinfachter Prozess\n  - DETAILED: Detaillierter Prozess\n  - SEPARATE: Gesonderter Prozess\n  - INAPPLICABLE: nicht anwendbar\n\n[Prozess (angepasst)][processAdjusted]\n[processAdjusted]: Select\n  - \n  - NO_ACTIVITY: keine Aktivität im Rahmen der IT-Mitbestimmung\n  - INFORMATION: Informationsprozess\n  - SIMPLE: Vereinfachter Prozess\n  - DETAILED: Detaillierter Prozess\n  - SEPARATE: Gesonderter Prozess\n  - INAPPLICABLE: nicht anwendbar\n\n\n\n{switch appearance=\"toggle-text\"}\n[Standortentscheidung][locationDecision]\n[locationDecision]: switch \"Ja: SBR. Nein: ITA/GBR.\"\n\n{children delete-on-remove}\n[Antragsteller][applicant]\n[applicant]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true}\n[Bearbeiter][editor]\n[editor]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n)\n\n{switch delete-fields-if-false=applicantSupervisor,applicantSupervisorSignature appearance=\"toggle-text\"}\n[Antragsteller Befugnis (Ist der Antragsteller handlungsbevollmächtigt?)][applicantAuthorization]\n[applicantAuthorization]: switch\n\n{show if !applicantAuthorization|children delete-on-remove}\n[Antragsteller Vorgesetzter][applicantSupervisor]\n[applicantSupervisor]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{children delete-on-remove}\n[Gast / Präsentator][guestOrPresenter]\n[guestOrPresenter]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n)\n\n{date type=\"year-month\"}\n[ITA Sitzungsmonat (AG Wunsch)][itaMeetingMonthByEmployer]\n[itaMeetingMonthByEmployer]: date \n<required>\n\n{multiline auto-grow=true}\n[Kommentar BITM][itcoComment]\n\n# Unterschriften\n\n{signature}\n[Unterschrift Antragsteller][applicantSignature]\n[applicantSignature]: file <required=\"applicantSignatureAttachments.length === 0\">\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlage Unterschrift Antragsteller][applicantSignatureAttachments]\n[applicantSignatureAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required=\"!applicantSignature.dataUrl\"> \"Als Alternative zu *Unterschrift Antragsteller* kann eine Datei angehängt werden\"\n\n{show if !applicantAuthorization|signature}\n[Unterschrift Antragsteller Vorgesetzter][applicantSupervisorSignature]\n[applicantSupervisorSignature]: file <required=\"applicantSupervisorSignatureAttachments.length === 0\">\n\n{show if !applicantAuthorization|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlage Unterschrift Antragsteller Vorgesetzter][applicantSupervisorSignatureAttachments]\n[applicantSupervisorSignatureAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required=\"!applicantSupervisorSignature.dataUrl\"> \"Als Alternative zu *Unterschrift Antragsteller Vorgesetzter* kann eine Datei angehängt werden\"\n\n# Prüfkatalog\n\n{children delete-on-remove design=\"itm:questionnaire-card\"}\n[Fragebogen][questionnaire]\n[questionnaire]: /b5dcdd5b-6a84-4e13-92a2-052a1f1d1492 <required>\n\n# Präsentation / Anlagen\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Präsentation][presentation]\n[presentation]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required>\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlagen][attachments]\n[attachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{multiline auto-grow max=500}\n[Nachgereichte Informationen][subsequentlyAddedInformation]\n[subsequentlyAddedInformation]: text\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Nachgereichte Anlagen][subsequentlyAddedAttachments]\n[subsequentlyAddedAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{multiline auto-grow}\n[Weitere Mitteilung an den IT-Ausschuss][additionalMessageToIta]\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlagen ITA Seite][attachmentsIta]\n[attachmentsIta]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n# Datenschutzstellungnahme\n\n{show if dpoStatementNotRequired}\n[Stellungnahme DPO ist nicht erforderlich][dpoStatementNotRequired]\n[dpoStatementNotRequired]: switch\n\n\n{select}\n[Stellungnahme Ampel][dpoStatementRating]\n[dpoStatementRating]: Select \n  - \n  - GOOD <icon=\"fa fa-circle\" iconcolor=\"green\">: Empfehlung\n  - OK <icon=\"fa fa-circle\" iconcolor=\"yellow\">: Empfehlung mit Auflagen\n  - BAD <icon=\"fa fa-circle\" iconcolor=\"red\">: Keine Empfehlung\n  - NOT_APPLICABLE <icon=\"fa fa-circle\" iconcolor=\"blue\">: Neutral / Nicht bewertbar / Nicht bewertet \n\n{multiline auto-grow}\n[Stellungnahme DPO][dpoStatement]\n[dpoStatement]: text\n\n{multiline auto-grow max=5000}\n[Kommentar zur DPO Stellungnahme][commentOnDpoStatement]\n[commentOnDpoStatement]: text \n\n{multiline auto-grow}\n[Nachträgliche Ergänzung DPO][dpoAdditionalStatement]\n\n{multiline auto-grow}\n[Vorschlag Auflagen][dpoProposalConditions]\n\n# Sitzungszuordnung / ITA Kommentare\n\n{multiline auto-grow}\n[Kommentar IT-Ref][commentItReferee]\n\n{multiline auto-grow}\n[Kommentar ITA-Vorsitz][commentItaChair]\n\n{multiline auto-grow}\n[Kommentar ITA Sekretariat][commentItaOffice]\n\n{date type=\"year-month\"}\n[ITA Sitzungsmonat (ITA)][itaMeetingMonthByIta]\n[itaMeetingMonthByIta]: date (0-n)\n\n{switch appearance=\"toggle-text\"}\n[Papierentscheid][paperDecision]\n[paperDecision]: switch\n\n# Beschluss / Empfehlung / Klärungsauftrag\n\n{select delete-fields-if-changed=clarificationOrder,postponementReason}\n[Vertagung/Klärung][postponementClarification]\n[postponementClarification]: select\n  - POSTPONEMENT: Vertagung\n  - CLARIFICATION: Klärungsauftrag\n\n{select delete-fields-if-changed=itaPublicationComment,locationGbrRecommendation,decisionText,recommendationText}\n[Beschlussart][decisionType]\n[decisionType]: select <required>\n  - RESOLUTION: Beschluss\n  - RECOMMENDATION: Empfehlung\n\n{show if decisionType === 'RESOLUTION'|multiline auto-grow}\n[Veröffentlichungskommentar ITA][itaPublicationComment]\n\n{show if decisionType === 'RECOMMENDATION'|ref}\n[Standort-/GBR Empfehlung][locationGbrRecommendation]\n[locationGbrRecommendation]: /af8aa2f7-1c0b-404d-b6c8-06e5be0ffd38\n\n{multiline auto-grow}\n[Beschlussvorschlag][proposalDecision]\n\n{show if decisionType === 'RESOLUTION'|multiline auto-grow}\n[Beschlusstext][decisionText]\n\n{show if postponementClarification === 'CLARIFICATION'|multiline auto-grow}\n[Klärungsauftrag][clarificationOrder]\n\n{show if postponementClarification === 'POSTPONEMENT'|multiline auto-grow}\n[Vertagungsgrund][postponementReason]\n\n{switch appearance=\"toggle-text\"}\n[Wiedervorlage][resubmission]\n[resubmission]: switch\n\n{show if resubmission}\n[Wiedervorlage Datum][resubmissionDate]\n[resubmissionDate]: date <required>\n\n{show if resubmission|multiline auto-grow}\n[Wiedervorlage Kommentar][resubmissionComment]\n\n{show if piloting}\n[Pilotierung Enddatum][pilotingEndDate]\n[pilotingEndDate]: date\n\n{show if piloting|multiline auto-grow}\n[Pilotierung Kommentar][pilotingComment]\n\n{switch appearance=\"toggle-text\"}\n[Textbaustein LuVK][textModuleLuVK]\n[textModuleLuVK]: switch\n\n{date}\n[Beschlussdatum][decisionDate]\n[decisionDate]: date <required>\n\n{date}\n[Sitzungsdatum][sessionDate]\n[sessionDate]: date (0-n) <required>\n\n{employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Sitzungsleiter][sessionLeader]\n[sessionLeader]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 <required>\n\n{signature}\n[Unterschrift Sitzungsleiter][sessionLeaderSignature]\n[sessionLeaderSignature]: file <required>\n\n# Klärung\n\n{multiline auto-grow}\n[Klärung des Antragstellers][applicantClarification]\n[applicantClarification]: text <required>\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anhang Klärung des Antragstellers][applicantClarificationAttachment]\n[applicantClarificationAttachment]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)","functions":"","allowedChildrenForms":[],"commands":[],"description":"Wie K_Antrag_ITA-Vorsitz/ITA-Sekretariat","theme":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2024-11-27T09:50:06+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"modified":{"at":"2025-07-17T11:42:35+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1752752555106,"ct":1732701006471,"a_depth":4,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","c881dec7-95f5-434f-9423-93143aaa976b"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"7e43e773-d6fa-4d97-9054-6ab6d21f1904","text":"3_Sammelinfo_Alle","v":"b1dd264dc672c005"},"created":{"at":"2026-05-07T11:26:34+00:00","backedBy":"","by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":""},"ct":1778153194496,"data":{"allowUndefinedFields":false,"allowedChildrenForms":[],"commands":[],"defaults":"","definition":"{hidden|readonly}\n[syncTo][syncTo]\n[syncTo]: /ref\n\n[allDocumentDataValid]: switch\n[allEditableDocumentDataValid]: switch\n\n{readonly}\n[Sammelinformationsnummer][informationNumberTitle]\n[informationNumberTitle]: text\n\n{readonly|text max=100}\n[Sammelinformationstitel][informationTitle]\n[informationTitle]: text <required>\n\n{children disable-remove no-add design=\"itm:inventory-card\"}\n[Bestandseintrag][inventoryEntry]\n[inventoryEntry]: /1fc12c11-7c26-41e4-9250-b8e3ff306cc5\n\n{readonly|multiline auto-grow max=3000}\n[Beschreibung][description]\n[description]: text <required>\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true}\n[Verantwortlicher Ansprechpartner Business][responsible]\n[responsible]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n) <required>\n\n{readonly|multiline auto-grow max=500}\n[Kommentar BITM][itcoComment]\n[itcoComment]: text\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlagen][attachments]\n[attachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{readonly|multiline auto-grow max=500}\n[Kommentar IT-Ref][commentItReferee]\n[commentItReferee]: text\n\n{readonly|datetime}\n[Zeitstempel Erstellung][creationTimestamp]\n[creationTimestamp]: date\n\n{readonly|datetime}\n[Zeitstempel Einreichung][submissionTimestamp]\n[submissionTimestamp]: date\n\n{readonly|datetime}\n[Zeitstempel Annahme][acceptanceTimestamp]\n[acceptanceTimestamp]: date\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Ersteller][creator]\n[creator]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10","descendantCommands":[],"description":"","from":[],"functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"X_Sammelinfo_Alle","namedIcon":"","namedIconColor":"","newAction":{"id":"","text":"","v":""},"newTemplate":{"id":"","text":"","v":""},"relatedDocuments":[],"tags":"","theme":{"id":"","text":"","v":""},"to":[],"uiOptions":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"b0b69a951dde83ea"},"id":"1dd7f11b-2b76-4545-a9dc-776db2ebd88c","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-05-07T11:26:44+00:00","backedBy":"","by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"7e43e773-d6fa-4d97-9054-6ab6d21f1904","text":"3_Sammelinfo_Alle","v":"b1dd264dc672c005"},"p":"c881dec7-95f5-434f-9423-93143aaa976b","previous":{"v":"3f1eaa94fde1add2"},"stamps":[],"t":1778153204694,"v":"76c86fb775001601"},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"85b423da-a5e7-4012-8992-29ac8505ecca","text":"4_Antrag_BITM/Antragsteller/Bearbeiter/Antragstell","v":"9cfc713c54c60556"},"created":{"at":"2025-05-20T14:17:03+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1747750623134,"data":{"allowedChildrenForms":[],"commands":[],"definition":"{hidden|readonly}\n[syncTo][syncTo]\n[syncTo]: /ref\n\n[allDocumentDataValid]: switch\n[allEditableDocumentDataValid]: switch\n\n# Antrag\n\n{readonly}\n[Antragsnummer][applicationNumberTitle]\n\n// applicationNumber should be used in sorting\n{hidden|readonly}\n[Antragsnummer][applicationNumber]\n[applicationNumber]: number\n\n{readonly|datetime}\n[Zeitstempel Erstellung][creationTimestamp]\n[creationTimestamp]: date\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Ersteller][creator]\n[creator]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10\n\n{readonly|children design=\"itm:inventory-card\"}\n[Bestandseintrag][inventoryEntry]\n[inventoryEntry]: /dd51bf3c-69df-4bcd-a630-1a8e0f7dba2e\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Beratender BITM][consultingItco]\n[consultingItco]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n) <required>\n\n{readonly}\n[Antragstitel][applicationTitle]\n[applicationTitle]: text <required>\n\n{readonly|multiline auto-grow max=500}\n[Beschreibung][description]\n[description]: text <required>\n\n{readonly|select}\n[Aktionstyp][actionType]\n[actionType]: select <required help=layoutId> \"003ffe3b-61e1-4553-acb8-1d8e68874ce0\"\n  - ZERO: \"0\"\n  - ONE: 1\n  - TWO: 2\n  - THREE: 3\n  - FOUR: 4\n  - FIVE: 5\n  - INFORMATION: Information\n\n{readonly|switch appearance=\"toggle-text\"}\n[Mitarbeiterdatenbezug][employeeDataReference]\n[employeeDataReference]: switch\n\n{readonly|switch delete-fields-if-false=plannedPilotingDurationInMonths,pilotingEndDate,pilotingComment appearance=\"toggle-text\"}\n[Pilotierung][piloting]\n[piloting]: switch\n\n{readonly|show if piloting}\n[Geplante Dauer der Pilotierung (Angabe in Monaten)][plannedPilotingDurationInMonths]\n[plannedPilotingDurationInMonths]: number <required>\n\n{readonly}\n[Prozess][process]\n[process]: Select <required> \"Wird automatisch berechnet aus **Aktionstyp**, **Mitarbeiterdatenbezug** sowie **Kategorie nach GBV ITM** (letzteres im Bestandseintrag)\"\n  - \n  - NO_ACTIVITY: keine Aktivität im Rahmen der IT-Mitbestimmung\n  - INFORMATION: Informationsprozess\n  - SIMPLE: Vereinfachter Prozess\n  - DETAILED: Detaillierter Prozess\n  - SEPARATE: Gesonderter Prozess\n  - INAPPLICABLE: nicht anwendbar\n\n{readonly}\n[Prozess (angepasst)][processAdjusted]\n[processAdjusted]: Select\n  - \n  - NO_ACTIVITY: keine Aktivität im Rahmen der IT-Mitbestimmung\n  - INFORMATION: Informationsprozess\n  - SIMPLE: Vereinfachter Prozess\n  - DETAILED: Detaillierter Prozess\n  - SEPARATE: Gesonderter Prozess\n  - INAPPLICABLE: nicht anwendbar\n\n\n\n{readonly|switch appearance=\"toggle-text\"}\n[Standortentscheidung][locationDecision]\n[locationDecision]: switch \"Ja: SBR. Nein: ITA/GBR.\"\n\n{readonly|children delete-on-remove}\n[Antragsteller][applicant]\n[applicant]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true}\n[Bearbeiter][editor]\n[editor]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n)\n\n{readonly|switch delete-fields-if-false=applicantSupervisor,applicantSupervisorSignature appearance=\"toggle-text\"}\n[Antragsteller Befugnis (Ist der Antragsteller handlungsbevollmächtigt?)][applicantAuthorization]\n[applicantAuthorization]: switch\n\n{readonly|show if !applicantAuthorization|children delete-on-remove}\n[Antragsteller Vorgesetzter][applicantSupervisor]\n[applicantSupervisor]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{readonly|children delete-on-remove}\n[Gast / Präsentator][guestOrPresenter]\n[guestOrPresenter]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n)\n\n{readonly|date type=\"year-month\"}\n[ITA Sitzungsmonat (AG Wunsch)][itaMeetingMonthByEmployer]\n[itaMeetingMonthByEmployer]: date <required>\n\n{readonly|multiline auto-grow max=500}\n[Kommentar BITM][itcoComment]\n\n# Unterschriften\n\n{readonly|signature}\n[Unterschrift Antragsteller][applicantSignature]\n[applicantSignature]: file <required=\"applicantSignatureAttachments.length === 0\">\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlage Unterschrift Antragsteller][applicantSignatureAttachments]\n[applicantSignatureAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required=\"!applicantSignature.dataUrl\"> \"Als Alternative zu *Unterschrift Antragsteller* kann eine Datei angehängt werden\"\n\n{readonly|show if !applicantAuthorization|signature}\n[Unterschrift Antragsteller Vorgesetzter][applicantSupervisorSignature]\n[applicantSupervisorSignature]: file <required=\"applicantSupervisorSignatureAttachments.length === 0\">\n\n{show if !applicantAuthorization|readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlage Unterschrift Antragsteller Vorgesetzter][applicantSupervisorSignatureAttachments]\n[applicantSupervisorSignatureAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required=\"!applicantSupervisorSignature.dataUrl\"> \"Als Alternative zu *Unterschrift Antragsteller Vorgesetzter* kann eine Datei angehängt werden\"\n\n# Prüfkatalog\n\n{readonly|children delete-on-remove design=\"itm:questionnaire-card\"}\n[Fragebogen][questionnaire]\n[questionnaire]: /86879215-6d39-4a94-b5b4-77d022ca64db <required>\n\n# Präsentation / Anlagen\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Präsentation][presentation]\n[presentation]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required>\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlagen][attachments]\n[attachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{readonly|multiline auto-grow max=500}\n[Nachgereichte Informationen][subsequentlyAddedInformation]\n[subsequentlyAddedInformation]: text\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Nachgereichte Anlagen][subsequentlyAddedAttachments]\n[subsequentlyAddedAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{readonly|multiline auto-grow}\n[Weitere Mitteilung an den IT-Ausschuss][additionalMessageToIta]\n\n# Datenschutzstellungnahme\n\n{readonly|multiline auto-grow max=5000}\n[Stellungnahme DPA][dpaStatement]\n\n{show if dpoStatementNotRequired|readonly}\n[Stellungnahme DPO ist nicht erforderlich][dpoStatementNotRequired]\n[dpoStatementNotRequired]: switch\n\n{readonly|multiline auto-grow max=5000}\n[Nachträgliche Ergänzung DPO][dpoAdditionalStatement]\n\n{multiline auto-grow max=5000}\n[Kommentar zur DPO Stellungnahme][commentOnDpoStatement]\n[commentOnDpoStatement]: text\n","description":"Phase 1 und 2","functions":"","icon":{"dataUrl":null,"fileInfo":{"created":null,"imported":null,"modified":null,"read":null},"iconUrl":null,"mediaInfo":{},"name":"","sha1":null,"size":0,"thumbnailUrl":null,"type":null},"name":"4_Antrag_Antragsteller/Bearbeiter","namedIcon":"","namedIconColor":"","tags":"","theme":{"id":"","text":"","v":""}},"f":{"id":"form","text":"Form","v":"3163b16b782f3ff6"},"id":"eba0ee74-e3ba-4445-a61b-ea7e962a7f82","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-10-13T12:04:52+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"85b423da-a5e7-4012-8992-29ac8505ecca","text":"4_Antrag_BITM/Antragsteller/Bearbeiter/Antragstell","v":"9cfc713c54c60556"},"p":"03d08db0-f873-48cd-a5b5-c34937bddc2f","previous":{"v":"c560353d1af1abfc"},"stamps":[],"t":1760357092469,"v":"aa14d4f3c19547f0"},{"id":"312af864-b1e6-42cf-b6b1-8ebba22707cb","v":"8ccac74343ed2673","cloneOf":{"id":"11452ef0-a6c2-49e9-845e-73133019ba59","text":"1_Bestandseintrag_BITM","v":"9b93767938d39f6f"},"originalCloneOf":{"id":"11452ef0-a6c2-49e9-845e-73133019ba59","text":"1_Bestandseintrag_BITM","v":"9b93767938d39f6f"},"previous":{"v":"46842844cd0eceeb"},"p":"50c3c7c5-c3d4-460c-b34d-0d61a4cb09ae","f":{"id":"form","v":"3163b16b782f3ff6","text":"Form"},"data":{"name":"SI_Bestandseintrag_edit","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"{hidden|readonly}\n[syncTo][syncTo]\n[syncTo]: /ref\n\n[allDocumentDataValid]: Switch\n\n{hidden}\n[Name][name]\n[name]: = functions.name(systemName, inventoryNumberTitle)\n\n{readonly}\n[Bestandslistennummer][inventoryNumberTitle]\n\n// inventoryNumber should be used in sorting\n{hidden|readonly}\n[Bestandslistennummer][inventoryNumber]\n[inventoryNumber]: number\n\n[Systemname (des Herstellers)][systemName]\n[systemName]: text <required>\n[Interner Name][internalName]\n\n{ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df creation-location-form=b40fd5c3-1bc2-42b4-a269-f3cb2e9cf477 hide-path}\n[Hersteller][manufacturer]\n[manufacturer]: /e0978a3d-9761-4849-8a44-d22d8a175f87 (0-n) <required>\n\n{multiline auto-grow=true max=500}\n[Kurzbeschreibung (Zweck)][description]\n[description]: text <required>\n\n{multiline auto-grow=true max=500}\n[Modulname(n)][moduleNames]\n\n[Softwareversion][softwareVersion]\n[softwareVersion]: text <required>\n\n[Kategorie nach GBV ITM][category]\n[category]: Select <required help=layoutId> \"64fda001-597c-4bd2-a2e9-c988f45e43fb\"\n  - ZERO: Kat 0\n  - ONE: Kat 1\n  - TWO: Kat 2\n  - THREE: Kat 3\n\n\n{ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path show-add-all}\n[Standorte][locations]\n[locations]: /af8aa2f7-1c0b-404d-b6c8-06e5be0ffd38 (0-n) <required>\n\n{ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Geltungsbereich][scope]\n[scope]: /21a59b67-da7b-4d24-ab4c-001362e46246 (0-n) <required>\n\n{children delete-on-remove}\n[Prozesseigner][processOwners]\n[processOwners]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{children delete-on-remove}\n[Prozesseigner Vorgesetzte][processSupervisors]\n[processSupervisors]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{children delete-on-remove}\n[Systemeigner][systemOwner]\n[systemOwner]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{multiline auto-grow}\n[Daten-/Dokumenteneignerschaft][dataDocumentOwnership]\n\n\n\n{readonly|now control=datetime}\n[Zeitstempel Erstellung][creationTimestamp]\n[creationTimestamp]: date\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Ersteller][creator]\n[creator]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10\n","functions":"name(nameOfSystem, identifier) {\n  if (identifier) {\n    return `[${identifier}]: ${nameOfSystem}`\n  }\n\n  return nameOfSystem\n}","allowedChildrenForms":[],"commands":[{"id":"76be4f8d-a0ef-40e7-a7eb-552e48cbc3a7","v":"initial","text":"Neu"},{"id":"29679280-6be9-449e-9d8c-8e179950588b","v":"initial","text":"rd:Neu"}],"description":"","theme":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2025-07-08T08:24:38+00:00","backedBy":null,"by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":null},"modified":{"at":"2026-05-07T12:47:25+00:00","by":"b7485498-f1f3-4ab1-87d1-9cb63ea890c8","backedBy":"","impersonatedBy":"","from":"","client":"server"},"t":1778158045594,"ct":1751963078104,"a_depth":4,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","50c3c7c5-c3d4-460c-b34d-0d61a4cb09ae"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"51a7fc42-06e5-4100-836d-1ba43f6604e1","v":"7d8f0a7dad2ff205","cloneOf":{"id":"11452ef0-a6c2-49e9-845e-73133019ba59","v":"fb72d47d983c618c","text":"1_Bestandseintrag_BITM"},"originalCloneOf":{"id":"11452ef0-a6c2-49e9-845e-73133019ba59","v":"fb72d47d983c618c","text":"1_Bestandseintrag_BITM"},"previous":{"v":"bbe5c411eda0700b"},"p":"50c3c7c5-c3d4-460c-b34d-0d61a4cb09ae","f":{"id":"form","v":"3163b16b782f3ff6","text":"Form"},"data":{"name":"2_Bestandseintrag_BITM","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"{hidden|readonly}\n[syncTo][syncTo]\n[syncTo]: /ref\n\n[allDocumentDataValid]: Switch\n\n\n{hidden}\n[Name][name]\n[name]: = functions.name(systemName, inventoryNumberTitle)\n\n{readonly}\n[Bestandslistennummer][inventoryNumberTitle]\n\n// inventoryNumber should be used in sorting\n{hidden|readonly}\n[Bestandslistennummer][inventoryNumber]\n[inventoryNumber]: number\n\n[Systemname (des Herstellers)][systemName]\n[systemName]: text <required>\n[Interner Name][internalName]\n\n{ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df creation-location-form=b40fd5c3-1bc2-42b4-a269-f3cb2e9cf477 hide-path}\n[Hersteller][manufacturer]\n[manufacturer]: /e0978a3d-9761-4849-8a44-d22d8a175f87 (0-n) <required>\n\n{multiline auto-grow=true max=500}\n[Kurzbeschreibung (Zweck)][description]\n[description]: text <required>\n\n{multiline auto-grow=true max=500}\n[Modulname(n)][moduleNames]\n\n[Softwareversion][softwareVersion]\n[softwareVersion]: text <required>\n\n[Kategorie nach GBV ITM][category]\n[category]: Select <required help=layoutId> \"64fda001-597c-4bd2-a2e9-c988f45e43fb\"\n  - ZERO: Kat 0\n  - ONE: Kat 1\n  - TWO: Kat 2\n  - THREE: Kat 3\n\n{ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path show-add-all}\n[Standorte][locations]\n[locations]: /af8aa2f7-1c0b-404d-b6c8-06e5be0ffd38 (0-n) <required>\n\n{ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Geltungsbereich][scope]\n[scope]: /21a59b67-da7b-4d24-ab4c-001362e46246 (0-n) <required>\n\n{children delete-on-remove}\n[Prozesseigner][processOwners]\n[processOwners]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{children delete-on-remove}\n[Prozesseigner Vorgesetzte][processSupervisors]\n[processSupervisors]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{children delete-on-remove}\n[Systemeigner][systemOwner]\n[systemOwner]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{multiline auto-grow}\n[Daten-/Dokumenteneignerschaft][dataDocumentOwnership]\n\n\n\n{readonly|now control=datetime}\n[Zeitstempel Erstellung][creationTimestamp]\n[creationTimestamp]: date\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Ersteller][creator]\n[creator]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10\n","functions":"name(nameOfSystem, identifier) {\n  if (identifier) {\n    return `[${identifier}]: ${nameOfSystem}`\n  }\n\n  return nameOfSystem\n}","allowedChildrenForms":[],"commands":[{"id":"76be4f8d-a0ef-40e7-a7eb-552e48cbc3a7","v":"initial","text":"Neu"},{"id":"29679280-6be9-449e-9d8c-8e179950588b","v":"initial","text":"rd:Neu"}],"description":"","theme":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2023-04-28T10:20:05+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2026-05-07T12:47:25+00:00","by":"b7485498-f1f3-4ab1-87d1-9cb63ea890c8","backedBy":"","impersonatedBy":"","from":"","client":"server"},"t":1778158045589,"ct":1682677205505,"a_depth":4,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","50c3c7c5-c3d4-460c-b34d-0d61a4cb09ae"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"7ee1cdda-663b-4b04-ad47-dc22aae18a3f","v":"ef826d196fc08435","cloneOf":{"id":"24820f19-ae1f-48b2-89e4-f71a2849b5f6","text":"2_Antrag_BITM","v":"0f1315e303936dde"},"originalCloneOf":{"id":"24820f19-ae1f-48b2-89e4-f71a2849b5f6","text":"2_Antrag_BITM","v":"0f1315e303936dde"},"previous":{"v":"85c1a2b8faaf6cd3"},"p":"03d08db0-f873-48cd-a5b5-c34937bddc2f","f":{"id":"form","v":"3163b16b782f3ff6","text":"Form"},"data":{"name":"2_Antrag_Admin","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"{hidden|readonly}\n[syncTo][syncTo]\n[syncTo]: /ref\n\n[allDocumentDataValid]: switch\n[allEditableDocumentDataValid]: switch\n\n\n# Antrag\n\n{readonly}\n[Antragsnummer][applicationNumberTitle]\n\n// applicationNumber should be used in sorting\n{hidden|readonly}\n[Antragsnummer][applicationNumber]\n[applicationNumber]: number\n\n{readonly|datetime}\n[Zeitstempel Erstellung][creationTimestamp]\n[creationTimestamp]: date\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Ersteller][creator]\n[creator]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10\n\n{children disable-remove no-add design=\"itm:inventory-card\"}\n[Bestandseintrag][inventoryEntry]\n[inventoryEntry]: /11452ef0-a6c2-49e9-845e-73133019ba59\n\n{employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Beratender BITM][consultingItco]\n[consultingItco]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n) <required>\n\n[Antragstitel][applicationTitle]\n[applicationTitle]: text <required>\n\n{multiline auto-grow max=500}\n[Beschreibung][description]\n[description]: text <required>\n\n{select}\n[Aktionstyp][actionType]\n[actionType]: select <required help=layoutId> \"003ffe3b-61e1-4553-acb8-1d8e68874ce0\"\n  - ZERO: \"0\"\n  - ONE: 1\n  - TWO: 2\n  - THREE: 3\n  - FOUR: 4\n  - FIVE: 5\n  - INFORMATION: Information\n\n{switch appearance=\"toggle-text\"}\n[Mitarbeiterdatenbezug][employeeDataReference]\n[employeeDataReference]: switch\n\n{switch delete-fields-if-false=plannedPilotingDurationInMonths,pilotingEndDate,pilotingComment appearance=\"toggle-text\"}\n[Pilotierung][piloting]\n[piloting]: switch\n\n{show if piloting}\n[Geplante Dauer der Pilotierung (Angabe in Monaten)][plannedPilotingDurationInMonths]\n[plannedPilotingDurationInMonths]: number <required>\n\n{readonly}\n[Prozess][process]\n[process]: Select <required> \"Wird automatisch berechnet aus **Aktionstyp**, **Mitarbeiterdatenbezug** sowie **Kategorie nach GBV ITM** (letzteres im Bestandseintrag)\"\n  - \n  - NO_ACTIVITY: keine Aktivität im Rahmen der IT-Mitbestimmung\n  - INFORMATION: Informationsprozess\n  - SIMPLE: Vereinfachter Prozess\n  - DETAILED: Detaillierter Prozess\n  - SEPARATE: Gesonderter Prozess\n  - INAPPLICABLE: nicht anwendbar\n\n\n{switch appearance=\"toggle-text\"}\n[Standortentscheidung][locationDecision]\n[locationDecision]: switch \"Ja: SBR. Nein: ITA/GBR.\"\n\n{children delete-on-remove}\n[Antragsteller][applicant]\n[applicant]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Bearbeiter][editor]\n[editor]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n)\n\n{switch delete-fields-if-false=applicantSupervisor,applicantSupervisorSignature appearance=\"toggle-text\"}\n[Antragsteller Befugnis (Ist der Antragsteller handlungsbevollmächtigt?)][applicantAuthorization]\n[applicantAuthorization]: switch\n\n{show if !applicantAuthorization|children delete-on-remove}\n[Antragsteller Vorgesetzter][applicantSupervisor]\n[applicantSupervisor]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{children delete-on-remove}\n[Gast / Präsentator][guestOrPresenter]\n[guestOrPresenter]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n)\n\n{date type=\"year-month\"}\n[ITA Sitzungsmonat (AG Wunsch)][itaMeetingMonthByEmployer]\n[itaMeetingMonthByEmployer]: date <required>\n\n{multiline auto-grow max=500}\n[Kommentar BITM][itcoComment]\n\n# Unterschriften\n\n{signature}\n[Unterschrift Antragsteller][applicantSignature]\n[applicantSignature]: file <required=\"applicantSignatureAttachments.length === 0\">\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlage Unterschrift Antragsteller][applicantSignatureAttachments]\n[applicantSignatureAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required=\"!applicantSignature.dataUrl\"> \"Als Alternative zu *Unterschrift Antragsteller* kann eine Datei angehängt werden\"\n\n{show if !applicantAuthorization|signature}\n[Unterschrift Antragsteller Vorgesetzter][applicantSupervisorSignature]\n[applicantSupervisorSignature]: file <required=\"applicantSupervisorSignatureAttachments.length === 0\">\n\n{show if !applicantAuthorization|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlage Unterschrift Antragsteller Vorgesetzter][applicantSupervisorSignatureAttachments]\n[applicantSupervisorSignatureAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required=\"!applicantSupervisorSignature.dataUrl\"> \"Als Alternative zu *Unterschrift Antragsteller Vorgesetzter* kann eine Datei angehängt werden\"\n\n# Prüfkatalog\n\n{children disable-remove no-add design=\"itm:questionnaire-card\"}\n[Fragebogen][questionnaire]\n[questionnaire]: /b5dcdd5b-6a84-4e13-92a2-052a1f1d1492 <required>\n\n# Präsentation / Anlagen\n\n{show if presentationTemplate.length > 0|readonly|attachment show-download-original-only}\n[Präsentation (Vorlage)][presentationTemplate]\n[presentationTemplate]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Präsentation][presentation]\n[presentation]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlagen][attachments]\n[attachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{multiline auto-grow}\n[Weitere Mitteilung an den IT-Ausschuss][additionalMessageToIta]\n","functions":"","allowedChildrenForms":[],"commands":[],"description":"Wie 2_Antrag_BITM","theme":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2024-11-27T09:47:35+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"modified":{"at":"2025-07-17T11:42:35+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1752752555107,"ct":1732700855764,"a_depth":4,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"0b71e123-3a9b-4cba-b6fd-0d92e77067d2","v":"9c0fb5d12083608d","cloneOf":{"id":"24820f19-ae1f-48b2-89e4-f71a2849b5f6","v":"117aaeb84401d0ad","text":"2_Antrag (In Bearbeitung durch Antragsteller)_BITM"},"originalCloneOf":{"id":"24820f19-ae1f-48b2-89e4-f71a2849b5f6","v":"117aaeb84401d0ad","text":"2_Antrag (In Bearbeitung durch Antragsteller)_BITM"},"previous":{"v":"6e0982cf85e10d4a"},"p":"03d08db0-f873-48cd-a5b5-c34937bddc2f","f":{"id":"form","v":"3163b16b782f3ff6","text":"Form"},"data":{"name":"3_Antrag_BITM","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"{hidden|readonly}\n[syncTo][syncTo]\n[syncTo]: /ref\n\n[allDocumentDataValid]: switch\n[allEditableDocumentDataValid]: switch\n\n# Antrag\n\n{readonly}\n[Antragsnummer][applicationNumberTitle]\n\n// applicationNumber should be used in sorting\n{hidden|readonly}\n[Antragsnummer][applicationNumber]\n[applicationNumber]: number\n\n{readonly|datetime}\n[Zeitstempel Erstellung][creationTimestamp]\n[creationTimestamp]: date\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Ersteller][creator]\n[creator]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10\n\n{children disable-remove no-add design=\"itm:inventory-card\"}\n[Bestandseintrag][inventoryEntry]\n[inventoryEntry]: /51a7fc42-06e5-4100-836d-1ba43f6604e1\n\n{readonly|employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path}\n[Beratender BITM][consultingItco]\n[consultingItco]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n) <required>\n\n[Antragstitel][applicationTitle]\n[applicationTitle]: text <required>\n\n{multiline auto-grow max=500}\n[Beschreibung][description]\n[description]: text <required>\n\n{select}\n[Aktionstyp][actionType]\n[actionType]: select <required help=layoutId> \"003ffe3b-61e1-4553-acb8-1d8e68874ce0\"\n  - ZERO: \"0\"\n  - ONE: 1\n  - TWO: 2\n  - THREE: 3\n  - FOUR: 4\n  - FIVE: 5\n  - INFORMATION: Information\n\n{switch appearance=\"toggle-text\"}\n[Mitarbeiterdatenbezug][employeeDataReference]\n[employeeDataReference]: switch\n\n{switch delete-fields-if-false=plannedPilotingDurationInMonths,pilotingEndDate,pilotingComment appearance=\"toggle-text\"}\n[Pilotierung][piloting]\n[piloting]: switch\n\n{show if piloting}\n[Geplante Dauer der Pilotierung (Angabe in Monaten)][plannedPilotingDurationInMonths]\n[plannedPilotingDurationInMonths]: number <required>\n\n{readonly}\n[Prozess][process]\n[process]: Select <required> \"Wird automatisch berechnet aus **Aktionstyp**, **Mitarbeiterdatenbezug** sowie **Kategorie nach GBV ITM** (letzteres im Bestandseintrag)\"\n  - \n  - NO_ACTIVITY: keine Aktivität im Rahmen der IT-Mitbestimmung\n  - INFORMATION: Informationsprozess\n  - SIMPLE: Vereinfachter Prozess\n  - DETAILED: Detaillierter Prozess\n  - SEPARATE: Gesonderter Prozess\n  - INAPPLICABLE: nicht anwendbar\n\n\n{switch appearance=\"toggle-text\"}\n[Standortentscheidung][locationDecision]\n[locationDecision]: switch \"Ja: SBR. Nein: ITA/GBR.\"\n\n{children delete-on-remove}\n[Antragsteller][applicant]\n[applicant]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{employee-ref ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df hide-path=true}\n[Bearbeiter][editor]\n[editor]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n)\n\n{switch delete-fields-if-false=applicantSupervisor,applicantSupervisorSignature appearance=\"toggle-text\"}\n[Antragsteller Befugnis (Ist der Antragsteller handlungsbevollmächtigt?)][applicantAuthorization]\n[applicantAuthorization]: switch\n\n{show if !applicantAuthorization|children delete-on-remove}\n[Antragsteller Vorgesetzter][applicantSupervisor]\n[applicantSupervisor]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n) <required>\n\n{children delete-on-remove}\n[Gast / Präsentator][guestOrPresenter]\n[guestOrPresenter]: /e733295b-414e-41e7-8430-3129c3856b83 (0-n)\n\n{date type=\"year-month\"}\n[ITA Sitzungsmonat (AG Wunsch)][itaMeetingMonthByEmployer]\n[itaMeetingMonthByEmployer]: date <required>\n\n{multiline auto-grow max=500}\n[Kommentar BITM][itcoComment]\n\n# Unterschriften\n\n{readonly|signature}\n[Unterschrift Antragsteller][applicantSignature]\n[applicantSignature]: file <required=\"applicantSignatureAttachments.length === 0\">\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlage Unterschrift Antragsteller][applicantSignatureAttachments]\n[applicantSignatureAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required=\"!applicantSignature.dataUrl\"> \"Als Alternative zu *Unterschrift Antragsteller* kann eine Datei angehängt werden\"\n\n{readonly|show if !applicantAuthorization|signature}\n[Unterschrift Antragsteller Vorgesetzter][applicantSupervisorSignature]\n[applicantSupervisorSignature]: file <required=\"applicantSupervisorSignatureAttachments.length === 0\">\n\n{show if !applicantAuthorization|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlage Unterschrift Antragsteller Vorgesetzter][applicantSupervisorSignatureAttachments]\n[applicantSupervisorSignatureAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required=\"!applicantSupervisorSignature.dataUrl\"> \"Als Alternative zu *Unterschrift Antragsteller Vorgesetzter* kann eine Datei angehängt werden\"\n\n# Prüfkatalog\n\n{children disable-remove no-add design=\"itm:questionnaire-card\"}\n[Fragebogen][questionnaire]\n[questionnaire]: /b5dcdd5b-6a84-4e13-92a2-052a1f1d1492 <required>\n\n# Präsentation / Anlagen\n\n{show if presentationTemplate.length > 0|readonly|attachment show-download-original-only}\n[Präsentation (Vorlage)][presentationTemplate]\n[presentationTemplate]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Präsentation][presentation]\n[presentation]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n) <required>\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Anlagen][attachments]\n[attachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{readonly|multiline auto-grow max=500}\n[Nachgereichte Informationen][subsequentlyAddedInformation]\n[subsequentlyAddedInformation]: text\n\n{readonly|attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove}\n[Nachgereichte Anlagen][subsequentlyAddedAttachments]\n[subsequentlyAddedAttachments]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{multiline auto-grow}\n[Weitere Mitteilung an den IT-Ausschuss][additionalMessageToIta]\n\n\n# Datenschutzstellungnahme\n\n[Stellungnahme DPO ist nicht erforderlich][dpoStatementNotRequired]\n[dpoStatementNotRequired]: switch\n\n{readonly|multiline auto-grow max=5000}\n[Stellungnahme DPA][dpaStatement]\n\n{readonly|multiline auto-grow max=5000}\n[Stellungnahme DPO][dpoStatement]\n[dpoStatement]: text \n\n{readonly|multiline auto-grow max=5000}\n[Kommentar zur DPO Stellungnahme][commentOnDpoStatement]\n[commentOnDpoStatement]: text \n","functions":"","allowedChildrenForms":[],"commands":[],"description":"Phase 1 und 2","theme":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2023-05-23T14:32:34+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2025-05-22T13:49:28+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1747921768931,"ct":1684852354362,"a_depth":4,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"f4544b6f-1909-49ac-bc8e-3f70db1125f1","v":"7ef4e8f1b7e28c60","previous":{"v":"709eb13d9be52f36"},"p":"a7e146ca-a568-4c84-a6ed-233a0ec98638","f":{"id":"form","v":"42ef1fd37c206edb","text":"Form"},"data":{"name":"Instandhaltungsmaßnahme","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Typ der Maßnahme][typ] {now}[Datum][datum]\n\n[typ]: Select\n  - STOERUNG: Funktionsstörung\n  - KONTROLLE: sicherheits- und messtechnische Kontrolle\n  - INSTANDHALTUNG: Instandhaltung\n  - MELDUNG: Vorkommnismeldung an Behörde und Hersteller\n\n[datum]: date\n\n\n{show if typ === 'STOERUNG'}\n## Funktionsstörung\n\n{multiline auto-grow=true}\n[Beschreibung][beschreibung]\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove=true}\n[Protokoll][protokoll]\n[protokoll]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n\n{show if typ === 'KONTROLLE'}\n## Kontrolle\n\n[Durchgeführt von][durchgefuehrtVon]\n\n{multiline auto-grow=true}\n[Beschreibung][beschreibung]\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove=true}\n[Protokoll][protokoll]\n[protokoll]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n{show if typ === 'INSTANDHALTUNG'}\n## Instandhaltung\n\n{multiline auto-grow=true}\n[Beschreibung][beschreibung]\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove=true}\n[Protokoll][protokoll]\n[protokoll]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)\n\n\n{show if typ === 'MELDUNG'}\n## Vorkommnismeldung\n\n{multiline auto-grow=true}\n[Beschreibung][beschreibung]\n\n{attachment form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\" file-field=\"datei\" name-field=\"name\" delete-on-remove=true}\n[Protokoll][protokoll]\n[protokoll]: /dbee6e16-d63a-493c-bba6-505f79918f9f (0-n)","functions":"","allowedChildrenForms":[],"commands":[],"description":"","theme":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2022-06-22T12:45:21+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-07-27T13:05:21+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1658927121362,"ct":1655901921205,"a_depth":4,"a":["apps","83c76376-420e-4231-9275-d0fe2ab47c32","fdd2f0b2-d628-48b9-a976-1acbf9f1de94","a7e146ca-a568-4c84-a6ed-233a0ec98638"],"a_forms":["folder","application-form","application-form","form-folder"],"inheritedLocks":[null,null,null,null,null],"stamps":[],"dts":1734525782719},{"id":"634b4d86-8b2e-4077-b7ab-5e7b4913ea6c","v":"530c1b6070d7ea84","previous":{"v":"371796e15d700d9d","locks":[]},"p":"0427f795-631c-4965-8a77-455ac3776ee2","f":{"id":"form","v":"f0e1626ad2b3fe9e","text":"Form"},"data":{"name":"Lieferant","description":"","tags":"","definition":"[Firmenname][name]\r\n\r\n[Adresse][adresse]\r\n[adresse]: address\r\n\r\n[Ansprechpartner][ansprechpartner]\r\n\r\n[Telefon][telefonTyp1] [][telefonNummer1]\r\n[telefonTyp1]: select\r\n  - NO: \r\n  - BUSSINESS: Geschäftlich\r\n  - MOBILE: Mobil\r\n  - PRIVATE: Privat\r\n  - FAX: Fax\r\n\r\n{hidden if !telefonNummer1}[Telefon2][telefonTyp2] {hidden if !telefonNummer1}[][telefonNummer2]\r\n[telefonTyp2]: select\r\n  - NO: \r\n  - BUSSINESS: Geschäftlich\r\n  - MOBILE: Mobil\r\n  - PRIVATE: Privat\r\n  - FAX: Fax\r\n\r\n{hidden if !telefonNummer2}[Telefon][telefonTyp3] {hidden if !telefonNummer2}[][nummer3]\r\n[telefonTyp3]: select\r\n  - NO: \r\n  - BUSSINESS: Geschäftlich\r\n  - MOBILE: Mobil\r\n  - PRIVATE: Privat\r\n  - FAX: Fax\r\n\r\n[E-Mail][emailTyp1] [][emailAdresse1] \r\n[emailTyp1]: select\r\n  - NO: \r\n  - BUSINESS: Geschäftlich\r\n  - PRIVATE: Privat\r\n\r\n{hidden if !emailAdresse1}[E-Mail][emailTyp2] {hidden if !emailAdresse1}[][emailAdresse2] \r\n[emailTyp2]: select\r\n  - NO: \r\n  - BUSINESS: Geschäftlich\r\n  - PRIVATE: Privat\r\n\r\n{hidden if !emailAdresse2}[E-Mail][emailTyp3] {hidden if !emailAdresse2}[][emailAdresse3] \r\n[emailTyp3]: select\r\n  - NO: \r\n  - BUSINESS: Geschäftlich\r\n  - PRIVATE: Privat\r\n\r\n","functions":"","semver":"","allowedChildrenForms":[],"useLock":false,"sharedLock":{"id":"","v":"","text":""},"creatorKeys":[],"cloneLock":{"id":"","v":"","text":""},"cloneRoles":[],"layout":{"id":"","v":"","text":""},"color":{"id":"","v":"","text":""},"iconName":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null}},"applicationLayoutOptions":{"id":"","v":"","text":""},"documentLayoutOptions":{"id":"","v":"","text":""}},"locks":[],"created":{"at":"2018-10-26T08:37:23+00:00","by":"2695f56c-96e6-4009-8e2f-d545ea1e02aa","from":"","client":"server"},"modified":{"at":"2019-03-29T11:41:41+01:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1553856101060,"ct":1540543043037,"a_depth":4,"a":["apps","83c76376-420e-4231-9275-d0fe2ab47c32","e117ae4b-b53a-4d37-8e3b-a2764606fd7b","0427f795-631c-4965-8a77-455ac3776ee2"],"a_forms":["folder","application-form","application-form","form-folder"],"inheritedLocks":[null,null,null,null,null],"stamps":[],"dts":1544105331805},{"id":"20b72958-7c4e-4292-b55c-7234d6f18638","v":"2e477e2d184b3b9e","p":"91352b74-c5e5-4c05-aa68-f13b0b723f35","f":{"id":"form","v":"dcc8032a347c59c7","text":"Form"},"data":{"name":"Abhilfemaßnahme","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Bezeichnung][name]\n[Anmerkung][anmerkung]","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2018-05-24T16:28:35+02:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","from":"","client":"server"},"modified":{"at":"2020-10-13T10:18:52+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1602584332695,"ct":1602584332695,"a_depth":4,"a":["apps","83c76376-420e-4231-9275-d0fe2ab47c32","ba440134-1703-495e-b869-0f0c8d447f75","91352b74-c5e5-4c05-aa68-f13b0b723f35"],"a_forms":["folder","application-form","application-form","folder"],"inheritedLocks":[null,null,null,null,null],"stamps":[],"previous":{"v":"ef4e4f8f8f01f364","f":{"id":"form","v":"4fa42fcff3786d1e","text":"Form"}},"dts":1527172116001},{"id":"7894afb7-cbf3-4c0d-96d7-8c48efc1e227","v":"56d3e08febce2696","previous":{"v":"5f4ecdf870fe3646"},"p":"91352b74-c5e5-4c05-aa68-f13b0b723f35","f":{"id":"form","v":"230b4040236561b6","text":"Form"},"data":{"name":"Verarbeitungstätigkeit","tags":"","allowUndefinedFields":false,"definition":"# Allgemein\r\n[Bezeichnung der Verarbeitung][name][Datum der Einführung][datum]\r\n[datum]: date\r\n\r\n[Abteilung][abteilung][Verantwortlicher][verantwortlicher]\r\n\r\n{multiline}\r\n[Zweckbestimmung der Verarbeitung][zweck]\r\n\r\n{ref hide-path=true ancestor-search-limit=2 handle-selected=false}\r\n[Zulässigkeit der Datenerhebung, -verarbeitung und -nutzung (Rechtsgrundlage)][zulaessig]\r\n[zulaessig]: /e86d03d7-1711-4138-b4ee-990efbd1a988 (0-n)\r\n\r\n{hidden if functions.beinhaltetNicht(zulaessig,'18df05f5-2c57-4396-9572-8328a9b38431')}\r\n[Kommentar][kommentarZulaessig]\r\n\r\n{ref hide-path=true ancestor-search-limit=2 handle-selected=false}\r\n[IT-Systeme][itSysteme]\r\n[itSysteme]: /c91f85c0-63af-48ac-bc69-94561b27025a (0-n)\r\n\r\n\r\n{hidden if functions.beinhaltetNicht(itSysteme,'d8d138ba-c44d-43b2-a223-3c52e0403afb')}\r\n[Kommentar][kommentarItSystem]\r\n\r\n{ref hide-path=true ancestor-search-limit=2 handle-selected=false}\r\n[Beschreibung der Kategorien betroffener Personengruppen][personengruppen]\r\n[personengruppen]: /1aecf438-fa25-4295-b753-55253ff04f87 (0-n)\r\n  \r\n{hidden if functions.beinhaltetNicht(personengruppen,'cabe12b6-66d4-4a85-bc76-2445eb050ea6')}\r\n[Kommentar][kommentarpersonengruppen]\r\n\r\n{ref hide-path=true ancestor-search-limit=2 handle-selected=false}\r\n[Beschreibung der diesbezüglichen Daten oder Datenkategorien][datenkategorien]\r\n[datenkategorien]: /b9b67024-6188-454e-9b30-97e752bb0f68 (0-n)\r\n\r\n{hidden if functions.beinhaltetNicht(datenkategorien,'b3814fec-a9fd-44d0-9b23-4022fb71631f')}\r\n[Kommentar][kommentardatenkategorien] \r\n\r\n[Empfänger denen die Daten offen gelegt sind oder werden][empfaenger]\r\n[empfaenger]: select (0-n)\r\n  - intern\r\n  - extern\r\n\r\n{hidden if empfaenger.indexOf('intern') === -1}\r\n[Abteilung/Person][abteilungPerson]\r\n\r\n{hidden if empfaenger.indexOf('extern')=== -1}\r\n[Firma/Name][firma]\r\n\r\n[Datenübermittlung][datenuebermittlung]\r\n[datenuebermittlung]:  select\r\n  - uebermittlung: Datenübermittlung findet nicht in ein Drittland statt und ist auch nicht geplant\r\n  - drittland: Drittland\r\n  - international: internationale Organisation\r\n\r\n{hidden if datenuebermittlung === 'uebermittlung'}\r\n####### \r\n\r\n\r\n[Land][land] [Organisation][organisation]\r\n\r\n{multiline}\r\n[Firma/ Name/ Bezeichnung][firma]\r\n\r\n\r\n[Grundlage der Übermittlung][grundlagenuebermittlung]\r\n[grundlagenuebermittlung]: select\r\n  - angemessenheit: auf Angemessenheitsbeschluss\r\n\r\n  help:\r\n  -----\r\n  # Artikel 41 DSGVO\r\n  **Datenübermittlung auf der Grundlage eines Angemessenheitsbeschlusses**\r\n\r\n  Eine Datenübermittlung darf vorgenommen werden, wenn die Kommission festgestellt hat, \r\n  dass das betreffende Drittland beziehungsweise ein Gebiet oder ein \r\n  Verarbeitungssektor dieses Drittlands oder die betreffende internationale Organisation \r\n  einen angemessenen Schutz bietet. Derartige Datenübermittlungen bedürfen \r\n  keiner weiteren Genehmigung.\r\n      \r\n\r\n{hidden if grundlagenuebermittlung === 'angemessenheit'}\r\n######## \r\n\r\n{ref hide-path=true ancestor-search-limit=2 handle-selected=false}\r\n[Durch geeignete Garantien][garantien]\r\n[garantien]: /51ac1f44-c6fe-4a28-b4fa-7291e4581b1d (0-n) \r\n\r\n{hidden if functions.beinhaltetNicht(garantien,'64db328d-4909-4cc2-9c28-24d7463d7bb7')}\r\n[Kommentar][kommentargarantien] \r\n\r\n\r\n{hidden if datenuebermittlung ==='ausnahmen'|ref hide-path=true ancestor-search-limit=2}\r\n[oder durch Ausnahmen][ausnahmen]\r\n[ausnahmen]: /5a5bfb3c-6aed-478f-a3bf-ab40dc7c8f62 (0-n)\r\n\r\n{hidden if functions.beinhaltetNicht(ausnahmen,'bd82fc65-25c2-45a2-a72e-6cec2340b038')}\r\n[Kommentar][kommentarAusnahmen] \r\n\r\n####### \r\n\r\n{children handle-selected=false show-templates=true template-location-form=3dc78392-be3d-4804-996e-df4bcd1c5ce4 template-location-search-limit=2}[Fristen für die Löschung der Daten][loeschung]\r\n[loeschung]: /3e8f2e25-3e2a-4559-befb-3c65a630f4b2 (0-n)\r\n\r\n[Auftragsverarbeitung][AV]\r\n[AV]: switch\r\n\r\n{ hidden if AV === false }\r\n[AV-Vertrag][avVetrag]\r\n[avVetrag]: /f1edd886-631d-40d3-b2a2-807112d6ab2d\r\n\r\n\r\n# Technische und Organisatorische Maßnahmen\r\n\r\n{ref hide-path=true ancestor-search-limit=2 handle-selected=false}\r\n[Maßnahmen zur Gewährleistung der Vertraulichkeit][massnahmenVertraulichkeit]\r\n[massnahmenVertraulichkeit]: /0cf453d1-8428-4f0a-b820-f31b22bfbfff (0-n)\r\n  \r\n{hidden if functions.beinhaltetNicht(massnahmenVertraulichkeit,'f7a64f9a-af27-4ea8-bf7b-f14581c8363d')}\r\n[Kommentar][kommentarmassnahmenVertraulichkeit] \r\n\r\n{ref hide-path=true ancestor-search-limit=2 handle-selected=false}\r\n[Maßnahmen zur Pseudonymisierung][pseudonymisierung]\r\n[pseudonymisierung]: /405d43a4-7d0f-4ee5-a704-834485a49e05 (0-n)\r\n\r\n{hidden if functions.beinhaltetNicht(pseudonymisierung,'9f873c03-6e80-4a89-b4d0-0894dfebbbb0')}\r\n[Kommentar][kommentarpseudonymisierung] \r\n\r\n{ref hide-path=true ancestor-search-limit=2 handle-selected=false}\r\n[Maßnahme zur Verschlüsselung][verschluesselung]\r\n[verschluesselung]: /2a99ea0c-553f-4891-833e-db02956e0b57 (0-n)\r\n\r\n{hidden if functions.beinhaltetNicht(verschluesselung,'c6f980d7-a7cd-4311-95ba-655d651873ab')}\r\n[Kommentar][kommentarverschluesselung] \r\n\r\n{ref hide-path=true ancestor-search-limit=2 handle-selected=false}\r\n[Maßnahme zur Gewährleistung der Integrität][integritaet]\r\n[integritaet]: /49aaa4b8-995a-4e83-b851-dcd081c574d8 (0-n)\r\n\r\n{hidden if functions.beinhaltetNicht(integritaet,'df5ac3b2-43ea-405c-9aa7-881abb5d3dc7')}\r\n[Kommentar][kommentarintegritaet] \r\n\r\n{ref hide-path=true ancestor-search-limit=2 handle-selected=false}\r\n[Maßnahmen zur Gewährleistung der Verfügbarkeit][verfuegbarkeit]\r\n[verfuegbarkeit]: /e3489c24-44d2-4407-880a-a501ec8be8b0 (0-n)\r\n\r\n{hidden if functions.beinhaltetNicht(verfuegbarkeit,'2863faca-755e-47ba-847c-5d3e34571b8d')}\r\n[Kommentar][kommentarverfuegbarkeit] \r\n\r\n{ref hide-path=true ancestor-search-limit=2 handle-selected=false}\r\n[Maßnahmen zur Gewährleistung der Belastbarkeit von Systemen][belastbarkeit]\r\n[belastbarkeit]: /468454dc-b105-4978-ab8b-604cefc3025f (0-n)\r\n\r\n{hidden if functions.beinhaltetNicht(belastbarkeit,'c2f4cde1-b5d4-4bba-b1d2-bdd00c401af7')}\r\n[Kommentar][kommentarbelastbarkeit] \r\n\r\n{ref hide-path=true ancestor-search-limit=2 handle-selected=false}\r\n[Maßnahmen zur Gewährleistung der Verfügbarkeit nach Zwischenfall][verfuegbarkeitNachZwischenfall]\r\n[verfuegbarkeitNachZwischenfall]: /29c7a599-f793-4654-8ab3-86fc91d3b50d (0-n)\r\n\r\n{hidden if functions.beinhaltetNicht(verfuegbarkeitNachZwischenfall,'93ecc80b-b2f2-42fe-bac1-002b1ae8df87')}\r\n[Kommentar][kommentarverfuegbarkeitNachZwischenfall] \r\n\r\n{ref hide-path=true ancestor-search-limit=2 handle-selected=false}\r\n[Maßnahmen zur regelmäßigen Überprüfung, Bewertung und Evaluierung der vorgenannten Maßnahmen][evaluierung]\r\n[evaluierung]: /45572470-7113-4550-aa45-26577acfa35e (0-n)\r\n\r\n{hidden if functions.beinhaltetNicht(evaluierung,'8c66a36c-849c-4685-8821-de5a8f2e367a')}\r\n[Kommentar][kommentarevaluierung] \r\n\r\n \r\n# Risikobewertung \r\n### Eintrittswahrscheinlichkeit\r\n\r\n[Missbrauchsinteresse][missbrauchsinteresse][Anreiz den Schaden herbeizuführen][schadenHerbeifuehren][Wahrscheinlichkeit unentdeckt zu  bleiben][entdeckungsrisiko][Verarbeitungshäufigkeit][verarbeitungshaeufigkeit]\r\n\r\n\r\n\r\n[missbrauchsinteresse] : select\r\n  - 1: gering \r\n  - 2: mittel\r\n  - 3: hoch\r\n[schadenHerbeifuehren] : select\r\n  - 3: gering \r\n  - 2: mittel\r\n  - 1: hoch\r\n\r\n[entdeckungsrisiko] : select\r\n  - 3: gering \r\n  - 2: mittel\r\n  - 1: hoch  \r\n\r\n[verarbeitungshaeufigkeit] : select\r\n  - 1: gering \r\n  - 2: mittel\r\n  - 3: hoch  \r\n\r\n### Schwere (Auswirkung)\r\n\r\n[Gesundheitliche Auswirkung][gesundheitlich][Finanzielle Auswirkung][finanzielle][Soziale Auswirkung][soziale][Auswirkung auf informationelles Selbstbestimmungsrecht][selbstbestimmungsrecht]\r\n[gesundheitlich] : select\r\n  - 1: gering \r\n  - 2: mittel\r\n  - 3: hoch\r\n\r\n[finanzielle] : select\r\n  - 1: gering \r\n  - 2: mittel\r\n  - 3: hoch    \r\n\r\n[soziale] : select\r\n  - 1: gering \r\n  - 2: mittel\r\n  - 3: hoch  \r\n\r\n[selbstbestimmungsrecht] : select\r\n  - 1: gering \r\n  - 2: mittel\r\n  - 3: hoch \r\n\r\n### Ergebnis zur Ermittlung der Risikoklasse\r\n\r\n{readonly}[Eintrittswahrscheinlichkeit][eintrittswahrscheinlichkeit] {readonly}[Schwere (Auswirkung)][schwere] {readonly | container-css=background:var(--ae-accent-green-600) | hidden if risikoklasseAlsZahl != 1 }[Risikoklasse][risikoklasseAlsZahl] {readonly | container-css=background:var(--ae-accent-orange-500) | hidden if risikoklasseAlsZahl != 2 }[Risikoklasse][risikoklasseAlsZahl] {readonly | container-css=background:var(--ae-accent-red-500) | hidden if risikoklasseAlsZahl != 3 }[Risikoklasse][risikoklasseAlsZahl]\r\n\r\n[eintrittswahrscheinlichkeit]: number = functions.mittelwert(missbrauchsinteresse, schadenHerbeifuehren, entdeckungsrisiko, verarbeitungshaeufigkeit)\r\n[schwere]: number = functions.mittelwert(gesundheitlich, finanzielle, soziale, selbstbestimmungsrecht)\r\n[risikoklasse]: = functions.risikoklasse(eintrittswahrscheinlichkeit, schwere)\r\n[risikoklasseAlsZahl]: = functions.vereinfacheRiskikoklasse(risikoklasse)\r\n\r\n# Datenschutzfolgeabschätzung\r\n\r\n{children}\r\n[Datenschutzfolgeabschätzung][dsfa]\r\n[dsfa]: /451d02a6-cc3f-4d89-b8c3-2c30655372c6 (0-n)\r\n","functions":"mittelwert(...args) {\n  let value = 0\n  for(const arg of args) {\n    value += arg\n  }\n  return Math.round(value / args.length)\n}\n\nrisikoklasse(eintrittswahrscheinlichkeit, schwere) {\n  const schwereToName = {\n    1: 'A',\n    2: 'B',\n    3: 'C'\n  }\n\n  if (!eintrittswahrscheinlichkeit || !schwere || !schwereToName[schwere]) {\n    return ''\n  }\n\n  return `${eintrittswahrscheinlichkeit} ${schwereToName[schwere]}`\n}\n\nvereinfacheRiskikoklasse(risikoklasse) {\n     const classToNumber = {\n      '1 A': '1',\n      '2 A': '1',\n      '3 A': '2',\n      '1 B': '1',\n      '2 B': '2',\n      '3 B': '3',\n      '1 C': '2',\n      '2 C': '3',\n      '3 C': '3'\n    }\n\n    if (!risikoklasse || typeof classToNumber[risikoklasse] === 'undefined') {\n      return ''\n    } \n\n    return classToNumber[risikoklasse]\n}\n\nbeinhaltetNicht(feld, refId) {\n  return !this.beinhaltet(feld,refId)\n}\n\n\nbeinhaltet(feld, refId) {\n  for (const ref of feld) {\n    if (ref.id === refId) {\n      return true\n    }\n  }\n\n  return false\n}","relatedDocuments":[],"defaults":"","newTemplate":{"id":"","v":"","text":""},"newAction":{"id":"","v":"","text":""},"allowedChildrenForms":[],"commands":[],"descendantCommands":[],"to":[],"from":[],"namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"44fcb1b4-940c-4dbe-a648-d004ffd840a5","v":"e22e6ed0e1fb64c3","text":"Default Form Theme"},"description":""},"locks":[],"created":{"at":"2019-04-05T12:24:13+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2025-01-20T08:27:58+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1737361678147,"ct":1737361516840,"a_depth":4,"a":["apps","83c76376-420e-4231-9275-d0fe2ab47c32","ba440134-1703-495e-b869-0f0c8d447f75","91352b74-c5e5-4c05-aa68-f13b0b723f35"],"a_forms":["folder","application-form","application-form","folder"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"69e7c51e-ba71-4a0e-9134-15a020100648","v":"a94f726e84d57b78","previous":{"v":"38f27441ed34c082"},"p":"4ff7b40d-67d1-4a31-bcf8-e8459db63855","f":{"id":"form","v":"d497194b29933d26","text":"Form"},"data":{"name":"Externer Telefonverzeichniseintrag","tags":"      ","allowUndefinedFields":false,"definition":"[Bezeichnung][name]\n\n[Firmenname][firmenname]\n{address button-navigation=true fields=street,streetNumber,supplement,postalCode,city}\n[Adresse][adresse]\n[adresse]: address\n\n[Ansprechpartner][ansprechpartner]\n\n[Festnetz][festnetz]\n\n[Mobil][mobil]\n\n[Fax][fax]\n\n[E-Mail][email]","functions":"","defaults":"","newTemplate":{"id":"","v":"","text":""},"newAction":{"id":"","v":"","text":""},"allowedChildrenForms":[],"commands":[],"namedIcon":"far fa-phone-square","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"","v":"","text":""},"description":""},"locks":[],"created":{"at":"2017-09-15T10:29:31+02:00","by":"","from":"","client":"import"},"modified":{"at":"2023-10-12T11:02:08+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1697108528485,"ct":1697108521318,"a_depth":4,"a":["apps","83c76376-420e-4231-9275-d0fe2ab47c32","921c912f-d932-46d2-b061-ae7539e9a5a8","4ff7b40d-67d1-4a31-bcf8-e8459db63855"],"a_forms":["folder","application-form","application-form","folder"],"inheritedLocks":[null,null,null,null,null],"stamps":[],"dts":1467644261105},{"id":"219525e1-3d7e-4e00-93df-7a751c36195a","v":"c300b3d022ffef25","previous":{"v":"81f0e2cc7e35480d"},"p":"4ff7b40d-67d1-4a31-bcf8-e8459db63855","f":{"id":"form","v":"d497194b29933d26","text":"Form"},"data":{"name":"Interner Telefonverzeichniseintrag","tags":"","allowUndefinedFields":false,"definition":"[Vorname][vorname]\n\n[Name][name]\n\n[Durchwahl][durchwahl]\n\n[Kürzel][kuerzel]\n\n[Mobil][mobil]\n\n[Festnetz][festnetz]\n\n[E-Mail][email]","functions":"","defaults":"","newTemplate":{"id":"","v":"","text":""},"newAction":{"id":"","v":"","text":""},"allowedChildrenForms":[],"commands":[],"namedIcon":"far fa-phone","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"uiOptions":{"id":"","v":"","text":""},"theme":{"id":"","v":"","text":""},"description":""},"locks":[],"created":{"at":"2017-11-28T17:33:34+01:00","by":"","from":"","client":"2d10490a-46c9-46dc-a584-14fa8b5654bf"},"modified":{"at":"2023-10-12T11:01:52+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1697108512086,"ct":1697108477250,"a_depth":4,"a":["apps","83c76376-420e-4231-9275-d0fe2ab47c32","921c912f-d932-46d2-b061-ae7539e9a5a8","4ff7b40d-67d1-4a31-bcf8-e8459db63855"],"a_forms":["folder","application-form","application-form","folder"],"inheritedLocks":[null,null,null,null,null],"stamps":[],"dts":1467644265179},{"id":"77bb245a-dcb6-44d4-9baa-149185d6892c","v":"f166d032e089d9f8","previous":{"v":"6deab18a66e12bdf"},"p":"351909be-5fd2-4c27-834d-3c094a8bade3","f":{"id":"form","v":"4fa42fcff3786d1e","text":"Form"},"data":{"name":"OP Art","tags":"","namedIcon":"","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"{ref hide-path=true ancestor-search-limit=1}\r\n[Kategorie][kategorie]\r\n[kategorie]: /093b2f65-2a18-4639-9a6a-59b9006d52ee\r\n\r\n[Operation][name]\r\n\r\n{ref hide-path=true ancestor-form=c69a0c1c-6c53-40c2-87e8-5ace866bf1df}[Chirurg][chirurg] \r\n[chirurg]: /d2ac3563-3c3f-4f02-b923-9b67abf98d10 (0-n)\r\n\r\n{editor}\r\n[Assistenz][assistenz]\r\n\r\n{ref hide-path=true ancestor-search-limit=1}[OP][op] {ref hide-path=true ancestor-search-limit=1}[Ausweich OP][ausweichOp] \r\n[op]: /62ab4c96-e384-46b4-9d70-cd686193f3d7 (0-n)\r\n[ausweichOp]: /62ab4c96-e384-46b4-9d70-cd686193f3d7 (0-n)\r\n\r\n\r\n[Zeit][zeit] [Kosten][kosten]\r\n\r\n","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2018-09-03T09:58:28+00:00","by":"2695f56c-96e6-4009-8e2f-d545ea1e02aa","from":"","client":"server"},"modified":{"at":"2024-02-13T13:28:53+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1707830933452,"ct":1591966444199,"a_depth":4,"a":["apps","83c76376-420e-4231-9275-d0fe2ab47c32","5f76a5c6-0ebc-4a08-b5ae-84fd3176f9c9","351909be-5fd2-4c27-834d-3c094a8bade3"],"a_forms":["folder","application-form","application-form","folder"],"inheritedLocks":[null,null,null,null,null],"stamps":[],"dts":1566477376402},{"id":"3e8f2e25-3e2a-4559-befb-3c65a630f4b2","v":"091ed2e96254e180","previous":{"v":"d3f4fb7cc95e66a7"},"p":"91352b74-c5e5-4c05-aa68-f13b0b723f35","f":{"id":"form","v":"02cb7a987693d08b","text":"Form"},"data":{"name":"Löschungsfristen","tags":"","namedIcon":"fas fa-calendar-times","namedIconColor":"","icon":{"name":"","size":0,"type":null,"sha1":null,"dataUrl":null,"thumbnailUrl":null,"iconUrl":null,"fileInfo":{"created":null,"read":null,"modified":null,"imported":null},"mediaInfo":{}},"definition":"[Frist][name]\n\n[Anmerkung][anmerkung]","functions":"","allowedChildrenForms":[],"commands":[],"description":""},"locks":[],"created":{"at":"2018-05-24T16:28:36+02:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","from":"","client":"server"},"modified":{"at":"2020-10-13T10:18:53+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1602584333374,"ct":1588927857166,"a_depth":4,"a":["apps","83c76376-420e-4231-9275-d0fe2ab47c32","ba440134-1703-495e-b869-0f0c8d447f75","91352b74-c5e5-4c05-aa68-f13b0b723f35"],"a_forms":["folder","application-form","application-form","folder"],"inheritedLocks":[null,null,null,null,null],"stamps":[],"dts":1527172116682},{"id":"880c69ef-f762-4ef2-9999-ab9aead5eec7","v":"initial","p":"61ccaf6b-af84-4908-aa73-785dffd83c5f","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"[backup] page--shared","applies":"","template":"\n<div class=\"_CSS-informations\" style=\"padding: 0 1rem;\">\n  <div>\n    <div style=\"display: flex; align-items: center;\">\n      <div style=\"font-size: 56px; font-weight: bold;\">eCasting</div>\n      <div style=\"display: inline;\" v-if=\"Aeppic.Account && Aeppic.Account.a.slice(-2)[0] === '1d186897-b005-4541-9592-7fea368746dc'\" class=\"dbps-button\" @click=\"$refs.settingsDialog.show()\">\n        <ae-icon class=\"fa fa-cog\" style=\"margin-right: 0.5rem;\"></ae-icon>\n        eCasting Share\n      </div>\n    </div>\n    <div>\n      <span>Projekt</span>\n      <ae-design class=\"_CSS-value\" name=\"title\" :document=\"locals.project\"></ae-design>\n\n    </div>\n  </div>\n  <ae-design name=\"logo\" :document=\"locals.casting\"></ae-design>\n</div>\n  \n<div class=\"_CSS-container\">\n  \n  <div class=\"_CSS-actions-container\" :class=\"{ '_CSS-actions-container--expanded': locals.expanded }\">\n    <div class=\"_CSS-actions\" v-show=\"!locals.expanded\">\n        <div @click=\"controller.nextView()\" class=\"ae-noselect dbps-button\">\n          <ae-icon v-show=\"locals.view === 'list'\" class=\"fa fa-list\"></ae-icon>\n          <ae-icon v-show=\"locals.view === 'category'\" class=\"fa fa-th\"></ae-icon>\n        </div>\n          <ae-layout  layout-id=\"5e83dff9-c5cc-4e02-aa8f-4d8760d5189c\"\n                      :param-application-folder-id=\"document.id\"\n                      :param-project-id=\"locals.project && locals.project.id\"\n          ></ae-layout>\n          <div>\n            <div class=\"dbps-button\" @click=\"locals.expanded = !locals.expanded\">\n              <ae-icon class=\"fa fa-search\"></ae-icon>\n            </div>\n            <!-- <div class=\"dbps-button\" @click=\"locals.expanded = !locals.expanded\">\n              <ae-icon class=\"fa fa-sliders-h\"></ae-icon>\n            </div> -->\n          </div>\n    </div>\n\n    <div v-if=\"locals.expanded\" class=\"_CSS-sidebar\">\n\n      <div style=\"display:flex;\" @click=\"controller.closeExpanded()\">\n        <ae-icon style=\"margin-left:auto;\" class=\"fal fa-times fa-2x\"></ae-icon>\n      </div>\n\n      <section class=\"_CSS-sidebar__item\">\n        <div class=\"_CSS-filter\" @click=\"controller.resetFilter()\">Reset</div>\n      </section>\n\n      <section class=\"_CSS-sidebar__item\">\n        <div class=\"_CSS-sidebar__header\">\n          Suche\n        </div>\n        <input type=\"text\" class=\"_CSS-search__input\"\n               v-model=\"locals.rawSearchValue\"\n               @input=\"controller.setSearchFilter($event.target.value)\"\n        >\n      </section>\n<!-- v-if=\"locals.view === 'list'\" -->\n      <section class=\"_CSS-sidebar__item\">\n        <div class=\"_CSS-sidebar__header\">\n          Filme\n        </div>\n \n        <div class=\"_CSS-filter\" :class=\"{ '_CSS-filter--active': !locals.filters || locals.filters.movie == null }\" @click=\"controller.resetFilter('movie')\">Alle</div>\n        <template v-if=\"locals.project.data.movies.length > 1\">\n          <ae-design class=\"_CSS-filter\" name=\"title\" v-for=\"movie in locals.project.data.movies\" :document=\"movie\" @click.native=\"controller.setFilterString('movie', 'data.movie.id:' + movie.id)\" :class=\"{ '_CSS-filter--active': locals.filters && locals.filters.movie === 'data.movie.id:' + movie.id }\"></ae-design>\n        </template>\n      </section>\n      \n\n<!-- v-if=\"locals.view === 'list'\" -->\n      <section class=\"_CSS-sidebar__item\">\n        <div class=\"_CSS-sidebar__header\">\n          Rollen\n        </div>\n \n        <div class=\"_CSS-filter\" :class=\"{ '_CSS-filter--active': !locals.filters || locals.filters.roles == null }\" @click=\"controller.resetFilter('roles')\">Alle</div>\n        <template v-for=\"movie in locals.movies\" v-if=\"movie\">\n          <template v-if=\"movie.data.roles.length > 1\">\n            <ae-design class=\"_CSS-filter\" name=\"title\" v-for=\"role in movie.data.roles\" :document=\"role\" @click.native=\"controller.setFilterString('roles', 'data.roles:' + role.id)\" :class=\"{ '_CSS-filter--active': locals.filters && locals.filters.roles === 'data.roles:' + role.id }\"></ae-design>\n          </template>\n        </template>\n        </template>\n      </section> \n\n      <section class=\"_CSS-sidebar__item\">\n        <div class=\"_CSS-sidebar__header\">\n          Bewertung\n        </div> \n\n        <div class=\"_CSS-filter\" :class=\"{ '_CSS-filter--active': !locals.filters || locals.filters.rating == null }\" @click=\"controller.resetFilter('rating')\">Alle</div>\n        <div v-for=\"rating in [1, 2, 3]\" class=\"_CSS-filter\" :class=\"{ '_CSS-filter--active': locals.filters && locals.filters.rating === 'data.rating:' + rating }\" @click=\"controller.setFilterString('rating', 'data.rating:' + rating)\">\n          <ae-icon class=\"fa fa-star\" v-for=\"i in rating\"></ae-icon>\n        </div> \n      </section>\n    </div>\n\n      \n  </div>\n\n  <div class=\"_CSS-body\">\n    <div class=\"_CSS-informations\">\n        <!-- Projekt <ae-design class=\"_CSS-value\" name=\"title\" :document=\"locals.project\"></ae-design>(<ae-design class=\"_CSS-value\" name=\"title\" :document=\"locals.casting\"></ae-design>) -->\n    </div>\n\n    <ae-list\n      v-if=\"locals.view === 'category'\"\n      list-id=\"176fd50d-0463-425d-b0f1-74e7206fa8a1\"\n      :documents=\"locals.models\"\n      param-design=\"card-preselection--interactive\"\n      param-min-column-width=\"220px\"\n      param-max-column-width=\"220px\"\n      param-row-height=\"394px\"\n    ></ae-list>\n    <ae-list\n      v-else-if=\"locals.view === 'list'\"\n      list-id=\"2dab232c-2c8a-4aa4-b3f9-6023a7116161\"\n      :documents=\"locals.models\"\n      param-design=\"card-preselection--interactive\"\n      param-min-column-width=\"220px\"\n      param-max-column-width=\"220px\"\n      param-row-height=\"394px\"\n    ></ae-list> \n  </div>\n\n  <div class=\"_CSS-right-spacer\">\n    <div class=\"_CSS-actions\">\n      <button class=\"dbps-button ae-noselect\" @click=\"controller.nextBy()\" :title=\"'Sortierung: ' + locals.by\">\n        <ae-icon v-show=\"locals.by === 'created.at'\" class=\"fa fa-calendar\"></ae-icon>\n        <ae-icon v-show=\"locals.by === 'data.name'\" class=\"fa fa-font\"></ae-icon>\n        <ae-icon v-show=\"locals.by === 'manual'\" class=\"fa fa-trophy\"></ae-icon>\n      </button>\n  \n       \n      <button class=\"dbps-button ae-noselect\" @click=\"controller.invertSortOrder()\" :title=\"locals.asc ? 'aufsteigend' : 'absteigend'\" :disabled=\"locals.by === 'manual'\">\n        <ae-icon v-show=\"locals.asc\" class=\"fa fa-sort-amount-up\"></ae-icon>\n        <ae-icon v-show=\"!locals.asc\" class=\"fa fa-sort-amount-down\"></ae-icon>\n      </button>\n\n\n    </div>\n  </div>\n</div>\n  \n\n<ae-dialog ref=\"settingsDialog\">\n \t<div slot=\"header\" class=\"_CSS-dialog-header\" slot-scope=\"scope\">\n    <span>eCasting Share</span>\n\t\t<div class=\"bp-button\" @click=\"scope.close()\">\n\t\t\t<ae-icon class=\"fa fa-2x fa-window-close\"></ae-icon>\n\t\t</div>\n\t</div>\n\n  <div slot=\"body\" class=\"dbps-body-with-actions\">\n    <ae-layout layout-id=\"6273d6a2-0cf0-47da-9e45-18460c50d101\" @edit=\"locals.edit = true\" @reset=\"locals.edit = false\"></ae-layout>\n\n    <div>\n      <h2>Share</h2>\n      <ae-layout  layout-id=\"73bda69b-6e1c-415f-bb46-3613e6aa6e3f\"\n                  :param-document=\"document\"\n                  :param-readonly=\"!locals.edit\"\n                  :param-target-info=\"document.id\"\n                  :param-target-id=\"document.a[document.a.length - 2]\"\n                  param-backing-account-id=\"bb0abc92-1952-4761-a0d2-be44d1c4440b\"\n                  :class=\"{ '_CSS-share--editable': locals.edit }\"\n                  param-share-prefix=\"shared-casting\"\n      ></ae-layout>\n    </div>\n  </div>\n</ae-dialog>","css":"\n._CSS-informations {\n  font-size: 2rem;\n  display: flex;\n  justify-content: space-between;\n}\n\n._CSS-informations > * {\n  display: inline;\n}\n\n._CSS-value {\n  display: inline;\n  font-weight: bold;\n}\n\n._CSS-actions {\n  font-size: 2rem;\n}\n\n/* SIDEBAR */\n\n._CSS {\n  display: flex;\n  flex-flow: column;\n  width: 100%;\n}\n\n._CSS-container {\n  margin-top: 2rem;\n  display: flex;\n  width: 100%;\n  flex-direction: row;\n  flex: 1;\n  overflow: hidden;\n}\n\n._CSS-body {\n  flex: 1;\n  padding: 8px;\n}\n\n._CSS-actions-container {\n  display: flex;\n  width: 6rem;\n}\n\n._CSS-actions-container--expanded {\n  width: 320px;\n}\n\n._CSS-right-spacer {\n  width: 6rem;\n}\n\n._CSS-sidebar {\n  padding: 1em 1.5em 2em;;\n  margin-right: 1em;\n  background: rgba(74,74,74,0.8);\n  color: white;\n\n  display: flex;\n  flex-flow: column;\n  flex: 1;\n}\n\n._CSS-sidebar__item {\n  border-bottom: 1px solid #ddd;\n  margin: 0 0 1em;\n  padding: 0 0 1em;\n}\n\n._CSS-sidebar__header {\n  font-size: 1.2em;\n  letter-spacing: 0.05em;\n  margin: 0 0 1em;\n  text-transform: uppercase;\n}\n\n._CSS-filter {\n  margin: 0 0.5em 0.5em 0;\n  user-select: none;\n  border: 1px solid #232323;\n  border-radius: 0.2em;\n  cursor: pointer;\n  display: inline-block;\n  letter-spacing: 0.05em;\n  padding: 0.1em 0.8em;\n  text-transform: uppercase;\n  overflow: hidden;\n  /* white-space: normal !important; */\n}\n\n._CSS-filter--active {\n  background: rgba(43,179,148,0.6);\n  color: #fff;\n  border-color: #2BB394\n}\n\n\n._CSS-search__input {\n    background: #fff;\n    border: 1px solid #fff;\n    border-radius: 0.2em;\n    color: #232323;\n    font-size: 16px;\n    padding: 0.1em 2em 0.1em 0.8em;\n    width: 100%;\n}\n\n/* DIALOG */\n\n._CSS-dialog-header {\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n}","controller":"class Controller {\n  async init() {\n    locals.bys = ['manual', 'created.at', 'data.name']\n    locals.by = locals.bys.shift()\n\n    locals.filters = null\n    locals.rawSearchValue = ''\n    locals.asc = false\n\n    locals.views = ['list', 'category']\n    locals.view = locals.views.shift()\n    locals.expanded = false\n\n    await this.updateModels()\n     \n    locals.project = await Aeppic.get(document.a[document.a.length - 2])\n    locals.casting = await Aeppic.get(document.a[document.a.length - 1])\n    locals.movies = await Aeppic.getAll(locals.project.data.movies)\n\n  }\n \n  nextView() {\n    locals.views.push(locals.view)\n    locals.view = locals.views.shift(locals.view)\n  }\n\n  async nextBy() {\n    locals.bys.push(locals.by)\n    locals.by = locals.bys.shift(locals.by)\n\n    await this.updateModels()\n  }\n\n  async invertSortOrder() {\n    locals.asc = !locals.asc\n\n    await this.updateModels()\n  }\n \n  async setFilterString(key, value) {\n    if (!locals.filters) {\n      locals.filters = {}\n    }\n\n    locals.filters[key] = value\n\n    await this.updateModels()\n  }\n\n\n  async updateModels() {\n\n    const options = {}\n\n    const sortField = this._byToFieldName()\n\n    if (sortField) {\n      options.sort = {\n        field: sortField,\n        descending: locals.asc\n      }\n    }\n    \n    const queryString = locals.filters ? this.getModelIdsAndFiltersAsQuery() : this.getModelsAsIdQuery()\n    // console.log('queryString', queryString)\n\n    locals.models = await Aeppic.find(queryString, options)\n    await Aeppic.nextRenderPass()\n  }\n\n  _byToFieldName() {\n    if (locals.by === 'data.name' || locals.by === 'created.at') {\n      return locals.by\n    }\n\n    return null\n  }\n\n  async resetFilter(key) {\n\n    if (key === 'search') {\n      locals.rawSearchValue = ''      \n    }\n\n    if (key) {\n      locals.filters[key] = null\n    } else {\n      locals.rawSearchValue = ''      \n      locals.filters = null\n    }\n\n    this.updateModels()\n  }\n\n  getModelIdsAndFiltersAsQuery() {\n    let filter = `(${this.getModelsAsIdQuery()})`\n\n    for (const key in locals.filters) {\n      if (locals.filters[key] == null) {\n        continue\n      }\n\n      filter += ` ${locals.filters[key]}`\n    }\n\n    return filter\n  }\n\n  getModelsAsIdQuery() {\n    return data.models.map(model => `id:${model.id}`).join(' OR ')\n  }\n\n  selectedStarFilter(value) {\n    if (value === 'Alle') {\n      this.resetFilter()\n      return\n    }\n\n    this.setFilterString('rating', `data.rating: ${value}`)\n  }\n\n  setSearchFilter(value) {\n    if (value == null || value === '') {\n      this.resetFilter('search')\n      return\n    }\n\n    this.setFilterString('search', 'data.name:' + value + '*')\n  }\n\n  closeExpanded() {\n    locals.expanded = false\n    this.resetFilter()\n  }\n}\n","packages":[]},"locks":[],"created":{"at":"2019-04-12T14:13:53+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2019-04-12T14:13:53+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1555078433882,"ct":1555078433882,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","61ccaf6b-af84-4908-aa73-785dffd83c5f"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"fd8fc726-d869-45e9-87f2-f49bcce532b3","v":"initial","cloneOf":{"id":"30c5b2ed-ab4d-470f-8571-b26cb8c745cb","v":"f0848adfec7dbe38","text":"page"},"originalCloneOf":{"id":"30c5b2ed-ab4d-470f-8571-b26cb8c745cb","v":"f0848adfec7dbe38","text":"page"},"p":"582f2701-c678-4770-bcba-e5ff84e06752","f":{"id":"design-form","v":"e37099c040ec46e9","text":"Design"},"data":{"name":"[copy of]: page","template":"<ul class=\"_CSS-list-unstyled\">\n  <li v-for=\"(pings, receiver) in locals.pingsByReceiver\" class=\"_CSS-ping\">\n    <div class=\"_CSS-ping__who\">\n      <ae-design name=\"avatar--resizes-with-font\" :document-id=\"receiver\" style=\"margin-right: var(--ae-size-2);font-size:var(--ae-font-size-12);\"></ae-design>\n      <template v-if=\"receiver === Aeppic.Account.id\">\n        <span style=\"margin-top: var(--ae-size-2);width:100%;text-align:center;\">\n          Ich\n        </span>\n      </template>\n      <template v-else>\n        <!-- <ae-design name=\"avatar--resizes-with-font\" :document-id=\"receiver\" style=\"margin-right: var(--ae-size-2);font-size:var(--ae-font-size-12);\"></ae-design> -->\n        <ae-design name=\"profile-title\" :document-id=\"receiver\" style=\"margin-top: var(--ae-size-2);width:100%;\"></ae-design>\n      </template>\n    </div>\n    <div class=\"_CSS-ping__right\">\n      <ae-list list-id=\"simple-list\" :documents=\"pings\" param-design=\"ping\"></ae-list>\n      <div class=\"_CSS-new bp-card bp-card--bordered\" v-if=\"!controller.readonly\">\n        <input class=\"_CSS-new__input\" type=\"text\" ref=\"input\" v-if=\"locals.newPing.receiver === receiver\" v-model=\"locals.newPing.editableDocument.data.content\" v-focus @keydown.enter.prevent=\"controller.savePing(receiver)\">\n        <input class=\"_CSS-new__input\" v-else ref=\"inputPlaceholder\" type=\"text\" @click.stop.prevent=\"controller.newPing(receiver)\" @focus=\"controller.newPing(receiver)\">\n        <button class=\"ae-button ae-button--secondary\" :disabled=\"locals.newPing.receiver !== receiver\" @click.stop=\"controller.savePing(receiver)\">\n          <ae-icon class=\"fa fa-comment-plus\"></ae-icon> Senden\n        </button>\n      </div>\n    </div>\n  </li>\n</ul>\n","css":"._CSS-heading {\n  margin-top: 4em;\n}\n\n._CSS-ping {\n  background: var(--ae-ui-card-background);\n  border: var(--ae-border-width) solid var(--ae-border-color);\n  border-radius: var(--ae-border-radius);\n\n  display: flex;\n  width: 100%;\n}\n\n._CSS-ping + ._CSS-ping {\n  margin-top: 4px;\n}\n\n._CSS-content {\n  padding: 8px;\n}\n\n._CSS-list-unstyled {\n  list-style:none;\n  margin-left:0;\n  padding-left:0;\n}\n\n._CSS-date-modified-at {\n  display: flex;\n  justify-content: flex-end;\n  font-size: 0.8em;\n}\n\n._CSS-add-ping {\n}\n\n._CSS-ping__who {\n  background: var(--ae-background);\n  border-radius: var(--ae-border-radius) 0 0 var(--ae-border-radius);\n  border-right: var(--ae-border-width) solid var(--ae-border-color);\n\n  display: flex;\n  align-items: center;\n  xjustify-content: center;\n  flex-flow: column;\n\n  padding: var(--ae-size-5) var(--ae-size-3) var(--ae-size-3) var(--ae-size-3);\n  margin-right: var(--ae-size-2);\n  width: 120px;\n}\n\n._CSS-ping__right {\n  flex: 1;\n  padding: var(--ae-size-2);\n  overflow: hidden;\n}\n\n._CSS-new {\n  margin-top: var(--ae-size-4);\n  background: var(--ae-background);\n}\n\n._CSS-new__input {\n  margin: 0 var(--ae-size-2);\n  flex: 1;\n}","controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Notification: '6d164aff-df9b-470d-9632-cfb6f5892509',\n      Ping: '97902782-7315-4837-94fc-8e080c6cfbf3',\n      NotificationRequest: 'ddaa6921-770e-4a73-b8a4-b4a99abed24b',\n    }\n    // this.publishStampId = '04a939a8-6732-4f94-ad75-6f17ac417136'\n\n    // locals.newComment = null\n    locals.newPing = {\n      receiver: '',\n      editableDocument: null\n    }\n    // locals.pings = []\n    locals.pingsByReceiver = {}\n    locals.canCreate = false\n    locals.canEdit = false\n    \n    //data.document.id:${document.id}\n    Aeppic.subscribe(`p:${Aeppic.Account.id} (f.id:${this.FORMS.Notification} OR f.id:${this.FORMS.NotificationRequest}) data.category:${this.FORMS.Ping}`, { sort: 'created.at' }, (documents) => this._refresh(documents))\n      \n    // await this.newComment()\n \n    if (!Aeppic.Account) {\n      return\n    } \n    \n    // const canEdit = await Aeppic.canEdit(document)\n\n    // if (Aeppic.Account.data.isGroupAccount) {\n    //   const groupAccountCanCreate = await Aeppic.Preferences.getSetting('bizpin:comments:groupAccountAllowCreate')\n    //   locals.canCreate = (canEdit && groupAccountCanCreate)\n    // } else {\n    //   locals.canCreate = (canEdit)\n    // }\n  }\n\n  async _refresh(pings) {\n    const pingsByReceiver = {}\n\n    for (const ping of pings) {\n      const receivingPing = ping.f.id === this.FORMS.Notification\n \n      if (receivingPing) {\n        if (!pingsByReceiver[ping.data.who.id]) {\n          pingsByReceiver[ping.data.who.id] = []\n        }\n\n        pingsByReceiver[ping.data.who.id].push(ping)\n      } else {\n        for (const account of ping.data.accounts) {\n          // pings to own are handled as 'normal' notification\n          const isPingToMyself = account.id === Aeppic.Account.id\n          if (isPingToMyself) {\n            continue\n          }\n\n          if (!pingsByReceiver[account.id]) {\n            pingsByReceiver[account.id] = []\n          }\n\n          pingsByReceiver[account.id].push(ping)\n        }\n      }\n    }\n\n    locals.pingsByReceiver = pingsByReceiver\n  }\n\n  async newPing(receiver) {\n    const ping = await Aeppic.new(this.FORMS.NotificationRequest, Aeppic.Account.id)\n    const form = await Aeppic.get(document.f.id)\n    const app = await Aeppic.asReference(form.a[1])\n\n    const receivingAccount = await Aeppic.asReference(receiver)\n\n    ping.data = {\n      app,\n      category: await Aeppic.asReference(this.FORMS.Ping),\n      content: '',\n      accounts: [receivingAccount],\n      document: await Aeppic.asReference(document),\n      who: await Aeppic.asReference(Aeppic.Account)\n    }\n\n    locals.newPing = {\n      receiver,\n      editableDocument: ping\n    }\n  }\n\n  async savePing(receiver) {\n    if (locals.newPing.receiver !== receiver) {\n      return\n    }\n\n    Aeppic.save(locals.newPing.editableDocument)\n\n    locals.newPing = {\n      receiver: '',\n      editableDocument: null\n    }\n  }\n\n \n  async newComment() {\n    locals.newComment = await Aeppic.new('cf155969-ede1-43a4-9b10-3a697b19db91', document.id)\n    Aeppic.commit(locals.newComment)\n  }\n\n  async saveComment() {\n    const filledOut = !!locals.newComment.data.content || locals.newComment.data.attachments.length\n\n    if (!filledOut) {\n      return\n    }\n\n    Aeppic.save(locals.newComment)\n    \n    const comment = await Aeppic.get(locals.newComment)\n    Aeppic.stamp(comment, this.publishStampId)\n\n    await this.newComment()\n  }\n\n  get readonly() {\n    // FIXME\n    return true\n\n\n    if (params.readonly === true) {\n      return true\n    }\n\n    if (typeof readonly === 'boolean') {\n      return readonly\n    }\n\n    return false\n  }\n\n  async focus() {\n    if (!await Aeppic.get(locals.newComment)) {\n      Aeppic.save(locals.newComment)\n    }\n  }\n\n  displayComment(comment) {\n    const commentHasNewForm = 'attachments' in comment.data\n\n    if (commentHasNewForm) {\n      return comment.stamps && comment.stamps.find(s => s.type && s.type.id === this.publishStampId)\n    }\n\n    return true\n  }\n\n  destroy() {\n    // Aeppic.delete(locals.newComment)\n  }\n}\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-12-21T15:45:19+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-12-21T15:45:19+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1640101519389,"ct":1640101519348,"a_depth":4,"a":["apps","c676e25c-4d28-48e3-9b60-811cde637ea5","fd2312bb-54bc-41a9-8fc7-b65b22ecb1d5","582f2701-c678-4770-bcba-e5ff84e06752"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"d6754ccc-9e87-40fe-913e-1fa52a143b83","v":"31c1303672b32a33","cloneOf":{"id":"0f478706-2101-4627-ba2a-2061e9fe6c73","v":"6246bcf72ed86fd2","text":"rd:page-inner"},"originalCloneOf":{"id":"0f478706-2101-4627-ba2a-2061e9fe6c73","v":"6246bcf72ed86fd2","text":"rd:page-inner"},"previous":{"v":"initial","p":"dbee6e16-d63a-493c-bba6-505f79918f9f","a":["apps","45ada186-e9fd-451d-9dbd-2defc0b4f86f","4ec6a0e5-cf2d-4095-9b70-2e31a64d5679","dbee6e16-d63a-493c-bba6-505f79918f9f"]},"p":"6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"[copy of]: rd:page-inner","template":"\n<div class=\"flex flex-col h-full relative\" @toolbar=\"controller.onToolbar($event)\">\n  <!-- <div class=\"flex justify-between items-center h-[50px] px-4 border-b\">\n    <ae-design class=\"w-full\" name=\"rd:toolbar\" :document=\"document\" @show-details=\"locals.showDetails = !locals.showDetails\"></ae-design> \n  </div> -->\n\n  <!-- <div class=\"text-sm flex justify-between items-center h-[35px] px-4 border-b\">\n    <ae-design name=\"rd:path\" :document=\"document\" @selected=\"Aeppic.navigateTo($event)\"></ae-design> \n  </div> -->\n  \n  <ae-design v-if=\"data.datei.dataUrl\" name=\"page--left\" :document=\"document\" class=\"flex-1\"></ae-design>\n  \n  <div v-else class=\"flex-1 flex justify-center items-center\">\n  <ae-form  \n            layout-id=\"f1600040-cfc6-445c-b61e-6dc68663a9d9\"\n            :document=\"document\"\n            :auto-save=\"true\"\n            :view=\"{ only: { fields: ['datei'] }}\"\n  ></ae-form>\n  </div>\n\n  <ae-design class=\"absolute top-0 bottom-0 right-0\" v-if=\"locals.showDetails\" name=\"rd:details\" :document=\"document\"></ae-design>\n</div>\n \n\n   ","css":"","controller":"class Controller {\n  init() {\n    locals.showDetails = false\n  }\n\n  onToolbar(event) {\n    const type = event.detail\n\n    if (type === 'show-details') {\n      locals.showDetails = !locals.showDetails\n    }\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-01-19T13:12:02+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-01-19T13:12:24+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1674133944918,"ct":1674133922144,"a_depth":4,"a":["apps","3d43a3f5-fea4-488d-9fc1-9dee5e694623","7c30f282-2b84-4976-8735-ba78662ea5e6","6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"237bdabd-caf6-415b-ae6a-2ee49058caa3","v":"3dd7765124ca98cf","cloneOf":{"id":"65a47cf3-dd3e-45b1-bac2-eb80e0ea15e6","v":"188f4a0778c9c603","text":"rd:page-toolbar"},"originalCloneOf":{"id":"65a47cf3-dd3e-45b1-bac2-eb80e0ea15e6","v":"188f4a0778c9c603","text":"rd:page-toolbar"},"previous":{"v":"initial","p":"dbee6e16-d63a-493c-bba6-505f79918f9f","a":["apps","45ada186-e9fd-451d-9dbd-2defc0b4f86f","4ec6a0e5-cf2d-4095-9b70-2e31a64d5679","dbee6e16-d63a-493c-bba6-505f79918f9f"]},"p":"6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"[copy of]: rd:page-toolbar","template":"<div class=\"flex items-center gap-2\">\n    <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n                param-icon=\"fa fa-info\"\n                param-text=\"Details\"\n                @selected=\"$emit('toolbar', 'show-details')\"\n                :param-primary=\"true\"\n    ></ae-layout>\n\n    <ae-form layout-id=\"14753f85-5c12-42bb-b763-590b583f68cc\"\n              :document=\"document\"\n              :auto-save=\"true\"\n    ></ae-form>\n\n    <ae-design name=\"download-and-print-buttons\" :document=\"document\"></ae-design>\n\n<!-- \n    <ae-layout  \n      layout-id=\"7487988f-6580-45ce-ac84-14893a6876b2\"\n      @filter=\"$emit('filter', $event)\"\n      :params=\"{ listFormId: document.f.id, disableSort: true, disableFilter: params.disableFilter, filterFields:params.filterFields, sortFields:params.sortFields, debug:true, }\"\n    ></ae-layout> -->\n\n    <!-- <div class=\"flex-1\"></div> -->\n\n</div> ","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-01-19T13:12:05+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-01-19T13:12:31+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1674133951637,"ct":1674133925703,"a_depth":4,"a":["apps","3d43a3f5-fea4-488d-9fc1-9dee5e694623","7c30f282-2b84-4976-8735-ba78662ea5e6","6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"387912e2-9e5c-4e8d-8bc6-aa440eefadcb","v":"a37205094068df6d","previous":{"v":"e1d980ec6ccef3e7"},"p":"6f641574-7cb6-424a-9657-4b8d652a2cf7","f":{"id":"design-form","v":"0061789efb5c5c29","text":"Design"},"data":{"name":"abstract","template":"<div v-if=\"data.position\">\n  {{ data.position }}\n</div>\n<div v-if=\"data.abteilung\">\n  {{ data.abteilung }}\n</div>\n\n<div class=\"_CSS-phone\" v-if=\"data.telefon1\">\n  <ae-icon class=\"fa fa-phone\"></ae-icon>\n  <a class=\"ae-link\" :href=\"'tel:' + data.telefon1\">{{data.telefon1}}</a>\n</div>\n<div class=\"_CSS-phone\" v-if=\"data.telefon2\">\n  <ae-icon class=\"fa fa-phone\"></ae-icon>\n  <a class=\"ae-link\" :href=\"'tel:' + data.telefon2\">{{data.telefon2}}</a>\n</div>\n<div class=\"_CSS-phone\" v-if=\"data.telefon3\">\n  <ae-icon class=\"fa fa-phone\"></ae-icon>\n  <a class=\"ae-link\" :href=\"'tel:' + data.telefon3\">{{data.telefon3}}</a>\n</div>\n\n<div class=\"_CSS-mail\" v-if=\"data.email1\">\n  <ae-icon class=\"fa fa-at\"></ae-icon>\n  <a class=\"ae-link\" :href=\"'mailto:' + data.email1\">{{data.email1}}</a>\n</div>\n<div class=\"_CSS-mail\" v-if=\"data.email2\">\n  <ae-icon class=\"fa fa-at\"></ae-icon>\n  <a class=\"ae-link\" :href=\"'mailto:' + data.email2\">{{data.email2}}</a>\n</div>\n<div class=\"_CSS-mail\" v-if=\"data.email3\">\n  <ae-icon class=\"fa fa-at\"></ae-icon>\n  <a class=\"ae-link\" :href=\"'mailto:' + data.email3\">{{data.email3}}</a>\n</div>\n\n<div class=\"_CSS-url\" v-if=\"data.url\">\n  <ae-icon class=\"fa fa-link\"></ae-icon>\n  <a class=\"ae-link\" target=\"_blank\" :href=\"data.url.startsWith('http') ? data.url : 'http://' + data.url\">{{data.url}}</a>\n</div>\n\n<div class=\"_CSS-address\" v-if=\"controller.address\">\n  <ae-icon class=\"fa fa-location-arrow\"></ae-icon>\n  {{ controller.address }}\n</div>\n","css":"._CSS {\n  word-break: break-all;\n}\n\n._CSS-phone,\n._CSS-mail,\n._CSS-url {\n  padding-bottom: var(--ae-space-1);\n}\n","controller":"class Controller {\n\n  get address() {\n    const address = [\n      document.data.adresse.street,\n      document.data.adresse.streetNumber,\n      (document.data.adresse.street || document.data.adresse.streetNumber) && ', ',\n      document.data.adresse.postalCode,\n      document.data.adresse.city,\n    ]\n\n    return address.join(' ').trim()\n  }\n\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-08-10T14:35:41+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2021-07-12T10:50:41+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1626087041191,"ct":1597070141918,"a_depth":4,"a":["apps","37fafb3d-18da-4182-af74-082971d50956","c27d5f5f-22ff-4341-935c-02bfdc3e1ee0","6f641574-7cb6-424a-9657-4b8d652a2cf7"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"3e753979-b5c3-4918-b81e-61f51057d6d2","v":"1129734e80cca08f","cloneOf":{"id":"387912e2-9e5c-4e8d-8bc6-aa440eefadcb","v":"e1d980ec6ccef3e7","text":"abstract"},"originalCloneOf":{"id":"387912e2-9e5c-4e8d-8bc6-aa440eefadcb","v":"e1d980ec6ccef3e7","text":"abstract"},"previous":{"v":"00531cf9402f68e5"},"p":"f8fd3176-4995-455f-a8a8-d2742a836816","f":{"id":"design-form","v":"0061789efb5c5c29","text":"Design"},"data":{"name":"abstract","template":"<div class=\"_CSS-text\" v-if=\"data.firma\">\n  <ae-icon class=\"fa fa-building\"></ae-icon>\n  {{ data.firma }}\n</div>\n<div class=\"_CSS-text\" v-if=\"data.geburtsdatum\">\n  <ae-icon class=\"fa fa-birthday-cake\"></ae-icon>\n  {{ Aeppic.DateTime.fromISO(data.geburtsdatum).toLocaleString(Aeppic.DateTime.DATE_SHORT) }}\n</div>\n\n<div class=\"_CSS-phone\" v-if=\"data.festnetz\">\n  <ae-icon class=\"fa fa-phone\"></ae-icon>\n  <a class=\"ae-link\" :href=\"'tel:' + data.festnetz\">{{data.festnetz}}</a>\n</div>\n<div class=\"_CSS-phone\" v-if=\"data.mobil\">\n  <ae-icon class=\"fa fa-phone\"></ae-icon>\n  <a class=\"ae-link\" :href=\"'tel:' + data.mobil\">{{data.mobil}}</a>\n</div>\n<div class=\"_CSS-phone\" v-if=\"data.telefon3\">\n  <ae-icon class=\"fa fa-phone\"></ae-icon>\n  <a class=\"ae-link\" :href=\"'tel:' + data.telefon3\">{{data.telefon3}}</a>\n</div>\n\n<div class=\"_CSS-mail\" v-if=\"data.email\">\n  <ae-icon class=\"fa fa-at\"></ae-icon>\n  <a class=\"ae-link\" :href=\"'mailto:' + data.email\">{{data.email}}</a>\n</div>\n<div class=\"_CSS-mail\" v-if=\"data.email2\">\n  <ae-icon class=\"fa fa-at\"></ae-icon>\n  <a class=\"ae-link\" :href=\"'mailto:' + data.email2\">{{data.email2}}</a>\n</div>\n<div class=\"_CSS-mail\" v-if=\"data.email3\">\n  <ae-icon class=\"fa fa-at\"></ae-icon>\n  <a class=\"ae-link\" :href=\"'mailto:' + data.email3\">{{data.email3}}</a>\n</div>\n\n<div class=\"_CSS-url\" v-if=\"data.url\">\n  <ae-icon class=\"fa fa-link\"></ae-icon>\n  <a class=\"ae-link\" target=\"_blank\" :href=\"data.url.startsWith('http') ? data.url : 'http://' + data.url\">{{data.url}}</a>\n</div>\n\n<div class=\"_CSS-address\" v-if=\"controller.address\">\n  <ae-icon class=\"fa fa-location-arrow\"></ae-icon>\n  {{ controller.address }}\n</div>\n","css":"._CSS {\n  word-break: break-all;\n}\n\n._CSS-text,\n._CSS-phone,\n._CSS-mail,\n._CSS-url {\n  padding-bottom: var(--ae-space-1);\n}\n","controller":"class Controller {\n\n  get address() {\n    const address = [\n      document.data.adresse.street,\n      document.data.adresse.street && ' ',\n      document.data.adresse.streetNumber,\n      document.data.adresse.supplement,\n      (document.data.adresse.street || document.data.adresse.streetNumber || document.data.adresse.supplement) && ', ',\n      document.data.adresse.postalCode,\n      document.data.adresse.postalCode && ' ',\n      document.data.adresse.city,\n    ]\n\n    return address.filter(p => !!p).join('').trim()\n  }\n\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-06-29T13:26:35+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2021-10-08T10:30:39+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1633689039571,"ct":1624973195399,"a_depth":4,"a":["apps","bc036ad0-6dbc-415b-b506-325fb0a44046","8ffb21f4-3d63-4824-a633-10a19d7aa7d8","f8fd3176-4995-455f-a8a8-d2742a836816"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"7c4b87e6-a7c7-4a1a-82ac-e0705daab84c","v":"21e8c5af76b03691","previous":{"v":"3059b66c7ba02a94"},"p":"d2ac3563-3c3f-4f02-b923-9b67abf98d10","f":{"id":"design-form","v":"74db9b6ed94b41d9","text":"Design"},"data":{"name":"abstract","template":"<div class=\"_CSS-position\" v-if=\"data.position\">\n{{ data.position }}\n</div>\n\n<div class=\"_CSS-short\" v-if=\"data.kuerzel\">\nKürzel: {{ data.kuerzel }}\n</div>\n\n<div v-if=\"data.beschreibung\" class=\"_CSS-description\">\n{{ data.beschreibung }}\n</div>","css":"._CSS-description {\n  margin-top: var(--ae-size-1);\n\n   overflow: hidden;\n    display: -webkit-box;\n    -webkit-line-clamp: 3;\n    -webkit-box-orient: vertical;  \n\n    font-style: italic;\n  color: var(--ae-background-700);\n}\n\n._CSS-short {\n  margin-top: var(--ae-size-1);\n  color: var(--ae-background-700);\n}\n\n._CSS-position {\n\n}","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-06-04T14:09:46+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2020-06-05T13:03:33+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1591362213693,"ct":1591279786228,"a_depth":4,"a":["apps","144e85c0-d7f9-4b20-8928-be30f0c78bda","8e6ee7d3-9122-4a2e-8aaf-9fb3bd204b23","d2ac3563-3c3f-4f02-b923-9b67abf98d10"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"8389a7be-5641-4572-a504-7080da3f9ae2","v":"initial","previous":{"v":""},"p":"fee1d6a3-fd7b-416c-a42a-e11c9585bcf5","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"abstract","applies":"","template":"<span>Sprint \"{{data.name}}\"</span><span></span>\n<span>Start</span><span>{{ DateTime.fromISO(data.start).toLocaleString(DateTime.DATE_MED) }}</span>\n<span>Ende</span><span>{{ DateTime.fromISO(data.end).toLocaleString(DateTime.DATE_MED) }}</span>\n","css":"._CSS {\n  display: grid;\n  grid-template-columns: max-content max-content;\n  grid-column-gap: 2rem\n}","controller":"","packages":[]},"locks":[],"created":{"at":"2018-04-18T15:41:56+02:00","by":"","backedBy":"","from":"","client":"server"},"modified":{"at":"2018-04-18T15:41:56+02:00","by":"","backedBy":"","from":"","client":"server"},"t":1524058916932,"ct":1524058916932,"a_depth":4,"a":["apps","aed1ba1c-9095-4aca-8176-74a37325f0e5","58cc45fb-3fb3-45e8-b61d-4b89899e357a","fee1d6a3-fd7b-416c-a42a-e11c9585bcf5"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"f043c68c-a796-4ec9-bd6e-bd01132ce76e","v":"d51c3ba242f360b2","previous":{"v":"60b4a373479a0611"},"p":"cf155969-ede1-43a4-9b10-3a697b19db91","f":{"id":"design-form","v":"e37099c040ec46e9","text":"Design"},"data":{"name":"abstract","template":"<ae-design style=\"xmargin-left: var(--ae-space-3);\" name=\"title\" :document=\"document\"></ae-design>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-03-29T09:40:25+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-03-29T09:51:06+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1617011466717,"ct":1617010825759,"a_depth":4,"a":["apps","14c27659-92d7-4b43-8c4f-25f4cceae591","2e759bfa-c685-48e8-81b4-cec70e93c521","cf155969-ede1-43a4-9b10-3a697b19db91"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"48355a99-f543-47b6-a4d2-b4be81179aa8","v":"bc9c39e6e1ff4e3e","p":"key-form","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"accessible-documents","template":"<template v-for=\"lockedDocument of locals.lockedDocuments\" >\n  <ae-design name=\"rights\" :document=\"document\"></ae-design>\n  <div class=\"_CSS-locked\">\n    <ae-design name=\"icon\" :document=\"lockedDocument\"></ae-design>\n    <ae-design name=\"path\" :document=\"lockedDocument\"></ae-design>\n    &nbsp;/&nbsp;\n    <ae-design name=\"title\" :document=\"lockedDocument\"></ae-design>\n  </div>\n</template>\n\n<div class=\"_CSS-actions\">\n  <button class=\"bp-button bp-button--transparent\">\n    Zugriff entfernen\n  </button>\n</div>\n","css":"._CSS {\n  display: grid;\n  grid-template-columns: 75px 4fr max-content;\n  grid-auto-rows: 30px;\n}\n\n._CSS:hover {\n  background: rgba(var(--ae-foreground-rgb), 0.1);\n} \n\n._CSS-locked > * {\n  margin: 0 10px 0 0;\n}\n\n._CSS-locked {\n  display: flex;\n  align-items: center;\n}\n\n._CSS-rights {\n  display: flex;\n  align-items: center;\n}\n\n._CSS-actions {\n  display: none;\n}\n\n._CSS:hover ._CSS-actions {\n  flex: 1;\n  display: flex;\n  justify-content: flex-end;\n}","controller":"class Controller {\n  async init() {\n    this.editRight = 'aa3ba2de-4b65-4152-ab1d-655e21de9efd'\n\n    locals.lock = null\n    locals.lockedDocuments = []\n\n    locals.lock = await Aeppic.get(data.lock)\n    locals.lockedDocuments = await Aeppic.find(`locks:${locals.lock.id}`)\n  }\n\n  isEditRight(right) {\n    return right.id === this.editRight\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2019-01-17T14:03:13+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2020-06-30T10:53:25+00:00","by":"8e6c22aa-8c69-4ff8-919a-7032841cf636","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1719319448543,"ct":1719319448543,"a_depth":4,"a":["system","b2533f7b-ea85-4680-99ed-d8e11be641b9","0e6939d6-9b93-4165-b6bd-977e4da881f3","key-form"],"a_forms":["system-folder-form","folder","application-form","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[],"previous":{"v":"e3c6c3ea9dc91e99","f":{"id":"design-form","v":"9bfe8e0cd909c1f0","text":"Design"}},"meta":{"modified":{"at":"2024-06-25T14:44:08+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"569d67b2-9aa2-4a3a-ae92-654f02a7d1c7","v":"initial","p":"5475727b-0e0c-412a-8452-23b9c5b242f2","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"accounting","template":"<button class=\"ae-button\" @click.stop=\"locals.modes.offers = !locals.modes.offers; controller.update()\">\n  <ae-icon v-if=\"locals.modes.offers\" class=\"fa fa-toggle-on\"></ae-icon>\n  <ae-icon v-else class=\"fa fa-toggle-off\"></ae-icon>\n  Angebote\n</button>\n<button class=\"ae-button\" @click.stop=\"locals.modes.invoices = !locals.modes.invoices; controller.update()\">\n  <ae-icon v-if=\"locals.modes.invoices\" class=\"fa fa-toggle-on\"></ae-icon>\n  <ae-icon v-else class=\"fa fa-toggle-off\"></ae-icon>\n  Rechnungen\n</button>\n\n<!-- list-id=\"caa6a6cc-6fd4-442d-9ca0-c7dc21180e6d\" -->\n<ae-list list-id=\"2e798091-303f-406b-a42a-93aa1cd8425c\" \n        :documents=\"locals.documents\"\n        param-file-form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\"\n        param-view=\"table\"\n        @selected=\"Aeppic.drillInto($event, { documentsIndex: arguments[1]?.documentsIndex, documents: arguments[1]?.documents })\"\n></ae-list>\n","css":"","controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Angebot: 'ea3fb00c-4b3e-44ed-8bfb-7dce7f8a8f4c',\n      Rechnung: 'e24202d4-aa6f-4ea9-933c-5c1be7e38556'\n    }\n    \n    locals.modes = {\n      offers: true,\n      invoices: true,\n    }\n\n    locals.documents = []\n\n    this.update()\n  }\n\n  async update() {\n    const activeOptionsQueryParts = []\n    if (locals.modes.offers) {\n      activeOptionsQueryParts.push(`(a_forms:${this.FORMS.Angebot} data.name:Angebot*)`)\n    }\n    if (locals.modes.invoices) {\n      activeOptionsQueryParts.push(`(a_forms:${this.FORMS.Rechnung} data.name:Rechnung*)`)\n    }\n\n    if (!activeOptionsQueryParts.length) {\n      locals.documents = []\n      return\n    }\n\n    const activeOptionsQuery = activeOptionsQueryParts.join(' OR ')\n\n    locals.documents = await Aeppic.find(`a:${document.id} f.id:dbee6e16-d63a-493c-bba6-505f79918f9f (${activeOptionsQuery})`, { size:9999, sort: { field: 'modified.at', descending: true }})\n  }\n} ","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-08-25T13:06:58+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-08-25T13:06:58+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1629896818023,"ct":1629896817962,"a_depth":4,"a":["apps","9d6ee173-26fe-4472-a271-7667f717094e","6743ef9a-c21b-443f-91b8-4dd86886ee8c","5475727b-0e0c-412a-8452-23b9c5b242f2"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"43fa75dd-339b-433c-8b94-8871d4fc6c96","v":"4edb7bd84bb9ed81","previous":{"v":"0fea9f637ccf4f4e"},"p":"c211ffaa-14f8-4439-9126-f42f65ac4424","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"active-card","template":"<div class=\"rounded-lg bg-white p-2 border border-slate-200 flex flex-col\">\n  <ae-design v-if=\"locals.plan\" :document=\"locals.plan\" name=\"active-card\"></ae-design>\n\n  <div class=\"grid gap-2 grid-cols-[200px,1fr] mb-4\">\n    <span class=\"text-theme-500\">Begonnen</span>\n    <span>{{ Aeppic.DateTime.fromISO(document.created.at).toLocaleString(Aeppic.DateTime.DATETIME_SHORT) }}</span>\n    <span class=\"text-theme-500\">Wird automatisch beendet</span>\n    <span>{{ Aeppic.DateTime.fromISO(document.created.at).plus({ days: 7 }).toRelative() }}</span>\n  </div>\n\n  <div v-if=\"data.status === 2\" class=\"flex flex-col mt-4\">\n    <span class=\"font-bold\">\n    Abgeschlossen\n    </span>\n\n    <span class=\"text-sm\">\n      Diese Wartung muss vom Betreiber zur Kenntnis genommen werden, bevor eine neue Wartung durchgeführt werden kann.\n    </span>      \n  </div>\n    \n  <ae-layout  v-else\n              layout-id=\"a2cd7699-9b46-494f-8f89-cb1f62151d82\"\n              param-text=\"Öffnen\"\n              @selected=\"controller.execute()\"\n              class=\"ml-auto\"\n  ></ae-layout>\n\n  </div>\n</div>\n","css":"","controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Wartungsplan: '522ca40d-810b-4021-835f-beeace3af7fa'\n    }\n\n    locals.plan = null\n\n    locals.plan = await Aeppic.findOne(`p:${document.id} f.id:${this.FORMS.Wartungsplan}`)\n  }\n\n  async execute() {\n    const result = await Aeppic.Commands.execute('bbafd741-a646-4001-a1aa-90233da91f6c', document, {}, { navigation: true })\n    console.log(result)\n  }\n}\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-03-03T14:08:36+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-04-06T13:20:07+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1649251207804,"ct":1649233215573,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","c211ffaa-14f8-4439-9126-f42f65ac4424"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"ad0c5b6f-f3a5-4b68-8975-53af40d5eabd","v":"4764c408316f4468","previous":{"v":"initial"},"p":"522ca40d-810b-4021-835f-beeace3af7fa","f":{"id":"design-form","v":"3385ac6766f32638","text":"Design"},"data":{"name":"active-card","template":"<div class=\"flex flex-col mb-5\" >\n  <h1>{{data.name}}</h1>\n  <div class=\"ml-2 italic\" v-if=\"data.beschreibung.length\">\n    {{ data.beschreibung }}\n  </div>\n</div>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-03-31T14:51:47+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-03-31T14:52:35+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1648738355544,"ct":1648738307157,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","522ca40d-810b-4021-835f-beeace3af7fa"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"275308f8-e39e-4a80-ae8c-5a684365fbaa","v":"ec313bc980c88b3e","previous":{"v":"9bad0335e2bc9421"},"p":"16c72ee3-d247-4812-bb98-72a0763460a9","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"activity-card","template":"<div class=\"_CSS-entry bp-card\" \n    @mouseenter=\"locals.hover = true\" @mouseleave=\"locals.hover = false\"\n    :class=\"{ '_CSS-entry--top-space': !params.minimizeWho }\"\n>\n  <div class=\"_CSS-vertical-line-of-who\" v-if=\"!locals.otherEditorsChanges.length && params.minimizeWho\"></div>\n\n\t<div class=\"_CSS-entry__what\">\n\t\t<div style=\"display:flex;flex-wrap:wrap;xcolor:var(--ae-background-600);align-items:center\">\n      <template v-if=\"locals.otherEditorsChanges.length\">\n        <span style=\"margin-right: 0.4ch;\"> {{ locals.otherEditorsChanges.length + 1 }} Mitarbeitern</span>\n      </template>\n      <div class=\"_CSS-entry__who\" v-else>\n        <span v-if=\"!data.who.id\" style=\"margin-right: 0.4ch\" title=\"System\">\n          <ae-icon class=\"fa fa-cog\"></ae-icon>\n        </span>\n        <ae-design v-if=\"!params.minimizeWho\" style=\"display:inline;margin-right: 0.4ch;\" name=\"avatar--resizes-with-font\" :document-id=\"data.who.id\"></ae-design>\n        <!-- <ae-icon v-else class=\"fa fa-horizontal-rule fa-rotate-270\" style=\"color:var(--ae-background-500);\"></ae-icon> -->\n      </div>\n      \n\t\t\t<template v-if=\"data.type === 'NEW'\" style=\"margin-right: 0.4ch;\">\n        <span>\n          erstellte\n        </span>\n        <div class=\"_CSS-target\" :class=\"{ '_CSS-target--no-expansion': data.causingDocument.id }\">\n          <ae-design  name=\"icon\"\n                  :document-id=\"data.causingDocument.id || data.targetDocument.id\"\n                  :param-readonly=\"true\"\n                  class=\"_CSS-target-icon\"\n          ></ae-design>\n          <ae-design  name=\"title-as-link,title\"\n                  :document-id=\"data.causingDocument.id || data.targetDocument.id\"\n                  :param-readonly=\"true\"\n                  class=\"_CSS-target-title\"\n                  @selected=\"Aeppic.drillInto($event, arguments[1])\"\n          ></ae-design>\n        </div>\n\n\n      </template>\n\t\t\t<template v-else-if=\"data.type === 'CHANGED'\" style=\"margin-right: 0.4ch;\">\n        <span style=\"margin-right: 0.4ch;\">änderte</span>\n        <template v-for=\"(label, index) of locals.changedFieldsLabels\">\n          <span style=\"font-weight:bold\" @mouseenter=\"locals.hoveringFieldLabelIndex = index\" @mouseleave=\"locals.hoveringFieldLabelIndex = -1\">\n            {{ label }}\n          </span>\n          <template v-if=\"index < locals.changedFieldsLabels.length - 1\">\n            ,&nbsp;\n          </template>\n        </template>\n \n        <!-- <template v-if=\"locals.hoveringFieldLabelIndex >= 0\">\n          {{locals.changes[locals.hoveringFieldLabelIndex] && locals.changes[locals.hoveringFieldLabelIndex].value }}\n        </template> -->\n \n        <div v-if=\"params.targetDocumentId !== data.targetDocument.id\" class=\"_CSS-target\" :class=\"{ '_CSS-target--no-expansion': data.causingDocument.id }\">\n          <span style=\"margin-left: 0.4ch;\">in</span>\n          <ae-design  name=\"icon\"\n                  :document-id=\"data.targetDocument.id\"\n                  :param-readonly=\"true\"\n                  class=\"_CSS-target-icon\"\n        ></ae-design>\n          <ae-design  name=\"title-as-link,title\"\n                    :document-id=\"data.targetDocument.id\"\n                    :param-readonly=\"true\"\n                    class=\"_CSS-target-title\"\n                    @selected=\"Aeppic.drillInto($event, arguments[1])\"\n          ></ae-design>\n        </div>\n\n\t\t\t</template>\n\t\t\t<span v-else-if=\"data.type === 'DELETED'\" style=\"margin-right: 0.4ch;\">\n        <ae-design  name=\"title\"\n            :document-id=\"data.targetDocument.id\"\n            :param-readonly=\"true\"\n            class=\"_CSS-target-title\"\n        ></ae-design>\n            gelöscht\n      </span>\n      <template v-else-if=\"data.type === 'STAMP'\" style=\"margin-right: 0.4ch;\">\n        <span>stempelte</span>\n        <ae-design  v-if=\"params.targetDocumentId !== data.targetDocument.id\" \n                    name=\"title-as-link,title\"\n                  :document-id=\"data.targetDocument.id\"\n                  :param-readonly=\"true\"\n                  class=\"_CSS-target-title\"\n                  style=\"margin-left: 0.4ch;\"\n                  @selected=\"Aeppic.drillInto($event, arguments[1])\"\n        ></ae-design>\n        <span style=\"margin-left: 0.4ch;\">mit</span>\n        <ae-design name=\"title\" :document-id=\"data.whatTransition.id\" class=\"_CSS-target-title\"></ae-design>\n      </template> \n\n      <template v-if=\"!data.causingDocument.id && data.targetDocument.id && params.targetDocumentId !== data.targetDocument.id\">\n        <span >von</span>\n        <ae-design name=\"design-of-parent\" param-name=\"title-as-link,title\" :document-id=\"data.targetDocument.id\" class=\"_CSS-target-title\" @selected=\"Aeppic.drillInto($event)\"></ae-design>\n      </template>\n \n      <template v-if=\"data.causingDocument.id\">\n        <ae-design v-if=\"data.type === 'STAMP'\"\n                    name=\"activity-card\"\n                    :document-id=\"data.causingDocument.id\"\n                    :param-readonly=\"true\"\n                    @selected=\"Aeppic.drillInto(data.causingDocument.id)\"\n                    style=\"margin-left:2ch;\"\n        ></ae-design>\n        <div v-else-if=\"params.targetDocumentId !== data.targetDocument.id\" class=\"_CSS-causing\">\n          <span style=\"margin-right:0.4ch;\">in</span>\n          <ae-design name=\"icon\"\n                    :document-id=\"data.targetDocument.id\"\n                    :param-readonly=\"true\"\n                    @selected=\"Aeppic.drillInto(data.targetDocument.id)\"\n                    class=\"_CSS-target-icon\"\n          ></ae-design>\n          <ae-design name=\"title-as-link,title\"\n                    :document-id=\"data.targetDocument.id\"\n                    :param-readonly=\"true\"\n                    @selected=\"Aeppic.drillInto(data.targetDocument.id)\"\n                    class=\"_CSS-target-title\"\n          ></ae-design> \n\n\n          <template v-if=\"params.targetDocumentId !== data.targetDocument.id\">\n            <div style=\"flex:1;\"></div>\n            <ae-design class=\"_CSS-target-path\" name=\"path\" :document-id=\"data.targetDocument.id\"></ae-design>\n          </template>\n        </div>\n      </template>\n\n      <!-- TODO: @decprecated the generic path displaying is not needed anymore, since the parent title name is integrated in the text -->\n      <!-- <template v-else-if=\"params.targetDocumentId !== data.targetDocument.id\">\n        <div style=\"flex:1;\"></div>\n        <ae-design class=\"_CSS-target-path\" name=\"path\" :document-id=\"data.targetDocument.id\"></ae-design>\n      </template>\n      -->\n\t\t</div>\n\n    <!-- TODO: @decprecated -->\n\t\t<!-- <div v-if=\"data.what\">\n\t\t\tFeld <i>{{ data.what.split(':')[0].replace('data.', '')}}</i> auf Wert <i>{{ data.what.split(':')[1] }}</i>\n\t\t</div> -->\n\n    <div @mouseenter=\"locals.hover = false\" :class=\"{ '_CSS-entry__date--visible': locals.hover }\" class=\"_CSS-entry__date\" :title=\"Aeppic.DateTime.fromISO(data.when).toLocaleString(Aeppic.DateTime.DATETIME_MED)\">\n      {{ controller.date(data.when) }}\n    </div>\n\t</div>\n \n  <div v-if=\"params.skippedActivities.length\" class=\"_CSS-skipped\">\n    <div class=\"_CSS-skipped__label\">\n      <a class=\"ae-link\" @click.stop=\"params.skippedActivities.length === locals.max ? locals.max = 10 : locals.max = params.skippedActivities.length\" title=\"Alle anzeigen\">\n        <template v-if=\"locals.max < params.skippedActivities.length\">{{locals.max}} /</template> {{ params.skippedActivities.length }} weitere Aktivitäten\n      </a>\n    </div>\n    <div class=\"_CSS-skipped__list\" v-if=\"params.skippedActivities.length\">\n      <template v-for=\"skipped of params.skippedActivities.slice(0, locals.max)\">\n        <ae-design class=\"_CSS-skipped__entry\" name=\"activity-preview\" :document-id=\"skipped.data.targetDocument.id\" @selected=\"Aeppic.drillInto($event)\"></ae-design>\n      </template>\n    </div>\n  </div>\n</div>\n\n<div class=\"_CSS-stamp-divider\" v-if=\"data.type === 'STAMP'\">\n  <div class=\"_CSS-stamp-divider__line--left\" />\n  <ae-icon class=\"fa fa-badge-check\"></ae-icon>\n  <div class=\"_CSS-stamp-divider__line--right\" />\n</div>","css":"@keyframes fade-in {\n  from {\n    opacity: 0;\n  }\n  to {\n    opacity: 1;\n  }\n}\n\n._CSS-vertical-line-of-who {\n  width: 2px;\n  background: var(--ae-background-300);\n  height: 100%;\n  position: absolute;\n  top: 0;\n  left: 7px;\n  right: 9px;\n}\n\n._CSS ._CSS-entry {\n  padding: var(--ae-space-1) 0;\n  display: flex;\n  flex-wrap: wrap; \n  width: 100%;\n}\n\n._CSS-entry--top-space {\n  margin-top: var(--ae-space-3);\n}\n\n._CSS-entry__who {\n  width: 20px;\n  display: flex;\n  align-items: center;\n  margin-left: -40px;\n}\n\n._CSS-entry__what {\n  min-width: 0;\n  position: relative;\n  width: 100%;\n  display: flex;\n  flex-flow: column;\n  margin-left: 40px;\n}\n\n._CSS-entry__date {\n  opacity: 0;\n  transition: 0.25s opacity ease-in-out;\n \n  position: absolute;\n  right: 0;\n  \n  /* make text always visible and overlap other text */\n  padding: 0 var(--ae-size-2);\n  border-radius: var(--ae-border-radius);\n  background: var(--ae-ui-background);\n  color: var(--ae-background-600);\n  pointer-events: none;\n\n  font-size: var(--ae-font-size-3);\n  min-width: 0;\n  text-overflow: ellipsis;\n  overflow: hidden;\n  white-space: nowrap;\n} \n\n._CSS-entry__date--visible {\n  opacity: 1;\n}\n\n._CSS-skipped {\n  padding-left: var(--ae-size-4);\n  width: 100%;\n}\n\n._CSS-skipped__label {\n  color: var(--ae-background-600);\n  font-size: var(--ae-font-size-3);\n}\n\n._CSS-skipped__list {\n  display: flex;\n  flex-wrap: wrap;\n  margin-left: calc(-1 * var(--ae-size-2));\n}\n\n._CSS-skipped__entry {\n  margin-left: var(--ae-size-1);\n  margin-bottom: var(--ae-size-1);\n}\n\n  \n._CSS-target-icon {\n  margin-left: 0.8ch;\n}\n\n._CSS-target {\n  xflex: 1 0 260px;\n  overflow: hidden;\n\n  display: flex;\n}\n\n._CSS-target._CSS-target--no-expansion {\n  flex: initial;\n}\n\n._CSS-target-title {\n  min-width: 0;\n  overflow: hidden;\n  xmax-width: 260px;\n  margin: 0 0.8ch 0 0.4ch;\n  color: var(--ae-background-700);\n}\n\n._CSS-causing__target-document {\n  display:flex;\n  margin: 0 0 0 var(--ae-space-2);\n  align-items:center; \n} \n\n._CSS-causing {\n  overflow: hidden;\n  display: flex;\n  flex: 1 0 160px;\n}\n\n._CSS-target-path {\n  font-size: var(--ae-font-size-2);\n   xwidth:100%;\n   overflow: hidden;\n   margin-left:var(--ae-space-6);\n   color:var(--ae-background-500);\n}\n\n._CSS-stamp-divider {\n  position: relative;\n   margin: var(--ae-space-3) 0 var(--ae-space-6) 0;\n   display: flex;\n   justify-content: center;\n   color: var(--ae-primary-900);\n}\n\n._CSS-stamp-divider__line--left {\n  border: var(--ae-border-width) solid var(--ae-background-200);\n\n  position: absolute;\n  left: 10%;\n  right: 65%;\n  top: 50%;\n}\n\n._CSS-stamp-divider__line--right {\n  border: var(--ae-border-width) solid var(--ae-background-200);\n  color: var(--ae-background-500);\n  position: absolute;\n  left: 65%;\n  right: 10%;\n  top: 50%;\n}\n\n","controller":"class Controller {\n  async init() {\n    locals.hover = false\n    locals.max = 10\n    locals.otherEditorsChanges = []\n    locals.changes = []\n    locals.changedFields = []\n    locals.changedFieldsLabels = []\n\n    this.updateOtherEditorsChanges()\n    \n    if (data.whatTransition?.id) {\n      const whatTransition = await Aeppic.get(data.whatTransition.id)\n      // console.log(whatTransition)\n\n      if (whatTransition?.data.additionalData) {\n        const transition = JSON.parse(whatTransition.data.additionalData).data\n        // console.log(transition)\n        const changes = transition.changes.map(JSON.parse)\n\n        locals.changes = changes\n        locals.changedFields = transition.fieldNames\n        locals.changedFieldsLabels = transition.fieldLabels\n      } \n    }\n  }\n\n  updateOtherEditorsChanges() {\n    if (params.skippedActivities) {\n      locals.otherEditorsChanges = params.skippedActivities.filter(skipped => skipped.data.who.id !== data.who.id)\n    } else {\n      locals.otherEditorsChanges = []\n    }\n  }\n\n  date(dateIsoString) {\n    const date = DateTime.fromISO(dateIsoString)\n\n    const diff = -date.diffNow('days').days.toFixed(0)\n\n    if (diff === 0) {\n      return date.toLocaleString(DateTime.TIME_24_SIMPLE)\n    }\n\n    if (diff > 7) {\n      return date.toLocaleString(DateTime.DATETIME_MED)\n    }\n\n    if (diff < 3) {\n      return `${date.toRelativeCalendar({ unit: 'days' })}, ${date.toLocaleString(DateTime.TIME_24_SIMPLE)}`\n    }\n\n    return date.toLocaleString({weekday: 'long', hour: '2-digit', minute: '2-digit' })\n  }\n}\n\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-09-01T13:17:07+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-02-25T09:01:16+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1645779676326,"ct":1630502227642,"a_depth":4,"a":["apps","441fb0bd-959b-446d-9aee-82f1c8ede628","f9e0c42b-8179-4d08-ad6d-452eed6eb855","16c72ee3-d247-4812-bb98-72a0763460a9"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"32cf2748-fcb2-4022-b2c8-85b19c19c4a9","v":"017a60ff882b5118","p":"fallback-designs","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"activity-card","template":"<ae-design  name=\"search-card\"\n            :param-minimized-info=\"true\"\n            :document=\"document\"\n            :param-readonly=\"true\"\n            @selected=\"$emit('selected', document)\"\n></ae-design>\n            <!-- :param-hide-path=\"true\" -->","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-01-27T13:25:13+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-09-16T13:35:54+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720684627119,"ct":1720684627119,"a_depth":2,"a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"],"inheritedLocks":[null,null,null],"stamps":[],"previous":{"v":"013bd44f4134c728","f":{"id":"design-form","v":"0061789efb5c5c29","text":"Design"}},"meta":{"modified":{"at":"2024-07-11T09:57:07+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"d4fe43c8-51f5-4d99-8055-07e90fc93e32","v":"62717dc796788a39","previous":{"v":"faeb06a289cb0d6e"},"p":"dbee6e16-d63a-493c-bba6-505f79918f9f","f":{"id":"design-form","v":"0061789efb5c5c29","text":"Design"},"data":{"name":"activity-card","template":"<div class=\"bp-card bp-card--bordered\">\n  <ae-design name=\"activity-preview\" :document=\"document\" :params=\"params\" v-on=\"$listeners\"></ae-design>\n  <ae-design name=\"title\" :document=\"document\" :params=\"params\" v-on=\"$listeners\"></ae-design>\n</div>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-01-27T13:31:44+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-01-27T13:34:22+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1611754462754,"ct":1611754304177,"a_depth":4,"a":["apps","45ada186-e9fd-451d-9dbd-2defc0b4f86f","4ec6a0e5-cf2d-4095-9b70-2e31a64d5679","dbee6e16-d63a-493c-bba6-505f79918f9f"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"403b31cc-a9d6-4195-aa06-c5cb806bc3ee","v":"17ea708ff88c11f8","previous":{"v":"4f661b7a1ff421be"},"p":"16c72ee3-d247-4812-bb98-72a0763460a9","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"activity-card.old","template":"\n<!-- {{locals.changes}} -->\n<div class=\"_CSS-entry bp-card\">\n\t<!-- <div class=\"_CSS-entry__who\">\n\t\t<ae-design name=\"avatar--tiny\" :document-id=\"data.who.id\"></ae-design>\n    <template v-if=\"locals.otherEditorsChanges.length\">\n  \t\t<ae-design name=\"avatar--tiny\" v-for=\"skipped of locals.otherEditorsChanges\" :document-id=\"skipped.data.who.id\"></ae-design>\n    </template>\n\t</div>  -->\n\t<div class=\"_CSS-entry__what\">\n\t\t<div style=\"display:flex;color:var(--ae-background-600)\">\n\t\t\t<template v-if=\"data.causingDocument.id\">\n\t\t\t\t<ae-design style=\"display:inline;margin-right: 0.4ch;\" name=\"form-title\" :document-id=\"data.causingDocument.id\"></ae-design>\n\t\t\t\t<span style=\"margin-right: 0.4ch;\">in</span>\n\t\t\t\t<ae-design style=\"display:inline;margin-right: 0.4ch;\" name=\"form-title\" :document-id=\"data.targetDocument.id\"></ae-design>\n\t\t\t</template>\n\t\t\t<ae-design v-else style=\"display:inline;margin-right: 0.4ch;\" name=\"form-title\" :document-id=\"data.targetDocument.id\"></ae-design>\n\t\t\t<span v-if=\"data.type === 'NEW'\" style=\"margin-right: 0.4ch;\">\n            erstellt\n          </span>\n\t\t\t<span v-else-if=\"data.type === 'CHANGED'\" style=\"margin-right: 0.4ch;\">\n            geändert\n          </span>\n\t\t\t<span v-else-if=\"data.type === 'DELETED'\" style=\"margin-right: 0.4ch;\">\n            gelöscht\n          </span>\n\n      <span style=\"margin-right: 0.4ch;\">von</span>  \n      <template v-if=\"locals.otherEditorsChanges.length\">\n        <span style=\"margin-right: 0.4ch;\"> {{ locals.otherEditorsChanges.length + 1 }} Mitarbeitern</span>\n      </template>\n      <template v-else>\n        <ae-design style=\"display:inline;margin-right: 0.4ch;\" name=\"avatar--resizes-with-font\" :document-id=\"data.who.id\"></ae-design>\n        <ae-design style=\"display:inline;margin-right: 0.4ch;\" name=\"profile-title\" :document-id=\"data.who.id\"></ae-design>\n        <template v-if=\"locals.otherEditorsChanges.length\">\n          <ae-design style=\"display:inline;margin-right: 0.4ch;\" name=\"avatar--resizes-with-font\" :document-id=\"skipped.data.who.id\"></ae-design>\n          <ae-design style=\"display:inline;margin-right: 0.4ch;\" name=\"profile-title\" :document-id=\"skipped.data.who.id\"></ae-design>\n        </template>\n      </template>\n      <div class=\"_CSS-entry__date\" :title=\"Aeppic.DateTime.fromISO(data.when).toLocaleString(Aeppic.DateTime.DATETIME_MED)\">\n        {{ controller.date(data.when) }}\n      </div>\n\t\t</div>\n\t\t<div v-if=\"data.what\">\n\t\t\tFeld <i>{{ data.what.split(':')[0].replace('data.', '')}}</i> auf Wert <i>{{ data.what.split(':')[1] }}</i>\n\t\t</div>\n    <!-- <div v-if=\"locals.changedFields\">\n      <div v-for=\"field of locals.changedFields\"> {{ field }} </div>\n    </div>\n    <div v-if=\"locals.changes\">\n      <div v-for=\"(change) of locals.changes\"> {{ change }} </div> \n    </div> -->\n\n\t\t<div style=\"display:flex;flex-flow:column;\" @click.stop=\"Aeppic.drillInto(data.targetDocument.id)\">\n      <ae-design  name=\"activity-card\"\n                  :document-id=\"data.targetDocument.id\"\n\t\t\t            :param-readonly=\"true\"\n                  @selected=\"Aeppic.drillInto(data.targetDocument.id)\"\n      ></ae-design>\n\t\t\t<ae-design name=\"activity-card\"\n                  :document-id=\"data.causingDocument.id\"\n\t\t\t            :param-readonly=\"true\"\n                  @selected=\"Aeppic.drillInto(data.targetDocument.id)\"\n      ></ae-design>\n\t\t</div>\n\t</div>\n\n\n  <div v-if=\"params.skippedActivities.length\" class=\"_CSS-skipped\">\n    <div class=\"_CSS-skipped__label\">\n      <a class=\"ae-link\" @click.stop=\"params.skippedActivities.length === locals.max ? locals.max = 10 : locals.max = params.skippedActivities.length\" title=\"Alle anzeigen\">\n        <template v-if=\"locals.max < params.skippedActivities.length\">{{locals.max}} /</template> {{ params.skippedActivities.length }} weitere Aktivitäten\n      </a>\n    </div>\n    <div class=\"_CSS-skipped__list\" v-if=\"params.skippedActivities.length\">\n      <template v-for=\"skipped of params.skippedActivities.slice(0, locals.max)\">\n        <ae-design class=\"_CSS-skipped__entry\" name=\"activity-preview\" :document-id=\"skipped.data.targetDocument.id\" @selected=\"Aeppic.drillInto($event)\"></ae-design>\n      </template>\n    </div>\n  </div>\n</div>\n","css":"\n._CSS ._CSS-entry {\n  display: flex;\n  flex-wrap: wrap;\n  padding: 0;\n}\n\n._CSS-entry__who {\n  padding-right: var(--ae-size-3);\n}\n\n._CSS-entry__what {\n  display: flex;\n  flex-flow: column;\n  flex: 1;\n}\n\n._CSS-entry__date {\n  flex: 1;\n  padding-left: var(--ae-size-3);\n  text-align: right;\n\n  color: var(--ae-background-600);\n  font-size: var(--ae-font-size-3);\n  min-width: 0;\n  text-overflow: ellipsis;\n  overflow: hidden;\n  white-space: nowrap;\n}\n\n._CSS-skipped {\n  padding-left: var(--ae-size-4);\n  width: 100%;\n}\n\n._CSS-skipped__label {\n  color: var(--ae-background-600);\n  font-size: var(--ae-font-size-3);\n}\n\n._CSS-skipped__list {\n  display: flex;\n  flex-wrap: wrap;\n  margin-left: calc(-1 * var(--ae-size-2));\n}\n\n._CSS-skipped__entry {\n  margin-left: var(--ae-size-1);\n  margin-bottom: var(--ae-size-1);\n}","controller":"class Controller {\n  async init() {\n    locals.max = 10\n    locals.otherEditorsChanges = []\n    locals.changes = []\n    locals.changedFields = []\n\n    this.updateOtherEditorsChanges()\n    \n    if (data.whatTransition.id) {\n      const whatTransition = await Aeppic.get(data.whatTransition.id)\n      // console.log(whatTransition)\n\n      if (whatTransition) {\n        const transition = JSON.parse(whatTransition.data.additionalData).data\n        console.log(transition)\n        const changes = transition.changes.map(JSON.parse)\n\n        locals.changes = changes\n        locals.changedFields = transition.fieldNames\n      } \n    }\n  }\n\n  updateOtherEditorsChanges() {\n    if (params.skippedActivities) {\n      locals.otherEditorsChanges = params.skippedActivities.filter(skipped => skipped.data.who.id !== data.who.id)\n    } else {\n      locals.otherEditorsChanges = []\n    }\n  }\n\n  date(dateIsoString) {\n    const date = DateTime.fromISO(dateIsoString)\n\n    const diff = -date.diffNow('days').days.toFixed(0)\n\n    if (diff === 0) {\n      return date.toLocaleString(DateTime.TIME_24_SIMPLE)\n    }\n\n    if (diff > 7) {\n      return date.toLocaleString(DateTime.DATETIME_MED)\n    }\n\n    if (diff < 3) {\n      return `${date.toRelativeCalendar({ unit: 'days' })}, ${date.toLocaleString(DateTime.TIME_24_SIMPLE)}`\n    }\n\n    return date.toLocaleString({weekday: 'long', hour: '2-digit', minute: '2-digit' })\n  }\n}\n\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-08-24T08:42:24+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-09-01T13:17:09+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1630502229104,"ct":1630502229103,"a_depth":4,"a":["apps","441fb0bd-959b-446d-9aee-82f1c8ede628","f9e0c42b-8179-4d08-ad6d-452eed6eb855","16c72ee3-d247-4812-bb98-72a0763460a9"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"7abdc4b6-e6e7-43ee-b88d-6ce827a579ba","v":"5887285f4d079535","previous":{"v":"1daa0f8891830968"},"p":"dbee6e16-d63a-493c-bba6-505f79918f9f","f":{"id":"design-form","v":"0061789efb5c5c29","text":"Design"},"data":{"name":"activity-preview","template":"<div  @mouseenter=\"$refs.popup.show($event)\" \n      @mouseleave=\"$refs.popup.close()\"\n      @click.stop=\"$emit('selected', document)\"\n      class=\"ae-navigatable\"\n>\n  <ae-design  name=\"thumbnail\" \n              :document=\"document\" \n              :params=\"{ 'minSize': '48px' }\" \n  ></ae-design>\n</div>\n<ae-popup ref=\"popup\">\n  <div class=\"_CSS-popup\">\n    <ae-design name=\"card\" :document=\"document\"></ae-design>\n    <!-- <ae-design name=\"title\" :document=\"document\"></ae-design> -->\n    <!-- <ae-design name=\"thumbnail\" :document=\"document\" :xparams=\"{ 'minSize': '48px' }\" @mouseenter.native=\"$refs.popup.show($event)\" @mouseleave.native=\"$refs.popup.close()\"></ae-design> -->\n  </div>\n</ae-popup>","css":"._CSS {\n  width: 48px;\n  height: 48px;\n}\n\n._CSS-popup {\n  width: 200px;\n}","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-09-22T07:45:21+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2020-09-22T08:13:53+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1600762433576,"ct":1600760721814,"a_depth":4,"a":["apps","45ada186-e9fd-451d-9dbd-2defc0b4f86f","4ec6a0e5-cf2d-4095-9b70-2e31a64d5679","dbee6e16-d63a-493c-bba6-505f79918f9f"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"dc7a9098-fadd-4805-ac91-7172a6230de4","v":"c7853fb3c1051896","p":"fallback-designs","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"activity-preview","template":"<ae-design name=\"search-card\" :document=\"document\" class=\"ae-navigatable\" :params=\"{ readonly: true, hidePath: true, minimizedInfo: true }\" @selected=\"$emit('selected', $event)\"></ae-design>","css":"._CSS {\n  xwidth: 48px;\n  xheight: 48px;\n  width: 100%;\n}","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-09-21T15:06:30+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2020-09-22T08:59:20+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720684627121,"ct":1720684627121,"a_depth":2,"a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"],"inheritedLocks":[null,null,null],"stamps":[],"previous":{"v":"5427a42cbcd511fa","f":{"id":"design-form","v":"0061789efb5c5c29","text":"Design"}},"meta":{"modified":{"at":"2024-07-11T09:57:07+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"57797f2e-1312-4f09-accf-7f7849a143b1","v":"fc9340b626c8a293","p":"package-form","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"additional-inspect","template":"<div style=\"padding: 0 8px;\">\n  <h1>Package Usage</h1>\n\n  <ae-list  list-id=\"899962b5-dcaf-4bc8-a1f6-803dbab597fb\"\n            :documents=\"locals.usages\"\n            @selected=\"Aeppic.drillInto($event)\"\n  ></ae-list>\n</div>","css":"","controller":"class Controller {\n  async init() {\n    locals.usages = []\n    locals.usages = await Aeppic.find(`data.packages.id:${document.id}`)\n  }\n} ","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-05-25T09:38:25+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-05-25T09:52:13+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1719473826668,"ct":1719473826668,"a_depth":3,"a":["system","system-forms","package-form"],"a_forms":["system-folder-form","repository-folder-form","form"],"inheritedLocks":[null,null,null,null],"stamps":[],"previous":{"v":"4307014157709b25","f":{"id":"design-form","v":"e37099c040ec46e9","text":"Design"}},"meta":{"modified":{"at":"2024-06-27T07:37:06+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"a":["system","system-forms","control-form"],"a_depth":3,"a_forms":["system-folder-form","repository-folder-form","form"],"created":{"at":"2023-07-19T09:03:28+00:00","by":"427610a9-39dc-4014-9176-5f72aeb23263","client":"server","from":""},"ct":1689757408580,"data":{"aliases":[],"controller":"","css":"","description":"","name":"additional-inspect","packages":[],"template":"test"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"9f21da04-1458-4860-bb66-a9801f4e8162","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2023-07-19T09:03:33+00:00","backedBy":null,"by":"427610a9-39dc-4014-9176-5f72aeb23263","client":"server","from":"","impersonatedBy":null},"p":"control-form","previous":{"v":"initial"},"stamps":[],"t":1689757413422,"v":"a9cd07256e2b511b"},{"id":"db469bfb-d4a2-4613-baf9-9a56ada45ea4","v":"931b8051e0b195cf","previous":{"v":"9457d7cdeff94b62"},"p":"fallback-designs","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"additional-inspect","template":"<button @click.stop=\"locals.show = !locals.show\">\n  Show latest children\n</button>\n\n<ae-list v-if=\"locals.show\"\n         list-id=\"simple-list\"\n         :root-document-id=\"document.id\"\n         query-id=\"f812861f-68c8-4818-9972-be7b5474c9b1\"\n         :sort=\"{ field: 'created.at', descending: true }\"\n         param-design=\"search-card,card,title\"\n         @selected=\"Aeppic.drillInto($event)\"\n></ae-list>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-09-06T08:11:40+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-09-06T08:15:53+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1693988153157,"ct":1693987900110,"a_depth":2,"a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"],"inheritedLocks":[null,null,null],"stamps":[]},{"id":"8c6f547e-55f0-4556-8ea3-2a8b9baf08f8","v":"48f86f8f884dea58","previous":{"v":"3881851e77d40808"},"p":"43f2603c-e6b0-4a91-9087-4f103c96a2b4","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"additional-toolbar-actions","template":"<ae-button class=\"ae-button\" @click=\"controller.generateTodaysList()\">\r\n  <ae-icon class=\"fad fa-calendar-day\"></ae-icon>\r\n  Tagesliste\r\n</ae-button>\r\n\r\n<ae-dialog ref=\"todaysList\" title=\"Tagesliste\" :full-screen=\"true\">\r\n  <div slot=\"header\" slot-scope=\"scope\" class=\"_CSS-dialog__header\">\r\n    <button class=\"ae-button\" @click.stop=\"scope.close()\" title=\"Back\">\r\n        <ae-icon class=\"fa fa-arrow-left\"></ae-icon>\r\n      </button>\r\n    <span>Tagesliste <strong>{{locals.day}}</strong></span>\r\n    <div class=\"_CSS-buttons\" xstyle=\"opacity:0.5\">\r\n      <button class=\"ae-button\" title=\"Drucken\" @click=\"controller.print()\">\r\n        <ae-icon class=\"fad fa-print\"></ae-icon>\r\n      </button>  \r\n      <button class=\"ae-button\" title=\"Herunterladen\" :disabled=\"!locals.blob\" @click=\"Aeppic.Modules.FileSaver.saveAs(locals.blob, locals.filename)\">\r\n        <ae-icon class=\"fad fa-download\"></ae-icon>\r\n      </button>  \r\n      <button class=\"ae-button\" style=\"margin-left:20px;\" @click.stop=\"scope.close()\" title=\"Schließen\">\r\n        <ae-icon class=\"fa fa-times\"></ae-icon>\r\n      </button>\r\n    </div>\r\n  </div>  \r\n  <div slot=\"body\" style=\"display:flex;\">\r\n    <iframe ref=\"pdfFrame\" class=\"_CSS-iframe\" v-if=\"locals.url\" :src=\"locals.url\" type=\"application/pdf\"></iframe>\r\n  </div>\r\n</ae-dialog>","css":"._CSS {\r\n  display: flex;\r\n  align-items: center;\r\n  justify-items: center;\r\n}\r\n\r\n._CSS-dialog__header {\r\n  display: flex;\r\n  align-items: center;\r\n  justify-content: space-between;\r\n}\r\n\r\n._CSS-buttons {\r\n  display: flex;\r\n  align-items: center;\r\n}\r\n\r\n@media print {\r\n  ._CSS-buttons {\r\n    display:none;\r\n  }\r\n}\r\n\r\n._CSS-iframe {\r\n  flex:1;\r\n}","controller":"class Controller {\r\n  init() {\r\n    this.fonts = {\r\n      Roboto: {\r\n        normal: 'https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.66/fonts/Roboto/Roboto-Regular.ttf',\r\n        bold: 'https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.66/fonts/Roboto/Roboto-Medium.ttf',\r\n        italics: 'https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.66/fonts/Roboto/Roboto-Italic.ttf',\r\n        bolditalics: 'https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.66/fonts/Roboto/Roboto-MediumItalic.ttf'\r\n      },\r\n    }\r\n    this.baseUrl = packages.window.location.origin\r\n    this.pdfMake = packages.pdfMake\r\n    \r\n    locals.url = ''\r\n    locals.blob = null\r\n    locals.day = DateTime.local().setLocale('de-de').toLocaleString(DateTime.DATE_FULL)\r\n    this.title = `Tagesliste ${locals.day}`\r\n    locals.filename = this.title + '.pdf'\r\n\r\n    this.FORMS = {\r\n      APPOINTMENT_FORM_ID: '0aedd37c-75c9-4724-ab7e-a3de888870b5'\r\n    }\r\n  }\r\n\r\n  async _findTodaysEvents() {\r\n    const today = DateTime.local()\r\n    const todayMin = today.startOf('day')\r\n    const todayMax = today.endOf('day')\r\n\r\n    const eventQuery = Aeppic.Query.children().form(this.FORMS.APPOINTMENT_FORM_ID)\r\n      .subQuery(q =>\r\n        q.where('data.start').isInRange('now/d', 'now+1d/d')\r\n          .or\r\n          .where('data.end').isInRange('now/d', 'now+1d/d')\r\n      )\r\n      .or\r\n      .where('data.daysOfWeek').isInRange('*', '*')\r\n\r\n    console.dir(eventQuery)\r\n\r\n    let events = await Aeppic.find(eventQuery)\r\n    events = events.filter(d => d.data.start)\r\n      \r\n    // console.dir(events)\r\n\r\n    function isRepeatedEventInRange(event, rangeStart, rangeEnd) {\r\n      const start = DateTime.fromISO(event.data.start)\r\n      const end = DateTime.fromISO(event.data.end || event.data.start)\r\n\r\n      const interval1 = Aeppic.DateTimeInterval.fromDateTimes(rangeStart, rangeEnd)\r\n      const interval2 = Aeppic.DateTimeInterval.fromDateTimes(start, end)\r\n      \r\n      return interval1.overlaps(interval2)\r\n    }\r\n\r\n    for (let i=0; i < events.length; i++) {\r\n      const event = events[i]\r\n\r\n      try {\r\n        if (event.data.daysOfWeek.length > 0) {\r\n          if (!isRepeatedEventInRange(event, todayMin, todayMax)) {\r\n            events[i] = null\r\n            continue\r\n          }\r\n\r\n          const start = DateTime.fromISO(event.data.start)\r\n          const todaysWeekday = DateTime.local().weekday\r\n\r\n          if (!event.data.daysOfWeek.includes(todaysWeekday)) {\r\n            events[i] = null\r\n            continue\r\n          }\r\n\r\n          const newStart = DateTime.local().set({\r\n            hour: start.get('hour'),\r\n            minute: start.get('minute'),\r\n            second: start.get('second'), \r\n            millisecond: start.get('millisecond'),\r\n          }).toISO()\r\n          \r\n          const newEvent = JSON.parse(JSON.stringify(event))\r\n          newEvent.data.start = newStart\r\n          events[i] = newEvent\r\n        }\r\n      } catch (error) {\r\n        console.error('Error handling event', event, error)\r\n      }\r\n    }\r\n\r\n    events = events.filter(e => !!e)\r\n\r\n    events = events.sort((a, b) => {\r\n      const startA = DateTime.fromISO(a.data.start)\r\n      const startB = DateTime.fromISO(b.data.start)\r\n\r\n      const aTime = startA.get('hour') * 60 + startA.get('minute')\r\n      const bTime = startB.get('hour') * 60 + startB.get('minute')\r\n\r\n      return aTime - bTime\r\n    })\r\n\r\n    return events\r\n  }\r\n\r\n  async generateTodaysList() {\r\n    const events = await this._findTodaysEvents()\r\n\r\n    $refs.todaysList.show()\r\n    await Aeppic.nextRenderPass()\r\n    \r\n    const docDefinition = {\r\n      info: {\r\n        title: this.title\r\n      },\r\n      pageSize: 'A4',\r\n      pageOrientation: 'portrait',\r\n      pageMargins: [40, 150, 40, 60],\r\n      header: [\r\n        // {\r\n        //   margin: [10, 20],\r\n        //   image: 'companyLogo',\r\n        //   fit: [200, 40],\r\n        //   alignment: 'right',\r\n        // },\r\n        {\r\n          fontSize: 10,\r\n          text: this.title,\r\n          margin: [40, 30],\r\n          alignment: 'left',\r\n          bold: true\r\n        },\r\n      ],\r\n      footer: {\r\n        margin: [0, 10],\r\n        style: 'footer',\r\n        alignment: 'center',\r\n        columns: ['', '', DateTime.local().setLocale('de-de').toLocaleString(DateTime.DATETIME_MED)]\r\n      },\r\n      content: [\r\n        {\r\n          margin: [0, 0, 0, 0],\r\n          style: 'header',\r\n          text: this.title,\r\n        },\r\n        // {\r\n        //   ul: events.map(e => `${e.data.start} ${e.data.name}`)\r\n        // },\r\n        {\r\n          margin: [10, 10],\r\n          alignment: 'left',\r\n          layout: 'noBorders',\r\n          table: {\r\n            widths: [\r\n              'auto',\r\n              'auto',\r\n              '*',\r\n              '*',\r\n              'auto',\r\n            ],\r\n            body: [ [\r\n              {\r\n                fontSize: 9,\r\n                text: 'Von',\r\n                alignment: 'left',\r\n                color: '#666',\r\n              },\r\n              {\r\n                fontSize: 9,\r\n                text: 'Bis',\r\n                alignment: 'left',\r\n                color: '#AAA',\r\n              },\r\n              {\r\n                fontSize: 9,\r\n                text: 'Name',\r\n                alignment: 'left',\r\n                color: '#666',\r\n              },\r\n              {\r\n                fontSize: 9,\r\n                text: 'Beschreibung',\r\n                alignment: 'left',\r\n                color: '#666',\r\n              },\r\n              {\r\n                text: 'Wiederholt',\r\n                italics: true,\r\n              }\r\n            ],\r\n            ...events.map(e => \r\n              [\r\n                e.data.start ? DateTime.fromISO(e.data.start).setLocale('de-de').toLocaleString(DateTime.TIME_SIMPLE) : '',\r\n                {\r\n                  fontSize: 10,\r\n                  text: e.data.end ? DateTime.fromISO(e.data.end).setLocale('de-de').toLocaleString(DateTime.TIME_SIMPLE): '',\r\n                  color: '#AAA',\r\n                },\r\n                e.data.name,\r\n                {\r\n                  fontSize: 8,\r\n                  color: '#444',\r\n                  text: e.data.description,\r\n                },\r\n                {\r\n                  fontSize: 8,\r\n                  italics: true,\r\n                  text: toDaysOfWeek(e.data.daysOfWeek)\r\n                }\r\n              ]\r\n            )\r\n            ]\r\n          }\r\n        },\r\n      ],\r\n      defaultStyle: {\r\n        font: 'Roboto',\r\n        fontSize: 10,\r\n      },\r\n      styles: {\r\n        header: {\r\n          fontSize: 13,\r\n          bold: true,\r\n        },\r\n        tableHeader: {\r\n          bold: true,\r\n          fillColor: '#ededed'\r\n        },\r\n        footer: {\r\n          fontSize: 8,\r\n        },\r\n      },\r\n      // images: {\r\n      //   companyLogo: this.settings.unternehmensLogoUrl\r\n      // }\r\n    }\r\n\r\n    function toDaysOfWeek(daysOfWeek) {\r\n      const copy = [...daysOfWeek].sort()\r\n      return copy.map(d => toDayOfWeek(d)).join(', ')\r\n    }\r\n\r\n    function toDayOfWeek(dayOfWeek) {\r\n      return ['Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa', 'So'][dayOfWeek - 1]\r\n    }\r\n\r\n    const { url, blob } = await this._renderPdf(docDefinition, { title: this.title })\r\n    locals.url = url\r\n    locals.blob = blob\r\n\r\n    await Aeppic.nextRenderPass()    \r\n  }\r\n\r\n  print() {\r\n    if ($refs.pdfFrame) {\r\n      $refs.pdfFrame.contentWindow.print()\r\n    }\r\n  }\r\n\r\n  async _renderPdf(docDefinition, options) {\r\n    const pdf = await this.pdfMake.createPdf(docDefinition, null, this.fonts)\r\n    return this._convertPdf(pdf)\r\n  }\r\n\r\n  _convertPdf(pdfData) {\r\n    return new Promise((resolve) => {\r\n      pdfData.getBlob((blob) => {\r\n        const objectUrl = URL.createObjectURL(blob)\r\n        resolve({ url: objectUrl, blob })\r\n        // $emit('file-blob', { blob, title: options.title })\r\n      })\r\n    })\r\n  }\r\n}","packages":[{"id":"6d4d5df8-bc1e-42ae-aa48-f0cfdc009ff7","v":"b0c5aef3a774d0f1","text":"pdfmake"},{"id":"10843fbf-4f0c-416b-be7d-42d6bbd0ae68","v":"d4ce6dec568c3dc1","text":"Window"}],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-11-10T13:33:28+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","from":"","client":"server"},"modified":{"at":"2021-12-06T16:28:15+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1638808095297,"ct":1636551208274,"a_depth":4,"a":["apps","b3191869-9bcf-440c-92be-7b013944b450","3555bef3-1cf0-4f7d-b3ce-5346fb8cbff4","43f2603c-e6b0-4a91-9087-4f103c96a2b4"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"3ade4cc1-6626-4b3b-b434-fffc4e234e1a","v":"01d3a5bd63bc7698","previous":{"v":"50affa7e4965b537"},"p":"a04c8913-db48-4e80-b20d-0f3cc17a778c","f":{"id":"design-form","v":"74db9b6ed94b41d9","text":"Design"},"data":{"name":"additional-toolbar-actions.old","template":"<!-- <ae-design v-if=\"locals.topFolderId && document.id !== locals.topFolderId\" name=\"additional-toolbar-actions\" :document-id=\"locals.topFolderId\"></ae-design>\n<template v-else>\n  <ae-icon class=\"fa fa-folder-tree\" style=\"margin-right: var(--ae-size-2);\"></ae-icon>\n  <button v-if=\"data.linkedClient.id\" class=\"ae-button ae-button--secondary\" @click.stop=\"Aeppic.drillInto(data.linkedClient.id)\">\n    Kunde\n  </button>\n  <button v-if=\"data.linkedProject.id\" class=\"ae-button ae-button--secondary\" @click.stop=\"Aeppic.drillInto(data.linkedProject.id)\">\n    Projekte\n  </button>\n</template> -->\n\n<ae-icon class=\"fa fa-folder-tree\" style=\"margin-right: var(--ae-size-2);\"></ae-icon>\n<button v-if=\"data.client && data.client.id\" class=\"ae-button ae-button--secondary\" @click.stop=\"Aeppic.drillInto(data.client.id)\">\n  Kunde\n</button>\n<button v-if=\"data.order && data.order.id\" class=\"ae-button ae-button--secondary\" @click.stop=\"Aeppic.drillInto(data.order.id)\">\n  Auftrag\n</button>\n<button v-if=\"data.project && data.project.id\" class=\"ae-button ae-button--secondary\" @click.stop=\"Aeppic.drillInto(data.project.id)\">\n  Projekte\n</button>","css":"._CSS {\n  display: flex;\n  align-items: center;\n\n  margin-right: var(--ae-size-3);\n}","controller":"// class Controller {\n//   init() {\n//     locals.topFolderId = ''\n\n//     const indexOfMostTopFolderBesideThis = document.a_forms.findIndex(a_form => a_form === document.f.id)\n\n//     if (indexOfMostTopFolderBesideThis !== -1) {\n//       locals.topFolderId = document.a[indexOfMostTopFolderBesideThis]\n//     }\n//   }\n// }","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-06-25T11:22:42+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2020-07-14T15:16:30+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1594739790145,"ct":1593084162725,"a_depth":4,"a":["apps","45ada186-e9fd-451d-9dbd-2defc0b4f86f","4ec6a0e5-cf2d-4095-9b70-2e31a64d5679","a04c8913-db48-4e80-b20d-0f3cc17a778c"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"c9166fdf-b07f-45e0-a19a-5f48c56eae03","v":"initial","cloneOf":{"id":"8950ec7f-3cdb-46d7-90ac-7c3f26be44be","v":"b2165c68c2a0d15d","text":"additional-toolbar-actions.OLD"},"originalCloneOf":{"id":"8950ec7f-3cdb-46d7-90ac-7c3f26be44be","v":"b2165c68c2a0d15d","text":"additional-toolbar-actions.OLD"},"p":"3e134a66-4611-456c-88e9-be8ae3d75dff","f":{"id":"design-form","v":"74db9b6ed94b41d9","text":"Design"},"data":{"name":"additional-toolbar-actions.OLD","template":"<ae-icon class=\"fa fa-folder-tree\" style=\"margin-right: var(--ae-size-2);\"></ae-icon>\n\n<button v-if=\"data.dmsFolder && data.dmsFolder.id\" class=\"ae-button ae-button--secondary\" @click.stop=\"Aeppic.drillInto(data.dmsFolder.id)\">\n  Dokumente\n</button>\n<button v-if=\"data.project && data.project.id\" class=\"ae-button ae-button--secondary\" @click.stop=\"Aeppic.drillInto(data.project.id)\">\n  Projekte\n</button>","css":"._CSS {\n  display: flex;\n  align-items: center;\n\n  margin-right: var(--ae-size-3);\n}","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-01-27T11:02:53+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-01-27T11:02:53+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1611745373578,"ct":1611745373578,"a_depth":4,"a":["apps","d91078cc-874b-4410-b837-b81f47687fe9","6b513a0c-498f-4eac-804d-aa8e0e99caac","3e134a66-4611-456c-88e9-be8ae3d75dff"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"0651bff1-6901-4d45-8c12-09b7f0a779c1","v":"981433f16db9135a","cloneOf":{"id":"ea9c328a-c747-40b1-92bf-40574d2bd61f","v":"13071c91cf4a0c6a","text":"additional-toolbar-buttons"},"originalCloneOf":{"id":"ea9c328a-c747-40b1-92bf-40574d2bd61f","v":"13071c91cf4a0c6a","text":"additional-toolbar-buttons"},"previous":{"v":"97ce5486bc0c59d8"},"p":"3592ceee-ae9a-47a9-8488-7bad5b0d9ff5","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"additional-toolbar-buttons","template":"<ae-layout  layout-id=\"0ded34c5-1221-4511-af93-d897a79f1369\"\n            :param-document=\"document\"\n></ae-layout>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-04-19T13:22:55+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-04-19T13:23:06+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1650374586161,"ct":1650374575260,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","3592ceee-ae9a-47a9-8488-7bad5b0d9ff5"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"12737a56-f568-4d19-b7c8-4822285eddf9","v":"cafbffeef219a9d9","previous":{"v":"7ab5abcb20bbac93"},"p":"17c3a5d3-90ba-4592-961b-0800873ef9c1","f":{"id":"design-form","v":"65801907e0c30697","text":"Design"},"data":{"name":"additional-toolbar-buttons","template":"<button class=\"ae-button\" @click=\"controller.toggleDetails()\">\n  <template v-if=\"locals.showDetails\">\n    <ae-icon class=\"fa fa-info-circle\"></ae-icon>\n    Details angezeigt\n    </template>\n  <template v-else>\n    <ae-icon class=\"fal fa-info-circle\"></ae-icon>\n    Details ausgeblendet\n    </template>\n</button>\n\n\n<button class=\"ae-button\" :disabled=\"!locals.view === 'projects'\" @click=\"controller.toggleDone()\">\n  <template v-if=\"locals.showDone\">\n    <ae-icon class=\"fa fa-clipboard-check\"></ae-icon> Erledigte angezeigt \n  </template>\n  <template v-else >\n    <ae-icon class=\"fa fa-clipboard\"></ae-icon> Erledigte ausgeblendet\n  </template>\n</button>","css":"._CSS {\n  display: flex;\n}","controller":"class Controller {\n  init() {\n    locals.showDone = false\n    locals.showDetails = false\n  }\n\n  toggleDone() {\n    locals.showDone = !locals.showDone\n    $emit('toolbar', `view_done_${locals.showDone}`)\n  }\n  toggleDetails() {\n    locals.showDetails = !locals.showDetails\n    $emit('toolbar', `view_details_${locals.showDetails}`)\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2019-05-03T13:06:31+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2019-10-03T09:25:12+00:00","by":"8e6c22aa-8c69-4ff8-919a-7032841cf636","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1570094712567,"ct":1556888791315,"a_depth":4,"a":["apps","5acfd7a2-33e4-498a-9150-71e1ab772bfc","20c92864-6a81-4006-96f9-b78f473cd129","17c3a5d3-90ba-4592-961b-0800873ef9c1"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"16c2ba18-8af0-48ae-acfa-c758489754a1","v":"0153b82d0e33a4c4","cloneOf":{"id":"7cbbef5f-a02a-4aca-a75b-953a056184e7","v":"801aaca7256c877d","text":"additional-toolbar-buttons"},"originalCloneOf":{"id":"7cbbef5f-a02a-4aca-a75b-953a056184e7","v":"801aaca7256c877d","text":"additional-toolbar-buttons"},"previous":{"v":"e3ac3e8656b175ba"},"p":"f6f822ec-eff4-4dc9-9ca6-8131004688da","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"additional-toolbar-buttons","template":"<button v-for=\"view of locals.views\" class=\"ae-button\" :class=\"{ 'ae-button--tertiary': locals.currentView === view }\" @click.stop=\"controller.setView(view)\">\n  <ae-icon class=\"fad\" :class=\"view.icon\"></ae-icon>&nbsp;<span :title=\"view.title\">\n    {{ view.label }}\n    </span>\n</button>\n","css":"._CSS {\n  display: flex;\n}","controller":"class Controller {\n  init() {\n    locals.views = [\n      {\n        id: 'capture',\n        icon: { 'fa-camera-retro': true },\n        label: 'Erfassung',\n      },\n      {\n        id: 'list',\n        icon: { 'fa-list': true },\n        label: 'Liste',\n      },\n    ]\n \n    locals.currentView = locals.views[0]\n\n    const storedViewId = Aeppic.LocalStorage.getValue('bp-pref-rooms-receipts-view')\n    if (storedViewId) {\n      locals.currentView = locals.views.find(v => v.id === storedViewId) || locals.currentView\n    }\n  }\n  \n  setView(view) {\n    locals.currentView = view\n    Aeppic.LocalStorage.setValue('bp-pref-rooms-receipts-view', view.id)\n\n    $emit('toolbar', `view_${view.id}`)\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-11-23T09:57:24+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-11-23T10:02:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1669197752241,"ct":1669197442692,"a_depth":4,"a":["apps","85d3c028-a61c-4be8-93d0-4366bc45752f","25fda732-5296-4fab-8d4e-92c3e32ca2c0","f6f822ec-eff4-4dc9-9ca6-8131004688da"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"1f607bae-249e-491f-a5fc-1c94a47ce591","v":"a27884b1e5b56421","previous":{"v":"27a0cfaa458704e7"},"p":"5152f88f-3006-46f9-959a-423139accf79","f":{"id":"design-form","v":"24435d748c76f819","text":"Design"},"data":{"name":"additional-toolbar-buttons","template":"<a v-if=\"locals.hasShare\" @click.stop.prevent=\"controller.buildAndActivateMailTo()\">\n  <button class=\"ae-button ae-button--secondary\">\n      <ae-icon class=\"fa fa-envelope-open-text\"></ae-icon>\n  </button>\n</a>\n<a ref=\"mailto\" v-show=\"false\" :href=\"locals.href\"></a>","css":"","controller":"class Controller {\n  async init() {\n    this.SHARE_PREFIX = 'mail'\n    this.TEMPLATE_FORM = '10b3d98f-08ea-4423-945a-0d1650321b09'\n\n    locals.href = ''\n\n    locals.hasShare = !!(await Aeppic.get(data.share))\n  }\n\n  async buildAndActivateMailTo() {\n    locals.href = await this.mailto()\n\n    await Aeppic.nextRenderPass()\n\n    $refs.mailto.click()\n  }\n\n  async mailto() {\n    // see: https://medium.com/@mcclowes/making-mailto-links-actually-work-7eea5b3f4e1d\n    const mailtoEncodings = {\n      comma: '%3B%20',\n      whitespace: '%20'\n    }\n\n    const parts = []\n\n    const recipients = (await Aeppic.getAll(data.empfaenger)).filter(d => d != null)\n\n    for (let i = 0; i < recipients.length; i += 1) {\n      const recipient = recipients[i]\n\n      if (recipient && recipient.data.email) {\n        parts.push(recipient.data.email)\n\n\n        if (recipients.length > 1 && i < recipients.length) {\n          parts.push(',')\n        }\n      }\n    }\n\n    parts.push('?')\n\n    if (data.name) {\n      const name = encodeURIComponent(data.name)\n      parts.push(`subject=${name}`)\n    }\n \n    const share = await Aeppic.get(data.share)\n\n    if (!share) {\n      console.error('Could not find share')\n      return\n    }\n\n    const baseUrl = packages.window.location.origin \n    const url = `${baseUrl}/${this.SHARE_PREFIX}/${share.data.identifier}`\n\n    const readableShare = await Aeppic.new('e60d2d83-e63b-4786-87c7-6f932b62f6bb', document.p)\n    readableShare.data.url = url\n\n    const body = encodeURIComponent(`${await this.buildTokenTemplate(readableShare)}`)\n\n    if (parts[parts.length - 1] === '?') {\n      parts.push(`body=${body}`)\n    } else {\n      parts.push(`&body=${body}`)\n    }\n  \n    return `mailto:${parts.join('')}`\n  }\n\n  async buildTokenTemplate(share) {\n    const tokenTemplateDocument = await Aeppic.findOne(`a:${document.a[0]} a_forms:089eb68f-d2ec-4e30-a3bb-6549d72932ec f.id:${this.TEMPLATE_FORM}`)\n    const template = tokenTemplateDocument.data.template\n\n    const parent = await Aeppic.get(document.p)\n    const empfaenger = await Aeppic.get(data.empfaenger[0])\n\n    const dataDocuments = [parent, empfaenger, share, document].filter(d => d != null)\n\n    const reportData = await this._generateReportData(dataDocuments)\n\n    const tokenizedTemplate = this._replaceTokensInXml(template, reportData)\n    console.log('-> token template', reportData, tokenizedTemplate)\n \n    return tokenizedTemplate\n  }\n\n  async _generateReportData(dataDocuments) {\n    const reportData = {}\n    const usedFormNames = []\n\n    for (const document of dataDocuments) {\n      const form = await Aeppic.getDocumentForm(document)\n\n      const formName = form.data.name.replace(/\\s/g, '-')\n\n      if (usedFormNames.includes(formName)) {\n        log.warn(\n          'duplicate form name \"%s\" referenced. Ignoring',\n          formName,\n          document\n        )\n\n        continue\n      }\n\n      usedFormNames.push(formName)\n\n      for (const field of form.fields) {\n        const { type, subType, name } = field\n        const value = document.data[name]\n        const fieldName = this._uniformToken(`${formName}_${name}`)\n\n        if (type === 'string' || type === 'number') {\n          reportData[fieldName] = `${value}`\n          \n          continue\n        }\n\n        if (type === 'object' && subType === 'address') {\n          for (const key of Object.keys(value)) {\n            const subFieldName = `${fieldName}_${key}`\n            const subValue = value[key]\n            \n            reportData[subFieldName] = `${subValue}`\n          }\n        }\n\n      }\n    }\n\n    return reportData\n  }\n\n  _replaceTokensInXml(template, documentData) {\n    if (!documentData) {\n      return template\n    }\n\n    for (const token in documentData) {\n      if (!(typeof token === 'string' || typeof token === 'number')) {\n        continue\n      }\n\n      const tokenExp = `$${token}$`\n      \n      const value = documentData[token] ? String(documentData[token]) : ''\n\n      template = template.replace(tokenExp, value)\n    }\n\n    return template\n  }\n\n  _uniformToken(token) {\n    let sanitized = token\n\n    // Ü, ü     \\u00dc, \\u00fc\n    // Ä, ä     \\u00c4, \\u00e4\n    // Ö, ö     \\u00d6, \\u00f6\n    // ß        \\u00df\n    sanitized = sanitized.replace(/\\u00dc/g, 'Ue')\n    sanitized = sanitized.replace(/\\u00fc/g, 'ue')\n    sanitized = sanitized.replace(/\\u00c4/g, 'Ae')\n    sanitized = sanitized.replace(/\\u00e4/g, 'ae')\n    sanitized = sanitized.replace(/\\u00d6/g, 'Oe')\n    sanitized = sanitized.replace(/\\u00f6/g, 'oe')\n    sanitized = sanitized.replace(/\\u00df/g, 'ss')\n\n    return sanitized.toLowerCase()\n  }\n}\n","packages":[{"id":"10843fbf-4f0c-416b-be7d-42d6bbd0ae68","v":"5f748569e59edddc","text":"Window"}],"aliases":[],"description":""},"locks":[],"created":{"at":"2019-05-03T14:14:36+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2021-07-21T08:20:21+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1626855621613,"ct":1556885676479,"a_depth":4,"a":["apps","94a64d89-d204-4918-b147-d717914fb03e","f254ce25-42f1-4333-8ee7-23554bf746c1","5152f88f-3006-46f9-959a-423139accf79"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"2110aad6-5387-4aca-820d-9da029e2fff4","v":"3eaab945d2cdfd7e","previous":{"v":"10553d798c2d3d08"},"p":"527f9bb3-01bd-48cc-ad5b-08b1bba3af33","f":{"id":"design-form","v":"24435d748c76f819","text":"Design"},"data":{"name":"additional-toolbar-buttons","template":"<div @click.capture.prevent=\"controller.download()\" class=\"ae-button\">\n    <ae-icon class=\"fa fa-download\"></ae-icon>\n</div>\n\n<a v-if=\"locals.url\" ref=\"a\"  :href=\"locals.url\" :download=\"data.name + '.bpmn'\" target=\"_blank\"></a>","css":"","controller":"init() {\n  locals.url = null\n\n}\n\nasync download(clickEvent) {\n  const blob = new Blob([ data.prozess ], { type: 'application/xml'} )\n\n  const objectUrl = URL.createObjectURL(blob)\n\n  locals.url = objectUrl\n\n  await Aeppic.nextRenderPass()\n\n  $refs.a.click()\n}\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2019-03-19T13:53:53+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2020-05-08T08:51:36+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1588927896447,"ct":1553003633801,"a_depth":4,"a":["apps","bd4df555-2c56-4a5f-82f0-7e4745372f51","b42c9135-e564-4d50-abd1-4d753921120f","527f9bb3-01bd-48cc-ad5b-08b1bba3af33"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"2a40cf52-ce24-45fd-a653-bd7f185759af","v":"b75e4125da2d74b5","cloneOf":{"id":"2eb3ac22-fe77-4f6f-95af-8c38bfc0eb26","v":"801d9001ce971994","text":"additional-toolbar-buttons"},"originalCloneOf":{"id":"2eb3ac22-fe77-4f6f-95af-8c38bfc0eb26","v":"801d9001ce971994","text":"additional-toolbar-buttons"},"previous":{"v":"fd2e2403b9bc3299"},"p":"c0574720-6967-4293-94a8-e7b32a40fc6f","f":{"id":"design-form","v":"49954170df6a253b","text":"Design"},"data":{"name":"additional-toolbar-buttons","template":"<div v-if=\"locals.enableLocalSearch && locals.searchDocument\">\n  <input type=\"text\" v-focus v-if=\"locals.showSearch\" @keydown.enter=\"Aeppic.navigateTo(locals.searchDocument, {  q: locals.search, qA: document.id })\" v-model=\"locals.search\">\n  <button class=\"ae-button\" @click.stop=\"locals.showSearch = !locals.showSearch\">\n    <ae-icon class=\"fad fa-search\"></ae-icon>\n  </button>\n</div>\n\n<template v-if=\"locals.enableReports\">\n  <button class=\"ae-button\" @click.stop=\"controller.show($event)\">\n    Berichte\n  </button>\n\n  <ae-popup ref=\"popup\" placement=\"bottom-start\">\n    <template slot=\"popup\" slot-scope=\"popup\">\n      <div class=\"_CSS-popup\" :style=\"{ 'min-width': popup.baseWidth * 2 +'px' }\" @click.stop=\"controller.close()\">\n        <a class=\" _CSS-list__entry _CSS-link--unstyled \" :href=\"controller.printLink\" target=\"_blank\">\n          <ae-icon class=\"fad fa-print\"></ae-icon>\n          &nbsp;\n          Alle Dokumente (Druckansicht)\n        </a>\n        <a class=\"_CSS-list__entry _CSS-link--unstyled \" :href=\"controller.pdfLink\" target=\"_blank\">\n          <ae-icon class=\"fad fa-file-pdf\"></ae-icon>\n          &nbsp;\n          Alle Dokumente (PDF)\n        </a>\n      </div>\n    </template>\n  </ae-popup> \n</template>\n\n\n<button class=\"ae-button\" v-show=\"locals.view === 'table'\" @click=\"controller.nextView()\" title=\"Liste\">\n  <ae-icon class=\"fad fa-list-ul\"></ae-icon>\n</button>\n<button class=\"ae-button\" v-show=\"locals.view === 'grid'\" @click=\"controller.nextView()\" title=\"Karten\">\n  <ae-icon class=\"fad fa-th\"></ae-icon>\n</button>\n<button class=\"ae-button\" v-show=\"locals.view === 'two-column'\" @click=\"controller.nextView()\" title=\"Ordner und Dateien getrennt als Liste\">\n  <ae-icon class=\"fad fa-columns\"></ae-icon>\n</button>\n<!-- <button class=\"ae-button\" @click=\"controller.toggleMix()\" :disabled=\"locals.view == 'two-column'\">\n  <span  v-show=\"locals.mixFilesAndFolders\"  title=\"Mix files and folders\"><ae-icon class=\"fad fa-toggle-off\"></ae-icon></span>\n  <span  v-show=\"!locals.mixFilesAndFolders\" title=\"Show folders first\"><ae-icon class=\"fad fa-toggle-on\"  ></ae-icon></span>\n</button> --> ","css":"._CSS {\n  display: flex;\n}\n\n._CSS-popup {\n  padding: var(--ae-size-2) 0;\n  background-color: white;\n  box-shadow: var(--ae-shadow-2);\n  transition: opacity .15s, visibility 1s;\n  border-radius: var(--ae-border-radius);\n  display: flex;\n  flex-flow: column;\n}\n\n._CSS-list__entry {\n  display: flex;\n  flex-flow: row;\n  align-items: center;\n  cursor: pointer;\n  padding: 0.5rem;\n}\n\n._CSS-link--unstyled {\n  color: inherit;\n  text-decoration: none;\n}\n\n._CSS-list__entry:hover {\n  background: var(--ae-background-200);\n}","controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      SearchNew: '5d0ac040-1428-48bc-9b4f-28c69e098b3c',\n      SearchOld: 'bf8eb298-3431-4138-a1e1-e748e05f3f37',\n    }\n\n    this.printLayoutId = '3b0d1c7e-52dc-409e-a164-56d03640dc4c'\n\n    locals.showSearch = false\n\n    locals.searchDocument = await Aeppic.findOne(`p:${document.a[0]} f.id:${this.FORMS.SearchNew}`)\n\n    if (document.a.length !== 1) {\n      locals.enableReports = false\n    }\n\n    locals.mixFilesAndFolders = false\n    locals.views = ['grid', 'two-column', 'table']\n    locals.view = locals.views.shift()\n\n    if (Aeppic.LocalStorage.isAvailable) {\n      locals.mixFilesAndFolders = Aeppic.LocalStorage.getValue('bp-pref-ordner-page-mix') || locals.mixFilesAndFolders\n      locals.views = Aeppic.LocalStorage.getValue('bp-pref-ordner-page-views') || locals.views\n      locals.view = Aeppic.LocalStorage.getValue('bp-pref-ordner-page-view') || locals.view\n    }\n\n    const flags = await this._getEnabledFlags()\n    locals.enableReports = flags.reports\n    locals.enableLocalSearch = flags.localSearch\n  }\n\n  show(event) {\n      $refs.popup && $refs.popup.show(event)\n  }\n\n  close() {\n    $refs.popup && $refs.popup.close()\n  }\n\n  nextView() {\n    locals.views.push(locals.view)\n    locals.view = locals.views.shift()\n\n    Aeppic.LocalStorage.setValue('bp-pref-ordner-page-views', locals.views)\n    Aeppic.LocalStorage.setValue('bp-pref-ordner-page-view', locals.view)\n\n    $emit('toolbar', `view_${locals.view}`)\n  }\n\n  // toggleMix() {\n  //   locals.mixFilesAndFolders = !locals.mixFilesAndFolders\n\n  //   Aeppic.LocalStorage.setValue('bp-pref-ordner-page-mix', locals.mixFilesAndFolders)\n  //   $emit('toolbar', `view_mix-files-and-folders_${locals.mixFilesAndFolders}`)\n  // }\n\n  destroy() {\n    this.close()\n  }\n\n  get printLink() {\n    return `/${document.id}?print&printLayoutId=${this.printLayoutId}`\n  }\n\n  get pdfLink() {\n    return `/api/docs/${document.id}/_print?name=${document.data.name}&landscape=true&additionalQueryParams=printLayoutId%3D${this.printLayoutId}`\n  }\n\n  async _getEnabledFlags() {\n    const settingsDocument = await Aeppic.Preferences.getSettingsDocuments('apps:3d43a3f5-fea4-488d-9fc1-9dee5e694623')\n    if (!settingsDocument || !settingsDocument.globalSettings)  {\n      return\n    }\n\n    const settings = settingsDocument.globalSettings\n\n    const flags = {\n      reports: settings.data.enableReports || false,\n      localSearch: settings.data.enableLocalSearch || false,\n    }\n\n    if (flags.reports) {\n      const canEdit = await Aeppic.canEdit(document)\n      \n      flags.reports = Aeppic.Account && Aeppic.Account.data.isGroupAccount === false && canEdit === true\n    }\n\n    return flags\n  }\n\n  async _localSearchEnabled() {\n    const enable = await Aeppic.Preferences.getSettingForDocument('apps:3d43a3f5-fea4-488d-9fc1-9dee5e694623:enableLocalSearch')\n\n    if (!enable) {\n      return false\n    }\n\n    const canEdit = await Aeppic.canEdit(document)\n    \n    return Aeppic.Account && Aeppic.Account.data.isGroupAccount === false && canEdit === true\n  }\n}\n","packages":[],"description":""},"locks":[],"created":{"at":"2019-01-24T09:11:02+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2022-03-16T08:48:39+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1647420519386,"ct":1548321062942,"a_depth":4,"a":["apps","3d43a3f5-fea4-488d-9fc1-9dee5e694623","7c30f282-2b84-4976-8735-ba78662ea5e6","c0574720-6967-4293-94a8-e7b32a40fc6f"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"2b8c592a-28a9-426e-8c86-98c9681fbfe5","v":"d8f92cbda81aded6","p":"d0ad2406-e22b-4ee0-be37-0a782be68d11","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"additional-toolbar-buttons","template":"<button v-if=\"locals.ready\" class=\"ae-button \" :class=\"{ 'ae-button--primary': !locals.hasVertrieb }\" @click.stop=\"controller.linkVertrieb()\">\n  Vertrieb verknüpfen\n</button>","css":"","controller":"class Controller {\n  async init() {\n    locals.ready = false\n    \n    locals.hasVertrieb = await Aeppic.get(document.data.vertrieb)\n  \n    locals.ready = true\n  }\n\n  async linkVertrieb() {\n    const auftrag = await Aeppic.get(document.p)\n    const vertrieb = await Aeppic.get(auftrag.data.vertrieb)\n    \n    const editable = await Aeppic.edit(document)\n    editable.addReference('vertrieb', vertrieb)\n    Aeppic.save(editable)\n  }\n} ","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-03-01T11:04:47+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-03-01T11:20:47+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1718866007050,"ct":1718866007050,"a_depth":4,"a":["apps","deeef973-ce03-4557-bf75-75a059001767","e7de598c-6f5a-4ab4-a33b-213ca86e489d","d0ad2406-e22b-4ee0-be37-0a782be68d11"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[],"previous":{"v":"50bab12e9afaec12","f":{"id":"design-form","v":"3385ac6766f32638","text":"Design"}},"meta":{"modified":{"at":"2024-06-20T08:46:47+02:00","by":"427610a9-39dc-4014-9176-5f72aeb23263","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"2c6a6bfa-9177-4bc5-b0d5-a45d00bfacc4","v":"04ad866b41611d8f","cloneOf":{"id":"a8a6d426-8f59-4705-991e-b91a675511c4","v":"181bfe9e23c7c92d","text":"additional-toolbar-buttons"},"originalCloneOf":{"id":"a8a6d426-8f59-4705-991e-b91a675511c4","v":"181bfe9e23c7c92d","text":"additional-toolbar-buttons"},"previous":{"v":"9de56e25dac4734e"},"p":"eccbf3d6-5fc6-473a-8b81-3049bac700e4","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"additional-toolbar-buttons","template":"<button v-if=\"data.configurationDocument && data.configurationDocument.id\" class=\"ae-button\" @click=\"Aeppic.navigateTo(data.configurationDocument)\">\n  <ae-icon class=\"fa fa-cog\"></ae-icon> Stammdaten \n</button>\n\n<ae-layout layout-id=\"dbd64622-6605-40bb-a9e1-eb28c598b66f\"\n          :param-document=\"document\"\n            v-if=\"!params.readonly\"\n></ae-layout>\n\n<ae-layout layout-id=\"a7c668bb-022c-4ffd-94bb-b3430fa73dbb\" :params=\"{ document: document, formId: 'f8fd3176-4995-455f-a8a8-d2742a836816' }\"></ae-layout>\n","css":"._CSS {\n  display: flex;\n}","controller":"","packages":[]},"locks":[],"created":{"at":"2019-08-20T09:57:19+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2023-02-24T10:21:52+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1677234112403,"ct":1566295039170,"a_depth":4,"a":["apps","bc036ad0-6dbc-415b-b506-325fb0a44046","8ffb21f4-3d63-4824-a633-10a19d7aa7d8","eccbf3d6-5fc6-473a-8b81-3049bac700e4"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"2eb3ac22-fe77-4f6f-95af-8c38bfc0eb26","v":"5c131a09b3bb6811","previous":{"v":"1697d840291ae66c"},"p":"42e3adf4-96eb-4eaa-8e80-4bdd671540a3","f":{"id":"design-form","v":"49954170df6a253b","text":"Design"},"data":{"name":"additional-toolbar-buttons","template":"<template v-if=\"locals.showReports\">\n\n  <button class=\"ae-button\" @click=\"controller.show($event)\">\n    Berichte\n  </button>\n\n  <ae-popup ref=\"popup\" placement=\"bottom-start\">\n    <template slot=\"popup\" slot-scope=\"popup\">\n      <div class=\"_CSS-popup\" :style=\"{ 'min-width': popup.baseWidth * 2 +'px' }\" @click.stop=\"controller.close()\">\n        <a class=\"_CSS-list__entry _CSS-link--unstyled\" :href=\"controller.printLink\" target=\"_blank\">\n          <ae-icon class=\"fa fa-print\"></ae-icon>\n          &nbsp;\n          Alle Dokumente (Druckansicht)\n        </a>\n        <a class=\"_CSS-list__entry _CSS-link--unstyled\" :href=\"controller.pdfLink\" target=\"_blank\">\n          <ae-icon class=\"fa fa-file-pdf\"></ae-icon>\n          &nbsp;\n          Alle Dokumente (PDF)\n        </a>\n      </div>\n    </template>\n  </ae-popup> \n\n</template>","css":"._CSS-popup {\n  padding: var(--ae-size-2) 0;\n  background-color: white;\n  box-shadow: var(--ae-shadow-2);\n  transition: opacity .15s, visibility 1s;\n  border-radius: var(--ae-border-radius);\n}\n\n._CSS-list__entry {\n  display: flex;\n  flex-flow: row;\n  align-items: center;\n  cursor: pointer;\n  padding: 0.5rem;\n}\n\n._CSS-link--unstyled {\n  color: inherit;\n  text-decoration: none;\n}\n\n._CSS-list__entry:hover {\n  background: var(--ae-background-200);\n}","controller":"class Controller {\n  async init() {\n    this.printLayoutId = 'f899a44b-3048-47e2-830c-8995f1e5b8bc'\n\n    if (document.a.length !== 1) {\n      locals.showReports = false\n      return\n    }\n\n    const canEdit = await Aeppic.canEdit(document)\n    locals.showReports = Aeppic.Account && Aeppic.Account.data.isGroupAccount === false && canEdit === true\n  }\n\n  show(event) {\n      $refs.popup && $refs.popup.show(event)\n  }\n\n  close() {\n    $refs.popup && $refs.popup.close()\n  }\n\n  destroy() {\n    this.close()\n  }\n\n  get printLink() {\n    return `/${document.id}?print&printLayoutId=${this.printLayoutId}`\n  }\n\n  get pdfLink() {\n    return `/api/docs/${document.id}/_print?name=${document.data.name}&landscape=true&additionalQueryParams=printLayoutId%3D${this.printLayoutId}`\n  }\n}\n","packages":[],"description":""},"locks":[],"created":{"at":"2019-01-23T15:32:09+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2019-05-03T13:06:33+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1556888793812,"ct":1548257529145,"a_depth":4,"a":["apps","bd4df555-2c56-4a5f-82f0-7e4745372f51","b42c9135-e564-4d50-abd1-4d753921120f","42e3adf4-96eb-4eaa-8e80-4bdd671540a3"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"44318af4-44d4-4259-b47d-deef4dae5de1","v":"46b4c098c89516a1","cloneOf":{"id":"ea9c328a-c747-40b1-92bf-40574d2bd61f","v":"13071c91cf4a0c6a","text":"additional-toolbar-buttons"},"originalCloneOf":{"id":"ea9c328a-c747-40b1-92bf-40574d2bd61f","v":"13071c91cf4a0c6a","text":"additional-toolbar-buttons"},"previous":{"v":"9abc062eaed56567"},"p":"3d678f2a-65f5-4dc1-a643-c5998fa33f32","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"additional-toolbar-buttons","template":"<ae-layout  layout-id=\"0ded34c5-1221-4511-af93-d897a79f1369\"\n            :param-document=\"document\"\n></ae-layout>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-04-19T13:22:56+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-04-19T13:27:28+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1650374848571,"ct":1650374576839,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","3d678f2a-65f5-4dc1-a643-c5998fa33f32"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"47f133f5-0527-48e4-a9a4-f02fd1c01047","v":"55806b95a0f26bb0","p":"92b40379-c29e-4f04-a28c-129575d864c3","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"additional-toolbar-buttons","template":"  <button class=\"ae-button\" @click.stop=\"controller.navigateToLabels()\">\n    <ae-icon class=\"fa fa-cog\"></ae-icon>\n    Labels\n  </button>\n","css":"","controller":"async navigateToLabels() {\n  debugger;\n  const labelsFolder = await this.findNearestLabelsFolder()\n\n  if (labelsFolder) {\n    Aeppic.navigateTo(labelsFolder);\n  }\n}\n\nasync findNearestLabelsFolder() {\n  const labelsForm = 'da73bcf8-be71-46ca-9645-894b04e2bfd1'\n\n  const ancestorsReversed = [...document.a].reverse();\n  const searchLocations = [document.id, ...ancestorsReversed]\n\n  for (const locationId of searchLocations) {\n    const labelsFolder = await Aeppic.findOne(`p:${locationId} f.id:${labelsForm}`)\n\n    if (labelsFolder) {\n      return labelsFolder\n    }\n  }\n\n  return null\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-12-07T12:21:17+00:00","by":"427610a9-39dc-4014-9176-5f72aeb23263","from":"","client":"server"},"modified":{"at":"2023-01-18T15:12:28+00:00","by":"427610a9-39dc-4014-9176-5f72aeb23263","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1718866007046,"ct":1718866007046,"a_depth":4,"a":["apps","deeef973-ce03-4557-bf75-75a059001767","e7de598c-6f5a-4ab4-a33b-213ca86e489d","92b40379-c29e-4f04-a28c-129575d864c3"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[],"previous":{"v":"b92ead8e17c7d025","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"}},"meta":{"modified":{"at":"2024-06-20T08:46:47+02:00","by":"427610a9-39dc-4014-9176-5f72aeb23263","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"521852fb-e289-4597-a381-dbe998f040d8","v":"52bc39e0e330299a","cloneOf":{"id":"a9987b00-1840-4f03-9667-2cbf373d1944","v":"b0d610778cf688b5","text":"additional-toolbar-buttons"},"originalCloneOf":{"id":"a9987b00-1840-4f03-9667-2cbf373d1944","v":"b0d610778cf688b5","text":"additional-toolbar-buttons"},"previous":{"v":"8a89903bc44249c7"},"p":"c5cf96a1-40bb-44d5-a3f7-ea30706caf58","f":{"id":"design-form","v":"24435d748c76f819","text":"Design"},"data":{"name":"additional-toolbar-buttons","template":"<a v-if=\"locals.hasShare\" @click.stop.prevent=\"controller.buildAndActivateMailTo()\">\n  <button class=\"ae-button ae-button--secondary\">\n      <ae-icon class=\"fa fa-envelope-open-text\"></ae-icon>\n  </button>\n</a>\n<a ref=\"mailto\" v-show=\"false\" :href=\"locals.href\"></a>","css":"","controller":"class Controller {\n  async init() {\n    this.SHARE_PREFIX = 'mail'\n    this.TEMPLATE_FORM = '0e84f198-6b69-4eee-aad7-f0bacf9ee676'\n\n    locals.href = ''\n\n    locals.hasShare = !!(await Aeppic.get(data.share))\n  }\n\n  async buildAndActivateMailTo() {\n    locals.href = await this.mailto()\n\n    await Aeppic.nextRenderPass()\n\n    $refs.mailto.click()\n  }\n\n  async mailto() {\n    const parts = []\n\n    const recipients = (await Aeppic.getAll(data.empfaenger)).filter(d => d != null)\n\n    for (let i = 0; i < recipients.length; i += 1) {\n      const recipient = recipients[i]\n\n      if (recipient && recipient.data.email1) {\n        parts.push(recipient.data.email1)\n        parts.push(',')\n      }\n    }\n\n    parts.push('?')\n\n    if (data.name) {\n      parts.push(`subject=${data.name}`)\n    }\n \n    const share = await Aeppic.get(data.share)\n\n    if (!share) {\n      console.error('Could not find share')\n      return\n    }\n\n    const baseUrl = packages.window.location.origin \n    const url = `${baseUrl}/${this.SHARE_PREFIX}/${share.data.identifier}`\n\n    const readableShare = await Aeppic.new('e60d2d83-e63b-4786-87c7-6f932b62f6bb', document.p)\n    readableShare.data.url = url\n\n    const body = encodeURIComponent(`${await this.buildTokenTemplate(readableShare)}`)\n    parts.push(`&body=${body}`)\n  \n    return `mailto:${parts.join('')}`\n  }\n\n  async buildTokenTemplate(share) {\n    const tokenTemplateDocument = await Aeppic.findOne(`a:${document.a[0]} f.id:${this.TEMPLATE_FORM}`)\n    const template = tokenTemplateDocument.data.template\n\n    const parent = await Aeppic.get(document.p)\n    const empfaenger = await Aeppic.get(document.data.empfaenger[0])\n\n    const dataDocuments = [parent, empfaenger, share, document].filter(d => d != null)\n\n    const reportData = await this._generateReportData(dataDocuments)\n\n    const tokenizedTemplate = this._replaceTokensInXml(template, reportData)\n    console.log('-> token template', reportData, tokenizedTemplate)\n \n    return tokenizedTemplate\n  }\n\n  async _generateReportData(dataDocuments) {\n    const reportData = {}\n    const usedFormNames = []\n\n    for (const document of dataDocuments) {\n      const form = await Aeppic.getDocumentForm(document)\n\n      const formName = form.data.name.replace(/\\s/g, '-')\n\n      if (usedFormNames.includes(formName)) {\n        log.warn(\n          'duplicate form name \"%s\" referenced. Ignoring',\n          formName,\n          document\n        )\n\n        continue\n      }\n\n      usedFormNames.push(formName)\n\n      for (const field of form.fields) {\n        const { type, subType, name } = field\n        const value = document.data[name]\n        const fieldName = this._uniformToken(`${formName}_${name}`)\n\n        if (type === 'string' || type === 'number') {\n          reportData[fieldName] = `${value}`\n          \n          continue\n        }\n\n        if (type === 'object' && subType === 'address') {\n          for (const key of Object.keys(value)) {\n            const subFieldName = `${fieldName}_${key}`\n            const subValue = value[key]\n            \n            reportData[subFieldName] = `${subValue}`\n          }\n        }\n\n      }\n    }\n\n    return reportData\n  }\n\n  _replaceTokensInXml(template, documentData) {\n    if (!documentData) {\n      return template\n    }\n\n    for (const token in documentData) {\n      if (!(typeof token === 'string' || typeof token === 'number')) {\n        continue\n      }\n\n      const tokenExp = `$${token}$`\n      \n      const value = documentData[token] ? String(documentData[token]) : ''\n\n      template = template.replace(tokenExp, value)\n    }\n\n    return template\n  }\n\n  _uniformToken(token) {\n    let sanitized = token\n\n    // Ü, ü     \\u00dc, \\u00fc\n    // Ä, ä     \\u00c4, \\u00e4\n    // Ö, ö     \\u00d6, \\u00f6\n    // ß        \\u00df\n    sanitized = sanitized.replace(/\\u00dc/g, 'Ue')\n    sanitized = sanitized.replace(/\\u00fc/g, 'ue')\n    sanitized = sanitized.replace(/\\u00c4/g, 'Ae')\n    sanitized = sanitized.replace(/\\u00e4/g, 'ae')\n    sanitized = sanitized.replace(/\\u00d6/g, 'Oe')\n    sanitized = sanitized.replace(/\\u00f6/g, 'oe')\n    sanitized = sanitized.replace(/\\u00df/g, 'ss')\n\n    return sanitized.toLowerCase()\n  }\n}\n","packages":[{"id":"10843fbf-4f0c-416b-be7d-42d6bbd0ae68","v":"5f748569e59edddc","text":"Window"}],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-02-01T08:39:40+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-03-08T13:26:03+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1615209963071,"ct":1612168780276,"a_depth":4,"a":["apps","d91078cc-874b-4410-b837-b81f47687fe9","6b513a0c-498f-4eac-804d-aa8e0e99caac","c5cf96a1-40bb-44d5-a3f7-ea30706caf58"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"55371e94-6ff3-40bc-a09e-ca1930e22e6a","v":"0a8b11c9de43eb0b","cloneOf":{"id":"2a40cf52-ce24-45fd-a653-bd7f185759af","v":"7b02375978582f47","text":"additional-toolbar-buttons"},"originalCloneOf":{"id":"2a40cf52-ce24-45fd-a653-bd7f185759af","v":"7b02375978582f47","text":"additional-toolbar-buttons"},"previous":{"v":"08b5d9bb5c748155"},"p":"a04c8913-db48-4e80-b20d-0f3cc17a778c","f":{"id":"design-form","v":"49954170df6a253b","text":"Design"},"data":{"name":"additional-toolbar-buttons","template":"<div v-if=\"locals.enableLocalSearch\">\n  <input type=\"text\" v-focus v-if=\"locals.showSearch\" @keydown.enter=\"Aeppic.navigateTo(locals.searchDocument, {  q: locals.search, qA: document.id })\" v-model=\"locals.search\">\n  <button class=\"ae-button\" @click.stop=\"locals.showSearch = !locals.showSearch\">\n    <ae-icon class=\"fad fa-search\"></ae-icon>\n  </button>\n</div>\n\n<template v-if=\"locals.enableReports\">\n  <button class=\"ae-button\" @click.stop=\"controller.show($event)\">\n    Berichte\n  </button>\n\n  <ae-popup ref=\"popup\" placement=\"bottom-start\">\n    <template slot=\"popup\" slot-scope=\"popup\">\n      <div class=\"_CSS-popup\" :style=\"{ 'min-width': popup.baseWidth * 2 +'px' }\" @click.stop=\"controller.close()\">\n        <a class=\" _CSS-list__entry _CSS-link--unstyled \" :href=\"controller.printLink\" target=\"_blank\">\n          <ae-icon class=\"fad fa-print\"></ae-icon>\n          &nbsp;\n          Alle Dokumente (Druckansicht)\n        </a>\n        <a class=\"_CSS-list__entry _CSS-link--unstyled \" :href=\"controller.pdfLink\" target=\"_blank\">\n          <ae-icon class=\"fad fa-file-pdf\"></ae-icon>\n          &nbsp;\n          Alle Dokumente (PDF)\n        </a>\n      </div>\n    </template>\n  </ae-popup> \n</template>\n\n\n<!-- TODO: reenable once the other views are available again -->\n<!-- <button class=\"ae-button\" v-show=\"locals.view === 'table'\" @click=\"controller.nextView()\" title=\"Liste\">\n  <ae-icon class=\"fad fa-list-ul\"></ae-icon>\n</button>\n<button class=\"ae-button\" v-show=\"locals.view === 'grid'\" @click=\"controller.nextView()\" title=\"Karten\">\n  <ae-icon class=\"fad fa-th\"></ae-icon>\n</button>\n<button class=\"ae-button\" v-show=\"locals.view === 'two-column'\" @click=\"controller.nextView()\" title=\"Ordner und Dateien getrennt als Liste\">\n  <ae-icon class=\"fad fa-columns\"></ae-icon>\n</button> -->\n","css":"._CSS {\n  display: flex;\n}\n\n._CSS-popup {\n  padding: var(--ae-size-2) 0;\n  background-color: white;\n  box-shadow: var(--ae-shadow-2);\n  transition: opacity .15s, visibility 1s;\n  border-radius: var(--ae-border-radius);\n  display: flex;\n  flex-flow: column;\n}\n\n._CSS-list__entry {\n  display: flex;\n  flex-flow: row;\n  align-items: center;\n  cursor: pointer;\n  padding: 0.5rem;\n}\n\n._CSS-link--unstyled {\n  color: inherit;\n  text-decoration: none;\n}\n\n._CSS-list__entry:hover {\n  background: var(--ae-background-200);\n}","controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      SearchNew: '5d0ac040-1428-48bc-9b4f-28c69e098b3c',\n      SearchOld: 'bf8eb298-3431-4138-a1e1-e748e05f3f37',\n    }\n\n    this.printLayoutId = '3b0d1c7e-52dc-409e-a164-56d03640dc4c'\n\n    locals.showSearch = false\n\n    locals.searchDocument = await Aeppic.findOne(`p:${Aeppic.HomePage.id} f.id:${this.FORMS.SearchNew}`)\n\n\n    if (document.a.length !== 1) {\n      locals.enableReports = false\n    }\n\n    locals.mixFilesAndFolders = false\n    // locals.views = ['grid', 'two-column', 'table']\n    locals.views = ['grid']\n    locals.view = locals.views.shift()\n\n    // if (Aeppic.LocalStorage.isAvailable) {\n    //   locals.mixFilesAndFolders = Aeppic.LocalStorage.getValue('bp-pref-ordner-page-mix') || locals.mixFilesAndFolders\n    //   locals.views = Aeppic.LocalStorage.getValue('bp-pref-ordner-page-views') || locals.views\n    //   locals.view = Aeppic.LocalStorage.getValue('bp-pref-ordner-page-view') || locals.view\n    // }\n\n    const flags = await this._getEnabledFlags()\n    locals.enableReports = flags.reports\n    locals.enableLocalSearch = flags.localSearch\n  }\n\n  show(event) {\n      $refs.popup && $refs.popup.show(event)\n  }\n\n  close() {\n    $refs.popup && $refs.popup.close()\n  }\n\n  nextView() {\n    locals.views.push(locals.view)\n    locals.view = locals.views.shift()\n\n    // Aeppic.LocalStorage.setValue('bp-pref-ordner-page-views', locals.views)\n    // Aeppic.LocalStorage.setValue('bp-pref-ordner-page-view', locals.view)\n\n    $emit('toolbar', `view_${locals.view}`)\n  }\n\n  // toggleMix() {\n  //   locals.mixFilesAndFolders = !locals.mixFilesAndFolders\n\n  //   Aeppic.LocalStorage.setValue('bp-pref-ordner-page-mix', locals.mixFilesAndFolders)\n  //   $emit('toolbar', `view_mix-files-and-folders_${locals.mixFilesAndFolders}`)\n  // }\n\n  destroy() {\n    this.close()\n  }\n\n  get printLink() {\n    return `/${document.id}?print&printLayoutId=${this.printLayoutId}`\n  }\n\n  get pdfLink() {\n    return `/api/docs/${document.id}/_print?name=${document.data.name}&landscape=true&additionalQueryParams=printLayoutId%3D${this.printLayoutId}`\n  }\n\n  async _getEnabledFlags() {\n    const settingsDocument = await Aeppic.Preferences.getSettingsDocuments('apps:3d43a3f5-fea4-488d-9fc1-9dee5e694623')\n    if (!settingsDocument || !settingsDocument.globalSettings)  {\n      return\n    }\n\n    const settings = settingsDocument.globalSettings\n\n    const flags = {\n      reports: settings.data.enableReports || false,\n      localSearch: settings.data.enableLocalSearch || false,\n    }\n\n    if (flags.reports) {\n      const canEdit = await Aeppic.canEdit(document)\n      \n      flags.reports = Aeppic.Account && Aeppic.Account.data.isGroupAccount === false && canEdit === true\n    }\n\n    return flags\n  }\n}\n","packages":[],"description":""},"locks":[],"created":{"at":"2020-06-23T14:54:58+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2021-09-29T14:28:24+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1632925704614,"ct":1592924098990,"a_depth":4,"a":["apps","45ada186-e9fd-451d-9dbd-2defc0b4f86f","4ec6a0e5-cf2d-4095-9b70-2e31a64d5679","a04c8913-db48-4e80-b20d-0f3cc17a778c"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"56155489-bfe4-40be-95e3-c704cefbf75f","v":"initial","p":"3d456c38-6282-416e-8c5e-7d20b0517a6e","f":{"id":"design-form","v":"24435d748c76f819","text":"Design"},"data":{"name":"additional-toolbar-buttons","template":"<ae-layout layout-id=\"f46659ee-b6b2-4be0-adab-15fe8a690f93\"\n          :param-document=\"document\"\n></ae-layout>\n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-05-08T08:50:53+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2020-05-08T08:50:53+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1588927853679,"ct":1588927853679,"a_depth":4,"a":["apps","5acfd7a2-33e4-498a-9150-71e1ab772bfc","20c92864-6a81-4006-96f9-b78f473cd129","3d456c38-6282-416e-8c5e-7d20b0517a6e"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"593e6b0d-4227-4a20-8ae4-038314c3057d","v":"d87cf00c5858dd44","previous":{"v":"initial"},"p":"94886126-c88d-4ea0-b088-8ea5ad155b08","f":{"id":"design-form","v":"0061789efb5c5c29","text":"Design"},"data":{"name":"additional-toolbar-buttons","template":"<ae-layout layout-id=\"ed784d22-af86-420e-b70c-15a6e4dc7512\"\n          :params=\"{ target: document, commandId: '5d856de7-f6db-4b4f-bc68-0b053aeb6829'}\"\n           v-if=\"data.versendet && locals.isManager\"\n></ae-layout>","css":"","controller":"class Controller {\n  async init() {\n    locals.isManager = false\n    const results = await Aeppic.Actions.run(['7c4c6268-b24a-43c4-b876-a2a07f13942c'], { Account: Aeppic.Account, target: document })\n    locals.isManager = results[0].value === true\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-01-07T10:27:19+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-01-07T10:27:47+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1610015267245,"ct":1610015239437,"a_depth":4,"a":["apps","f416e371-07cc-4987-a6de-5934ef5ff3e4","1096c5df-2773-4914-9455-dc54e0f3e0e5","94886126-c88d-4ea0-b088-8ea5ad155b08"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"59b405e5-b529-4d5d-81c9-4d4198f53b4e","v":"ab3267e4f941c2fe","previous":{"v":"5431f908e00fc442"},"p":"c6237a67-b8cf-4107-92d8-afd460497f0e","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"additional-toolbar-buttons","template":"<button v-if=\"locals.ready\" class=\"ae-button\" @click.stop=\"$refs.dialog.show()\">\n  <ae-icon class=\"fa fa-calendar\"></ae-icon> Kalender integrieren\n</button>\n\n\n<ae-dialog ref=\"dialog\">\n  <template #header=\"scope\">\n    <div class=\"_CSS-dialog__header\">\n      <span>Kalender integrieren</span>\n      <button class=\"ae-button\" @click.stop=\"scope.close()\">\n        <ae-icon class=\"fa fa-times\"></ae-icon>\n      </button>\n    </div>\n  </template>\n  <template #body>\n    <div class=\"_CSS-dialog__body\">\n      <div class=\"_CSS-explanation\">\n        <span>\n        Sie können ihre <strong>persönlichen Termine</strong> dieses Kalenders in anderen Programmen abrufen.\n        </span>\n        <p>\n        Diese Intergration nutzt das iCal-Protokoll, welches einen lesenden Zugriff in diversen Programmen ermöglicht.\n        </p>\n\n        <span style=\"color: var(--ae-accent-red);\">\n          <ae-icon class=\"fa fa-exclamation-triangle\"></ae-icon>\n          Dieser Link ist für Ihren Account individualisiert. Geben Sie diesen nicht an Andere weiter.\n        </span>\n      </div>\n\n      <div v-if=\"locals.subscription\" class=\"_CSS-existing\">\n        Bestehender Link\n        <div class=\"_CSS-link\">\n          <input class=\"_CSS-existing__input\" :value=\"controller.link\" readonly>\n          <button class=\"ae-button ae-button--small\" @click.stop=\"Aeppic.copyToClipboard(controller.link)\" title=\"In Zwischenablage kopieren\">\n            <ae-icon class=\"fa fa-clipboard\"></ae-icon>\n          </button>\n        </div>\n\n        <button class=\"ae-button ae-button--secondary\" @click.stop=\"controller.reset()\">\n          Zurücksetzen\n        </button>\n      </div>\n      <div v-else class=\"_CSS-new\">\n        <button class=\"ae-button ae-button--secondary\" @click.stop=\"controller.create()\">\n          Link erstellen\n        </button>\n      </div>\n    </div>\n  </template>\n</ae-dialog>","css":"._CSS-dialog__header {\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n}\n\n._CSS-dialog__body {\n  display: flex;\n  flex-flow: column;\n}\n\n._CSS-existing__input {\n  width: 100%;\n  margin-bottom: var(--ae-space-3);\n}\n\n._CSS-explanation {\n  display: flex;\n  flex-flow: column;\n  background: var(--ae-ui-background);\n  padding: var(--ae-space-1);\n  border: var(--ae-border-width) solid var(--ae-border-color);\n  border-radius: var(--ae-border-radius);\n}\n\n._CSS-explanation > *~* {\n  margin-bottom: var(--ae-space-2);\n}\n\n._CSS-existing {\n  margin-top: var(--ae-space-3);\n}\n\n._CSS-link {\n  display: flex;\n  align-items: baseline;\n}","controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      CalenderSubscription: 'e48fb2e4-6292-4c73-9682-5db968194ba7'\n    }\n\n    locals.ready = false\n    locals.subscription = null\n\n    if (!Aeppic.Account?.data.isGroupAccount === false) {\n      return\n    }\n\n    Aeppic.subscribe(`p:${Aeppic.Account.id} f.id:${this.FORMS.CalenderSubscription} data.calendar.id:${document.id}`, { size: 1 }, (documents) => {\n      locals.subscription = documents[0]\n    })\n\n    locals.ready = true\n  }\n\n  get link() {\n    return `${packages.window.location.protocol}//${packages.window.location.host}/api/services/48dbba36-ae0f-4be0-8ecd-5cb5f7f92b0a/v1/calendar/ical?token=${locals.subscription.data.token}`\n  }\n\n  async create() {\n    const editable = await Aeppic.new(this.FORMS.CalenderSubscription, Aeppic.Account.id)\n    editable.addReference('calendar', document)\n    editable.data.token = Aeppic.uuid()\n    Aeppic.save(editable)\n  }\n\n  async reset() {\n    Aeppic.delete(locals.subscription)\n    locals.subscription = null\n    // const editable = await Aeppic.edit(locals.subscription)\n    // editable.addReference('calendar', document)\n    // editable.data.token = Aeppic.uuid()\n    // Aeppic.save(editable)\n  }\n}\n","packages":[{"id":"10843fbf-4f0c-416b-be7d-42d6bbd0ae68","v":"d4ce6dec568c3dc1","text":"Window"}],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-11-18T12:09:10+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-01-13T14:09:29+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1642082969090,"ct":1637237350742,"a_depth":4,"a":["apps","d8c9a42b-e289-4c9a-97ea-801de8ab480a","db8e20d1-732c-4c6b-9cfc-b323f83fa378","c6237a67-b8cf-4107-92d8-afd460497f0e"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"5a287d5c-9482-4b78-8dd5-8c51a2838869","v":"initial","p":"6af8d180-b697-461d-afe7-d9277c1469a6","f":{"id":"design-form","v":"e37099c040ec46e9","text":"Design"},"data":{"name":"additional-toolbar-buttons","template":"<button class=\"ae-button\" style=\"font-style:italic;\" @click=\"$refs.dialog.$emit('show')\">\n  <ae-icon class=\"fa fa-file-import\"></ae-icon>\n  csv-Datei importieren\n</button>\n\n<ae-layout ref=\"dialog\"\n            layout-id=\"5ea858d8-1941-44cf-9002-9658f6183085\"\n            :param-document=\"document\"\n            :param-form-id=\"locals.formId\"\n            :param-map-entry-to-document-data-function=\"(args) => controller.mapEntryToDocumentData(args)\"\n            :param-csv-column-names=\"['Title','Abbreviation']\"\n></ae-layout>\n\n","css":"","controller":"class Controller {\n  init() {\n    this.ABBR_FORM = '2168bcf2-5523-4f2f-8053-7e7f8c3ceba8'\n\n    locals.formId = this.ABBR_FORM\n  }\n\n  mapEntryToDocumentData(entry) {\n    const data = {}\n\n    const title = entry.Title ? entry.Title.trim() : ''\n    const abbr = entry.Abbreviation ? entry.Abbreviation.trim() : ''\n\n    if (title) {\n      data.agencyName = title\n    }\n    if (abbr) {\n      data.agencyAbbreviation = abbr\n    }\n\n    return data\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-12-10T13:06:52+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2020-12-10T13:06:52+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1607605612329,"ct":1607605612329,"a_depth":4,"a":["apps","3fbe0efd-713a-457a-a34c-3a12aa19d6bb","0fb162f4-0f78-4c1e-aad2-43c27e6d98cb","6af8d180-b697-461d-afe7-d9277c1469a6"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"5fb1e05a-be31-49be-b90a-2086bef56407","v":"initial","p":"4c1ddccd-004a-4467-bd14-9cf590ef58eb","f":{"id":"design-form","v":"65801907e0c30697","text":"Design"},"data":{"name":"additional-toolbar-buttons","template":"<button class=\"ae-button\" v-if=\"locals.settings\" @click.stop=\"Aeppic.navigateTo(locals.settings)\">\n  <ae-icon class=\"fa fa-cog\"></ae-icon>\n  Einstellungen\n</button>\n","css":"","controller":"class Controller {\n  async init() {\n    locals.settings = null\n    locals.settings = await Aeppic.findOne(`p:${document.id} f.id:500095d4-c6b7-4efe-bfa0-b22b35331547`)\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2019-09-09T09:30:33+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2019-09-09T09:30:33+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1568021433209,"ct":1568021433208,"a_depth":4,"a":["apps","18da93c8-dfa2-4c21-b0fe-7e09b2b6d6c4","bd0159cd-1362-4c50-916d-26aa2bb1ae24","4c1ddccd-004a-4467-bd14-9cf590ef58eb"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"7045060b-1530-448c-bf4a-ab4c60086c0d","v":"fe16713a33d8fc54","previous":{"v":"62607a485805d54f"},"p":"6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2","f":{"id":"design-form","v":"65801907e0c30697","text":"Design"},"data":{"name":"additional-toolbar-buttons","template":"<button v-if=\"locals.canEdit && Aeppic.Device !== 'Phone'\" class=\"_CSS-actions__action ae-button\" @click.stop=\"controller.editFile()\">\n  Datei bearbeiten\n</button>\n\n<ae-design name=\"download-and-print-buttons\" :document=\"document\" @toolbar=\"$emit('toolbar', $event)\"></ae-design>\n\n<ae-dialog ref=\"dialog\"> \n  <template #header=\"scope\">\n    <div class=\"_CSS-dialog__header\">\n      Client wird benötigt\n      <button class=\"ae-button\" @click.stop=\"scope.close()\">\n        <ae-icon class=\"fa fa-times\"></ae-icon>\n      </button>\n    </div>\n  </template>\n  <template #body=\"scope\">\n    <div class=\"_CSS-dialog__body\">\n      <span>Sie müssen den Bizpin Client benutzen um Dateien bearbeiten zu können.</span>\n      <a href=\"https://bizpin.de/client\" target=\"_blank\" style=\"align-self:center; margin: var(--ae-size-5)\">\n        <button class=\"ae-button ae-button--primary\">\n          Client herunterladen\n      </button>\n      </a>\n    </div>\n  </template>\n</ae-dialog>","css":"._CSS {\n  display: flex;\n}\n\n._CSS-dialog__header {\n  display: flex;\n  align-items: center;\n  justify-content: space-between;  \n}\n\n._CSS-dialog__body {\n  padding: var(--ae-size-6);\n  display: flex; \n  flex-direction: column; \n  }","controller":"class Controller {\n  async init() {\n    const canEdit = await Aeppic.canEdit(document)\n    locals.canEdit = Aeppic.Account && Aeppic.Account.data.isGroupAccount === false && canEdit === true\n  }\n\n  isElectron() {\n    return typeof navigator === 'object' && typeof navigator.userAgent === 'string' && navigator.userAgent.indexOf('Electron') >= 0\n  }\n\n  editFile() {\n    if(this.isElectron()) {\n      Aeppic.editFile(Aeppic.Content.getSrc(document, 'datei'), data.datei.name, {\n        id: document.id,\n        v: document.v,\n        fieldName: 'datei',\n        mimeType: data.datei.type\n      })\n    } else {\n     $refs.dialog.show()\n    }\n  }\n}\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2019-05-03T13:06:33+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2022-02-22T08:49:52+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1645519792567,"ct":1556888793111,"a_depth":4,"a":["apps","3d43a3f5-fea4-488d-9fc1-9dee5e694623","7c30f282-2b84-4976-8735-ba78662ea5e6","6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"726e3fa8-e60c-4a7a-8f27-3beeab2a90be","v":"e7dd44eb8c8b7339","previous":{"v":"820e072521e7369f"},"p":"6e55b0af-03d5-414b-a26b-0854ec230a07","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"additional-toolbar-buttons","template":"<button class=\"ae-button\" v-if=\"locals.config\" @click=\"Aeppic.drillInto(locals.config)\">\n  <ae-icon class=\"fa fa-cog\"></ae-icon> Stammdaten\n</button> ","css":"","controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Vorlagen: '573419c5-1ab4-43c9-94ba-a831ae580d6a'\n    }\n\n    locals.config = null\n    locals.config = await Aeppic.findOne(`p:${document.id} f.id:${this.FORMS.Vorlagen}`)\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-10-06T13:04:59+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2021-10-06T13:30:33+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1633527033442,"ct":1633525499374,"a_depth":4,"a":["apps","1887a103-bf3b-473c-8cb7-4f1afad0286b","9b02b1b6-e32b-41ec-b451-dba59bc5847b","6e55b0af-03d5-414b-a26b-0854ec230a07"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"7a70904b-3636-440d-8035-c053df7c6fac","v":"0f5ef8a49c1bf4b4","previous":{"v":"0770a6d3c3020938"},"p":"06971b6e-2e82-40e0-9121-3bb78611fc4a","f":{"id":"design-form","v":"0061789efb5c5c29","text":"Design"},"data":{"name":"additional-toolbar-buttons","template":"<button class=\"ae-button ae-button--secondary\"\n        @click.stop=\"locals.showOverview = !locals.showOverview; $emit('toolbar', 'view_overview_' + locals.showOverview)\"\n        v-if=\"locals.isManager\"\n>\n  <template v-if=\"locals.showOverview\">\n    <ae-icon class=\"fa fa-chart-pie\"></ae-icon>\n   Übersicht\n  </template>\n  <template v-else>\n    <ae-icon class=\"fa fa-list\"></ae-icon>\n   Liste\n  </template>\n</button>\n\n<button v-if=\"locals.stammdaten && locals.isManager\" class=\"ae-button\" @click.stop=\"Aeppic.drillInto(locals.stammdaten)\">\n  <ae-icon class=\"fa fa-cog\"></ae-icon> Stammdaten \n</button>\n","css":"","controller":"async init() {\n  this.FORMS = {\n    Stammdaten: 'f85fbba8-1232-4ec7-9ca8-da9fc5b14109'\n  }\n\n  locals.stammdaten = null\n   locals.isManager = null\n\n  locals.stammdaten = await Aeppic.findOne(`p:${document.id} f.id:${this.FORMS.Stammdaten}`)\n\n  locals.isManager = (await Aeppic.Actions.run(['7c4c6268-b24a-43c4-b876-a2a07f13942c'], { Account: Aeppic.Account, target: document }))[0].value\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-11-27T12:18:09+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-02-13T14:34:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1676298872441,"ct":1606479489130,"a_depth":4,"a":["apps","f416e371-07cc-4987-a6de-5934ef5ff3e4","1096c5df-2773-4914-9455-dc54e0f3e0e5","06971b6e-2e82-40e0-9121-3bb78611fc4a"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"7cbbef5f-a02a-4aca-a75b-953a056184e7","v":"bce5a902eac4ea34","cloneOf":{"id":"87c5e9ae-34ce-48d0-a0f4-39ce0c0b3031","v":"9e04542cdaeadab9","text":"additional-toolbar-buttons"},"originalCloneOf":{"id":"87c5e9ae-34ce-48d0-a0f4-39ce0c0b3031","v":"9e04542cdaeadab9","text":"additional-toolbar-buttons"},"previous":{"v":"8122646e33f147a9"},"p":"b433eabd-abe6-4564-940f-a918f71037fb","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"additional-toolbar-buttons","template":"<button v-for=\"view of locals.views\" class=\"ae-button\" :class=\"{ 'ae-button--tertiary': locals.currentView === view }\" @click.stop=\"controller.setView(view)\">\n  <ae-icon class=\"fad\" :class=\"view.icon\"></ae-icon>&nbsp;<span :title=\"view.title\">\n    {{ view.label }}\n    </span>\n</button>\n\n<ae-layout layout-id=\"fefaeb0f-65d1-48cc-9148-d74dc7bd3afc\"></ae-layout>\n","css":"._CSS {\n  display: flex;\n}","controller":"class Controller {\n  init() {\n    locals.views = [\n      {\n        id: 'groundplan',\n        icon: { 'fa-columns': true },\n        label: 'Grundriss',\n      },\n      {\n        id: 'receipts',\n        icon: { 'fa-receipt': true },\n        label: 'Belege',\n      },\n      {\n        id: 'billings',\n        icon: { 'fa-envelope-open-dollar': true },\n        label: 'Nebenkosten',\n      },\n      {\n        id: 'codes',\n        icon: { 'fa-barcode': true },\n        label: 'QR Codes',\n      },\n    ]\n \n    locals.currentView = locals.views[0]\n\n    const storedViewId = Aeppic.LocalStorage.getValue('bp-pref-rooms-building-view')\n    if (storedViewId) {\n      locals.currentView = locals.views.find(v => v.id === storedViewId) || locals.currentView\n    }\n  }\n  \n  setView(view) {\n    locals.currentView = view\n    Aeppic.LocalStorage.setValue('bp-pref-rooms-building-view', view.id)\n\n    $emit('toolbar', `view_${view.id}`)\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-05-04T08:06:26+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-01-03T13:42:49+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1672753369989,"ct":1651651586088,"a_depth":4,"a":["apps","86189c5a-b9f4-445a-879f-d94574960df0","15292d56-6806-4263-b6d0-9194687203e1","b433eabd-abe6-4564-940f-a918f71037fb"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"847a049b-aa94-42dc-9d64-24b690104a0d","v":"56cf9f8d3f49ae69","previous":{"v":"initial"},"p":"51138ce9-66f4-44dd-9254-b8b744e88999","f":{"id":"design-form","v":"0061789efb5c5c29","text":"Design"},"data":{"name":"additional-toolbar-buttons","template":"<ae-layout layout-id=\"8794b29c-532b-4692-8f8b-9e3010820328\"\n          :param-document=\"document\"\n            v-if=\"!params.readonly\"\n></ae-layout>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-10-27T08:43:45+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2020-10-27T08:45:30+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1603788330615,"ct":1603788225912,"a_depth":4,"a":["apps","37fafb3d-18da-4182-af74-082971d50956","c27d5f5f-22ff-4341-935c-02bfdc3e1ee0","51138ce9-66f4-44dd-9254-b8b744e88999"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[],"hidden":false,"readonly":false},{"id":"87c5e9ae-34ce-48d0-a0f4-39ce0c0b3031","v":"9e04542cdaeadab9","cloneOf":{"id":"540a1897-4a5e-44d7-a4ae-fbea72a3f8ee","v":"initial","text":"additional-toolbar-buttons"},"originalCloneOf":{"id":"540a1897-4a5e-44d7-a4ae-fbea72a3f8ee","v":"initial","text":"additional-toolbar-buttons"},"previous":{"v":"9bf799a42c1a4dfb"},"p":"5475727b-0e0c-412a-8452-23b9c5b242f2","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"additional-toolbar-buttons","template":"<button v-for=\"view of locals.views\" class=\"ae-button\" :class=\"{ 'ae-button--tertiary': locals.currentView === view }\" @click.stop=\"controller.setView(view)\">\n  <ae-icon class=\"fad\" :class=\"view.icon\"></ae-icon>&nbsp;<span :title=\"view.title\">\n    {{ view.label }}\n    </span>\n</button>\n","css":"._CSS {\n  display: flex;\n}","controller":"class Controller {\n  init() {\n    locals.views = [\n      {\n        id: 'board',\n        icon: { 'fa-columns': true },\n        label: 'Board',\n      },\n      {\n        id: 'list',\n        icon: { 'fa-list': true },\n        label: 'Liste',\n      },\n      {\n        id: 'accounting',\n        title: 'Buchhaltung (Angebote & Rechnungen)',\n        icon: { 'fa-file-invoice-dollar': true },\n        label: 'Buchhaltung',\n      },\n    ]\n \n    locals.currentView = locals.views[0]\n\n    const storedViewId = Aeppic.LocalStorage.getValue('bp-pref-crm-folder-view-id')\n    if (storedViewId) {\n      locals.currentView = locals.views.find(v => v.id === storedViewId) || locals.currentView\n    }\n  }\n  \n  setView(view) {\n    locals.currentView = view\n    Aeppic.LocalStorage.setValue('bp-pref-crm-folder-view-id', view.id)\n\n    $emit('toolbar', `view_${view.id}`)\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-09-20T13:29:42+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-10-04T09:36:23+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1633340183130,"ct":1632144582368,"a_depth":4,"a":["apps","9d6ee173-26fe-4472-a271-7667f717094e","6743ef9a-c21b-443f-91b8-4dd86886ee8c","5475727b-0e0c-412a-8452-23b9c5b242f2"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"8f681fe7-aa01-4c35-a96a-528b97959a73","v":"8c17c8c7776fd6dd","cloneOf":{"id":"56155489-bfe4-40be-95e3-c704cefbf75f","v":"initial","text":"additional-toolbar-buttons"},"originalCloneOf":{"id":"56155489-bfe4-40be-95e3-c704cefbf75f","v":"initial","text":"additional-toolbar-buttons"},"previous":{"v":"236a9c1c9f35d04f"},"p":"0deb4864-cbb6-420c-99ee-337c7444ab24","f":{"id":"design-form","v":"24435d748c76f819","text":"Design"},"data":{"name":"additional-toolbar-buttons","template":"<ae-layout layout-id=\"f46659ee-b6b2-4be0-adab-15fe8a690f93\"\n          :param-document=\"document\"\n></ae-layout>\n\n<ae-layout layout-id=\"75662fa7-5240-4613-be3b-4aa0226753d0\"\n           :param-document=\"document\"\n></ae-layout>\n\n<template v-if=\"locals.boards.length\">\n  <button class=\"ae-button ae-button--secondary\" @click.stop=\"locals.plannedBoardStamp ? Aeppic.drillInto(locals.plannedBoardStamp.workflow) : $refs.dropdown.$emit('show', $event)\">\n    <template v-if=\"locals.plannedBoardStamp\">Board-Status: <ae-design name=\"title\" :document-id=\"locals.plannedBoardStamp.id\" style=\"display:inline;\"></ae-design></template>\n    <template v-else>In einem Board planen</template>\n  </button>\n\n  <ae-layout  layout-id=\"066b41f7-036f-422c-9afc-4c3015ddc4b4\"\n              ref=\"dropdown\"\n              :param-documents=\"locals.boards\"\n              @selected=\"controller.addToBoard($event)\"\n  ></ae-layout>\n</template>\n","css":"._CSS {\n  display: flex;\n}","controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      ProjectBoard: '216641b8-e7ac-430a-b0e7-998cde0f33fa',\n    }\n    this.IDS = {\n      WorkflowAborted: '581a5bd4-759f-4cc3-b184-b8b90c5db1d5'\n    }\n    locals.boards = []\n    locals.plannedBoardStamp = null\n\n    Aeppic.watch(document.id, () => {\n      locals.plannedBoardStamp = this.getPlannedBoard()\n    })\n\n    locals.boards = await Aeppic.find(`a:${document.a[0]} f.id:${this.FORMS.ProjectBoard}`)\n    locals.plannedBoardStamp = this.getPlannedBoard()\n  }\n\n  async addToBoard(projectBoard) {\n    const result = await Aeppic.Commands.execute('99892d88-9c0b-43a5-8596-ef4048d59d26', document, { projectBoard })\n    \n    if (!result.ok) {\n      console.error(result.error)\n    }\n\n    locals.plannedBoardStamp = this.getPlannedBoard()\n  }\n  \n  getPlannedBoard() {\n    if (!document.stamps || !document.stamps.length || !locals.boards.length) {\n      return null\n    }\n    const boardWorkflowStamp = document.stamps.find(s => s.type.id !== this.IDS.WorkflowAborted && locals.boards.find(b => b.id === s.workflow.id))\n    return boardWorkflowStamp\n  }\n}\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-07-01T14:40:04+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2022-09-02T08:11:49+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1662106309181,"ct":1593614404537,"a_depth":4,"a":["apps","59edbdbc-2cab-426a-bb42-6e57c5158e4f","3be7e887-1bcd-4c3c-979f-b20a986c4c48","0deb4864-cbb6-420c-99ee-337c7444ab24"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"96252c17-8049-4298-8dac-22db87e20309","v":"4bf0144bbafbd02a","previous":{"v":"5c25a9e1c080ecc7"},"p":"d2ac3563-3c3f-4f02-b923-9b67abf98d10","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"additional-toolbar-buttons","applies":"","template":"<template v-if=\"Aeppic.ProfilePage && Aeppic.ProfilePage.id === document.id\">\n  <button class=\"ae-button\" @click=\"controller.show()\">Meinen Account bearbeiten</button>\n</template>\n\n<ae-dialog ref=\"dialog\">\n  <div slot=\"header\" slot-scope=\"scope\" class=\"_CSS-dialog__header\">\n    <span>Kontakt</span>\n    <button class=\"ae-button\" @click=\"scope.close()\">\n      <ae-icon class=\"fa fa-times\" ></ae-icon>\n    </button>\n  </div>\n  <div slot=\"body\" class=\"_CSS-dialog__body\" v-if=\"locals.account\">\n    <ae-form ref=\"form\" :document=\"locals.account\" layout-id=\"209c267a-9f3c-4040-9b91-e98ee590b9af\"></ae-form>\n\n    <ae-layout  layout-id=\"73fd81e5-c901-4c56-9b38-cd04a7d17f8a\"\n                :param-document-id=\"locals.account.id\"\n                @update=\"() => locals.documentChanged = true\"\n                @save=\"controller.save()\"\n                @reset=\"() => { locals.documentChanged = false; $refs.form && $refs.form.startEditing() }\"\n                style=\"padding-top: 1rem;\"\n    ></ae-layout>\n  </div>\n</ae-dialog>","css":"\n/* DIALOG */\n\n._CSS-dialog__header {\n  flex: 1;\n  display: flex;\n  justify-content: space-between;\n}\n\n._CSS-dialog__body {\n  padding: .5rem;\n}\n\n._CSS-dialog__commands {\n  flex: 1;\n  display: flex;\n  justify-content: space-between;\n}","controller":"class Controller {\n  async show() {\n    if (Aeppic.ProfilePage && Aeppic.ProfilePage.id === document.id) {\n      locals.account = await Aeppic.edit(Aeppic.Account)\n    }\n\n    $refs.dialog.show()\n  }\n\n  async save() {\n    $refs.dialog.close()\n\n    locals.documentChanged = false\n\n    const { mobilePhone, email } = locals.account.data\n    \n    const result = await Aeppic.Commands.execute('879a37fc-a95d-4c8a-bdbf-35ff3172e30a', locals.account, {\n      mobilePhone,\n      email\n    })\n    console.log(result)\n\n    if (!result.ok) {\n      console.error('Could not change accounts contact data')\n    }\n\n    locals.account = null\n  }\n}","packages":[]},"locks":[],"created":{"at":"2018-10-04T16:45:24+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2019-05-03T13:06:33+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1556888793747,"ct":1538671524597,"a_depth":4,"a":["apps","144e85c0-d7f9-4b20-8928-be30f0c78bda","8e6ee7d3-9122-4a2e-8aaf-9fb3bd204b23","d2ac3563-3c3f-4f02-b923-9b67abf98d10"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"9c111aa0-19e8-4452-9300-f77c46b29cae","v":"bda3d54bb7bee2d8","cloneOf":{"id":"c6592cb7-1289-496a-9473-733b7be8b16d","v":"9e62ebec641eff75","text":"additional-toolbar-buttons"},"originalCloneOf":{"id":"c6592cb7-1289-496a-9473-733b7be8b16d","v":"9e62ebec641eff75","text":"additional-toolbar-buttons"},"previous":{"v":"0d2552c242b80f1f"},"p":"0b4fe19c-a550-46b7-ada0-6813a60e14bc","f":{"id":"design-form","v":"65801907e0c30697","text":"Design"},"data":{"name":"additional-toolbar-buttons","template":"<button class=\"ae-button\" @click=\"controller.switchToNextView()\">\n  <ae-icon class=\"fad\" :class=\"controller.nextView.icon\"></ae-icon>&nbsp;<span :title=\"controller.nextView.title\">{{controller.nextView.label}}</span>\n</button>\n\n<button class=\"ae-button\" :disabled=\"controller.view.id !== 'projects'\" @click=\"controller.toggleDone()\">\n  <span v-show=\"locals.showDone\" title=\"Erledigte Projekte ausblenden\"><ae-icon class=\"fad fa-clipboard-check\"></ae-icon> Erledigte ausblenden</span> \n  <span v-show=\"!locals.showDone\"  title=\"Erledigte Projekte anzeigen\"><ae-icon class=\"fad fa-clipboard\"></ae-icon> Erledigte anzeigen</span>\n</button>\n","css":"._CSS {\n  display: flex;\n}","controller":"class Controller {\n  init() {\n    locals.showDone = false\n    locals.views = [\n      {\n        id: 'projects',\n        title: 'Zur Listen-Ansicht',\n        icon: { 'fa-list': true },\n        label: 'Liste',\n      },\n      {\n        id: 'milestones',\n        title: 'Zur Roadmap',\n        icon: { 'fa-ballot-check': true },\n        label: 'Roadmap',\n      },\n      {\n        id: 'gantt',\n        title: 'Als Gantt darstellen',\n        icon: { 'fa-line-columns': true },\n        label: 'Gantt (BETA)',\n      },\n    ] \n\n    locals.currentViewIndex = 0\n\n    const storedViewId = Aeppic.LocalStorage.getValue('bp-pref-tasks-view-id')\n    if (storedViewId) {\n      locals.currentViewIndex = locals.views.findIndex(v => v.id === storedViewId) || 0\n    }\n  }\n\n  get view() {\n    return locals.views[locals.currentViewIndex]\n  }\n\n  get nextViewIndex() {\n    return (locals.currentViewIndex + 1) % locals.views.length\n  }\n\n  get nextView() {\n    return locals.views[ this.nextViewIndex ]\n  }\n  \n  switchToNextView() {\n    locals.currentViewIndex = this.nextViewIndex\n    Aeppic.LocalStorage.setValue('bp-pref-tasks-view-id', this.view.id)\n\n    $emit('toolbar', `view_${this.view.id}`)\n  }\n  \n  toggleDone() {\n    locals.showDone = !locals.showDone\n    $emit('toolbar', `view_done_${locals.showDone}`)\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-07-01T14:40:04+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2022-04-19T13:55:34+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1650376534632,"ct":1593614404618,"a_depth":4,"a":["apps","59edbdbc-2cab-426a-bb42-6e57c5158e4f","3be7e887-1bcd-4c3c-979f-b20a986c4c48","0b4fe19c-a550-46b7-ada0-6813a60e14bc"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"a583b444-9a0d-4d2c-abaa-a0d49125bdfa","v":"5117e04bc912752e","p":"6f48c20d-dc77-400a-b49d-5aa8b1d9053f","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"additional-toolbar-buttons","template":"<button class=\"ae-button ae-button--secondary\" @click.stop=\"controller.nextView()\">\n  <ae-icon :class=\"locals.view.icon\"></ae-icon>\n  {{ locals.view.display }}\n</button>","css":"","controller":"class Controller {\n  async init() {\n    locals.views = [\n      {\n        icon: 'fa fa-table',\n        value: 'table',\n        display: 'Tabelle'\n      },\n      {\n        icon: 'fa fa-chart-pie',\n        value: 'diagram:polar-area',\n        display: 'Tortendiagramm'\n      },\n      {\n        icon: 'fa fa-chart-bar',\n        value: 'diagram:bar',\n        display: 'Balkendiagramm'\n      },\n    ]\n\n    locals.view = locals.views.shift()\n\n    const canEdit = await Aeppic.canEdit(document)\n  }\n\n  nextView() {\n    locals.views.push(locals.view)\n    locals.view = locals.views.shift()\n\n    $emit('toolbar', `view_${locals.view.value}`)\n  }\n}\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2019-10-07T09:06:11+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2022-11-14T13:06:12+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1668431172849,"ct":1668431172849,"a_depth":4,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","76983fec-9e9a-4ab9-b7d0-e2f9923b8bd8","6f48c20d-dc77-400a-b49d-5aa8b1d9053f"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[],"previous":{"v":"4f12302ebeaebe10","f":{"id":"design-form","v":"24435d748c76f819","text":"Design"}}},{"id":"a8a6d426-8f59-4705-991e-b91a675511c4","v":"5a2883fbf6b8b376","previous":{"v":"e8b7586bd6589baf"},"p":"repository-folder-form","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"additional-toolbar-buttons","applies":"","template":"<button v-if=\"data.configurationDocument && data.configurationDocument.id\" class=\"ae-button\" @click=\"Aeppic.navigateTo(data.configurationDocument)\">\n  <ae-icon class=\"fa fa-cog\"></ae-icon> Stammdaten \n</button>\n","css":"","controller":"","packages":[]},"locks":[],"created":{"at":"2018-09-03T12:22:56+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2019-05-03T13:05:19+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1556888719692,"ct":1535977376040,"a_depth":3,"a":["system","system-folder-forms-folder","repository-folder-form"],"a_forms":["system-folder-form","form-folder","form"],"inheritedLocks":[null,null,null,null],"stamps":[]},{"id":"a9987b00-1840-4f03-9667-2cbf373d1944","v":"b546c7712d5d3f11","previous":{"v":"aa82a52d877c38d5"},"p":"8d8f6fdb-6f78-4e2a-b585-bd80f4dbaa1d","f":{"id":"design-form","v":"24435d748c76f819","text":"Design"},"data":{"name":"additional-toolbar-buttons","template":"<a v-if=\"locals.hasShare\" @click.stop.prevent=\"controller.buildAndActivateMailTo()\">\n  <button class=\"ae-button ae-button--secondary\">\n      <ae-icon class=\"fa fa-envelope-open-text\"></ae-icon>\n  </button>\n</a>\n<a ref=\"mailto\" v-show=\"false\" :href=\"locals.href\"></a>","css":"","controller":"class Controller {\n  async init() {\n    this.SHARE_PREFIX = 'mail'\n    this.TEMPLATE_FORM = '9fcbed35-0759-4c2d-848b-aaa1f968f3ff'\n\n    locals.href = ''\n\n    locals.hasShare = !!(await Aeppic.get(data.share))\n  }\n\n  async buildAndActivateMailTo() {\n    locals.href = await this.mailto()\n\n    await Aeppic.nextRenderPass()\n\n    $refs.mailto.click()\n  }\n\n  async mailto() {\n    const parts = []\n\n    const recipients = (await Aeppic.getAll(data.empfaenger)).filter(d => d != null)\n\n    for (let i = 0; i < recipients.length; i += 1) {\n      const recipient = recipients[i]\n\n      if (recipient && recipient.data.email) {\n        parts.push(recipient.data.email)\n\n        if (recipients.length > 1 && i < recipients.length) {\n          parts.push(',')\n        }\n      }\n    }\n\n    parts.push('?')\n\n    if (data.name) {\n      parts.push(`subject=${encodeURIComponent(data.name)}`)\n    }\n \n    const share = await Aeppic.get(data.share)\n\n    if (!share) {\n      console.error('Could not find share')\n      return\n    }\n\n    const baseUrl = packages.window.location.origin \n    const url = `${baseUrl}/${this.SHARE_PREFIX}/${share.data.identifier}`\n\n    const readableShare = await Aeppic.new('e60d2d83-e63b-4786-87c7-6f932b62f6bb', document.p)\n    readableShare.data.url = url\n\n    const body = encodeURIComponent(`${await this.buildTokenTemplate(readableShare)}`)\n    \n    if (parts.length <= 1) {\n      parts.push(`?body=${body}`)\n    } else {\n      parts.push(`&body=${body}`)\n    }\n  \n    return `mailto:${parts.join('')}`\n  }\n\n  async buildTokenTemplate(share) {\n    const tokenTemplateDocument = await Aeppic.findOne(`a:${document.a[0]} a_forms:089eb68f-d2ec-4e30-a3bb-6549d72932ec f.id:${this.TEMPLATE_FORM}`)\n    const template = tokenTemplateDocument.data.template\n\n    const parent = await Aeppic.get(document.p)\n    const empfaenger = await Aeppic.get(document.data.empfaenger[0])\n\n    const dataDocuments = [parent, empfaenger, share, document].filter(d => d != null)\n\n    const reportData = await this._generateReportData(dataDocuments)\n\n    const tokenizedTemplate = this._replaceTokensInXml(template, reportData)\n    console.log('-> token template', reportData, tokenizedTemplate)\n \n    return tokenizedTemplate\n  }\n\n  async _generateReportData(dataDocuments) {\n    const reportData = {}\n    const usedFormNames = []\n\n    for (const document of dataDocuments) {\n      const form = await Aeppic.getDocumentForm(document)\n\n      const formName = form.data.name.replace(/\\s/g, '-')\n\n      if (usedFormNames.includes(formName)) {\n        log.warn(\n          'duplicate form name \"%s\" referenced. Ignoring',\n          formName,\n          document\n        )\n\n        continue\n      }\n\n      usedFormNames.push(formName)\n\n      for (const field of form.fields) {\n        const { type, subType, name } = field\n        const value = document.data[name]\n        const fieldName = this._uniformToken(`${formName}_${name}`)\n\n        if (type === 'string' || type === 'number') {\n          reportData[fieldName] = `${value}`\n          \n          continue\n        }\n\n        if (type === 'object' && subType === 'address') {\n          for (const key of Object.keys(value)) {\n            const subFieldName = `${fieldName}_${key}`\n            const subValue = value[key]\n            \n            reportData[subFieldName] = `${subValue}`\n          }\n        }\n\n      }\n    }\n\n    return reportData\n  }\n\n  _replaceTokensInXml(template, documentData) {\n    if (!documentData) {\n      return template\n    }\n\n    for (const token in documentData) {\n      if (!(typeof token === 'string' || typeof token === 'number')) {\n        continue\n      }\n\n      const tokenExp = `$${token}$`\n      \n      const value = documentData[token] ? String(documentData[token]) : ''\n\n      template = template.replace(tokenExp, value)\n    }\n\n    return template\n  }\n\n  _uniformToken(token) {\n    let sanitized = token\n\n    // Ü, ü     \\u00dc, \\u00fc\n    // Ä, ä     \\u00c4, \\u00e4\n    // Ö, ö     \\u00d6, \\u00f6\n    // ß        \\u00df\n    sanitized = sanitized.replace(/\\u00dc/g, 'Ue')\n    sanitized = sanitized.replace(/\\u00fc/g, 'ue')\n    sanitized = sanitized.replace(/\\u00c4/g, 'Ae')\n    sanitized = sanitized.replace(/\\u00e4/g, 'ae')\n    sanitized = sanitized.replace(/\\u00d6/g, 'Oe')\n    sanitized = sanitized.replace(/\\u00f6/g, 'oe')\n    sanitized = sanitized.replace(/\\u00df/g, 'ss')\n\n    return sanitized.toLowerCase()\n  }\n}\n","packages":[{"id":"10843fbf-4f0c-416b-be7d-42d6bbd0ae68","v":"5f748569e59edddc","text":"Window"}],"aliases":[],"description":""},"locks":[],"created":{"at":"2019-05-20T15:28:37+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2024-04-11T09:03:52+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1712826232479,"ct":1558358917049,"a_depth":4,"a":["apps","94a64d89-d204-4918-b147-d717914fb03e","f254ce25-42f1-4333-8ee7-23554bf746c1","8d8f6fdb-6f78-4e2a-b585-bd80f4dbaa1d"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"b6713ea3-40fa-477f-ba8a-fe76a3ec88fa","v":"278804ee4e957874","previous":{"v":"2a2794272f90a1e4"},"p":"cfd3ce74-9fa5-46c8-a9e9-cba33a3b8e70","f":{"id":"design-form","v":"65801907e0c30697","text":"Design"},"data":{"name":"additional-toolbar-buttons","template":"<a :href=\"locals.printUrl\" target=\"_blank\">\n  <button class=\"ae-button\">\n    <ae-icon class=\"fa fa-print\"></ae-icon> Tabelle drucken\n  </button>\n</a>\n\n<button class=\"ae-button\" v-if=\"locals.tableConfiguration\" @click=\"Aeppic.navigateTo(locals.tableConfiguration.data.configurationDocument)\">\n  <ae-icon class=\"fa fa-cog\"></ae-icon> Stammdaten\n</button> \n\n<ae-layout layout-id=\"da7d7591-812b-4af2-8ec1-635f08a277c2\"\n          :param-document=\"document\"\n          v-if=\"!params.readonly\"\n></ae-layout>","css":"._CSS {\n  display: flex;\n}","controller":"class Controller {\n  async init() {\n    locals.printUrl = `/${document.id}?print&printLayoutId=44861e3c-ebe8-4ed2-9a93-0b16e5e9e365`\n    locals.tableConfiguration = await Aeppic.findOne(`p:${document.id} f.id:repository-folder-form`)\n\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2019-05-22T11:42:41+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2020-10-22T14:52:35+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1603378355207,"ct":1558518161411,"a_depth":4,"a":["apps","94a64d89-d204-4918-b147-d717914fb03e","f254ce25-42f1-4333-8ee7-23554bf746c1","cfd3ce74-9fa5-46c8-a9e9-cba33a3b8e70"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"c3a8376d-c6ec-4dd4-8a91-866ef74c41df","v":"45a4ef1ce98491d9","cloneOf":{"id":"c85ddbc2-0b5a-4c60-8de2-bcabd4e99796","v":"0cf76f6b57ba41f3","text":"additional-toolbar-buttons"},"originalCloneOf":{"id":"c85ddbc2-0b5a-4c60-8de2-bcabd4e99796","v":"0cf76f6b57ba41f3","text":"additional-toolbar-buttons"},"previous":{"v":"8fdc2e18daa62554"},"p":"3f5de83a-40e4-4662-b436-3ed4879edb10","f":{"id":"design-form","v":"65801907e0c30697","text":"Design"},"data":{"name":"additional-toolbar-buttons","template":"<button v-if=\"locals.canEdit && Aeppic.Device !== 'Phone'\" class=\"_CSS-actions__action ae-button\" @click.stop=\"controller.editFile()\">\n  Datei bearbeiten\n</button>\n\n<ae-design name=\"download-and-print-buttons\" :document=\"document\" @toolbar=\"$emit('toolbar', $event)\"></ae-design>\n\n<ae-dialog ref=\"dialog\"> \n  <template #header=\"scope\">\n    <div class=\"_CSS-dialog__header\">\n      Client wird benötigt\n      <button class=\"ae-button\" @click.stop=\"scope.close()\">\n        <ae-icon class=\"fa fa-times\"></ae-icon>\n      </button>\n    </div>\n  </template>\n  <template #body=\"scope\">\n     <div class=\"_CSS-dialog__body\">\n      <span>Sie müssen den Bizpin Client benutzen um Dateien bearbeiten zu können.</span>\n      <a href=\"https://www.bizpin.de/client\" target=\"_blank\" style=\"align-self:center; margin: var(--ae-size-5)\">\n        <button class=\"ae-button ae-button--primary\">\n          Client herunterladen\n      </button>\n      </a>\n    </div>\n  </template>\n</ae-dialog>","css":"._CSS {\n  display: flex;\n}\n\n._CSS-dialog__header {\n  display: flex;\n  align-items: center;\n  justify-content: space-between;  \n}\n\n._CSS-dialog__body {\n  padding: var(--ae-size-1);\n  display: flex; \n  align-items: center;\n  justify-content: center;\n  flex-direction: column; \n  height: 100%;\n}","controller":"class Controller {\n  async init() {\n    const canEdit = !document.readonly && await Aeppic.canEdit(document)\n    locals.canEdit = Aeppic.Account && Aeppic.Account.data.isGroupAccount === false && canEdit === true\n  }\n\n  isElectron() {\n    return typeof navigator === 'object' && typeof navigator.userAgent === 'string' && navigator.userAgent.indexOf('Electron') >= 0\n  }\n\n  editFile() {\n    if(this.isElectron()) {\n      Aeppic.editFile(Aeppic.Content.getSrc(document, 'stallkarte'), data.stallkarte.name, {\n        id: document.id,\n        v: document.v,\n        fieldName: 'stallkarte',\n        mimeType: data.stallkarte.type\n      })\n    } else {\n     $refs.dialog.show()\n    }\n  }\n}\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-09-29T12:32:15+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-09-29T12:32:52+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1632918772433,"ct":1632918735737,"a_depth":4,"a":["apps","5ec4fefb-1235-484e-8d6f-4fd645bae372","75920050-07b1-4e79-9742-54abcc235e91","3f5de83a-40e4-4662-b436-3ed4879edb10"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"c6592cb7-1289-496a-9473-733b7be8b16d","v":"9e62ebec641eff75","previous":{"v":"81922bfb6c1e7d4d"},"p":"4df0ebf7-c439-48d3-8a57-eef59bcfa250","f":{"id":"design-form","v":"65801907e0c30697","text":"Design"},"data":{"name":"additional-toolbar-buttons","template":"<button class=\"ae-button\" @click=\"controller.switchToNextView()\">\n  <ae-icon class=\"fa\" :class=\"controller.nextView.icon\"></ae-icon>&nbsp;<span :title=\"controller.nextView.title\">{{controller.nextView.label}}</span>\n</button>\n<!-- \n<button class=\"ae-button\" @click=\"controller.toggleDetails()\">\n  <span v-show=\"locals.showDetails\" title=\"Details ausblenden\"><ae-icon class=\"fa fa-info-circle\"></ae-icon></span>\n  <span v-show=\"!locals.showDetails\"  title=\"Details anzeigen\"><ae-icon class=\"fal fa-info-circle\"></ae-icon></span>\n</button> -->\n\n\n<button class=\"ae-button\" :disabled=\"!locals.view === 'projects'\" @click=\"controller.toggleDone()\">\n  <span v-show=\"locals.showDone\" title=\"Erledigte Projekte ausblenden\"><ae-icon class=\"fa fa-clipboard-check\"></ae-icon></span>\n  <span v-show=\"!locals.showDone\"  title=\"Erledigte Projekte anzeigen\"><ae-icon class=\"fa fa-clipboard\"></ae-icon></span>\n</button>\n\n","css":"._CSS {\n  display: flex;\n}","controller":"class Controller {\n  init() {\n    locals.showDone = false\n    locals.showDetails = false\n\n    locals.views = [\n      {\n        id: 'projects',\n        title: 'Liste',\n        icon: { 'fa-list': true },\n        label: 'Liste',\n      },\n      {\n        id: 'calendar',\n        title: 'Kalender',\n        icon: { 'fa-calendar': true },\n        label: 'Kalender',\n      },\n      {\n        id: 'milestones',\n        title: 'Roadmap',\n        icon: { 'fa-ballot-check': true },\n        label: 'Roadmap',\n      },\n    ]\n\n    // locals.currentViewIndex = parseInt(Aeppic.LocalStorage.getValue('bp-pref-tasks-view-index') || '0')\n    locals.currentViewIndex = 0\n  }\n\n  get view() {\n    return locals.views[locals.currentViewIndex]\n  }\n\n  get nextViewIndex() {\n    return (locals.currentViewIndex + 1) % locals.views.length\n  }\n\n  get nextView() {\n    return locals.views[ this.nextViewIndex ]\n  }\n  \n  switchToNextView() {\n    locals.currentViewIndex = this.nextViewIndex\n    Aeppic.LocalStorage.setValue('bp-pref-tasks-view-index', locals.currentViewIndex.toString())\n\n    $emit('toolbar', `view_${this.view.id}`)\n  }\n  \n  toggleDone() {\n    locals.showDone = !locals.showDone\n    $emit('toolbar', `view_done_${locals.showDone}`)\n  }\n  // toggleDetails() {\n  //   locals.showDetails = !locals.showDetails\n  //   $emit('toolbar', `view_details_${locals.showDetails}`)\n  // }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2019-05-03T13:06:32+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2020-05-08T08:50:54+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1588927854643,"ct":1556888792934,"a_depth":4,"a":["apps","5acfd7a2-33e4-498a-9150-71e1ab772bfc","20c92864-6a81-4006-96f9-b78f473cd129","4df0ebf7-c439-48d3-8a57-eef59bcfa250"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"c85ddbc2-0b5a-4c60-8de2-bcabd4e99796","v":"7ef0a4d24f7c7bc9","cloneOf":{"id":"7045060b-1530-448c-bf4a-ab4c60086c0d","v":"191eee72e8c3b28b","text":"additional-toolbar-buttons"},"originalCloneOf":{"id":"7045060b-1530-448c-bf4a-ab4c60086c0d","v":"191eee72e8c3b28b","text":"additional-toolbar-buttons"},"previous":{"v":"715cc5f24a364978"},"p":"dbee6e16-d63a-493c-bba6-505f79918f9f","f":{"id":"design-form","v":"65801907e0c30697","text":"Design"},"data":{"name":"additional-toolbar-buttons","template":"<button v-if=\"locals.canEdit && Aeppic.Device !== 'Phone'\" class=\"_CSS-actions__action ae-button ae-button--tertiary\" @click.stop=\"controller.editFile()\">\n  Datei bearbeiten\n</button>\n\n<ae-design name=\"download-and-print-buttons\" :document=\"document\" @toolbar=\"$emit('toolbar', $event)\"></ae-design>\n\n<ae-dialog ref=\"dialog\"> \n  <template #header=\"scope\">\n    <div class=\"_CSS-dialog__header\">\n      Client wird benötigt\n      <button class=\"ae-button\" @click.stop=\"scope.close()\">\n        <ae-icon class=\"fa fa-times\"></ae-icon>\n      </button>\n    </div>\n  </template>\n  <template #body=\"scope\">\n     <div class=\"_CSS-dialog__body\">\n      <span>Sie müssen den Bizpin Client benutzen um Dateien bearbeiten zu können.</span>\n      <a href=\"https://bizpin.de/client\" target=\"_blank\" style=\"align-self:center; margin: var(--ae-size-5)\">\n        <button class=\"ae-button ae-button--primary\">\n          Client herunterladen\n      </button>\n      </a>\n    </div>\n  </template>\n</ae-dialog>","css":"._CSS {\n  display: flex;\n}\n\n._CSS-dialog__header {\n  display: flex;\n  align-items: center;\n  justify-content: space-between;  \n}\n\n._CSS-dialog__body {\n  padding: var(--ae-size-1);\n  display: flex; \n  align-items: center;\n  justify-content: center;\n  flex-direction: column; \n  height: 100%;\n}","controller":"class Controller {\n  async init() {\n    const canEdit = !document.readonly && await Aeppic.canEdit(document)\n    locals.canEdit = Aeppic.Account && Aeppic.Account.data.isGroupAccount === false && canEdit === true\n  }\n\n  isElectron() {\n    return typeof navigator === 'object' && typeof navigator.userAgent === 'string' && navigator.userAgent.indexOf('Electron') >= 0\n  }\n\n  editFile() {\n    if(this.isElectron()) {\n      Aeppic.editFile(Aeppic.Content.getSrc(document, 'datei'), data.datei.name, {\n        id: document.id,\n        v: document.v,\n        fieldName: 'datei',\n        mimeType: data.datei.type\n      })\n    } else {\n     $refs.dialog.show()\n    }\n  }\n}\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-06-24T12:54:35+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2022-02-22T08:49:25+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1645519765705,"ct":1593003275116,"a_depth":4,"a":["apps","45ada186-e9fd-451d-9dbd-2defc0b4f86f","4ec6a0e5-cf2d-4095-9b70-2e31a64d5679","dbee6e16-d63a-493c-bba6-505f79918f9f"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"d4214c52-02ff-4c22-95a4-6dcb76f7e387","v":"0ea83a45053ad032","previous":{"v":"a09c60c17fc45837"},"p":"c6349b48-9561-4c06-9200-fe9df9b6fb3e","f":{"id":"design-form","v":"24435d748c76f819","text":"Design"},"data":{"name":"additional-toolbar-buttons","template":"<template v-if=\"locals.hasFullAccess\">\n  <a  @click.stop.prevent=\"controller.clickDownloadLink()\" title=\"Alle Dateien herunterladen\">\n    <button class=\"ae-button ae-button--secondary\">\n      <ae-icon class=\"fa fa-file-download\"></ae-icon>\n    </button>\n  </a>\n\n  <a @click.stop.prevent=\"controller.clickCustomerLink()\" title=\"E-Mail für Kunde\">\n    <button class=\"ae-button ae-button--secondary\">\n      <ae-icon class=\"fa fa-user\"></ae-icon>\n      <ae-icon class=\"fa fa-envelope-open-text\"></ae-icon>\n    </button>\n  </a>\n\n  <a @click.stop.prevent=\"controller.clickBaustelleLink()\" title=\"E-Mail für Baustelle\">\n    <button class=\"ae-button ae-button--secondary\">\n      <ae-icon class=\"fa fa-hammer\"></ae-icon>\n      <ae-icon class=\"fa fa-envelope-open-text\"></ae-icon>\n    </button>\n  </a>\n\n  <a ref=\"mailtoCustomer\" v-show=\"false\" :href=\"locals.hrefCustomer\" target=\"_blank\"></a>\n  <a ref=\"mailtoBaustelle\" v-show=\"false\" :href=\"locals.hrefBaustelle\" target=\"_blank\"></a>\n\n  <a ref=\"linkDownload\" v-show=\"false\" :href=\"locals.hrefDownload\" target=\"_blank\"></a>\n</template>","css":"","controller":"class Controller {\n  async init() {\n    this.SHARE_PREFIX = 'shared'\n    this.TEMPLATE_FORM_KUNDE = 'aba69172-0a71-41ed-8d72-8ef7a3cb016e'\n    this.TEMPLATE_FORM_BAUSTELLE = '82d9d875-0f38-4201-a44b-8a1fe7a5fefa'\n\n    this.STAMMDATEN_FORM = '089eb68f-d2ec-4e30-a3bb-6549d72932ec'\n    this.FORMS = {\n      SharedDocument: '804bed89-803a-4090-8b1b-857cab8ec6dd',\n      Datei: '6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2'\n    }\n\n    locals.hrefCustomer = ''\n    locals.hrefBaustelle = ''\n    locals.hrefDownload = ''\n    locals.hasFullAccess = false\n\n    const commandResult = await Aeppic.Commands.execute('3a13cdaf-95f4-43d0-a8e5-6a02e5d8ffc1', document, { Account: Aeppic.Account })\n    locals.hasFullAccess = !!commandResult.value\n  }\n \n  async clickDownloadLink() {\n    let href = `/api/services/41e10b87-b2e2-4534-a224-ebe1b728ff29/v1/zip?folderId=${document.id}`\n\n    const templateFiles = await Aeppic.getAll([...data.gesendeteProjektFormulare, ...data.hochgeladeneProjektFormulare])\n    const ids = templateFiles.filter(d => !!d).map(d => `fileIds=${d.id}`).join('&')\n\n    href = `${href}&${ids}`\n\n    console.log({href, ids })\n    \n    locals.hrefDownload = href\n\n    await Aeppic.nextRenderPass()\n\n    $refs.linkDownload.click()\n}\n\n  async clickCustomerLink() {\n    locals.hrefCustomer = await this.mailto('kunde', this.TEMPLATE_FORM_KUNDE, 'passwortKunde')\n\n    await Aeppic.nextRenderPass()\n\n    $refs.mailtoCustomer.click()\n  }\n\n  async clickBaustelleLink() {\n    locals.hrefCustomer = await this.mailto('baustelle', this.TEMPLATE_FORM_BAUSTELLE, 'passwortBaustelle')\n\n    await Aeppic.nextRenderPass()\n\n    $refs.mailtoCustomer.click()\n  }\n\n  async mailto(nameOfShare, tokenTemplateFormId, passwordFieldName) {\n    const parts = []\n\n    const recipients = (await Aeppic.getAll(data.empfaenger)).filter(d => d != null)\n\n    for (let i = 0; i < recipients.length; i += 1) {\n      const recipient = recipients[i]\n\n      if (recipient && recipient.data.email) {\n        parts.push(recipient.data.email)\n\n        if (recipients.length > 1 && i < recipients.length) {\n          parts.push(',')\n        }\n      }\n    }\n\n    // if (!parts.length) {\n    //   parts.push('%20')\n    // }\n\n    if (data.name) {\n      parts.push(`?subject=${encodeURIComponent(data.name)}`)\n    }\n \n    const share = await Aeppic.findOne(`p:${document.id} f.id:${this.FORMS.SharedDocument} data.identifier:\"${nameOfShare}\"`)\n\n    if (!share) {\n      throw new Error('No share found for name ' + nameOfShare)\n    }\n\n    const baseUrl = packages.window.location.origin \n    const urlSuffix = !data[passwordFieldName] ? '?auto' : ''\n    const url = `${baseUrl}/${this.SHARE_PREFIX}/${share.id}${urlSuffix}`\n\n    const readableShare = await Aeppic.new('e60d2d83-e63b-4786-87c7-6f932b62f6bb', document.id)\n    readableShare.data.url = url\n\n    const body = encodeURIComponent(`${await this.buildTokenTemplate(readableShare, tokenTemplateFormId)}`)\n\n    if (parts.length <= 1) {\n      parts.push(`?body=${body}`)\n    } else {\n      parts.push(`&body=${body}`)\n    }\n  \n    return `mailto:${parts.join('')}`\n  }\n\n  async buildTokenTemplate(share, tokenTemplateFormId) {\n    const tokenTemplateDocument = await Aeppic.findOne(`a:${document.a[0]} a_forms:${this.STAMMDATEN_FORM} f.id:${tokenTemplateFormId}`)\n    const template = tokenTemplateDocument.data.template\n\n    const parent = await Aeppic.get(document.p)\n    const empfaenger = await Aeppic.get(document.data.empfaenger[0])\n\n    const dataDocuments = [parent, empfaenger, share, document].filter(d => d != null)\n\n    const reportData = await this._generateReportData(dataDocuments)\n\n    const tokenizedTemplate = this._replaceTokensInXml(template, reportData)\n    console.log('-> token template', reportData, tokenizedTemplate)\n \n    return tokenizedTemplate\n  }\n\n  async _generateReportData(dataDocuments) {\n    const reportData = {}\n    const usedFormNames = []\n\n    for (const document of dataDocuments) {\n      const form = await Aeppic.getFormForDocument(document)\n\n      const formName = form.data.name.replace(/\\s/g, '-')\n\n      if (usedFormNames.includes(formName)) {\n        log.warn(\n          'duplicate form name \"%s\" referenced. Ignoring',\n          formName,\n          document\n        )\n\n        continue\n      }\n\n      usedFormNames.push(formName)\n\n      for (const field of form.fields) {\n        const { type, subType, name } = field\n        const value = document.data[name]\n        const fieldName = this._uniformToken(`${formName}_${name}`)\n\n        if (type === 'string' || type === 'number') {\n          reportData[fieldName] = `${value}`\n          \n          continue\n        }\n\n        if (type === 'object' && subType === 'address') {\n          for (const key of Object.keys(value)) {\n            const subFieldName = `${fieldName}_${key}`\n            const subValue = value[key]\n            \n            reportData[subFieldName] = `${subValue}`\n          }\n        }\n\n      }\n    }\n\n    return reportData\n  }\n\n  _replaceTokensInXml(template, documentData) {\n    if (!documentData) {\n      return template\n    }\n\n    for (const token in documentData) {\n      if (!(typeof token === 'string' || typeof token === 'number')) {\n        continue\n      }\n\n      const tokenExp = `$${token}$`\n      \n      const value = documentData[token] ? String(documentData[token]) : ''\n\n      template = template.replace(tokenExp, value)\n    }\n\n    return template\n  }\n\n  _uniformToken(token) {\n    let sanitized = token\n\n    // Ü, ü     \\u00dc, \\u00fc\n    // Ä, ä     \\u00c4, \\u00e4\n    // Ö, ö     \\u00d6, \\u00f6\n    // ß        \\u00df\n    sanitized = sanitized.replace(/\\u00dc/g, 'Ue')\n    sanitized = sanitized.replace(/\\u00fc/g, 'ue')\n    sanitized = sanitized.replace(/\\u00c4/g, 'Ae')\n    sanitized = sanitized.replace(/\\u00e4/g, 'ae')\n    sanitized = sanitized.replace(/\\u00d6/g, 'Oe')\n    sanitized = sanitized.replace(/\\u00f6/g, 'oe')\n    sanitized = sanitized.replace(/\\u00df/g, 'ss')\n\n    return sanitized.toLowerCase()\n  }\n}\n","packages":[{"id":"10843fbf-4f0c-416b-be7d-42d6bbd0ae68","v":"5f748569e59edddc","text":"Window"}],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-04-22T12:19:24+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2024-02-29T09:27:08+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1709198828529,"ct":1587557963996,"a_depth":4,"a":["apps","94a64d89-d204-4918-b147-d717914fb03e","f254ce25-42f1-4333-8ee7-23554bf746c1","c6349b48-9561-4c06-9200-fe9df9b6fb3e"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"dfeaf9d5-febc-4dd3-9b24-4b6d6a7f086f","v":"c9c0f46b8c4749ce","previous":{"v":"66d1a193d45d189d"},"p":"59b7188e-1296-4466-a9c2-d6255496e7d6","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"additional-toolbar-buttons","template":"<a v-if=\"data.emlFile && data.emlFile.dataUrl\" :href=\"Aeppic.Content.getUrl(document, 'emlFile')\" :download=\"document.data.emlFile.name\">\n  <button class=\"ae-button ae-button--secondary\">\n    <ae-icon class=\"fa fa-download\"></ae-icon>\n    EML-Datei\n  </button>\n</a>\n<a v-if=\"data.msgFile && data.msgFile.dataUrl\" :href=\"Aeppic.Content.getUrl(document, 'msgFile')\" :download=\"document.data.msgFile.name\">\n  <button class=\"ae-button ae-button--secondary\">\n    <ae-icon class=\"fa fa-download\"></ae-icon>\n    MSG-Datei\n  </button>\n</a>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-12-17T09:38:55+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-02-25T11:17:22+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1645787842856,"ct":1639733935025,"a_depth":4,"a":["apps","b9df606f-b33a-48ad-ba91-a82fa7868fa4","f0010376-2737-42c5-aaf8-f8b8e1cd0449","59b7188e-1296-4466-a9c2-d6255496e7d6"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"ea9c328a-c747-40b1-92bf-40574d2bd61f","v":"13071c91cf4a0c6a","previous":{"v":"cd9356f8645fafc0"},"p":"522ca40d-810b-4021-835f-beeace3af7fa","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"additional-toolbar-buttons","template":"<ae-layout  layout-id=\"0ded34c5-1221-4511-af93-d897a79f1369\"\n            :param-document=\"document\"\n></ae-layout>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-04-19T13:15:53+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-04-19T13:21:12+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1650374472540,"ct":1650374153485,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","522ca40d-810b-4021-835f-beeace3af7fa"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"ef8848b9-4ae8-4996-96b1-d97aed99b8da","v":"8323d1b46a91a4f4","previous":{"v":"9f84bfd16a247b4f"},"p":"208dc4fd-4c2c-4a8f-9c6d-94be86daac1d","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"additional-toolbar-buttons","template":"<div class=\"flex items-center gap-4\">\n  <div class=\"text-xs md:text-sm\" :key=\"'_CSS' + locals.currentView.id\">\n    Liste aktualisiert: {{ Aeppic.DateTime.local().toLocaleString(Aeppic.DateTime.DATETIME_SHORT) }}\n  </div>\n\n  <div >\n    <div v-if=\"Aeppic.Device === 'Phone'\">\n      <select @input=\"controller.setView($event.target.value)\" :value=\"locals.currentView.id\">\n        <option v-for=\"view of locals.views\" :value=\"view.id\" :selected=\"view.id === locals.currentView\">\n          <!-- <ae-icon class=\"fad\" :class=\"view.icon\"></ae-icon>&nbsp;<span :title=\"view.title\"> -->\n          {{ view.label }}\n        </option>\n      </select>\n    </div>\n    <div v-else>\n      <button v-for=\"view of locals.views\" class=\"ae-button\" :class=\"{ 'ae-button--tertiary': locals.currentView === view }\" @click.stop=\"controller.setView(view)\">\n        <ae-icon class=\"fad\" :class=\"view.icon\"></ae-icon>&nbsp;<span :title=\"view.title\">\n          {{ view.label }}\n          </span>\n      </button>\n    </div>\n  </div>\n</div> ","css":"","controller":"class Controller {\n  init() {\n    locals.views = [\n      {\n        id: 'todo',\n        icon: { 'fa-question': true },\n        label: 'Offen',\n      },\n      {\n        id: 'closed',\n        icon: { 'fa-check': true },\n        label: 'Bezahlt',\n      },\n      {\n        id: 'overview',\n        icon: { 'fa-map': true },\n        label: 'Übersicht',\n      },\n    ]\n \n    locals.currentView = locals.views[0]\n\n    const storedViewId = Aeppic.LocalStorage.getValue('bp-pref-rooms-tenant-payments-list-view')\n    if (storedViewId) {\n      locals.currentView = locals.views.find(v => v.id === storedViewId) || locals.currentView\n    }\n  }\n  \n  setView(viewOrViewId) {\n    const view = typeof viewOrViewId === 'string' ? locals.views.find(v => v.id === viewOrViewId) : viewOrViewId\n    \n    locals.currentView = view\n    Aeppic.LocalStorage.setValue('bp-pref-rooms-tenant-payments-list-view', view.id)\n\n    $emit('toolbar', `view_${view.id}`)\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-11-18T13:40:42+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-11-21T14:25:24+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1669040724467,"ct":1668778842171,"a_depth":4,"a":["apps","253003a3-5cbd-4d84-bfb2-38f60a741fb5","06b46bf8-ceeb-4fd4-bf6a-4a3da0cab4ad","208dc4fd-4c2c-4a8f-9c6d-94be86daac1d"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"f1e752a2-2069-44c1-bd51-28df1bd5422a","v":"797d0ff6ad7a310f","previous":{"v":"80e7804046d32564","p":"8fc08287-dbcc-4e41-9d5d-28e4cd828943","a":["apps","9d6ee173-26fe-4472-a271-7667f717094e","53b70eca-0cef-448b-9674-22a70a937eb1","8fc08287-dbcc-4e41-9d5d-28e4cd828943"]},"p":"84ede5f8-c5af-4113-8235-4b7fa528e265","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"additional-toolbar-buttons","template":"<ae-layout layout-id=\"75662fa7-5240-4613-be3b-4aa0226753d0\"\n           :param-document=\"document\"\n></ae-layout>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-09-02T08:49:13+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-09-02T08:49:28+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1662108568862,"ct":1662108553283,"a_depth":4,"a":["apps","9d6ee173-26fe-4472-a271-7667f717094e","53b70eca-0cef-448b-9674-22a70a937eb1","84ede5f8-c5af-4113-8235-4b7fa528e265"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"f97a5cd2-eeec-417f-90a3-99bb620ab5e7","v":"01cb0e47f1338ba9","previous":{"v":"0d222d89ada657cd"},"p":"73974d8e-7d35-4b59-acf0-84c529b194f1","f":{"id":"design-form","v":"baf08f1171a94bca","text":"Design"},"data":{"name":"additional-toolbar-buttons","template":"<div class=\"_CSS-actions\">\n  <button class=\"ae-button ae-button--primary\" @click.stop=\"$refs.dialog.show()\">\n    <ae-icon class=\"fa fa-file-csv\"></ae-icon>\n    csv-Datei\n  </button>\n\n  <ae-layout layout-id=\"a7c668bb-022c-4ffd-94bb-b3430fa73dbb\"\n            :param-document=\"document\"\n            :param-form-id=\"data.form.id\"\n            v-show=\"false\"\n            ref=\"csvExporter\"\n  ></ae-layout>\n\n  <button class=\"ae-button ae-button--secondary\" @click.stop=\"controller.rebuild()\" :disabled=\"locals.rebuildedOnce || locals.isOneTimeRun\">\n    <template v-if=\"locals.lastRebuild\">\n      Aktualisiert am\n      {{ Aeppic.DateTime.fromISO(locals.lastRebuild.created.at).toLocaleString(Aeppic.DateTime.DATETIME_SHORT) }}\n    </template>\n    <template v-else>\n      Aktualisieren\n    </template>\n  </button>\n\n  <template v-if=\"Aeppic.Account.data.isAdmin\">\n    <button class=\"ae-button\" @click.stop=\"controller._run()\">\n      DEVELOPER (run local - no writes)\n    </button>\n  </template>\n\n</div> \n \n<ae-dialog ref=\"dialog\" :dialog-size=\"{ height: 'var(--ae-dialog__height--medium)' }\">\n  <template #header=\"scope\">\n    <div class=\"_CSS-dialog__header\">\n      <div>Daten exportieren</div>\n      <button class=\"ae-button\" @click.stop=\"scope.close()\">\n        <ae-icon class=\"fa fa-times\"></ae-icon>\n      </button>\n    </div>\n  </template>\n  <template #body>\n    <div v-if=\"locals.exportConfig\">\n      <div class=\"ae-form-cell\" style=\"margin-bottom:var(--ae-space-3)\">\n        <label class=\"ae-form-cell__label\">\n          Export Datenfelder\n        </label>\n        <!-- fid {{ data.form.id }}\n        dtc {{ data.displayTableColumns }} \n        df {{ data.dateFields}} -->\n        <ae-control name=\"field-picker\" :document=\"locals.exportConfig\" field-name=\"fields\" :param-source-form-id=\"data.form.id\" :param-fields=\"data.displayTableColumns + ',' + data.dateFields\"></ae-control>\n      </div> \n\n      <!-- {{locals.exportConfig}} -->\n\n      <button class=\"ae-button ae-button--primary\" @click.stop=\"controller.createExport()\" :disabled=\"!locals.exportConfig.data.fields.length\">\n        <ae-icon class=\"fa fa-file-csv\"></ae-icon>\n        csv-Datei herunterladen (ohne Filter)\n      </button>\n    </div>\n  </template>\n</ae-dialog>   \n ","css":"._CSS-actions {\n  display: flex;\n  justify-content: flex-end;\n  xmargin-bottom: var(--ae-size-3);\n}\n\n._CSS-dialog__header {\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n}","controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Rebuild: '8ff9b052-45ad-41c7-9a86-978cad07eda2',\n      ExportConfig: '5f45d067-3bee-4a5b-84ec-e4156ec04603',\n      EvaluationsFolder: 'd6f5f171-30fd-4ac8-b3b1-908298bdc71d',\n    }\n \n    locals.rebuildedOnce = false\n    locals.lastRebuild = null\n    locals.exportConfig = null\n    locals.isOneTimeRun = document.a_forms.find(aForm => aForm === this.FORMS.EvaluationsFolder)\n    \n    locals.lastRebuild = await Aeppic.findOne(`p:${document.id} f.id:${this.FORMS.Rebuild}`, { sort: { field: 'created.at', descending: true } })\n    locals.exportConfig = await Aeppic.new(this.FORMS.ExportConfig, document)\n  } \n \n  async rebuild() {\n    locals.rebuildedOnce = true\n    const rebuildDocument = await Aeppic.new(this.FORMS.Rebuild, document)\n    Aeppic.save(rebuildDocument)\n\n    locals.lastRebuild = rebuildDocument\n  } \n\n  async createExport() {\n    const result = await Aeppic.Actions.run(['7ccb0102-e758-48ea-a39f-6da70d72593c'], {\n      dateColumns: data.dateColumns,\n      dateFields: data.dateFields,\n      dateFieldColors: data.dateFieldColors,\n      form: data.form,\n    })\n\n    const dateColumnsConfiguration = result[0].value\n    \n    const queryFieldsQuery = dateColumnsConfiguration.queryFields?.length ? `(${dateColumnsConfiguration.queryFields.join(' OR ')})` : ''\n    const query = `p:${document.id} f.id:${data.form.id} ${queryFieldsQuery}`\n\n    const documents = await Aeppic.find(query, { sort: 'data.projekt' , size: 9999 })\n\n\n    const [ fields, dateFields ] = locals.exportConfig.data.fields.reduce((result, field) => {\n      const isDateField = dateColumnsConfiguration.fields.find(f => f === field)\n\nconsole.log({ field }, { isDateField })\n\n      if (isDateField) {\n        result[1].push(field)\n      } else {\n        result[0].push(field)\n      }\n\n      return result\n    }, [[], []])\n\n\n    // const fieldsToInclude = [\n    //   'data.projekt.text',\n    //   // 'data.projektStatusDisplay',\n    //   ...dateColumnsConfiguration.tableColumns.filter(c => c.includes('planung'))\n    // ]\n \n\n    const dateColumnsToInclude = []\n    const dateColumnLabelsToInclude = []\n    \n    for (let i = 0; i <= dateColumnsConfiguration.tableColumns.length; i++) {\n      const field = dateColumnsConfiguration.fields[i]//?.replace('data.', '')\n\n      if (dateFields.includes(field)) {\n        dateColumnsToInclude.push(dateColumnsConfiguration.tableColumns[i])\n        dateColumnLabelsToInclude.push(dateColumnsConfiguration.labels[i])\n      }\n    }\n\n    console.log({dateColumnsConfiguration}, { fields }, { dateFields }, { dateColumnsToInclude }, {dateColumnLabelsToInclude})\n\n    const additionalHeaders = dateColumnLabelsToInclude\n\n    const numberFormatter = new Intl.NumberFormat('de-DE', { style: 'decimal'  })\n\n    const additionalColumns = documents.map(document => {\n      const row = dateColumnsToInclude.map(dateColumn => {\n        const dateColumnIndex = dateColumnsConfiguration.tableColumns.findIndex(c => c === dateColumn)\n        \n        const actualField = dateColumnsConfiguration.fields[dateColumnIndex]\n        const accessor = dateColumnsConfiguration.fieldAccesors[dateColumnIndex]\n\n        const value = this.resolveField(document, actualField)[0] \n        console.log(actualField, value, accessor)\n\n        if (!value || value === '{}') {\n          return null\n        } \n\n        const parsed = JSON.parse(value)[accessor]\n        return parsed ? numberFormatter.format(parsed) : parsed\n      })\n\n      return row\n    })\n\n    console.log('additional-toolbar-buttons', documents.length, additionalColumns)\n \n    $refs.csvExporter.$emit('export', { \n      // headers,\n      // rows,\n      documents,\n      additionalHeaders,\n      additionalColumns,\n      includeFields: fields,\n    })\n  }\n\n  async _run() {\n    const command = await Aeppic.Commands.execute('a7dee407-6856-40bb-8b14-3e0236b91639', document, { result: {} })\n\n    console.log(command)\n    // const steps = await Aeppic.getAll(document.data.steps)\n    // if (steps.some(step => !step)) {\n    //   throw new Error(`At least 1 document step is missing`)\n    // }\n\n    // const form = await Aeppic.get(document.data.form)\n    // if (!form) {\n    //   throw new Error(`Missing form`)\n    // }\n\n    // const [actions, paramsByStep, params] = steps.reduce((result, step) => {\n    //   result[0].push(step.data.action)\n\n    //   const parsedParams = step.data.parameters ? JSON.parse(step.data.parameters) : {}\n    //   result[1][step.id] = parsedParams\n    //   result[2] = { ...result[2], ...parsedParams }\n\n    //   return result\n    // }, ([[], {}, {}]))\n\n    // const actionGlobalResult = {}\n    // const actionResults = await Aeppic.Actions.run(actions, {\n    //   evaluation: document,\n    //   result: actionGlobalResult,\n    //   form,\n    //   params,\n    //   paramsByStep,\n    // })\n\n    // console.log('actionResults')\n    // console.table(actionResults)\n\n    // const errorIndex = actionResults.findIndex(result => !result.ok)\n    // if (errorIndex !== -1) {\n    //   throw new Error(`Error running steps: ${actionResults[errorIndex].error}`)\n    // }\n\n    // const lastActionResultWrites = actionResults.slice(-1)[0].writes\n\n    // console.log('lastActionResultWrites')\n    // console.table(lastActionResultWrites)\n    // await Aeppic.applyWrites(lastActionResultWrites)\n\n  }\n\n   resolveField(object, path) {\n    const parts = path.split('.')\n    let value = object\n\n    while (parts.length > 0) {\n      const part = parts.shift() \n\n      value = value[part]\n\n      if (value == null) {\n        if (part === 'raw') {\n          return [value]\n        }\n\n        return [undefined]\n      }\n\n      if (parts.length === 0) {\n        if (Array.isArray(value)) {\n          return value\n        } else {\n          return [value]\n        }\n      }\n\n      if (Array.isArray(value)) {\n        return value.map(v => this.resolveField(v, parts.join('.')))\n      }\n    }\n\n    if (value === object) {\n      return [null]\n    } else {\n      return [value]\n    }\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-06-29T12:59:30+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-09-26T07:26:39+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1695713199778,"ct":1624971570074,"a_depth":4,"a":["apps","75c6f72a-08a2-44f4-a29c-86b58be26f96","d0e84149-815a-4c38-a801-1664583fef16","73974d8e-7d35-4b59-acf0-84c529b194f1"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"fd81b700-fb45-4aab-85f3-af2e18496f36","v":"0ef2ec3ab1d5f026","previous":{"v":"initial"},"p":"afd2fd6f-ba35-45ce-8dbe-8d9c63f5f9d5","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"additional-toolbar-buttons","template":"<div>\n  <a :href=\"locals.zipDownloadLink\" target=\"_blank\">\n    <button class=\"ae-button ae-button--secondary\">\n      <ae-icon class=\"fa fa-download\"></ae-icon>\n      Belege ZIP\n    </button>\n  </a>\n</div>","css":"","controller":"init() {\n  locals.zipDownloadLink = `/api/services/41e10b87-b2e2-4534-a224-ebe1b728ff29/v1/zip?folderId=${document.id}&folderNoDepth=true`\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-01-04T14:34:18+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-01-04T14:35:14+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1672842914345,"ct":1672842858801,"a_depth":4,"a":["apps","85d3c028-a61c-4be8-93d0-4366bc45752f","25fda732-5296-4fab-8d4e-92c3e32ca2c0","afd2fd6f-ba35-45ce-8dbe-8d9c63f5f9d5"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"fdb44d0e-5d3f-4524-80b7-4d6b062fc400","v":"2ed522cda4d07f17","previous":{"v":"0987d4d3423e3272"},"p":"7105a939-989c-4154-96e8-44f17f556b2a","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"additional-toolbar-buttons","template":"<a v-if=\"locals.shareLink\" :href=\"locals.shareLink\" target=\"_blank\">\n  <button class=\"ae-button ae-button--secondary\">\n    <ae-icon class=\"fa fa-share-square\"></ae-icon>\n    Mängelmeldung\n  </button> \n</a>","css":"","controller":"class Controller {\n  async init() {\n    locals.shareLink = ''\n\n    const share = await Aeppic.findOne(`p:${document.id} f.id:804bed89-803a-4090-8b1b-857cab8ec6dd data.target:${document.id}`)\n\n    if (share) {\n      locals.shareLink = `/shared/${share.id}?auto`\n    }\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-05-04T08:37:39+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-08-18T12:59:19+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1660827559844,"ct":1651653459734,"a_depth":4,"a":["apps","86189c5a-b9f4-445a-879f-d94574960df0","15292d56-6806-4263-b6d0-9194687203e1","7105a939-989c-4154-96e8-44f17f556b2a"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"03a7cf01-fc9b-438c-a66a-4db45dfbbcb0","v":"initial","p":"ee4b6777-b620-43a9-9cde-7261dfc5c616","f":{"id":"design-form","v":"3385ac6766f32638","text":"Design"},"data":{"name":"additional-toolbar-informations","template":"","css":"._CSS {\r\n  display: flex;\r\n  flex-direction: row;\r\n  align-items: center;\r\n  flex:1;\r\n}","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-11-02T09:38:35+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-11-02T09:38:35+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1635845915919,"ct":1635845915919,"a_depth":4,"a":["apps","781ff5de-69db-49dc-99f0-f328b308cd7d","dbd0bd68-3479-4032-9303-9d51615c27a7","ee4b6777-b620-43a9-9cde-7261dfc5c616"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"03c82714-e1e3-42cc-a6b1-2cba1f20d0b5","v":"7f6142188751b0fd","p":"group","f":{"id":"design-form","v":"9bfe8e0cd909c1f0","text":"Design","client":"server"},"data":{"name":"additional-toolbar-informations","template":"<button class=\"ae-button\" v-if=\"data.systemManaged\" title=\"Diese Gruppe wird vom System verwaltet\" disabled>\n  <ae-icon class=\"fa fa-cogs\"></ae-icon>\n</button>\n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-05-08T09:00:45+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2020-06-30T10:53:26+00:00","by":"8e6c22aa-8c69-4ff8-919a-7032841cf636","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1593514406010,"ct":1593514406010,"a_depth":5,"a":["system","b2533f7b-ea85-4680-99ed-d8e11be641b9","0e6939d6-9b93-4165-b6bd-977e4da881f3","627f5b74-3baf-45f8-a1d3-a5936839b844","group"],"a_forms":["system-folder-form","folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[],"previous":{"v":"15707e15d9863402","f":{"id":"design-form","v":"74db9b6ed94b41d9","text":"Design","client":"server"}}},{"id":"49530828-1df7-47d7-8764-0625d3ebdb94","v":"0ee218618a705fde","previous":{"v":"ef556667834160a0"},"p":"fbb5234f-66e1-4545-b087-ff1961f9ceab","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"additional-toolbar-informations","template":"<!-- <div class=\"_CSS-type\" title=\"Dateityp\">\n  <ae-design style=\"margin-right: var(--ae-size-1);\" name=\"icon\" :document=\"document\"></ae-design>\n  <ae-design name=\"readable-type\" :document=\"document\"></ae-design>\n</div> -->\n<!-- <small>\n{{locals.isAvailable}}<br>\n{{locals.isActive}}\n</small>  -->\n\n<div v-if=\"Aeppic.Account && Aeppic.Account.data.isAdmin || locals.isActive\" class=\"_CSS-workflow\" :class=\"{ '_CSS-workflow--activeBecauseAdmin': !locals.isActive && Aeppic.Account && Aeppic.Account.data.isAdmin }\">\n  <!-- <button class=\"ae-button\" v-if=\"controller.canRelease()\" @click.stop=\"controller.release()\">\n    <ae-icon class=\"fa fa-badge\"></ae-icon>\n    Freigeben\n  </button> -->  \n  <div v-for=\"s of document.stamps\" v-if=\"s && locals.workflow && locals.workflow._cachedConfiguration && s.workflow.id === locals.workflow._cachedConfiguration.id\" class=\"_CSS-stamp\">\n    <ae-design name=\"icon\" :document=\"s\" style=\"margin-right:4px\"></ae-design>\n    <ae-design name=\"title\" :document=\"s\" style=\"margin-right:8px\"></ae-design>    \n  </div>\n  <button v-if=\"!params.readonly\" class=\"ae-button ae-button--secondary\" :class=\"controller.getTransitionClasses(t)\" v-for=\"t of locals.transitions\" @click.prevent.stop=\"controller.applyTransition(t)\" v-show=\"locals.allowedTransitions.has(t)\">\n    {{t.data.label||t.data.name}}\n  </button>\n  <!-- {{document.v}} -->\n</div>\n<!-- \n<div v-if=\"data.gueltigab\" class=\"_CSS-valid\">\n  <span style=\"margin-right: var(--ae-size-1);\">Gültig ab:</span>\n  <span>{{Aeppic.DateTime.fromISO(data.gueltigab).toLocaleString(Aeppic.DateTime.DATE_SHORT)}}</span>\n</div> -->\n","css":"._CSS {\n  display: flex;\n  align-items: center;\n  min-width: 1rem;\n}\n\n._CSS-type {\n  display: flex;\n}\n\n._CSS > * {\n  margin-right: var(--ae-size-2);\n}\n\n._CSS-workflow {\n  display: flex;\n  flex-direction: row;\n  align-items:center;\n}\n\n._CSS-workflow > button {\n  white-space: nowrap;\n}\n\n._CSS-stamp {\n   display: flex;\n  flex-direction: row;\n  align-items:center;\n  white-space: nowrap;\n  padding: 0 var(--ae-space-1);\n}\n\n._CSS-workflow > button.ae-button.warn {\n  background-color: transparent;\n  border: 1px solid rgba(170, 71, 71);\n  color: rgba(170, 71, 71);\n}\n\n._CSS-workflow > button.ae-button.warn:hover {\n  background-color: rgba(170, 71, 71) !important;\n  color: white !important;\n} \n\n\n._CSS-workflow--activeBecauseAdmin {\n  opacity: var(--ae-opacity-2);\n}","controller":"class Controller {\r\n  async init() {\r\n    const WORKFLOW = '06228df2-cd83-418a-be8c-15acfc7d49c3'\r\n    \r\n    locals.workflowId  = WORKFLOW\r\n    locals.isAvailable = false\r\n    locals.isActive = false\r\n    locals.transitions = null\r\n    locals.allowedTransitions = new Set()\r\n\r\n\r\n    Aeppic.watch(document.id, () => {\r\n      Aeppic.setTimeout(() => {\r\n        this.updateReleaseStatus()\r\n      }, 200)\r\n    })\r\n\r\n    const query = `p:${document.id}`\r\n\r\n    locals.workflow = new packages.DocumentWorkflow(document.id, { workflow: WORKFLOW, Aeppic })\r\n\r\n    Aeppic.find(query)\r\n    Aeppic.subscribe(query, () => {\r\n      this.updateReleaseStatus()\r\n    })\r\n \r\n    this.updateReleaseStatus()\r\n  }\r\n \r\n  async updateReleaseStatus() {\r\n    locals.isAvailable = await locals.workflow.isAvailable()\r\n    locals.isActive = await locals.workflow.isActive()\r\n\r\n\r\n    if (locals.isAvailable || locals.isActive) {\r\n      locals.transitions = await locals.workflow.availableTransitions()\r\n      \r\n      const allowedTransitions = new Set()\r\n\r\n      for (const t of locals.transitions) {\r\n        if (await locals.workflow.hasAccessToTransition(t)) {\r\n          allowedTransitions.add(t)\r\n        }\r\n      }\r\n\r\n      console.log('allowedTransitions', ...allowedTransitions.entries())\r\n      locals.allowedTransitions = allowedTransitions \r\n    } else {\r\n      locals.transitions = []\r\n      locals.allowedTransitions = null\r\n    }\r\n  }\r\n\r\n  async applyTransition(transition) {\r\n    let options = {\r\n      comment: undefined,\r\n      additionalDataDocument: undefined\r\n    }\r\n\r\n    if (transition.data.confirmationRequired) {\r\n      const textTemplate = transition.data.confirmationText || 'Are you sure ?'\r\n      const text = textTemplate.replace('${document.data.name}', document.data.name)\r\n      \r\n      const userHasConfirmed = packages.window.confirm(text)\r\n\r\n      if (!userHasConfirmed) {\r\n        return\r\n      }\r\n    }\r\n     \r\n    if (transition.data.toState) {\r\n      const reqs = await locals.workflow.getTransitionInfoRequirements(transition)\r\n\r\n      if (reqs) {\r\n        const { requiresComment } = reqs\r\n        if (requiresComment) {\r\n          const comment = prompt(transition.data.label || transition.data.name)\r\n\r\n          if (comment.trim() === 0) {\r\n            return\r\n          }\r\n\r\n          options.comment = comment\r\n        }\r\n      }\r\n    }\r\n\r\n    locals.workflow && locals.workflow.applyTransition(transition, options)\r\n  }\r\n\r\n  getTransitionClasses(transition) {\r\n    const { uiClasses } = transition.data\r\n\r\n    if (uiClasses && uiClasses.trim()) {\r\n      const classes = {}\r\n      \r\n      const classNames = uiClasses.split(' ')\r\n\r\n      for (const className of classNames) {\r\n        if (className.trim()) {\r\n          classes[className] = true\r\n        }\r\n      }\r\n\r\n      return classes\r\n    }\r\n  }\r\n}","packages":[{"id":"9980d952-e898-413a-af84-051795281aca","v":"ec401c39af23765f","text":"Workflow"},{"id":"10843fbf-4f0c-416b-be7d-42d6bbd0ae68","v":"0a739f173783284d","text":"Window"}],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-01-07T12:32:24+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2024-07-17T16:02:05+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1721224925446,"ct":1718866007053,"a_depth":4,"a":["apps","deeef973-ce03-4557-bf75-75a059001767","e7de598c-6f5a-4ab4-a33b-213ca86e489d","fbb5234f-66e1-4545-b087-ff1961f9ceab"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"4e453c36-4e20-4839-9f53-bd7bd8288e2b","v":"550dd69af09e002a","cloneOf":{"id":"d12926a9-fe75-49d7-8b3c-49d714a00e04","v":"372c7121f61356f6","text":"additional-toolbar-informations"},"originalCloneOf":{"id":"d12926a9-fe75-49d7-8b3c-49d714a00e04","v":"372c7121f61356f6","text":"additional-toolbar-informations"},"previous":{"v":"c868c5aba52df418"},"p":"dbee6e16-d63a-493c-bba6-505f79918f9f","f":{"id":"design-form","v":"65801907e0c30697","text":"Design"},"data":{"name":"additional-toolbar-informations","template":"<div v-if=\"locals.isActive\" class=\"_CSS-workflow\">\n  <div v-for=\"s of document.stamps\" class=\"_CSS-stamp\">\n    <ae-design name=\"icon\" :document=\"s\" style=\"margin-right:4px\"></ae-design>\n    <ae-design name=\"title\" :document=\"s\" style=\"margin-right:8px\"></ae-design>    \n  </div>\n  <button class=\"ae-button ae-button--secondary\" v-for=\"t of locals.transitions\" @click.prevent.stop=\"locals.workflow.applyTransition(t)\" :disabled=\"!locals.allowedTransitions.has(t)\">\n    {{t.data.label||t.data.name}}\n  </button>\n</div>\n","css":"._CSS {\n  display: flex;\n  align-items: center;\n}\n\n._CSS-type {\n  display: flex;\n}\n\n._CSS > * {\n  margin-right: var(--ae-size-2);\n}","controller":"class Controller {\r\n  async init() {\r\n    const RELEASE_PROCESS = 'bbd555c5-a65d-484e-9fed-7564a1c21ebc'\r\n    \r\n    locals.isAvailable = false\r\n    locals.isActive = false\r\n    locals.transitions = null\r\n    locals.allowedTransitions = new Set()\r\n    locals.workflow = new packages.DocumentWorkflow(document.id, { workflow: RELEASE_PROCESS, Aeppic })\r\n\r\n    Aeppic.watch(document.id, () => {\r\n      Aeppic.setTimeout(() => {\r\n        this.updateReleaseStatus()\r\n      }, 200)\r\n    })\r\n\r\n    Aeppic.subscribe(`p:${document.id}`, () => {\r\n      this.updateReleaseStatus()\r\n    })\r\n \r\n    this.updateReleaseStatus()\r\n  }\r\n \r\n  async updateReleaseStatus() {\r\n    locals.isAvailable = await locals.workflow.isAvailable()\r\n    locals.isActive = await locals.workflow.isActive()\r\n\r\n    if (locals.isAvailable || locals.isActive) {\r\n      locals.transitions = await locals.workflow.availableTransitions()\r\n      \r\n      const allowedTransitions = new Set()\r\n\r\n      for (const t of locals.transitions) {\r\n        if (await locals.workflow.hasAccessToTransition(t)) {\r\n          allowedTransitions.add(t)\r\n        }\r\n      }\r\n      console.log(...allowedTransitions.entries())\r\n      locals.allowedTransitions = allowedTransitions \r\n    } else {\r\n      locals.transitions = []\r\n      locals.allowedTransitions = null\r\n    }\r\n  }\r\n}","packages":[{"id":"9980d952-e898-413a-af84-051795281aca","v":"9bd48092c97d4291","text":"Workflow"}],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-06-24T12:54:35+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2021-12-07T14:28:26+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1638887306033,"ct":1593003275119,"a_depth":4,"a":["apps","45ada186-e9fd-451d-9dbd-2defc0b4f86f","4ec6a0e5-cf2d-4095-9b70-2e31a64d5679","dbee6e16-d63a-493c-bba6-505f79918f9f"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"6cf89a1a-2900-4217-a46b-ecb6a3657888","v":"e320918b17ce5770","previous":{"v":"5c68fcaa5e430402"},"p":"94886126-c88d-4ea0-b088-8ea5ad155b08","f":{"id":"design-form","v":"0061789efb5c5c29","text":"Design"},"data":{"name":"additional-toolbar-informations","template":"<div class=\"_CSS-no-recipients\" v-if=\"document.a_forms.includes('f85fbba8-1232-4ec7-9ca8-da9fc5b14109')\">\n  Eine Vorlage kann nicht versendet werden.\n</div>\n<div class=\"_CSS-no-recipients\" v-else-if=\"!data.empfaenger.length\">\n  Versenden nicht möglich. Empfänger müssen ausgewählt werden.\n</div>\n\n","css":"._CSS-no-recipients {\n  background: var(--ae-accent-red-100);\n  color: var(--ae-accent-red-900);\n  padding: var(--ae-space-2);\n  border-radius: var(--ae-border-radius);\n  border: var(--ae-border-width) solid var(--ae-accent-red-900);\n}","controller":"class Controller {\n  async init() {\n    locals.isManager = false\n    const results = await Aeppic.Actions.run(['7c4c6268-b24a-43c4-b876-a2a07f13942c'], { Account: Aeppic.Account, target: document })\n    locals.isManager = results[0].value === true\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-11-24T11:25:07+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-01-07T10:27:53+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1610015273083,"ct":1606217107496,"a_depth":4,"a":["apps","f416e371-07cc-4987-a6de-5934ef5ff3e4","1096c5df-2773-4914-9455-dc54e0f3e0e5","94886126-c88d-4ea0-b088-8ea5ad155b08"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"896a3195-0e57-46ef-9c0a-6f804f64172d","v":"a37ce9ef10513321","previous":{"v":"4906cc907112dc4b"},"p":"e170bb6c-f326-446d-870a-ada9d9f67230","f":{"id":"design-form","v":"e37099c040ec46e9","text":"Design"},"data":{"name":"additional-toolbar-informations","template":"<ae-design v-if=\"!!data.link\" name=\"zip-download-and-statistics\" :document=\"document\" :params=\"params\" v-on=\"$listeners\"></ae-design>\n<ae-design v-else name=\"applications-download\" :document=\"document\" :params=\"params\" v-on=\"$listeners\"></ae-design>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-06-16T13:55:25+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-07-23T11:06:24+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1627038384509,"ct":1623851725314,"a_depth":4,"a":["apps","3fbe0efd-713a-457a-a34c-3a12aa19d6bb","0fb162f4-0f78-4c1e-aad2-43c27e6d98cb","e170bb6c-f326-446d-870a-ada9d9f67230"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"9170ef95-86e6-4245-bfd1-671478407b2e","v":"a2174cecbfab3ed0","p":"9ae84206-e0bb-4d39-9200-066c2eaf0fe3","f":{"id":"design-form","v":"22a757f630104010","text":"Design"},"data":{"name":"additional-toolbar-informations","template":"<div v-if=\"locals.isActive\" class=\"_CSS-workflow\">\n  <div v-for=\"s of document.stamps\" class=\"_CSS-stamp\">\n    <ae-design name=\"icon\" :document=\"s\" style=\"margin-right:4px\"></ae-design>\n    <ae-design name=\"title\" :document=\"s\" style=\"margin-right:8px\"></ae-design>    \n  </div>\n  <button class=\"ae-button ae-button--secondary\" v-for=\"t of locals.transitions\" @click.prevent.stop=\"locals.workflow.applyTransition(t)\" :disabled=\"!locals.allowedTransitions.has(t)\">\n    {{t.data.label||t.data.name}}\n  </button>\n</div>\n","css":"._CSS-workflow {\n  display: flex;\n  flex-direction: row;\n  align-items: center;\n}\n\n._CSS { \n  display: flex;\n  align-items: center;\n  white-space:nowrap;\n}\n\n._CSS-stamp {\n  display: flex;\n  flex-direction: row;\n}\n\n._CSS-type {\n  display: flex;\n}\n\n._CSS > * {\n  margin-right: var(--ae-size-2);\n}","controller":"class Controller {\n  async init() {\n    const WORKFLOW = 'bb01a25a-d5bb-4528-954a-170ec1c9a4bb'\n     \n    locals.isAvailable = false\n    locals.isActive = false\n    locals.transitions = null\n    locals.allowedTransitions = new Set()\n    locals.workflow = new packages.DocumentWorkflow(document.id, { workflow: WORKFLOW, Aeppic })\n\n    Aeppic.watch(document.id, () => {\n      Aeppic.setTimeout(() => {\n        this.updateReleaseStatus()\n      }, 200)\n    })\n\n    Aeppic.subscribe(`p:${document.id}`, () => {\n      this.updateReleaseStatus()\n    })\n \n    this.updateReleaseStatus()\n\n    const anfragen = await Aeppic.find('p:23465281-2e1d-4d15-adbf-1f11e6ee947f f.id:9ae84206-e0bb-4d39-9200-066c2eaf0fe3')\n    for (const a of anfragen) {\n      await this.startWorkflowOnDocument(a.id)\n    }\n  }\n\n  async startWorkflowOnDocument(documentId) {\n    const workflow = locals.workflow\n\n    if (!await workflow.isAvailable()) {\n      return\n    }\n\n    if (await workflow.isActive()) {\n      return\n    }\n\n    const transitions = await Aeppic.getAll(await workflow.allTransitions())\n\n    if (await workflow.isActive()) {\n      return\n    }\n\n    const startTransition = transitions.find(t => t.data.condition === 'ENTRY')\n    await workflow.applyTransition(startTransition)\n  }\n \n  async updateReleaseStatus() {\n    // debugger\n    locals.isAvailable = await locals.workflow.isAvailable()\n    locals.isActive = await locals.workflow.isActive()\n\n    if (locals.isAvailable || locals.isActive) {\n      locals.transitions = await locals.workflow.availableTransitions()\n      \n      const allowedTransitions = new Set()\n\n      for (const t of locals.transitions) {\n        //if (await locals.workflow.hasAccessToTransition(t)) {\n          allowedTransitions.add(t)\n        //}\n      }\n\n      console.log(...allowedTransitions.entries())\n      locals.allowedTransitions = allowedTransitions \n    } else {\n      locals.transitions = []\n      locals.allowedTransitions = null\n    }\n  }\n}","packages":[{"id":"9980d952-e898-413a-af84-051795281aca","v":"9bd48092c97d4291","text":"Workflow"}],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-12-07T09:37:54+00:00","by":"427610a9-39dc-4014-9176-5f72aeb23263","from":"","client":"server"},"modified":{"at":"2023-01-18T16:38:20+00:00","by":"427610a9-39dc-4014-9176-5f72aeb23263","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1721206352322,"ct":1721206352322,"a_depth":4,"a":["apps","deeef973-ce03-4557-bf75-75a059001767","e7de598c-6f5a-4ab4-a33b-213ca86e489d","9ae84206-e0bb-4d39-9200-066c2eaf0fe3"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[],"previous":{"v":"15b66731c868a9ff","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"}},"meta":{"modified":{"at":"2024-07-17T08:52:32+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"9ccea41a-c827-4186-abf8-e6d2e5597196","v":"40997a16a08d04dc","previous":{"v":"c78ab2f04baa5e81"},"p":"8fef472f-9220-484b-99cd-bb80f208f795","f":{"id":"design-form","v":"e37099c040ec46e9","text":"Design"},"data":{"name":"additional-toolbar-informations","template":"<button class=\"ae-button ae-button--primary _CSS-button--new-uploads\"\n        :title=\"locals.downloadInfo && locals.downloadInfo.data.lastDownloadDate ? 'seit ' + Aeppic.DateTime.fromISO(locals.downloadInfo.data.lastDownloadDate).toLocaleString(Aeppic.DateTime.DATETIME_SHORT_WITH_SECONDS)  : '' \"\n        @click.stop=\"controller.downloadChanged()\"\n        :disabled=\"locals.downloadRunning || !locals.statistics.changed\"\n>\n  <span>\n  <ae-icon v-if=\"locals.downloadRunning\" class=\"fa fa-circle-notch fa-spin\"></ae-icon> \n  <ae-icon v-else class=\"fa fa-download\"></ae-icon> \n    Neue\n    ({{ locals.statistics.changed }})\n  </span>\n  <span v-if=\"locals.downloadInfo && locals.downloadInfo.data.lastDownloadDate\" class=\"_CSS-button--new-uploads__time\">\n    {{ Aeppic.DateTime.fromISO(locals.downloadInfo.data.lastDownloadDate).toLocaleString(Aeppic.DateTime.DATETIME_SHORT_WITH_SECONDS) }}\n  </span>\n  <a ref=\"linkChanged\" :href=\"locals.zipDownloadUrlNew\" target=\"_blank\"></a>\n</button>\n\n\n<button class=\"ae-button ae-button--secondary\" :disabled=\"!locals.statistics.all || locals.statistics.selected > 900\" @click.stop=\"$refs.linkZip.click()\">\n  <template v-if=\"locals.statistics.selected\">\n    <ae-icon class=\"fa fa-download\"></ae-icon> Auswahl \n    <template v-if=\"locals.statistics.selected > 900\">zu groß (max 900)</template>\n    <template v-else-if=\"locals.statistics.selected\">({{ locals.statistics.selected }})</template>\n      <a :href=\"locals.zipDownloadUrlSelection\" target=\"_blank\" ref=\"linkZip\"> </a> \n  </template>\n  <template v-else>\n    <ae-icon class=\"fa fa-download\"></ae-icon> Alle ({{ locals.statistics.all }})\n    <a :href=\"locals.zipDownloadUrl\" target=\"_blank\" ref=\"linkZip\"> </a> \n  </template>\n</button>\n\n<button class=\"ae-button ae-button--secondary\" :disabled=\"!locals.statistics.all || locals.statistics.selected > 900\" @click.stop=\"$refs.linkXlsxExport.click()\">\n  <ae-icon class=\"fa fa-file-excel\"></ae-icon>\n  <template v-if=\"locals.statistics.selected\">\n    Auswahl\n    <template v-if=\"locals.statistics.selected > 900\">zu groß (max 900)</template>\n    <template v-else>({{ locals.statistics.selected }})</template>\n    <a :href=\"locals.xlsDownloadUrlSelection\" target=\"_blank\" ref=\"linkXlsxExport\"> </a> \n  </template>\n  <template v-else>\n    Alle ({{ locals.statistics.all }})\n    <a :href=\"locals.xlsDownloadUrl\" target=\"_blank\" ref=\"linkXlsxExport\"> </a> \n  </template>\n</button>\n\n\n<div class=\"bp-card _CSS-statistics\">\n  <div class=\"_CSS-statistics__label\">\n    Statistiken\n  </div>\n  <div v-if=\"locals.statistics.started\" class=\"_CSS-value\" title=\"Gestartete, aber nicht beendete, Bewerbungen\">\n    <ae-icon class=\"fa fa-user-times\" style=\"margin-right: var(--ae-space-1);\"></ae-icon> {{ locals.statistics.started }}\n  </div>\n  <ae-icon class=\"fal fa-angle-double-right\"></ae-icon>\n  <div v-if=\"locals.statistics.all\" class=\"_CSS-value\" title=\"Beendete Bewerbungen\">\n    <ae-icon class=\"fa fa-user-check\" style=\"margin-right: var(--ae-space-1);\"></ae-icon> {{ locals.statistics.all }}\n  </div>\n</div>","css":"._CSS {\n  display: flex;\n  xalign-items: center;\n  padding: 1px 0;\n}\n\n._CSS-value {\n  margin: 0 var(--ae-space-2);\n}\n\n._CSS-statistics {\n  background: var(--ae-background-100);\n  margin-left: var(--ae-space-6);\n}\n._CSS-statistics__label {\n  font-size: var(--ae-font-size-3);\n  margin-right: var(--ae-space-2);\n}\n\n._CSS ._CSS-button--new-uploads {\n  display: flex;\n  flex-flow: column;\n  justify-content: center;\n}\n\n._CSS-button--new-uploads__time {\n  font-size: var(--ae-font-size-1);\n}","controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      DownloadInfo: '81265a15-9225-4401-8ccf-c041b8502537',\n      Application: '009c0da4-718f-43d0-964a-647e30074d94',\n    }\n\n    locals.downloadRunning = false\n    this.applicationsSub = null\n\n    this.baseZipUrl = '/api/services/18047369-674f-4ba5-bf5d-bba493f4f9bb/v2/zip'\n    this.baseXlsUrl = '/api/services/6085956b-0346-4b85-8cfe-1cb9cc1d1303/v1/models'\n\n    locals.zipDownloadUrl = `${this.baseZipUrl}?projectId=${document.id}`\n    locals.zipDownloadUrlNew = `${this.baseZipUrl}?projectId=${document.id}&onlyNew=true`\n    locals.zipDownloadUrlSelection = ''\n    locals.xlsDownloadUrl = `${this.baseXlsUrl}?projectId=${document.id}`\n    locals.xlsDownloadUrlSelection = ''\n\n    locals.downloadInfo = null\n    locals.statistics = {\n      all: 0,\n      changed: 0,\n      started: 0,\n      selected: 0,\n    }\n\n    this.debouncedUpdatedSelectedUrl = Aeppic.debounce(this.updateSelectedUrl, 250, this)\n\n    this.onChange = () => this.onSelectionsChange()\n    packages.Selections.addOnChangeHandler(this.onChange)\n\n    this.onSelectionsChange()\n\n    Aeppic.subscribe(`p:${document.id} f.id:${this.FORMS.DownloadInfo} data.account.id:${Aeppic.Account.id}`, async (docs) => {\n      const info = docs[0]\n\n      // FIXME: subscribe is broken!!! got an event with the correct info, then an empty docs array. so try to guard against that behaviour\n      if (!info && locals.downloadInfo) {\n        console.warn('FIXME: broken subscription')\n        return\n      }\n\n    \n      locals.downloadInfo = info\n      await this.subscribeApplication()\n\n      locals.downloadRunning = false\n    })\n\n\n    await this.subscribeApplication()\n  }\n\n  async subscribeApplication() {\n    const queryString = `p:${document.id} f.id:${this.FORMS.Application}`\n    const findOptions = {\n      size: 9999,\n    }\n\n    this.applicationsSub = Aeppic.updateSubscription(this.applicationsSub, queryString, findOptions, async (all) => {\n      const done = all.filter(application => application.data.done)\n      const notFinished = all.length - done.length\n\n      locals.statistics.all = done.length\n      locals.statistics.started = notFinished\n\n      if (!locals.downloadInfo || !locals.downloadInfo.data.lastDownloadDate) {\n        locals.statistics.changed = done.length\n        return\n      }\n\n      const intervalOptions = {\n        start: locals.downloadInfo.data.lastDownloadDate, \n        fieldName: 'modified.at',\n      }\n\n      const changed = packages.SearchHelpers.filterDocumentsToInterval(Aeppic, intervalOptions, done)\n      // const changed = await packages.SearchHelpers.findInterval(Aeppic, intervalOptions, `${queryString} data.done:true`, findOptions)\n      locals.statistics.changed = changed.length\n    })\n  }\n\n  downloadChanged() {\n    locals.downloadRunning = true\n\n    $refs.linkChanged.click() \n  }\n\n  async updateSelectedUrl() {\n    console.log('updateSelectedUrl')\n    const queryString = this.selection?.result()\n\n    if (queryString) {\n      const applications = await Aeppic.find(queryString, { size: 9999 })\n      locals.statistics.selected = applications.length\n\n      if (locals.statistics.all === locals.statistics.selected) {\n        locals.zipDownloadUrlSelection = locals.zipDownloadUrl\n        locals.xlsDownloadUrlSelection = locals.xlsDownloadUrl\n        return\n      }\n\n      const urlString = applications.map(application => `modelIds=${application.id}`).join('&')\n      locals.zipDownloadUrlSelection = `${this.baseZipUrl}?${urlString}`\n      locals.xlsDownloadUrlSelection = `${this.baseXlsUrl}?${urlString}`\n    } else {\n      locals.statistics.selected = 0\n      locals.zipDownloadUrlSelection = ''\n      locals.xlsDownloadUrlSelection = ''\n    }\n  }\n\n\n  onSelectionsChange() {\n    const selection = this.selection\n\n    if (selection) {\n      this.onEntiresChange = () => {\n        this.debouncedUpdatedSelectedUrl() \n      }\n\n      selection.addOnChangeHandler(this.onEntiresChange)\n\n      // this.updateSelectedUrl()\n    }\n  }\n\n  get selection() {\n    return packages.Selections.get(document.f.id)\n  }\n\n  destroy() {\n    if (packages.Selections) {\n      packages.Selections.removeOnChangeHandler(this.onChange)\n    }\n\n    if (this.selection) {\n      this.selection.removeOnChangeHandler(this.onEntiresChange)\n    }\n  }\n}\n","packages":[{"id":"9fbc0645-b97a-4b98-8520-02670f21ac0b","v":"262622e3b5ee4583","text":"Aeppic Search Helpers"},{"id":"d648078c-4579-4023-a4ec-b7b9cf639b70","v":"7b447f9cef26ec92","text":"Selection Manager v2"}],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-06-16T13:55:34+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-07-23T10:48:40+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1627037320957,"ct":1623851734999,"a_depth":4,"a":["apps","3fbe0efd-713a-457a-a34c-3a12aa19d6bb","0fb162f4-0f78-4c1e-aad2-43c27e6d98cb","8fef472f-9220-484b-99cd-bb80f208f795"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"bdf18bc0-49cf-4787-b67e-aba905b98ace","v":"5600c00660101009","cloneOf":{"id":"fc953f79-63dc-405e-9b25-ecfcc4da64e8","v":"8e0072bd19d657ff","text":"additional-toolbar-informations"},"originalCloneOf":{"id":"fc953f79-63dc-405e-9b25-ecfcc4da64e8","v":"8e0072bd19d657ff","text":"additional-toolbar-informations"},"previous":{"v":"14a50c3370d421d6"},"p":"43420696-8097-4fc1-88e5-c69df9821470","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"additional-toolbar-informations","template":"<div class=\"_CSS-line\">\n<ae-layout layout-id=\"240e8d9d-eb21-4759-85c5-13d085e0219f\" :param-document=\"document\"></ae-layout>\n</div>","css":"._CSS-line {\n  display: flex;\n  gap: var(--ae-space-1);\n}","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-09-05T15:18:47+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-09-05T15:19:24+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1662391164585,"ct":1662391127468,"a_depth":4,"a":["apps","089481c4-a42f-4a98-9bc9-12e9f1131f4b","5fa71c32-0186-4007-92a9-f03a32b0ff33","43420696-8097-4fc1-88e5-c69df9821470"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"d12926a9-fe75-49d7-8b3c-49d714a00e04","v":"7cbe35c6fa966e89","previous":{"v":"dec78e3f15a2c65d"},"p":"6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2","f":{"id":"design-form","v":"65801907e0c30697","text":"Design"},"data":{"name":"additional-toolbar-informations","template":"<!-- <div class=\"_CSS-type\" title=\"Dateityp\">\n  <ae-design style=\"margin-right: var(--ae-size-1);\" name=\"icon\" :document=\"document\"></ae-design>\n  <ae-design name=\"readable-type\" :document=\"document\"></ae-design>\n</div> -->\n<!-- <small>\n{{locals.isAvailable}}<br>\n{{locals.isActive}}\n</small> -->\n\n<div v-if=\"locals.isActive\" class=\"_CSS-workflow\">\n  <!-- <button class=\"ae-button\" v-if=\"controller.canRelease()\" @click.stop=\"controller.release()\">\n    <ae-icon class=\"fa fa-badge\"></ae-icon>\n    Freigeben\n  </button> --> \n  <div v-for=\"s of document.stamps\" class=\"_CSS-stamp\">\n    <ae-design name=\"icon\" :document=\"s\" style=\"margin-right:4px\"></ae-design>\n    <ae-design name=\"title\" :document=\"s\" style=\"margin-right:8px\"></ae-design>    \n  </div>\n  <button v-if=\"!params.readonly\" class=\"ae-button ae-button--secondary\" :class=\"controller.getTransitionClasses(t)\" v-for=\"t of locals.transitions\" @click.prevent.stop=\"controller.applyTransition(t)\" v-show=\"locals.allowedTransitions.has(t)\">\n    {{t.data.label||t.data.name}}\n  </button>\n  <!-- {{document.v}} -->\n</div>\n<!-- \n<div v-if=\"data.gueltigab\" class=\"_CSS-valid\">\n  <span style=\"margin-right: var(--ae-size-1);\">Gültig ab:</span>\n  <span>{{Aeppic.DateTime.fromISO(data.gueltigab).toLocaleString(Aeppic.DateTime.DATE_SHORT)}}</span>\n</div> -->\n","css":"._CSS {\n  display: flex;\n  align-items: center;\n  min-width: 1rem;\n}\n\n._CSS-type {\n  display: flex;\n}\n\n._CSS > * {\n  margin-right: var(--ae-size-2);\n}\n\n._CSS-workflow {\n  display: flex;\n  flex-direction: row;\n  align-items:center;\n}\n\n._CSS-workflow > button {\n  white-space: nowrap;\n}\n\n._CSS-stamp {\n   display: flex;\n  flex-direction: row;\n  align-items:center;\n  white-space: nowrap;\n  padding: 0 var(--ae-space-1);\n}\n\n._CSS-workflow > button.ae-button.warn {\n  background-color: transparent;\n  border: 1px solid rgba(170, 71, 71);\n  color: rgba(170, 71, 71);\n}\n\n._CSS-workflow > button.ae-button.warn:hover {\n  background-color: rgba(170, 71, 71) !important;\n  color: white !important;\n} ","controller":"class Controller {\r\n  async init() {\r\n    const RELEASE_PROCESS = 'bbd555c5-a65d-484e-9fed-7564a1c21ebc'\r\n    \r\n    locals.isAvailable = false\r\n    locals.isActive = false\r\n    locals.transitions = null\r\n    locals.allowedTransitions = new Set()\r\n\r\n    Aeppic.watch(document.id, () => {\r\n      Aeppic.setTimeout(() => {\r\n        this.updateReleaseStatus()\r\n      }, 200)\r\n    })\r\n\r\n    const query = `p:${document.id}`\r\n\r\n    locals.workflow = new packages.DocumentWorkflow(document.id, { workflow: RELEASE_PROCESS, Aeppic })\r\n\r\n    Aeppic.find(query)\r\n    Aeppic.subscribe(query, () => {\r\n      this.updateReleaseStatus()\r\n    })\r\n \r\n    this.updateReleaseStatus()\r\n  }\r\n \r\n  async updateReleaseStatus() {\r\n    locals.isAvailable = await locals.workflow.isAvailable()\r\n    locals.isActive = await locals.workflow.isActive()\r\n\r\n    if (locals.isAvailable || locals.isActive) {\r\n      locals.transitions = await locals.workflow.availableTransitions()\r\n      \r\n      const allowedTransitions = new Set()\r\n\r\n      for (const t of locals.transitions) {\r\n        if (await locals.workflow.hasAccessToTransition(t)) {\r\n          allowedTransitions.add(t)\r\n        }\r\n      }\r\n      console.debug({ allowedTransitions: [...allowedTransitions.entries()] })\r\n      locals.allowedTransitions = allowedTransitions \r\n    } else {\r\n      locals.transitions = []\r\n      locals.allowedTransitions = null\r\n    }\r\n  }\r\n\r\n  async applyTransition(transition) {\r\n    if (transition.data.confirmationRequired) {\r\n      const textTemplate = transition.data.confirmationText || 'Are you sure ?'\r\n      const text = textTemplate.replace('${document.data.name}', document.data.name)\r\n      \r\n      const userHasConfirmed = packages.window.confirm(text)\r\n\r\n      if (!userHasConfirmed) {\r\n        return\r\n      }\r\n    }\r\n     \r\n    locals.workflow && locals.workflow.applyTransition(transition)\r\n\r\n\r\n  }\r\n\r\n  getTransitionClasses(transition) {\r\n    const { uiClasses } = transition.data\r\n\r\n    if (uiClasses && uiClasses.trim()) {\r\n      const classes = {}\r\n      \r\n      const classNames = uiClasses.split(' ')\r\n\r\n      for (const className of classNames) {\r\n        if (className.trim()) {\r\n          classes[className] = true\r\n        }\r\n      }\r\n\r\n      return classes\r\n    }\r\n  }\r\n}","packages":[{"id":"9980d952-e898-413a-af84-051795281aca","v":"ec401c39af23765f","text":"Workflow"},{"id":"10843fbf-4f0c-416b-be7d-42d6bbd0ae68","v":"0a739f173783284d","text":"Window"}],"aliases":[],"description":""},"locks":[],"created":{"at":"2019-05-03T13:06:33+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2023-11-06T13:43:51+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1699278231952,"ct":1556888793643,"a_depth":4,"a":["apps","3d43a3f5-fea4-488d-9fc1-9dee5e694623","7c30f282-2b84-4976-8735-ba78662ea5e6","6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"fc953f79-63dc-405e-9b25-ecfcc4da64e8","v":"8e0072bd19d657ff","previous":{"v":"a51b1e3046b914a8"},"p":"5475727b-0e0c-412a-8452-23b9c5b242f2","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"additional-toolbar-informations","template":"<div class=\"_CSS-line\">\n<ae-layout layout-id=\"240e8d9d-eb21-4759-85c5-13d085e0219f\" :param-document=\"document\"></ae-layout>\n</div>","css":"._CSS-line {\n  display: flex;\n  gap: var(--ae-space-1);\n}","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-10-04T11:09:56+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-06-23T09:37:06+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1655977026926,"ct":1633345796581,"a_depth":4,"a":["apps","9d6ee173-26fe-4472-a271-7667f717094e","6743ef9a-c21b-443f-91b8-4dd86886ee8c","5475727b-0e0c-412a-8452-23b9c5b242f2"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"ffc604d7-5238-4c7f-89e0-db46aa4f6d2e","v":"e01a1c8a5ea46189","previous":{"v":"118f5648b433182d"},"p":"0bb3d600-faf0-4a5c-b49f-7994d234ae76","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"additional-toolbar-informations","template":"\n<div v-show=\"Aeppic.Account?.data.allowDevMode\" class=\"font-mono text-xs\">\nisAvailable: {{locals.isAvailable}}<br>\nisActive: {{locals.isActive}}\n</div>\n\n\n<div v-if=\"locals.isActive\" class=\"_CSS-workflow\">\n  <div v-for=\"s of document.stamps\" class=\"_CSS-stamp\">\n    <ae-design name=\"icon\" :document=\"s\" style=\"margin-right:4px\"></ae-design>\n    <ae-design name=\"title\" :document=\"s\" style=\"margin-right:8px\"></ae-design>    \n  </div>\n  <button v-if=\"!params.readonly\" class=\"ae-button ae-button--secondary\" :class=\"controller.getTransitionClasses(t)\" v-for=\"t of locals.transitions\" @click.prevent.stop=\"controller.applyTransition(t)\" v-show=\"locals.allowedTransitions.has(t)\">\n    {{t.data.label||t.data.name}}\n  </button>\n</div>\n ","css":"._CSS {\n  display: flex;\n  align-items: center;\n  min-width: 1rem;\n}\n\n._CSS-type {\n  display: flex;\n}\n\n._CSS > * {\n  margin-right: var(--ae-size-2);\n}\n\n._CSS-workflow {\n  display: flex;\n  flex-direction: row;\n  align-items:center;\n}\n\n._CSS-workflow > button {\n  white-space: nowrap;\n}\n\n._CSS-stamp {\n   display: flex;\n  flex-direction: row;\n  align-items:center;\n  white-space: nowrap;\n  padding: 0 var(--ae-space-1);\n}\n\n._CSS-workflow > button.ae-button.warn {\n  background-color: transparent;\n  border: 1px solid rgba(170, 71, 71);\n  color: rgba(170, 71, 71);\n}\n\n._CSS-workflow > button.ae-button.warn:hover {\n  background-color: rgba(170, 71, 71) !important;\n  color: white !important;\n} ","controller":"class Controller {\r\n  async init() {\r\n    const PROCESS = '50fed9fd-9a25-4420-9e1c-3546b937bb6b'\r\n    \r\n    locals.isAvailable = false\r\n    locals.isActive = false\r\n    locals.transitions = null\r\n    locals.allowedTransitions = new Set()\r\n\r\n    Aeppic.watch(document.id, () => {\r\n      Aeppic.setTimeout(() => {\r\n        this.updateReleaseStatus()\r\n      }, 200)\r\n    })\r\n\r\n    const query = `p:${document.id}`\r\n\r\n    locals.workflow = new packages.DocumentWorkflow(document.id, { workflow: PROCESS, Aeppic })\r\n\r\n    Aeppic.find(query)\r\n    Aeppic.subscribe(query, () => {\r\n      this.updateReleaseStatus()\r\n    })\r\n \r\n    this.updateReleaseStatus()\r\n  }\r\n \r\n  async updateReleaseStatus() {\r\n    locals.isAvailable = await locals.workflow.isAvailable()\r\n    locals.isActive = await locals.workflow.isActive()\r\n\r\n    if (locals.isAvailable || locals.isActive) {\r\n      locals.transitions = await locals.workflow.availableTransitions()\r\n      \r\n      const allowedTransitions = new Set()\r\n\r\n      for (const t of locals.transitions) {\r\n        if (await locals.workflow.hasAccessToTransition(t)) {\r\n          allowedTransitions.add(t)\r\n        }\r\n      }\r\n      console.log(...allowedTransitions.entries())\r\n      locals.allowedTransitions = allowedTransitions \r\n    } else {\r\n      locals.transitions = []\r\n      locals.allowedTransitions = null\r\n    }\r\n  }\r\n\r\n  async applyTransition(transition) {\r\n    if (transition.data.confirmationRequired) {\r\n      const textTemplate = transition.data.confirmationText || `Möchten Sie die Aktion \"${transition.data.label}\" ausführen? `\r\n      const text = textTemplate.replace('${document.data.name}', document.data.name)\r\n      \r\n      const userHasConfirmed = packages.window.confirm(text)\r\n\r\n      if (!userHasConfirmed) {\r\n        return\r\n      }\r\n    }\r\n     \r\n    locals.workflow && locals.workflow.applyTransition(transition)\r\n\r\n\r\n  }\r\n\r\n  getTransitionClasses(transition) {\r\n    const { uiClasses } = transition.data\r\n\r\n    if (uiClasses && uiClasses.trim()) {\r\n      const classes = {}\r\n      \r\n      const classNames = uiClasses.split(' ')\r\n\r\n      for (const className of classNames) {\r\n        if (className.trim()) {\r\n          classes[className] = true\r\n        }\r\n      }\r\n\r\n      return classes\r\n    }\r\n  }\r\n} ","packages":[{"id":"9980d952-e898-413a-af84-051795281aca","v":"ec401c39af23765f","text":"Workflow"},{"id":"10843fbf-4f0c-416b-be7d-42d6bbd0ae68","v":"0a739f173783284d","text":"Window"}],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-11-15T08:58:31+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-04-25T14:30:24+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1682433024342,"ct":1681389760590,"a_depth":4,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","0bb3d600-faf0-4a5c-b49f-7994d234ae76"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"c31af952-891f-4941-ab1d-13f46700c8f6","v":"ebeb8cb8dd954974","previous":{"v":"initial"},"p":"17c3a5d3-90ba-4592-961b-0800873ef9c1","f":{"id":"design-form","v":"65801907e0c30697","text":"Design"},"data":{"name":"additional-toolbar-informations.old","template":"<div class=\"_CSS-info\">\n  <div style=\"display:flex;\">\n    <ae-design v-for=\"verantwortlich of data.verantwortlich\" :document=\"verantwortlich\" name=\"avatar--tiny\"></ae-design>\n  </div>\n  <span v-if=\"data.bis\">{{ Aeppic.DateTime.fromISO(data.bis).toLocaleString() }}</span>\n  <span v-if=\"data.beschreibung\" style=\"overflow: hidden;text-overflow:ellipsis;white-space:nowrap;\">{{ data.beschreibung }}</span>\n  <span v-if=\"data.anhaenge.length\"><ae-icon class=\"far fa-paperclip\"></ae-icon> {{ data.anhaenge.length }}</span>\n</div>","css":"._CSS {\n  display: flex;\n}\n\n._CSS-info {\n  padding-left: 15px;\n  display: flex;\n  align-items: center;\n  overflow: hidden;\n  white-space: nowrap;\n  text-overflow: ellipsis;\n}\n\n._CSS-info > *~* {\n  margin: 0 8px;\n}","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2019-05-03T13:06:31+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2020-06-12T13:40:42+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1591969242096,"ct":1556888791528,"a_depth":4,"a":["apps","5acfd7a2-33e4-498a-9150-71e1ab772bfc","20c92864-6a81-4006-96f9-b78f473cd129","17c3a5d3-90ba-4592-961b-0800873ef9c1"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["system","fallback-designs"],"a_depth":2,"a_forms":["system-folder-form","folder"],"created":{"at":"2022-04-05T13:42:35+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1720684627122,"data":{"aliases":[],"controller":"class Controller {\n  init() {\n    const address = this.findAdressField()\n    locals.adressField = address\n    if (!address) return\n\n    const streetPart = [address.street, address.streetNumber]\n      .filter(Boolean)\n      .join(' ')\n\n    const cityPart = [address.postalCode, address.city]\n      .filter(Boolean)\n      .join(' ')\n\n    locals.text = [streetPart, cityPart]\n      .filter(Boolean)\n      .join(', ')\n  }\n\n  findAdressField() {\n    for (const fieldName in data) {\n      const field = data[fieldName]\n\n      if (field && typeof field === 'object' && 'street' in field) {\n        return field\n      }\n    }\n  }\n\n\n} ","css":"._CSS-line {\n  display: flex;\n  align-content: center;  \n}\n ","description":"","name":"address","packages":[],"template":"<span class=\"_CSS-line\" v-if=\"locals.adressField\">\n  {{locals.text}}\n</span>\n\n "},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"be7733e5-e591-43ca-8d8b-c989277ab3af","inheritedLocks":[null,null,null],"locks":[],"meta":{},"modified":{"at":"2026-02-13T10:01:44+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"p":"fallback-designs","previous":{"v":"b0798e2d235c8085"},"stamps":[],"t":1770976904679,"v":"4df64047ecdff545"},{"id":"59d534cb-8ef8-4d4a-8c7d-e38aa6deba00","v":"5573e23d928df373","previous":{"v":"1d2b30595f57a285"},"p":"c211ffaa-14f8-4439-9126-f42f65ac4424","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"anlagen","template":"<ae-list  v-if=\"locals.plan\"\n          list-id=\"2e798091-303f-406b-a42a-93aa1cd8425c\"\n          :documents=\"locals.plan.data.anlagen\"\n          param-empty-text=\"Keine Anlagen mehr zu warten\"\n          param-design=\"card\"\n          :param-design-params=\"params\"\n></ae-list>\n<div v-else class=\"flex items-center gap-6\">\n  <ae-icon class=\"far fa-circle-notch fa-spin\"></ae-icon>\n  Kopiere Wartung ... \n  \n</div>\n","css":"","controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Wartungsplan: '522ca40d-810b-4021-835f-beeace3af7fa'\n    }\n\n    locals.plan = null\n\n    Aeppic.subscribe(`p:${document.id} f.id:${this.FORMS.Wartungsplan}`, { size: 1 }, docs => locals.plan = docs[0])\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-04-06T13:10:43+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-02-03T10:27:13+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1675420033377,"ct":1649250643915,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","c211ffaa-14f8-4439-9126-f42f65ac4424"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"bb3b143d-1d45-4509-8185-ec0e07a9daee","v":"a4ec106393cd9541","previous":{"v":"e6b6dfd4b6af791f"},"p":"522ca40d-810b-4021-835f-beeace3af7fa","f":{"id":"design-form","v":"3385ac6766f32638","text":"Design"},"data":{"name":"anlagen-list","template":"<!-- NOTE: ONLY FOR ADMINISTATOR, the worker will only navigate to WARTUNG, not the plan! -->\n\n<ae-list  list-id=\"2e798091-303f-406b-a42a-93aa1cd8425c\"\n          :documents=\"data.anlagen\"\n          param-empty-text=\"Keine Anlagen mehr zu warten\"\n          param-design=\"card\"\n          :param-design-params=\"params\"\n></ae-list>\n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-03-31T14:36:12+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-04-06T14:31:37+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1649255497614,"ct":1648737372340,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","522ca40d-810b-4021-835f-beeace3af7fa"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"5dbfcab0-828f-4a19-83d6-93930fece3aa","v":"8239a539a780d79c","previous":{"v":"eafafab5a551ddae"},"p":"c211ffaa-14f8-4439-9126-f42f65ac4424","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"anlagen-review","template":"\n<ae-list  v-if=\"locals.plan\"\n          list-id=\"2e798091-303f-406b-a42a-93aa1cd8425c\"\n          :documents=\"locals.plan.data.anlagen\"\n          param-design=\"review,title\"\n></ae-list>\n","css":"","controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Wartungsplan: '522ca40d-810b-4021-835f-beeace3af7fa'\n    }\n\n    locals.plan = null\n\n    locals.plan = await Aeppic.findOne(`p:${document.id} f.id:${this.FORMS.Wartungsplan}`)\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-04-06T08:19:52+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-06-29T12:21:27+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1656505287360,"ct":1649233192885,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","c211ffaa-14f8-4439-9126-f42f65ac4424"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"161bc783-8608-43f8-9c7a-05cc739da26e","v":"7e69fc1549a66348","previous":{"v":"f252ae9e933910a1","p":"522ca40d-810b-4021-835f-beeace3af7fa","a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","522ca40d-810b-4021-835f-beeace3af7fa"]},"p":"3592ceee-ae9a-47a9-8488-7bad5b0d9ff5","f":{"id":"design-form","v":"3385ac6766f32638","text":"Design"},"data":{"name":"anschrift","template":"<span>{{data.anschrift.street}} {{data.anschrift.streetNumber}}, {{data.anschrift.postalCode}} {{data.anschrift.city}}</span>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-03-03T09:29:03+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-03-03T09:30:48+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1646299848350,"ct":1646299743702,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","3592ceee-ae9a-47a9-8488-7bad5b0d9ff5"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"e5341c30-53e2-44ea-81bf-ce6df2c3cd7e","v":"a73dbfb696c938bb","previous":{"v":"initial"},"p":"3592ceee-ae9a-47a9-8488-7bad5b0d9ff5","f":{"id":"design-form","v":"3385ac6766f32638","text":"Design"},"data":{"name":"ansprechpartner","template":"<span>{{data.ansprechpartner}}</span>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-03-08T10:50:15+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-03-08T10:50:34+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1646736634273,"ct":1646736615390,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","3592ceee-ae9a-47a9-8488-7bad5b0d9ff5"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"5c3eb58c-8eee-4f5f-a0ed-02656403230e","v":"initial","p":"13866932-346a-448d-9560-8a7e7e26be37","f":{"id":"design-form","v":"3a761d06f59c46c1","text":"Design"},"data":{"name":"answer-for-field","template":"<template v-if=\"!params.fieldName\">\n  Provide param \"field-name\"\n</template>\n<div class=\"_CSS-field\">\n{{data[params.fieldName]}}\n</div>\n","css":"._CSS-field {\n  overflow: hidden;\n  white-space: pre-line;\n}","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-10-13T10:11:33+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2020-10-13T10:11:33+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1602583893404,"ct":1602583893404,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","13866932-346a-448d-9560-8a7e7e26be37"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"d94774fe-7590-4863-bc93-2e699f36e72d","v":"76e822481ab2d18d","previous":{"v":"initial"},"p":"010e3640-1897-4840-bec0-7d0c0f1fc642","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"application-title","applies":"","template":"<ae-design class=\"_CSS-title\" name=\"title\" :document-id=\"data.schadensort.id\"></ae-design>","css":"._CSS {\n  overflow: hidden;\n  white-space: nowrap;\n  text-overflow: ellipsis;\n}","controller":"","packages":[]},"locks":[],"created":{"at":"2018-02-06T09:45:28+01:00","by":"","from":"","client":"server"},"modified":{"at":"2018-02-27T18:06:21+01:00","by":"","from":"","client":"server"},"t":1519751181043,"ct":1517906728257,"a_depth":4,"a":["apps","b791df37-6eef-4a3e-9066-1b79e0bdad31","35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f","010e3640-1897-4840-bec0-7d0c0f1fc642"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","3fbe0efd-713a-457a-a34c-3a12aa19d6bb","0fb162f4-0f78-4c1e-aad2-43c27e6d98cb","e170bb6c-f326-446d-870a-ada9d9f67230"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2020-12-10T13:06:53+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1607605613187,"data":{"aliases":[],"controller":"async init() {\n  this.FORMS = {\n    Application: '009c0da4-718f-43d0-964a-647e30074d94',\n    File: '8bf0fb31-716d-4b76-98d8-b7349f1d7529',\n  }\n\n  locals.sort = {\n    field: 'created.at',\n    descending: true\n  }\n  locals.applications = []\n  locals.convertedFilesByApplicationId = {}\n\n  // Aeppic.subscribe(`p:${document.id} f.id:${this.FORMS.Application} data.done:true`, { size: 9999 }, (applications) => {\n  //   locals.applications = applications\n  // })\n\n  // Aeppic.subscribe(`a:${document.id} f.id:${this.FORMS.File} data.name:converted`, { size: 9999 }, (convertedFiles) => {\n  //   const result = convertedFiles.reduce((result, item) => {\n  //     const applicationId = item.a[item.a_forms.findIndex(a_form => a_form === this.FORMS.Application)]\n\n  //     if (!result[applicationId]) {\n  //       result[applicationId] = []\n  //     }\n  //     result[applicationId].push(item)\n  //     return result\n  //   }, {})\n\n\n  //   locals.convertedFilesByApplicationId = result\n  // })\n}\n","css":"._CSS-container {\n  padding: var(--bp-page-content-padding);\n}\n\n._CSS-list {\n  margin: auto;\n  max-width: var(--ae-page-max-width);\n}","description":"only used with old form version. without roles.","name":"applications","packages":[],"template":"<div class=\"_CSS-container\">\n  <div class=\"_CSS-list\">\n    <ae-design name=\"closed-info\" :document=\"document\"></ae-design>\n    <h2>\n      Bewerbungen\n    </h2>\n    <ae-list  list-id=\"2dab232c-2c8a-4aa4-b3f9-6023a7116161\"\n              :documents=\"locals.applications\"\n              @selected=\"Aeppic.drillInto($event)\"\n              param-gap=\"small\"\n              :sort=\"locals.sort\"\n              :param-enable-sort=\"true\"\n              param-sort-fields=\"data.firstname,data.surname,data.agencyAbbreviation\"\n              :param-design-params=\"{ convertedFilesByApplicationId: locals.convertedFilesByApplicationId }\"\n    ></ae-list>\n  </div>\n</div>\n\n\n"},"f":{"id":"design-form","text":"Design","v":"e37099c040ec46e9"},"id":"f32ce4ba-7d54-44ab-93bd-6929c8cbe711","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-05-08T12:01:55+00:00","backedBy":"","by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":""},"p":"e170bb6c-f326-446d-870a-ada9d9f67230","previous":{"v":"3a6679ed52583555"},"stamps":[],"t":1778241715003,"v":"87965fb47884d2a1"},{"id":"8c1fde78-bfab-4aca-b4c3-09da94783134","v":"b81f291bf78c6fdd","cloneOf":{"id":"78e723fd-367d-41d1-b60e-3a4842ccec8e","v":"df97e81dc0eeade6","text":"ref-card"},"originalCloneOf":{"id":"78e723fd-367d-41d1-b60e-3a4842ccec8e","v":"df97e81dc0eeade6","text":"ref-card"},"previous":{"v":"fa40a70b4d6d043b"},"p":"84ede5f8-c5af-4113-8235-4b7fa528e265","f":{"id":"design-form","v":"24435d748c76f819","text":"Design"},"data":{"name":"appointment-info","template":"<div class=\"_CSS-container\">\n  <div class=\"_CSS-line\">\n    <div class=\"_CSS-cause\" v-if=\"locals.ausloeserPlaceholder\" :title=\"locals.ausloeserPlaceholder.display\">\n      <ae-icon v-if=\"locals.ausloeserPlaceholder.value === 'RUECKRUF'\" class=\"far fa-calendar-day\"></ae-icon>\n      <ae-icon v-else-if=\"locals.ausloeserPlaceholder.value === 'ANFRAGE'\" class=\"far fa-question\"></ae-icon>\n      <ae-icon v-else-if=\"locals.ausloeserPlaceholder.value === 'VERTRAG'\" class=\"far fa-file-contract\"></ae-icon>\n      <ae-icon v-else-if=\"locals.ausloeserPlaceholder.value === 'ANGEBOT'\" class=\"far fa-file\"></ae-icon>\n      <ae-icon v-else-if=\"locals.ausloeserPlaceholder.value === 'INTERN'\" class=\"far fa-user\"></ae-icon>\n      <div v-else>\n        {{ locals.ausloeserPlaceholder.display }}\n      </div> \n    </div>\n    <div v-if=\"data.wann\">\n      {{ controller.date(data.wann) }}  \n    </div>\n  </div>\n\n  <div class=\"_CSS-what\">\n    {{ data.name }} \n  </div>\n</div>","css":"._CSS-container {\n  display: flex;\n  flex-flow: column;\n}\n\n._CSS-line {\n  display: flex;\n}\n\n._CSS-cause {\n  margin-right: var(--ae-space-1);\n}\n\n._CSS-what {\n  margin-left: 20px;\n  color: var(--ae-background-600);\n}","controller":"class Controller {\n  async init() {\n    this.internalActivities = [\n      'INTERN',\n      'RUECKRUF',\n      'ANGEBOT',\n      'VERTRAG',\n    ]\n\n    locals.form = null\n    locals.reporter = null\n    locals.ausloeserPlaceholder = null\n\n    locals.form = await Aeppic.getFormForDocument(document)\n    locals.ausloeserPlaceholder = locals.form.getPlaceholder('typ').field.settings.options.find(o => o.value === data.typ)\n\n    locals.reporter = await Aeppic.getProfilePageForAccount(document.created.by)\n  }\n\n  date(value) {\n    if (!value) {\n      return ''\n    }\n\n    const date = DateTime.fromISO(value)\n    const diff = date.diffNow('days').days.toFixed(0)\n\n    // return diff \n    if (diff === 0) {\n      return date.toLocaleString(DateTime.TIME_24_SIMPLE)\n    }\n\n    if (diff < 0 || diff > 7) {\n      return date.toLocaleString(DateTime.DATETIME_MED)\n    }\n\n    return date.toLocaleString({ weekday: 'short', hour: '2-digit', minute: '2-digit' })\n  }\n\n  isInternalActivity(activityValue) {\n    return this.internalActivities.includes(activityValue)\n  }\n}\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-10-01T13:59:10+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-10-07T08:29:49+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1633595389944,"ct":1633096750459,"a_depth":4,"a":["apps","9d6ee173-26fe-4472-a271-7667f717094e","53b70eca-0cef-448b-9674-22a70a937eb1","84ede5f8-c5af-4113-8235-4b7fa528e265"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"909e9975-62e5-4428-ab31-f95b940bb563","v":"initial","p":"33b4d43f-ca46-46f7-98b6-0a077372188c","f":{"id":"design-form","v":"3385ac6766f32638","text":"Design"},"data":{"name":"assembly-required","template":"<ae-icon class=\"fa fa-cog\" v-if=\"data.assemblyRequired\"></ae-icon>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-11-02T09:38:39+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-11-02T09:38:39+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1635845919619,"ct":1635845919619,"a_depth":4,"a":["apps","781ff5de-69db-49dc-99f0-f328b308cd7d","dbd0bd68-3479-4032-9303-9d51615c27a7","33b4d43f-ca46-46f7-98b6-0a077372188c"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"fb51e2c5-3be5-44b3-8a04-fd949df153b5","v":"2b9009e02dbfd715","p":"fallback-designs","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"attachment-card","template":" <!-- {{ new Date() }}  -->\n<div class=\"bp-card bp-card--bordered _CSS-card\">\n  <div class=\"_CSS-card__main\" @mouseover=\"locals.hover = true\" @pointerover=\"locals.hover = true\" @mouseleave=\"locals.hover = false\">\n    <ae-design class=\"_CSS-thumbnail\"\n              name=\"thumbnail\"\n              :document=\"document\"\n              :params=\"{ size: params.size, height: params.height, width: params.width, usePreview: params.usePreview }\"\n    ></ae-design>\n    \n    <ae-design v-if=\"params.alwaysShowTitle\" name=\"title\" :document=\"document\" class=\"_CSS-main__title\" :param-fit=\"true\"></ae-design>\n\n    <transition mode=\"in-out\" name=\"ae-transition__fade\">\n      <div class=\"_CSS-info\" :class=\"{ '_CSS-info--low-opacity': !params.alwaysShowTitle }\" v-if=\"locals.hover\" @click.stop=\"$emit('selected', document)\">\n        <ae-design v-if=\"!params.alwaysShowTitle\" name=\"title\" :document=\"document\" class=\"_CSS-main__title  ae-navigatable\" :param-fit=\"true\"></ae-design>\n        <div class=\"_CSS-info__remove\">\n          <!-- NOTE: touchstart should be used, because elsewise a vue-draggable of parent might cause issues with the touch behaviour -->\n          <button class=\"ae-button ae-button--secondary\" @click.stop=\"$emit('remove', document)\" @touchstart.stop=\"$emit('remove', document)\" v-if=\"!params.readonly\">\n            <ae-icon class=\"fa fa-times\"></ae-icon>\n          </button>\n        </div>\n        </div>\n    </transition>\n    </div>\n  </div>\n</div>  \n ","css":"._CSS-card {\n  width: 100%;\n  display: flex;\n  position: relative;\n  padding: 0;\n}\n\n._CSS-card__main {\n  min-width: 0;\n  flex: 1;\n  display: flex;\n  align-items: center;\n  flex-flow: column;\n}\n\n._CSS-info {\n  position: absolute;\n  bottom: 0;\n  right: 0;\n  left: 0;\n  top: 0;\n\n  background-color: rgba(255, 255, 255, 0.4);\n  overflow: hidden;\n \n  display: flex;\n  align-items: flex-end;\n}\n\n._CSS-info._CSS-info--low-opacity {\n  background-color: rgba(255, 255, 255, 0.9);\n}\n\n._CSS-info__remove {\n  position: absolute;\n  bottom: 0;\n  right: 0;\n  left: 0;\n  top: 0;\n\n  display: flex;\n  justify-content: flex-end;\n  align-items: flex-start;\n}\n\n._CSS-info__buttons {\n  display: flex;\n  flex-flow: column;\n  justify-content: space-between;\n  align-items: flex-end;\n  xbackground: var(--ae-background-100);\n}\n\n._CSS-main__title {\n  flex: 1;\n  padding: 0 0 0 var(--ae-space-2);\n  font-size: var(--ae-font-size-3);\n}\n","controller":"class Controller {\n  init() {\n    locals.hover = false\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-11-25T13:55:43+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-07-04T12:01:35+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720684627124,"ct":1720684627124,"a_depth":2,"a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"],"inheritedLocks":[null,null,null],"stamps":[],"previous":{"v":"d3db43c2f93e59e9","f":{"id":"design-form","v":"e37099c040ec46e9","text":"Design"}},"meta":{"modified":{"at":"2024-07-11T09:57:07+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"a":["apps","144e85c0-d7f9-4b20-8928-be30f0c78bda","8e6ee7d3-9122-4a2e-8aaf-9fb3bd204b23","d2ac3563-3c3f-4f02-b923-9b67abf98d10"],"a_depth":4,"a_forms":["folder","application-form","folder","form"],"created":{"at":"2022-10-24T11:45:33+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1666611933830,"data":{"aliases":[],"controller":"class Controller {\n  init() {\n    locals.color = this.intToRGB(this.hashCode(document.id))\n\n    if (data.kuerzel) {\n      locals.initials = data.kuerzel.slice(0,3).toUpperCase()\n    } else if (!('vorname' in data) || !('nachname' in data)) {\n      locals.initials = ''\n    } else if (data.vorname.length === 0) {\n      locals.initials = (data.nachname.slice(0,1)).toUpperCase()\n    } else if (data.vorname && data.nachname) {\n      locals.initials = (data.vorname.slice(0,1) + data.nachname.slice(0,1)).toUpperCase()\n    }\n  }\n\n  hashCode(str) { // java String#hashCode\n    var hash = 0;\n    for (var i = 0; i < str.length; i++) {\n        hash = str.charCodeAt(i) + ((hash << 5) - hash);\n    }\n    return hash;\n  } \n\n  intToRGB(i) {\n    var c = (i & 0x00FFFFFF)\n        .toString(16)\n        .toUpperCase();\n    return '#' + '00000'.substring(0, 6 - c.length) + c;\n  }\n\n  get title() {\n    const parts = []\n    data.name && parts.push(data.name)\n    data.position && parts.push(`(${data.position})`)\n    return parts.join(' ')\n  }\n}","css":"","description":"","name":"avatar","packages":[],"template":"<!-- Params\n  - overwriteDisplayWith / text\n-->\n<div class=\"flex justify-start w-auto items-center\">\n  <!-- Overwrite -->\n  <template v-if=\"params.overwriteDisplayWith\">\n    <span class=\"text-[1em] h-[1em] w-[1em] rounded-[50%] flex items-center justify-center text-[white] font-bold  [box-shadow:var(--ae-shadow-inset)]\"\n          :class=\"'bg-[' + locals.color + ']'\"\n    >\n          {{ params.overwriteDisplayWith }}\n    </span>\n  </template>\n  <template v-else>\n    <!-- Foto -->\n    <div v-if=\"data.foto && data.foto.dataUrl\"      \n        :title=\"controller.title\" class=\"h-[1em] w-[1em] rounded-[50%] bg-no-repeat bg-cover bg-[rgba(0,0,0,.5)] [box-shadow:var(--ae-shadow-inset)]\" \n        :style=\"{ 'background-image': 'url(' + Aeppic.Content.getThumbnailSrc(document,'foto') }\">\n    </div>\n    <!-- Initials -->\n    <span v-else-if=\"locals.initials\" \n          :title=\"controller.title\" \n          :class=\"'bg-[' + locals.color + ']'\" \n          class=\"text-[1em] h-[1em] w-[1em] rounded-[50%] flex items-center justify-center text-[white] font-bold  [box-shadow:var(--ae-shadow-inset)]\">\n      <span class=\"text-[0.4em]\">\n        {{locals.initials}}\n      </span>\n    </span>\n    <!-- Fallback -->\n    <span v-else>\n      <ae-icon class=\"fa fa-user-circle opacity-100 text-[1em] h-[1em] w-[1em]\" \n              :style=\"{ fill: locals.color + '!important' }\"\n      ></ae-icon>\n    </span>\n  </template>\n</div>"},"f":{"id":"design-form","text":"Design","v":"c2d9ae57c7a46896"},"id":"07bc3adb-781e-4835-9aa9-44b92cde4eb0","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-10-10T13:00:46+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"d2ac3563-3c3f-4f02-b923-9b67abf98d10","previous":{"v":"dfffadb517e6657a"},"stamps":[],"t":1760101246912,"v":"febf89bda18850ed"},{"id":"235d9bcd-3205-4e6b-a1e2-aae02c3ed8e0","v":"80826f0cf6507dd3","previous":{"v":"initial"},"p":"account","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"avatar","template":"<ae-design name=\"avatar--resizes-with-font\" :document=\"document\" :params=\"params\" v-on=\"$listeners\"></ae-design>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-01-17T15:55:01+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-01-17T15:55:37+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1673970937490,"ct":1673970901759,"a_depth":5,"a":["system","b2533f7b-ea85-4680-99ed-d8e11be641b9","0e6939d6-9b93-4165-b6bd-977e4da881f3","627f5b74-3baf-45f8-a1d3-a5936839b844","account"],"a_forms":["system-folder-form","folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"be031e75-282b-4b72-b681-ed2308bd02b1","v":"4461fbef64ed3a16","previous":{"v":"7bfb28ba5f275478"},"p":"group","f":{"id":"design-form","v":"9bfe8e0cd909c1f0","text":"Design"},"data":{"name":"avatar","template":"<span v-if=\"data.name\" :style=\"{ 'background-color': locals.color }\" class=\"_CSS-initials\" :title=\"data.name\" >{{locals.initials}}</span>\r\n<span v-else :style=\"{ color: locals.color }\" class=\"_CSS--no-image\"  ><ae-icon class=\"fa fa-users \" style=\"color:gray\" ></ae-icon></span>","css":"._CSS {\r\n  display: flex;\r\n  justify-content: flex-start;\r\n  width: auto;\r\n  /* padding-left: 8px; */\r\n  /* height: 64px; */\r\n  align-items: center;\r\n}\r\n\r\n._CSS--no-image {\r\n  background: lightgray;\r\n  width: 48px;\r\n  height: 48px;\r\n  border-radius: 50%;\r\n  overflow:none;\r\n  display:flex;\r\n  align-items:center;\r\n  justify-content: center;\r\n}\r\n\r\n._CSS--no-image > * {\r\n  width: 28px;\r\n  height: 28px;\r\n}\r\n\r\n._CSS--name-avatar {\r\n\r\n}\r\n\r\n._CSS-initials {\r\n  height: 36px;\r\n  width: 36px;\r\n  border-radius: 50%;\r\n  display: flex;\r\n  align-items:center;\r\n  justify-content: center;\r\n  color:white;\r\n  font-size: 14px;\r\n  font-weight: bold;\r\n  font-family:'Trebuchet MS', 'Lucida Sans Unicode', 'Lucida Grande', 'Lucida Sans', Arial, sans-serif;\r\n}\r\n \r\n._CSS--no-image {\r\n  opacity: 0.4;\r\n  font-size: 36px;\r\n}\r\n\r\n._CSS-image {\r\n  height: 36px;\r\n  width: 36px;\r\n  border-radius: 50%;\r\n  background-repeat: no-repeat;\r\n  background-size: cover;\r\n  background-position-x: center;\r\n}","controller":"init() {\r\n  locals.color = this.intToRGB(this.hashCode(document.id))\r\n  locals.initials = (data.name.slice(0,2)).toUpperCase()\r\n}\r\n\r\nhashCode(str) { // java String#hashCode\r\n  var hash = 0;\r\n  for (var i = 0; i < str.length; i++) {\r\n      hash = str.charCodeAt(i) + ((hash << 5) - hash);\r\n  }\r\n  return hash;\r\n} \r\n\r\n intToRGB(i) {\r\n  var c = (i & 0x00FFFFFF)\r\n      .toString(16)\r\n      .toUpperCase();\r\n\r\n  return '#' + '00000'.substring(0, 6 - c.length) + c;\r\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2017-12-12T10:44:55+01:00","by":"","from":"","client":"403c659e-8014-4e8c-aa03-84e288126751"},"modified":{"at":"2022-01-26T09:42:33+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1643190153923,"ct":1593514406011,"a_depth":5,"a":["system","b2533f7b-ea85-4680-99ed-d8e11be641b9","0e6939d6-9b93-4165-b6bd-977e4da881f3","627f5b74-3baf-45f8-a1d3-a5936839b844","group"],"a_forms":["system-folder-form","folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"a":["apps","144e85c0-d7f9-4b20-8928-be30f0c78bda","8e6ee7d3-9122-4a2e-8aaf-9fb3bd204b23","d2ac3563-3c3f-4f02-b923-9b67abf98d10"],"a_depth":4,"a_forms":["folder","application-form","folder","form"],"cloneOf":{"id":"ae607099-2d2f-41da-bf11-029209e51119","text":"avatar--tiny","v":"9829294325085a05"},"created":{"at":"2018-11-30T14:21:49+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","client":"server","from":""},"ct":1543587709937,"data":{"applies":"","controller":"init() {\n  locals.color = this.intToRGB(this.hashCode(document.id))\n  \n  if (data.kuerzel) {\n    locals.initials = data.kuerzel.slice(0,3).toUpperCase()\n  } else if (!('vorname' in data) || !('nachname' in data)) {\n    locals.initials = ''\n  } else if (data.vorname.length === 0) {\n    locals.initials = (data.nachname.slice(0,1)).toUpperCase()\n  } else if (data.vorname && data.nachname) {\n    locals.initials = (data.vorname.slice(0,1) + data.nachname.slice(0,1)).toUpperCase()\n  }\n\n  // locals.color = this.intToRGB(this.hashCode(locals.initials || document.id))\n}\n\nhashCode(str) { // java String#hashCode\n  var hash = 0;\n  for (var i = 0; i < str.length; i++) {\n      hash = str.charCodeAt(i) + ((hash << 5) - hash);\n  }\n  return hash;\n} \n\n intToRGB(i) {\n  var c = (i & 0x00FFFFFF)\n      .toString(16)\n      .toUpperCase();\n\n  return '#' + '00000'.substring(0, 6 - c.length) + c;\n}\n\nget title() {\n  const parts = []\n  \n  data.name && parts.push(data.name)\n  data.position && parts.push(`(${data.position})`)\n  \n  return parts.join(' ')\n}","css":"._CSS {\n  display: flex;\n  justify-content: flex-start;\n  width: auto;\n  align-items: center;\n}\n\n._CSS-initials {\n  font-size: 1em;\n  height: 1em;\n  width: 1em;\n  border-radius: 50%;\n  display: flex;\n  align-items:center;\n  justify-content: center;\n  color:white;\n  font-weight: bold;\n  font-family:'Trebuchet MS', 'Lucida Sans Unicode', 'Lucida Grande', 'Lucida Sans', Arial, sans-serif;\n  box-shadow: var(--ae-shadow-inset);\n}\n\n._CSS-initials__characters {\n  font-size: 0.5em;\n}\n \n._CSS--no-image {\n  opacity: 0.7;\n  font-size: 1em;\n}\n\n._CSS-image {\n  height: 1em;\n  width: 1em;\n  border-radius: 50%;\n  background-repeat: no-repeat;\n  background-size: cover;\n  background-position-x: center;\n  background-color: rgba(0,0,0,.5);\n  box-shadow: var(--ae-shadow-inset);\n}","name":"avatar--resizes-with-font","packages":[],"template":"<template v-if=\"params.overwriteDisplayWith\">\n  <span style=\"background-color: #777;\" class=\"_CSS-initials\">{{ params.overwriteDisplayWith }}</span>\n</template>\n<template v-else> \n  <div v-if=\"data.foto && data.foto.dataUrl\" :title=\"controller.title\" class=\"_CSS-image\" :style=\"{ 'background-image': 'url(' + Aeppic.Content.getThumbnailSrc(document,'foto') }\"></div>\n  <div v-else-if=\"data.bild && data.bild.dataUrl\" :title=\"controller.title\" class=\"_CSS-image\" :style=\"{ 'background-image': 'url(' + Aeppic.Content.getThumbnailSrc(document,'bild') }\"></div>\n  <span v-else-if=\"locals.initials\" :title=\"controller.title\" :style=\"{ 'background-color': locals.color }\" class=\"_CSS-initials\">\n    <span class=\"_CSS-initials__characters\">\n      {{locals.initials}}\n    </span>\n  </span>\n  <span v-else   ><ae-icon class=\"fa fa-2x fa-user-circle _CSS--no-image\" :style=\"{ fill: '#BBB' + '!important' }\"></ae-icon></span>\n</template> \n"},"f":{"id":"design-form","text":"Design","v":"44303cec40b3e1fa"},"id":"77b2f84a-23c7-4793-b8ce-4ebb9b762545","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2024-11-07T17:25:03+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"ae607099-2d2f-41da-bf11-029209e51119","text":"avatar--tiny","v":"9829294325085a05"},"p":"d2ac3563-3c3f-4f02-b923-9b67abf98d10","previous":{"v":"7ceeaf36ac89abee"},"stamps":[],"t":1731000303817,"v":"e47de845342ff4ad"},{"id":"9dfd4f57-4950-4817-85df-63e7d4d1964b","v":"626ee9a546c1abb9","cloneOf":{"id":"0e04f517-e627-44ef-a1ff-7a954e2cdf49","v":"69f9d8e24ab7cd12","text":"avatar--tiny"},"originalCloneOf":{"id":"0e04f517-e627-44ef-a1ff-7a954e2cdf49","v":"69f9d8e24ab7cd12","text":"avatar--tiny"},"previous":{"v":"6a1da068fce20fff"},"p":"account","f":{"id":"design-form","v":"9bfe8e0cd909c1f0","text":"Design"},"data":{"name":"avatar--resizes-with-font","template":"<ae-design v-if=\"locals.profile\" :document=\"locals.profile\" :name=\"params.designName || 'avatar--resizes-with-font'\" :params=\"params\"></ae-design>\n<span  class=\"_CSS-container--no-image\" v-else>\n  <ae-icon class=\"fa fa-user-circle _CSS--no-image\"></ae-icon>\n</span>\n  ","css":"._CSS-container--no-image {\n  display: flex;\n  justify-content: flex-start;\n  width: auto;\n  align-items: center;\n}\n\n._CSS--no-image {\n  color: var(--ae-background-500);\n}","controller":"async init() {\r\n  locals.profile = await Aeppic.getProfilePageForAccount(document)\r\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-08-28T12:59:04+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2024-08-21T09:58:24+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1724234304220,"ct":1598619544643,"a_depth":5,"a":["system","b2533f7b-ea85-4680-99ed-d8e11be641b9","0e6939d6-9b93-4165-b6bd-977e4da881f3","627f5b74-3baf-45f8-a1d3-a5936839b844","account"],"a_forms":["system-folder-form","folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"0e18f71b-a4df-4acc-af2f-d9c5bc74a124","v":"56063a062f73b99e","p":"lock-form","f":{"id":"design-form","v":"9bfe8e0cd909c1f0","text":"Design","client":"server"},"data":{"name":"avatar--small","template":"<span v-if=\"data.name\" :style=\"{ 'background-color': locals.color }\" class=\"_CSS-initials\" :title=\"data.name\" >{{locals.initials}}</span>\r\n<span v-else :style=\"{ color: locals.color }\" class=\"_CSS--no-image\"  ><ae-icon class=\"fa fa-users \" style=\"color:gray\" ></ae-icon></span>\r\n<ae-icon class=\"_CSS-lock-overlay fa fa-lock-alt\"></ae-icon>\r\n  ","css":"._CSS {\r\n  display: flex;\r\n  justify-content: flex-start;\r\n  width: auto;\r\n  /* padding-left: 8px; */\r\n  /* height: 64px; */\r\n  align-items: center;\r\n  position: relative;\r\n  min-width: 36px;\r\n  width:36px;\r\n}\r\n\r\n._CSS-lock-overlay {\r\n  position:absolute;\r\n  right:0;\r\n  bottom:0;\r\n  color:white;\r\n  filter: drop-shadow( 0px 0px 1px rgba(0,0,0,0.5) ) drop-shadow( 0px 0px 10px rgba(0,0,0,0.28) );\r\n}\r\n\r\n._CSS--no-image {\r\n  background: lightgray;\r\n  width: 36px;\r\n  height: 36px;\r\n  border-radius: 50%;\r\n  overflow:none;\r\n  display:flex;\r\n  align-items:center;\r\n  justify-content: center;\r\n}\r\n\r\n._CSS--no-image > * {\r\n  width: 36px;\r\n  height: 36px;\r\n}\r\n\r\n._CSS--name-avatar {\r\n\r\n}\r\n\r\n._CSS-initials {\r\n  height: 36px;\r\n  width: 36px;\r\n  border-radius: 50%;\r\n  display: flex;\r\n  align-items:center;\r\n  justify-content: center;\r\n  color:white;\r\n  font-size: 14px;\r\n  font-weight: bold;\r\n  font-family:'Trebuchet MS', 'Lucida Sans Unicode', 'Lucida Grande', 'Lucida Sans', Arial, sans-serif;\r\n}\r\n \r\n._CSS--no-image {\r\n  opacity: 0.4;\r\n  font-size: 36px;\r\n}\r\n\r\n._CSS-image {\r\n  height: 36px;\r\n  width: 36px;\r\n  border-radius: 50%;\r\n  background-repeat: no-repeat;\r\n  background-size: cover;\r\n  background-position-x: center;\r\n}","controller":"init() {\r\n  locals.color = this.intToRGB(this.hashCode(document.id))\r\n\r\n  const words = data.name.split(/\\s/)\r\n\r\n  if (words.length === 0) {\r\n    locals.initials = null\r\n  } else if (words.length === 1) {\r\n    locals.initials = (words[0].slice(0,2)).toUpperCase()\r\n  } else {\r\n    locals.initials = (words[0].slice(0,1) + words[1].slice(0,1)).toUpperCase()\r\n  }\r\n\r\n}\r\n\r\nhashCode(str) { // java String#hashCode\r\n  var hash = 0;\r\n  for (var i = 0; i < str.length; i++) {\r\n      hash = str.charCodeAt(i) + ((hash << 5) - hash);\r\n  }\r\n  return hash;\r\n} \r\n\r\n intToRGB(i) {\r\n  var c = (i & 0x00FFFFFF)\r\n      .toString(16)\r\n      .toUpperCase();\r\n\r\n  return '#' + '00000'.substring(0, 6 - c.length) + c;\r\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2018-05-23T11:44:39+02:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","from":"","client":"server"},"modified":{"at":"2020-06-30T10:53:26+00:00","by":"8e6c22aa-8c69-4ff8-919a-7032841cf636","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1593514406011,"ct":1593514406011,"a_depth":5,"a":["system","b2533f7b-ea85-4680-99ed-d8e11be641b9","0e6939d6-9b93-4165-b6bd-977e4da881f3","627f5b74-3baf-45f8-a1d3-a5936839b844","lock-form"],"a_forms":["system-folder-form","folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[],"previous":{"v":"09f460c42db30178","f":{"id":"design-form","v":"74db9b6ed94b41d9","text":"Design","client":"server"}}},{"id":"42bc3c0e-bd6f-42f1-936f-3fb34e9ed261","v":"3588361c93ae6003","previous":{"v":"2acf946a82ba1ce1"},"p":"d2ac3563-3c3f-4f02-b923-9b67abf98d10","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"avatar--small","applies":"","template":"<div :title=\"controller.title\" v-if=\"data.foto.dataUrl\" :style=\"{ 'background-color': locals.color, 'background-image': 'url(' + Aeppic.Content.getThumbnailSrc(document, 'foto') + ')' }\" class=\"_CSS-image\" >\r\n   <!-- <img style=\"height:52px\" :src=\"Aeppic.Content.getThumbnailSrc(document, 'foto')\">  -->\r\n</div>\r\n<span :title=\"controller.title\" v-else-if=\"data.name\" :style=\"{ 'background-color': locals.color }\" class=\"_CSS-initials\" >{{locals.initials}}</span>\r\n<span :title=\"controller.title\" v-else :style=\"{ color: locals.color }\" class=\"_CSS--no-image\"  ><ae-icon class=\"fa fa-user \" style=\"color:gray\" ></ae-icon></span>","css":"._CSS {\r\n  display: flex;\r\n  justify-content: flex-start;\r\n  width: auto;\r\n  /* padding-left: 8px; */\r\n  /* height: 64px; */\r\n  align-items: center;\r\n}\r\n\r\n._CSS--no-image {\r\n  background: lightgray;\r\n  width: 36px;\r\n  height: 36px;\r\n  border-radius: 50%;\r\n  overflow:none;\r\n  display:flex;\r\n  align-items:center;\r\n  justify-content: center;\r\n}\r\n\r\n._CSS--no-image > * {\r\n  width: 16px;\r\n  height: 16px;\r\n}\r\n\r\n._CSS--name-avatar {\r\n\r\n}\r\n\r\n._CSS-initials {\r\n  height: 36px;\r\n  width: 36px;\r\n  border-radius: 50%;\r\n  display: flex;\r\n  align-items:center;\r\n  justify-content: center;\r\n  color:white;\r\n  font-size: 14px;\r\n  font-weight: bold;\r\n  font-family:'Trebuchet MS', 'Lucida Sans Unicode', 'Lucida Grande', 'Lucida Sans', Arial, sans-serif;\r\n  box-shadow: var(--ae-shadow-inset);\r\n}\r\n \r\n._CSS--no-image {\r\n  opacity: 0.4;\r\n  font-size: 36px;\r\n}\r\n\r\n._CSS-image {\r\n  height: 36px;\r\n  width: 36px;\r\n  border-radius: 50%;\r\n  background-repeat: no-repeat;\r\n  background-size: cover;\r\n  xbackground-position: center;\r\n  display:flex;\r\n  align-items:center;\r\n  justify-content:center;\r\n  overflow:hidden;\r\n}","controller":"init() {\r\n  locals.color = this.intToRGB(this.hashCode(document.id))\r\n\r\n  if (!('vorname' in data) || !('nachname' in data)) {\r\n    locals.initials = ''\r\n  } else if (data.vorname.length === 0) {\r\n    locals.initials = (data.nachname.slice(0,1)).toUpperCase()\r\n  } else if (data.vorname && data.nachname) {\r\n    locals.initials = (data.vorname.slice(0,1) + data.nachname.slice(0,1)).toUpperCase()\r\n  }\r\n}\r\n\r\nhashCode(str) { // java String#hashCode\r\n  var hash = 0;\r\n  for (var i = 0; i < str.length; i++) {\r\n      hash = str.charCodeAt(i) + ((hash << 5) - hash);\r\n  }\r\n  return hash;\r\n} \r\n\r\n intToRGB(i) {\r\n  var c = (i & 0x00FFFFFF)\r\n      .toString(16)\r\n      .toUpperCase();\r\n\r\n  return '#' + '00000'.substring(0, 6 - c.length) + c;\r\n}\r\n\r\nget title() {\r\n  const parts = []\r\n  \r\n  data.name && parts.push(data.name)\r\n  data.position && parts.push(`(${data.position})`)\r\n  \r\n  return parts.join(' ')\r\n}","packages":[]},"locks":[],"created":{"at":"2018-05-23T11:46:35+02:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","from":"","client":"server"},"modified":{"at":"2021-10-01T15:10:15+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1633101015606,"ct":1527068795806,"a_depth":4,"a":["apps","144e85c0-d7f9-4b20-8928-be30f0c78bda","8e6ee7d3-9122-4a2e-8aaf-9fb3bd204b23","d2ac3563-3c3f-4f02-b923-9b67abf98d10"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"0e04f517-e627-44ef-a1ff-7a954e2cdf49","v":"69f9d8e24ab7cd12","previous":{"v":"d2867859c6a1dca4"},"p":"account","f":{"id":"design-form","v":"9bfe8e0cd909c1f0","text":"Design"},"data":{"name":"avatar--tiny","template":"<ae-design v-if=\"locals.profile\" :document=\"locals.profile\" :name=\"params.designName || 'avatar--tiny'\" :params=\"params\"></ae-design>\n<span  class=\"_CSS-container--no-image\" v-else>\n  <ae-icon class=\"fa fa-2x fa-user-circle _CSS--no-image\"></ae-icon>\n</span>\n","css":"._CSS--no-image {\n  font-size: 28px;\n}\n._CSS-container--no-image {\n  display: flex;\n  justify-content: flex-start;\n  width: auto;\n  align-items: center;\n}\n","controller":"async init() {\r\n  locals.profile = await Aeppic.getProfilePageForAccount(document)\r\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2018-11-23T13:11:49+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2020-08-13T14:23:29+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1597328609856,"ct":1593514406011,"a_depth":5,"a":["system","b2533f7b-ea85-4680-99ed-d8e11be641b9","0e6939d6-9b93-4165-b6bd-977e4da881f3","627f5b74-3baf-45f8-a1d3-a5936839b844","account"],"a_forms":["system-folder-form","folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"ae607099-2d2f-41da-bf11-029209e51119","v":"67bcd443dec7bd8d","previous":{"v":"49feed5c310cf267"},"p":"d2ac3563-3c3f-4f02-b923-9b67abf98d10","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"avatar--tiny","applies":"","template":"\n<div class=\"_CSS-container\" v-if=\"params.overwriteDisplayWith\">\n  <span style=\"background-color: #777;\" class=\"_CSS-initials\">{{ params.overwriteDisplayWith }}</span>\n</div>\n<div v-else class=\"_CSS-container\"> \n  <div v-if=\"data.foto && data.foto.dataUrl\" :title=\"controller.title\" class=\"_CSS-image\" :style=\"{ 'background-image': 'url(' + Aeppic.Content.getThumbnailSrc(document,'foto') }\"></div>\n  <div v-else-if=\"data.bild && data.bild.dataUrl\" :title=\"controller.title\" class=\"_CSS-image\" :style=\"{ 'background-image': 'url(' + Aeppic.Content.getThumbnailSrc(document,'bild') }\"></div>\n  <span v-else-if=\"locals.initials\" :title=\"controller.title\" :style=\"{ 'background-color': locals.color }\" class=\"_CSS-initials\">{{locals.initials}}</span>\n  <span v-else   ><ae-icon class=\"fa fa-2x fa-user-circle _CSS--no-image\" :style=\"{ fill: '#BBB' + '!important' }\"></ae-icon></span>\n</div> \n\n","css":"._CSS-container {\n  display: flex;\n  justify-content: flex-start;\n  width: auto;\n  align-items: center;\n}\n\n._CSS-initials {\n  height: 28px;\n  width: 28px;\n  border-radius: 50%;\n  display: flex;\n  align-items:center;\n  justify-content: center;\n  color:white;\n  font-size: 14px;\n  font-weight: bold;\n  font-family:'Trebuchet MS', 'Lucida Sans Unicode', 'Lucida Grande', 'Lucida Sans', Arial, sans-serif;\n  box-shadow: var(--ae-shadow-inset);\n}\n \n._CSS--no-image {\n  opacity: 0.7;\n  font-size: 28px;\n}\n\n._CSS-image {\n  height: 28px;\n  width: 28px;\n  border-radius: 50%;\n  background-repeat: no-repeat;\n  background-size: cover;\n  background-position-x: center;\n  background-color: rgba(0,0,0,.5);\n  box-shadow: var(--ae-shadow-inset);\n}","controller":"init() {\n  locals.color = this.intToRGB(this.hashCode(document.id))\n\n  if (!('vorname' in data) || !('nachname' in data)) {\n    locals.initials = ''\n  } else if (data.vorname.length === 0) {\n    locals.initials = (data.nachname.slice(0,1)).toUpperCase()\n  } else if (data.vorname && data.nachname) {\n    locals.initials = (data.vorname.slice(0,1) + data.nachname.slice(0,1)).toUpperCase()\n  }\n}\n\nhashCode(str) { // java String#hashCode\n  var hash = 0;\n  for (var i = 0; i < str.length; i++) {\n      hash = str.charCodeAt(i) + ((hash << 5) - hash);\n  }\n  return hash;\n} \n\n intToRGB(i) {\n  var c = (i & 0x00FFFFFF)\n      .toString(16)\n      .toUpperCase();\n\n  return '#' + '00000'.substring(0, 6 - c.length) + c;\n}\n\nget title() {\n  const parts = []\n  \n  data.name && parts.push(data.name)\n  data.position && parts.push(`(${data.position})`)\n  \n  return parts.join(' ')\n}","packages":[]},"locks":[],"created":{"at":"2018-01-09T12:22:44+01:00","by":"","from":"","client":"b20f0848-a55a-497f-a396-111e8029fc15"},"modified":{"at":"2021-10-13T14:50:59+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1634136659053,"ct":1515496960333,"a_depth":4,"a":["apps","144e85c0-d7f9-4b20-8928-be30f0c78bda","8e6ee7d3-9122-4a2e-8aaf-9fb3bd204b23","d2ac3563-3c3f-4f02-b923-9b67abf98d10"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"4739efad-a8e2-496f-a737-db48ebac8cdf","v":"fab6a6a46bab0ae2","previous":{"v":"dda508a14b4f4eb4"},"p":"816b2d0e-5158-4f0c-a5cf-6069bb76de69","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"barcode","template":"<div>{{data.barcode || '---' }}</div>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-04-06T15:19:49+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-04-06T15:20:17+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1649258417704,"ct":1649258389173,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","816b2d0e-5158-4f0c-a5cf-6069bb76de69"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"a6ebe2e4-b64f-437e-ae22-b61086f5f219","v":"81acd5526a49aa3b","previous":{"v":"58e82d75f7670bbf"},"p":"816b2d0e-5158-4f0c-a5cf-6069bb76de69","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"barcode-card","template":"<div @click.stop=\"$emit('selected', document)\"\n    class=\"ae-navigatable bg-white p-2 border rounded-lg flex gap-4 justify-between overflow-hidden\"\n>\n  <div class=\"flex flex-col overflow-hidden\">\n    <div class=\"flex flex-col gap-1\">\n      <ae-design class=\"text-sm text-theme-600\" name=\"title\" :document=\"document\"></ae-design>\n      <ae-design name=\"barcode\" :document=\"document\"></ae-design>\n    </div>\n\n    <!-- <div class=\"flex flex-col text-sm text-theme-500 overflow-hidden\">\n      <ae-design name=\"path\" :document=\"document\"></ae-design>\n    </div> -->\n  </div>\n  <div class=\"flex items-center transition duration-300\t ease-in\" :class=\"[ params.usedDocumentIds && params.usedDocumentIds.includes(document.id) ? 'scale-100' : 'scale-0']\">\n    <ae-icon v-if=\"params.succededDocumentIds && params.succededDocumentIds.includes(document.id)\" class=\"fa fa-check fa-2x\"></ae-icon>\n    <ae-icon v-else class=\"fa fa-copy fa-2x\"></ae-icon>\n  </div>\n</div> ","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-04-07T12:39:35+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-04-08T13:05:01+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1649423101968,"ct":1649335175703,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","816b2d0e-5158-4f0c-a5cf-6069bb76de69"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","9d6ee173-26fe-4472-a271-7667f717094e","6743ef9a-c21b-443f-91b8-4dd86886ee8c","5475727b-0e0c-412a-8452-23b9c5b242f2"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2021-09-20T13:42:26+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1632145346794,"data":{"aliases":[],"controller":"// This is super old\nclass Controller {\n  async init() {\n    locals.FORMS = {\n      Kunde: '8fc08287-dbcc-4e41-9d5d-28e4cd828943',\n      BoardSettings: '43420696-8097-4fc1-88e5-c69df9821470'\n    }\n    locals.settings = null\n\n    Aeppic.subscribe(`p:${document.id} f.id:${locals.FORMS.BoardSettings}`, { size: 1 }, (docs) => {\n      locals.settings = docs[0]\n    })\n  }\n\n  get search() {\n    const base =  'p:' + document.id + ' f.id:' + locals.FORMS.Kunde\n\n    if (params.filter) {\n      return `${base} ${params.filter.trim()}`\n    }\n\n    return base\n  }\n}  ","css":"._CSS-list {\n  height: 100%;\n}","description":"","name":"board","packages":[],"template":"          <!-- :root-document-id=\"document.id\" -->\n          <!-- query-id=\"f812861f-68c8-4818-9972-be7b5474c9b1\" -->\n<ae-list  list-id=\"bace3889-c006-47c5-9c57-7f4bbe9dfe02\"\n          :search=\"controller.search\"\n          @selected=\"Aeppic.drillInto($event)\"\n          :search-options=\"{ searchAllFields: true, size: 5000 }\"\n          :sort=\"['data.name', 'id']\"\n          class=\"_CSS-list\"\n          v-if=\"locals.settings\"\n          :params=\"locals.settings.data\"\n          :param-selection-id=\"document.f.id\"\n></ae-list>\n\n    <!-- :param-list-form-id=\"locals.FORMS.Kunde\" -->\n<!-- :params=\"{ columns: 'data.name,data.kontakt,data.kategorie,data.branche,data.kundennummer,data.interesseAn,data.verantwortlich', designs: ',,,,,,table:avatar--small', headers: '' }\" -->\n<!-- param-sort-fields=\"data.name,data.hotness,data.kategorie,data.kundennummer,data.auftragsvolumen\" -->\n<!-- param-filter-fields=\"data.kategorie,data.branche,data.verantwortlich,data.quelle,data.hotness\" -->"},"f":{"id":"design-form","text":"Design","v":"0a6757fa85895d29"},"id":"4f230a3c-3ed6-445c-a885-8e2f566309f4","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-03-24T12:26:10+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"p":"5475727b-0e0c-412a-8452-23b9c5b242f2","previous":{"v":"f0eda168649c287a"},"stamps":[],"t":1774355170506,"v":"d2c109c3513f832a"},{"id":"4fb0ca0e-5060-4c1e-a695-4e45f9be6989","v":"a0e947d35ca9d198","p":"e17f496b-3eae-445f-a95a-93bdb58df718","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"board","template":"          <!-- :root-document-id=\"document.id\" -->\n          <!-- query-id=\"f812861f-68c8-4818-9972-be7b5474c9b1\" -->\n<ae-list  list-id=\"16e318fe-d8f9-48cf-8c15-ffa1a4020233\"\n          :search=\"controller.search\"\n          @selected=\"Aeppic.drillInto($event)\"\n          :search-options=\"{ searchAllFields: true, size: 5000 }\"\n          :sort=\"['data.name', 'id']\"\n          class=\"_CSS-list\"\n          v-if=\"locals.settings\"\n          :params=\"locals.settings.data\"\n          :param-selection-id=\"document.f.id\"\n          :param-debug=\"false\"\n          :param-readonly=\"true\"\n          :param-form=\"{ id: '92b40379-c29e-4f04-a28c-129575d864c3' }\"\n></ae-list>\n \n<!-- :param-list-form-id=\"locals.FORMS.Kunde\" -->\n<!-- :params=\"{ columns: 'data.name,data.kontakt,data.kategorie,data.branche,data.kundennummer,data.interesseAn,data.verantwortlich', designs: ',,,,,,table:avatar--small', headers: '' }\" -->\n<!-- param-sort-fields=\"data.name,data.hotness,data.kategorie,data.kundennummer,data.auftragsvolumen\" -->\n<!-- param-filter-fields=\"data.kategorie,data.branche,data.verantwortlich,data.quelle,data.hotness\" -->","css":"._CSS-list {\n  min-height:10px;\n  min-width: 10px;\n  // background-color: red;\n  height: 100%;\n}","controller":"class Controller {\n  async init() {\n    locals.FORMS = {\n      Auftrag: 'fbb5234f-66e1-4545-b087-ff1961f9ceab',\n      BoardSettings: '43420696-8097-4fc1-88e5-c69df9821470'\n    }\n    \n    locals.settings = null\n\n    Aeppic.subscribe(`p:${document.id} f.id:${locals.FORMS.BoardSettings}`, { size: 1 }, (docs) => {\n      locals.settings = docs[0]\n    })\n  }\n\n  get search() {\n    const base =  'p:' + document.id + ' f.id:' + locals.FORMS.Auftrag\n\n    if (params.filter) {\n      return `${base} ${params.filter.trim()}`\n    }\n\n    return base\n  }\n}  ","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-03-01T16:25:03+00:00","by":"427610a9-39dc-4014-9176-5f72aeb23263","from":"","client":"server"},"modified":{"at":"2023-05-16T15:39:43+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1718866007099,"ct":1718866007099,"a_depth":4,"a":["apps","deeef973-ce03-4557-bf75-75a059001767","e7de598c-6f5a-4ab4-a33b-213ca86e489d","e17f496b-3eae-445f-a95a-93bdb58df718"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[],"previous":{"v":"02e758b2bd2a4ce6","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"}},"meta":{"modified":{"at":"2024-06-20T08:46:47+02:00","by":"427610a9-39dc-4014-9176-5f72aeb23263","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"8465c583-d99f-4af9-9679-d500136ffa1a","v":"d1ca51e55cb09c53","p":"084a6995-3d56-4672-aad0-7e76d30999a0","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"board","template":"          <!-- :root-document-id=\"document.id\" -->\n          <!-- query-id=\"f812861f-68c8-4818-9972-be7b5474c9b1\" -->\n<ae-list  list-id=\"bace3889-c006-47c5-9c57-7f4bbe9dfe02\"\n          :search=\"controller.search\"\n          @selected=\"Aeppic.drillInto($event)\"\n          :search-options=\"{ searchAllFields: true, size: 5000 }\"\n          :sort=\"['data.name', 'id']\"\n          class=\"_CSS-list\"\n          v-if=\"locals.settings\"\n          :params=\"locals.settings.data\"\n          :param-selection-id=\"document.f.id\"\n          :param-debug=\"false\"\n          :param-quick-edit=\"true\"\n></ae-list>\n\n    <!-- :param-list-form-id=\"locals.FORMS.Kunde\" -->\n<!-- :params=\"{ columns: 'data.name,data.kontakt,data.kategorie,data.branche,data.kundennummer,data.interesseAn,data.verantwortlich', designs: ',,,,,,table:avatar--small', headers: '' }\" -->\n<!-- param-sort-fields=\"data.name,data.hotness,data.kategorie,data.kundennummer,data.auftragsvolumen\" -->\n<!-- param-filter-fields=\"data.kategorie,data.branche,data.verantwortlich,data.quelle,data.hotness\" -->","css":"._CSS-list {\n  height: 100%;\n}","controller":"class Controller {\n  async init() {\n    locals.FORMS = {\n      Auftrag: 'fbb5234f-66e1-4545-b087-ff1961f9ceab',\n      BoardSettings: '43420696-8097-4fc1-88e5-c69df9821470'\n    } \n    locals.LOCATION = 'a7b3f11c-6bf2-479b-9584-746c2804db51'\n    locals.settings = null\n\n    Aeppic.subscribe(`p:${document.id} f.id:${locals.FORMS.BoardSettings}`, { size: 1 }, (docs) => {\n      locals.settings = docs[0]\n    })\n  }\n\n  get search() {\n    const base =  'p:' + locals.LOCATION + ' f.id:' + locals.FORMS.Auftrag\n\n    if (params.filter) {\n      return `${base} ${params.filter.trim()}`\n    }\n\n    return base\n  }\n}  ","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-11-15T08:32:49+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","from":"","client":"server"},"modified":{"at":"2022-11-15T11:46:01+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1718866007099,"ct":1718866007099,"a_depth":4,"a":["apps","deeef973-ce03-4557-bf75-75a059001767","e7de598c-6f5a-4ab4-a33b-213ca86e489d","084a6995-3d56-4672-aad0-7e76d30999a0"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[],"previous":{"v":"037d486eaf2cba85","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"}},"meta":{"modified":{"at":"2024-06-20T08:46:47+02:00","by":"427610a9-39dc-4014-9176-5f72aeb23263","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"d3c037ad-275e-46f2-bbfa-0a9a41cb09bc","v":"075b710d3a59c22e","p":"92b40379-c29e-4f04-a28c-129575d864c3","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"board","template":"          <!-- :root-document-id=\"document.id\" -->\n          <!-- query-id=\"f812861f-68c8-4818-9972-be7b5474c9b1\" -->\n<ae-list  list-id=\"16e318fe-d8f9-48cf-8c15-ffa1a4020233\"\n          :search=\"controller.search\"\n          @selected=\"Aeppic.drillInto($event)\"\n          :search-options=\"{ searchAllFields: true, size: 5000 }\"\n          :sort=\"['data.name', 'id']\"\n          class=\"_CSS-list\"\n          v-if=\"locals.settings\"\n          :params=\"locals.settings.data\"\n          :param-selection-id=\"document.f.id\"\n          :param-debug=\"false\"\n          :param-readonly=\"true\"\n          :param-form=\"{ id: '92b40379-c29e-4f04-a28c-129575d864c3' }\"\n></ae-list>\n \n<!-- :param-list-form-id=\"locals.FORMS.Kunde\" -->\n<!-- :params=\"{ columns: 'data.name,data.kontakt,data.kategorie,data.branche,data.kundennummer,data.interesseAn,data.verantwortlich', designs: ',,,,,,table:avatar--small', headers: '' }\" -->\n<!-- param-sort-fields=\"data.name,data.hotness,data.kategorie,data.kundennummer,data.auftragsvolumen\" -->\n<!-- param-filter-fields=\"data.kategorie,data.branche,data.verantwortlich,data.quelle,data.hotness\" -->","css":"._CSS-list {\n  min-height:10px;\n  min-width: 10px;\n  // background-color: red;\n  height: 100%;\n}","controller":"class Controller {\n  async init() {\n    locals.FORMS = {\n      Anfrage: '9ae84206-e0bb-4d39-9200-066c2eaf0fe3',\n      BoardSettings: '43420696-8097-4fc1-88e5-c69df9821470'\n    }\n \n    const loadTemplate = await Aeppic.get('57944441-33c2-40bc-990f-8340a2e58b3a')\n    await Aeppic.getFormForDocument(loadTemplate)\n    await Aeppic.find(`a:${loadTemplate.id}`)\n\n    locals.settings = null\n\n    Aeppic.subscribe(`p:${document.id} f.id:${locals.FORMS.BoardSettings}`, { size: 1 }, (docs) => {\n      locals.settings = docs[0]\n    })\n  }\n\n  get search() {\n    const base =  'p:' + document.id + ' f.id:' + locals.FORMS.Anfrage\n\n    if (params.filter) {\n      return `${base} ${params.filter.trim()}`\n    }\n\n    return base\n  }\n}  ","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-12-06T16:25:13+00:00","by":"427610a9-39dc-4014-9176-5f72aeb23263","from":"","client":"server"},"modified":{"at":"2023-06-09T19:31:12+00:00","by":"427610a9-39dc-4014-9176-5f72aeb23263","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1718866007156,"ct":1718866007156,"a_depth":4,"a":["apps","deeef973-ce03-4557-bf75-75a059001767","e7de598c-6f5a-4ab4-a33b-213ca86e489d","92b40379-c29e-4f04-a28c-129575d864c3"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[],"previous":{"v":"8a797379ce14e792","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"}},"meta":{"modified":{"at":"2024-06-20T08:46:47+02:00","by":"427610a9-39dc-4014-9176-5f72aeb23263","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"f1f5ad72-c371-4a87-90eb-c862f99b5dbe","v":"7235283b3ae6348f","cloneOf":{"id":"4f230a3c-3ed6-445c-a885-8e2f566309f4","v":"65de4c0f6873959c","text":"board"},"originalCloneOf":{"id":"4f230a3c-3ed6-445c-a885-8e2f566309f4","v":"65de4c0f6873959c","text":"board"},"previous":{"v":"4bc7afb77c090ad0"},"p":"7da8412c-01e9-4a42-a527-6339e2c25488","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"board","template":"          <!-- :root-document-id=\"document.id\" -->\n          <!-- query-id=\"f812861f-68c8-4818-9972-be7b5474c9b1\" -->\n<ae-list  list-id=\"bace3889-c006-47c5-9c57-7f4bbe9dfe02\"\n          :search=\"locals.search\"\n          @selected=\"Aeppic.drillInto($event)\"\n          :search-options=\"{ searchAllFields: true, size: 5000 }\"\n          :sort=\"['data.name', 'id']\"\n          class=\"_CSS-list\"\n          v-if=\"locals.settings && locals.search\"\n          :params=\"locals.settings.data\"\n          :param-readonly=\"true\" \n></ae-list>\n\n    <!-- :param-list-form-id=\"locals.FORMS.Kunde\" -->\n<!-- :params=\"{ columns: 'data.name,data.kontakt,data.kategorie,data.branche,data.kundennummer,data.interesseAn,data.verantwortlich', designs: ',,,,,,table:avatar--small', headers: '' }\" -->\n<!-- param-sort-fields=\"data.name,data.hotness,data.kategorie,data.kundennummer,data.auftragsvolumen\" -->\n<!-- param-filter-fields=\"data.kategorie,data.branche,data.verantwortlich,data.quelle,data.hotness\" -->\n","css":"._CSS-list {\n  height: 100%;\n}","controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Wartung: 'c211ffaa-14f8-4439-9126-f42f65ac4424',\n      BoardSettings: '43420696-8097-4fc1-88e5-c69df9821470',\n      Objekt: '3d678f2a-65f5-4dc1-a643-c5998fa33f32',\n    }\n\n    locals.settings = null\n    locals.search = ''\n\n    locals.search = `a:${document.a[0]} f.id:${this.FORMS.Wartung}`\n\n    Aeppic.subscribe(`p:${document.id} f.id:${this.FORMS.BoardSettings}`, { size: 1 }, (docs) => {\n      locals.settings = docs[0]\n    })\n  }\n}    ","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-03-08T08:52:24+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-04-01T13:51:39+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1648821099554,"ct":1646729544811,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","7da8412c-01e9-4a42-a527-6339e2c25488"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"12c36361-5db2-4d18-84ae-85e36b8cb032","v":"initial","p":"9927c3c7-8ce4-4c25-bcec-3385cf1370db","f":{"id":"design-form","v":"3a761d06f59c46c1","text":"Design"},"data":{"name":"board--empty-state","template":"<div class=\"_CSS-card\">\n  <span>\n  Bitte zuerst den Fragebogen überprüfen\n  </span>\n  \n  <div class=\"dbps-button\" @click=\"Aeppic.navigateTo(document.id)\" title=\"Fragebogen Einstellungen\" >\n    <ae-icon class=\"fa fa-question\"></ae-icon>\n  </div>\n</div>","css":"._CSS {\n  flex: 1;\n}\n\n._CSS-card {\n  background: white;\n  padding: 12px;\n  min-height: 80px;\n  display: flex;\n  align-items: center;\n}","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-10-13T10:11:33+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2020-10-13T10:11:33+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1602583893563,"ct":1602583893563,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","9927c3c7-8ce4-4c25-bcec-3385cf1370db"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"aa2b78ab-dc05-4b8b-962e-4a6930d4da92","v":"initial","p":"61ccaf6b-af84-4908-aa73-785dffd83c5f","f":{"id":"design-form","v":"3a761d06f59c46c1","text":"Design"},"data":{"name":"board--empty-state","template":"<div class=\"_CSS-card\">\n  <span>\n  Bitte zuerst die Drag-and-Drop Einstellungen überprüfen\n  </span>\n  \n  <div class=\"dbps-button\" @click=\"Aeppic.navigateTo(document.id)\" title=\"Drag-and-Drop Einstellungen\" >\n    <ae-icon class=\"fa fa-cog\"></ae-icon>\n  </div>\n</div>","css":"._CSS {\n  flex: 1;\n}\n\n._CSS-card {\n  background: white;\n  padding: 12px;\n  min-height: 80px;\n  display: flex;\n  align-items: center;\n}","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-10-13T10:11:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2020-10-13T10:11:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1602583892096,"ct":1602583892096,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","61ccaf6b-af84-4908-aa73-785dffd83c5f"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"393fa439-df82-4a50-a6aa-d7a56f35ef13","v":"b0631b136ff261c7","previous":{"v":"ed7371c8c6f23a52"},"p":"28527c6d-4f85-4881-8f5d-948021a60ad0","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"board-card","template":"<div class=\"p-2 border rounded-lg bg-white flex flex-col overflow-hidden\"\n    @click.stop=\"$emit('selected', document)\"\n>\n\n  <div class=\"flex gap-2 mb-1 font-semibold\">\n    <ae-design name=\"icon\" :document=\"document\"></ae-design>\n    <ae-design name=\"title\" :document-id=\"locals.unitId\"></ae-design>\n  </div>\n\n  <div class=\"flex items-center mb-2 gap-1 self-end w-full\">\n    <div class=\"truncate\">\n    {{data.personName}}\n    </div>\n    <!-- <div class=\"text-sm truncate\">\n    {{data.personTelefon}}\n    </div> -->\n  </div>\n\n  <div v-if=\"data.beschreibung.length\" class=\"max-h-8 mb-2 text-xs\">\n    {{ data.beschreibung.slice(0, 200) }}\n  </div>\n\n  <div class=\"border-t flex flex-col bg-white -mx-2 -mb-2 p-2 text-sm\">\n    <ae-design name=\"title\" :document-id=\"locals.buildingId\"></ae-design>\n\n    <div class=\"flex justify-between\">\n      <div class=\"flex gap-1\">\n        <ae-design class=\"text-lg\" v-for=\"verantwortlich of data.verantwortlich\" name=\"avatar--resizes-with-font\" :document-id=\"verantwortlich.id\"></ae-design>\n      </div>\n      <div>\n        {{ Aeppic.DateTime.fromISO(document.created.at).toLocaleString(Aeppic.DateTime.DATETIME_SHORT) }}\n      </div>\n    </div>\n  </div>\n</div> ","css":"","controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Building: 'b433eabd-abe6-4564-940f-a918f71037fb',\n      Unit: '7105a939-989c-4154-96e8-44f17f556b2a',\n    }\n\n    locals.buildingId = document.a[document.a_forms.findIndex(aForm => aForm === this.FORMS.Building)]\n    locals.unitId = document.a[document.a_forms.findIndex(aForm => aForm === this.FORMS.Unit)]\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-05-04T12:49:16+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-05-04T13:27:46+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1651670866947,"ct":1651668556207,"a_depth":4,"a":["apps","86189c5a-b9f4-445a-879f-d94574960df0","15292d56-6806-4263-b6d0-9194687203e1","28527c6d-4f85-4881-8f5d-948021a60ad0"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"439ca9a4-6b74-4e7b-b74a-eeb5195cea77","v":"67750ea737974746","cloneOf":{"id":"af41d635-b94e-47d6-b9c7-eb0943513ffb","v":"initial","text":"board-card"},"originalCloneOf":{"id":"af41d635-b94e-47d6-b9c7-eb0943513ffb","v":"initial","text":"board-card"},"previous":{"v":"initial"},"p":"0deb4864-cbb6-420c-99ee-337c7444ab24","f":{"id":"design-form","v":"24435d748c76f819","text":"Design"},"data":{"name":"board-card","template":"<div class=\"_CSS-boardcard\" \r\n    :class=\"{ '_CSS-boardcard--with-background': !params.withoutBackground}\"\r\n    @click.stop=\"$emit('selected', document)\"\r\n    :style=\"[data.erledigt == true? {color: 'var(--ae-background-300)'} : {}]\">\r\n\r\n    <div class=\"_CSS-boardcard--top\">\r\n        <div class=\"_CSS-boardcard-text _CSS-boards-text--multilineOverflow\">\r\n            <ae-design name=\"title\" :document=\"document\"></ae-design>\r\n        </div>\r\n\r\n        <div class=\"_CSS-boardcard-img--wrapper\" v-if=\"data.verantwortlich && data.verantwortlich.length\">\r\n            <ae-design title=\"Verantwortliche\" class=\"_CSS-boardcard-img\" name=\"avatar--tiny\"\r\n                :document-id=\"data.verantwortlich[0].id\"></ae-design>\r\n            <ae-design class=\"_CSS-boardcard-img\" v-if=\"data.verantwortlich.length === 2\" name=\"avatar--tiny\"\r\n                :document-id=\"data.verantwortlich[1].id\"></ae-design>\r\n\r\n            <div :title=\"locals.tooltipWeitereVerantwortliche\">\r\n                <ae-design class=\"_CSS-boardcard-img\" v-if=\"data.verantwortlich.length > 2\" name=\"avatar--tiny\"\r\n                    :document-id=\"data.verantwortlich[1].id\"\r\n                    :param-overwrite-display-with=\"'+' + (data.verantwortlich.length - 1)\"\r\n                    :title=\"locals.tooltipWeitereVerantwortliche\"></ae-design>\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    <div class=\"_CSS-boardcard--bottom\">\r\n        <div v-if=\"data.bisStart\" class=\"_CSS-boardcard-date\">\r\n            {{controller.date}}\r\n        </div>\r\n\r\n        <div v-if=\"data.bisStart\" :style=\"[Aeppic.DateTime.fromISO(data.bisStart).diffNow('days').days < 0 ? {color: 'var(--ae-accent-red-600)'} : {color: 'var(--ae-accent-green-600)'}]\"\r\n            class=\"_CSS-boardcard-timespan\">\r\n            {{controller.remnantDurration}}\r\n        </div>\r\n\r\n        <div title=\"Anhänge\">\r\n            <ae-icon class=\"fal fa-paperclip _CSS-boardcard-icon\" v-if=\"data.anhaenge.length\"></ae-icon>\r\n        </div>\r\n        <div title=\"Kommentare\">\r\n            <ae-icon class=\"fal fa-comment _CSS-boardcard-icon\" v-if=\"locals.comments.length > 0\"></ae-icon>\r\n        </div>\r\n        <div :title=\"locals.readableDuration\" v-if=\"locals.duration\">\r\n            <ae-icon class=\"fal fa-clock _CSS-boardcard-icon\"> </ae-icon>\r\n        </div>\r\n\r\n        <template v-if=\"data.prioritaet\">\r\n            <div title=\"Hohe Priorität\" v-if=\"data.prioritaet === 3\">\r\n                <ae-icon class=\"fal fa-arrow-circle-up _CSS-boardcard-icon\"></ae-icon>\r\n            </div>\r\n            <div title=\"Mittlere Priorität\" v-else-if=\"data.prioritaet === 2\">\r\n                <ae-icon class=\"fal fa-circle _CSS-boardcard-icon\"></ae-icon>\r\n            </div>\r\n            <div title=\"Niedrige Priorität\" v-else-if=\"data.prioritaet === 1\">\r\n                <ae-icon class=\"fal fa-arrow-circle-down _CSS-boardcard-icon\"></ae-icon>\r\n            </div>\r\n        </template>\r\n    </div>\r\n</div>","css":"._CSS-boardcard {\r\n  padding: var(--ae-size-1) var(--ae-size-2);\r\n  min-height: 4.2rem;\r\n  margin: 0;\r\n\r\n  border: var(--ae-border-color) solid var(--ae-border-width);\r\n  border-radius: var(--ae-border-radius);\r\n\r\n  cursor: pointer;\r\n}\r\n\r\n._CSS-boardcard--with-background {\r\n  background-color: var(--ae-ui-background);\r\n}\r\n\r\n._CSS-boardcard-img--wrapper{\r\n  display: flex;\r\n}\r\n\r\n._CSS-boardcard--top {\r\n  display: flex;\r\n  line-height: var(--ae-size-6);\r\n  padding-bottom: var(--ae-size-1);   \r\n}\r\n\r\n._CSS-boardcard--bottom {\r\n  flex-flow: row;\r\n  display: flex;\r\n  justify-content: flex-end;\r\n}\r\n\r\n._CSS-boardcard-text {\r\n  font-size: var(--ae-font-size);\r\n  flex-grow: 1; \r\n}\r\n\r\n._CSS-boardcard-date {\r\n  font-size: var(--ae-font-size-2);\r\n  padding-right: var(--ae-size-1); \r\n  margin-top: var(--ae-size-1);  \r\n}\r\n\r\n._CSS-boardcard-date--today {\r\n  font-size: var(--ae-font-size-4);\r\n  margin-top: var(--ae-size-1);\r\n}\r\n\r\n._CSS-boardcard-timespan {\r\n  font-size: var(--ae-font-size-2);\r\n  flex-grow:3; \r\n  margin-top: var(--ae-size-1);\r\n}\r\n\r\n._CSS-boardcard-img{                              \r\n  margin: 2px;\r\n}\r\n\r\n._CSS-boardcard-icon {\r\n  margin-right: 2px;\r\n  font-size: var(--ae-size-3);\r\n}\r\n\r\n._CSS-boards-text--multilineOverflow {\r\n   display: -webkit-box;\r\n   -webkit-box-orient: vertical;\r\n   -webkit-line-clamp: 3;\r\n   overflow: hidden;\r\n}","controller":"class Controller {\r\n  async init() {\r\n    locals.comments = []\r\n    locals.tooltipWeitereVerantwortliche = ''\r\n\r\n    locals.readableDuration = ''\r\n    locals.duration = 0\r\n\r\n    locals.tooltipWeitereVerantwortliche = await this.updateWeitereVerantwortliche()\r\n    this.subscribeComments()\r\n\r\n    Aeppic.subscribeQuery('dd148098-bd15-4baa-a4ce-df14e495c629', document.id, (documents) => {\r\n      const { readable, millis } = this.totalDuration(documents)\r\n      locals.readableDuration = readable\r\n      locals.duration = millis\r\n    }) \r\n  }\r\n\r\n  async updateWeitereVerantwortliche() {\r\n      if (!data || !data.verantwortlich || data.verantwortlich.length <= 1) {\r\n        return ''\r\n      }\r\n\r\n      const others = data.verantwortlich.slice(1)\r\n      let title = '' \r\n      \r\n      for (const other of others) {\r\n        const va = await Aeppic.get(other)\r\n\r\n        if (title.length > 0) {\r\n          title += '\\n'\r\n        }\r\n\r\n        if (va && va.data.name) {\r\n          title += `${va.data.name}`\r\n        } else {\r\n          title += `Unbenannt`\r\n        }\r\n      }\r\n  \r\n      return title\r\n  }\r\n\r\n  subscribeComments() {\r\n    Aeppic.subscribe(`p:${document.id} f.id:cf155969-ede1-43a4-9b10-3a697b19db91`, async (documents)=>{\r\n      locals.comments = documents\r\n      // locals.comments.sort((a,b) => this.sortComment(a,b))\r\n\r\n      // const all = await Aeppic.getAll(locals.comments.map(c => c.modified.by))  \r\n      // const allSortedBackwards = all.reverse()\r\n      // const unique = allSortedBackwards.reduce((x, y) => x.findIndex(e=>e != null && y != null && e.id==y.id)<0 ? [...x, y]: x, [])\r\n \r\n      // locals.commenters = unique\r\n      // // locals.commenters.push(...all, ...all)\r\n      // locals.commentersOverflow = []\r\n\r\n      // const LIMIT = 5\r\n      \r\n      // if (locals.commenters.length > LIMIT) {\r\n      //   locals.commentersOverflow = locals.commenters.splice(LIMIT, locals.commenters.length - LIMIT)\r\n      // }\r\n    })\r\n  }\r\n\r\n  get date() {\r\n    if (!data.bisStart) {\r\n      return ''\r\n    }\r\n\r\n    const date = DateTime.fromISO(data.bisStart)\r\n\r\n    const diff = date.diffNow('days').days\r\n\r\n    if (diff >= -1 && diff < 0) {\r\n      return 'Heute'\r\n    }\r\n     \r\n    return Aeppic.DateTime.fromISO(data.bisStart).toLocaleString(Aeppic.DateTime.DATE_SHORT)\r\n  }\r\n\r\n  get remnantDurration() {\r\n    if (!data.bisStart) {\r\n      return ''\r\n    }\r\n\r\n    const durationFromToday = Aeppic.DateTime.fromISO(data.bisStart).diffNow('days')\r\n\r\n    const differenceCharacter = durationFromToday.days > 0 ? '+' : ''   \r\n\r\n    if (durationFromToday.days >= -1 && durationFromToday.days < 0) { \r\n      return ''\r\n    }\r\n\r\n    if ((durationFromToday.days < -1 && durationFromToday.days > -2) || (durationFromToday.days > 0 && durationFromToday.days < 1)) {\r\n      return differenceCharacter + Math.ceil(durationFromToday.days) + ' Tag'\r\n    }\r\n   \r\n    return differenceCharacter + Math.ceil(durationFromToday.days) + ' Tage'\r\n  }\r\n\r\n  \r\n  totalDuration(trackings) {\r\n    const duration = trackings.reduce((prev, cur) => {\r\n      if (prev) {\r\n        return Aeppic.DateTimeDuration.fromObject(cur.data.dauer).plus(prev)\r\n      }\r\n\r\n      return Aeppic.DateTimeDuration.fromObject(cur.data.dauer)\r\n    }, null)\r\n\r\n    if (duration) {\r\n      return { readable: duration.toFormat('hh:mm'), millis: duration.valueOf() }\r\n    }\r\n\r\n    return {}\r\n  }\r\n\r\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-07-01T14:40:04+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2020-09-01T09:49:29+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1598953769376,"ct":1593614404540,"a_depth":4,"a":["apps","59edbdbc-2cab-426a-bb42-6e57c5158e4f","3be7e887-1bcd-4c3c-979f-b20a986c4c48","0deb4864-cbb6-420c-99ee-337c7444ab24"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"4d434da7-7192-4efe-aa3e-3799450dbb16","v":"initial","p":"5c3d462b-b1fa-4323-8457-cee88cfdf51f","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"board-card","applies":"","template":"<div :style=\"[data.abgeschlossen == true? {color: 'var(--ae-background-300)'} : {}]\">\n<div  class=\"_CSS-boardcard _CSS-boardcard__marker\" @click.stop=\"$emit('selected', document)\"\n      :style=\"[ locals.color ? { 'border-left-color': locals.color +'!important'} : '' ]\">\n    <div class=\"_CSS-boardcard--top\">\n        <div class=\"_CSS-boardcard-text\">\n            <ae-design name=\"title\" :document=\"document\"></ae-design>\n        </div>\n\n        <div  class=\"_CSS-boardcard-img--wrapper\" \n              v-if=\"data.verantwortlich && data.verantwortlich.length\">\n            <ae-design title=\"Verantwortliche\" class=\"_CSS-boardcard-img\" name=\"avatar--tiny\"\n                :document-id=\"data.verantwortlich[0].id\"></ae-design>\n            <ae-design class=\"_CSS-boardcard-img\" v-if=\"data.verantwortlich.length === 2\" name=\"avatar--tiny\"\n                :document-id=\"data.verantwortlich[1].id\"></ae-design>\n\n            <div :title=\"locals.tooltipWeitereVerantwortliche\">\n                <ae-design class=\"_CSS-boardcard-img\" v-if=\"data.verantwortlich.length > 2\" name=\"avatar--tiny\"\n                    :document-id=\"data.verantwortlich[1].id\"\n                    :param-overwrite-display-with=\"'+' + (data.verantwortlich.length - 1)\"\n                    :title=\"locals.tooltipWeitereVerantwortliche\"></ae-design>\n            </div>\n        </div>\n    </div>\n    <div class=\"_CSS-boardcard-text--customer\" :title=\"data.patientennummer\">\n        {{data.patientennummer}}\n    </div>\n    <div class=\"_CSS-boardcard--bottom\">\n        <div v-if=\"document.created.at\" class=\"_CSS-boardcard-date\">\n            {{controller.date}}\n        </div>\n        <div :style=\"[Aeppic.DateTime.fromISO(document.created.at).diffNow('days').days < 0 ? {color: 'var(--ae-accent-red-600)'} : {color: 'var(--ae-accent-green-600)'}]\"\n             class=\"_CSS-boardcard-timespan\" \n             v-if=\"document.created.at\">\n            {{controller.remnantDurration}}\n        </div>\n        <div title=\"Anhänge\">\n            <ae-icon class=\"fal fa-paperclip _CSS-boardcard-icon\" v-if=\"data.anhaengeAufnahme.length\"></ae-icon>\n        </div>\n        <div title=\"E-Mails\">\n            <ae-icon class=\"fal fa-envelope _CSS-boardcard-icon\" v-if=\"data.email.length\"></ae-icon>\n        </div>\n    </div>\n</div>\n</div>","css":"._CSS-boardcard {\n  padding: var(--ae-size-1) var(--ae-size-2);\n  border: var(--ae-border-color) solid var(--ae-border-width);\n  border-left-width: var(--ae-size-1);\n  border-left-color: var(--ae-background-300);\n  border-radius: var(--ae-border-radius);\n  min-width: 0;\n  margin: 0;\n  cursor: pointer;\n  background-color: var(--ae-ui-background);  \n}\n\n._CSS-boardcard__marker {\n  border-left: var(--ae-size-1) solid var(--ae-background-300) !important;  \n}\n\n._CSS-boardcard--top {\n  display: flex;\n  line-height: var(--ae-size-6);\n  padding-bottom: var(--ae-size-1);   \n}\n\n._CSS-boardcard-text {\n  font-size: var(--ae-font-size);\n  flex-grow: 1; \n  overflow: hidden;\n}\n\n._CSS-boardcard-text--customer {\n  font-size: var(--ae-font-size-2);\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  width: 70%;\n  margin-bottom: var(--ae-size-1);\n  margin-top: -7px;\n}\n\n._CSS-boardcard-img--wrapper{\n  display: flex;\n}\n\n._CSS-boardcard-img{                              \n  margin: 2px;\n}\n\n._CSS-boardcard--bottom {\n  flex-flow: row;\n  display: flex;\n  justify-content: flex-end;\n}\n\n._CSS-boardcard-icon {\n  font-size: var(--ae-size-3);\n  display: flex;\n  align-items: flex-end; \n  margin-top: var(--ae-size-2);  \n  margin-right: 2px;\n}\n\n._CSS-boardcard-date {\n  font-size: var(--ae-font-size-2);\n  padding-right: var(--ae-size-1); \n  margin-top: var(--ae-size-1);  \n}\n\n._CSS-boardcard-date--today {\n  font-size: var(--ae-font-size-4);\n  margin-top: var(--ae-size-1);\n}\n\n._CSS-boardcard-timespan {\n  font-size: var(--ae-font-size-2);\n  flex-grow: 2; \n  margin-top: var(--ae-size-1);\n}","controller":"class Controller {\r\n  async init() {\r\n    locals.tooltipWeitereVerantwortliche = ''\r\n    locals.category = {}\r\n    locals.color = ''\r\n\r\n    locals.tooltipWeitereVerantwortliche = await this.updateWeitereVerantwortliche()\r\n\r\n    locals.category = await Aeppic.get(data.grundDerBeschwerde)\r\n    locals.color = locals.category.data.color\r\n  }\r\n\r\n  async updateWeitereVerantwortliche() {\r\n      if (!data || !data.verantwortlich || data.verantwortlich.length <= 1) {\r\n        return ''\r\n      }\r\n\r\n      const others = data.verantwortlich.slice(1)\r\n      let title = '' \r\n      \r\n      for (const other of others) {\r\n        const va = await Aeppic.get(other)\r\n\r\n        if (title.length > 0) {\r\n          title += '\\n'\r\n        }\r\n\r\n        if (va && va.data.name) {\r\n          title += `${va.data.name}`\r\n        } else {\r\n          title += `Unbenannt`\r\n        }\r\n      }\r\n  \r\n      return title\r\n  }\r\n\r\n  get date() {\r\n    \r\n    if (!document.created.at) {\r\n      return ''\r\n    }\r\n\r\n    const date = DateTime.fromISO(document.created.at)\r\n\r\n    const diff = date.diffNow('days').days\r\n\r\n    if (diff >= -1 && diff < 0) {\r\n      return 'Heute'\r\n    }\r\n     \r\n    return Aeppic.DateTime.fromISO(document.created.at).toLocaleString(Aeppic.DateTime.DATE_SHORT)\r\n  }\r\n\r\n  get remnantDurration() {\r\n    if (!document.created.at) {\r\n      return ''\r\n    }\r\n\r\n    const durationFromToday = Aeppic.DateTime.fromISO(document.created.at).diffNow('days')\r\n\r\n    const differenceCharacter = durationFromToday.days > 0 ? '+' : ''   \r\n\r\n    if (durationFromToday.days >= -1 && durationFromToday.days < 0) { \r\n      return ''\r\n    }\r\n\r\n    if ((durationFromToday.days < -1 && durationFromToday.days > -2) || (durationFromToday.days > 0 && durationFromToday.days < 1)) {\r\n      return differenceCharacter + Math.ceil(durationFromToday.days) + ' Tag'\r\n    }\r\n   \r\n    return differenceCharacter + Math.ceil(durationFromToday.days) + ' Tage'\r\n  }\r\n}","packages":[]},"locks":[],"created":{"at":"2020-05-08T08:51:11+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2020-05-08T08:51:11+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1588927871997,"ct":1588927871997,"a_depth":4,"a":["apps","f93ac233-7aa7-4561-a3b3-d8ebda0ee514","fc09d59c-bdef-4b1e-854e-d907bc11b295","5c3d462b-b1fa-4323-8457-cee88cfdf51f"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"6108a9f4-ba32-4132-8ecb-b2f45d44cac8","v":"d338c0694bbb18c5","p":"9ae84206-e0bb-4d39-9200-066c2eaf0fe3","f":{"id":"design-form","v":"22a757f630104010","text":"Design"},"data":{"name":"board-card","template":"<div class=\"bp-card bp-card--bordered _CSS-card\" @click.stop=\"$emit('selected', document)\">\n  <div class=\"_CSS-color_sidebar\" :title=\"locals.stampVisualization.data.label ||  locals.stampVisualization.data.name\" v-if=\"locals.stampVisualization && locals.stampVisualization.data.color\" :style=\"{ 'background': 'linear-gradient(90deg, ' + locals.stampVisualization.data.color + ' 100%, rgba(255,255,255,0) 100%) ' }\">\n  </div>\n  <div class=\"_CSS-labels\">\n    <ae-design class=\"_CSS-label\" v-for=\"label of data.labels\" name=\"colored-pill\" :params=\"{ fieldName: 'color', expand: true }\" :document-id=\"label.id\"></ae-design>\n    <ae-design class=\"_CSS-label\" v-for=\"quelle of data.quelle\" name=\"colored-pill\" :params=\"{ fieldName: 'farbe', expand: true }\" :document-id=\"quelle.id\"></ae-design>\n    <span style=\"flex:1\"></span>\n    <ae-design v-for=\"vm in data.vertriebsMitarbeiter\" :document=\"vm\" name=\"avatar--tiny,avatar,title\"></ae-design>\n  </div>\n  <div class=\"font-semibold text-gray-600\">{{data.customerName}}</div>\n  <ae-design class=\"_CSS-title\" :param-fit=\"true\" name=\"title\" :document=\"document\"></ae-design>\n\n  <div class=\"_CSS-assignees\">\n    <ae-design name=\"avatar--resizes-with-font\" v-for=\"verantwortlich of data.verantwortlich\" :document-id=\"verantwortlich.id\"></ae-design>\n  </div>\n\n  <div v-if=\"locals.nextActivity && !locals.nextActivity.data.erledigt\" class=\"_CSS-next-activity\">\n    <div class=\"_CSS-next-activity__label\" title=\"Nächster Termin (oder zuletzt rückliegend)\">\n      Nächste Aktivität\n    </div>\n    <ae-design name=\"appointment-info\" :document=\"locals.nextActivity\" :params=\"{ hidePath: true }\"></ae-design>\n    <!-- {{ locals.nextActivity }} -->\n    <!-- <div class=\"_CSS-next-activity__info\" title=\"Nächster Termin (oder zuletzt rückliegend)\">\n      <ae-icon class=\"fa fa-question-circle\" style=\"color:var(--ae-background-500);font-size:var(--ae-font-size-2);\"></ae-icon>\n    </div> -->\n  </div>\n</div>\n ","css":"._CSS ._CSS-card {\n  display: flex;\n  flex-flow: column;\n\n  align-items: flex-start;\n  xbox-shadow: var(--ae-shadow-1);\n}\n\n._CSS-card {\n  overflow: hidden;\n  position: relative;\n}\n\n._CSS-color_sidebar {\n  position:absolute;\n  left:0px;\n  top:0;\n  width: 6px;\n  bottom:0;\n}\n\n._CSS-labels {\n  display: flex;\n  flex-wrap: wrap;\n  flex:1;\n  width:100%;\n}\n\n._CSS-label~._CSS-label {\n  margin: 0 var(--ae-space-1);\n}\n\n._CSS-title {\n}\n\n._CSS-assignees {\n  width: 100%;\n  display: flex;\n  flex-wrap: wrap;\n  justify-content: flex-end;\n}\n\n._CSS-next-activity {\n  width: 100%;\n  font-size: var(--ae-font-size-3);\n  padding: var(--ae-space-1);\n  margin-top: var(--ae-space-1);\n  background: var(--ae-background-100);\n  border-radius: var(--ae-border-radius);\n  max-height: 100px;\n  \n  overflow: hidden;\n  xwhite-space: nowrap;\n  xtext-overflow: ellipsis;\n}\n\n._CSS-next-activity__label {\n  font-size: var(--ae-font-size-1);\n}\n\n._CSS-what {\n\n}\n\n/*._CSS-next-activity__info {\n  position: absolute;\n  left: var(--ae-space-2);\n  bottom: var(--ae-space-2);\n}\n*/","controller":"class Controller {\n  async init() {\n    locals.nextActivities = []\n    locals.nextActivity = null\n\n    locals.stampVisualization = null\n\n    if (params.visualizeWorkflowStamps?.id) {\n      const stampMatchingWorkflow = document.stamps.find(s => s.workflow?.id === params.visualizeWorkflowStamps?.id)\n      locals.stampVisualization = await Aeppic.get(stampMatchingWorkflow.type)\n    }\n\n    // const { next, all } = await this.getActivities()\n\n    // locals.nextActivities = all\n    // locals.nextActivity = next\n  }\n}\n \n  ","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-12-07T13:38:42+00:00","by":"427610a9-39dc-4014-9176-5f72aeb23263","from":"","client":"server"},"modified":{"at":"2023-03-01T16:14:56+00:00","by":"427610a9-39dc-4014-9176-5f72aeb23263","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1721206352359,"ct":1721206352359,"a_depth":4,"a":["apps","deeef973-ce03-4557-bf75-75a059001767","e7de598c-6f5a-4ab4-a33b-213ca86e489d","9ae84206-e0bb-4d39-9200-066c2eaf0fe3"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[],"previous":{"v":"d2931f8fed2e539b","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"}},"meta":{"modified":{"at":"2024-07-17T08:52:32+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"83a5973b-7753-4132-bb7c-698be1b5149c","v":"c70a866d37104320","previous":{"v":"44ddbd7726d37665"},"p":"6157a32a-a989-4798-94d5-2674b1675919","f":{"id":"design-form","v":"e3fe9ece11aabc5e","text":"Design"},"data":{"name":"board-card","applies":"","template":"<div class=\"_CSS-card\" @click=\"Aeppic.navigateTo(document.id)\">\n\t<div class=\"_CSS-card__primary\">\n    <div class=\"_CSS-card-intro\">\n      <span v-if=\"data.storyPoints\" :title=\"'Aufwand: ' + data.storyPoints\" class=\"fa-layers fa-fw\">\n        <ae-icon class=\"fa fa-circle\" style=\"color:black;/*var(--ae-primary)*/\"></ae-icon>\n        <span class=\"fa-layers-text fa-inverse\" data-fa-transform=\"shrink-4\">{{ data.storyPoints }}</span>\n      </span>\n      <ae-design class=\"_CSS-card-title\" name=\"title\" :document=\"document\"></ae-design>\n\t\t</div>\n    <div class=\"_CSS-card-assignees\" v-if=\"data.verantwortlich && data.verantwortlich.length\">\n\t\t\t<ae-design name=\"avatar--tiny\" :document-id=\"data.verantwortlich[0].id\"></ae-design>\n\t\t\t<ae-design v-if=\"data.verantwortlich.length === 2\" name=\"avatar--tiny\" :document-id=\"data.verantwortlich[1].id\"></ae-design>\n\t\t\t<ae-design v-if=\"data.verantwortlich.length > 2\" name=\"avatar--tiny\" :document-id=\"data.verantwortlich[1].id\" :param-overwrite-display-with=\"'+' + (data.verantwortlich.length - 1)\" :title=\"locals.tooltipWeitereVerantwortliche\"></ae-design>\n\t\t</div>\n\t</div>\n\t<div class=\"_CSS-card__secondary\">\n\t\t<div class=\"_CSS-card-categories\">\n\t\t\t<ae-design class=\"_CSS-card-category\" name=\"icon\" v-for=\"category in data.kategorie\" :document-id=\"category.id\" :key=\"category.id\"></ae-design>\n\t\t</div>\n\t\t<ae-design v-if=\"data.anhaenge && data.anhaenge.length\" name=\"paperclip--small\" :document=\"document\"></ae-design>\n\t</div>\n</div>","css":"._CSS {\n  display: flex;\n  height: 4.5rem;\n  padding: 0.25rem 1rem 0.1rem 0.5rem;\n\n  background-color: rgb(231, 231, 234);\n\n  border-bottom: 1px solid var(--ae-primary-l1);\n  border-left: 4px solid var(--ae-primary);\n  border-radius: 2px;\n  box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.16), 0 0 1px 0 rgba(0, 0, 0, 0.16);\n}\n\n._CSS-card {\n  flex: 1;\n  margin:0;\n  display: flex;\n  flex-flow: column;\n  justify-content: space-between;\n  overflow: hidden;\n  cursor: pointer;\n  padding: 0 0 0.2rem;\n}\n\n._CSS-card__primary {\n  flex: 1;\n  display: flex;\n  justify-content: space-between;\n  align-items: flex-start;\n}\n\n._CSS-card-intro {\n  margin-top: 2px;\n  display:flex;\n  flex-direction:row;\n  align-items:center;\n  overflow: hidden;\n}\n\n._CSS-card-intro > *:nth-child(2) {\n  margin-left: 0.1em;\n}\n\n._CSS-card-title {\n  flex: 1;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n}\n\n._CSS-card__secondary {\n  flex: 1;\n  display: flex;\n  justify-content: space-between;\n  align-items: flex-end;\n}\n\n._CSS-card-assignees {\n  display: flex;\n  flex-flow: row;\n}\n\n._CSS-card-categories {\n  display: grid;\n  grid-auto-flow: column;\n  grid-column-gap: 5px; \n}\n","controller":"class Controller {\r\n  async init() {\r\n    locals.tooltipWeitereVerantwortliche = ''\r\n    locals.tooltipWeitereVerantwortliche = await this.updateWeitereVerantwortliche()\r\n  }\r\n  \r\n  async updateWeitereVerantwortliche() {\r\n    if (!data || !data.verantwortlich || data.verantwortlich.length <= 1) {\r\n      return ''\r\n    }\r\n\r\n    const others = data.verantwortlich.slice(1)\r\n    let title = '' \r\n     \r\n    for (const other of others) {\r\n      const va = await Aeppic.get(other)\r\n      if (va && va.data.name) {\r\n        if (title.length > 0) {\r\n          title += '\\n'\r\n        }\r\n        title += `${va.data.name}`\r\n      }  \r\n    }\r\n \r\n    return title\r\n  }\r\n}","packages":[]},"locks":[],"created":{"at":"2017-12-21T15:16:15+01:00","by":"","from":"","client":"4fa34ac2-e30f-4d1b-a3ae-f9b4984999df"},"modified":{"at":"2018-12-21T11:04:15+00:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1545390255201,"ct":1513865773043,"a_depth":4,"a":["apps","aed1ba1c-9095-4aca-8176-74a37325f0e5","58cc45fb-3fb3-45e8-b61d-4b89899e357a","6157a32a-a989-4798-94d5-2674b1675919"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"9354291d-a4cc-4747-9c61-16d5403d162f","v":"1b526bcd328d887b","previous":{"v":"ae8eaa6d84944714"},"p":"fbb5234f-66e1-4545-b087-ff1961f9ceab","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"board-card","template":"<div class=\"hover:bg-gradient-to-br hover:from-slate-50 cursor-pointer hover:to-sky-50 p-2 bg-white border rounded drop-shadow hover:bg-blue-200 _CSS-card divide-y divide-gray-300 gap-2\" @click.stop=\"$emit('selected', document)\">\n  <div class=\"flex flex-row gap-1 items-center mb-1\">\n    <ae-design v-for=\"vm in data.bearbeiter\" :document=\"vm\" class=\"scale-75\" name=\"avatar--tiny,avatar,title\"></ae-design>\n    <ae-design name=\"title\"  :document=\"locals.anfrage\" class=\"font-semibold text-gray-600 truncate block flex-1\"></ae-design>\n  </div>\n  <div class=\"flex flex-row gap-2 p-1 justify-items-center xbg-red-500 w-full\">\n    <div class=\"flex flex-col flex-1 items-start gap-1\"> \n      <ae-design :param-fit=\"true\" name=\"title\" :document=\"document\"></ae-design>\n      <ae-design v-if=\"locals.anfrage\" v-for=\"vm in locals.anfrage.data.vertriebsMitarbeiter\" class=\"opacity-50\" :document=\"vm\" name=\"title\"></ae-design>\n    </div>  \n    <div v-if=\"locals.thumbnail\" class=\"drop-shadow border rounded-lg border-gray-200 overflow-hidden flex items-center justify-center\">\n      <ae-design class=\"w-24 h-24\" name=\"thumbnail\" :document=\"locals.thumbnail\" param-field-name=\"datei\">\n      </ae-design>\n    </div>\n  </div>\n  <div class=\"_CSS-color_sidebar\" v-if=\"locals.stampVisualization?.data?.color\" :title=\"locals.stampVisualization.data.label ||  locals.stampVisualization.data.name\" :style=\"{ 'background': 'linear-gradient(90deg, ' + locals.stampVisualization.data.color + ' 100%, rgba(255,255,255,0) 100%) ' }\">\n  </div>\n<!-- \n  <div v-if=\"locals.nextActivity && !locals.nextActivity.data.erledigt\" class=\"_CSS-next-activity\">\n    <div class=\"_CSS-next-activity__label\" title=\"Nächster Termin (oder zuletzt rückliegend)\">\n      Nächste Aktivität\n    </div>\n    <ae-design name=\"appointment-info\" :document=\"locals.nextActivity\" :params=\"{ hidePath: true }\"></ae-design>\n    !-- {{ locals.nextActivity }} --\n    !-- <div class=\"_CSS-next-activity__info\" title=\"Nächster Termin (oder zuletzt rückliegend)\">\n      <ae-icon class=\"fa fa-question-circle\" style=\"color:var(--ae-background-500);font-size:var(--ae-font-size-2);\"></ae-icon>\n    </div> --\n  </div> -->\n</div>\n ","css":"._CSS ._CSS-card {\n  display: flex;\n  flex-flow: column;\n\n  align-items: flex-start;\n  xbox-shadow: var(--ae-shadow-1);\n}\n\n._CSS-customer-request {\n  font-size: smaller;\n  // background-color: red;\n}\n\n._CSS-card {\n  overflow: hidden;\n  position: relative;\n}\n\n._CSS-color_sidebar {\n  position:absolute;\n  left:0px;\n  top:0;\n  width: 6px;\n  bottom:0;\n}\n\n._CSS-labels {\n  display: flex;\n  flex-wrap: wrap;\n  flex:1;\n  width:100%;\n}\n\n._CSS-label~._CSS-label {\n  margin: 0 var(--ae-space-1);\n}\n\n._CSS-title {\n}\n\n._CSS-assignees {\n  width: 100%;\n  display: flex;\n  flex-wrap: wrap;\n  justify-content: flex-end;\n}\n\n._CSS-next-activity {\n  width: 100%;\n  font-size: var(--ae-font-size-3);\n  padding: var(--ae-space-1);\n  margin-top: var(--ae-space-1);\n  background: var(--ae-background-100);\n  border-radius: var(--ae-border-radius);\n  max-height: 100px;\n  \n  overflow: hidden;\n  xwhite-space: nowrap;\n  xtext-overflow: ellipsis;\n}\n\n._CSS-next-activity__label {\n  font-size: var(--ae-font-size-1);\n}\n\n._CSS-what {\n\n}\n\n/*._CSS-next-activity__info {\n  position: absolute;\n  left: var(--ae-space-2);\n  bottom: var(--ae-space-2);\n}\n*/","controller":"class Controller {\n  async init() {\n    locals.nextActivities = []\n    locals.nextActivity = null\n    locals.anfrage = null \n    locals.stampVisualization = null\n    locals.image = null\n    locals.thumbnail = null\n \n    if (params.visualizeWorkflowStamps?.id) {\n      const stampMatchingWorkflow = document.stamps.find(s => s.workflow?.id === params.visualizeWorkflowStamps?.id)\n      locals.stampVisualization = await Aeppic.get(stampMatchingWorkflow.type)\n    }\n\n    locals.anfrage = await Aeppic.resolve(document, 'data.vertrieb -> data.anfrage')\n    \n    locals.thumbnail = await Aeppic.resolve(document, 'data.vertrieb -> data.image')\n    \n    // const { next, all } = await this.getActivities()\n\n    // locals.nextActivities = all\n    // locals.nextActivity = next\n  }\n}\n \n  ","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-04-05T10:26:51+00:00","by":"427610a9-39dc-4014-9176-5f72aeb23263","client":"server","from":""},"modified":{"at":"2024-07-18T09:14:21+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1721286861173,"ct":1718866007099,"a_depth":4,"a":["apps","deeef973-ce03-4557-bf75-75a059001767","e7de598c-6f5a-4ab4-a33b-213ca86e489d","fbb5234f-66e1-4545-b087-ff1961f9ceab"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"af41d635-b94e-47d6-b9c7-eb0943513ffb","v":"initial","p":"3d456c38-6282-416e-8c5e-7d20b0517a6e","f":{"id":"design-form","v":"24435d748c76f819","text":"Design"},"data":{"name":"board-card","template":"<div class=\"_CSS-boardcard\" \r\n    :class=\"{ '_CSS-boardcard--with-background': !params.withoutBackground}\"\r\n    @click.stop=\"$emit('selected', document)\"\r\n    :style=\"[data.erledigt == true? {color: 'var(--ae-background-300)'} : {}]\">\r\n\r\n    <div class=\"_CSS-boardcard--top\">\r\n        <div class=\"_CSS-boardcard-text _CSS-boards-text--multilineOverflow\">\r\n            <ae-design name=\"title\" :document=\"document\"></ae-design>\r\n        </div>\r\n\r\n        <div class=\"_CSS-boardcard-img--wrapper\" v-if=\"data.verantwortlich && data.verantwortlich.length\">\r\n            <ae-design title=\"Verantwortliche\" class=\"_CSS-boardcard-img\" name=\"avatar--tiny\"\r\n                :document-id=\"data.verantwortlich[0].id\"></ae-design>\r\n            <ae-design class=\"_CSS-boardcard-img\" v-if=\"data.verantwortlich.length === 2\" name=\"avatar--tiny\"\r\n                :document-id=\"data.verantwortlich[1].id\"></ae-design>\r\n\r\n            <div :title=\"locals.tooltipWeitereVerantwortliche\">\r\n                <ae-design class=\"_CSS-boardcard-img\" v-if=\"data.verantwortlich.length > 2\" name=\"avatar--tiny\"\r\n                    :document-id=\"data.verantwortlich[1].id\"\r\n                    :param-overwrite-display-with=\"'+' + (data.verantwortlich.length - 1)\"\r\n                    :title=\"locals.tooltipWeitereVerantwortliche\"></ae-design>\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    <div class=\"_CSS-boardcard--bottom\">\r\n        <div v-if=\"data.bis != ''\" class=\"_CSS-boardcard-date\">\r\n            {{controller.date}}\r\n        </div>\r\n\r\n        <div :style=\"[Aeppic.DateTime.fromISO(data.bis).diffNow('days').days < 0 ? {color: 'var(--ae-accent-red-600)'} : {color: 'var(--ae-accent-green-600)'}]\"\r\n            class=\"_CSS-boardcard-timespan\" v-if=\"data.bis != ''\">\r\n            {{controller.remnantDurration}}\r\n        </div>\r\n\r\n        <div title=\"Anhänge\">\r\n            <ae-icon class=\"fal fa-paperclip _CSS-boardcard-icon\" v-if=\"data.anhaenge.length\"></ae-icon>\r\n        </div>\r\n        <div title=\"Kommentare\">\r\n            <ae-icon class=\"fal fa-comment _CSS-boardcard-icon\" v-if=\"locals.comments.length > 0\"></ae-icon>\r\n        </div>\r\n        <div :title=\"locals.readableDuration\" v-if=\"locals.duration\">\r\n            <ae-icon class=\"fal fa-clock _CSS-boardcard-icon\"> </ae-icon>\r\n        </div>\r\n\r\n        <template v-if=\"data.prioritaet\">\r\n            <div title=\"Hohe Priorität\" v-if=\"data.prioritaet === 3\">\r\n                <ae-icon class=\"fal fa-arrow-circle-up _CSS-boardcard-icon\"></ae-icon>\r\n            </div>\r\n            <div title=\"Mittlere Priorität\" v-else-if=\"data.prioritaet === 2\">\r\n                <ae-icon class=\"fal fa-circle _CSS-boardcard-icon\"></ae-icon>\r\n            </div>\r\n            <div title=\"Niedrige Priorität\" v-else-if=\"data.prioritaet === 1\">\r\n                <ae-icon class=\"fal fa-arrow-circle-down _CSS-boardcard-icon\"></ae-icon>\r\n            </div>\r\n        </template>\r\n    </div>\r\n</div>","css":"._CSS-boardcard {\r\n  padding: var(--ae-size-1) var(--ae-size-2);\r\n  min-height: 4.2rem;\r\n  margin: 0;\r\n\r\n  border: var(--ae-border-color) solid var(--ae-border-width);\r\n  border-radius: var(--ae-border-radius);\r\n\r\n  cursor: pointer;\r\n}\r\n\r\n._CSS-boardcard--with-background {\r\n  background-color: var(--ae-ui-background);\r\n}\r\n\r\n._CSS-boardcard-img--wrapper{\r\n  display: flex;\r\n}\r\n\r\n._CSS-boardcard--top {\r\n  display: flex;\r\n  line-height: var(--ae-size-6);\r\n  padding-bottom: var(--ae-size-1);   \r\n}\r\n\r\n._CSS-boardcard--bottom {\r\n  flex-flow: row;\r\n  display: flex;\r\n  justify-content: flex-end;\r\n}\r\n\r\n._CSS-boardcard-text {\r\n  font-size: var(--ae-font-size);\r\n  flex-grow: 1; \r\n}\r\n\r\n._CSS-boardcard-date {\r\n  font-size: var(--ae-font-size-2);\r\n  padding-right: var(--ae-size-1); \r\n  margin-top: var(--ae-size-1);  \r\n}\r\n\r\n._CSS-boardcard-date--today {\r\n  font-size: var(--ae-font-size-4);\r\n  margin-top: var(--ae-size-1);\r\n}\r\n\r\n._CSS-boardcard-timespan {\r\n  font-size: var(--ae-font-size-2);\r\n  flex-grow:3; \r\n  margin-top: var(--ae-size-1);\r\n}\r\n\r\n._CSS-boardcard-img{                              \r\n  margin: 2px;\r\n}\r\n\r\n._CSS-boardcard-icon {\r\n  margin-right: 2px;\r\n  font-size: var(--ae-size-3);\r\n}\r\n\r\n._CSS-boards-text--multilineOverflow {\r\n   display: -webkit-box;\r\n   -webkit-box-orient: vertical;\r\n   -webkit-line-clamp: 3;\r\n   overflow: hidden;\r\n}","controller":"class Controller {\r\n  async init() {\r\n    locals.comments = []\r\n    locals.tooltipWeitereVerantwortliche = ''\r\n\r\n    locals.readableDuration = ''\r\n    locals.duration = 0\r\n\r\n    locals.tooltipWeitereVerantwortliche = await this.updateWeitereVerantwortliche()\r\n    this.subscribeComments()\r\n\r\n    Aeppic.subscribeQuery('dd148098-bd15-4baa-a4ce-df14e495c629', document.id, (documents) => {\r\n      const { readable, millis } = this.totalDuration(documents)\r\n      locals.readableDuration = readable\r\n      locals.duration = millis\r\n    }) \r\n  }\r\n\r\n  async updateWeitereVerantwortliche() {\r\n      if (!data || !data.verantwortlich || data.verantwortlich.length <= 1) {\r\n        return ''\r\n      }\r\n\r\n      const others = data.verantwortlich.slice(1)\r\n      let title = '' \r\n      \r\n      for (const other of others) {\r\n        const va = await Aeppic.get(other)\r\n\r\n        if (title.length > 0) {\r\n          title += '\\n'\r\n        }\r\n\r\n        if (va && va.data.name) {\r\n          title += `${va.data.name}`\r\n        } else {\r\n          title += `Unbenannt`\r\n        }\r\n      }\r\n  \r\n      return title\r\n  }\r\n\r\n  subscribeComments() {\r\n    Aeppic.subscribe(`p:${document.id} f.id:cf155969-ede1-43a4-9b10-3a697b19db91`, async (documents)=>{\r\n      locals.comments = documents\r\n      // locals.comments.sort((a,b) => this.sortComment(a,b))\r\n\r\n      // const all = await Aeppic.getAll(locals.comments.map(c => c.modified.by))  \r\n      // const allSortedBackwards = all.reverse()\r\n      // const unique = allSortedBackwards.reduce((x, y) => x.findIndex(e=>e != null && y != null && e.id==y.id)<0 ? [...x, y]: x, [])\r\n \r\n      // locals.commenters = unique\r\n      // // locals.commenters.push(...all, ...all)\r\n      // locals.commentersOverflow = []\r\n\r\n      // const LIMIT = 5\r\n      \r\n      // if (locals.commenters.length > LIMIT) {\r\n      //   locals.commentersOverflow = locals.commenters.splice(LIMIT, locals.commenters.length - LIMIT)\r\n      // }\r\n    })\r\n  }\r\n\r\n  get date() {\r\n    if (!data.bis) {\r\n      return ''\r\n    }\r\n\r\n    const date = DateTime.fromISO(data.bis)\r\n\r\n    const diff = date.diffNow('days').days\r\n\r\n    if (diff >= -1 && diff < 0) {\r\n      return 'Heute'\r\n    }\r\n     \r\n    return Aeppic.DateTime.fromISO(data.bis).toLocaleString(Aeppic.DateTime.DATE_SHORT)\r\n  }\r\n\r\n  get remnantDurration() {\r\n    if (!data.bis) {\r\n      return ''\r\n    }\r\n\r\n    const durationFromToday = Aeppic.DateTime.fromISO(data.bis).diffNow('days')\r\n\r\n    const differenceCharacter = durationFromToday.days > 0 ? '+' : ''   \r\n\r\n    if (durationFromToday.days >= -1 && durationFromToday.days < 0) { \r\n      return ''\r\n    }\r\n\r\n    if ((durationFromToday.days < -1 && durationFromToday.days > -2) || (durationFromToday.days > 0 && durationFromToday.days < 1)) {\r\n      return differenceCharacter + Math.ceil(durationFromToday.days) + ' Tag'\r\n    }\r\n   \r\n    return differenceCharacter + Math.ceil(durationFromToday.days) + ' Tage'\r\n  }\r\n\r\n  \r\n  totalDuration(trackings) {\r\n    const duration = trackings.reduce((prev, cur) => {\r\n      if (prev) {\r\n        return Aeppic.DateTimeDuration.fromObject(cur.data.dauer).plus(prev)\r\n      }\r\n\r\n      return Aeppic.DateTimeDuration.fromObject(cur.data.dauer)\r\n    }, null)\r\n\r\n    if (duration) {\r\n      return { readable: duration.toFormat('hh:mm'), millis: duration.valueOf() }\r\n    }\r\n\r\n    return {}\r\n  }\r\n\r\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-05-08T08:50:53+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2020-05-08T08:50:53+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1588927853683,"ct":1588927853683,"a_depth":4,"a":["apps","5acfd7a2-33e4-498a-9150-71e1ab772bfc","20c92864-6a81-4006-96f9-b78f473cd129","3d456c38-6282-416e-8c5e-7d20b0517a6e"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"d4d53c58-7592-4c4e-8c9d-fcf14cb36be5","v":"7c76f1fa3b3b2d96","previous":{"v":"1e486204cc4fbfb8"},"p":"8fc08287-dbcc-4e41-9d5d-28e4cd828943","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"board-card","template":"<div class=\"bp-card bp-card--bordered _CSS-card\" @click.stop=\"$emit('selected', document)\">\n  <div class=\"_CSS-labels\">\n    <ae-design class=\"_CSS-label\" v-for=\"label of data.labels\" name=\"colored-pill\" :params=\"{ fieldName: 'color', expand: true }\" :document-id=\"label.id\"></ae-design>\n  </div>\n  <ae-design class=\"_CSS-title\" :param-fit=\"true\" name=\"title\" :document=\"document\"></ae-design>\n  <ae-design class=\"_CSS-label\" v-for=\"quelle of data.quelle\" name=\"colored-pill\" :params=\"{ fieldName: 'farbe', expand: true }\" :document-id=\"quelle.id\"></ae-design>\n\n  <div class=\"_CSS-assignees\">\n    <ae-design name=\"avatar--resizes-with-font\" v-for=\"verantwortlich of data.verantwortlich\" :document-id=\"verantwortlich.id\"></ae-design>\n  </div>\n\n  <div v-if=\"locals.nextActivity && !locals.nextActivity.data.erledigt\" class=\"_CSS-next-activity\">\n    <div class=\"_CSS-next-activity__label\" title=\"Nächster Termin (oder zuletzt rückliegend)\">\n      Nächste Aktivität\n    </div>\n    <ae-design name=\"appointment-info\" :document=\"locals.nextActivity\" :params=\"{ hidePath: true }\"></ae-design>\n    <!-- {{ locals.nextActivity }} -->\n    <!-- <div class=\"_CSS-next-activity__info\" title=\"Nächster Termin (oder zuletzt rückliegend)\">\n      <ae-icon class=\"fa fa-question-circle\" style=\"color:var(--ae-background-500);font-size:var(--ae-font-size-2);\"></ae-icon>\n    </div> -->\n  </div>\n</div>\n ","css":"._CSS ._CSS-card {\n  display: flex;\n  flex-flow: column;\n\n  align-items: flex-start;\n  xbox-shadow: var(--ae-shadow-1);\n}\n\n._CSS-labels {\n  display: flex;\n  flex-wrap: wrap;\n}\n\n._CSS-label~._CSS-label {\n  margin: 0 var(--ae-space-1);\n}\n\n._CSS-title {\n  margin: var(--ae-space-1) 0;\n}\n\n._CSS-assignees {\n  width: 100%;\n  display: flex;\n  flex-wrap: wrap;\n  justify-content: flex-end;\n}\n\n._CSS-next-activity {\n  width: 100%;\n  font-size: var(--ae-font-size-3);\n  padding: var(--ae-space-1);\n  margin-top: var(--ae-space-1);\n  background: var(--ae-background-100);\n  border-radius: var(--ae-border-radius);\n  max-height: 100px;\n  \n  overflow: hidden;\n  xwhite-space: nowrap;\n  xtext-overflow: ellipsis;\n}\n\n._CSS-next-activity__label {\n  font-size: var(--ae-font-size-1);\n}\n\n._CSS-what {\n\n}\n\n/*._CSS-next-activity__info {\n  position: absolute;\n  left: var(--ae-space-2);\n  bottom: var(--ae-space-2);\n}\n*/","controller":"class Controller {\n  async init() {\n    locals.nextActivities = []\n    locals.nextActivity = null\n\n    const { next, all } = await this.getActivities()\n\n    locals.nextActivities = all\n    locals.nextActivity = next\n  }\n\n\n  async getActivities() {\n    const activities = await Aeppic.getAll(data.aktivitaeten)\n    const actsWithWhens = activities.filter(a => a && a.data.wann && a.data.typ !== 'WIEDERVORLAGE' && !a.data.erledigt)\n\n    const sorted = Aeppic.sort(actsWithWhens, [{ field: 'data.wann', descending: true }, 'id'])\n    const now = Aeppic.DateTime.local()\n\n    let last = null\n    for (const doc of sorted) {\n      const current = Aeppic.DateTime.fromISO(doc.data.wann)\n      const currentDocumentDiffToNow = current.diff(now, 'days')\n \n      if (currentDocumentDiffToNow.days <= 0) {\n        return { next: last || doc, all: sorted }\n      }\n\n      last = doc\n    }\n\n    return { all: sorted, next: last } \n  }\n}\n \n  ","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-09-21T08:42:29+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-04-12T08:43:26+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1681289006901,"ct":1632213749092,"a_depth":4,"a":["apps","9d6ee173-26fe-4472-a271-7667f717094e","53b70eca-0cef-448b-9674-22a70a937eb1","8fc08287-dbcc-4e41-9d5d-28e4cd828943"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"d5fbafcd-ffc3-428c-acba-c3e1c220d3e7","v":"85115ace27ca32a1","previous":{"v":"0e261eff9655d81d"},"p":"c211ffaa-14f8-4439-9126-f42f65ac4424","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"board-card","template":"<div class=\"rounded-lg bg-center bg-cover bg-white rounded-lg border border-slate-200 p-2\"\n    @click.stop=\"$refs.command.$emit('force-show', 'f22b2d20-16fe-4b71-abe1-395381606479')\"\n>\n  <section class=\"flex flex-col text-sm text-theme-500\">\n    <div class=\"flex gap-2\">\n      <span>Firma:</span> <ae-design name=\"title\" :document-id=\"data.firma.id\"></ae-design>\n    </div>\n    \n    <div class=\"flex gap-2\">\n      <span>Objekt:</span> <ae-design name=\"title\" :document-id=\"data.objekt.id\"></ae-design>\n    </div>\n  </section>\n   \n   <section class=\"flex justify-center mt-3 mb-1 font-bold\">\n    <ae-design name=\"title\" :document=\"locals.plan\"></ae-design>\n   </section>\n\n   <!-- <section class=\"my-4\">\n     <ae-list  v-if=\"locals.plan\"\n              list-id=\"2e798091-303f-406b-a42a-93aa1cd8425c\"\n              :documents=\"locals.plan.data.anlagen\"\n              param-design=\"work-status,title\"\n     ></ae-list>\n   </section> -->\n\n   <section class=\"my-3\">\n     <ae-design v-if=\"locals.plan\" name=\"work-status\" :document=\"locals.plan\"></ae-design>\n   </section>\n\n   <section class=\"flex flex-wrap justify-between text-sm text-theme-500\">\n     <div title=\"Begonnen\">\n        <ae-icon  class=\"fa fa-star-of-life\"></ae-icon>\n\n       {{ Aeppic.DateTime.fromISO(document.created.at).toLocaleString(Aeppic.DateTime.DATETIME_SHORT) }}\n     </div>\n     <!-- TODO: Wartung is not modified when some work is done. -->\n     <div v-if=\"data.status === 3\" title=\"Zur Kenntnis genommen\">\n        <ae-icon  class=\"fa fa-badge-check\"></ae-icon>\n        {{ Aeppic.DateTime.fromISO(document.modified.at).toLocaleString(Aeppic.DateTime.DATETIME_SHORT) }}\n     </div>\n   </section> \n\n   <!-- <section v-if=\"Aeppic.Account.data.allowDevMode\">\n     <ae-layout layout-id=\"aac11114-46bb-4f29-a280-51d889a8aaca\" :param-document=\"document\"></ae-layout>\n   </section> -->\n</div>\n\n<ae-layout layout-id=\"c80364ed-8a1f-40fa-a169-5cc7b45d4fb4\"\n          :param-document=\"document\"\n          :param-commands=\"['f22b2d20-16fe-4b71-abe1-395381606479']\"\n          v-show=\"false\"\n          ref=\"command\"\n></ae-layout> ","css":"","controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Wartungsplan: '522ca40d-810b-4021-835f-beeace3af7fa'\n    }\n\n    locals.plan = null\n\n    locals.plan = await Aeppic.findOne(`p:${document.id} f.id:${this.FORMS.Wartungsplan}`)\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-03-08T09:55:22+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-09-05T13:00:05+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1662382805528,"ct":1649233215574,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","c211ffaa-14f8-4439-9126-f42f65ac4424"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"e1ed9169-9671-4f8c-9ed9-10e09d28474d","v":"00172429272435f3","previous":{"v":"initial"},"p":"8152301a-d301-4466-b461-d5ffcfe02715","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"board-card","applies":"","template":"<div class=\"_CSS-card\" @click=\"Aeppic.navigateTo(document.id)\">\n\t<div class=\"_CSS-card__primary\">\n    <div class=\"_CSS-card-intro\">\n      <span v-if=\"data.storyPoints\" :title=\"'Aufwand: ' + data.storyPoints\" class=\"fa-layers fa-fw\">\n        <ae-icon class=\"fa fa-circle\" style=\"color:black;/*var(--ae-primary)*/\"></ae-icon>\n        <span class=\"fa-layers-text fa-inverse\" data-fa-transform=\"shrink-4\">{{ data.storyPoints }}</span>\n      </span>\n      <ae-design class=\"_CSS-card-title\" name=\"title\" :document=\"document\"></ae-design>\n\t\t</div>\n    <div class=\"_CSS-card-assignees\" v-if=\"data.verantwortlich && data.verantwortlich.length\">\n\t\t\t<ae-design name=\"avatar--tiny\" :document-id=\"data.verantwortlich[0].id\"></ae-design>\n\t\t\t<ae-design v-if=\"data.verantwortlich.length === 2\" name=\"avatar--tiny\" :document-id=\"data.verantwortlich[1].id\"></ae-design>\n\t\t\t<ae-design v-if=\"data.verantwortlich.length > 2\" name=\"avatar--tiny\" :document-id=\"data.verantwortlich[1].id\" :param-overwrite-display-with=\"'+' + (data.verantwortlich.length - 1)\" :title=\"locals.tooltipWeitereVerantwortliche\"></ae-design>\n\t\t</div>\n\t</div>\n\t<div class=\"_CSS-card__secondary\">\n\t\t<div class=\"_CSS-card-categories\">\n\t\t\t<ae-design class=\"_CSS-card-category\" name=\"icon\" v-for=\"category in data.kategorie\" :document-id=\"category.id\" :key=\"category.id\"></ae-design>\n\t\t</div>\n\t\t<ae-design v-if=\"data.anhaenge && data.anhaenge.length\" name=\"paperclip--small\" :document=\"document\"></ae-design>\n\t</div>\n</div>\n\n","css":"._CSS {\n  display: flex;\n  height: 4.5rem;\n  padding: 0.25rem 1rem 0.1rem 0.5rem;\n\n  background-color: rgba(0,0,56,0.05);\n\n  border-bottom: 1px solid var(--ae-primary-l1);\n  border-left: 4px solid var(--ae-primary);\n  border-radius: 2px;\n  box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.16), 0 0 1px 0 rgba(0, 0, 0, 0.16);\n}\n\n._CSS-card {\n  flex: 1;\n  margin:0;\n  display: flex;\n  flex-flow: column;\n  justify-content: space-between;\n  align-items: center;\n  overflow: hidden;\n  cursor: pointer;\n  padding: 0 0 0.2rem;\n}\n\n._CSS-card__primary {\n  flex: 1;\n  display: flex;\n  justify-content: space-between;\n  align-items: flex-start;\n\n  width: 100%;\n}\n\n._CSS-card-intro {\n  margin-top: 2px;\n  display:flex;\n  flex-direction:row;\n  align-items:center;\n}\n\n._CSS-card-intro > *:nth-child(2) {\n  margin-left: 0.1em;\n}\n\n._CSS-card-title {\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n}\n\n._CSS-card__secondary {\n  flex: 1;\n  display: flex;\n  justify-content: space-between;\n  align-items: flex-end;\n  \n  width: 100%;\n}\n\n._CSS-card-assignees {\n  display: flex;\n  flex-flow: row;\n}\n\n._CSS-card-categories {\n  display: grid;\n  grid-auto-flow: column;\n  grid-column-gap: 5px; \n}\n","controller":"class Controller {\r\n  async init() {\r\n    locals.tooltipWeitereVerantwortliche = ''\r\n    locals.tooltipWeitereVerantwortliche = await this.updateWeitereVerantwortliche()\r\n  }\r\n  \r\n  async updateWeitereVerantwortliche() {\r\n    if (!data || !data.verantwortlich || data.verantwortlich.length <= 1) {\r\n      console.log(data) \r\n      return ''\r\n    }\r\n\r\n    const others = data.verantwortlich.slice(1)\r\n    let title = '' \r\n     \r\n    for (const other of others) {\r\n      const va = await Aeppic.get(other)\r\n      if (va && va.data.name) {\r\n        if (title.length > 0) {\r\n          title += '\\n'\r\n        }\r\n        title += `${va.data.name}`\r\n      }  \r\n    }\r\n \r\n    return title\r\n  }\r\n}","packages":[]},"locks":[],"created":{"at":"2018-04-18T15:41:58+02:00","by":"","from":"","client":"server"},"modified":{"at":"2018-12-21T11:04:22+00:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1545390262323,"ct":1524058918480,"a_depth":4,"a":["apps","aed1ba1c-9095-4aca-8176-74a37325f0e5","58cc45fb-3fb3-45e8-b61d-4b89899e357a","8152301a-d301-4466-b461-d5ffcfe02715"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"7365f19d-5169-4771-99b7-a995a4e578ca","v":"027a7f067e58d68e","previous":{"v":"44d715f879a359b1"},"p":"9927c3c7-8ce4-4c25-bcec-3385cf1370db","f":{"id":"design-form","v":"3a761d06f59c46c1","text":"Design"},"data":{"name":"board-title","template":"<!-- <a :href=\"'/casting-preview/' + document.id\" target=\"_blank\"> -->\n  <ae-design name=\"title\" :document=\"document\"></ae-design>\n<!-- </a> -->\n\n\n<div class=\"dbps-button\" @click=\"Aeppic.navigateTo(document.id)\"  title=\"Fragebogen\">\n  <ae-icon class=\"fa fa-question\"></ae-icon>\n</div>\n\n<div class=\"dbps-button\" title=\"Optionsliste\" @click=\"$refs.optionlistDialog.$emit('show')\">\n  <ae-icon class=\"fa fa-list-alt\"></ae-icon>\n</div>\n\n<ae-layout  ref=\"optionlistDialog\"\n            layout-id=\"6688c89f-f299-4ec6-89d4-74f5c25afde9\"\n            :param-document=\"document\"\n>\n</ae-layout>","css":"._CSS {\n  display: flex;\n  justify-content: center;\n  align-items: center;\n}","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2018-10-30T12:51:50+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2020-10-13T10:11:33+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1602583893569,"ct":1602583893568,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","9927c3c7-8ce4-4c25-bcec-3385cf1370db"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"ad0c367e-79d2-47a0-8576-cd48dc768e6a","v":"0b0d08c699b1b91e","previous":{"v":"cc1d6412cffd1b32"},"p":"9c63f632-9e40-4abb-aa1a-f4a02110a97f","f":{"id":"design-form","v":"3a761d06f59c46c1","text":"Design"},"data":{"name":"board-title","template":"<ae-design name=\"title\" :document=\"document\"></ae-design>\n\n<div class=\"dbps-button\" @click=\"Aeppic.navigateTo(locals.eCasting)\" title=\"Drag-and-Drop Einstellungen\" :disabled=\"!locals.eCasting\">\n  <ae-icon class=\"fa fa-cog\"></ae-icon>\n</div>\n","css":"._CSS {\n  display: flex;\n  justify-content: center;\n  align-items: center;\n}","controller":"class Controller {\n  async init() {\n    locals.eCasting = await Aeppic.findOne(`p:${document.p} f.id:61ccaf6b-af84-4908-aa73-785dffd83c5f`)\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2018-10-30T12:49:00+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2020-10-13T10:11:31+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1602583891661,"ct":1602583891661,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","9c63f632-9e40-4abb-aa1a-f4a02110a97f"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"adc31147-792c-4f16-821d-ef922806caad","v":"7dcbcfb9aba5c002","previous":{"v":"1104b3e75a515176"},"p":"61ccaf6b-af84-4908-aa73-785dffd83c5f","f":{"id":"design-form","v":"3a761d06f59c46c1","text":"Design"},"data":{"name":"board-title","template":"<ae-design name=\"title\" :document=\"document\"></ae-design>\n<a class=\"dbps-button\" :href=\"'/casting-preview/' + document.id\" target=\"_blank\" title=\"eCasting Selection öffnen\">\n  <ae-icon class=\"fa fa-presentation\"></ae-icon>\n</a>\n\n<div class=\"dbps-button\" title=\"Laufliste\" @click=\"$refs.eCastingListDialog.$emit('show')\">\n  <ae-icon class=\"fa fa-list-alt\"></ae-icon>\n</div>\n\n<ae-layout  ref=\"eCastingListDialog\"\n            layout-id=\"027e5efd-2e93-42ef-b041-74644410600f\"\n            :param-document=\"document\"\n>\n</ae-layout>","css":"._CSS {\n  display: flex;\n  justify-content: center;\n  align-items: center;\n}","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2018-10-30T12:49:33+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2020-10-13T10:11:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1602583892100,"ct":1602583892100,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","61ccaf6b-af84-4908-aa73-785dffd83c5f"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"c8c10141-bf30-4cb1-9ea9-f6a11bca3a74","v":"initial","p":"275b807f-7dbb-4351-b731-669e275fa97d","f":{"id":"design-form","v":"2d98bf27c3108340","text":"Design"},"data":{"name":"board-title","applies":"","description":"","template":"<ae-design name=\"title\" :document-id=\"document.a.slice(-1)[0]\"></ae-design>","css":"","controller":"","packages":[]},"locks":[],"created":{"at":"2018-10-30T12:50:42+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2018-10-30T12:50:42+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1540903842533,"ct":1540903842533,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","275b807f-7dbb-4351-b731-669e275fa97d"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"9edea76f-e581-4ce1-ae17-15abc2c500b4","v":"33103b8bb94fe720","p":"fallback-designs","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"bottom-panel","template":"<div class=\"_CSS\">\n  <button class=\"bp-button bp-button-icon\" style=\"color:white;width:100%;\">\n    <ae-icon class=\"fa fa-search\"></ae-icon>\n  </button>\n  <button class=\"bp-button bp-button-icon\" style=\"color:white;width:100%;\" @click=\"Aeppic.navigateTo('b61adbaf-b51b-46b5-9358-587ef518075b')\">\n    <ae-icon class=\"fa fa-home\"></ae-icon>\n  </button>\n  <button class=\"bp-button bp-button-icon\" style=\"color:white;width:100%;\">\n    <ae-icon class=\"fa fa-user-circle\"></ae-icon>\n  </button>\n</div>","css":"._CSS {\n  display: grid;\n  grid-auto-columns: 1fr;\n  grid-auto-rows: 1fr;\n  grid-auto-flow: column;\n  color: var(--ae-theme-text-on-primary,var(--ae-primary)); \n  background-color: var(--ae-theme-sidebar-background,var(--ae-primary));\n}\n\n._CSS > .material-icons {\n  display: flex;\n  justify-content: center;\n  align-content: center;\n  align-items: center;\n  border: 1px lightgray;\n  border-style: solid solid none none;\n  font-size: 3rem;\n  cursor: pointer;\n}","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2017-11-06T12:22:39+01:00","by":"","from":"","client":"383c6713-ae80-4a1b-867f-71ef10151725"},"modified":{"at":"2020-06-30T09:30:13+00:00","by":"8e6c22aa-8c69-4ff8-919a-7032841cf636","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720684627126,"ct":1720684627126,"a_depth":2,"a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"],"inheritedLocks":[null,null,null],"stamps":[],"previous":{"v":"f6ee6cf54fb4111a","f":{"id":"design-form","v":"9bfe8e0cd909c1f0","text":"Design"}},"meta":{"modified":{"at":"2024-07-11T09:57:07+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"4403287a-da61-464f-be61-dbeee2039024","v":"c4e54a91ceee1e5d","previous":{"v":"initial"},"p":"6770bab9-4e15-45ae-bf22-7fe4ef2a0848","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"burndown-chart","applies":"","template":"\n<svg class=\"_CSS-chart\" viewBox=\"-20 -20 140 140\">\n  <g class=\"_CSS-coordinate-system\">\n    <polyline points=\"0,100 100,100\"></polyline>\n    <polyline points=\"0,0 0,100\"></polyline>\n  </g>\n\n  <g class=\"_CSS-coordinate-system__axis-descriptions\">\n    <text class=\"_CSS-axis-description-y\" x=\"-80\" y=\"-15\">\n      Anzahl Aufgaben verbleibend\n    </text>\n    <text class=\"_CSS-axis-description-x\" x=\"40\" y=\"115\">\n      Tage\n    </text>\n    <g class=\"_CSS-axis-storypoints\">\n      <text x=\"-8\" y=\"0\">\n        {{ locals.maxCount }}\n      </text>\n\n      <text v-for=\"i in locals.maxCount\" x=\"-8\" :y=\"(100 / locals.maxCount) * i\">\n        {{ locals.maxCount - i }}\n      </text>\n    </g>\n\n    <g class=\"_CSS-axis-timeunits\">\n      <text class=\"_CSS-coordinate-marker__text\" :x=\"0\" y=\"108\" :key=\"0\">1</text>\n\n      <template v-for=\"i in locals.daysInSprint.length\">\n        <polyline class=\"_CSS-coordinate-marker\" :points=\"(100 / locals.daysInSprint.length) * i + ',100 '  + (100 / locals.daysInSprint.length) * i + ',95'\" :key=\"'_CSS-coordinate-marker'+i\"></polyline>\n        <text class=\"_CSS-coordinate-marker__text\" :x=\"(100 / locals.daysInSprint.length) * i - 2\" y=\"108\" :key=\"'_CSS-coordinate-marker__text'+i\">{{ i +1 }}</text>\n      </template>\n    </g>\n<!-- \n    <text class=\"_CSS-axis-zerointersection\" y=\"120\" x=\"-18\">\n        Start: {{ DateTime.fromJSDate(locals.daysInSprint[0]).toLocaleString(DateTime.DATE_MED) }}\n    </text> -->\n  </g>\n\n  <!-- <g class=\"_CSS-ideal-burn\">\n    <template v-for=\"(coordinate, i) in controller.idealBurndownCoordinates\" v-if=\"i !== 0\">\n      <line\n        :y1=\"controller.idealBurndownCoordinates[i - 1]\"\n        :y2=\"coordinate < 100 ? coordinate : 100\"\n        :x1=\"controller.numericalPartPerTimeUnit * ( i - 1 )\"\n        :x2=\"coordinate < 100 ? controller.numericalPartPerTimeUnit * i : controller.numericalPartPerTimeUnit * (controller.totalStoryPoints / data.idealPointsBurnPerTimeUnit)\"></line>\n    </template>\n  </g> -->\n\n  <g class=\"_CSS-actual-burn\">\n    <template v-for=\"(remainingCount, index) in locals.remainingCountPerDay\">\n      <circle\n        class=\"_CSS-sprint-day-circle\"\n        v-if=\"remainingCount != null\"\n        :cx=\"index * (100 / locals.daysInSprint.length)\"\n        :cy=\"100 - (100 / locals.maxCount) * remainingCount\"\n        r=\"1.5\" fill=\"orange\" \n        @mouseenter=\"$refs.sprintDayPopup.show($event, { day: index })\"\n      >\n      </circle>\n      <line\n        v-if=\"remainingCount != null && index > 0 && index % 2 === 0\"\n        :y1=\"locals.remainingCountPerDay[index -1] != null ? 100 - (100 / locals.maxCount) * locals.remainingCountPerDay[index -1] : 0\"\n        :y2=\"100 - (100 / locals.maxCount) * remainingCount\"\n        :x1=\"(index -1 ) * (100 / locals.daysInSprint.length)\"\n        :x2=\"index * (100 / locals.daysInSprint.length)\"></line>\n    </template>\n  </g>\n</svg>\n\n<div class=\"_CSS-informations\">\n  <ae-design class=\"_CSS-sprint-information\" name=\"abstract\" :document=\"locals.sprints[locals.showSprintIndex]\" :watch=\"false\"></ae-design>\n\n  <div class=\"_CSS-date-actions\" :key=\"locals.humanReadableTimerange\">\n    <button :disabled=\"locals.showSprintIndex <= 0\" class=\"bp-button bp-button-icon\" @click=\"controller.previousSprint()\">\n      <ae-icon class=\"fa fa-arrow-left\"></ae-icon>\n    </button>\n    <button class=\"bp-button bp-button--transparent\"\n            style=\"padding: var(--bp-page-content-padding)\" \n            @click=\"controller.resetSprint()\"\n            :disabled=\"locals.sprints.length -1 <= locals.showSprintIndex\">\n      Letzten Sprint anzeigen\n    </button>\n    <button :disabled=\"locals.sprints.length -1 <= locals.showSprintIndex\" class=\"bp-button bp-button-icon\" @click=\"controller.nextSprint()\">\n      <ae-icon class=\"fa fa-arrow-right\"></ae-icon>\n    </button>\n  </div>\n</div>\n\n<ae-popup ref=\"sprintDayPopup\" :close-delay=\"200\">\n  <div slot=\"popup\" class=\"_CSS-sprint-day-popup\" slot-scope=\"scope\" @mouseleave=\"scope.close()\">\n    <b>Änderungen</b>\n    <ae-design name=\"styled-title,title\" v-for=\"entry in locals.entriesPerDay[scope.data.day]\" :watch=\"false\" :document=\"entry\" :key=\"entry.id\"></ae-design>\n  </div>\n</ae-popup>\n\n\n\n<!-- <pre style=\"font-size: 0.7em\">\n{{locals.remainingCountPerDay}}\n</pre> -->\n","css":"._CSS {\n  border-style: solid;\n  border-color: #777;\n  border-width: 1px;\n  border-radius: 3px;\n  padding: 0 1rem 1rem 1rem;\n  background: white;\n\n  display: flex;\n  flex-flow: column;\n\n  max-height: 90%;\n}\n\n._CSS-chart {\n  flex: 1;\n  stroke: #777;\n  stroke-width: 0.5px;\n  fill: none;\n}\n\n\n._CSS-coordinate-system__axis-descriptions { \n  stroke: none;\n  fill: black;\n  font-family: \"Lato\", \"Calibri Light\", \"Helvetica Neue\", Roboto, sans-serif;\n  font-size: 4px;\n}\n\n._CSS-coordinate-marker {\n  stroke: #777;\n}\n\n._CSS-axis-description-y {\n  transform: rotate(-90deg);\n}\n\n._CSS-actual-burn line {\n  stroke-opacity: initial;\n  stroke: orange;\n  stroke-width: 1px;\n}\n\n._CSS-actual-burn circle {\n  stroke: none;\n}\n\n._CSS-date-actions {\n  padding-top: 1rem;\n  display: flex;\n  justify-content: center;\n  flex: 1;\n}\n\n._CSS .bp-button:disabled {\n  opacity: 0.3;\n}\n\n._CSS-sprint-information {\n  font-size: 0.8em;\n}\n\n._CSS-informations {\n  border-style: solid;\n  border-color: #ececec;\n  border-width: 1px 0 1px 0;\n  border-radius: 3px;\n  padding: 1rem;\n}\n\n._CSS-sprint-day-popup {\n  display: flex;\n  flex-flow: column;\n\n  border: 1px solid black;\n  padding: 0.5rem;\n  background: white;\n  font-size: 0.9em;\n}\n\n._CSS-sprint-day-circle {\n  cursor: help;\n}\n","controller":"class Controller {\n  async init() {\n    locals.sprints = []\n    locals.showSprintIndex = 0\n    locals.sprintEntries = []\n    locals.daysInSprint = []\n    locals.entriesPerDay = []\n    locals.maxCount = 1\n    locals.remainingCountPerDay = []\n\n    const sprintsQueryString = `p:${document.id} f.id:fee1d6a3-fd7b-416c-a42a-e11c9585bcf5`\n    Aeppic.subscribe(sprintsQueryString, async (sprintDocuments) => {\n      locals.sprints = sprintDocuments.sort((a, b) => {\n        // TODO: use query to sort, not function\n        return new Date(a.data.end).valueOf() > new Date(b.data.end).valueOf()\n      })\n      locals.showSprintIndex = locals.sprints.length - 1\n      this.recalculateSprintEntries()\n    })\n  }\n\n  async recalculateSprintEntries() {\n    await this.updateSprintEntries()\n    this.updateDaysInSprint()\n    await this.mapSprintEntriesToDays()\n  }\n\n  get currentSprintDocument() {\n    return locals.sprints[locals.showSprintIndex]\n  }\n\n  nextSprint() {\n    locals.showSprintIndex += 1\n    this.recalculateSprintEntries()\n  }\n\n  previousSprint() {\n    locals.showSprintIndex -= 1\n    this.recalculateSprintEntries()\n  }\n\n  resetSprint() {\n    locals.showSprintIndex = locals.sprints.length -1\n    this.recalculateSprintEntries()\n  }\n\n  async updateSprintEntries() {\n    locals.sprintEntries = await Aeppic.find(`p: ${this.currentSprintDocument.id} f.id:3c8d23b1-8721-46f8-9baa-15ee91d2a750`)\n  }\n\n  updateDaysInSprint() {\n    const now = new Date()\n    const wildcardDate = new Date('9999-01-01')\n    const start = new Date(this.currentSprintDocument.data.start)\n    const end = new Date(this.currentSprintDocument.data.end)\n    const days = [start]\n\n    let i = 1\n    while(true) {\n      const nextDay = Aeppic.Parser.dateRange(`${this.currentSprintDocument.data.start}+${i}d`, { now, wildcardDate })\n      if (nextDay >= end.valueOf()) {\n        break\n      }\n      days.push(nextDay)\n      i++\n    }\n    days.push(end)\n    \n    locals.daysInSprint = days\n  }\n\n  mapSprintEntriesToDays() {\n    const entriesPerDay = new Array(locals.daysInSprint.length)\n    const countPerDay = new Array(locals.daysInSprint.length)\n\n    for(const entry of locals.sprintEntries) {\n      const index = locals.daysInSprint.findIndex((day) => {\n        return day.valueOf() === new Date(entry.data.date).valueOf()\n      })\n\n      if (index === -1) {\n        console.log(`[WARN]: could not assign this entry to a day in sprint: ${entry}`)\n        continue\n      }\n\n      if (!entriesPerDay[index]) {\n        entriesPerDay[index] = []\n      }\n\n      entriesPerDay[index].push(entry)\n\n      if (!countPerDay[index]) {\n        countPerDay[index] = 0\n      }\n\n      if (entry.data.removed || entry.data.finished) {\n        countPerDay[index] -= 1\n      } else {\n        countPerDay[index] += 1\n      }\n\n      if (countPerDay[index] > locals.maxCount) {\n        locals.maxCount = countPerDay[index]\n      }\n    }\n\n    locals.entriesPerDay = entriesPerDay\n\n    const normalizedCountPerDay = []\n    for(let i = 0; i < countPerDay.length; i++) {\n      const previousCount = countPerDay[i - 1]\n      const count = countPerDay[i]\n\n\n      let newCount = count\n      if (count && previousCount) {\n        newCount = previousCount + count\n        normalizedCountPerDay.push(newCount)\n      } else {\n        normalizedCountPerDay.push(newCount)\n      }\n\n      if (newCount > locals.maxCount) {\n        locals.maxCount = newCount\n      }\n\n    }\n\n    locals.remainingCountPerDay = normalizedCountPerDay\n  }\n\n  // _calculateDatesAndRefreshChartEntries() {\n  //   if (this._subscription) {\n  //     this._subscription.cancel()\n  //   }\n\n  //   let startDateWithRange = `${this._baseStartDateWithoutTimeAndTimezone}${this._dateIncreaseOrDecrease}`\n  //   let endDateWithRange = `${this._baseEndDateWithoutTimeAndTimezone}${this._dateIncreaseOrDecrease}`\n\n  //   const now = new Date()\n  //   const wildcardDate = new Date('9999-01-01')\n    \n  //   this._startDate = Aeppic.DateTime.fromJSDate(Aeppic.parseDateRange(startDateWithRange, { now, wildcardDate })).toISODate()\n  //   this._endDate = Aeppic.DateTime.fromJSDate(Aeppic.parseDateRange(endDateWithRange, { now, wildcardDate })).toISODate()\n\n  //   const queryString = `p: 1fbef9f8-43d3-44cb-bdb1-fc41b09a6e0f AND data.date: [${this._startDate} TO ${this._endDate}]`\n\n  //   this._subscription = Aeppic.subscribe(queryString, (entries) => {\n  //     this._computeNormalizedStoryPointsByTimeunit(entries)\n      \n  //     this._updateHumanreadableTime()\n  //   })\n  // }\n\n  // _updateHumanreadableTime() {\n  //   locals.humanReadableTimerange = Aeppic.DateTime.fromISO(this._startDate).toLocaleString(Aeppic.DateTime.DATE_SHORT)\n  // }\n\n  // _computeNormalizedStoryPointsByTimeunit(entries) {\n  //   const now = new Date()\n  //   const wildcardDate = new Date('9999-01-01')\n  //   const timeUnit = this.parsedTimeUnit\n\n  //   const storyPointsByTimeunit = {}\n  //   for (let i = 0; i < timeUnit.count; i++) {\n  //     const dateAtStep = Aeppic.parseDateRange(`${this._startDate}+${i}${timeUnit.type}`, { now, wildcardDate })\n  //     storyPointsByTimeunit[dateAtStep.valueOf()] = 0\n  //   }\n\n  //   entries.map((entryDocument) => {\n  //     const entryData = entryDocument.data\n  //     const added = entryData.pointsAdded ? entryData.pointsAdded : 0\n  //     const finished = entryData.pointsFinished ? entryData.pointsFinished : 0\n  //     const date = new Date(entryData.date).valueOf()\n  //     if (storyPointsByTimeunit[date] == null) {\n  //       console.warn(`[WARN]: Date \"${date}\" is not matching defined dateRange`)\n  //       return\n  //     }\n\n  //     storyPointsByTimeunit[date] = \n  //       storyPointsByTimeunit[date] + \n  //       added -\n  //       finished\n  //   })\n\n  //   const timeUnitKeys = Object.keys(storyPointsByTimeunit)\n  //   const normalizedStoryPoints = new Array(timeUnitKeys.length)\n\n  //   for(let i = 0; i < timeUnitKeys.length; i++) {\n  //     const timeUnitStep = storyPointsByTimeunit[timeUnitKeys[i]]\n  //     if (i === 0) {\n  //       normalizedStoryPoints.splice(0, 1, timeUnitStep)\n  //       continue\n  //     }\n\n  //     const previousTimeUnitStep = normalizedStoryPoints[i - 1]\n  //     if (timeUnitStep === 0) {\n  //       normalizedStoryPoints.splice(i, 1, previousTimeUnitStep)\n  //       continue\n  //     }\n      \n  //     normalizedStoryPoints.splice(i, 1, previousTimeUnitStep + timeUnitStep)\n  //   }\n\n  //   // TODO: refactor both loops to a cheaper algorithm\n  //   for(let i = normalizedStoryPoints.length - 1; i > 0; i--) {\n  //     const storyPoints = normalizedStoryPoints[i]\n  //     const previousStoryPoints = normalizedStoryPoints[i - 1]\n\n  //     if (storyPoints !== previousStoryPoints) {\n  //       // set same storypoints to null only until first change in value\n  //       break\n  //     } else {\n  //       normalizedStoryPoints.splice(i, 1, null)\n  //     }\n  //   }\n    \n  //   this._normalizedStoryPoints = normalizedStoryPoints\n  // }\n\n  // get totalStoryPoints() {\n  //   return this._normalizedStoryPoints.length && this._normalizedStoryPoints.reduce((a, b) => Math.max(a, b))\n  // }\n\n  // get numericalPartPerTimeUnit() {\n  //   return 100 / this.parsedTimeUnit.count\n  // }\n\n  // get parsedTimeUnit() {\n  //   return this._parseDateRange(data.timeUnitsAsDateRange)\n  // }\n\n  // _parseDateRange(dateRange) {\n  //   if (!dateRange) {\n  //     return {}\n  //   }\n\n  //   const match = dateRange.match(/((?:\\+|\\-)?\\d+)(\\w)/)\n  //   return {\n  //     count: Number(match[1]),\n  //     type: match[2]\n  //   }\n  // }\n\n  // get timeUnits() {\n  //   const units = []\n  //   for (let i=1; i <= this.parsedTimeUnit.count; i++) {\n  //     units.push(this.numericalPartPerTimeUnit * i)\n  //   }\n  //   return units\n  // }\n    \n  // get idealBurndownCoordinates() {\n  //   if (!this.totalStoryPoints) {\n  //     return []\n  //   }\n\n  //   const numericalPartPerPoint = 100 / this.totalStoryPoints\n  //   const units = []\n  //   for(let i=0; i <= this.parsedTimeUnit.count; i++) {\n  //     const burnedPoints = data.idealPointsBurnPerTimeUnit * i\n  //     const coordinate = burnedPoints * numericalPartPerPoint\n  //     units.push(this._sanitizedUnit(coordinate))\n\n  //     // FIXME:\n  //     if (coordinate > 100) {\n  //       break\n  //     }\n  //   }\n  //   return units\n  // }\n\n  // get actualBurndownCoordinates() {\n  //   if (!this.totalStoryPoints) {\n  //     return []\n  //   }\n\n  //   const coordinateValuePerStoryPoint = 100 / this.totalStoryPoints\n  //   const units = []\n  //   for(let i=0; i < this._normalizedStoryPoints.length; i++) {\n  //     if (this._normalizedStoryPoints[i] === null) {\n  //       continue\n  //     }\n\n  //     const sanitizedUnit = this._sanitizedUnit(100 - this._normalizedStoryPoints[i] * coordinateValuePerStoryPoint)\n  //     if (sanitizedUnit !== null) {\n  //       units.push(sanitizedUnit)\n  //     }\n  //   }\n\n  //   return units\n  // }\n\n  // _sanitizedUnit(decimalNumber) {\n  //   if (Number.isNaN(decimalNumber)) {\n  //     return null\n  //   }\n  //   if (typeof decimalNumber !== 'number') {\n  //     return Number(Number(decimalNumber).toFixed())\n  //   }\n\n  //   return Number(decimalNumber.toFixed())\n  // }\n\n  // resetDate() {\n  //   this._dateIncreaseOrDecrease = ''\n  //   this._calculateDatesAndRefreshChartEntries()\n  // }\n\n  // decreaseDateByTimeframe() {\n  //   this._increaseOrDecreaseDate(false)\n  //   this._calculateDatesAndRefreshChartEntries()\n  // }\n\n  // increaseDateByTimeframe() {\n  //   this._increaseOrDecreaseDate(true)\n  //   this._calculateDatesAndRefreshChartEntries()\n  // }\n\n  // _increaseOrDecreaseDate(increase) {\n  //   const { count: currentDateIncrease, _ } = this._parseDateRange(this._dateIncreaseOrDecrease)\n  //   const normalizedCurrentCount = currentDateIncrease == null ? 0 : currentDateIncrease\n\n  //   const { count: chartDateRangeCount, type: dateRangeType } = this._parseDateRange(data.timeframeAsDateRange)\n  //   const newDateRangeCount = increase ? normalizedCurrentCount + chartDateRangeCount : normalizedCurrentCount - chartDateRangeCount\n    \n  //   if (newDateRangeCount === 0) {\n  //     this.resetDate()\n  //     return\n  //   }\n\n  //   this._dateIncreaseOrDecrease = `${newDateRangeCount > 0 ? '+' : '' }${newDateRangeCount}${dateRangeType}`\n  // }\n}","packages":[]},"locks":[],"created":{"at":"2018-04-18T15:42:13+02:00","by":"","from":"","client":"server"},"modified":{"at":"2018-05-23T16:20:48+02:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","backedBy":null,"from":"","client":"server"},"t":1527085248236,"ct":1524058933856,"a_depth":4,"a":["apps","aed1ba1c-9095-4aca-8176-74a37325f0e5","58cc45fb-3fb3-45e8-b61d-4b89899e357a","6770bab9-4e15-45ae-bf22-7fe4ef2a0848"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"8fe20ceb-895b-4a18-9cd6-fe4984a7c24e","v":"86e5889addf2c988","previous":{"v":"f79217c65133e84f"},"p":"3fb87b4e-3b2a-4ae6-b76b-0bec96b2da9b","f":{"id":"design-form","v":"e3fe9ece11aabc5e","text":"Design"},"data":{"name":"burndown-chart","applies":"","template":"<div class=\"_CSS-date-actions\" :key=\"locals.humanReadableTimerange\">\n  <button class=\"bp-button bp-button-icon\" @click=\"controller.decreaseDateByTimeframe()\">\n    <ae-icon class=\"fa fa-arrow-left\"></ae-icon>\n  </button>\n  <button class=\"bp-button bp-button--transparent\"\n          style=\"padding: var(--bp-page-content-padding)\" \n          @click=\"controller.resetDate()\">\n    RESET\n  </button>\n  <button class=\"bp-button bp-button-icon\" @click=\"controller.increaseDateByTimeframe()\">\n    <ae-icon class=\"fa fa-arrow-right\"></ae-icon>\n  </button>\n</div>\n\n\n\n<svg class=\"_CSS-chart\" viewBox=\"-20 -20 140 140\">\n  <g class=\"_CSS-coordinate-system\">\n    <polyline points=\"0,100 100,100\"></polyline>\n    <polyline points=\"0,0 0,100\"></polyline>\n  </g>\n\n  <g class=\"_CSS-coordinate-system__axis-descriptions\">\n    <text class=\"_CSS-axis-description-y\" x=\"-80\" y=\"-15\">\n      Story Points Remaining\n    </text>\n    <text class=\"_CSS-axis-description-x\" x=\"40\" y=\"115\">\n      Time (in {{ controller.parsedTimeUnit.type }})\n    </text>\n    <g class=\"_CSS-axis-storypoints\">\n      <text v-for=\"(_, i) in controller.parsedTimeUnit.count\" x=\"-8\" :y=\"i * controller.numericalPartPerTimeUnit\">\n        {{ Math.round(controller.totalStoryPoints - (controller.totalStoryPoints / controller.parsedTimeUnit.count) * i) }}\n      </text>\n    </g>\n\n    <g class=\"_CSS-axis-timeunits\">\n      <template v-for=\"(n, i) in controller.timeUnits\">\n        <polyline class=\"_CSS-coordinate-marker\" :points=\"n + ',100 '  + n + ',95'\" :key=\"n\"></polyline>\n        <text class=\"_CSS-coordinate-marker__text\" :x=\"n - 2\" y=\"108\" :key=\"n\">{{ i +1 }}</text>\n      </template>\n    </g>\n\n    <text class=\"_CSS-axis-zerointersection\" y=\"118\" x=\"-18\">\n        Start: {{ locals.humanReadableTimerange }}\n    </text>\n  </g>\n\n  <g class=\"_CSS-ideal-burn\">\n    <template v-for=\"(coordinate, i) in controller.idealBurndownCoordinates\" v-if=\"i !== 0\">\n      <line\n        :y1=\"controller.idealBurndownCoordinates[i - 1]\"\n        :y2=\"coordinate < 100 ? coordinate : 100\"\n        :x1=\"controller.numericalPartPerTimeUnit * ( i - 1 )\"\n        :x2=\"coordinate < 100 ? controller.numericalPartPerTimeUnit * i : controller.numericalPartPerTimeUnit * (controller.totalStoryPoints / data.idealPointsBurnPerTimeUnit)\"></line>\n    </template>\n  </g>\n\n  <g class=\"_CSS-actual-burn\">\n    <template v-for=\"(coordinate, index) in controller.actualBurndownCoordinates\">\n      <line v-if=\"coordinate !== null\"\n        :y1=\"controller.actualBurndownCoordinates[index - 1] || 0\"\n        :y2=\"coordinate\"\n        :x1=\"index * controller.numericalPartPerTimeUnit\"\n        :x2=\"(index + 1) * controller.numericalPartPerTimeUnit\"></line>\n    </template>\n  </g>\n</svg>\n\n<!-- <pre>\n_normalizedStoryPoints {{controller._normalizedStoryPoints}}\nactualBurndownCoordinates {{controller.actualBurndownCoordinates}}\nidealBurndownCoordinates {{controller.idealBurndownCoordinates}}\ndata {{data}}\n</pre> -->\n\n\n\n\n","css":"._CSS {\n  padding: var(--bp-page-content-padding) 0 0 var(--bp-page-content-padding);\n  display: flex;\n  flex-flow: column;\n\n  /* re-enable before live max-height: 800px; */\n  max-height: 100%;\n  max-width: 80%;\n  margin: auto;\n}\n\n._CSS-chart {\n  flex: 1;\n  /* background: #f3f3f3; */\n  stroke: #777;\n  stroke-width: 0.5px;\n  fill: none;\n}\n\n\n._CSS-coordinate-system__axis-descriptions { \n  stroke: none;\n  fill: black;\n  font-family: \"Lato\", \"Calibri Light\", \"Helvetica Neue\", Roboto, sans-serif;\n  font-size: 4px;\n}\n\n._CSS-coordinate-marker {\n  stroke: #777;\n}\n\n._CSS-axis-description-y {\n  transform: rotate(-90deg);\n}\n\n._CSS-actual-burn {\n  stroke-opacity: initial;\n  stroke: orange;\n  stroke-width: 1px;\n}\n\n._CSS-date-actions {\n  display: flex;\n  flex: 1;\n}\n","controller":"class Controller {\n  async init() {\n    this._normalizedStoryPoints = []\n    this._dateIncreaseOrDecrease = ''\n    locals.humanReadableTimerange = ''\n    \n    this._baseStartDateWithoutTimeAndTimezone = Aeppic.DateTime.fromISO(data.startDate).toISODate()\n\n    const now = new Date()\n    const wildcardDate = new Date('9999-01-01')\n    this._baseEndDateWithoutTimeAndTimezone = Aeppic.DateTime.fromJSDate(Aeppic.parseDateRange(`${this._baseStartDateWithoutTimeAndTimezone}+${data.timeframeAsDateRange}`, { now, wildcardDate })).toISODate()\n    \n    this._startDate = data.startDate\n    this._endDate = this._baseEndDateWithoutTimeAndTimezone\n\n\n    this._calculateDatesAndRefreshChartEntries()    \n  }\n\n  _calculateDatesAndRefreshChartEntries() {\n    if (this._subscription) {\n      this._subscription.cancel()\n    }\n\n    let startDateWithRange = `${this._baseStartDateWithoutTimeAndTimezone}${this._dateIncreaseOrDecrease}`\n    let endDateWithRange = `${this._baseEndDateWithoutTimeAndTimezone}${this._dateIncreaseOrDecrease}`\n\n    const now = new Date()\n    const wildcardDate = new Date('9999-01-01')\n    \n    this._startDate = Aeppic.DateTime.fromJSDate(Aeppic.parseDateRange(startDateWithRange, { now, wildcardDate })).toISODate()\n    this._endDate = Aeppic.DateTime.fromJSDate(Aeppic.parseDateRange(endDateWithRange, { now, wildcardDate })).toISODate()\n\n\n    const queryString = `p: 1fbef9f8-43d3-44cb-bdb1-fc41b09a6e0f AND data.date: [${this._startDate} TO ${this._endDate}]`\n\n    this._subscription = Aeppic.subscribe(queryString, (entries) => {\n      this._computeNormalizedStoryPointsByTimeunit(entries)\n      \n      this._updateHumanreadableTime()\n    })\n  }\n\n  _updateHumanreadableTime() {\n    locals.humanReadableTimerange = Aeppic.DateTime.fromISO(this._startDate).toLocaleString(Aeppic.DateTime.DATE_SHORT)\n  }\n\n  _computeNormalizedStoryPointsByTimeunit(entries) {\n    const now = new Date()\n    const wildcardDate = new Date('9999-01-01')\n    const timeUnit = this.parsedTimeUnit\n\n    const storyPointsByTimeunit = {}\n    for (let i = 0; i < timeUnit.count; i++) {\n      const dateAtStep = Aeppic.parseDateRange(`${this._startDate}+${i}${timeUnit.type}`, { now, wildcardDate })\n      storyPointsByTimeunit[dateAtStep.valueOf()] = 0\n    }\n\n    entries.map((entryDocument) => {\n      const entryData = entryDocument.data\n      const added = entryData.pointsAdded ? entryData.pointsAdded : 0\n      const finished = entryData.pointsFinished ? entryData.pointsFinished : 0\n      const date = new Date(entryData.date).valueOf()\n      if (storyPointsByTimeunit[date] == null) {\n        console.warn(`[WARN]: Date \"${date}\" is not matching defined dateRange`)\n        return\n      }\n\n      storyPointsByTimeunit[date] = \n        storyPointsByTimeunit[date] + \n        added -\n        finished\n    })\n\n    const timeUnitKeys = Object.keys(storyPointsByTimeunit)\n    const normalizedStoryPoints = new Array(timeUnitKeys.length)\n\n    for(let i = 0; i < timeUnitKeys.length; i++) {\n      const timeUnitStep = storyPointsByTimeunit[timeUnitKeys[i]]\n      if (i === 0) {\n        normalizedStoryPoints.splice(0, 1, timeUnitStep)\n        continue\n      }\n\n      const previousTimeUnitStep = normalizedStoryPoints[i - 1]\n      if (timeUnitStep === 0) {\n        normalizedStoryPoints.splice(i, 1, previousTimeUnitStep)\n        continue\n      }\n      \n      normalizedStoryPoints.splice(i, 1, previousTimeUnitStep + timeUnitStep)\n    }\n\n    // TODO: refactor both loops to a cheaper algorithm\n    for(let i = normalizedStoryPoints.length - 1; i > 0; i--) {\n      const storyPoints = normalizedStoryPoints[i]\n      const previousStoryPoints = normalizedStoryPoints[i - 1]\n\n      if (storyPoints !== previousStoryPoints) {\n        // set same storypoints to null only until first change in value\n        break\n      } else {\n        normalizedStoryPoints.splice(i, 1, null)\n      }\n    }\n    \n    this._normalizedStoryPoints = normalizedStoryPoints\n  }\n\n  get totalStoryPoints() {\n    return this._normalizedStoryPoints.length && this._normalizedStoryPoints.reduce((a, b) => Math.max(a, b))\n  }\n\n  get numericalPartPerTimeUnit() {\n    return 100 / this.parsedTimeUnit.count\n  }\n\n  get parsedTimeUnit() {\n    return this._parseDateRange(data.timeUnitsAsDateRange)\n  }\n\n  _parseDateRange(dateRange) {\n    if (!dateRange) {\n      return {}\n    }\n\n    const match = dateRange.match(/((?:\\+|\\-)?\\d+)(\\w)/)\n    return {\n      count: Number(match[1]),\n      type: match[2]\n    }\n  }\n\n  get timeUnits() {\n    const units = []\n    for (let i=1; i <= this.parsedTimeUnit.count; i++) {\n      units.push(this.numericalPartPerTimeUnit * i)\n    }\n    return units\n  }\n    \n  get idealBurndownCoordinates() {\n    if (!this.totalStoryPoints) {\n      return []\n    }\n\n    const numericalPartPerPoint = 100 / this.totalStoryPoints\n    const units = []\n    for(let i=0; i <= this.parsedTimeUnit.count; i++) {\n      const burnedPoints = data.idealPointsBurnPerTimeUnit * i\n      const coordinate = burnedPoints * numericalPartPerPoint\n      units.push(this._sanitizedUnit(coordinate))\n\n      // FIXME:\n      if (coordinate > 100) {\n        break\n      }\n    }\n    return units\n  }\n\n  get actualBurndownCoordinates() {\n    if (!this.totalStoryPoints) {\n      return []\n    }\n\n    const coordinateValuePerStoryPoint = 100 / this.totalStoryPoints\n    const units = []\n    for(let i=0; i < this._normalizedStoryPoints.length; i++) {\n      if (this._normalizedStoryPoints[i] === null) {\n        continue\n      }\n\n      const sanitizedUnit = this._sanitizedUnit(100 - this._normalizedStoryPoints[i] * coordinateValuePerStoryPoint)\n      if (sanitizedUnit !== null) {\n        units.push(sanitizedUnit)\n      }\n    }\n\n    return units\n  }\n\n  _sanitizedUnit(decimalNumber) {\n    if (Number.isNaN(decimalNumber)) {\n      return null\n    }\n    if (typeof decimalNumber !== 'number') {\n      return Number(Number(decimalNumber).toFixed())\n    }\n\n    return Number(decimalNumber.toFixed())\n  }\n\n  resetDate() {\n    this._dateIncreaseOrDecrease = ''\n    this._calculateDatesAndRefreshChartEntries()\n  }\n\n  decreaseDateByTimeframe() {\n    this._increaseOrDecreaseDate(false)\n    this._calculateDatesAndRefreshChartEntries()\n  }\n\n  increaseDateByTimeframe() {\n    this._increaseOrDecreaseDate(true)\n    this._calculateDatesAndRefreshChartEntries()\n  }\n\n  _increaseOrDecreaseDate(increase) {\n    const { count: currentDateIncrease, _ } = this._parseDateRange(this._dateIncreaseOrDecrease)\n    const normalizedCurrentCount = currentDateIncrease == null ? 0 : currentDateIncrease\n\n    const { count: chartDateRangeCount, type: dateRangeType } = this._parseDateRange(data.timeframeAsDateRange)\n    const newDateRangeCount = increase ? normalizedCurrentCount + chartDateRangeCount : normalizedCurrentCount - chartDateRangeCount\n    \n    if (newDateRangeCount === 0) {\n      this.resetDate()\n      return\n    }\n\n    this._dateIncreaseOrDecrease = `${newDateRangeCount > 0 ? '+' : '' }${newDateRangeCount}${dateRangeType}`\n  }\n}","packages":[]},"locks":[],"created":{"at":"2018-01-04T10:54:56+01:00","by":"","from":"","client":"f9085a8e-bd36-4930-95ca-3daca666caf2"},"modified":{"at":"2018-04-18T15:41:44+02:00","by":"","backedBy":"","from":"","client":"server"},"t":1524058904998,"ct":1515059694168,"a_depth":4,"a":["apps","81a6e9c3-754a-4964-8557-68edfe57053e","d49bc831-377c-4f1c-b52b-54a5b2814dde","3fb87b4e-3b2a-4ae6-b76b-0bec96b2da9b"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"68c281dc-bde8-4499-9193-ad2116bb4723","v":"initial","p":"aabed4ee-20ca-4df4-9a78-75a05e97dce9","f":{"id":"design-form","v":"3a761d06f59c46c1","text":"Design"},"data":{"name":"button-download","template":"<a :href=\"Aeppic.Content.getSrc(document, 'datei')\" target=\"_blank\" :download=\"controller.fileNameWithUploadedExtension\">\n  <button class=\"dbps-button\" title=\"Datei herunterladen\">\n    <ae-icon class=\"fa fa-download\"></ae-icon>\n  </button>  \n</a>","css":"","controller":"class Controller {\n  get fileNameWithUploadedExtension() {\n    try {\n      const parts = document.data.datei.name.split('.')\n      const extension = parts.slice(-1)[0]\n\n      if (document.data.name.endsWith(extension)) {\n        return document.data.name\n      }\n\n      return `${document.data.name}.${extension}`\n    } catch (e) {\n      return document.data.name\n    }\n  }\n}\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-10-13T10:11:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2020-10-13T10:11:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1602583892052,"ct":1602583892052,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","aabed4ee-20ca-4df4-9a78-75a05e97dce9"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"41b37591-330a-43eb-a0e0-f70dc2d26e2b","v":"473c0514ff10d02c","previous":{"v":"c023f5859f733407"},"p":"9292b892-ed0f-48fd-b3f3-d1e3729cb7fa","f":{"id":"design-form","v":"24435d748c76f819","text":"Design"},"data":{"name":"button-icon","template":"<ae-layout v-if=\"data.iconLayout && data.iconLayout.id\" :layout-id=\"data.iconLayout.id\" class=\"ae-button\"></ae-layout>\n<button v-else class=\"ae-button\" :class=\"{ '_CSS-button--overlay': params.overlay }\">\n  <ae-design :document=\"document\" name=\"icon\"></ae-design>\n</button>","css":"._CSS-button--overlay {\n  color: var(--ae-primary-fg);\n  filter: drop-shadow( 0px 0px 1px rgba(0,0,0,1) ) drop-shadow( 0px 0px 10px rgba(0,0,0,0.8));\n}","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2019-03-19T13:04:01+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2019-06-19T15:01:19+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1560956479392,"ct":1553000641799,"a_depth":4,"a":["apps","77ee8815-2c3a-4bb5-abd9-90541a545a24","ff13ca04-7a64-4d12-ab9a-edee939ca478","9292b892-ed0f-48fd-b3f3-d1e3729cb7fa"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"1d00d54f-485a-4fc1-8e48-e56f4539ce76","v":"initial","cloneOf":{"id":"5b560c93-411e-4b3c-9114-0146b340c610","v":"initial","text":"calendar"},"originalCloneOf":{"id":"5b560c93-411e-4b3c-9114-0146b340c610","v":"initial","text":"calendar"},"p":"0b4fe19c-a550-46b7-ada0-6813a60e14bc","f":{"id":"design-form","v":"24435d748c76f819","text":"Design"},"data":{"name":"calendar","template":"<ae-layout  layout-id=\"f66a2fef-e019-4cc3-a3ce-9d6e1e16a7ab\"\n        param-list-form=\"0deb4864-cbb6-420c-99ee-337c7444ab24\"\n        @filter=\"locals.manualFilter = $event;$refs.calendar.$emit('list-refresh');\"\n        :param-disable-sort=\"true\"\n        :param-document=\"document\"\n></ae-layout>\n<ae-list\n  ref=\"calendar\"\n  param-popup-design=\"card--wide\"\n  list-id=\"6148f997-2011-4646-9a24-9cb61b5a7060\"\n  param-view=\"month\" \n  :search=\"'(f.id:0deb4864-cbb6-420c-99ee-337c7444ab24 OR f.id:0b6a2b21-9425-466e-9e8d-57ec39cc95e1) data.erledigt:false a:'+document.id\"\n  :search-options=\"locals.searchOptions\"\n  :sort=\"locals.manualSort\"\n  :filter=\"locals.manualFilter\"\n  class=\"_CSS-calendar\"\n  >\n</ae-list>","css":"._CSS-body-container {\n  padding: var(--bp-page-content-padding);\n  padding-top: 12px;\n\n  /* full page */\n  position: absolute;\n  top: 48px;\n  bottom: 0;\n  left: 0;\n  right: 0;\n}\n\n._CSS-body {\n  max-width: 1000px;\n  margin: auto;\n}\n\n._CSS-body__column {\n  flex: 1;\n  min-width: 0;\n\n  display: flex;\n  flex-direction: column;\n}\n\n._CSS-header {\n  color: gray;\n  font-size: 0.9em;\n  font-weight: bold;\n}\n\n._CSS-header ~ * {\n  margin-top: 1em;\n}\n\n._CSS-header ~ ._CSS-header {\n  margin-top: 3em;\n}\n\n.bp-button:disabled {\n  opacity: 0.5;\n}\n\n._CSS-commands-bar {\n  padding: 5px;\n  display: flex;\n  justify-content: space-between;\n  border-bottom: var(--ae-border-width) solid var(--ae-border-color);\n  position: relative;\n\n  background: var(--ae-ui-background);\n}\n\n/* ._CSS-commands-bar::after {\n  content:'';\n  position:absolute;\n  height:4px;\n  left:0;\n  bottom:-0px;\n  right:0;\n  border-top: 1px solid rgba(0,0,0,0.2);\n  background: linear-gradient(to bottom, rgba(0,0,0,0.1) 0%,rgba(0,0,0,0) 100%);\n  display: block;\n} */\n\n._CSS-button--danger {\n  margin-left: 8px;\n}\n\n._CSS-button--danger:hover > * {\n  color: var(--ae-theme-warning);\n}\n\n._CSS-commands {\n  display: grid;\n  grid-gap: 2px;\n  grid-auto-columns: auto;\n  grid-auto-flow:column;\n}\n\n._CSS-commands > .bp-button._CSS-command--primary {\n  padding: 8px 16px; \n}\n\n._CSS-commands .bp-button {\n  padding: 8px;\n}\n \n/* ._CSS-button-more {\n  border: none;\n  margin: 20px 0;\n  background: white;\n  padding: 4px 10px;\n  width: 400px;\n  border-radius: 2px;\n  outline: none;\n\n  color: hsl(0, 0%, 38%);\n  font-size: 14px;\n\n  box-shadow: 0 2px 5px 0 rgba(70, 70, 70, 0.2);\n} */\n\n._CSS-calendar{\n  flex:1;\n}","controller":"init() {\n  locals.sort = [{\n    field: 'data.bis',\n    descending: true\n  }, {\n    field: 'data.name',\n    descending: false\n  }]\n  locals.searchOptions = {\n    size: 9999\n  }\n\n  locals.showDone = false\n  locals.showDetails = false\n\n  Aeppic.watchMatchingDocuments('', () => {\n    if ($refs.calendar) {\n      $refs.calendar.$emit('list-refresh')\n    }\n  })\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-07-01T14:40:04+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2020-07-01T14:40:04+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1593614404630,"ct":1593614404627,"a_depth":4,"a":["apps","59edbdbc-2cab-426a-bb42-6e57c5158e4f","3be7e887-1bcd-4c3c-979f-b20a986c4c48","0b4fe19c-a550-46b7-ada0-6813a60e14bc"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"5b560c93-411e-4b3c-9114-0146b340c610","v":"initial","p":"4df0ebf7-c439-48d3-8a57-eef59bcfa250","f":{"id":"design-form","v":"24435d748c76f819","text":"Design"},"data":{"name":"calendar","template":"<ae-layout  layout-id=\"f66a2fef-e019-4cc3-a3ce-9d6e1e16a7ab\"\n        param-list-form=\"3d456c38-6282-416e-8c5e-7d20b0517a6e\"\n        @filter=\"locals.manualFilter = $event;$refs.calendar.$emit('list-refresh');\"\n        :param-disable-sort=\"true\"\n        :param-document=\"document\"\n></ae-layout>\n<ae-list\n  ref=\"calendar\"\n  param-popup-design=\"card--wide\"\n  list-id=\"6148f997-2011-4646-9a24-9cb61b5a7060\"\n  param-view=\"month\" \n  :search=\"'(f.id:3d456c38-6282-416e-8c5e-7d20b0517a6e OR f.id:17c3a5d3-90ba-4592-961b-0800873ef9c1) data.erledigt:false a:'+document.id\"\n  :search-options=\"locals.searchOptions\"\n  :sort=\"locals.manualSort\"\n  :filter=\"locals.manualFilter\"\n  class=\"_CSS-calendar\"\n  >\n</ae-list>","css":"._CSS-body-container {\n  padding: var(--bp-page-content-padding);\n  padding-top: 12px;\n\n  /* full page */\n  position: absolute;\n  top: 48px;\n  bottom: 0;\n  left: 0;\n  right: 0;\n}\n\n._CSS-body {\n  max-width: 1000px;\n  margin: auto;\n}\n\n._CSS-body__column {\n  flex: 1;\n  min-width: 0;\n\n  display: flex;\n  flex-direction: column;\n}\n\n._CSS-header {\n  color: gray;\n  font-size: 0.9em;\n  font-weight: bold;\n}\n\n._CSS-header ~ * {\n  margin-top: 1em;\n}\n\n._CSS-header ~ ._CSS-header {\n  margin-top: 3em;\n}\n\n.bp-button:disabled {\n  opacity: 0.5;\n}\n\n._CSS-commands-bar {\n  padding: 5px;\n  display: flex;\n  justify-content: space-between;\n  border-bottom: var(--ae-border-width) solid var(--ae-border-color);\n  position: relative;\n\n  background: var(--ae-ui-background);\n}\n\n/* ._CSS-commands-bar::after {\n  content:'';\n  position:absolute;\n  height:4px;\n  left:0;\n  bottom:-0px;\n  right:0;\n  border-top: 1px solid rgba(0,0,0,0.2);\n  background: linear-gradient(to bottom, rgba(0,0,0,0.1) 0%,rgba(0,0,0,0) 100%);\n  display: block;\n} */\n\n._CSS-button--danger {\n  margin-left: 8px;\n}\n\n._CSS-button--danger:hover > * {\n  color: var(--ae-theme-warning);\n}\n\n._CSS-commands {\n  display: grid;\n  grid-gap: 2px;\n  grid-auto-columns: auto;\n  grid-auto-flow:column;\n}\n\n._CSS-commands > .bp-button._CSS-command--primary {\n  padding: 8px 16px; \n}\n\n._CSS-commands .bp-button {\n  padding: 8px;\n}\n \n/* ._CSS-button-more {\n  border: none;\n  margin: 20px 0;\n  background: white;\n  padding: 4px 10px;\n  width: 400px;\n  border-radius: 2px;\n  outline: none;\n\n  color: hsl(0, 0%, 38%);\n  font-size: 14px;\n\n  box-shadow: 0 2px 5px 0 rgba(70, 70, 70, 0.2);\n} */\n\n._CSS-calendar{\n  flex:1;\n}","controller":"init() {\n  locals.sort = [{\n    field: 'data.bis',\n    descending: true\n  }, {\n    field: 'data.name',\n    descending: false\n  }]\n  locals.searchOptions = {\n    size: 9999\n  }\n\n  locals.showDone = false\n  locals.showDetails = false\n\n  Aeppic.watchMatchingDocuments('', () => {\n    if ($refs.calendar) {\n      $refs.calendar.$emit('list-refresh')\n    }\n  })\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-05-08T08:50:55+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2020-05-08T08:50:55+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1588927855446,"ct":1588927855445,"a_depth":4,"a":["apps","5acfd7a2-33e4-498a-9150-71e1ab772bfc","20c92864-6a81-4006-96f9-b78f473cd129","4df0ebf7-c439-48d3-8a57-eef59bcfa250"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"5ec1fe71-9eba-4ded-9833-97b5bdd624a6","v":"c72346284d904378","previous":{"v":"4f2baad8a5e72a6f"},"p":"0b6a2b21-9425-466e-9e8d-57ec39cc95e1","f":{"id":"design-form","v":"e37099c040ec46e9","text":"Design"},"data":{"name":"calendar","template":"<ae-design  name=\"rd:page-inner\"\n            v-if=\"locals.calendar\"\n            :document=\"locals.calendar\"\n            :watch-list=\"false\"\n></ae-design>","css":"","controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Calendar: 'c6237a67-b8cf-4107-92d8-afd460497f0e'\n    }\n    locals.existingCalendar = null\n    locals.calendar = null\n    locals.existingCalendar = await Aeppic.findOne(`p:${document.a[0]} f.id:${this.FORMS.Calendar}`)\n\n    if (!locals.existingCalendar) {\n      return\n    }\n\n\n\n    const config = JSON.parse(locals.existingCalendar.data.configuration)\n    for (const calendar of (config.calendars || config)) {\n      calendar.ancestor = document.id\n    }\n\n    const editable = await Aeppic.edit(locals.existingCalendar)\n    editable.data.configuration = JSON.stringify(config)\n    locals.calendar = editable\n  }\n} ","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-06-10T12:10:21+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-10-26T07:52:03+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1666770723145,"ct":1623327021841,"a_depth":4,"a":["apps","59edbdbc-2cab-426a-bb42-6e57c5158e4f","3be7e887-1bcd-4c3c-979f-b20a986c4c48","0b6a2b21-9425-466e-9e8d-57ec39cc95e1"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"0867de07-4967-4f51-846e-71580d447c9e","v":"228af2beba3571bd","cloneOf":{"id":"2bad95a0-ced4-48e4-bfd0-8e600f8b82a3","v":"6d84a18b2abcfb5f","text":"card--wide"},"originalCloneOf":{"id":"2bad95a0-ced4-48e4-bfd0-8e600f8b82a3","v":"6d84a18b2abcfb5f","text":"card--wide"},"previous":{"v":"fcc3c31798299baa"},"p":"0b6a2b21-9425-466e-9e8d-57ec39cc95e1","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"card","applies":"","template":"<div class=\"_CSS-container\" :class=\"{ '_CSS-container--finished': data.erledigt || controller.progress.closed === 100, '_CSS-container--overdue': controller.isOverdue }\">\n  <div class=\"_CSS-card ae-navigatable\" @click.stop=\"$emit('selected', document)\">\n    <section>\n      <div v-if=\"data.client && data.client.id\" class=\"_CSS-card__title\" >\n        <ae-design style=\"display: inline-block;font-size:var(--ae-font-size-3);margin-right: var(--ae-size-1);\" name=\"icon\" document-id=\"8fc08287-dbcc-4e41-9d5d-28e4cd828943\"></ae-design>\n        <ae-design style=\"display: inline-block;\" name=\"title\" :document=\"document\"></ae-design>\n      </div>\n      <div v-else-if=\"data.dmsFolder && data.dmsFolder.id\" class=\"_CSS-card__title\" >\n        <ae-design style=\"display: inline-block;font-size:var(--ae-font-size-3);margin-right: var(--ae-size-1);\" name=\"icon\" document-id=\"a04c8913-db48-4e80-b20d-0f3cc17a778c\"></ae-design>\n        <ae-design style=\"display: inline-block;\" name=\"title\" :document=\"document\"></ae-design>\n      </div>\n      <template v-else>\n        <div class=\"_CSS-card__title\">\n          {{data.name}}\n        </div>\n      </template>\n\n      <div class=\"_CSS-assignees\">\n        <!-- <span class=\"_CSS-assignees__label\">Zuständige</span> -->\n        <div class=\"_CSS-assignees__avatars\" v-if=\"data.verantwortlich.length\">\n          <ae-design name=\"avatar--tiny\" :document-id=\"data.verantwortlich[0].id\"></ae-design>\n          <ae-design v-if=\"data.verantwortlich.length === 2\" name=\"avatar--tiny\" :document-id=\"data.verantwortlich[1].id\"></ae-design>\n          <ae-design v-if=\"data.verantwortlich.length > 2\" name=\"avatar--tiny\" :document-id=\"data.verantwortlich[1].id\" :param-overwrite-display-with=\"'+' + (data.verantwortlich.length - 1)\" :title=\"locals.tooltipWeitereVerantwortliche\"></ae-design>\n        </div>\n        <!-- <div v-else class=\"_CSS-assignees__placeholder\">\n          Keine Verantwortlichen\n        </div> -->\n      </div>\n    </section>\n    <section style=\"display:flex;justify-content: flex-end;\">\n      <ae-layout layout-id=\"101e5b7e-208a-42e3-951a-ee305efd3758\"\n                  param-label=\"Aufgaben\"\n                  :param-parts=\"locals.parts\"\n                  style=\"flex: 1;\"\n      ></ae-layout>\n        <div class=\"_CSS-card__to\">\n          <span class=\"_CSS-to__date\" v-if=\"controller.progress.overdue === 0 && controller.progress.open === 0\">\n            <div class=\"_CSS-to__title\">Erledigt!</div>\n            <ae-icon class=\"fa fa-check _CSS-to__value\"></ae-icon>\n          </span>\n          <span  class=\"_CSS-to__date\" v-else-if=\"data.bis\" :title=\"Aeppic.DateTime.fromISO(data.bis).toLocaleString()\">\n            <div class=\"_CSS-to__title\">Tage übrig</div>\n            <div class=\"_CSS-to__value\" :class=\"{ '_CSS-to__value--overdue': controller.isOverdue, '_CSS-to__value--warning': controller.daysLeft <= 5 && controller.daysLeft >= 0 }\">{{ controller.daysLeft }}</div>\n          </span>\n          <div v-else class=\"_CSS-to__placeholder\">\n            <div class=\"_CSS-to__title\">Fortlaufend</div>\n            <ae-icon class=\"fa fa-infinity _CSS-to__value\"></ae-icon>\n          </div>\n        </div>\n    </section>\n  </div>\n\n  <!-- <div class=\"_CSS-card-subprojects\" @click.stop>\n    <div class=\"_CSS-subprojects__button\">\n      <button v-if=\"controller.hasDetails\" class=\"ae-button ae-button--small _CSS-subprojects__button\" @click.stop=\"locals.showDetails = !locals.showDetails\">\n        <ae-icon v-show=\"!controller.showDetails\" class=\"fa fa-chevron-down\"></ae-icon>\n        <ae-icon v-show=\"controller.showDetails\" class=\"fa fa-chevron-up\"></ae-icon>\n      </button>\n    </div>\n\n    <div class=\"_CSS-subprojects__content\" v-if=\"controller.showDetails\">\n      <ae-control v-if=\"controller.hasDescription\" :readonly=\"true\" name=\"editor-light\" :document=\"document\" field-name=\"beschreibung\"></ae-control>   \n      <ae-list  list-id=\"8ba2cd16-36fc-49de-8b48-6fcc8f956b76\"\n                :root-document-id=\"document.id\"\n                query-id=\"71adfdbd-c448-47c4-90bc-1df0191f6096\"\n                param-title=\"Unterprojekte\"\n                :param-hide-empty=\"true\" \n                @selected=\"$emit('selected', $event)\"\n      ></ae-list>\n    </div>\n  </div> --> \n</div>\n\n\n<!-- <div class=\"_CSS-card-categories\">\n    <ae-design class=\"_CSS-card-category\" name=\"icon\" v-for=\"category in data.kategorie\" :document-id=\"category.id\" :key=\"category.id\"></ae-design>\n  </div>\n  <ae-design v-if=\"data.anhaenge && data.anhaenge.length\" name=\"paperclip--small\" :document=\"document\"></ae-design> -->\n","css":"._CSS-container {\n  /* height = fixed height + 2x padding */\n  min-height: calc(var(--height) + calc(2 * var(--ae-space-1)));\n  --padding: var(--ae-space-1) var(--ae-space-1);\n  --height: 60px;\n  \n  border-radius: var(--ae-border-radius);\n\n  background-color: var(--ae-ui-card-background);\n\n  display: flex;\n  flex-flow: column;\n\n  border: var(--ae-border-width) solid var(--ae-border-color);\n  border-left-width: var(--ae-border-width-2);\n  border-left-color: hsl(0, 0%, 76%);\n} \n\n._CSS-card {\n  height: var(--height);\n  flex: 1;\n  display: flex;\n\n  padding: var(--padding);\n}\n\n._CSS-card__title {\n  width: 100%;\n  display: flex;\n  align-items: end;\n\n  overflow: hidden;\n  white-space: nowrap;\n  text-overflow: ellipsis;\n  color: var(--ae-foreground-l1);\n  font-weight: 450;\n}\n\n._CSS section {\n  min-width: 0;\n  flex: 1;\n}\n\n._CSS-card__progress {\n  max-width: 200px;\n}\n\n._CSS-container--overdue {\n  border-left-color: var(--ae-accent-red-300);\n}\n\n._CSS-assignees {\n  padding-top: var(--ae-size-1);\n}\n\n._CSS-assignees__avatars {\n  display: flex;\n  flex-flow: row;\n}\n\n._CSS-assignees__placeholder {\n  color:  hsl(0, 0%, 60%);\n  display: flex;\n  font-size: 14px;\n}\n\n._CSS-card__to {\n  display: flex;\n  margin-left: 20px;\n  width: 75px;\n  justify-content: center;\n}\n\n._CSS-to__date {\n  display: flex;\n  flex-flow: column;\n  align-items: center;\n  /* justify-content: center; */\n}\n\n._CSS-to__placeholder {\n  display: flex;\n  flex-flow: column;\n  align-items: center;\n  /* justify-content: center; */\n}\n\n._CSS-to__title {\n  font-size: 14px;\n  height: 20px;\n  color: var(--ae-foreground-l2);\n\n}\n\n._CSS-to__value {\n  color: var(--ae-foreground-l2);\n  margin-top: 7px;\n}\n._CSS-to__value--overdue {\n  color: var(--ae-accent-red-400);\n  font-weight: 500;\n}\n._CSS-to__value--warning {\n  color: orange;\n  font-weight: 500;\n}\n\n._CSS-card-subprojects {\n  background: var(--ae-background-200);\n  border-radius: 0 0 var(--ae-border-radius) var(--ae-border-radius);\n  min-height: 22px;\n}\n\n._CSS-card-subprojects__button {\n  width: 100%;\n  display: flex;\n}\n\nbutton._CSS-subprojects__button{\n  flex: 1;\n  color: var(--ae-foreground-l2);\n  font-size: var(--ae-font-size-1);\n  width: 99%;\n}\n\n._CSS-subprojects__button:hover:not(:disabled) {\n  color: var(--ae-foreground-l1);\n}\n\n._CSS-subprojects__content {\n  padding: 10px 4px 4px 4px;\n\n  display: flex;\n  flex-flow: column;\n}\n\n._CSS-container--finished {\n  color: var(--ae-background-400);\n   /*background-image: repeating-linear-gradient(-45deg,\n      transparent,\n      transparent 38px,\n      var(--ae-foreground-l4) 20px,\n      var(--ae-foreground-l4) 40px);\n      */\n}\n\n","controller":"class Controller {\n  async init() {\n    locals.showDetails = false\n\n    locals.closedTasks = []\n    locals.openTasks = []\n    locals.overdueTasks = []\n    locals.subprojects = []\n    // locals.openProjects = []\n    // locals.overdueProjects = []\n\n    // TASKS\n    const [ open, closed, overdue ] = await Promise.all([\n      Aeppic.query('37d73e3e-081f-4f10-8dee-c6b423335125', document.id, { size: 1000 }),\n      Aeppic.query('ad37f645-9a18-488f-82b3-6b56fd66a45d', document.id, { size: 1000 }),\n      Aeppic.query('be1842c0-1eeb-4eca-ac77-6adf6199a9f8', document.id, { size: 1000 })\n    ])\n\n    locals.openTasks = open\n    locals.closedTasks = closed\n    locals.overdueTasks = overdue\n\n    const progress = this.progress\n    const count = this.count\n\n    locals.parts = [\n      { label: 'Erledigt', value: count.closed, percent: progress.closed, color: 'var(--ae-primary-500)' },\n      { label: 'Offen', value: count.open, percent: progress.open, color: 'var(--ae-background-300)',  },\n     { label: 'Überfällig', value: count.open, percent: progress.overdue, color: 'var(--ae-accent-red-300)', },\n    ]\n    \n    // Aeppic.subscribeQuery('97052303-1c0d-4f8e-b3ce-01912a62f536', document.id, documents => locals.closedTasks = documents, { size: 500 })\n    // Aeppic.subscribeQuery('c364c57a-150e-44ed-a5e5-9ab3beecf2d9', document.id, documents => locals.openTasks = documents, { size: 500 })\n    // Aeppic.subscribeQuery('98b88863-e4f7-4dd1-83fb-779df8f5c234', document.id, documents => locals.overdueTasks = documents, { size: 500 })\n\n    // PROJECTS\n    Aeppic.subscribeQuery('71adfdbd-c448-47c4-90bc-1df0191f6096', document.id, documents => locals.subprojects = documents)\n    // Aeppic.subscribeQuery('cb73486b-3c55-4cc7-b0d8-343045721940', document.id, documents => locals.openProjects = documents)\n    // Aeppic.subscribeQuery('cb3b5949-67be-4cf0-9c4b-649630f366ff', document.id, documents => locals.overdueProjects = documents)\n\n    locals.tooltipWeitereVerantwortliche = ''\n    locals.tooltipWeitereVerantwortliche = await this.updateWeitereVerantwortliche()\n  }\n\n  get showDetails() {\n    return locals.showDetails\n  }\n\n  get hasDetails() {\n    return this.hasDescription || locals.subprojects.length\n  }\n\n  get hasDescription() {\n    return data.beschreibung.length > 25\n  }\n\n  get daysLeft() {\n    return - Aeppic.DateTime.local().diff(Aeppic.DateTime.fromISO(data.bis)).toFormat('d')\n  }\n\n  get progress() {\n    const all = locals.openTasks.length + locals.closedTasks.length\n\n    if (all === 0) {\n      return {}\n    }\n\n    const percentile = 100 / all\n\n    const open = (locals.openTasks.length - locals.overdueTasks.length) * percentile\n    const overdue = locals.overdueTasks.length * percentile\n    const closed = (all - locals.openTasks.length) * percentile\n\n    return {\n      open,\n      closed,\n      overdue\n    }\n  }\n\n  get count() {\n    const all = locals.openTasks.length + locals.closedTasks.length\n\n    if (all === 0) {\n      return {}\n    }\n\n    const open = locals.openTasks.length - locals.overdueTasks.length\n    const overdue = locals.overdueTasks.length\n    const closed = all - locals.openTasks.length\n\n    return {\n      all,\n      open,\n      closed,\n      overdue\n    }\n  }\n\n  get isOverdue() {\n    if (!data.erledigt && data.bis) {\n      return Aeppic.DateTime.local().diff(Aeppic.DateTime.fromISO(data.bis)).as('days') > 0\n    }\n    return false\n  }\n\n  async updateWeitereVerantwortliche() {\n    if (!data || !data.verantwortlich || data.verantwortlich.length <= 1) {\n      // console.log(data) \n      return ''\n    }\n\n    const others = data.verantwortlich.slice(1)\n    let title = '' \n     \n    for (const other of others) {\n      const va = await Aeppic.get(other)\n      if (va && va.data.name) {\n        if (title.length > 0) {\n          title += '\\n'\n        }\n        title += `${va.data.name}`\n      }  \n    }\n \n    return title\n  }\n}","packages":[]},"locks":[],"created":{"at":"2020-07-01T14:40:04+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2023-02-21T13:15:51+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1676985351262,"ct":1593614404684,"a_depth":4,"a":["apps","59edbdbc-2cab-426a-bb42-6e57c5158e4f","3be7e887-1bcd-4c3c-979f-b20a986c4c48","0b6a2b21-9425-466e-9e8d-57ec39cc95e1"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"091749f0-f2cc-4d28-a175-1e8ab60317b4","v":"3ffb3591a4cdda2c","cloneOf":{"id":"d1c54669-c348-4361-b679-e4c48ee7bf0b","v":"1c57574fab057e40","text":"card"},"originalCloneOf":{"id":"d1c54669-c348-4361-b679-e4c48ee7bf0b","v":"1c57574fab057e40","text":"card"},"previous":{"v":"7d1b358826b95d6d"},"p":"dbee6e16-d63a-493c-bba6-505f79918f9f","f":{"id":"design-form","v":"031b38a71a0540bc","text":"Design"},"data":{"name":"card","template":"<div class=\"_CSS-card\" :style=\"{ 'border-left-color': data.farbe }\" @click.stop=\"$emit('selected', document)\">\n  <ae-design class=\"_CSS-card__media\" name=\"thumbnail\" :document=\"document\" @cannot-convert=\"locals.canConvert = false\" :params=\"{ hideName: true, minSize: '168px' }\"></ae-design>\n  <div class=\"ae-progress--indeterminate\" title=\"uploading\" v-if=\"controller.isUploading && locals.upload.progressPercent == 0\">\n  </div>\n  <div v-if=\"locals.upload && locals.upload.progressPercent !== 0\" style=\"display:flex\">\n    <div class=\"ae-progress\" :style=\"{ 'padding-left': (locals.upload.progressPercent * 100).toString() + '%' }\" ></div>\n  </div>\n\n  <div class=\"_CSS-card__secondary\">\n    <div style=\"display:flex;align-items:center;justify-content:space-between;\">\n      <div class=\"_CSS-card__title\">\n        <ae-design class=\"_CSS-card__secondary-icon\" name=\"icon\" :document=\"document\"></ae-design>\n        <ae-design name=\"title\" :document=\"document\"></ae-design>\n      </div>\n      <div title=\"Freigegeben\">\n        <svg v-if=\"data.freigabe\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" style=\"fill:#333\" >\n          <path d=\"M23.334 11.96c-.713-.726-.872-1.829-.393-2.727.342-.64.366-1.401.064-2.062-.301-.66-.893-1.142-1.601-1.302-.991-.225-1.722-1.067-1.803-2.081-.059-.723-.451-1.378-1.062-1.77-.609-.393-1.367-.478-2.05-.229-.956.347-2.026.032-2.642-.776-.44-.576-1.124-.915-1.85-.915-.725 0-1.409.339-1.849.915-.613.809-1.683 1.124-2.639.777-.682-.248-1.44-.163-2.05.229-.61.392-1.003 1.047-1.061 1.77-.082 1.014-.812 1.857-1.803 2.081-.708.16-1.3.642-1.601 1.302s-.277 1.422.065 2.061c.479.897.32 2.001-.392 2.727-.509.517-.747 1.242-.644 1.96s.536 1.347 1.17 1.7c.888.495 1.352 1.51 1.144 2.505-.147.71.044 1.448.519 1.996.476.549 1.18.844 1.902.798 1.016-.063 1.953.54 2.317 1.489.259.678.82 1.195 1.517 1.399.695.204 1.447.072 2.031-.357.819-.603 1.936-.603 2.754 0 .584.43 1.336.562 2.031.357.697-.204 1.258-.722 1.518-1.399.363-.949 1.301-1.553 2.316-1.489.724.046 1.427-.249 1.902-.798.475-.548.667-1.286.519-1.996-.207-.995.256-2.01 1.145-2.505.633-.354 1.065-.982 1.169-1.7s-.135-1.443-.643-1.96zm-12.584 5.43l-4.5-4.364 1.857-1.857 2.643 2.506 5.643-5.784 1.857 1.857-7.5 7.642z\"\n          />\n        </svg>\n      </div>\n    </div>\n    <span v-if=\"params.showLocation\" style=\"font-size:smaller;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;color: #777;\">\n      <ae-design name=\"title\" :document-id=\"document.p\" :watch=\"false\"></ae-design>\n    </span>\n    <div class=\"_CSS-card__secondary__user-and-date\">\n      <ae-design name=\"avatar--resizes-with-font\" :document-id=\"document.modified.by\"></ae-design>\n      <div style=\"flex:1;\"></div>\n      <span  class=\"_CSS-card__secondary-date\" style=\"\" :title=\"'Zuletzt geändert: ' + DateTime.fromISO(document.modified.at).toLocaleString(DateTime.DATETIME_FULL)\">\n        {{ controller.date }}\n      </span>\n    </div>\n    <!-- <ae-design name=\"icon\" :document=\"document\" style=\"position: absolute; left: 1; top: 2px; font-size: 0.5em;\"></ae-design> -->\n  </div>\n</div>\n ","css":"._CSS-card {\n  display: flex;\n  flex-flow: column;\n  height: auto;\n  font-size: 1em;\n  \n  background-color: var(--ae-ui-background);\n\n  border-radius: var(--ae-border-radius);\n  border: solid 1px;\n  border-color: var(--ae-border-color);\n\n  position: relative;\n}\n\n._CSS-card__media {\n  flex:2;\n  height: 6em;\n  min-height: 6em;  \n  width: 100%;\n\n  border-radius: var(--ae-border-radius) var(--ae-border-radius) 0 0;\n}\n\n._CSS-card__secondary {\n  flex:1;\n\n  display: flex;\n  flex-direction: column;\n  justify-content: space-between;\n\n  background: var(--ae-ui-background);\n  padding: 4px;\n\n  border-radius: 0 0 var(--ae-border-radius) var(--ae-border-radius);\n}\n\n._CSS-card__secondary__user-and-date {\n  display: flex;\n  align-items: center;\n  opacity: var(--ae-opacity-1);\n}\n\n._CSS-card__secondary-date {\n  font-size:0.8em;\n  color: var(--ae-background-800);\n  overflow:hidden;\n  text-overflow: ellipsis;\n  text-align:end;\n}\n._CSS-card__secondary-icon {\n  margin-right: 5px;\n  color: var(--ae-ui-element-icon-color);\n}\n\n._CSS-card__title {\n  overflow:hidden;\n  text-overflow: ellipsis;\n  white-space:nowrap;\n\n  display: flex;\n  align-items: center;\n}\n\n._CSS progress {\n  -webkit-appearance: none;\n  flex:1;\n  min-width:auto;\n  width:auto;\n  background-color: var(--ae-background-d1);\n  border-radius: var(--ae-border-radius);\n  box-shadow: 0 2px 5px rgba(0,0,0, 0.25) inset;\n}","controller":"async init() {\r\n  locals.canConvert = true\r\n  locals.upload = null //{progressPercent:0.3,status:'started'}\r\n}\r\n\r\nget isUploading() {\r\n  const status = Aeppic.Uploads.getUploadStatusForDocument(document)\r\n\r\n  if (status) {\r\n    locals.upload = status[0]\r\n  } else {\r\n    locals.upload = null\r\n  }\r\n \r\n  return !!locals.upload\r\n}\r\n\r\n\r\nget date() {\r\n  const date = DateTime.fromISO(document.modified.at)\r\n\r\n  const diff = -date.diffNow('days').days.toFixed(0)\r\n\r\n  if (diff === 0) {\r\n    return date.toLocaleString(DateTime.TIME_24_SIMPLE)\r\n  }\r\n\r\n  if (diff <= 7) {\r\n    return date.toLocaleString({weekday: 'long', hour: '2-digit', minute: '2-digit' })\r\n  }\r\n\r\n  return date.toLocaleString(DateTime.DATETIME_MED)\r\n}","packages":[],"aliases":[{"id":"a73626db-bf99-4e98-9896-6707f7336475","v":"initial","text":"test"}],"description":""},"locks":[],"created":{"at":"2020-06-24T12:54:35+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2022-03-30T15:37:13+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1648654633208,"ct":1593003275123,"a_depth":4,"a":["apps","45ada186-e9fd-451d-9dbd-2defc0b4f86f","4ec6a0e5-cf2d-4095-9b70-2e31a64d5679","dbee6e16-d63a-493c-bba6-505f79918f9f"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[],"dts":1593003275130},{"id":"1383ea1d-1090-4999-988b-25c2dd94e92e","v":"e32d8326d178990b","previous":{"v":"40b451ef14ea2f3b"},"p":"b33c990d-c2aa-433f-b30e-c909895a4a4a","f":{"id":"design-form","v":"49954170df6a253b","text":"Design"},"data":{"name":"card","template":"<div class=\"_CSS-card\">\n  <div class=\"_CSS-title\">\n    <div class=\"_CSS-title__text-and-link\">\n      <span>{{ data.titel }}</span>\n      <a class=\"_CSS-link\" :href=\"data.homepage\" target=\"_blank\">\n        <ae-icon class=\"fa fa-link\"></ae-icon>\n      </a>\n    </div>\n      <button class=\"_CSS-expand bp-button bp-button-icon\" @click=\"$refs.dialog.$emit('show')\">\n        <ae-icon class=\"fa fa-expand\"></ae-icon>\n      </button>\n  </div>\n  \n\n  <hr class=\"_CSS-title-separator\">\n\n  <ae-control name=\"editor-light\"\n              class=\"_CSS-text\"\n              :readonly=\"true\"\n              :document=\"document\"\n              field-name=\"text\"\n              param-hide-overflow=\"true\"\n  ></ae-control>\n\n\n</div>\n\n<ae-layout layout-id=\"b1d6a227-ad65-464a-9ab3-a4250464938c\"\n           :param-document-id=\"document.id\"\n           ref=\"dialog\"\n           :param-title=\"data.name\"\n></ae-layout>","css":"._CSS {\n  padding: var(--bp-page-content-padding);\n}\n\n._CSS-card {\n  background: white;\n  border-radius: 2px;\n  box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.26), 0 0 1px 0 rgba(0, 0, 0, 0.56);\n\n  padding: 8px 8px 0 8px;\n  position: relative;\n}\n\n._CSS-text {\n  max-height: 400px;\n  overflow: hidden;\n  position: relative;\n}\n\n._CSS-title {\n  display: flex;\n}\n\n._CSS-title__text-and-link {\n  flex: 1;\n  font-size: 3rem;\n  font-weight: 700;\n  letter-spacing: 1.5px; \n  display: flex;\n  justify-content: center;\n}\n\n._CSS-link {\n  font-size: 2rem;\n  display: flex;\n  align-items: center;\n  padding-left: 10px;\n}\n\n._CSS-expand {\n  position: absolute;\n  right: 8px;\n  font-size: 1rem;\n  display: flex;\n  justify-content: flex-start;\n}\n\n._CSS-title-separator {\n  width: 80%;\n  color: hsl(0, 0%, 50%);\n}\n\n._CSS-text:before {\n  z-index: 1;\n  content: \"\";\n  position: absolute;\n  bottom: 0;\n  display: block;\n  width: 100%;\n  height: 6.25rem;\n  background-image: linear-gradient(hsla(0,0%,100%,0),#fff 80%);\n}\n\n","controller":"","packages":[],"description":""},"locks":[],"created":{"at":"2018-12-05T11:34:52+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2018-12-05T12:58:16+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1544014696833,"ct":1544009692709,"a_depth":4,"a":["apps","5cff2cfd-1083-47f1-acc2-46e6440304cc","43976185-12d8-4a50-9a93-9b42e455838d","b33c990d-c2aa-433f-b30e-c909895a4a4a"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"21b4d535-c382-43f2-82ff-7615c7274d8e","v":"65b38d5aa5042df6","previous":{"v":"8354e0f1a478fb2c"},"p":"010e3640-1897-4840-bec0-7d0c0f1fc642","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"card","applies":"","template":"<div class=\"_CSS-card\" @click=\"Aeppic.navigateTo(document.id)\">\n  <div class=\"_CSS-title\">\n    <ae-design name=\"title\" class=\"_CSS-title-text\" :document=\"document\"></ae-design>\n    <ae-design :document-id=\"data.verantwortlich.id\" name=\"avatar--small,list\"></ae-design>\n  </div>\n  <div>\n    <ae-design class=\"_CSS-defect-detail\" :document-id=\"data.schadensort.id\" name=\"card\"></ae-design>\n    <ae-design class=\"_CSS-defect-detail\" :document-id=\"data.hausverwaltung.id\" name=\"card\"></ae-design>\n  </div>\n</div>\n","css":"._CSS {\n  margin-bottom: 1rem;\n}\n\n._CSS-card {\n  background-color: var(--ae-background);\n  display: flex;\n  flex-flow: column;\n  padding: 1rem;\n}\n\n._CSS-title {\n  flex: 1;\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n}\n\n._CSS-defect-detail:first-child {\n  padding-bottom: 1rem;\n}\n\n._CSS-title-text {\n  font-size: 1.2em;\n  font-weight: bold;\n  overflow: hidden;\n  text-overflow: ellipsis;\n}","controller":"","packages":[]},"locks":[],"created":{"at":"2018-02-06T09:45:29+01:00","by":"","from":"","client":"server"},"modified":{"at":"2019-04-05T13:28:52+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1554470932320,"ct":1517906729928,"a_depth":4,"a":["apps","b791df37-6eef-4a3e-9066-1b79e0bdad31","35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f","010e3640-1897-4840-bec0-7d0c0f1fc642"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"2593e2ed-2031-4f6f-b3c0-8b5c84e47b84","v":"51f1c15189d787b0","previous":{"v":"21cd789a8d66ef45"},"p":"44e0edf9-6515-4e4b-ad48-98a04d28df11","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"card","applies":"","template":"<div class=\"_CSS-card\" @click=\"Aeppic.navigateTo(document)\">\n  <ae-design class=\"_CSS-primary _CSS-picture\" name=\"index-picture-thumbnail\" :document=\"document\"></ae-design>\n  <div class=\"_CSS-infobar\">\n    <ae-design name=\"title\" :document=\"document\"></ae-design>\n    <!-- <ae-icon v-if=\"controller.emailNotExisting\" class=\"fa fa-at\"></ae-icon> -->\n  </div>\n</div>\n ","css":"._CSS-card {\n  display: flex;\n  justify-content: center;\n  flex-flow: column;\n\n  background: rgba(255,255,255,0.4);\n  height: 100%;\n}\n\n._CSS-primary {\n  flex: 1;\n}\n\n._CSS-infobar {\n  height: 2rem;\n  width: 100%;\n  display: flex;\n  justify-content: space-around;\n  align-items: center;\n\n  overflow: hidden;\n}\n\n._CSS-infobar {\n  background: rgba(255,255,255,0.4);\n  color: black;\n}\n","controller":"// class Controller {\n//   get emailNotExisting() {\n//     // TODO\n//     return Date.now() % 2 === 0\n//   }\n// }\n  ","packages":[]},"locks":[],"created":{"at":"2018-05-25T10:47:17+00:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","from":"","client":"server"},"modified":{"at":"2020-10-13T10:11:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1602583892437,"ct":1527245237351,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","44e0edf9-6515-4e4b-ad48-98a04d28df11"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"2e8a56a1-f52a-4d29-84e6-781fa197e43a","v":"b409180325e0627f","previous":{"v":"9b4293023753bb9c"},"p":"3592ceee-ae9a-47a9-8488-7bad5b0d9ff5","f":{"id":"design-form","v":"3385ac6766f32638","text":"Design"},"data":{"name":"card","template":"<div class=\"rounded-lg bg-white p-2 border border-slate-200 flex justify-between items-center\">\n  <section class=\"flex flex-col gap-1\">\n    <div class=\"flex flex-col\">\n        <!-- <ae-icon class=\"fa fa-building\"></ae-icon> -->\n        <div class=\"text-xl mb-1\">{{(data.name || '[Kein Name]') }}</div>\n\n      <div v-if=\"data.tel\">\n        <ae-icon class=\"fa fa-phone\"></ae-icon>\n        <span>\n        {{ data.tel}}\n        </span>\n      </div>\n    </div>\n    <div>\n      <ae-icon class=\"fa fa-user\"></ae-icon>\n      <span>Ansprechpartner: {{data.ansprechpartner}}</span>\n    </div>\n  </section>\n    \n  <ae-layout  layout-id=\"a2cd7699-9b46-494f-8f89-cb1f62151d82\"\n              param-text=\"Auswählen\"\n              @selected=\"$emit('selected', document)\"\n              :param-disabled=\"params.readonly\"\n              v-if=\"!params.noCommands\"\n  ></ae-layout>\n</div>\n\n ","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-03-03T09:10:23+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-04-26T08:56:24+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1650963384656,"ct":1646298623621,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","3592ceee-ae9a-47a9-8488-7bad5b0d9ff5"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"32a52947-bc07-4901-be8d-503c41985061","v":"c5eef90d44daa7be","cloneOf":{"id":"4340fa27-3b44-4835-86c4-9f4d9021b5b4","v":"0825bf81462f8f2b","text":"card"},"originalCloneOf":{"id":"4340fa27-3b44-4835-86c4-9f4d9021b5b4","v":"0825bf81462f8f2b","text":"card"},"previous":{"v":"8cd53ac953bd6cab"},"p":"d6f1cc99-f34e-4cb8-99b3-11f917485c25","f":{"id":"design-form","v":"0061789efb5c5c29","text":"Design"},"data":{"name":"card","template":"<div  class=\"bp-card bp-card--bordered ae-navigatable _CSS-card\" @click.stop=\"Aeppic.drillInto(document)\">\n  <div class=\"_CSS-title\" >\n    <ae-design name=\"title\" :document=\"document\"></ae-design>\n    <ae-design name=\"avatar--tiny\" :document-id=\"document.modified.by\"></ae-design>\n  </div>\n  <div title=\"Geändert\" class=\"_CSS-title__date\">{{ Aeppic.DateTime.fromISO(document.modified.at).toLocaleString(Aeppic.DateTime.DATETIME_SHORT)}} </div>\n<!-- \n  <div class=\"_CSS-card__content\">\n    <div v-text=\"locals.contentHtml\"></div>\n  </div> -->\n</div>\n","css":"._CSS-card {\n  display: flex;\n  flex-flow: column;\n}\n\n._CSS-title {\n  width: 100%;\n  font-size: var(--ae-font-size-6);\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n}\n\n._CSS-card__content {\n  background: var(--ae-ui-background);\n  padding: 5px;\n  overflow: auto;\n  flex: 1;\n\n  border-radius: 0 0 var(--ae-border-radius) var(--ae-border-radius);\n}\n\n._CSS-title__date {\n  font-size: var(--ae-font-size-3);\n  color: var(--ae-background-500);\n  align-self: flex-end;\n}\n","controller":"init() {\n  locals.sort = [{\n    field: 'created.at',\n    descending: true\n  }, {\n    field: 'data.name',\n    descending: true\n  }]\n\n  const PREVIEW_LENGTH = 50\n\n  const preview = data.contentHtml ? data.contentHtml.slice(0,PREVIEW_LENGTH) : ''\n  locals.contentHtml = preview.length === PREVIEW_LENGTH ? `${preview}...` : preview\n}\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-09-02T09:34:06+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-10-26T10:50:34+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1666781434922,"ct":1599039246160,"a_depth":4,"a":["apps","b0eb4a71-010b-4d65-b79b-bb984a57c10f","a6c009e7-a2c9-4e84-a992-4ad09134d39d","d6f1cc99-f34e-4cb8-99b3-11f917485c25"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"341e070b-706c-4e1b-8745-9a525711deca","v":"ca48cb5d706e0a2c","previous":{"v":"33856f1d2ab713f4"},"p":"9bcbb6e8-5d66-4c3b-9132-8482e82e4594","f":{"id":"design-form","v":"49954170df6a253b","text":"Design"},"data":{"name":"card","template":"<div class=\"_CSS-card\">\r\n  <div class=\"_CSS-title\" :class=\"[{ '_CSS-title--bordered': data.description }]\">\r\n    <ae-design v-if=\"data.logo.dataUrl\" name=\"logo\" :document=\"document\"></ae-design>\r\n    <ae-design name=\"title\" :document=\"document\"></ae-design>\r\n    <!-- <pre class=\"_CSS-title__version\" title=\"Current Release\">\r\n      <ae-design :document=\"data.currentRelease\" name=\"title\"></ae-design>\r\n    </pre> -->\r\n  </div>\r\n  <span v-if=\"data.description\" class=\"_CSS-description\" v-html=\"data.htmlDescription\"></span>\r\n</div> \r\n","css":"._CSS {\r\n  display: flex;\r\n}\r\n\r\n._CSS-card {\r\n  flex: 1;\r\n  overflow: hidden;\r\n\r\n  display: flex;\r\n  flex-direction: column;\r\n\r\n  border: var(--ae-border-width) solid var(--ae-border-color);\r\n\r\n  background: var(--ae-ui-card-background);\r\n  border-radius: var(--ae-border-radius);\r\n  padding: var(--ae-size-3);\r\n} \r\n\r\n._CSS-title {\r\n  display: flex;\r\n  flex-flow: column;\r\n  align-items: center;\r\n  font-size: var(--ae-font-size-6);\r\n}\r\n\r\n._CSS-title--bordered {\r\n  padding-bottom: var(--ae-size-3);\r\n  border-bottom: var(--ae-border-width) solid var(--ae-border-color);\r\n}\r\n\r\n/*._CSS-title__version {\r\n  font-size: 16px;\r\n  padding: 0 1em;\r\n}*/\r\n\r\n._CSS-description {\r\n}","controller":"","packages":[],"description":""},"locks":[],"created":{"at":"2018-12-07T12:11:00+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2020-05-08T08:52:50+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1588927970364,"ct":1544184660543,"a_depth":4,"a":["apps","781ff5de-69db-49dc-99f0-f328b308cd7d","dbd0bd68-3479-4032-9303-9d51615c27a7","9bcbb6e8-5d66-4c3b-9132-8482e82e4594"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"4340fa27-3b44-4835-86c4-9f4d9021b5b4","v":"26e7463befc7c3c8","cloneOf":{"id":"dcb65742-e05b-44f6-8b7f-b490e259314d","v":"2c6ffca47f5b7b37","text":"card"},"originalCloneOf":{"id":"dcb65742-e05b-44f6-8b7f-b490e259314d","v":"2c6ffca47f5b7b37","text":"card"},"previous":{"v":"923d2a7be2fca895"},"p":"24523534-125d-4ebe-9a83-bd7fed39ff92","f":{"id":"design-form","v":"0061789efb5c5c29","text":"Design"},"data":{"name":"card","template":"<div class=\"_CSS-card\">\n  <div class=\"_CSS-card__title\" >\n    <ae-design name=\"title\" :document=\"document\"></ae-design>\n    <button class=\"ae-button\" @click.stop=\"Aeppic.drillInto(document)\">\n      <ae-icon class=\"fa fa-chevron-right\"></ae-icon>\n    </button>\n  </div>\n  <ae-list :root-document-id=\"document.id\"\n          class=\"_CSS-card__list\"\n          query-id=\"f812861f-68c8-4818-9972-be7b5474c9b1\"\n          filter=\"f.id:d6f1cc99-f34e-4cb8-99b3-11f917485c25\"\n          list-id=\"2e798091-303f-406b-a42a-93aa1cd8425c\"\n          :sort=\"locals.sort\"\n          @selected=\"Aeppic.drillInto($event)\"\n          param-empty-text=\"Keine Seiten erstellt\"\n          param-design=\"card\"\n          :search-options=\"{ size: 3}\"\n    ></ae-list>\n</div> \n           ","css":"._CSS-card {\n  background: var(--ae-ui-card-background);\n  border: var(--ae-border-width) solid var(--ae-border-color);\n  border-radius: var(--ae-border-radius);\n  display: flex;\n  flex-flow: column;\n}\n\n._CSS-card__title {\n  padding: 10px;\n  font-size: var(--ae-font-size-6);\n  display: flex;\n  align-items: baseline;\n  justify-content: space-between;\n}\n\n._CSS-card__list {\n  background: var(--ae-ui-background);\n  padding: 5px;\n  overflow: auto;\n  flex: 1;\n\n  border-radius: 0 0 var(--ae-border-radius) var(--ae-border-radius);\n}","controller":"init() {\n  locals.sort = [{ field: 'modified.at', descending: true }]\n}\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-09-02T09:31:14+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-03-04T09:09:46+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1646384986459,"ct":1599039074057,"a_depth":4,"a":["apps","b0eb4a71-010b-4d65-b79b-bb984a57c10f","a6c009e7-a2c9-4e84-a992-4ad09134d39d","24523534-125d-4ebe-9a83-bd7fed39ff92"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"4867bbae-612e-4340-9dd2-21d6e133689c","v":"01cabfdb8f0c8d39","previous":{"v":"5b0cbf6cab905e3c"},"p":"c2d9407d-9dd6-42ff-acdc-ec2e296bea99","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"card","template":"<!-- NOTE: max-w should roughly equal 3 thumbnails -->\n<div class=\"bp-card bp-card--bordered max-w-[410px] h-full\"\n    :class=\"[ locals.deleted && 'opacity-50 line-through']\"\n    @click.stop=\"$emit('selected', document)\"\n> \n  <div class=\"flex flex-col w-full items-center gap-3 h-full\">\n    <div class=\"flex gap-1\">\n      <ae-design name=\"icon\" :document-id=\"data.gebaeude.id\"></ae-design>\n      <ae-design name=\"title\" :document-id=\"data.gebaeude.id\"></ae-design>\n    </div>\n\n    <div v-if=\"data.datum\">\n    {{ Aeppic.DateTime.fromISO(data.datum).toLocaleString(Aeppic.DateTime.DATE_SHORT) }}\n    </div>\n\n    <div class=\"flex gap-2\">\n      <ae-design name=\"icon\" :document=\"document\"></ae-design>\n\n      <div>\n      {{ new Intl.NumberFormat('de-DE', { style: 'currency', currency: 'EUR' }).format(data.summe) }} \n      </div>\n    </div>\n\n      <div class=\"flex gap-1 flex-wrap\">\n        <ae-design v-for=\"datei of data.datei\" \n                  :document-id=\"datei.id\"\n                  name=\"icon\"\n        ></ae-design>\n      </div>\n \n      <div class=\"flex-1\"></div>\n    <!-- <div class=\"flex gap-4 items-center\">\n    </div> -->\n\n    <ae-layout layout-id=\"0ded34c5-1221-4511-af93-d897a79f1369\"\n              :param-document=\"document\"\n              :param-no-navigate=\"true\"\n                @delete=\"locals.deleted = true\"\n              v-if=\"!locals.deleted\"\n    ></ae-layout>\n\n  </div>\n</div> ","css":"","controller":"init() {\n  locals.deleted = false\n} ","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-11-23T13:41:33+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-12-21T11:17:02+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1671621422943,"ct":1669210893172,"a_depth":4,"a":["apps","85d3c028-a61c-4be8-93d0-4366bc45752f","25fda732-5296-4fab-8d4e-92c3e32ca2c0","c2d9407d-9dd6-42ff-acdc-ec2e296bea99"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"4db842f4-5cad-46ab-9326-295fd9f75174","v":"9d987c6983beb2a3","previous":{"v":"1cad15ee68bb1001"},"p":"009c0da4-718f-43d0-964a-647e30074d94","f":{"id":"design-form","v":"e37099c040ec46e9","text":"Design"},"data":{"name":"card","template":"<div class=\"_CSS-container\" @click.stop=\"$emit('selected', document)\">\n  <div class=\"bp-card bp-card--bordered _CSS-card ae-navigatable\"  :class=\"{ '_CSS-card--not-completed': !data.done, '_CSS-card--open-conversions': typeof locals.convertedStatus.ok === 'boolean' && !locals.convertedStatus.ok }\">\n    <ae-design class=\"_CSS-card-thumbnail\" name=\"thumbnail\" :document=\"document.data.portraitPhoto\"></ae-design>\n    <div class=\"_CSS-card-whois\">\n      <ae-design name=\"title\" :document=\"document\"></ae-design>\n      <span v-if=\"data.agencyAbbreviation\">{{ data.agencyAbbreviation }}</span>\n      <span v-else class=\"_CSS-card-abbr--missing\">\n        <ae-icon class=\"fa fa-exclamation-circle\"></ae-icon>\n        Agenturkürzel fehlt\n      </span>\n      <span class=\"_CSS-card-date\"> {{ locals.date  }}</span>\n      <span class=\"_CSS-card-date\" v-if=\"typeof locals.convertedStatus.ok === 'boolean'\" :title=\"locals.convertedStatus.ok === true ? 'Alle Videos konvertiert ' + locals.lastConvertedDate : 'Fortschritt Video-Konvertierung: ' + locals.convertedStatus.convertedVideos + '/' + locals.convertedStatus.videos\">\n        <span><ae-icon class=\"fa fa-film\"></ae-icon></span>\n        <template v-if=\"locals.convertedStatus.ok\">\n          <template v-if=\"locals.convertedStatus.lastConverted\">\n          <ae-icon class=\"fa fa-check\"></ae-icon>\n            <!-- konvertiert -->\n            ({{ locals.lastConvertedDate }})\n          </template>\n        </template>\n        <template v-else>\n          {{ locals.convertedStatus.convertedVideos }} / {{ locals.convertedStatus.videos }} \n        </template>\n      </span>\n    </div>\n  </div>\n\n  <a class=\"ae-link _CSS-zip\" style=\"color:var(--ae-primary-600)\" :href=\"locals.zipDownloadUrl\" target=\"_blank\" @click.stop>\n    <ae-icon class=\"fa fa-file-archive\"></ae-icon> ZIP\n  </a>\n</div>\n\n","css":"._CSS-container {\n  position: relative;\n  height: 100%;\n}\n\n._CSS-card--not-completed {\n  opacity: var(--ae-opacity-2);\n}\n\n._CSS-card--open-conversions {\n  border: solid var(--ae-border-width) var(--ae-accent-red-900);\n  background: var(--ae-accent-red-100);\n  color: var(--ae-accent-red-900);\n}\n\n._CSS-card {\n  height: 100%;\n  display: flex;\n  flex-wrap: wrap;\n  align-items: flex-start;\n  padding: 0;\n}\n\n._CSS-card-whois {\n  padding: var(--ae-space-2);\n  display: flex;\n  flex-flow: column;\n  flex: 1;\n  min-width: 0;\n}\n\n._CSS-card-date {\n  font-size: var(--ae-font-size-3);\n  color: var(--ae-background-600);\n}\n\n._CSS-card-abbr--missing {\n  color: var(--ae-background-600);\n}\n\n._CSS-zip {\n  position: absolute;\n  right: var(--ae-space-2);\n  bottom: var(--ae-space-2);\n}\n\n\n._CSS-card-thumbnail {\n  width: 128px;\n  height: 100%;\n}","controller":"class Controller {\n  async init() {\n    locals.zipDownloadUrl = `/api/services/18047369-674f-4ba5-bf5d-bba493f4f9bb/v2/zip?modelIds=${document.id}`\n\n    this.convertedSub = null\n    this.FORMS = {\n      File: '8bf0fb31-716d-4b76-98d8-b7349f1d7529'\n    }\n    locals.convertedStatus = { ok: null }\n\n    const MINUTE_MS = 1000 * 60\n    locals.lastConvertedDate = ''\n    locals.document = document\n    locals.date = Aeppic.DateTime.fromISO(locals.document.created.at).toRelative()\n\n    const reloadInterval =  Math.random() * ((MINUTE_MS * 1.2) - MINUTE_MS) + MINUTE_MS\n    Aeppic.setInterval(() => {\n      locals.date = Aeppic.DateTime.fromISO(locals.document.created.at).toRelative()\n      if (locals.convertedStatus.lastConverted) {\n        this._updateLastConvertedDate(locals.convertedStatus.lastConverted)\n      }\n    }, reloadInterval)\n\n    watchParam('convertedFilesByApplicationId', (newParam) => { \n      this.updateConvertedStatus()\n    })\n\n    Aeppic.watch(locals.document.id, (doc) => {\n      locals.document = doc\n      this.updateConvertedStatus()\n    })\n  }\n \n  updateConvertedStatus() {\n    if (!params.convertedFilesByApplicationId || !params.convertedFilesByApplicationId[locals.document.id]) {\n      locals.convertedStatus = { ok: null }\n      return\n    }\n\n    const refs = []\n    if (locals.document.data.introductionVideo.length) {\n      refs.push(...locals.document.data.introductionVideo)\n    }\n    if (locals.document.data.videos.length) {\n      refs.push(...locals.document.data.videos)\n    }\n\n    const convertedFiles = params.convertedFilesByApplicationId[locals.document.id]\n    \n    let lastConverted = null\n    const passing = convertedFiles.reduce((result, item) => {\n      if (refs.find(ref => ref.id === item.p)) {\n        lastConverted = item\n        return result += 1\n      }\n\n      return result\n    }, 0)\n\n    const stats = {\n      videos: refs.length,\n      convertedVideos: passing,\n      lastConverted,\n      ok: refs.length === passing\n    }\n\n    this._updateLastConvertedDate(lastConverted)\n\n    locals.convertedStatus = stats\n    return\n  }\n\n  _updateLastConvertedDate(lastConverted) {\n    if (!lastConverted) {\n      locals.lastConvertedDate = ''\n      return\n    }\n\n     const date = Aeppic.DateTime.fromISO(lastConverted.created.at)\n     console.log(date.diffNow('days').days)\n     if (date.startOf('day').diffNow('days').days <= -1) {\n       locals.lastConvertedDate = date.toRelative()\n     } else {\n       locals.lastConvertedDate = date.toLocaleString(Aeppic.DateTime.TIME_24_SIMPLE)\n     }\n    //  locals.lastConvertedDate =\n  }\n\n  async getConvertedStatusSlow(doc) {\n    params.debug && console.log('getConvertedStatusSlow')\n    const refs = []\n    if (doc.data.introductionVideo.length) {\n      refs.push(...doc.data.introductionVideo)\n    }\n    if (doc.data.videos.length) {\n      refs.push(...doc.data.videos)\n    }\n    const existingRefs = (await Aeppic.getAll(refs)).filter(d => d != null)\n    if (!existingRefs.length) {\n      locals.convertedStatus = { ok: null }\n      return\n    }\n\n    const findOptions = { sort: 'created.at' }\n    const query = existingRefs.map(ref => `(p:${ref.id} f.id:${this.FORMS.File} data.name:converted)`).join('OR ')\n    // NOTE: fetch results before subscribe to prevent 0-length first-calls \"i dont have files in my local model, here they are. I will call you a second time with real results\"\n    await Aeppic.find(query, findOptions)\n    params.debug && console.log(query)\n\n    let ranOnce = false\n    this.convertedSub = Aeppic.updateSubscription(this.convertedSub, query, findOptions, (converted) => {\n      params.debug && console.log('=> converted', converted.length, converted)\n      locals.convertedStatus = { \n        videos: existingRefs.length,\n        convertedVideos: converted.length,\n        lastConverted: converted.slice(-1)[0],\n        ok: existingRefs.length === converted.length\n      }\n\n      locals.lastConvertedDate = locals.convertedStatus.lastConverted ?  Aeppic.DateTime.fromISO(locals.convertedStatus.lastConverted.created.at).toRelative() : ''\n    })\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-12-10T13:06:52+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-06-22T14:01:50+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1624370510741,"ct":1607605612538,"a_depth":4,"a":["apps","3fbe0efd-713a-457a-a34c-3a12aa19d6bb","0fb162f4-0f78-4c1e-aad2-43c27e6d98cb","009c0da4-718f-43d0-964a-647e30074d94"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"4fad4449-2b0d-44f2-aaac-57cbc413189e","v":"5c0ccf8babd76666","previous":{"v":"initial"},"p":"6770bab9-4e15-45ae-bf22-7fe4ef2a0848","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"card","applies":"","template":"<div class=\"_CSS-card\">\n  <ae-design name=\"title\" :document=\"document\"></ae-design>\n  <div> <!-- Container for ae-expandable -->\n    <ae-expandable v-if=\"data.activateSprints\">\n      <ae-design class=\"_CSS-burndown-chart\" name=\"burndown-chart\" :document=\"document\"></ae-design>\n    </ae-expandable>\n  </div>\n  <div class=\"bp-button bp-button--transparent\" @click=\"Aeppic.navigateTo(document.id)\">\n    <ae-icon class=\"fa fa-arrow-circle-right fa-2x\"></ae-icon>\n  </div>\n</div>\n","css":"._CSS-card {\n  max-height: 40rem;\n  display: flex;\n  overflow: hidden;\n  flex-flow: row;\n  justify-content: space-between;\n\n  border-bottom: 1px solid var(--ae-foreground-l2);\n  border-radius: 2px;\n  box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.16), 0 0 1px 0 rgba(0, 0, 0, 0.16);\n\n  background-color: white;\n  padding: 1rem var(--bp-input-content-padding) 1rem;\n}\n\n._CSS-burndown-chart {\n  margin: 0 2rem;\n}","controller":"","packages":[]},"locks":[],"created":{"at":"2018-04-18T15:42:15+02:00","by":"","from":"","client":"server"},"modified":{"at":"2018-12-21T11:04:07+00:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1545390247593,"ct":1524058935466,"a_depth":4,"a":["apps","aed1ba1c-9095-4aca-8176-74a37325f0e5","58cc45fb-3fb3-45e8-b61d-4b89899e357a","6770bab9-4e15-45ae-bf22-7fe4ef2a0848"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"4fc06fe2-fdbf-414c-a66e-53724cfce2d5","v":"1554de7e33eea145","cloneOf":{"id":"99ac7e75-a374-40e1-a549-4549f7b007d9","v":"f6c688f01404e51c","text":"line"},"originalCloneOf":{"id":"99ac7e75-a374-40e1-a549-4549f7b007d9","v":"f6c688f01404e51c","text":"line"},"previous":{"v":"e8bc8da21f9eebba"},"p":"e6b7aced-aaa0-49a4-b573-cfa307595402","f":{"id":"design-form","v":"24435d748c76f819","text":"Design"},"data":{"name":"card","template":"<div class=\"bp-card _CSS-info\" :class=\"{ 'bp-card--bordered': !params.withoutBorder }\" @click.stop=\"$emit('selected', document)\">\n  <div class=\"_CSS-line\">\n    <div class=\"_CSS-line__date\" v-if=\"controller.isAllday\">\n      <template v-if=\"data.start\">\n        {{ Aeppic.DateTime.fromISO(data.start).toLocaleString(Aeppic.DateTime.DATE_SHORT) }}\n      </template>\n      <template v-if=\"data.end && data.start !== data.end\">\n        -\n      </template>\n      <template v-if=\"data.end && data.start !== data.end\">\n        {{ Aeppic.DateTime.fromISO(data.end).toLocaleString(Aeppic.DateTime.DATE_SHORT) }}\n      </template>\n    </div>\n\n    <div class=\"_CSS-line__date\" v-else>\n      <template v-if=\"controller.isMoreThanOneDay\">\n        <template v-if=\"data.start\">\n          {{ Aeppic.DateTime.fromISO(data.start).toLocaleString(Aeppic.DateTime.DATETIME_SHORT) }}\n        </template>\n        -\n        <template v-if=\"data.end\">\n          {{ Aeppic.DateTime.fromISO(data.end).toLocaleString(Aeppic.DateTime.DATETIME_SHORT) }}\n        </template>\n      </template>\n      <template v-else>\n        <template v-if=\"data.start\">\n          {{ Aeppic.DateTime.fromISO(data.start).toLocaleString(Aeppic.DateTime.DATETIME_SHORT) }}\n        </template>\n        -\n        <template v-if=\"data.end\">\n          {{ Aeppic.DateTime.fromISO(data.end).toLocaleString(Aeppic.DateTime.TIME_24_SIMPLE) }}\n        </template>\n      </template>\n    </div>\n\n    <div class=\"_CSS-line__content _CSS-headline\">\n      <div class=\"_CSS-headline__title\">\n        <ae-design name=\"title\" :document=\"document\" :param-fit=\"true\"></ae-design>\n        <ae-design class=\"_CSS-path\" name=\"title\" :document-id=\"document.a.slice(-2)[0]\"></ae-design>\n        <!-- <ae-design class=\"_CSS-path\" name=\"path\" :document=\"document\"></ae-design> -->\n      </div>\n\n      <div class=\"_CSS-line__attendees\" v-if=\"data.attendees.length\">\n        <ae-design name=\"avatar--tiny\" v-for=\"attendee of data.attendees\" :document=\"attendee\"></ae-design>\n      </div>\n    </div>\n\n\n  </div>\n\n  <div class=\"_CSS-line\"  v-if=\"data.description\">\n    <div class=\"_CSS-description\">{{ data.description }}</div>\n  </div>\n</div>\n\n","css":"._CSS-info {\n  padding: var(--ae-size-2);\n  display: flex;\n  flex-flow: column;\n}\n\n._CSS-line {\n  flex: 1;\n  width: 100%;\n  display: flex;\n  flex-flow: column;\n}\n\n._CSS-line ~ ._CSS-line {\n  margin: var(--ae-size-2) 0;\n}\n\n._CSS-line__icon {\n  flex: 1;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n}\n\n._CSS-line__content {\n  min-width: 0;\n  flex: 4;\n}\n\n._CSS-line__date {\n  xmin-width: 0;\n  flex: 3;\n\n  display: flex;\n  xjustify-content: flex-end;\n  margin-bottom: var(--ae-space-2);\n}\n\n._CSS-line__attendees {\n  xmin-width: 0;\n  flex: 1;\n\n  display: flex;\n  justify-content: flex-end;\n  align-items: center;\n}\n\n._CSS-path {\n  margin-top: var(--ae-space-1);\n  font-size: var(--ae-font-size-2);\n  color: var(--ae-background-700);\n}\n\n\n._CSS-description {\n  color: var(--ae-background-500);\n  white-space: pre-line;\n}\n\n._CSS-headline {\n  display: flex;\n}\n\n._CSS-headline__title {\n  display: flex;\n  flex-flow: column;\n}","controller":"get isMoreThanOneDay() {\n  if (!data.start || !data.end) {\n    return false\n  }\n\n  const startDateTime = Aeppic.DateTime.fromISO(data.start)\n  const endDateTime = Aeppic.DateTime.fromISO(data.end)\n\n  return endDateTime.diff(startDateTime, 'days').toObject().days >=1\n}\n\nget isAllday() {\n  const startDateTime = data.start ? Aeppic.DateTime.fromISO(data.start) : null\n  const endDateTime = data.end ? Aeppic.DateTime.fromISO(data.end) : null\n\n\n  if (startDateTime && endDateTime)  {\n    return this._isAllday(startDateTime) && this._isAllday(endDateTime)\n  }\n\n  if (startDateTime) {\n    return this._isAllday(startDateTime)\n  }\n\n  return this._isAllday(endDateTime)\n}\n\n_isAllday(date) {\n  const allday = date.hour === 0 && date.minute === 0 && date.second === 0\n  return allday\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-10-28T13:51:44+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-12-17T11:12:55+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1639739575754,"ct":1635429104458,"a_depth":4,"a":["apps","d8c9a42b-e289-4c9a-97ea-801de8ab480a","db8e20d1-732c-4c6b-9cfc-b323f83fa378","e6b7aced-aaa0-49a4-b573-cfa307595402"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"53fc1c5a-b1b6-4df0-a761-2325759b3e7d","v":"b3b77a4fe0b27169","previous":{"v":"4fb3bf8a1d910cd7"},"p":"f0cf1b33-f840-4d4b-9335-c10daa7a335e","f":{"id":"design-form","v":"24435d748c76f819","text":"Design"},"data":{"name":"card","template":"<div class=\"bp-card bp-card--bordered _CSS-card\">\n  <div class=\"_CSS-card__title\" >\n    <ae-design name=\"title\" :document=\"document\"></ae-design>\n    <button class=\"ae-button\" @click=\"Aeppic.drillInto(document)\">\n      <ae-icon class=\"fad fa-chevron-right\"></ae-icon>\n    </button>\n  </div>\n  \n  <ae-list  list-id=\"2e798091-303f-406b-a42a-93aa1cd8425c\"\n            :documents=\"locals.lastUpdatedProccesses\"\n            param-title-text=\"Zuletzt geänderte Prozesse\"\n            :param-design-params=\"locals.designParams\"\n            v-if=\"locals.lastUpdatedProccesses.length\"\n            @selected=\"Aeppic.drillInto($event)\"\n  ></ae-list>\n</div>\n","css":"._CSS {\n  flex: 1;\n  display: flex;\n}\n\n._CSS-card {\n  flex:1;\n  \n  overflow: hidden;\n\n  display: flex;\n  flex-flow: column;\n  align-items: stretch;\n}\n\n\n._CSS-card__title {\n  padding: var(--ae-space-3) 0;\n  display: flex;\n  align-items: baseline;\n  justify-content: space-between;\n}\n","controller":"async init() {\n  this.FORMS = {\n    Prozess: '527f9bb3-01bd-48cc-ad5b-08b1bba3af33'\n  }\n\n  locals.lastUpdatedProccesses = []\n\n  locals.designParams = {\n    hidePath: true,\n  }\n\n  const searchOptions = {\n    sort: {\n      field: 'modified.at',\n      descending: true\n    }\n  }\n\n  const children = await Aeppic.find(`p:${document.id} f.id:${this.FORMS.Prozess}`, searchOptions)\n\n  locals.lastUpdatedProccesses = children.slice(0, 3)\n}\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-05-08T08:51:36+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2020-11-19T12:17:05+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1605788225774,"ct":1588927896563,"a_depth":4,"a":["apps","bd4df555-2c56-4a5f-82f0-7e4745372f51","b42c9135-e564-4d50-abd1-4d753921120f","f0cf1b33-f840-4d4b-9335-c10daa7a335e"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"5d027bbb-0d5a-4c69-a474-8b241115195b","v":"initial","cloneOf":{"id":"9a33d250-dd8f-460e-a3eb-6d27c41b69b4","v":"5ac6244b52093963","text":"card"},"originalCloneOf":{"id":"9a33d250-dd8f-460e-a3eb-6d27c41b69b4","v":"5ac6244b52093963","text":"card"},"p":"a04c8913-db48-4e80-b20d-0f3cc17a778c","f":{"id":"design-form","v":"e3fe9ece11aabc5e","text":"Design"},"data":{"name":"card","applies":"","template":"<div class=\"_CSS-card\">\n  <div v-if=\"data.icon && data.icon.dataUrl\" class=\"_CSS-card__media\">\n    <div  :style=\"{'background-image': 'url(' + data.icon.dataUrl + ')' }\">\n    </div>\n  </div>\n  <div v-else class=\"_CSS-card__media--empty\" style=\"display:flex;align-items:center;\">\n    <ae-icon class=\"fa fa-folder fa-2x\" :style=\"{ 'color': data.farbe ? data.farbe : '#444'}\"></ae-icon>\n  </div>\n  <ae-design class=\"_CSS-card__primary\" name=\"title\" :document=\"document\"></ae-design>\n</div>\n","css":"._CSS-card {\n  display: flex;\n  flex-flow: column;\n  height: 9rem;\n  padding: 0.25rem 1rem 0.1rem 0.5rem;\n\n  background-color: var(--ae-ui-card-background);\n\n  border: var(--ae-border-width) solid var(--ae-border-color);\n  border-radius: var(--ae-border-radius);\n  xbox-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.3), 0 0 1px 0 rgba(0, 0, 0, 0);\n}\n\n\n._CSS-card__media, ._CSS-card__media--empty {\n  flex: 1; \n  display: flex;\n  flex-direction: column;\n  justify-content: space-around;\n  /* align-items: center; */\n}\n\n._CSS-card__media > * {\n  flex: 1;\n  /* background-color: red; */\n  background-size: contain;\n  background-repeat: no-repeat;\n  background-position: center;\n  max-height: 3em;\n}\n\n._CSS-card__media--empty {\n  display: flex;\n  justify-content: center;\n}\n\n._CSS-card__primary {\n  display: flex;\n  /* align-items: center; */\n  justify-content: center;\n  min-height: 1.8em;\n}\n\n._CSS-card__primary span {\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n}\n\n._CSS-card__secondary {\n  font-size: 0.7em;\n  color: var(--ae-foreground-l3);\n\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n}\n\n._CSS-card__secondary svg {\n  fill: var(--ae-foreground-l3);\n}","controller":"","packages":[]},"locks":[],"created":{"at":"2020-06-23T14:54:58+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2020-06-23T14:54:58+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1592924098994,"ct":1592924098994,"a_depth":4,"a":["apps","45ada186-e9fd-451d-9dbd-2defc0b4f86f","4ec6a0e5-cf2d-4095-9b70-2e31a64d5679","a04c8913-db48-4e80-b20d-0f3cc17a778c"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"5f2c86b9-3e22-40a2-aa27-0a58ad4dca6e","v":"f6f555d2e184fad3","previous":{"v":"8a74579322037d0e"},"p":"527f9bb3-01bd-48cc-ad5b-08b1bba3af33","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"card","applies":"","template":"<div class=\"_CSS-card\" @click=\"Aeppic.drillInto(document.id)\">\n  <ae-design class=\"_CSS-card__title\" name=\"title\" :document=\"document\"\n  ></ae-design>\n  <ae-control\n    name=\"bpmn\"\n    :readonly=\"true\"\n    :param-viewonly=\"true\"\n    :document=\"document\"\n    field-name=\"prozess\">\n  </ae-control>\n</div>","css":"._CSS-card {\n  display: flex;\n  flex-flow: column;\n  min-height: 12rem;\n\n  padding: 0.25rem 1rem 0.1rem 0.5rem;\n  background-color: var(--ae-ui-card-background);\n\n  border: var(--ae-border-width) solid var(--ae-border-color);\n  border-radius: var(--ae-border-radius);\n\n  cursor: pointer;\n}\n\n\n._CSS-card__title {\n  padding-bottom: 0.3em;\n}\n","controller":"","packages":[]},"locks":[],"created":{"at":"2018-01-17T13:54:11+01:00","by":"","from":"","client":"server"},"modified":{"at":"2020-06-16T09:20:54+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1592299254056,"ct":1516193651593,"a_depth":4,"a":["apps","bd4df555-2c56-4a5f-82f0-7e4745372f51","b42c9135-e564-4d50-abd1-4d753921120f","527f9bb3-01bd-48cc-ad5b-08b1bba3af33"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"67a66625-f222-4fff-b159-b6748b15b9bb","v":"e6e5e537cf3c4889","previous":{"v":"d2803932d6ce8121"},"p":"3d678f2a-65f5-4dc1-a643-c5998fa33f32","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"card","template":"<div class=\"border rounded-lg bg-white flex flex-col justify-between lg:flex-row\">\n  <section class=\"flex-1 p-4 flex items-center gap-4\">\n    <img class=\"rounded-full h-10 w-10\" v-if=\"data.bild.dataUrl\" :src=\"Aeppic.Content.getSrc(document, 'bild')\">\n\n    <div class=\"flex flex-col\">\n      <span>\n        {{data.name}}\n      </span>\n      <span class=\"text-theme-500 text-xs sm:text-sm\">\n        {{data.adresse.street}} {{data.adresse.streetNumber}}{{data.adresse.supplement}}, {{data.adresse.postalCode}} {{data.adresse.city}}\n      </span>\n    </div>\n    \n    <div class=\"flex-1\"></div>\n\n    <ae-layout  layout-id=\"a2cd7699-9b46-494f-8f89-cb1f62151d82\"\n                param-text=\"Auswählen\"\n                @selected=\"$emit('selected', document)\"\n                :param-disabled=\"params.readonly\"\n                v-if=\"!params.noCommands\"\n    ></ae-layout>\n  </section>\n\n  <!-- <section> -->\n    <img v-if=\"data.kartenbild.dataUrl\" :src=\"Aeppic.Content.getSrc(document, 'kartenbild')\"\n          class=\"h-[200px] max-h-[200px] lg:max-w-[300px] lg:w-[300px] object-cover\"\n    >\n    <!-- <div v-if=\"data.kartenbild.dataUrl\" \n        :style=\"{ 'background-image': 'url(' + Aeppic.Content.getSrc(document, 'kartenbild') + ')' }\"\n        xstyle=\"min-height:100px;background-position:center;background-size:cover\"\n        class=\"min-h-[100px] h-full w-full bg-cover bg-center\"\n    ></div> -->\n  <!-- </section> -->\n</div>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-04-01T11:45:22+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2024-05-23T12:08:48+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1716466128128,"ct":1648813522220,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","3d678f2a-65f5-4dc1-a643-c5998fa33f32"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"6a6d5fb6-d23e-4797-b79b-190b931000f0","v":"567d45d5a47419b4","previous":{"v":"7c534b53e5e345b5"},"p":"b433eabd-abe6-4564-940f-a918f71037fb","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"card","template":"<div class=\"bp-card bp-card--bordered flex flex-col cursor-pointer\" @click.stop=\"$emit('selected', document)\">\n  <ae-design class=\"font-bold\" name=\"title\" :document=\"document\"></ae-design>\n\n  <div class=\"flex gap-1 items-center\">\n    <ae-icon class=\"fa fa-map-marker-alt\"></ae-icon>\n    <ae-design name=\"address\" :document=\"document\"></ae-design>\n  </div>\n\n  <!-- <ae-design class=\"max-h-20 max-w-20\" name=\"interactive-plan\" :document-id=\"data.grundriss.id\" :param-readonly=\"true\"></ae-design> -->\n</div>  ","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-08-18T11:33:40+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-08-18T11:59:57+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1660823997337,"ct":1660822420774,"a_depth":4,"a":["apps","86189c5a-b9f4-445a-879f-d94574960df0","15292d56-6806-4263-b6d0-9194687203e1","b433eabd-abe6-4564-940f-a918f71037fb"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"75ce5993-4bce-43cd-b6ed-17fcf0782875","v":"a2b0c8ea2d2b5eac","previous":{"v":"7b1714ddbf852c04"},"p":"17c3a5d3-90ba-4592-961b-0800873ef9c1","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"card","applies":"","template":"<div class=\"_CSS-card\" @click=\"Aeppic.navigateTo(document.id)\" :class=\"{ '_CSS-card--finished': data.erledigt, '_CSS-card--overdue': controller.isOverdue }\">\n\t<div class=\"_CSS-card__primary\">\n    <div class=\"_CSS-card-intro\">\n      <div class=\"_CSS-card-title\">\n        {{data.name}}\n      </div>\n\t\t</div>\n    <div class=\"_CSS-card-assignees\" v-if=\"data.verantwortlich && data.verantwortlich.length\">\n\t\t\t<ae-design name=\"avatar--tiny\" :document-id=\"data.verantwortlich[0].id\"></ae-design>\n\t\t\t<ae-design v-if=\"data.verantwortlich.length === 2\" name=\"avatar--tiny\" :document-id=\"data.verantwortlich[1].id\"></ae-design>\n\t\t\t<ae-design v-if=\"data.verantwortlich.length > 2\" name=\"avatar--tiny\" :document-id=\"data.verantwortlich[1].id\" :param-overwrite-display-with=\"'+' + (data.verantwortlich.length - 1)\" :title=\"locals.tooltipWeitereVerantwortliche\"></ae-design>\n\t\t</div>\n\t</div>\n  <!-- <div class=\"_CSS-card__secondary\">\n  </div> -->\n\t<div class=\"_CSS-card__tertiary\" xv-if=\"locals.allProjects.length || locals.allTasks.length\">\n    <div class=\"_CSS-statistics\">\n      <div>\n        <span v-if=\"locals.allTasks.length\" style=\"padding-right: 1ch;\" title=\"Aufgaben (erledigt / gesamt)\" :class=\"{ '_CSS-text--finished': locals.allTasks.length && !locals.openTasks.length }\">\n          <ae-icon class=\"far fa-tasks\"></ae-icon> (<span class=\"_CSS-count\">{{ locals.allTasks.length - locals.openTasks.length }}</span>/<span class=\"_CSS-count\">{{ locals.allTasks.length }}</span>)\n        </span>\n        <span v-if=\"locals.allProjects.length\" title=\"Teilprojekte (erledigt / gesamt)\" :class=\"{ '_CSS-text--finished': locals.allProjects.length && !locals.openProjects.length }\">\n          <ae-icon class=\"far fa-clipboard\"></ae-icon> (<span class=\"_CSS-count\">{{ locals.allProjects.length - locals.openProjects.length  }}</span>/<span class=\"_CSS-count\">{{ locals.allProjects.length }}</span>)\n        </span>\n      </div>\n        <div \n           v-if=\"data.beschreibung.length > 25\"\n           ref=\"descriptionIcon\"\n           @mouseleave=\"$refs.popup.close()\"\n           @mouseover=\"$refs.popup.show({ target: $refs.descriptionIcon })\"\n           class=\"_CSS-card-intro__description\"\n           xtitle=\"Beschreibung vorhanden\"\n           >\n        <ae-icon class=\"fal fa-file-alt\"></ae-icon>\n      </div>\n      <span v-if=\"data.bis\">{{ Aeppic.DateTime.fromISO(data.bis).toLocaleString(Aeppic.DateTime.DATE_SHORT) }}</span>\n    </div>\n\n\t\t<!-- <div class=\"_CSS-card-categories\">\n\t\t\t<ae-design class=\"_CSS-card-category\" name=\"icon\" v-for=\"category in data.kategorie\" :document-id=\"category.id\" :key=\"category.id\"></ae-design>\n\t\t</div>\n\t\t<ae-design v-if=\"data.anhaenge && data.anhaenge.length\" name=\"paperclip--small\" :document=\"document\"></ae-design> -->\n\t</div>\n\n    <div class=\"_CSS-progress-container\">\n      <div v-if=\"controller.progressOverall != null\" :title=\"controller.progressOverall.toFixed() + '%' \" class=\"ae-progress \" :style=\"{ 'padding-left': (controller.progressOverall).toString() + '%' }\" ></div>\n    </div>\n</div>\n\n<ae-popup ref=\"popup\" base-attachment=\"top left\" popup-attachment=\"bottom left\" :close-delay=\"200\" target-offset=\"5 0\">\n  <div class=\"_CSS-popup\" slot=\"popup\" @mouseenter=\"$refs.popup.cancelClose()\" @mouseleave=\"$refs.popup.closeImmediatly()\">\n    <ae-control :readonly=\"true\" name=\"editor-light\" :document=\"document\" field-name=\"beschreibung\"></ae-control>\n  </div>\n</ae-popup> ","css":"._CSS {\n  --padding: 0.25rem 1rem 0.1rem 0.5rem;\n}\n\n._CSS-card {\n  display: flex;\n  height: 8rem;\n  \n\n  background-color: white;\n\n  border-left-style: solid;\n  border-left-width: 3px;\n  border-left-color: rgb(235, 235, 235);\n\n  border-radius: 2px;\n  box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.16), 0 0 1px 0 rgba(0, 0, 0, 0.16);\n\n  flex: 1;\n  margin:0;\n  flex-flow: column;\n  cursor: pointer;\n  overflow: hidden;\n}\n\n._CSS-card._CSS-card--overdue {\n  border-left-color: #ff5722 ;\n}\n\n._CSS-card--finished {\n  color: #4e4e4e\n}\n\n._CSS-card__primary {\n  display: flex;\n  justify-content: space-between;\n  align-items: flex-start;\n\n  /* padding-bottom: 0.2rem; */\n  flex: 1;\n\n  padding: var(--padding);\n}\n\n/* ._CSS-card-intro > *:nth-child(n) {\n  margin-left: 0.2em;\n} */\n\n._CSS-card-intro {\n  margin: 2px;\n\n  display:flex;\n  flex-direction:row;\n  /* align-items:center; */\n\n  overflow: hidden;\n  word-break: break-all;\n}\n\n._CSS-card-title {\n  overflow: hidden;\n  display: -webkit-box;\n  -webkit-line-clamp: 4;\n  -webkit-box-orient: vertical;\n}\n\n._CSS-card__secondary {\n  /* flex: 1; */\n  padding: var(--padding);\n  font-size: 0.8em;\n  font-style: italic;\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n}\n._CSS-card__tertiary {\n  display: flex;\n  font-size: 0.9em;\n  align-items: center;\n  justify-content: space-between;\n\n  background: #EEE;\n\n  padding: var(--padding);\n\n  color: #4e4e4e;\n}\n\n._CSS-card-assignees {\n  display: flex;\n  flex-flow: row;\n}\n\n._CSS-statistics {\n  display: flex;\n  justify-content: space-between;\n  flex: 1;\n}\n\n\n._CSS-count {\n  padding-left: 0.2em;\n}\n/* ._CSS-card-categories {\n  display: grid;\n  grid-auto-flow: column;\n  grid-column-gap: 5px; \n} */\n\n\n._CSS .ae-progress, .ae-progress:before {\n  height: 8px;\n}\n\n._CSS-text--finished {\n  text-decoration: line-through;\n  opacity: 0.6;\n}\n\n\n._CSS-popup {\n  position: relative;\n  background: white;\n  padding: 10px;\n  box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.16), 0 0 1px 0 rgba(0, 0, 0, 0.16);\n\n  max-width: 500px;\n  max-height: 200px;\n  overflow: hidden;\n}\n\n\n._CSS-popup:after {\n  position: absolute;\n  bottom: 0;\n  left: 0;\n  width: 100%;\n  height: 60%;\n  content: \"\";\n  background-image: linear-gradient(180deg,hsla(0,0%,100%,.1) 0,white);\n  pointer-events: none;\n}\n","controller":"class Controller {\n  async init() {\n    locals.allTasks = []\n    locals.openTasks = []\n    locals.allProjects = []\n    locals.openProjects = []\n\n    Aeppic.subscribeQuery('b059850b-d100-4d61-9568-8b5469968b98', document.id, documents => locals.allTasks = documents)\n    Aeppic.subscribeQuery('c40f11de-15ec-40f3-a16c-b55d9346ea81', document.id, documents => locals.openTasks = documents)\n    Aeppic.subscribeQuery('4d4d84b0-02ac-4ab8-a921-c832910d8c37', document.id, documents => locals.allProjects = documents)\n    Aeppic.subscribeQuery('cb73486b-3c55-4cc7-b0d8-343045721940', document.id, documents => locals.openProjects = documents)\n\n    locals.tooltipWeitereVerantwortliche = ''\n    locals.tooltipWeitereVerantwortliche = await this.updateWeitereVerantwortliche()\n  }\n\n  get isOverdue() {\n    if (!data.erledigt && data.bis) {\n      return Aeppic.DateTime.local().diff(Aeppic.DateTime.fromISO(data.bis)).as('days') > 0\n    }\n    return false\n  }\n\n  get progressOverall() {\n    let progress = 0\n    if (locals.allTasks.length > 0) {\n      progress = 100 * ((locals.allTasks.length - locals.openTasks.length) / locals.allTasks.length)\n    } \n    return progress\n  }\n  \n  async updateWeitereVerantwortliche() {\n    if (!data || !data.verantwortlich || data.verantwortlich.length <= 1) {\n      // console.log(data) \n      return ''\n    }\n\n    const others = data.verantwortlich.slice(1)\n    let title = '' \n     \n    for (const other of others) {\n      const va = await Aeppic.get(other)\n      if (va && va.data.name) {\n        if (title.length > 0) {\n          title += '\\n'\n        }\n        title += `${va.data.name}`\n      }  \n    }\n \n    return title\n  }\n}","packages":[]},"locks":[],"created":{"at":"2018-04-18T15:39:23+02:00","by":"","from":"","client":"server"},"modified":{"at":"2018-11-21T09:32:39+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1542792759196,"ct":1524058763509,"a_depth":4,"a":["apps","5acfd7a2-33e4-498a-9150-71e1ab772bfc","20c92864-6a81-4006-96f9-b78f473cd129","17c3a5d3-90ba-4592-961b-0800873ef9c1"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"9182076a-dd5c-4c8a-9464-6c10f4ba1f79","v":"8aa95024103d8e06","previous":{"v":"602ebe3f4d1b1d01","p":"8b64a4e4-bcc0-4080-9913-bc973143abd9"},"p":"84043618-903e-4666-83b5-9cf5449ba8f4","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"card","applies":"","template":"<ae-design name=\"content\" :document=\"data.question\"></ae-design>\n<div v-if=\"data.answer\" class=\"_CSS-answer\">{{data.answer}}</div>\n<div v-else class=\"_CSS-answer--empty\">-</div>","css":"._CSS {\n  padding: 0.5em;\n  border: 1px solid #efefef;\n}\n\n._CSS-answer {\n  font-weight: bold;\n  overflow: hidden;\n  text-overflow: ellipsis;\n}","controller":"","packages":[]},"locks":[],"created":{"at":"2018-05-25T10:47:01+00:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","from":"","client":"server"},"modified":{"at":"2018-10-30T12:48:50+00:00","by":null,"backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1540903730996,"ct":1527245221921,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","84043618-903e-4666-83b5-9cf5449ba8f4"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"9871f5cb-e578-4b28-a3d8-b8712646c03e","v":"2001c28c778f6750","previous":{"v":"7534e79350f1171d"},"p":"275b807f-7dbb-4351-b731-669e275fa97d","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"card","applies":"","template":"<div class=\"_CSS-card\" @click.stop=\"$emit('selected', document)\">\n  <div class=\"_CSS-card-informations\">\n    <ae-design name=\"title\" :document=\"document\"></ae-design>\n\n    <div class=\"_CSS-row\">\n      <div>\n        {{data.files.length}} <ae-icon class=\"fa fa-file-alt\"></ae-icon>\n      </div>\n      <div>\n        <template v-if=\"locals.parentForm === locals.applicationFormId\">\n          <ae-design name=\"icon-project-specific-informations\" :document=\"document\"></ae-design>\n        </template>\n        <template v-if=\"locals.parentForm === locals.preselectionFormId\">\n          <ae-design name=\"icon-rating\" :document=\"document\"></ae-design>\n        </template>\n        <template v-if=\"locals.parentForm === locals.shortlistFormId\">\n          <ae-design name=\"icon-questions-and-answers\" :document=\"document\"></ae-design>\n        </template>\n      </div>\n    </div>\n  </div>\n  <ae-design class=\"_CSS-picture\" name=\"index-picture-thumbnail\" :document=\"document\"></ae-design>\n  <!-- <div class=\"_CSS-picture\" :style=\"{'background-image': 'url(' + locals.indexPictureSrc + ')' }\"></div> -->\n</div>\n","css":"._CSS-card {\n  display: grid;\n  overflow: hidden;\n\n  border-bottom: 1px solid var(--ae-theme-text-secondary-on-background);\n  border-radius: 2px;\n  box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.16), 0 0 1px 0 rgba(0, 0, 0, 0.16);\n\n  background-color: white;\n  grid-template-columns: auto 20%;\n\n  grid-auto-flow: column;\n  justify-content: stretch;\n}\n\n._CSS-picture {\n  /* flex: 1; */\n  /* flex-shrink: 0; */\n  /* flex-basis: 100px; */\n  display: flex;\n\n}\n\n._CSS-card-informations {\n  padding: 1rem var(--bp-input-content-padding) 1rem;\n}\n\n._CSS-row {\n  display: flex;\n  align-items: center;\n}\n\n._CSS-row > *~* {\n  padding-left: 1em;\n}","controller":"class Controller {\n  init() {\n    locals.parentForm = document['a_forms'][document['a_forms'].length - 1]\n    locals.applicationFormId = '9c63f632-9e40-4abb-aa1a-f4a02110a97f'\n    locals.preselectionFormId = '61ccaf6b-af84-4908-aa73-785dffd83c5f'\n    locals.shortlistFormId = '9927c3c7-8ce4-4c25-bcec-3385cf1370db'\n\n    locals.hasProjectSpecificInformations = false\n  }\n}\n","packages":[]},"locks":[],"created":{"at":"2018-05-25T10:47:37+00:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","from":"","client":"server"},"modified":{"at":"2019-04-12T14:13:54+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1555078434245,"ct":1527245257622,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","275b807f-7dbb-4351-b731-669e275fa97d"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"9a33d250-dd8f-460e-a3eb-6d27c41b69b4","v":"5ac6244b52093963","previous":{"v":"9f2f943d84e44f28"},"p":"c0574720-6967-4293-94a8-e7b32a40fc6f","f":{"id":"design-form","v":"e3fe9ece11aabc5e","text":"Design"},"data":{"name":"card","applies":"","template":"<div class=\"_CSS-card\">\n  <div v-if=\"data.icon && data.icon.dataUrl\" class=\"_CSS-card__media\">\n    <div  :style=\"{'background-image': 'url(' + data.icon.dataUrl + ')' }\">\n    </div>\n  </div>\n  <div v-else class=\"_CSS-card__media--empty\" style=\"display:flex;align-items:center;\">\n    <ae-icon class=\"fa fa-folder fa-2x\" :style=\"{ 'color': data.farbe ? data.farbe : '#444'}\"></ae-icon>\n  </div>\n  <ae-design class=\"_CSS-card__primary\" name=\"title\" :document=\"document\"></ae-design>\n</div>\n","css":"._CSS-card {\n  display: flex;\n  flex-flow: column;\n  height: 9rem;\n  padding: 0.25rem 1rem 0.1rem 0.5rem;\n\n  background-color: var(--ae-ui-card-background);\n\n  border: var(--ae-border-width) solid var(--ae-border-color);\n  border-radius: var(--ae-border-radius);\n  xbox-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.3), 0 0 1px 0 rgba(0, 0, 0, 0);\n}\n\n\n._CSS-card__media, ._CSS-card__media--empty {\n  flex: 1; \n  display: flex;\n  flex-direction: column;\n  justify-content: space-around;\n  /* align-items: center; */\n}\n\n._CSS-card__media > * {\n  flex: 1;\n  /* background-color: red; */\n  background-size: contain;\n  background-repeat: no-repeat;\n  background-position: center;\n  max-height: 3em;\n}\n\n._CSS-card__media--empty {\n  display: flex;\n  justify-content: center;\n}\n\n._CSS-card__primary {\n  display: flex;\n  /* align-items: center; */\n  justify-content: center;\n  min-height: 1.8em;\n}\n\n._CSS-card__primary span {\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n}\n\n._CSS-card__secondary {\n  font-size: 0.7em;\n  color: var(--ae-foreground-l3);\n\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n}\n\n._CSS-card__secondary svg {\n  fill: var(--ae-foreground-l3);\n}","controller":"","packages":[]},"locks":[],"created":{"at":"2017-11-10T16:32:21+01:00","by":"","from":"","client":"fb4a2d8e-d497-48bd-b182-f8003a215899"},"modified":{"at":"2019-05-03T13:06:33+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1556888793715,"ct":1510327941849,"a_depth":4,"a":["apps","3d43a3f5-fea4-488d-9fc1-9dee5e694623","7c30f282-2b84-4976-8735-ba78662ea5e6","c0574720-6967-4293-94a8-e7b32a40fc6f"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"9bce2ec4-a106-4ce5-8e6d-52f347349a00","v":"3d5122df35fdb0ec","p":"fallback-designs","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"card","template":"<div class=\"_CSS-card\" @click.stop=\"$emit('selected', document)\">\n  <ae-design :name=\"params.titleDesign + ',card-title,title'\" :document=\"document\" :params=\"params\"></ae-design>\n</div>","css":"._CSS-card {\n  overflow: hidden;\n\n  display: flex;\n  flex-flow: column;\n\n  padding: 0.25rem 1rem 0.1rem 0.5rem;\n  background-color: var(--ae-ui-card-background);\n\n  border: var(--ae-border-width) solid var(--ae-border-color);\n  border-radius: var(--ae-border-radius);\n\n  cursor: pointer;\n}","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2018-04-18T15:37:12+02:00","by":"","from":"","client":"server"},"modified":{"at":"2021-06-14T10:10:47+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720684627126,"ct":1720684627126,"a_depth":2,"a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"],"inheritedLocks":[null,null,null],"stamps":[],"previous":{"v":"2d4111ee60032175","f":{"id":"design-form","v":"9bfe8e0cd909c1f0","text":"Design"}},"meta":{"modified":{"at":"2024-07-11T09:57:07+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"9bfb5fcc-d3e9-4efb-a6b9-4c1c2bd5d21c","v":"f012d2cb4f64301b","previous":{"v":"cc811f324b330f0d"},"p":"d2ac3563-3c3f-4f02-b923-9b67abf98d10","f":{"id":"design-form","v":"e3fe9ece11aabc5e","text":"Design"},"data":{"name":"card","applies":"","template":"<div class=\"_CSS-card\">\n  <ae-design name=\"icon\" :document=\"document\"></ae-design>\n  <div class=\"_CSS-personal\">\n    <ae-design name=\"title\" :document=\"document\"></ae-design>\n    <div class=\"_CSS-description\">{{data.beschreibung}}</div>\n  </div>\n</div>\n","css":"._CSS-card {\n  display: flex;\n  flex-flow: row;\n  height: 3.5rem;\n  font-size: 1em;\n  align-items: center;\n  padding: 0.3em;\n  \n  background-color: white;\n\n  border-bottom: 1px solid var(--ae-primary-l1);\n  border-left: 4px solid var(--ae-primary);\n  border-radius: 2px;\n  box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.16), 0 0 1px 0 rgba(0, 0, 0, 0.16);\n}\n\n._CSS-personal {\n  padding-left: 1em;\n  overflow:hidden;\n  text-overflow: ellipsis;\n  white-space:nowrap;\n}\n\n._CSS-description {\n  font-size: 0.9em;\n  overflow:hidden;\n  text-overflow: ellipsis;\n  white-space:nowrap;\n}","controller":"","packages":[]},"locks":[],"created":{"at":"2017-09-15T10:29:32+02:00","by":"","from":"","client":"import"},"modified":{"at":"2018-12-21T11:06:45+00:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1545390405504,"ct":1467644291182,"a_depth":4,"a":["apps","144e85c0-d7f9-4b20-8928-be30f0c78bda","8e6ee7d3-9122-4a2e-8aaf-9fb3bd204b23","d2ac3563-3c3f-4f02-b923-9b67abf98d10"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"9d27be7b-3cee-4f8a-b40c-e02d5df2a62b","v":"7626f3ecaaeaafd9","previous":{"v":"91c456d67dff4171"},"p":"694aee80-d85e-479b-b7ec-8fe36906fcac","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"card","applies":"","template":"<div class=\"_CSS-card\">\r\n  <strong v-if=\"!data.anschrift.street && !data.anschrift.streetNumber && !data.anschrift.postalCode && !data.anschrift.city\">\r\n    Keine Adresse eingegeben\r\n  </strong>\r\n  <template v-else>\r\n    <span class=\"_CSS-card-title\">\r\n      <ae-icon class=\"fa fa-map-marker-alt\"></ae-icon>\r\n      <strong>{{data.anschrift.street}} {{data.anschrift.streetNumber}}</strong>, {{data.anschrift.postalCode}} {{data.anschrift.city}}\r\n    </span>\r\n    <a @click.stop class=\"bp-button bp-button-icon _CSS-navigate-button\" target=\"_blank\" :href=\"'http://maps.google.de?q=' + document.data.anschrift.street + ' ' + document.data.anschrift.streetNumber + ',' + document.data.anschrift.postalCode + ' ' + document.data.anschrift.city\">\r\n      <ae-icon class=\"fa fa-location-arrow _CSS-navigate-icon\"></ae-icon>\r\n    </a>\r\n  </template>\r\n</div>\r\n","css":"._CSS-card {\n  padding: 1rem;\n  background: var(--ae-background-d1);\n  border: 1px solid var(--ae-foreground-l2);\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n  overflow: hidden;\n}\n\n._CSS-card-title {\n  overflow: hidden;\n  white-space: nowrap;\n  text-overflow: ellipsis;\n}\n\n._CSS-navigate-button {\n  font-size: 20px;\n  min-width: 42px;\n  min-height: 42px;\n  color: white;\n  background-color: rgb(30,68,100);\n  border-radius: 50%;\n}\n\n._CSS-navigate-icon {\n  transform: rotate(-45deg);\n}","controller":"","packages":[]},"locks":[],"created":{"at":"2018-02-06T09:47:37+01:00","by":"","from":"","client":"server"},"modified":{"at":"2018-12-21T11:06:37+00:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1545390397278,"ct":1517906857420,"a_depth":4,"a":["apps","b791df37-6eef-4a3e-9066-1b79e0bdad31","35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f","694aee80-d85e-479b-b7ec-8fe36906fcac"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"a4ba8c16-54b0-41f1-a4ee-16b854eb2f4e","v":"5e229c268591e3d3","p":"account","f":{"id":"design-form","v":"9bfe8e0cd909c1f0","text":"Design","client":"server"},"data":{"name":"card","template":"<div class=\"_CSS-account\" :class=\"{ '_CSS-account--disabled': data.disabled}\" @click=\"Aeppic.drillInto(document)\">\n  <ae-design class=\"_CSS-avatar\" name=\"avatar--small\" :document-id=\"data.profilePage.id ? data.profilePage.id : document.p\"></ae-design>\n  <ae-design class=\"_CSS-account-title\" name=\"title\" :document=\"document\"></ae-design>\n  <!-- <ae-design class=\"_CSS-profile-title\" name=\"title\" :document-id=\"data.profilePage.id ? data.profilePage.id : p\"></ae-design> -->\n  <div class=\"_CSS-features\">\n    <i v-if=\"data.allowDirectLogin\" class=\"fa fa-sign-in\" title=\"Direct anmelden erlaubt\"></i>\n  </div>\n</div>","css":"._CSS-account {\n  display:grid;\n  /* grid-template-rows: 24px 24px; */\n  grid-template-columns: auto 1fr auto;\n  grid-column-gap: 8px;\n  grid-template-areas: \n    \"avatar account features\"\n    \"avatar profile none\";\n  flex-direction: row;\n  margin-bottom: 8px; \n  background: var(--ae-ui-card-background);\n  padding: 4px 8px;\n  cursor: pointer;\n\n  border: var(--ae-border-width) solid var(--ae-border-color);\n  border-radius: var(--ae-border-radius);\n}\n\n._CSS-account--disabled {\n  opacity: 0.8;\n  background: var(--ae-background-300);\n}\n\n._CSS-avatar {\n  grid-area: avatar; \n}\n\n._CSS-profile-title {\n  grid-area: profile; \n  white-space: nowrap;\n  text-overflow: ellipsis;\n  overflow: hidden;\n}\n\n._CSS-account-title {\n  grid-area: account; \n  font-weight: 500;\n  overflow: hidden;\n  text-overflow: ellipsis;\n}\n\n._CSS-features {\n  grid-area: features;\n  color: var(--ae-background-700);\n}\n\n._CSS-account--disabled ._CSS-account-title * {\n  text-decoration:line-through;\n}\n\n","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2019-05-06T14:05:38+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2020-06-30T10:53:26+00:00","by":"8e6c22aa-8c69-4ff8-919a-7032841cf636","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1593514406012,"ct":1593514406012,"a_depth":5,"a":["system","b2533f7b-ea85-4680-99ed-d8e11be641b9","0e6939d6-9b93-4165-b6bd-977e4da881f3","627f5b74-3baf-45f8-a1d3-a5936839b844","account"],"a_forms":["system-folder-form","folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[],"previous":{"v":"0d33e5bc8266668d","f":{"id":"design-form","v":"74db9b6ed94b41d9","text":"Design","client":"server"}}},{"id":"b041f919-6df4-4125-8445-bfd08ce2bfc0","v":"1d2107961bda536c","previous":{"v":"081cef8584ab62c6"},"p":"5150f703-e93a-4e54-a998-a06c0e962e71","f":{"id":"design-form","v":"3385ac6766f32638","text":"Design"},"data":{"name":"card","template":"<div class=\"rounded-lg h-40 min-full bg-center bg-cover rounded-lg border border-slate-200 flex text-white [text-shadow:1px_1px_2px_rgba(0,0,0,0.6)] \" \n  :style=\"{ 'background-image': controller.backgroundImageUrl }\"\n  :class=\"[!data.bild.dataUrl && 'bg-white' ]\"\n>\n  <section class=\"p-2 flex flex-col text-xl rounded-lg [background:linear-gradient(to_right,rgba(0,0,0,0.65)_0%,rgba(0,0,0,0)_100%)]\"> \n    <h2 class=\"text-3xl font-bold\">{{document.data.name}}</h2>\n    <span>{{document.data.nummer}}</span>\n    <span>{{document.data.fabrikat}}</span>\n    <span flex></span>\n    <h4 class=\"font-bold\">{{document.data.raum}}</h4>\n  </section>\n  \n  <section class=\"flex-1\">\n  </section>\n\n\n  <section class=\"p-2 flex items-end justify-end\">\n    <ae-layout  layout-id=\"a2cd7699-9b46-494f-8f89-cb1f62151d82\"\n                param-text=\"Öffnen\"\n                @selected=\"controller.open()\"\n                :param-disabled=\"params.readonly\"\n    ></ae-layout>\n  </section>\n\n  <section v-if=\"data.unterschrift.dataUrl\" class=\"bg-white p-4 overflow-hidden text-black [text-shadow:initial] rounded-r-lg\">\n    <div class=\"text-xs\">Unterschrift</div>\n\n    <div class=\"flex gap-1 items-center\">\n      <ae-design name=\"avatar--resizes-with-font\" :document-id=\"document.modified.by\"></ae-design>\n      <ae-design name=\"profile-title\" :document-id=\"document.modified.by\"></ae-design>\n    </div>\n\n    <img class=\"flex-1  w-[70px]\" :src=\"Aeppic.Content.getSrc(document, 'unterschrift')\">\n    <div class=\"text-sm\">{{ Aeppic.DateTime.fromISO(document.modified.at).toLocaleString(Aeppic.DateTime.DATETIME_SHORT) }}</div>\n  </section>\n\n</div> ","css":"","controller":"class Controller {\n  async init() {\n    locals.fallbackImage = null\n    locals.fallbackImage = await Aeppic.get('f9908d90-eb80-4973-86cc-3d424fd85b93')\n  }\n\n  async open() {\n    const result = await Aeppic.Commands.execute('936b71d2-8ed1-4373-b202-9c73172f8832', document, {}, { navigation: true })\n    console.log(result)\n  }\n\n  get backgroundImageUrl() {\n    if (data.bild.dataUrl) {\n      return `url(${Aeppic.Content.getSrc(document, 'bild', { noCache: true })})`\n    }\n\n    if (locals.fallbackImage) {\n      return `url(${Aeppic.Content.getSrc(locals.fallbackImage, 'file', { noCache: true })})` \n    }\n    \n    return ''\n  }\n} ","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-03-03T14:29:24+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-07-22T08:51:20+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1658479880631,"ct":1646317764297,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","5150f703-e93a-4e54-a998-a06c0e962e71"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"b0840a9e-b99f-4f2c-87cf-946aa86197a7","v":"eebc4233454b7cb8","previous":{"v":"ed8822fac2fceb55"},"p":"6d164aff-df9b-470d-9632-cfb6f5892509","f":{"id":"design-form","v":"49954170df6a253b","text":"Design"},"data":{"name":"card","template":"<div class=\"_CSS-card\" :class=\"{ '_CSS-card--done': data.read }\"  @xclick=\"controller.showDialog()\">\n  <div class=\"_CSS-card__notification\">\n    <div class=\"_CSS-card__icon\">\n      <ae-design name=\"icon\" :document-id=\"data.app\"></ae-design>\n      <ae-design name=\"icon\" :document-id=\"data.category\"></ae-design>\n    </div>\n    <div class=\"_CSS-card__text\">\n      <ae-design class=\"_CSS-notification-title\" name=\"title\" :document=\"document\"></ae-design>\n      <ae-design class=\"_CSS-notification-target-title\" name=\"title\" :document=\"data.document\"></ae-design>\n      <div class=\"_CSS-notification-date\">\n        {{ Aeppic.DateTime.fromISO(document.created.at).toLocaleString(Aeppic.DateTime.DATETIME_MED) }}\n      </div>\n    </div>\n\n    <!-- TODO: use date control to set NOW on click -->\n    <!-- <button :disabled=\"data.read\"\n            class=\"bp-button bp-button-icon\"\n            >\n      <ae-icon class=\"fa fa-check\"></ae-icon>\n    </button> -->\n    </div>\n\n</div>\n\n<ae-layout  layout-id=\"765b4707-916f-42ef-afdd-853582fe4314\"\n            v-if=\"locals.showDialog\"\n            ref=\"dialog\"\n            :param-document=\"document\"\n></ae-layout>\n\n ","css":"._CSS-card {\n  background: var(--ae-background);\n\n  display: flex;\n  flex-flow: column;\n}\n\n._CSS-card--done {\n  text-decoration: line-through;\n}\n\n._CSS-card__notification {\n  padding: 8px;\n  display: flex;\n  background: var(--ae-background);\n}\n\n._CSS-card__target {\n  padding: 10px 0;\n  display: flex;\n  justify-content: center;\n}\n\n._CSS-card__icon {\n  margin: 0 10px 0 0 ;\n}\n\n._CSS-card__text {\n  display: flex;\n  flex-flow: column;\n  min-width: 0;\n}\n\n._CSS-notification-title {\n\n}\n._CSS-notification-target-title {\n  font-weight: 700;\n  padding: 8px 0;\n}\n\n._CSS-notification-date {\n  color: var(--ae-foreground-l3);\n  font-size: 0.9em;\n}","controller":"class Controller {\n  init() {\n    locals.showDialog = false\n  }\n\n  async showDialog() {\n    locals.showDialog = true\n\n    await Aeppic.nextRenderPass()\n    await Aeppic.nextRenderPass()\n\n    $refs.dialog.$emit('show')\n  }\n}","packages":[],"description":""},"locks":[],"created":{"at":"2018-12-03T14:02:15+00:00","by":"c5ed555f-cc11-463b-960b-0a60b3118e69","from":"","client":"server"},"modified":{"at":"2019-02-20T08:52:23+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1550652743991,"ct":1543845735334,"a_depth":4,"a":["apps","c9b12874-99d0-40e8-86cc-c3fe0477a15a","9b5518e5-c3ea-4446-9dc8-8628d8e8fabe","6d164aff-df9b-470d-9632-cfb6f5892509"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"b2604710-c160-436d-a80c-01a035be8f9d","v":"f1cc36a2650c3389","previous":{"v":"bb15a0b4f18ac581"},"p":"bb02185c-fc19-4f63-9ee0-102c4fc68b3b","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"card","applies":"","template":"<div class=\"_CSS-card\" @click=\"$emit('selected', document)\">\n  <ae-design :watch=\"false\" :document=\"document\" name=\"title\"></ae-design>\n  <div class=\"bp-button bp-button-icon\" @click.stop=\"$emit('remove', document)\">\n    <ae-icon class=\"fa fa-times\"></ae-icon>\n  </div>\n</div>","css":"._CSS-card {\n  display: flex;\n  overflow: hidden;\n  justify-content: space-between;\n\n  border-bottom: 1px solid var(--ae-foreground-l2);\n  border-radius: 2px;\n  box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.16), 0 0 1px 0 rgba(0, 0, 0, 0.16);\n\n  background-color: white;\n  padding: 1rem var(--bp-input-content-padding) 1rem;\n}\n","controller":"","packages":[]},"locks":[],"created":{"at":"2018-02-06T09:45:18+01:00","by":"","from":"","client":"server"},"modified":{"at":"2018-12-21T11:06:11+00:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1545390371415,"ct":1517906718795,"a_depth":4,"a":["apps","b791df37-6eef-4a3e-9066-1b79e0bdad31","35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f","bb02185c-fc19-4f63-9ee0-102c4fc68b3b"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"b5d63dfd-2864-4427-964a-b4bf3ad3ba00","v":"224889facb76b33f","p":"ac1c3cae-65ab-45cf-8bdc-c00b1dc93012","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"card","template":"<div class=\"_CSS-change bp-card bp-card--bordered\">\n  <div class=\"_CSS-change__app\" v-if=\"!params.hideApp\">\n    <ae-design name=\"icon\" :document-id=\"document.p\"></ae-design>\n    <ae-design name=\"title\" :document=\"document\" style=\"margin-left:0.5ch\"></ae-design>\n\n    <span style=\"margin-left:0.5ch;font-style:italic\">\n      (<ae-design name=\"title\" :document-id=\"document.p\" style=\"display:inline-flex\" :param-prefer-label=\"true\"></ae-design>)\n    </span>\n\n\n    <div style=\"margin-left:auto;\" v-if=\"document.data.date\" title=\"Datum des Changelogs (entspricht NICHT dem Datum, an dem diese Änderung in dieser Instanz verfügbar/eingespielt wurde)\">\n      {{ Aeppic.DateTime.fromISO(document.data.date).toLocaleString(Aeppic.DateTime.DATE_MED) }}\n    </div>\n  </div>\n  <div class=\"_CSS-change__app\" v-else>\n    <ae-design name=\"title\" :document=\"document\"></ae-design>\n    <div style=\"margin-left:auto;\" v-if=\"document.data.date\" title=\"Datum des Changelogs (entspricht NICHT dem Datum, an dem diese Änderung in dieser Instanz verfügbar/eingespielt wurde)\">\n      {{ Aeppic.DateTime.fromISO(document.data.date).toLocaleString(Aeppic.DateTime.DATE_MED) }}\n    </div>\n  </div>\n\n  <ae-design name=\"html\" :document=\"document\"></ae-design>\n\n  <ae-control v-if=\"data.attachments?.length\"\n              name=\"attachment\"\n              :document=\"document\"\n              field-name=\"attachments\"\n              :readonly=\"true\"\n              :param-direct-preview=\"true\"\n              param-file-field=\"file\"\n  ></ae-control>\n</div> ","css":"._CSS ._CSS-change {\n  display: flex;\n   flex-flow: column;\n  align-items: stretch;\n}\n\n._CSS-change__app {\n  display: flex;\n  border-bottom: var(--ae-border-width) solid var(--ae-border-color);\n  margin: var(--ae-space-1) 0 var(--ae-space-3) 0;\n}","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-07-23T12:35:36+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-10-12T12:23:10+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1719473826674,"ct":1719473826674,"a_depth":3,"a":["system","system-forms","ac1c3cae-65ab-45cf-8bdc-c00b1dc93012"],"a_forms":["system-folder-form","repository-folder-form","form"],"inheritedLocks":[null,null,null,null],"stamps":[],"previous":{"v":"bf2726ac46bbda67","f":{"id":"design-form","v":"0061789efb5c5c29","text":"Design"}},"meta":{"modified":{"at":"2024-06-27T07:37:06+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"beb671b3-4da5-4d97-93f4-65f963c8ed26","v":"0ecfdb492e0546e7","p":"lock-form","f":{"id":"design-form","v":"9bfe8e0cd909c1f0","text":"Design","client":"server"},"data":{"name":"card","template":"","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2018-05-23T11:44:40+02:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","from":"","client":"server"},"modified":{"at":"2020-06-30T10:53:26+00:00","by":"8e6c22aa-8c69-4ff8-919a-7032841cf636","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1593514406012,"ct":1593514406012,"a_depth":5,"a":["system","b2533f7b-ea85-4680-99ed-d8e11be641b9","0e6939d6-9b93-4165-b6bd-977e4da881f3","627f5b74-3baf-45f8-a1d3-a5936839b844","lock-form"],"a_forms":["system-folder-form","folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[],"previous":{"v":"3fa18e92b0abb3a9","f":{"id":"design-form","v":"74db9b6ed94b41d9","text":"Design","client":"server"}}},{"id":"c8c8023c-c391-4304-b277-b70b20b334d3","v":"d8ec1730d5d494e5","previous":{"v":"8594d3ad1d174d94"},"p":"f8bb1979-c159-4464-97e6-ae3145caf0c5","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"card","applies":"","template":"<div class=\"_CSS-card\">\n  <h2>{{data.name}}</h2>\n  <h4 v-if=\"data.telefonnummer\"><ae-icon class=\"fa fa-phone\"></ae-icon> <a :href=\"'tel:' + data.telefonnummer\">{{data.telefonnummer}}</a></h4>\n  <ae-icon class=\"fa fa-map-marker-alt\"></ae-icon> {{data.anschrift}}\n  <div>\n    <ae-design\n      name=\"styled-title\"\n      v-for=\"ansprechpartner in data.ansprechpartner\"\n      :document-id=\"ansprechpartner.id\"\n      :key=\"ansprechpartner.id\"\n    ></ae-design>\n  </div>\n</div>","css":"._CSS-card {\n  padding: 1rem;\n  background: var(--ae-background-d1);\n  border: 1px solid var(--ae-foreground-l2);\n}","controller":"","packages":[]},"locks":[],"created":{"at":"2018-02-06T09:46:40+01:00","by":"","from":"","client":"server"},"modified":{"at":"2018-12-21T11:06:32+00:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1545390392242,"ct":1517906800376,"a_depth":4,"a":["apps","b791df37-6eef-4a3e-9066-1b79e0bdad31","35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f","f8bb1979-c159-4464-97e6-ae3145caf0c5"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"cbb78ded-6a91-4f89-b8e0-1419c531a2dc","v":"11a56803802c2edd","previous":{"v":"6e98eca1bbe4552f"},"p":"cb2adf77-7636-41a7-9a16-1610b06fa91e","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"card","template":"<div class=\"_CSS-card\" @click.stop=\"$emit('selected', document)\">\n  <div class=\"_CSS-card__media\">\n    <div v-if=\"locals.firstSection && locals.firstSection.data.text\">\n      {{ locals.firstSection.data.text?.slice(0,200) }} \n    </div>\n  </div>\n  <div class=\"_CSS-card__secondary\">\n    <div style=\"display:flex;align-items:center;justify-content:space-between;\">\n      <div class=\"_CSS-card__title\">\n        <ae-design class=\"_CSS-card__secondary-icon\" name=\"icon\" :document=\"document\"></ae-design>\n        <ae-design name=\"title\" :document=\"document\"></ae-design>\n      </div>\n      <div title=\"Freigegeben\">\n        <svg v-if=\"data.freigabe\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" style=\"fill:#333\" >\n          <path d=\"M23.334 11.96c-.713-.726-.872-1.829-.393-2.727.342-.64.366-1.401.064-2.062-.301-.66-.893-1.142-1.601-1.302-.991-.225-1.722-1.067-1.803-2.081-.059-.723-.451-1.378-1.062-1.77-.609-.393-1.367-.478-2.05-.229-.956.347-2.026.032-2.642-.776-.44-.576-1.124-.915-1.85-.915-.725 0-1.409.339-1.849.915-.613.809-1.683 1.124-2.639.777-.682-.248-1.44-.163-2.05.229-.61.392-1.003 1.047-1.061 1.77-.082 1.014-.812 1.857-1.803 2.081-.708.16-1.3.642-1.601 1.302s-.277 1.422.065 2.061c.479.897.32 2.001-.392 2.727-.509.517-.747 1.242-.644 1.96s.536 1.347 1.17 1.7c.888.495 1.352 1.51 1.144 2.505-.147.71.044 1.448.519 1.996.476.549 1.18.844 1.902.798 1.016-.063 1.953.54 2.317 1.489.259.678.82 1.195 1.517 1.399.695.204 1.447.072 2.031-.357.819-.603 1.936-.603 2.754 0 .584.43 1.336.562 2.031.357.697-.204 1.258-.722 1.518-1.399.363-.949 1.301-1.553 2.316-1.489.724.046 1.427-.249 1.902-.798.475-.548.667-1.286.519-1.996-.207-.995.256-2.01 1.145-2.505.633-.354 1.065-.982 1.169-1.7s-.135-1.443-.643-1.96zm-12.584 5.43l-4.5-4.364 1.857-1.857 2.643 2.506 5.643-5.784 1.857 1.857-7.5 7.642z\"\n          />\n        </svg>\n      </div>\n    </div>\n    <span v-if=\"params.showLocation\" style=\"font-size:smaller;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;color: #777;\">\n      <ae-design name=\"title\" :document-id=\"document.p\" :watch=\"false\"></ae-design>\n    </span>\n    <div class=\"_CSS-card__secondary__user-and-date\">\n      <ae-design name=\"avatar--resizes-with-font\" :document-id=\"document.modified.by\"></ae-design>\n      <div style=\"flex:1;\"></div>\n      <span  class=\"_CSS-card__secondary-date\" style=\"\" :title=\"'Zuletzt geändert: ' + DateTime.fromISO(document.modified.at).toLocaleString(DateTime.DATETIME_FULL)\">\n        {{ controller.date }}\n      </span>\n    </div>\n    <!-- <ae-design name=\"icon\" :document=\"document\" style=\"position: absolute; left: 1; top: 2px; font-size: 0.5em;\"></ae-design> -->\n  </div>\n</div>\n\n","css":"._CSS-card {\n  display: flex;\n  flex-flow: column;\n  height: auto;\n  \n  background-color: var(--ae-ui-background);\n\n  border-radius: var(--ae-border-radius);\n  border: solid var(--ae-border-width);\n  border-color: var(--ae-border-color);\n\n  position: relative;\n}\n\n._CSS-card__media {\n  flex:2;\n  height: 128px;\n  min-height: 128px;\n  max-height: 128px;\n  width: 100%;\n  overflow: hidden;\n\n  border-radius: var(--ae-border-radius) var(--ae-border-radius) 0 0;\n  padding: var(--ae-space-1);\n}\n\n._CSS-card__secondary {\n  width: 100%;\n  flex:1;\n\n  display: flex;\n  flex-direction: column;\n  justify-content: space-between;\n\n  background: var(--ae-ui-background);\n  padding: 4px;\n\n  border-radius: 0 0 var(--ae-border-radius) var(--ae-border-radius);\n}\n\n\n._CSS-card__secondary__user-and-date {\n  display: flex;\n  align-items: center;\n  opacity: var(--ae-opacity-1);\n}\n\n._CSS-card__secondary-date {\n  font-size:0.8em;\n  color: var(--ae-background-800);\n  overflow:hidden;\n  text-overflow: ellipsis;\n  text-align:end;\n}\n._CSS-card__secondary-icon {\n  margin-right: 5px;\n  color: var(--ae-ui-element-icon-color);\n}\n\n._CSS-card__title {\n  overflow:hidden;\n  text-overflow: ellipsis;\n  white-space:nowrap;\n\n  display: flex;\n  align-items: center;\n}","controller":"class Controller {\n  async init() {\n    locals.firstSection = null\n    locals.firstSection = data.sections.length && await Aeppic.get(data.sections[0])\n  }\n  \n  get date() {\n    const date = DateTime.fromISO(document.modified.at)\n\n    const diff = -date.diffNow('days').days.toFixed(0)\n\n    if (diff === 0) {\n      return date.toLocaleString(DateTime.TIME_24_SIMPLE)\n    }\n\n    if (diff <= 7) {\n      return date.toLocaleString({weekday: 'long', hour: '2-digit', minute: '2-digit' })\n    }\n\n    return date.toLocaleString(DateTime.DATETIME_MED)\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-11-04T14:02:06+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-11-04T15:46:20+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1636040780916,"ct":1636034526306,"a_depth":4,"a":["apps","cf914a7f-ff5f-4598-80f1-63c9129e0a71","d69a62e9-a61f-42bf-9ae9-7983b87bf587","cb2adf77-7636-41a7-9a16-1610b06fa91e"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"d1c54669-c348-4361-b679-e4c48ee7bf0b","v":"cf6b4bf98e770981","previous":{"v":"c634cf53c15148fb"},"p":"6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2","f":{"id":"design-form","v":"031b38a71a0540bc","text":"Design"},"data":{"name":"card","template":"<div class=\"_CSS-card\" :class=\"{ '_CSS-card--selected': params.isSelected }\" :style=\"{ 'border-left-color': data.farbe }\" @click.stop=\"$emit('selected', locals.document)\">\n  <!-- <ae-design class=\"_CSS-card__media\" name=\"card-thumbnail-with-icon\" :document=\"locals.document\" @cannot-convert=\"locals.canConvert = false\"></ae-design> -->\n  <ae-design class=\"_CSS-card__media\" name=\"thumbnail\" :document=\"locals.document\" @cannot-convert=\"locals.canConvert = false\" :params=\"{ minSize: '168px' }\"></ae-design>\n  <div class=\"ae-progress--indeterminate\" title=\"uploading\" v-if=\"controller.isUploading && locals.upload.progressPercent == 0\">\n  </div>\n  <div v-if=\"locals.upload && locals.upload.progressPercent !== 0\" style=\"display:flex\">\n    <div class=\"ae-progress\" :style=\"{ 'padding-left': (locals.upload.progressPercent * 100).toString() + '%' }\" ></div>\n  </div> \n\n  <div class=\"_CSS-card__secondary\">\n    <div style=\"display:flex;align-items:center;justify-content:space-between;\">\n      <div class=\"_CSS-card__title\">\n        <ae-design class=\"_CSS-card__secondary-icon\" name=\"icon\" :document=\"locals.document\"></ae-design>\n        <ae-design name=\"title\" :document=\"locals.document\"></ae-design>\n      </div>\n      <!-- <div title=\"Freigegeben\">\n        <svg v-if=\"data.freigabe\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" style=\"fill:#333\" >\n          <path d=\"M23.334 11.96c-.713-.726-.872-1.829-.393-2.727.342-.64.366-1.401.064-2.062-.301-.66-.893-1.142-1.601-1.302-.991-.225-1.722-1.067-1.803-2.081-.059-.723-.451-1.378-1.062-1.77-.609-.393-1.367-.478-2.05-.229-.956.347-2.026.032-2.642-.776-.44-.576-1.124-.915-1.85-.915-.725 0-1.409.339-1.849.915-.613.809-1.683 1.124-2.639.777-.682-.248-1.44-.163-2.05.229-.61.392-1.003 1.047-1.061 1.77-.082 1.014-.812 1.857-1.803 2.081-.708.16-1.3.642-1.601 1.302s-.277 1.422.065 2.061c.479.897.32 2.001-.392 2.727-.509.517-.747 1.242-.644 1.96s.536 1.347 1.17 1.7c.888.495 1.352 1.51 1.144 2.505-.147.71.044 1.448.519 1.996.476.549 1.18.844 1.902.798 1.016-.063 1.953.54 2.317 1.489.259.678.82 1.195 1.517 1.399.695.204 1.447.072 2.031-.357.819-.603 1.936-.603 2.754 0 .584.43 1.336.562 2.031.357.697-.204 1.258-.722 1.518-1.399.363-.949 1.301-1.553 2.316-1.489.724.046 1.427-.249 1.902-.798.475-.548.667-1.286.519-1.996-.207-.995.256-2.01 1.145-2.505.633-.354 1.065-.982 1.169-1.7s-.135-1.443-.643-1.96zm-12.584 5.43l-4.5-4.364 1.857-1.857 2.643 2.506 5.643-5.784 1.857 1.857-7.5 7.642z\"\n          />\n        </svg>\n      </div> -->\n      <template v-for=\"s of locals.document.stamps\">\n        <ae-design name=\"icon\" :document=\"s\"></ae-design>\n      </template>\n    </div>\n    <span v-if=\"params.showLocation\" style=\"font-size:smaller;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;color: #777;\">\n      <ae-design name=\"title\" :document-id=\"locals.document.p\" :watch=\"false\"></ae-design>\n    </span>\n    <span  class=\"_CSS-card__secondary-date\" style=\"\" :title=\"'Zuletzt geändert: ' + DateTime.fromISO(locals.document.modified.at).toLocaleString(DateTime.DATETIME_FULL)\">\n      {{ controller.date }}\n    </span>\n    \n    <!-- <ae-design name=\"icon\" :document=\"locals.document\" style=\"position: absolute; left: 1; top: 2px; font-size: 0.5em;\"></ae-design> -->\n  </div>\n</div>\n ","css":"._CSS-card {\n  display: flex;\n  flex-flow: column;\n  height: auto;\n  font-size: 1em;\n  \n  background-color: var(--ae-ui-background);\n\n  /* border-bottom: 1px solid var(--ae-primary-l1); */\n  /* border-left: 4px solid var(--ae-primary); */\n  border-radius: 2px;\n  border: solid 1px;\n  border-color: var(--ae-border-color);\n\n  position: relative;\n}\n\n._CSS-card--selected {\n  border-color: var(--ae-primary-900);\n}\n\n._CSS-card__media {\n  flex:2;\n  height: 6em;\n  min-height: 6em;  \n  width: 100%;\n}\n\n._CSS-card__secondary {\n  flex:1;\n\n  display: flex;\n  flex-direction: column;\n  justify-content: space-between;\n\n  background: var(--ae-ui-background);\n  padding: 4px;\n}\n\n._CSS-card__secondary-date {\n  color: var(--ae-background-800);\n  overflow:hidden;\n  text-overflow: ellipsis;\n  font-size:0.8em;\n  text-align:end;\n}\n._CSS-card__secondary-icon {\n  margin-right: 5px;\n  color: var(--ae-ui-element-icon-color);\n}\n\n._CSS-card__title {\n  overflow:hidden;\n  text-overflow: ellipsis;\n  white-space:nowrap;\n\n  display: flex;\n  align-items: center;\n}\n\n._CSS progress {\n  -webkit-appearance: none;\n  flex:1;\n  min-width:auto;\n  width:auto;\n  background-color: var(--ae-background-d1);\n  border-radius: 2px;\n  box-shadow: 0 2px 5px rgba(0,0,0, 0.25) inset;\n}","controller":"async init() {\r\n  locals.document = document\r\n  locals.stampsKey = Aeppic.uuid()\r\n  locals.canConvert = true\r\n  locals.upload = null //{progressPercent:0.3,status:'started'}\r\n  locals.ancestors = []\r\n\r\n  Aeppic.watch(document.id, (doc, reason) => console.log('# weatch', doc, reason))\r\n\r\n  locals.ancestors = await Aeppic.getAll(document.a)\r\n\r\n  // // FIXME: re-fetch document on stamp changes because document.stamps does never change!\r\n  // Aeppic.subscribe(`p:${document.id} f.id:stamp`, async (_) => {\r\n  //   locals.document = await Aeppic.get(document.id)\r\n  // })\r\n}\r\n\r\nget isUploading() {\r\n  const status = Aeppic.Uploads.getUploadStatusForDocument(locals.document)\r\n\r\n  if (status) {\r\n    locals.upload = status[0]\r\n  } else {\r\n    locals.upload = null\r\n  }\r\n \r\n  return !!locals.upload\r\n}\r\n\r\n\r\nget date() {\r\n  const date = DateTime.fromISO(locals.document.modified.at)\r\n\r\n  const diff = -date.diffNow('days').days.toFixed(0)\r\n\r\n  if (diff === 0) {\r\n    return date.toLocaleString(DateTime.TIME_24_SIMPLE)\r\n  }\r\n\r\n  if (diff > 7) {\r\n    return date.toLocaleString(DateTime.DATETIME_MED)\r\n  }\r\n\r\n  return date.toLocaleString({weekday: 'long', hour: '2-digit', minute: '2-digit' })\r\n}","packages":[],"aliases":[{"id":"7c23659c-c71a-4115-bb3c-91b3dcf2adae","v":"3412dc8af4e8cc1e","text":"test"}],"description":""},"locks":[],"created":{"at":"2019-03-13T14:46:14+00:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","from":"","client":"server"},"modified":{"at":"2022-02-15T15:59:47+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1644940787405,"ct":1552488374020,"a_depth":4,"a":["apps","3d43a3f5-fea4-488d-9fc1-9dee5e694623","7c30f282-2b84-4976-8735-ba78662ea5e6","6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"d2e92f00-b538-4806-aa7b-4217b9280eef","v":"072e8e3f6fcfaa15","previous":{"v":"aa13da5ccb98248c"},"p":"c3fcbfa9-f948-483b-a706-afcdf2ca1fa6","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"card","applies":"","template":"<div @click=\"locals.showOverlay = true; $refs.filepreview.show()\" class=\"_CSS-card\" :style=\"{ 'background-image': 'url(' + Aeppic.Content.getThumbnailSrc(document, 'bild')+ '&keepAspectRatio=width)' }\">\n\t<div class=\"_CSS-image\" v-if=\"data.overlay.dataUrl\" :style=\"{ 'background-image': 'url(' + Aeppic.Content.getSrc(document, 'overlay')+ ')' }\"></div>\n</div>\n\n<ae-dialog ref=\"filepreview\" :full-screen=\"true\">\n\t<div slot=\"header\" class=\"_CSS-preview-header\">\n\t\t<div class=\"_CSS-button bp-button\" @click=\"$refs.filepreview.close()\">\n\t\t\t<ae-icon class=\"fa fa-3x fa-angle-left\"></ae-icon>\n\t\t</div>\n\t\t<div class=\"_CSS-button bp-button\" @click=\"locals.showOverlay = !locals.showOverlay\">\n\t\t\t<ae-icon v-show=\"data.overlay.dataUrl\" class=\"fa fa-3x fa-object-ungroup\"></ae-icon>\n\t\t</div>\n    <div class=\"_CSS-button bp-button\" @click=\"$refs.deleteDialog.show()\">\n\t\t\t<ae-icon class=\"fa fa-2x fa-trash\"></ae-icon>\n    </div>\n\t</div>\n\n\t<div slot=\"body\" class=\"_CSS-image\" :style=\"{ 'background-image': 'url(' + Aeppic.Content.getSrc(document, 'bild')+ ')' }\">\n\t\t<div class=\"_CSS-image\" v-show=\"locals.showOverlay\" :style=\"{ 'background-image': 'url(' + Aeppic.Content.getSrc(document, 'overlay')+ ')' }\"></div>\n\t</div>\n</ae-dialog>\n\n<ae-dialog ref=\"deleteDialog\" title=\"Dokument löschen\">\n  <div slot=\"header\"></div>\n  <div slot=\"body\">\n    <h3>Möchten Sie <i>{{ document.data.name || 'dieses Dokument' }}</i> löschen?</h3>\n    <p>\n      Das Dokument wird permanent gelöscht.<br>\n      Die Daten bleiben in der Historie erhalten, sind aber nicht durch einen Nutzer wiederherstellbar.\n    </p>\n  </div>\n  <div slot=\"commands\" slot-scope=\"dialogScope\" class=\"_CSS-delete-commands\">\n    <div class=\"bp-button bp-button--transparent\" @click=\"dialogScope.close()\" style=\"margin-right: 1rem;\">Abbrechen</div>\n    <div class=\"bp-button bp-button--raised\" @click=\"dialogScope.close();Aeppic.delete(document.id);Aeppic.navigateTo(document.p)\">Löschen</div>\n  </div>\n</ae-dialog>","css":"._CSS-card {\n  height: 100%;\n  width: 100%;\n\n  border-radius: 2px;\n  box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.16), 0 0 1px 0 rgba(0, 0, 0, 0.16);\n  background-color: white;\n  \n  background-size: contain;\n  background-repeat: no-repeat;\n  background-position: center;\n\n  display: flex;\n}\n\n._CSS-preview-header, ._CSS-preview-commands {\n  flex: 1;\n  display: flex;\n}\n\n._CSS-preview-header {\n  background-color: var(--ae-primary);\n  justify-content: space-between;\n  align-items: center;\n}\n\n._CSS-preview-header ._CSS-button {\n  color: var(--ae-theme-text-icon-on-primary);\n}\n\n._CSS-preview-commands {\n  background-color: var(--ae-background-d1);\n  justify-content: flex-end;\n}\n\n._CSS-image {\n  display: flex;\n  flex: 1;\n  background-size: contain;\n  background-repeat: no-repeat;\n  background-position: center;\n}\n\n._CSS-delete-commands {\n  flex: 1;\n  display: flex;\n  justify-content: space-between;\n}","controller":"class Controller {\n  init() {\n    locals.showOverlay = true\n  }\n}","packages":[]},"locks":[],"created":{"at":"2018-02-06T09:45:25+01:00","by":"","from":"","client":"server"},"modified":{"at":"2019-04-05T14:12:48+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1554473568099,"ct":1517906725790,"a_depth":4,"a":["apps","b791df37-6eef-4a3e-9066-1b79e0bdad31","35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f","c3fcbfa9-f948-483b-a706-afcdf2ca1fa6"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"d7046204-ff3e-451d-88c7-647d7e05b11e","v":"00c4ece9f40841be","previous":{"v":"f9b93cc2423c7529"},"p":"aabed4ee-20ca-4df4-9a78-75a05e97dce9","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"card","applies":"","template":"<div  class=\"_CSS-card\"\n      :class=\"{ '_CSS-card--highlight': locals.highlight }\"\n      @click.stop=\"$emit('selected', document)\">\n  <ae-design name=\"thumbnail\" \n            :document=\"document\" \n            class=\"_CSS-primary\" \n            :param-click-to-preview=\"params.clickToPreview\" \n            :param-show-preview-button=\"params.showPreviewButton\"\n            :param-show-remove-button=\"controller.canRemove\"\n            @selected=\"$emit('selected', $event)\"\n            @remove=\"$emit('remove', document)\"\n></ae-design>\n</div>\n","css":"._CSS-card {\n  display: inline-block;\n}\n\n._CSS-card--highlight {\n  border: 5px solid green;\n}\n","controller":"class Controller {\n  async init() {\n    locals.highlight = this._highlightAsNewApplication()\n  }\n\n  _highlightAsNewApplication() {\n    if (!params.highlightStartingDate) {\n      return false\n    }\n\n    const startingDateTime = Aeppic.DateTime.fromISO(params.highlightStartingDate)\n    const createdAsDateTime = Aeppic.DateTime.fromISO(document.created.at)\n\n    const diff = createdAsDateTime.diff(startingDateTime)\n\n    return diff.milliseconds > 0\n  }\n\n  get canRemove() {\n    return params.newlyAddedFiles && params.newlyAddedFiles.includes(document.id)\n  }\n} ","packages":[]},"locks":[],"created":{"at":"2018-06-20T11:49:16+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2020-10-13T10:11:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1602583892058,"ct":1529495356090,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","aabed4ee-20ca-4df4-9a78-75a05e97dce9"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"dcb65742-e05b-44f6-8b7f-b490e259314d","v":"f513d341cc055115","previous":{"v":"67d6387957e8f109"},"p":"954212d9-9cc7-4356-82e3-a80cf745da4d","f":{"id":"design-form","v":"0061789efb5c5c29","text":"Design"},"data":{"name":"card","template":"<div class=\"_CSS-card bp-card bp-card--bordered\">\n  <div class=\"_CSS-card__title\" >\n    <ae-design name=\"title\" :document=\"document\"></ae-design>\n    <button class=\"ae-button\" @click=\"Aeppic.drillInto(document)\">\n      <ae-icon class=\"fad fa-chevron-right\"></ae-icon>\n    </button>\n  </div>\n  <ae-list :root-document-id=\"document.id\"\n          class=\"_CSS-card__list\"\n          query-id=\"2cc53ecb-aa99-4ccd-ad57-a083a66262d1\"\n          list-id=\"2e798091-303f-406b-a42a-93aa1cd8425c\"\n          :sort=\"locals.sort\"\n          @selected=\"Aeppic.drillInto($event)\"\n          param-empty-text=\"Keine Protokolle erstellt\"\n          param-design=\"ref-card,card\"\n        :search-options=\"{size:10}\"\n  ></ae-list>\n</div>","css":"._CSS-card {\n  display: flex;\n  flex-flow: column;\n  align-items: stretch;\n}\n\n._CSS-card__title {\n  padding: var(--ae-space-3) 0;\n  display: flex;\n  align-items: baseline;\n  justify-content: space-between;\n}\n\n._CSS-card__list {\n  overflow: auto;\n  flex: 1;\n\n}","controller":"init() {\n  locals.sort = [{\n    field: 'data.date',\n    descending: true\n  }, {\n    field: 'created.at',\n    descending: true\n  }]\n}\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-09-02T09:26:57+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-08-25T13:54:55+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1661435695283,"ct":1599038817788,"a_depth":4,"a":["apps","91a90288-37bc-4f86-be38-4283833717d2","cb7a4c1b-703a-4b16-9190-aa2a26532688","954212d9-9cc7-4356-82e3-a80cf745da4d"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"f25e48e6-472f-458d-8bd2-007d095e89cc","v":"4a6ef62a1a4f326a","previous":{"v":"8eff146bd493f815"},"p":"522ca40d-810b-4021-835f-beeace3af7fa","f":{"id":"design-form","v":"3385ac6766f32638","text":"Design"},"data":{"name":"card","template":"<div class=\"rounded-lg bg-white p-2 border border-slate-200 flex flex-col\">\n  <div class=\"flex justify-between items-center\">\n    <div class=\"flex flex-col\">\n      <span class=\"font-bold text-lg\">\n        {{ data.name }}\n      </span>\n\n      <div class=\"font-sm text-theme-500\"> {{ data.anlagen.length}} Anlagen </div>\n\n    </div>\n\n    <ae-layout  layout-id=\"a2cd7699-9b46-494f-8f89-cb1f62151d82\"\n              param-text=\"Öffnen\"\n              @selected=\"$emit('selected', document)\"\n              :param-disabled=\"params.readonly\"\n    ></ae-layout>\n  </div>\n\n  <span v-if=\"data.beschreibung\" class=\"mt-4 font-sm text-theme-500\">{{ data.beschreibung}}</span>\n</div>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-03-03T09:57:06+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-04-06T12:54:22+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1649249662483,"ct":1646301426918,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","522ca40d-810b-4021-835f-beeace3af7fa"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"f665e84c-8fd8-4c8f-bf0c-21404d17c75d","v":"50c1db6514d27f88","previous":{"v":"39a09b5c1c19aedb"},"p":"3d456c38-6282-416e-8c5e-7d20b0517a6e","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"card","applies":"","template":"<div class=\"_CSS-card\" @click=\"Aeppic.navigateTo(document.id)\" :class=\"{ '_CSS-card--finished': data.erledigt, '_CSS-card--overdue': controller.isOverdue }\">\n\t<div class=\"_CSS-card__primary\">\n    <div class=\"_CSS-card-intro\">\n      <ae-design class=\"_CSS-card-title\" name=\"title\" :document=\"document\"></ae-design>\n\t\t</div>\n    <div class=\"_CSS-card-assignees\" v-if=\"data.verantwortlich && data.verantwortlich.length\">\n\t\t\t<ae-design name=\"avatar--tiny\" :document-id=\"data.verantwortlich[0].id\"></ae-design>\n\t\t\t<ae-design v-if=\"data.verantwortlich.length === 2\" name=\"avatar--tiny\" :document-id=\"data.verantwortlich[1].id\"></ae-design>\n\t\t\t<ae-design v-if=\"data.verantwortlich.length > 2\" name=\"avatar--tiny\" :document-id=\"data.verantwortlich[1].id\" :param-overwrite-display-with=\"'+' + (data.verantwortlich.length - 1)\" :title=\"locals.tooltipWeitereVerantwortliche\"></ae-design>\n\t\t</div>\n\t</div>\n  <!-- <div class=\"_CSS-card__secondary\">\n    {{data.beschreibung}}\n  </div> -->\n\t<div class=\"_CSS-card__tertiary \">\n    <div class=\"_CSS-statistics\">\n      <span v-if=\"data.bis\" title=\"Zu erledigen bis\">{{ Aeppic.DateTime.fromISO(data.bis).toLocaleString(Aeppic.DateTime.DATE_SHORT) }}</span>\n      <span title=\"Anhänge\" v-if=\"data.anhaenge.length\">\n      <ae-icon class=\"far fa-paperclip\"></ae-icon> {{ data.anhaenge.length }}\n      </span>\n    </div>\n\n    <div class=\"_CSS-checkbox-done\" @click.stop=\"data.erledigt = !data.erledigt; save()\">\n      <ae-icon v-show=\"data.erledigt\" class=\"far fa-check\"></ae-icon>\n      <ae-icon v-show=\"!data.erledigt\" class=\"far fa-square\"></ae-icon>\n    </div>\n\n\t\t<!-- <div class=\"_CSS-card-categories\">\n\t\t\t<ae-design class=\"_CSS-card-category\" name=\"icon\" v-for=\"category in data.kategorie\" :document-id=\"category.id\" :key=\"category.id\"></ae-design>\n\t\t</div>\n\t\t<ae-design v-if=\"data.anhaenge && data.anhaenge.length\" name=\"paperclip--small\" :document=\"document\"></ae-design> -->\n\t</div>\n  <div class=\"_CSS-progress-container\">\n    <div v-if=\"controller.progress != null\" :title=\"controller.progress.toFixed() + '%' \" class=\"ae-progress \" :style=\"{ 'padding-left': (controller.progress).toString() + '%' }\" ></div>\n  </div>\n</div>\n","css":"._CSS {\n  --padding: 0.25rem 1rem 0.1rem 0.5rem;\n  flex:1;\n  overflow:auto;\n}\n\n/* ._CSS .ae-progress {\n  background: #045170;\n} */\n\n._CSS-card {\n  display: flex;\n  height: 7rem;\n\n  background-color: white;\n\n  /* border-bottom: 1px solid var(--ae-primary-l1); */\n\n  border-left-style: solid;\n  border-left-width: 2px;\n  border-left-color: lightgrey;\n\n  border-radius: 2px;\n  box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.16), 0 0 1px 0 rgba(0, 0, 0, 0.16);\n\n  flex: 1;\n  margin:0;\n  flex-flow: column;\n  /* justify-content: space-between;\n  align-items: center;\n  overflow: hidden; */\n  cursor: pointer;\n}\n\n._CSS-card--finished ._CSS-card__primary {\n  text-decoration: line-through;\n  opacity: 0.6;\n}\n\n._CSS-card._CSS-card--overdue {\n  border-left-color: #FF7A78 ;\n}\n\n._CSS-card__primary {\n  position: relative;\n\n  display: flex;\n  justify-content: space-between;\n  align-items: flex-start;\n\n  flex: 1;\n  width: 100%;\n  padding: var(--padding);\n  overflow: hidden;\n}\n\n._CSS-card__primary:after {\n    position: absolute;\n    bottom: 0;\n    left: 0;\n    width: 100%;\n    height: 60%;\n    content: \"\";\n    background-image: linear-gradient(180deg,hsla(0,0%,100%,.1) 0,#fff);\n    pointer-events: none;\n}\n\n._CSS-card-intro > *:nth-child(2) {\n  margin-left: 0.1em;\n}\n\n._CSS-card-intro {\n  margin-top: 2px;\n\n  display:flex;\n  flex-direction:row;\n  align-items: center;\n\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n}\n\n._CSS-card-title {\n  white-space: normal;\n  \n}\n\n._CSS-card__secondary {\n  flex: 1;\n  padding: var(--padding);\n  font-size: 0.8em;\n  overflow: auto;\n}\n._CSS-card__tertiary {\n  position: relative;\n  display: flex;\n  font-size: 0.9em;\n  align-items: center;\n  justify-content: space-between;\n\n  background: #EEE;\n\n  padding: var(--padding);\n\n  color: #4e4e4e;\n}\n\n._CSS-card-assignees {\n  display: flex;\n  flex-flow: row;\n}\n\n._CSS-statistics {\n  display: flex;\n}\n\n/* ._CSS-card-categories {\n  display: grid;\n  grid-auto-flow: column;\n  grid-column-gap: 5px; \n} */\n\n\n._CSS .ae-progress, .ae-progress:before {\n  height: 8px;\n}\n\n\n._CSS-checkbox-done:hover {\n  opacity: 0.5;\n}","controller":"class Controller {\n  async init() {\n\n    locals.attachments = []\n\n    locals.tooltipWeitereVerantwortliche = ''\n    locals.tooltipWeitereVerantwortliche = await this.updateWeitereVerantwortliche()\n    \n    await startEditing()\n  }\n\n  get isOverdue() {\n    if (!data.erledigt && data.bis) {\n      return Aeppic.DateTime.local().diff(Aeppic.DateTime.fromISO(data.bis)).as('days') > 0\n    }\n    return false\n  }\n\n  get progress() {\n    let progress = 0\n    if (data.fortschritt) {\n      progress = Number(data.fortschritt)\n    } \n    return progress\n  }\n  \n  async updateWeitereVerantwortliche() {\n    if (!data || !data.verantwortlich || data.verantwortlich.length <= 1) {\n      return ''\n    }\n\n    const others = data.verantwortlich.slice(1)\n    let title = '' \n     \n    for (const other of others) {\n      const va = await Aeppic.get(other)\n      if (va && va.data.name) {\n        if (title.length > 0) {\n          title += '\\n'\n        }\n        title += `${va.data.name}`\n      }  \n    }\n \n    return title\n  }\n}","packages":[]},"locks":[],"created":{"at":"2018-04-18T15:39:48+02:00","by":"","from":"","client":"server"},"modified":{"at":"2020-05-08T08:50:53+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1588927853686,"ct":1524058788939,"a_depth":4,"a":["apps","5acfd7a2-33e4-498a-9150-71e1ab772bfc","20c92864-6a81-4006-96f9-b78f473cd129","3d456c38-6282-416e-8c5e-7d20b0517a6e"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"faae629e-29c7-4954-88dd-e8c072974b0a","v":"a0db2ae7a32237dc","p":"9ae84206-e0bb-4d39-9200-066c2eaf0fe3","f":{"id":"design-form","v":"22a757f630104010","text":"Design"},"data":{"name":"card","template":"<div @click.prevent.stop=\"$emit('selected', document)\" class=\"p-1 border rounded shadow flex flex-col gap-2 items-center\" >\n  <h3 class=\"text-sm font-bold\">Anfrage</h3>\n  <ae-design name=\"thumbnail\" :document=\"document\"\n    class=\"border border-black drop-shadow\"\n  ></ae-design>\n  <ae-design name=\"title\" :document=\"document\"\n    class=\"text-sm text-wrap\"\n    ></ae-design>\n</div>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-07-08T08:11:23+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-07-08T08:27:22+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1721206352359,"ct":1721206352359,"a_depth":4,"a":["apps","deeef973-ce03-4557-bf75-75a059001767","e7de598c-6f5a-4ab4-a33b-213ca86e489d","9ae84206-e0bb-4d39-9200-066c2eaf0fe3"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[],"previous":{"v":"b9088b8783bf9520","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"}},"meta":{"modified":{"at":"2024-07-17T08:52:32+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"36bb0b48-bd58-4502-ad59-461ce22cbae1","v":"230e9921af0fac76","cloneOf":{"id":"c79ed874-98f4-42e0-8f36-5811c62fb3aa","v":"00a080ef57140031","text":"card--draggable"},"originalCloneOf":{"id":"c79ed874-98f4-42e0-8f36-5811c62fb3aa","v":"00a080ef57140031","text":"card--draggable"},"previous":{"v":"initial"},"p":"a04c8913-db48-4e80-b20d-0f3cc17a778c","f":{"id":"design-form","v":"5910dbdd1c0b7469","text":"Design"},"data":{"name":"card--draggable","applies":"","description":"","template":"<ae-design \n          name=\"card--thin,card\"\n          :document=\"document\"\n          :class=\"{ '_CSS-item--hover': locals.hovering }\"\n          v-draggable=\"'move'\"\n          v-drag-group-acceptable=\"['file', 'folder']\"\n          v-drag-group=\"'folder'\"\n          v-drag-item=\"document.id\"\n          v-on-drop=\"(e) => controller.fileOrFolderDropped(document.id, e)\"\n          v-dragover\n          @dnd-dragover--before.native=\"() => locals.hovering = true\"\n          @dnd-dragover--after.native=\"() => locals.hovering = true\"\n          v-dragleave\n          @dnd-dragleave.native=\"locals.hovering = false\"\n          :param-is-selected=\"params.isSelected\"\n          @selected=\"$emit('selected', $event)\" \n></ae-design>\n","css":"._CSS-item--hover:after {\n    content: '';\n    position: absolute;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    right: 0;\n    background: rgba(0,0,0,0.2);\n    border-radius: 3px;\n    margin: 1px;\n}","controller":"class Controller {\n  init () {\n    locals.hovering = false\n  }\n\n  async fileOrFolderDropped(targetDocumentId, sourceDocumentId) {\n    const canEditTarget = await Aeppic.canEdit(targetDocumentId)\n    const canEditSource = await Aeppic.canEdit(sourceDocumentId)\n\n    if (canEditTarget && canEditSource) {\n      Aeppic.move(sourceDocumentId, targetDocumentId)\n    }\n  }\n}","packages":[]},"locks":[],"created":{"at":"2020-06-23T14:54:59+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2020-11-27T14:17:57+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1606486677738,"ct":1592924099000,"a_depth":4,"a":["apps","45ada186-e9fd-451d-9dbd-2defc0b4f86f","4ec6a0e5-cf2d-4095-9b70-2e31a64d5679","a04c8913-db48-4e80-b20d-0f3cc17a778c"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"5547c203-3f58-42b1-9f58-e3a27f1561ea","v":"df7440c3389b78e2","previous":{"v":"initial"},"p":"cb2adf77-7636-41a7-9a16-1610b06fa91e","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"card--draggable","template":"<ae-design \n          name=\"card\"\n          :document=\"document\"\n            v-draggable=\"'move'\"\n            v-drag-group=\"'file'\"\n            v-drag-item=\"document.id\"\n            :params=\"{ ...params, isSelected: params.isSelected }\"\n            @selected=\"$emit('selected', $event)\"\n></ae-design>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-11-03T15:45:17+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-11-03T15:45:51+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1635954351316,"ct":1635954317669,"a_depth":4,"a":["apps","cf914a7f-ff5f-4598-80f1-63c9129e0a71","d69a62e9-a61f-42bf-9ae9-7983b87bf587","cb2adf77-7636-41a7-9a16-1610b06fa91e"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"9bcf6a37-957e-474c-abc2-a7cceb074f70","v":"27b278a6eb57ee84","previous":{"v":"initial"},"p":"6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2","f":{"id":"design-form","v":"5910dbdd1c0b7469","text":"Design"},"data":{"name":"card--draggable","applies":"","description":"","template":"<ae-design \n          name=\"card\"\n          :document=\"document\"\n            v-draggable=\"'move'\"\n            v-drag-group=\"'file'\"\n            v-drag-item=\"document.id\"\n            :param-is-selected=\"params.isSelected\"\n            @selected=\"$emit('selected', $event)\"\n></ae-design>","css":"","controller":"","packages":[]},"locks":[],"created":{"at":"2018-11-13T11:57:40+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2018-12-18T09:06:05+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1545123965425,"ct":1542110260531,"a_depth":4,"a":["apps","3d43a3f5-fea4-488d-9fc1-9dee5e694623","7c30f282-2b84-4976-8735-ba78662ea5e6","6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"c79ed874-98f4-42e0-8f36-5811c62fb3aa","v":"4d562960d2858b6f","previous":{"v":"00a080ef57140031"},"p":"c0574720-6967-4293-94a8-e7b32a40fc6f","f":{"id":"design-form","v":"5910dbdd1c0b7469","text":"Design"},"data":{"name":"card--draggable","applies":"","description":"","template":"<ae-design \n          name=\"card--thin,card\"\n          :document=\"document\"\n          :class=\"{ '_CSS-item--hover': locals.hovering }\"\n          v-draggable=\"'move'\"\n          v-drag-group-acceptable=\"['file', 'folder']\"\n          v-drag-group=\"'folder'\"\n          v-drag-item=\"document.id\"\n          v-on-drop=\"(e) => controller.fileOrFolderDropped(document.id, e)\"\n          v-dragover\n          @dnd-dragover--before.native=\"() => locals.hovering = true\"\n          @dnd-dragover--after.native=\"() => locals.hovering = true\"\n          v-dragleave\n          @dnd-dragleave.native=\"locals.hovering = false\"\n          :param-is-selected=\"params.isSelected\"\n          @selected=\"$emit('selected', $event)\" \n></ae-design>\n","css":"._CSS-item--hover:after {\n    content: '';\n    position: absolute;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    right: 0;\n    background: rgba(0,0,0,0.2);\n    border-radius: 3px;\n    margin: 1px;\n}","controller":"class Controller {\n  init () {\n    locals.hovering = false\n  }\n\n  async fileOrFolderDropped(targetDocumentId, sourceDocumentId) {\n    const canEditTarget = await Aeppic.canEdit(targetDocumentId)\n    const canEditSource = await Aeppic.canEdit(sourceDocumentId)\n\n    if (canEditTarget && canEditSource) {\n      Aeppic.move(sourceDocumentId, targetDocumentId)\n    }\n  }\n}","packages":[]},"locks":[],"created":{"at":"2018-11-13T11:58:01+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2020-11-27T14:17:46+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1606486666533,"ct":1542110281336,"a_depth":4,"a":["apps","3d43a3f5-fea4-488d-9fc1-9dee5e694623","7c30f282-2b84-4976-8735-ba78662ea5e6","c0574720-6967-4293-94a8-e7b32a40fc6f"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"e6a4f086-6cd8-4c9f-bae0-2427faa50c10","v":"3f96b9b15b6537c4","cloneOf":{"id":"9bcf6a37-957e-474c-abc2-a7cceb074f70","v":"27b278a6eb57ee84","text":"card--draggable"},"originalCloneOf":{"id":"9bcf6a37-957e-474c-abc2-a7cceb074f70","v":"27b278a6eb57ee84","text":"card--draggable"},"previous":{"v":"a6e7a2c34edec897"},"p":"dbee6e16-d63a-493c-bba6-505f79918f9f","f":{"id":"design-form","v":"5910dbdd1c0b7469","text":"Design"},"data":{"name":"card--draggable","applies":"","description":"","template":"<ae-design \n          name=\"card\"\n          :document=\"document\"\n            v-draggable=\"'move'\"\n            v-drag-group=\"'file'\"\n            v-drag-item=\"document.id\"\n            :params=\"{ ...params, isSelected: params.isSelected }\"\n            @selected=\"$emit('selected', $event)\"\n></ae-design>","css":"","controller":"","packages":[]},"locks":[],"created":{"at":"2020-06-24T12:54:35+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2020-12-11T10:46:36+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1607683596742,"ct":1593003275133,"a_depth":4,"a":["apps","45ada186-e9fd-451d-9dbd-2defc0b4f86f","4ec6a0e5-cf2d-4095-9b70-2e31a64d5679","dbee6e16-d63a-493c-bba6-505f79918f9f"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"a57b8558-c363-477a-a709-0aad533beb79","v":"70f8359b4592ed7e","cloneOf":{"id":"b0840a9e-b99f-4f2c-87cf-946aa86197a7","v":"eebc4233454b7cb8","text":"card"},"originalCloneOf":{"id":"b0840a9e-b99f-4f2c-87cf-946aa86197a7","v":"eebc4233454b7cb8","text":"card"},"previous":{"v":"11812ed073787992"},"p":"6d164aff-df9b-470d-9632-cfb6f5892509","f":{"id":"design-form","v":"49954170df6a253b","text":"Design"},"data":{"name":"card--interactive","template":"<div class=\"_CSS-container\">\n  <div class=\"_CSS-card\" :class=\"{ '_CSS-card--done': data.read }\"  @xclick=\"controller.showDialog()\">\n    <div class=\"_CSS-header\">\n      <ae-design class=\"_CSS-header__title\" name=\"title\" :document=\"document\"></ae-design>\n      &nbsp;\n      <span>von</span>\n      &nbsp;\n      <ae-design style=\"margin-top: var(--ae-size-1)\" class=\"_CSS-card__who\" name=\"avatar--tiny\" :document=\"data.who || null\"></ae-design>\n      <span>in</span>\n      &nbsp;\n      <ae-design style=\"margin-top: var(--ae-size-1)\" name=\"icon\" :document-id=\"data.app\"></ae-design>\n      <span style=\"flex:1\"></span>\n\n    </div>\n    <div class=\"_CSS-card__content\">\n      <div class=\"bp-card bp-card--bordered _CSS-card__content__card\">\n        <ae-design class=\"_CSS-card__target\" name=\"notification-target-title,notification-title,title\" :document=\"data.document\"></ae-design>\n      </div>\n      <div class=\"_CSS-card__content__editor\" v-if=\"data.content.startsWith('{')\">\n        <ae-control name=\"editor\" :document=\"document\" field-name=\"content\" :readonly=\"true\"></ae-control>\n      </div>\n      <div class=\"_CSS-card__content__text\" v-else-if=\"data.content\">{{ Aeppic.translate(data.content) }}</div>\n      <ae-design class=\"_CSS-card__target\" name=\"notification-content\" :document=\"data.document\"></ae-design>\n    </div>\n\n    <div class=\"_CSS-card__actions\">\n      <div class=\"_CSS-card__when\">\n        {{ Aeppic.DateTime.fromISO(document.created.at).toLocaleString(Aeppic.DateTime.DATETIME_MED) }}\n      </div>\n      <span style=\"flex:1\"></span>\n      <button class=\"ae-button\" @click.stop=\"controller.toggleRead()\">\n        <template v-if=\"data.read\">\n          <ae-icon style=\"color:var(--ae-background-600)\"  class=\"fas fa-envelope-open\"></ae-icon>\n          Ungelesen\n        </template>\n        <template v-else>\n          <ae-icon style=\"color:var(--ae-background-600)\" class=\"fas fa-envelope\"></ae-icon>\n          Gelesen\n        </template>\n      </button>\n      <button class=\"ae-button ae-button--secondary _CSS-button__navigate\" @click=\"$emit('navigate', document)\" :disabled=\"locals.deleted\">\n        Anzeigen\n      </button>\n      <div>\n      </div>\n    </div>\n  </div>\n</div>\n","css":"._CSS-container {\n  --padding: 0.25rem 0.5rem 0.2rem 0.5rem;\n  background-color: var(--ae-ui-card-background);\n  border-radius:  0 0 var(--ae-border-radius) var(--ae-border-radius);\n}\n\n._CSS-card {\n  display: flex;\n  flex-flow: column;\n  padding: var(--padding);\n  border-radius:  0 0 var(--ae-border-radius) var(--ae-border-radius);\n}\n\n._CSS-card__target {\n  xpadding: var(--ae-size-2) 0 0 0;\n  xfont-weight: 700;\n}\n\n._CSS-header {\n  display: flex;\n  align-items: center;\n  xfont-size: var(--ae-font-size-6);\n  color: var(--ae-background-600);\n}\n\n._CSS-header__icons {\n  display: flex;\n  margin-right: 10px;\n}\n\n._CSS-header__title {\n  overflow: hidden;\n  white-space: nowrap;\n  text-overflow: ellipsis;\n}\n\n._CSS-card__who {\n  margin-right: 10px;\n}\n\n._CSS-card__when {\n  color: var(--ae-foreground-l3);\n  font-size: var(--ae-font-size-3); \n}\n\n._CSS-card__actions {\n  display: flex;\n  align-items: baseline;\n}\n\n\n._CSS-card__content__card {\n  display: flex;\n  flex-flow: column;\n  align-items: stretch;\n  margin: var(--ae-space-3) 0; \n}\n\n._CSS-card__content__text {\n  margin: var(--ae-space-3) 0; \n  font-weight: 700;\n  white-space: pre-line;\n}\n\n._CSS-card__content__editor {\n   margin: var(--ae-space-3) 0; \n  font-weight: 700;\n}","controller":"class Controller {\n  async init() {\n    locals.showDialog = false\n    locals.deleted = !(await Aeppic.get(data.document))\n\n    Aeppic.watch(data.document, (doc, reason) => {\n      console.log(doc, reason)\n      locals.deleted = !!reason.deleted\n    })\n\n    await Aeppic.nextRenderPass()\n\n    startEditing()\n  }\n\n  async showDialog() {\n    locals.showDialog = true\n\n    await Aeppic.nextRenderPass()\n    await Aeppic.nextRenderPass()\n\n    $refs.dialog.$emit('show')\n  }\n\n  async toggleRead() {\n    const editable = await Aeppic.edit(document)\n\n    editable.data.read = !!!data.read\n\n    Aeppic.save(editable)\n  }\n}","packages":[],"description":""},"locks":[],"created":{"at":"2019-03-18T14:00:38+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2021-11-09T13:39:28+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1636465168161,"ct":1552917638813,"a_depth":4,"a":["apps","c9b12874-99d0-40e8-86cc-c3fe0477a15a","9b5518e5-c3ea-4446-9dc8-8628d8e8fabe","6d164aff-df9b-470d-9632-cfb6f5892509"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"0d8a218e-0c29-4ba5-a810-4d0a0d4c4ab3","v":"af7d0897234b3a63","previous":{"v":"df4163f29d528ba2"},"p":"3d456c38-6282-416e-8c5e-7d20b0517a6e","f":{"id":"design-form","v":"e3fe9ece11aabc5e","text":"Design"},"data":{"name":"card--sidebar","applies":"","template":"<span v-if=\"data.bis\" class=\"_CSS-date\">{{DateTime.fromISO(data.bis).toLocaleString(DateTime.DATE_SHORT)}}</span>\r\n<span :title=\"data.name\" :class=\"{ '_CSS-text--closed': data.erledigt }\" style=\"flex:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis\" :style=\"{ 'max-width': data.bis ? '200px':'300px'}\">{{data.name}}</span>","css":"._CSS {\r\n  align-items: center;\r\n  display: flex;\r\n  padding: 4px;\r\n  border: 1px solid rgba(0,0,0,0.2);\r\n  margin: 2px;\r\n  border-radius: 2px;\r\n  /* box-shadow: 0px 0px 10px rgba(0,0,0,0.1); */ \r\n  background-color: var(--ae-background);\r\n  color: var(--ae-theme-text-primary);\r\n}\r\n\r\n._CSS:hover {\r\n  background-color: var(--ae-theme-hover-on-background-light);\r\n}\r\n\r\n._CSS-date {\r\n  opacity: 0.8;\r\n  margin-right: 4px;\r\n}\r\n\r\n._CSS-check {\r\n  min-width: 24px;\r\n}\r\n\r\n._CSS-check--open {\r\n  opacity: 0.15;\r\n}\r\n\r\n._CSS-check--done {\r\n  opacity: 1;\r\n  color: var(--ae-primary);\r\n}\r\n\r\n._CSS-text--closed {\r\n  text-decoration: line-through;\r\n}","controller":"","packages":[]},"locks":[],"created":{"at":"2018-01-03T09:05:30+01:00","by":"","from":"","client":"b1889ef4-3f8e-4fd8-9bb5-fde274366974"},"modified":{"at":"2018-12-21T11:01:20+00:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1545390080616,"ct":1514966729092,"a_depth":4,"a":["apps","5acfd7a2-33e4-498a-9150-71e1ab772bfc","20c92864-6a81-4006-96f9-b78f473cd129","3d456c38-6282-416e-8c5e-7d20b0517a6e"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"c6d56bd1-72b4-416c-ab6a-7f3631624fef","v":"c7e67b73d8997e68","previous":{"v":"6873580aca6531f9"},"p":"6157a32a-a989-4798-94d5-2674b1675919","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"card--sidebar","applies":"","template":"<span v-if=\"data.bis\" class=\"_CSS-date\">{{DateTime.fromISO(data.bis).toLocaleString(DateTime.DATE_SHORT)}}</span>\n<span :title=\"data.name\" :class=\"{ '_CSS-text--closed': data.erledigt }\" style=\"flex:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis\" :style=\"{ 'max-width': data.bis ? '200px':'300px'}\">{{data.name}}</span>","css":"._CSS {\n  align-items: center;\n  display: flex;\n  padding: 4px;\n  border: 1px solid rgba(0,0,0,0.2);\n  margin: 2px;\n  border-radius: 2px;\n  /* box-shadow: 0px 0px 10px rgba(0,0,0,0.1); */\n  background-color: var(--ae-background);\n  color: var(--ae-theme-text-primary);\n}\n\n._CSS:hover {\n  background-color: var(--ae-theme-hover-on-background-light);\n}\n\n._CSS-date {\n  opacity: 0.8;\n  margin-right: 4px;\n}\n\n._CSS-check {\n  min-width: 24px;\n}\n\n._CSS-check--open {\n  opacity: 0.15;\n}\n\n._CSS-check--done {\n  opacity: 1;\n  color: var(--ae-primary);\n}\n\n._CSS-text--closed {\n  text-decoration: line-through;\n}","controller":"","packages":[]},"locks":[],"created":{"at":"2018-01-11T16:39:10+01:00","by":"","from":"","client":"server"},"modified":{"at":"2018-12-21T11:04:17+00:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1545390257998,"ct":1515685150503,"a_depth":4,"a":["apps","aed1ba1c-9095-4aca-8176-74a37325f0e5","58cc45fb-3fb3-45e8-b61d-4b89899e357a","6157a32a-a989-4798-94d5-2674b1675919"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"e74eb7fd-2e71-49d4-aab5-a0ad8145518a","v":"1f175279450156bc","previous":{"v":"6546b5d184ab42e1"},"p":"aabed4ee-20ca-4df4-9a78-75a05e97dce9","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"card--small","applies":"","template":"<div class=\"_CSS-card\">\r\n  <ae-design class=\"_CSS-thumbnail\" name=\"thumbnail\" :document=\"document\" :param-click-to-preview=\"true\" :param-preview-format=\"params.previewFormat\"></ae-design>\r\n  <ae-design class=\"_CSS-title\" name=\"title\" :document=\"document\"></ae-design>\r\n</div>\r\n","css":"._CSS {\r\n  display: flex;\r\n}\r\n\r\n._CSS-card {\r\n  flex: 1;\r\n  display: flex;\r\n  flex-direction: column;\r\n\r\n  overflow: hidden;\r\n  xheight: 10rem;\r\n}\r\n\r\n._CSS-title {\r\n  background: rgba(255,255,255,1);\r\n  padding: 8px;\r\n  white-space: nowrap;\r\n  max-width: var(--dbps-thumbnail-width);\r\n  width: 100%;\r\n  text-overflow: ellipsis;\r\n  overflow: hidden;\r\n}\r\n","controller":"class Controller {\n  async init() {\n    locals.thumbnailSrc = ''\n\n    this.videoThumbnail = (await Aeppic.find(`p:\"${document.id}\" f.id:8bf0fb31-716d-4b76-98d8-b7349f1d7529 data.name:thumbnail`))[0]\n\n    if (this.videoThumbnail) {\n      locals.thumbnailSrc = Aeppic.Content.getSrc(this.videoThumbnail, 'file')\n    } else {\n      // TODO: keepAspectRatio based on width or height \n      locals.thumbnailSrc = `${Aeppic.Content.getThumbnailSrc(document, 'datei')}&keepAspectRatio=height`\n    }\n\n  }   \n} ","packages":[]},"locks":[],"created":{"at":"2018-06-04T16:06:12+00:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","from":"","client":"server"},"modified":{"at":"2020-10-13T10:11:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1602583892063,"ct":1528128372664,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","aabed4ee-20ca-4df4-9a78-75a05e97dce9"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"0fff8ab5-ca50-4b91-accf-679fba7ddb47","v":"07f218a66f896e46","previous":{"v":"initial"},"p":"010e3640-1897-4840-bec0-7d0c0f1fc642","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"card--thin","applies":"","template":"<div class=\"_CSS-card\" @click=\"Aeppic.navigateTo(document.id)\">\n  <div class=\"_CSS-title\">\n    <ae-design class=\"_CSS-title_location\" :document-id=\"data.schadensort.id\" name=\"title\"></ae-design>\n    <div class=\"_CSS-title_subtitle\">{{data.hergang}}</div>\n  </div>\n  <ae-design class=\"_CSS-navigation\" :document-id=\"data.schadensort.id\" name=\"navigation-button\"></ae-design>\n</div>","css":"._CSS {\n  margin-bottom: 1rem;\n  height: 4.5rem;\n  display: flex;\n}\n\n._CSS-card {\n  flex: 1;\n  background-color: var(--ae-background);\n  display: flex;\n  flex-flow: row;\n  justify-content: space-between;\n  align-items: center;\n  padding: 1rem;\n  overflow: hidden;\n}\n\n._CSS-title {\n  overflow: hidden;\n}\n\n._CSS-title > * {\n  overflow: hidden;\n  white-space: nowrap;\n  text-overflow: ellipsis;\n}\n\n._CSS-title__subtitle {\n  font-size: 0.9em;\n}\n\n._CSS-title__location {\n  font-weight: bold;\n}\n\n._CSS-navigation {\n  padding-left: 1rem;\n}\n\n","controller":"","packages":[]},"locks":[],"created":{"at":"2018-02-06T09:45:31+01:00","by":"","from":"","client":"server"},"modified":{"at":"2018-12-21T11:06:23+00:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1545390383777,"ct":1517906731482,"a_depth":4,"a":["apps","b791df37-6eef-4a3e-9066-1b79e0bdad31","35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f","010e3640-1897-4840-bec0-7d0c0f1fc642"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"b9f241c2-182d-4395-bc0a-cb190da4ef2d","v":"0d76d0176ac3530c","previous":{"v":"02674dba2ac9ccd8"},"p":"c0574720-6967-4293-94a8-e7b32a40fc6f","f":{"id":"design-form","v":"e3fe9ece11aabc5e","text":"Design"},"data":{"name":"card--thin","applies":"","template":"<!-- :style=\"{ 'border-left-color': data.farbe || 'var(--ae-primary)' }\" -->\r\n<div class=\"_CSS-card\" :class=\"{ '_CSS-card--selected': params.isSelected }\" @click.stop=\"$emit('selected', document)\">\r\n  <!-- <ae-icon class=\"_CSS-lock-icon fa fa-lock\" v-if=\"document.locks.length\"></ae-icon> -->\r\n\t<div class=\"_CSS-content ae-navigatable\">\r\n    <ae-design class=\"_CSS-content__icon\" name=\"icon\" :document=\"document\"></ae-design>\r\n    <ae-design class=\"_CSS-content__title\" name=\"title\" :document=\"document\" style=\"display: inline-block;\"></ae-design>\r\n\t</div>\r\n</div>\r\n","css":"._CSS-card {\r\n  /* border-style: solid;\r\n  border-width: 0 0 0 4px;\r\n  border-radius: 2px;\r\n  border-bottom: 1px solid var(--ae-primary-l1); */\r\n\r\n  border: var(--ae-border-width) solid var(--ae-border-color);\r\n  border-radius: var(--ae-border-radius);\r\n\r\n  position: relative;\r\n}\r\n\r\n._CSS-card--selected {\r\n  border-color: var(--ae-primary-900);\r\n}\r\n\r\n// ._CSS-card--selected:after {\r\n//   content: '';\r\n//   position: absolute;\r\n//   top:0;\r\n//   left:0;\r\n//   right:0;\r\n//   bottom: 0;\r\n//   background: rgba(var(--ae-accent-rgb), 0.25);\r\n// }\r\n\r\n._CSS-content {\r\n  border-radius: var(--ae-border-radius);\r\n  background: var(--ae-ui-card-background);\r\n  display:flex;\r\n  flex-direction: row;\r\n  align-items: center;\r\n  padding: 0.8em;\r\n  cursor: default;\r\n}\r\n\r\n._CSS-content__title {\r\n  margin-left: 8px;\r\n  font-size: 0.9em;\r\n}\r\n\r\n._CSS-lock-icon {\r\n  position: absolute;\r\n  top: 3px;\r\n  right: 3px;\r\n  opacity: 0.3;\r\n}","controller":"","packages":[]},"locks":[],"created":{"at":"2017-12-11T21:40:54+01:00","by":"","from":"","client":"d2d5d062-19bb-4a0c-8649-e0d911626108"},"modified":{"at":"2020-05-11T11:26:26+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1589196386911,"ct":1513024839197,"a_depth":4,"a":["apps","3d43a3f5-fea4-488d-9fc1-9dee5e694623","7c30f282-2b84-4976-8735-ba78662ea5e6","c0574720-6967-4293-94a8-e7b32a40fc6f"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"cb89d638-a991-4340-934a-c6f87dfc878d","v":"6e5fe45ba2f41e10","cloneOf":{"id":"b9f241c2-182d-4395-bc0a-cb190da4ef2d","v":"0d76d0176ac3530c","text":"card--thin"},"originalCloneOf":{"id":"b9f241c2-182d-4395-bc0a-cb190da4ef2d","v":"0d76d0176ac3530c","text":"card--thin"},"previous":{"v":"e1aa44c64eabc56b"},"p":"a04c8913-db48-4e80-b20d-0f3cc17a778c","f":{"id":"design-form","v":"e3fe9ece11aabc5e","text":"Design"},"data":{"name":"card--thin","applies":"","template":"<!-- :style=\"{ 'border-left-color': data.farbe || 'var(--ae-primary)' }\" -->\r\n<div class=\"_CSS-card\" @click.stop=\"$emit('selected', document)\">\r\n\t<div class=\"_CSS-content ae-navigatable\">\r\n    <template v-if=\"data.client && data.client.id\">\r\n      <ae-design class=\"_CSS-content__icon\" name=\"icon\" document-id=\"8fc08287-dbcc-4e41-9d5d-28e4cd828943\"></ae-design>\r\n      <ae-design class=\"_CSS-content__title\" name=\"title\" :document=\"document\" style=\"display: inline-flex;\"></ae-design>\r\n    </template>\r\n    <template v-else-if=\"data.project && data.project.id\">\r\n      <ae-design class=\"_CSS-content__icon\" name=\"icon\" document-id=\"0b6a2b21-9425-466e-9e8d-57ec39cc95e1\"></ae-design>\r\n      <ae-design class=\"_CSS-content__title\" name=\"title\" :document=\"document\" style=\"display: inline-flex;\"></ae-design>\r\n    </template>\r\n    <template v-else>\r\n      <ae-design class=\"_CSS-content__icon\" name=\"icon\" :document=\"document\"></ae-design>\r\n      <ae-design class=\"_CSS-content__title\" name=\"title\" :document=\"document\" style=\"display: inline-flex;\"></ae-design>\r\n    </template>\r\n\t</div>\r\n\r\n  <div class=\"_CSS-lock\" v-if=\"document.locks.length\" title=\"Abgeschlossen\">\r\n    <!-- NOTE: keep div below everything else to make title work -->\r\n    <ae-icon class=\"_CSS-lock-icon fa fa-lock\" v-if=\"document.locks.length\"></ae-icon>\r\n  </div>\r\n</div>\r\n","css":"._CSS-card {\r\n  border: var(--ae-border-width) solid var(--ae-border-color);\r\n  border-radius: var(--ae-border-radius);\r\n\r\n  position: relative;\r\n}\r\n\r\n._CSS-content {\r\n  border-radius: var(--ae-border-radius);\r\n  background: var(--ae-ui-card-background);\r\n  display:flex;\r\n  flex-direction: row;\r\n  align-items: center;\r\n  padding: 0.8em;\r\n  cursor: default;\r\n}\r\n\r\n._CSS-content__title {\r\n  margin-left: 8px;\r\n  font-size: 0.9em;\r\n  min-width: 0;\r\n}\r\n\r\n._CSS-lock {\r\n  position: absolute;\r\n  top: 3px;\r\n  right: 3px;\r\n  opacity: 0.3;\r\n}\r\n","controller":"","packages":[]},"locks":[],"created":{"at":"2020-06-23T14:54:59+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2021-06-15T09:20:44+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1623748844310,"ct":1592924099006,"a_depth":4,"a":["apps","45ada186-e9fd-451d-9dbd-2defc0b4f86f","4ec6a0e5-cf2d-4095-9b70-2e31a64d5679","a04c8913-db48-4e80-b20d-0f3cc17a778c"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"2bad95a0-ced4-48e4-bfd0-8e600f8b82a3","v":"6d84a18b2abcfb5f","cloneOf":{"id":"d49a503f-66fb-4c17-8e60-7b3198c419d5","v":"225f094ecb0552a9","text":"card--vertical"},"originalCloneOf":{"id":"d49a503f-66fb-4c17-8e60-7b3198c419d5","v":"225f094ecb0552a9","text":"card--vertical"},"previous":{"v":"273bb9b335fe6ee1"},"p":"17c3a5d3-90ba-4592-961b-0800873ef9c1","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"card--wide","applies":"","template":"<div class=\"_CSS-container ae-navigatable\" :class=\"{ '_CSS-container--finished': data.erledigt || controller.progress.closed === 100, '_CSS-container--overdue': controller.isOverdue }\">\n  <div class=\"_CSS-card\" @click.stop=\"$emit('selected', document)\">\n    <section xclass=\"_CSS-upper-row\">\n      <div class=\"_CSS-card-title\">\n        {{data.name}}\n      </div>\n\n      <div class=\"_CSS-assignees\">\n        <!-- <span class=\"_CSS-assignees__label\">Zuständige</span> -->\n        <div class=\"_CSS-assignees__avatars\" v-if=\"data.verantwortlich.length\">\n          <ae-design name=\"avatar--tiny\" :document-id=\"data.verantwortlich[0].id\"></ae-design>\n          <ae-design v-if=\"data.verantwortlich.length === 2\" name=\"avatar--tiny\" :document-id=\"data.verantwortlich[1].id\"></ae-design>\n          <ae-design v-if=\"data.verantwortlich.length > 2\" name=\"avatar--tiny\" :document-id=\"data.verantwortlich[1].id\" :param-overwrite-display-with=\"'+' + (data.verantwortlich.length - 1)\" :title=\"locals.tooltipWeitereVerantwortliche\"></ae-design>\n        </div>\n        <!-- <div v-else class=\"_CSS-assignees__placeholder\">\n          Keine Verantwortlichen\n        </div> -->\n      </div>\n    </section>\n    <section style=\"display:flex;justify-content: flex-end;\">\n      <div class=\"_CSS-card__progress\" style=\"flex: 1;\">\n        <div class=\"_CSS-progress__title\">Aufgaben</div>\n          <div class=\"_CSS-progress\" style=\"position:relative; display:flex;\">\n            <div v-if=\"controller.count.closed\" title=\"Erledigte\" class=\"_CSS-progress__value _CSS-progress__closed\" :style=\"{ width: controller.progress.closed + '%' }\">\n              <span>\n              {{ controller.count.closed }}\n              </span>\n            </div>\n            <div v-if=\"controller.count.open\" title=\"Offene\" class=\"_CSS-progress__value _CSS-progress__open\" :style=\"{ width: controller.progress.open + '%' }\">\n              <span>\n              {{ controller.count.open }}\n              </span>\n            </div>\n            <div v-if=\"controller.count.overdue\" title=\"Überfällige\" class=\"_CSS-progress__value _CSS-progress__overdue\" :style=\"{ width: controller.progress.overdue + '%' }\">\n              <span>\n              {{ controller.count.overdue }}\n              </span>\n            </div>\n          </div>\n        </div>\n        <div class=\"_CSS-card__to\">\n          <span class=\"_CSS-to__date\" v-if=\"controller.progress.overdue === 0 && controller.progress.open === 0\">\n            <div class=\"_CSS-to__title\">Erledigt!</div>\n            <ae-icon class=\"fa fa-check _CSS-to__value\"></ae-icon>\n          </span>\n          <span  class=\"_CSS-to__date\" v-else-if=\"data.bis\" :title=\"Aeppic.DateTime.fromISO(data.bis).toLocaleString()\">\n            <div class=\"_CSS-to__title\">Tage übrig</div>\n            <div class=\"_CSS-to__value\" :class=\"{ '_CSS-to__value--overdue': controller.isOverdue, '_CSS-to__value--warning': controller.daysLeft <= 5 && controller.daysLeft >= 0 }\">{{ controller.daysLeft }}</div>\n          </span>\n          <div v-else class=\"_CSS-to__placeholder\">\n            <div class=\"_CSS-to__title\">Fortlaufend</div>\n            <ae-icon class=\"fa fa-infinity _CSS-to__value\"></ae-icon>\n          </div>\n        </div>\n    </section>\n  </div>\n\n  <div class=\"_CSS-card-subprojects\" @click.stop>\n    <div class=\"_CSS-subprojects__button\">\n      <button :disabled=\"params.forceShowDetails\" v-if=\"controller.hasDetails\" class=\"ae-button ae-button--small _CSS-subprojects__button\" @click.stop=\"locals.showDetails = !locals.showDetails\">\n        <ae-icon v-show=\"!controller.showDetails\" class=\"fa fa-chevron-down\"></ae-icon>\n        <ae-icon v-show=\"controller.showDetails\" class=\"fa fa-chevron-up\"></ae-icon>\n        <!-- <span>Details</span> -->\n      </button>\n    </div>\n\n    <div class=\"_CSS-subprojects__content\" v-if=\"controller.showDetails\">\n      <ae-control v-if=\"controller.hasDescription\" :readonly=\"true\" name=\"editor-light\" :document=\"document\" field-name=\"beschreibung\"></ae-control>  \n    \n      <ae-list  list-id=\"8ba2cd16-36fc-49de-8b48-6fcc8f956b76\"\n                :root-document-id=\"document.id\"\n                query-id=\"00144b5c-072e-45a2-960d-d4ba01d59da5\"\n                param-title=\"Unterprojekte\"\n                :param-hide-empty=\"true\" \n                @selected=\"$emit('selected', $event)\"\n      ></ae-list>\n    </div>\n  </div>\n</div>\n\n\n<!-- <div class=\"_CSS-card-categories\">\n    <ae-design class=\"_CSS-card-category\" name=\"icon\" v-for=\"category in data.kategorie\" :document-id=\"category.id\" :key=\"category.id\"></ae-design>\n  </div>\n  <ae-design v-if=\"data.anhaenge && data.anhaenge.length\" name=\"paperclip--small\" :document=\"document\"></ae-design> -->","css":"._CSS-container {\n  --padding: 0.25rem 0.5rem 0.2rem 0.5rem;\n  \n  border-radius: var(--ae-border-radius);\n\n  background-color: var(--ae-ui-card-background);\n\n  display: flex;\n  flex-flow: column;\n\n  border: var(--ae-border-width) solid var(--ae-border-color);\n  border-left-width: var(--ae-border-width-2);\n  border-left-color: hsl(0, 0%, 76%);\n} \n\n._CSS-card {\n  height: 60px;\n  flex: 1;\n  display: flex;\n\n  padding: var(--padding);\n}\n\n\n._CSS section {\n  min-width: 0;\n  flex: 1;\n}\n\n._CSS-card__progress {\n  max-width: 200px;\n}\n\n._CSS-container--overdue {\n  border-left-color: var(--ae-accent-red-300);\n}\n\n._CSS-assignees__avatars {\n  display: flex;\n  flex-flow: row;\n}\n\n._CSS-assignees__placeholder {\n  color:  hsl(0, 0%, 60%);\n  display: flex;\n  font-size: 14px;\n}\n\n._CSS-card-title {\n  overflow: hidden;\n  white-space: nowrap;\n  text-overflow: ellipsis;\n  color: var(--ae-foreground-l1);\n  font-weight: 450;\n}\n\n._CSS-progress {\n  display: flex;\n  position: relative;\n  xborder: var(--ae-border-width) solid var(--ae-border-color);\n  border-radius: var(--ae-border-radius);\n}\n\n._CSS-progress__title {\n  display: flex;\n  justify-content: center;\n  font-size: 14px;\n  height: 20px;\n  color: var(--ae-foreground-l2);\n}\n\n._CSS-progress__value {\n  height: 8px;\n\n  display: flex;\n  justify-content: center;\n  color: var(--ae-foreground-l1);\n}\n\n._CSS-progress__value:first-child {\n  border-top-left-radius: var(--ae-border-radius);\n  border-bottom-left-radius: var(--ae-border-radius);\n}\n._CSS-progress__value:last-child {\n  border-top-right-radius: var(--ae-border-radius);\n  border-bottom-right-radius: var(--ae-border-radius);\n}\n\n._CSS-progress__value > * {\n  padding: 7px;\n}\n\n._CSS-progress__overdue {\n  background: var(--ae-accent-red-400);\n}\n\n\n._CSS-progress__open {\n  background: var(--ae-background-300);\n  xbackground: transparent;\n}\n\n._CSS-progress__closed {\n  background: var(--ae-primary-500);\n  xbackground: var(--ae-accent-green-700);\n}\n\n\n._CSS-card__to {\n  display: flex;\n  margin-left: 20px;\n  width: 75px;\n  justify-content: center;\n}\n\n._CSS-to__date {\n  display: flex;\n  flex-flow: column;\n  align-items: center;\n  /* justify-content: center; */\n}\n\n._CSS-to__placeholder {\n  display: flex;\n  flex-flow: column;\n  align-items: center;\n  /* justify-content: center; */\n}\n\n._CSS-to__title {\n  font-size: 14px;\n  height: 20px;\n  color: var(--ae-foreground-l2);\n\n}\n\n._CSS-to__value {\n  color: var(--ae-foreground-l2);\n  margin-top: 7px;\n}\n._CSS-to__value--overdue {\n  color: var(--ae-accent-red-400);\n  font-weight: 500;\n}\n._CSS-to__value--warning {\n  color: orange;\n  font-weight: 500;\n}\n\n._CSS-card-subprojects {\n  background: var(--ae-background-200);\n  border-radius: 0 0 var(--ae-border-radius) var(--ae-border-radius);\n  min-height: 22px;\n}\n\n._CSS-card-subprojects__button {\n  width: 100%;\n  display: flex;\n}\n\nbutton._CSS-subprojects__button{\n  flex: 1;\n  color: var(--ae-foreground-l2);\n  font-size: var(--ae-font-size-1);\n  width: 99%;\n}\n\n._CSS-subprojects__button:hover:not(:disabled) {\n  color: var(--ae-foreground-l1);\n}\n\n._CSS-subprojects__content {\n  padding: 10px 4px 4px 4px;\n\n  display: flex;\n  flex-flow: column;\n}\n\n._CSS-container--finished {\n  color: var(--ae-background-400);\n   /*background-image: repeating-linear-gradient(-45deg,\n      transparent,\n      transparent 38px,\n      var(--ae-foreground-l4) 20px,\n      var(--ae-foreground-l4) 40px);\n      */\n}\n\n\n/* \n._CSS {\n  --padding: 0.25rem 1rem 0.1rem 0.5rem;\n}\n\n._CSS-card {\n  display: flex;\n  height: 8rem;\n  \n\n  background-color: white;\n\n  border-left-style: solid;\n  border-left-width: 3px;\n  border-left-color: rgb(235, 235, 235);\n\n  border-radius: 2px;\n  box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.16), 0 0 1px 0 rgba(0, 0, 0, 0.16);\n\n  flex: 1;\n  margin:0;\n  flex-flow: column;\n  cursor: pointer;\n  overflow: hidden;\n}\n\n._CSS-card._CSS-card--overdue {\n  border-left-color: #ff5722 ;\n}\n\n._CSS-card--finished {\n  color: #4e4e4e\n}\n\n._CSS-card__primary {\n  display: flex;\n  justify-content: space-between;\n  align-items: flex-start;\n\n  flex: 1;\n\n  padding: var(--padding);\n}\n\n\n._CSS-card-intro {\n  margin: 2px;\n\n  display:flex;\n  flex-direction:row;\n\n  overflow: hidden;\n  word-break: break-all;\n}\n\n._CSS-card-title {\n  overflow: hidden;\n  display: -webkit-box;\n  -webkit-line-clamp: 4;\n  -webkit-box-orient: vertical;\n}\n\n._CSS-card__secondary {\n  padding: var(--padding);\n  font-size: 0.8em;\n  font-style: italic;\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n}\n._CSS-card__tertiary {\n  display: flex;\n  font-size: 0.9em;\n  align-items: center;\n  justify-content: space-between;\n\n  background: #EEE;\n\n  padding: var(--padding);\n\n  color: #4e4e4e;\n}\n\n._CSS-card-assignees {\n  display: flex;\n  flex-flow: row;\n}\n\n._CSS-statistics {\n  display: flex;\n  justify-content: space-between;\n  flex: 1;\n}\n\n\n._CSS-count {\n  padding-left: 0.2em;\n}\n\n\n._CSS .ae-progress, .ae-progress:before {\n  height: 8px;\n}\n\n._CSS-text--finished {\n  text-decoration: line-through;\n  opacity: 0.6;\n}\n\n\n._CSS-popup {\n  position: relative;\n  background: white;\n  padding: 10px;\n  box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.16), 0 0 1px 0 rgba(0, 0, 0, 0.16);\n\n  max-width: 500px;\n  max-height: 200px;\n  overflow: hidden;\n}\n\n\n._CSS-popup:after {\n  position: absolute;\n  bottom: 0;\n  left: 0;\n  width: 100%;\n  height: 60%;\n  content: \"\";\n  background-image: linear-gradient(180deg,hsla(0,0%,100%,.1) 0,white);\n  pointer-events: none;\n} */\n","controller":"class Controller {\n  async init() {\n    locals.showDetails = false\n\n    locals.closedTasks = []\n    locals.openTasks = []\n    locals.overdueTasks = []\n    locals.subprojects = []\n    // locals.openProjects = []\n    // locals.overdueProjects = []\n\n    // TASKS\n    const [ open, closed, overdue ] = await Promise.all([\n      Aeppic.query('c364c57a-150e-44ed-a5e5-9ab3beecf2d9', document.id, { size: 1000 }),\n      Aeppic.query('97052303-1c0d-4f8e-b3ce-01912a62f536', document.id, { size: 1000 }),\n      Aeppic.query('98b88863-e4f7-4dd1-83fb-779df8f5c234', document.id, { size: 1000 })\n    ])\n\n    locals.openTasks = open\n    locals.closedTasks = closed\n    locals.overdueTasks = overdue\n    \n    // Aeppic.subscribeQuery('97052303-1c0d-4f8e-b3ce-01912a62f536', document.id, documents => locals.closedTasks = documents, { size: 500 })\n    // Aeppic.subscribeQuery('c364c57a-150e-44ed-a5e5-9ab3beecf2d9', document.id, documents => locals.openTasks = documents, { size: 500 })\n    // Aeppic.subscribeQuery('98b88863-e4f7-4dd1-83fb-779df8f5c234', document.id, documents => locals.overdueTasks = documents, { size: 500 })\n\n    // PROJECTS\n    Aeppic.subscribeQuery('4d4d84b0-02ac-4ab8-a921-c832910d8c37', document.id, documents => locals.subprojects = documents)\n    // Aeppic.subscribeQuery('cb73486b-3c55-4cc7-b0d8-343045721940', document.id, documents => locals.openProjects = documents)\n    // Aeppic.subscribeQuery('cb3b5949-67be-4cf0-9c4b-649630f366ff', document.id, documents => locals.overdueProjects = documents)\n\n    locals.tooltipWeitereVerantwortliche = ''\n    locals.tooltipWeitereVerantwortliche = await this.updateWeitereVerantwortliche()\n\n    watchParam('forceShowDetails', () => {\n      if (params.forceShowDetails !== true) {\n        locals.showDetails = false\n      }\n    })\n  }\n\n  get showDetails() {\n    return params.forceShowDetails || locals.showDetails\n  }\n\n  get hasDetails() {\n    return this.hasDescription || locals.subprojects.length\n  }\n\n  get hasDescription() {\n    return data.beschreibung.length > 25\n  }\n\n  get daysLeft() {\n    return - Aeppic.DateTime.local().diff(Aeppic.DateTime.fromISO(data.bis)).toFormat('d')\n  }\n\n  get progress() {\n    const all = locals.openTasks.length + locals.closedTasks.length\n\n    if (all === 0) {\n      return {}\n    }\n\n    const percentile = 100 / all\n\n    const open = (locals.openTasks.length - locals.overdueTasks.length) * percentile\n    const overdue = locals.overdueTasks.length * percentile\n    const closed = (all - locals.openTasks.length) * percentile\n\n    return {\n      open,\n      closed,\n      overdue\n    }\n  }\n\n  get count() {\n    const all = locals.openTasks.length + locals.closedTasks.length\n\n    if (all === 0) {\n      return {}\n    }\n\n    const open = locals.openTasks.length - locals.overdueTasks.length\n    const overdue = locals.overdueTasks.length\n    const closed = all - locals.openTasks.length\n\n    return {\n      open,\n      closed,\n      overdue\n    }\n  }\n\n  get isOverdue() {\n    if (!data.erledigt && data.bis) {\n      return Aeppic.DateTime.local().diff(Aeppic.DateTime.fromISO(data.bis)).as('days') > 0\n    }\n    return false\n  }\n\n  async updateWeitereVerantwortliche() {\n    if (!data || !data.verantwortlich || data.verantwortlich.length <= 1) {\n      // console.log(data) \n      return ''\n    }\n\n    const others = data.verantwortlich.slice(1)\n    let title = '' \n     \n    for (const other of others) {\n      const va = await Aeppic.get(other)\n      if (va && va.data.name) {\n        if (title.length > 0) {\n          title += '\\n'\n        }\n        title += `${va.data.name}`\n      }  \n    }\n \n    return title\n  }\n}","packages":[]},"locks":[],"created":{"at":"2018-11-24T15:20:25+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2020-06-23T14:36:40+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1592923000239,"ct":1543072825187,"a_depth":4,"a":["apps","5acfd7a2-33e4-498a-9150-71e1ab772bfc","20c92864-6a81-4006-96f9-b78f473cd129","17c3a5d3-90ba-4592-961b-0800873ef9c1"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"565a6e63-077b-4d4d-831f-edd2468c804f","v":"878a9e224768fe8e","previous":{"v":"bde068e62117680d"},"p":"4551c597-7595-4858-8b7f-207a7fb15b3e","f":{"id":"design-form","v":"bcdfee0bbf32737b","text":"Design"},"data":{"name":"card--wide","template":"<header class=\"_CSS-header\">\n  <div class=\"_CSS-title\">\n    <ae-icon class=\"fa fa-users\" style=\"margin-right: 8px;\"></ae-icon>\n    {{ data.name }}\n    ({{ DateTime.fromISO(document.created.at).toLocaleString(DateTime.DATE_MED) }})\n    </div>\n  <div>\n    <!-- <div class=\"dbps-button\" @click=\"Aeppic.navigateTo(document.id)\">\n      Zum Board\n      <ae-icon class=\"fa fa-angle-right fa-2x\"></ae-icon>\n    </div> -->\n  </div>\n</header>\n\n\n<div class=\"_CSS-shares\">\n  <div class=\"_CSS-subtitle\">Einladungslinks</div>\n    <ae-layout  layout-id=\"73bda69b-6e1c-415f-bb46-3613e6aa6e3f\"\n                :param-document=\"document\"\n                :param-readonly=\"params.readonly\"\n                :param-target-info=\"document.id\" \n                :param-target-id=\"document.p\"\n                param-backing-account-id=\"38da686b-7aa6-408d-915a-41a8e45494c8\"\n                param-share-prefix=\"casting\"\n                class=\"_CSS-share\"\n                param-label-new=\"Neuen eCasting Link erstellen\"\n                :param-filters=\"locals.movies\"\n    ></ae-layout>\n</div>\n\n<!-- <div>\n  <button class=\"dbps-button\" @click=\"$refs.internalApplicationDialog.$emit('show')\">\n    <ae-icon class=\"fa fa-question-square fa-2x\"></ae-icon>\n    open internalApplicationDialog\n  </button>\n</div> -->\n\n\n<div class=\"_CSS-subtitle\">Bewerbungen</div>\n\n<div class=\"_CSS-row\">\n  <div></div>\n  <div class=\"_CSS-days\">\n    <div v-for=\"day in 3\" class=\"_CSS-day\" :style=\"{ 'background': controller.background(day) }\" v-if=\"day <= locals.maxBackwardsDays\">\n      <template v-if=\"day === 1\">Heute</template>\n      <template v-else>{{ DateTime.local().plus({ days: -day + 1 }).toFormat('dd.MM.') }}</template>\n    </div>\n    <div class=\"_CSS-day\">\n      <!-- bis {{ DateTime.local().plus({ days: -7 }).toFormat('dd.M.') }} -->\n      Alle\n    </div>\n  </div>\n</div>\n\n<div class=\"_CSS-row\">\n  <div>Bewerbungen (alle Rollen)</div>\n  <div class=\"_CSS-days\">\n    <div v-for=\"day in 3\" class=\"_CSS-day-alike\" v-if=\"day <= locals.maxBackwardsDays\">\n      {{ locals.applicationsPerDay[day] }}\n    </div>\n    <div class=\"_CSS-day-alike\">\n      {{ locals.applications.length }}\n    </div>\n  </div>\n</div>\n\n<div class=\"_CSS-row\">\n  <template v-for=\"(count, roleId) of locals.applicationsByRoles\">\n    <div>Bewerbungen <ae-design name=\"title\" :document-id=\"roleId\"></ae-design></div>\n    <div class=\"_CSS-days\">\n      <div v-for=\"day in 3\" class=\"_CSS-day-alike\" v-if=\"day <= locals.maxBackwardsDays\">\n        {{ locals.applicationsPerDayPerRole[day][roleId] || '-' }}\n      </div>\n      <div class=\"_CSS-day-alike\">\n        {{ count }}\n      </div>\n\n    </div>\n  </template>\n</div>\n\n<div class=\"_CSS-subtitle\">Weitere Aktionen</div>\n<div>\n  <a class=\"dbps-button\" :href=\"'/casting-internal/' + document.id\" target=\"_blank\">\n    <ae-icon class=\"fa fa-user\" style=\"margin-right: 0.5rem;\"></ae-icon>\n    Bewerbung im Auftrag durchführen\n  </a>\n</div>\n\n\n\n<!-- <ae-layout  ref=\"internalApplicationDialog\"\n            layout-id=\"5dd6b864-5a72-432e-abe4-4cb6f5d7f630\"\n            :param-page-document-id=\"document.id\"\n>\n</ae-layout> -->\n","css":"._CSS {\n  background: white;\n\n  display: grid;\n  grid-template-columns: 1fr;\n  padding: 1rem;\n}\n\n._CSS-row {\n  display: grid;\n  grid-template-columns: 15rem auto;\n  align-items: center;\n}\n\n._CSS-shares {\n  margin: 1rem 0;\n}\n\n._CSS-days {\n  display: flex;\n  margin-left: 1rem;\n}\n\n._CSS-day-alike+._CSS-day-alike,\n._CSS-day+._CSS-day {\n  margin-left: 0.5rem;\n}\n\n._CSS-day-alike {\n  width: 4.5rem;\n  height: 4.5rem;\n\n  display: flex;\n  justify-content: center;\n  align-items: center;\n}\n\n._CSS-day {\n  width: 4.5rem;\n  height: 4.5rem;\n  border: 1px solid #2a47ab;\n  border-radius: 50%;\n\n  background: linear-gradient(transparent 0%, #2a47ab);\n\n  display: flex;\n  justify-content: center;\n  align-items: center;\n}\n\n._CSS-header {\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n  margin-bottom: 1rem;\n}\n\n._CSS-title {\n  font-weight: bold;\n  text-transform: uppercase;\n  font-size: 1.5rem;\n}\n\n._CSS-subtitle {\n  font-weight: bold;\n  text-transform: uppercase;\n  margin: 1em 0;\n}","controller":"class Controller {\n  async init () {\n    locals.maxBackwardsDays = Aeppic.DateTime.fromISO(document.created.at).diffNow().negate().as('days').toFixed(0) + 1\n \n    locals.applications = []\n    locals.applicationsPerDay = {\n      1: 0,\n      2: 0,\n      3: 0\n    }\n    locals.appplicationsPerRole = {}\n    locals.applicationsPerDayPerRole = {\n      1: 0,\n      2: 0,\n      3: 0\n    }\n    \n    locals.movies = []\n\n    const applicationFolderResult = await Aeppic.find(`p:${document.id} f.id:9c63f632-9e40-4abb-aa1a-f4a02110a97f`)\n    const applicationFolder = applicationFolderResult[0]\n\n    locals.applications = await Aeppic.find(`p:${applicationFolder.id} f.id:275b807f-7dbb-4351-b731-669e275fa97d`)\n    locals.applicationsByRoles = this.calculateRoles(locals.applications)\n    // FIXME: use now-1d/d\n    const applicationsToday = await Aeppic.find(`p:${applicationFolder.id} f.id:275b807f-7dbb-4351-b731-669e275fa97d created.at: [now-1d TO now]`)\n    const applicationsMinus1 = await Aeppic.find(`p:${applicationFolder.id} f.id:275b807f-7dbb-4351-b731-669e275fa97d created.at: [now-2d TO now-1d]`)\n    const applicationsMinus2 = await Aeppic.find(`p:${applicationFolder.id} f.id:275b807f-7dbb-4351-b731-669e275fa97d created.at: [now-3d TO now-2d]`)\n\n\n    locals.applicationsPerDay = {\n      1 :applicationsToday.length,\n      2 :applicationsMinus1.length,\n      3 :applicationsMinus2.length\n    }\n\n    locals.applicationsPerDayPerRole = {\n      1: this.calculateRoles(applicationsToday),\n      2: this.calculateRoles(applicationsMinus1),\n      3: this.calculateRoles(applicationsMinus2),\n    }\n\n    // locals.applicationsLastWeek = await Aeppic.find(`p:${applicationFolder.id} f.id:275b807f-7dbb-4351-b731-669e275fa97d created.at: [now-8d TO now]`)\n    this.subscribeMovies()\n  }\n\n  subscribeMovies() {\n    Aeppic.subscribe(`p:${document.p} f.id:24730991-d920-4a1e-8041-6a9dc6c0ffc1`, movies => locals.movies = movies)\n  }\n\n  background(day) {\n    const value = ((100 / locals.applications.length) * locals.applicationsPerDay[day]).toFixed(0)\n    // console.log('day', day, value)\n    return  `linear-gradient(360deg, #2a47ab, transparent ${value}%)`\n  }\n\n  calculateRoles(applications) {\n    const applicationsByRoles = {}\n\n    for (const application of applications) {\n      for(const role of application.data.roles) {\n        if (!applicationsByRoles[role.id]) {\n          applicationsByRoles[role.id] = 1\n        } else {\n          applicationsByRoles[role.id] += 1\n        }\n      }\n    }\n\n    return applicationsByRoles\n  }\n}\n\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2018-06-18T11:25:22+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2020-10-13T10:11:31+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1602583891691,"ct":1602583891690,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","4551c597-7595-4858-8b7f-207a7fb15b3e"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"feea33ee-c35f-4553-bfca-4a1800138b73","v":"91e720638826d679","previous":{"v":"0f6773de49e299a4"},"p":"24730991-d920-4a1e-8041-6a9dc6c0ffc1","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"card--wide","applies":"","template":"<div class=\"_CSS-card\">\n  <div class=\"_CSS-card__header\" v-if=\"params.deadline\" title=\"Deadline\" style=\"color: red;\">\n    <span v-translate=\"'deadline'\" style=\"margin-right: 1ch;\">Deadline</span>\n    {{ DateTime.fromISO(params.deadline).toLocaleString(DateTime.DATE_MED) }}\n  </div>\n\n  <div class=\"_CSS-card__body\">\n    <h2><ae-design name=\"title\" :document=\"document\"></ae-design></h2>\n    <ae-design name=\"files\" :document=\"document\"></ae-design>\n    <div class=\"_CSS-roles\">\n      <div v-for=\"role in data.roles\" class=\"_CSS-role\">\n        <ae-design name=\"title\" :document-id=\"role.id\"></ae-design>\n        <button class=\"_CSS-button-info\" @click.stop=\"locals.roleInDialog = role;$refs.roleDialog.show()\" v-translate=\"'more'\">mehr</button>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"_CSS-card__footer\">\n    <button v-if=\"!params.closed\" class=\"_CSS-button-apply\" @click.stop=\"$emit('selected-movie', document)\" v-translate=\"'application:apply'\">Bewerben</button>\n    <button v-else class=\"_CSS-button-apply _CSS-button-apply--closed\" v-translate=\"'application:apply-closed'\">Bewerbung nicht mehr möglich</button>\n  </div>\n</div>\n\n\n<ae-dialog ref=\"roleDialog\" :full-screen=\"true\">\n  <div slot=\"header\" class=\"_CSS-dialog__header\" slot-scope=\"scope\">\n    <div class=\"bp-button\" @click=\"scope.close()\">\n      <ae-icon class=\"fa fa-angle-left\"></ae-icon>\n    </div>\n    <ae-design name=\"title\" :document=\"locals.roleInDialog\"></ae-design>\n    <div></div>\n  </div>\n  <div class=\"_CSS-dialog__body\" slot=\"body\">\n    <ae-design name=\"description\" :document=\"locals.roleInDialog\"></ae-design>\n  </div> \n</ae-dialog>","css":"._CSS {\n  flex: 1;\n  display: flex;\n}\n\n._CSS-card {\n  flex: 1;\n  display: flex;\n  flex-direction: column;\n\n  overflow: hidden;\n}\n\n._CSS-card__header { \n  border-radius: 8px 8px 0 0;\n  background: rgba(255,255,255,0.7);\n  display: flex;\n  justify-content: center;\n  max-width: max-content;\n  padding: 0.6em 2em;\n  font-weight: bold;\n  text-transform: uppercase;\n}\n\n._CSS-card__body {\n  background: rgba(255,255,255,0.7);\n  display: flex;\n  flex-flow: column;\n  border-radius: 0 8px 0 0;\n  padding: 8px;\n}\n\n._CSS-card__footer {\n  background: rgba(255,255,255,0.7);\n  display: flex;\n  justify-content: center;\n  border-radius: 0 0 8px 8px;\n  padding: 8px;\n}\n\n._CSS-button-info {\n  background: transparent;\n  padding: 0.5em 2em;\n  border: 1px solid black;\n  border-radius: 24px;\n}\n\n._CSS-button-apply {\n  background: gold;\n  padding: 1em 2em;\n  border: none;\n  flex: 1;\n  text-transform: uppercase;\n  font-size: 1.1em;\n}\n\n._CSS-button-apply._CSS-button-apply--closed {\n  opacity: 0.6;\n  cursor: not-allowed;\n}\n\n._CSS-role {\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n  background: rgba(255,255,255,1);\n  padding: 0.5em 1rem;\n}\n\n._CSS-dialog__body {\n  padding: 1em;\n}\n\n._CSS-dialog__header {\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n}\n\n","controller":"","packages":[]},"locks":[],"created":{"at":"2018-05-25T10:46:59+00:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","from":"","client":"server"},"modified":{"at":"2020-10-13T10:11:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1602583892177,"ct":1527245219319,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","24730991-d920-4a1e-8041-6a9dc6c0ffc1"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"ce178ce6-f9ee-46bc-82e6-8fbee0a0167f","v":"045739ae62588490","previous":{"v":"bb6c2e6ee1c42dcf"},"p":"275b807f-7dbb-4351-b731-669e275fa97d","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"card-preselection--interactive","applies":"","template":"<div  class=\"_CSS-card\"\n      :class=\"{ '_CSS-card--highlight': locals.highlight }\"\n      @mouseenter=\"locals.hovering = true\"\n      @mouseleave=\"locals.hovering = false\"\n      >\n  \n  <ae-design class=\"_CSS-primary _CSS-picture\" :document=\"document\" name=\"index-picture-thumbnail\"></ae-design>\n\n  <div class=\"_CSS-infobar\">\n    <ae-design name=\"title\" :document=\"document\"></ae-design>\n    <ae-control class=\"_CSS-infobar__rating\" name=\"icon-rating\" :document=\"document\" field-name=\"rating\" :param-auto-save=\"true\"></ae-control>\n  </div>\n\n  <div class=\"_CSS-container--hovered\" v-show=\"locals.hovering\" @click=\"$refs.playback.$emit('show')\">\n    <div class=\"_CSS-primary _CSS-actions\">\n      <div style=\"overflow-y:auto;overflow-x: hidden;\">\n        <ae-design name=\"info-line--movie\" :document=\"document\"></ae-design>\n        <ae-design name=\"info-line--roles\" :document=\"document\"></ae-design>\n      </div>\n      <div class=\"_CSS-action _CSS-action--primary\">\n        <ae-icon class=\"dbps-button fa fa-eye fa-4x\"></ae-icon>\n      </div>\n      <div class=\"_CSS-actions--secondary\">\n        <ae-layout  layout-id=\"7be86ea7-1897-4343-8dd3-56ba86e8f14e\"\n                    class=\"_CSS-action\"\n                    :param-model-id=\"document.id\"\n                    :param-project-id=\"locals.project && locals.project.id\"\n                    style=\"font-size: 2rem;\"\n        ></ae-layout>\n      </div>\n    </div>\n\n  </div>\n</div>\n\n<ae-layout  ref=\"playback\"\n            layout-id=\"af5121f9-0618-45de-98fd-046a6df5a9a8\"\n            :param-document=\"document\"\n            param-field-name=\"files\"\n            :param-highlight-starting-date=\"params.highlightStartingDate\"\n            :param-show-project-related-model-data=\"params.showProjectRelatedModelData\"\n            :param-project-id=\"locals.project && locals.project.id\"\n></ae-layout>\n","css":"/* PAGE */\n._CSS ._CSS-actions {\n  display: flex;\n  flex-flow: column;\n  align-items: center;\n\n  padding: 8px;\n}\n\n/* CARD */\n\n._CSS-card {\n  display: flex;\n  justify-content: center;\n  flex-flow: column;\n\n  background: rgba(255,255,255,0.3);\n  height: calc(var(--dbps-thumbnail-height) + 64px);\n  width: var(--dbps-thumbnail-width);\n\n  position: relative;\n}\n\n._CSS-card--highlight ._CSS-infobar:before {\n  content: '';\n  position: absolute;\n  top: 0;\n  bottom: 0;\n  left: 0;\n  right: 0;\n  border: 5px solid green;\n}\n\n._CSS-primary {\n  flex: 1;\n}\n\n._CSS-picture {\n  display: flex;\n}\n\n._CSS-infobar {\n  position: relative;\n  height: 64px;\n  width: 100%;\n  display: flex;\n  justify-content: space-around;\n  align-items: center;\n  flex-flow: column;\n  padding: 0 0.2em;\n  overflow: hidden;\n  background: rgba(255,255,255,0.4);\n  color: black;\n}\n\n._CSS-infobar__rating {\n  font-size: 1.5em;\n}\n\n._CSS-action {\n  cursor: default;\n  color: rgb(206, 204, 204);\n  display: flex;\n  justify-content: center;\n  align-items: center;\n}\n\n._CSS-action~._CSS-action {\n  margin-top: 8px;\n}\n\n/* ._CSS-action:hover {\n  color: var(--dbps-theme-text-icon-highlight-on-primary-dark);\n} */\n\n/* CARD--hovered */\n\n._CSS-infobar__primary-action {\n  flex: 1;\n  display: flex;\n  justify-content: center;\n}\n\n._CSS-container--hovered {\n  position: absolute;\n  top: 0;\n  bottom: 64px;\n  width: 100%;\n  background: rgba(255,255,255,0.8);\n\n  display: flex;\n  justify-content: center;\n  flex-flow: column;\n\n  color: black;\n}\n\n._CSS-container--hovered ._CSS-infobar {\n  background: transparent;\n  color: black;\n}\n\n._CSS-action--primary {\n  flex: 1;\n}\n\n._CSS-actions--secondary {\n  height: 4rem;\n  display: flex;\n  justify-content: center;\n  flex-flow: column;\n  font-size: 1.2rem;\n}\n\n","controller":"class Controller {\n  async init() {\n    locals.hovering = false\n    locals.indexPictureSrc = ''\n    locals.project = null\n\n    this.onUpdate()\n\n    await Aeppic.nextRenderPass()\n    startEditing()\n\n    locals.highlight = this._highlightAsNewApplication()\n\n    locals.project = await Aeppic.get(document.a.slice(-3)[0])\n    \n\n    watchParam('hightlightStartingDate', () => {\n      locals.highlight = this._highlightAsNewApplication()\n    })\n  }\n\n  _highlightAsNewApplication() {\n    console.log(params)\n    if (!params.highlightStartingDate) {\n      return false\n    }\n\n    const startingDateTime = Aeppic.DateTime.fromISO(params.highlightStartingDate)\n    const createdAsDateTime = Aeppic.DateTime.fromISO(document.created.at)\n\n    const diff = createdAsDateTime.diff(startingDateTime)\n\n    return diff.milliseconds > 0\n  }\n\n  async onUpdate() {\n   const src = await this.getIndexPictureSrc() \n\n   if (src) {\n     locals.indexPictureSrc = src\n   } else {\n      const fallbackImage = await Aeppic.get('be3d0b0b-cf9a-40a2-822b-7d93a7427701')\n      locals.indexPictureSrc = Aeppic.Content.getSrc(fallbackImage, 'file')\n   }\n  }\n\n  async getIndexPictureSrc() {\n    if (!data.files.length) {\n      return null\n    }\n\n    const indexPicture = await Aeppic.get(data.files[0])\n    if (!indexPicture) {\n      return null\n    }\n\n    if (indexPicture.data.datei.type.startsWith('video/')) {\n      return null\n    }\n\n    return `${Aeppic.Content.getThumbnailSrc(indexPicture, 'datei')}&keepAspectRatio=height`\n  }\n\n\n  get canPreview() {\n    if (!data.datei || !data.datei.type) {\n      return\n    }\n\n    return data.datei.type.startsWith('image/')\n  }\n}\n","packages":[]},"locks":[],"created":{"at":"2018-05-25T10:47:39+00:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","from":"","client":"server"},"modified":{"at":"2020-10-13T10:11:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1602583892476,"ct":1527245259153,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","275b807f-7dbb-4351-b731-669e275fa97d"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"d3f8cce6-d537-43e3-a410-554f98ffe328","v":"b2c1e35837781c34","previous":{"v":"02090bcd2b215c05"},"p":"6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"card-thumbnail-with-icon.old","applies":"","template":"<div class=\"_CSS-preview\">\n  <div class=\"_CSS-icon-container\" @mouseenter=\"locals.over=true;controller.playGif();\" @mouseleave=\"locals.over=false\">\n    <transition name=\"_CSS-fade\" mode=\"out-in\">\n      <div v-if=\"locals.gif && locals.over\"  class=\"_CSS-thumbnail\" :style=\"{'background-image': 'url(' + Aeppic.Content.getSrc(locals.gif,'file')  + ')' }\">\n      </div> \n      <div v-else-if=\"controller.videoThumbnailSrc\" class=\"_CSS-thumbnail\" :style=\"{'background-image': 'url(' + controller.videoThumbnailSrc  + ')' }\"></div>\n      <template v-else-if=\"controller.thumbnailSrc && controller.checkConvertablity()\">\n        <ae-fetch :url=\"controller.thumbnailSrc\" :document-id=\"document.id\" :xretry-status-codes=\"[404]\"> \n          <template #loading>\n            <div title=\"Vorschau-Bild wird geladen\">\n              <ae-icon class=\"fa fa-spinner-third fa-spin fa-2x\"></ae-icon>\n            </div>\n          </template>\n          <template #error>\n            <div title=\"Vorschau-Bild konnte nicht geladen werden\">\n              <ae-icon class=\"fa fa-file-alt fa-2x\"></ae-icon>\n            </div>\n          </template>\n\n          <div class=\"_CSS-document-thumbnail\" v-if=\"document.data.datei.type && document.data.datei.type.indexOf('application/')===0\" >\n            <div class=\"_CSS-thumbnail\" :style=\"{'background-image': 'url(' + controller.thumbnailSrc  + ')' }\">\n            </div>\n          </div>\n          <div v-else class=\"_CSS-thumbnail\" :style=\"{'background-image': 'url(' + controller.thumbnailSrc  + ')' }\">\n          </div>\n        </ae-fetch>\n\n\n\n      </template>\n      <ae-design style=\"font-size: 2em\" v-else name=\"icon\" :document=\"document\"></ae-design>\n    </transition>\n  </div>\n</div>\n","css":"._CSS {\n  display: flex;\n}\n\n._CSS-preview {\n  background: var(--ae-background-200);\n  flex: 1;\n  background-size: cover;\n  background-repeat: no-repeat;\n  background-position: center;\n\n  display: flex;\n  overflow: hidden;  \n}\n\n._CSS-icon-container {\n  flex: 1;\n  background: var(--ae-background-200);\n\n  display: flex;\n  justify-content: center;\n  align-items: center;\n}\n\n._CSS-thumbnail {\n  width: 128px;\n  height: 6em;\n  flex:1;\n  background-repeat: no-repeat;\n  background-size: cover;\n  background-position: top center;\n  // background-color: rgba(255, 255, 255, 0.5);\n}\n\n\n._CSS-fade-enter-active, ._CSS-fade-leave-active {\n  transition: opacity 0.25s; \n}\n._CSS-fade-enter, ._CSS-fade-leave-to /* .fade-leave-active below version 2.1.8 */ {\n  opacity: 0;\n}\n\n._CSS-document-thumbnail {\n  height: 6em;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  justify-content: center;\n  flex:1;\n  background: var(--ae-background-200);\n}\n\n._CSS-document-thumbnail > ._CSS-thumbnail {\n  flex:1;\n  margin-top: 4px;\n  border-width: 1px 1px 0 1px;\n  border-style: solid;\n  border-color: var(--ae-border-color);\n  //box-shadow: 0px 10px 10px rgba(0, 0, 0, 0.5);\n  box-shadow: var(--ae-shadow-2);\n\n  background-size: cover;\n  background-position: top center;\n}\n","controller":"init() {\r\n  locals.over = false\r\n  this.videoThumbnail = ''\r\n\r\n  this.convertableTypes = [\r\n    'application/pdf'\r\n  ]\r\n\r\n  this.covertableTypesStartingWith = [\r\n    'image/',\r\n    'application/vnd.oasis.opendocument'\r\n  ]\r\n\r\n  this.convertableTypesIncluding = [\r\n    'word',\r\n    'spreadsheet',\r\n    'powerpoint',\r\n    'presentation',\r\n    'mspublisher',\r\n  ]\r\n\r\n  this.retrieveVideoThumbnailAndGif()\r\n\r\n  Aeppic.watchQuery(`p:${document.id}`, ()=> this.retrieveVideoThumbnailAndGif())\r\n\r\n  this.checkConvertablity()\r\n}\r\n\r\ncheckConvertablity() {\r\n  const canConvert = this._isDocumentConvertable\r\n\r\n  if (!this.thumbnailSrc || !canConvert) {\r\n    $emit('cannot-convert')\r\n  }\r\n \r\n  return canConvert\r\n}\r\n\r\nget _isDocumentConvertable() {\r\n  const type = document.data.datei.type\r\n\r\n  if (type == null || typeof type !== 'string') {\r\n    return false\r\n  }\r\n\r\n  for (const t of this.convertableTypes) {\r\n    if (t === type) {\r\n      return true\r\n    }\r\n  }\r\n\r\n  for (const t of this.covertableTypesStartingWith) {\r\n    if (type.startsWith(t)) {\r\n      return true\r\n    }\r\n  }\r\n\r\n  for (const t of this.convertableTypesIncluding) {\r\n    if (type.includes(t)) {\r\n      return true\r\n    }\r\n  }\r\n\r\n  return false\r\n}\r\n\r\nasync retrieveVideoThumbnailAndGif() {\r\n  this.videoThumbnail = (await Aeppic.find(`p:\"${document.id}\" f.id:8bf0fb31-716d-4b76-98d8-b7349f1d7529 data.name:thumbnail`))[0]\r\n  locals.backedGif = (await Aeppic.find(`p:\"${document.id}\" f.id:8bf0fb31-716d-4b76-98d8-b7349f1d7529 data.name:gif`))[0]\r\n}   \r\n\r\n\r\nplayGif() {\r\n  if (!locals.gif && locals.backedGif) {\r\n    const image = new Image()\r\n    image.src = Aeppic.Content.getSrc(locals.backedGif,'file')\r\n    image.onload = () => locals.gif = locals.backedGif\r\n  }\r\n}\r\n\r\nget videoThumbnailSrc() {\r\n  return Aeppic.Content.getSrc(this.videoThumbnail, 'file')\r\n}\r\n\r\nget thumbnailSrc() {\r\n  if (this.videoThumbnail) {\r\n    return\r\n  }\r\n\r\n  return Aeppic.Content.getThumbnailSrc(document, 'datei') \r\n}","packages":[]},"locks":[],"created":{"at":"2018-01-15T11:27:03+01:00","by":"","from":"","client":"server"},"modified":{"at":"2020-05-08T09:23:55+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1588929835657,"ct":1516012023647,"a_depth":4,"a":["apps","3d43a3f5-fea4-488d-9fc1-9dee5e694623","7c30f282-2b84-4976-8735-ba78662ea5e6","6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"f225fb1d-7a45-401f-b692-733f14eff3c6","v":"initial","cloneOf":{"id":"d3f8cce6-d537-43e3-a410-554f98ffe328","v":"b2c1e35837781c34","text":"card-thumbnail-with-icon.old"},"originalCloneOf":{"id":"d3f8cce6-d537-43e3-a410-554f98ffe328","v":"b2c1e35837781c34","text":"card-thumbnail-with-icon.old"},"p":"dbee6e16-d63a-493c-bba6-505f79918f9f","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"card-thumbnail-with-icon.old","applies":"","template":"<div class=\"_CSS-preview\">\n  <div class=\"_CSS-icon-container\" @mouseenter=\"locals.over=true;controller.playGif();\" @mouseleave=\"locals.over=false\">\n    <transition name=\"_CSS-fade\" mode=\"out-in\">\n      <div v-if=\"locals.gif && locals.over\"  class=\"_CSS-thumbnail\" :style=\"{'background-image': 'url(' + Aeppic.Content.getSrc(locals.gif,'file')  + ')' }\">\n      </div> \n      <div v-else-if=\"controller.videoThumbnailSrc\" class=\"_CSS-thumbnail\" :style=\"{'background-image': 'url(' + controller.videoThumbnailSrc  + ')' }\"></div>\n      <template v-else-if=\"controller.thumbnailSrc && controller.checkConvertablity()\">\n        <ae-fetch :url=\"controller.thumbnailSrc\" :document-id=\"document.id\" :xretry-status-codes=\"[404]\"> \n          <template #loading>\n            <div title=\"Vorschau-Bild wird geladen\">\n              <ae-icon class=\"fa fa-spinner-third fa-spin fa-2x\"></ae-icon>\n            </div>\n          </template>\n          <template #error>\n            <div title=\"Vorschau-Bild konnte nicht geladen werden\">\n              <ae-icon class=\"fa fa-file-alt fa-2x\"></ae-icon>\n            </div>\n          </template>\n\n          <div class=\"_CSS-document-thumbnail\" v-if=\"document.data.datei.type && document.data.datei.type.indexOf('application/')===0\" >\n            <div class=\"_CSS-thumbnail\" :style=\"{'background-image': 'url(' + controller.thumbnailSrc  + ')' }\">\n            </div>\n          </div>\n          <div v-else class=\"_CSS-thumbnail\" :style=\"{'background-image': 'url(' + controller.thumbnailSrc  + ')' }\">\n          </div>\n        </ae-fetch>\n\n\n\n      </template>\n      <ae-design style=\"font-size: 2em\" v-else name=\"icon\" :document=\"document\"></ae-design>\n    </transition>\n  </div>\n</div>\n","css":"._CSS {\n  display: flex;\n}\n\n._CSS-preview {\n  background: var(--ae-background-200);\n  flex: 1;\n  background-size: cover;\n  background-repeat: no-repeat;\n  background-position: center;\n\n  display: flex;\n  overflow: hidden;  \n}\n\n._CSS-icon-container {\n  flex: 1;\n  background: var(--ae-background-200);\n\n  display: flex;\n  justify-content: center;\n  align-items: center;\n}\n\n._CSS-thumbnail {\n  width: 128px;\n  height: 6em;\n  flex:1;\n  background-repeat: no-repeat;\n  background-size: cover;\n  background-position: top center;\n  // background-color: rgba(255, 255, 255, 0.5);\n}\n\n\n._CSS-fade-enter-active, ._CSS-fade-leave-active {\n  transition: opacity 0.25s; \n}\n._CSS-fade-enter, ._CSS-fade-leave-to /* .fade-leave-active below version 2.1.8 */ {\n  opacity: 0;\n}\n\n._CSS-document-thumbnail {\n  height: 6em;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  justify-content: center;\n  flex:1;\n  background: var(--ae-background-200);\n}\n\n._CSS-document-thumbnail > ._CSS-thumbnail {\n  flex:1;\n  margin-top: 4px;\n  border-width: 1px 1px 0 1px;\n  border-style: solid;\n  border-color: var(--ae-border-color);\n  //box-shadow: 0px 10px 10px rgba(0, 0, 0, 0.5);\n  box-shadow: var(--ae-shadow-2);\n\n  background-size: cover;\n  background-position: top center;\n}\n","controller":"init() {\r\n  locals.over = false\r\n  this.videoThumbnail = ''\r\n\r\n  this.convertableTypes = [\r\n    'application/pdf'\r\n  ]\r\n\r\n  this.covertableTypesStartingWith = [\r\n    'image/',\r\n    'application/vnd.oasis.opendocument'\r\n  ]\r\n\r\n  this.convertableTypesIncluding = [\r\n    'word',\r\n    'spreadsheet',\r\n    'powerpoint',\r\n    'presentation',\r\n    'mspublisher',\r\n  ]\r\n\r\n  this.retrieveVideoThumbnailAndGif()\r\n\r\n  Aeppic.watchQuery(`p:${document.id}`, ()=> this.retrieveVideoThumbnailAndGif())\r\n\r\n  this.checkConvertablity()\r\n}\r\n\r\ncheckConvertablity() {\r\n  const canConvert = this._isDocumentConvertable\r\n\r\n  if (!this.thumbnailSrc || !canConvert) {\r\n    $emit('cannot-convert')\r\n  }\r\n \r\n  return canConvert\r\n}\r\n\r\nget _isDocumentConvertable() {\r\n  const type = document.data.datei.type\r\n\r\n  if (type == null || typeof type !== 'string') {\r\n    return false\r\n  }\r\n\r\n  for (const t of this.convertableTypes) {\r\n    if (t === type) {\r\n      return true\r\n    }\r\n  }\r\n\r\n  for (const t of this.covertableTypesStartingWith) {\r\n    if (type.startsWith(t)) {\r\n      return true\r\n    }\r\n  }\r\n\r\n  for (const t of this.convertableTypesIncluding) {\r\n    if (type.includes(t)) {\r\n      return true\r\n    }\r\n  }\r\n\r\n  return false\r\n}\r\n\r\nasync retrieveVideoThumbnailAndGif() {\r\n  this.videoThumbnail = (await Aeppic.find(`p:\"${document.id}\" f.id:8bf0fb31-716d-4b76-98d8-b7349f1d7529 data.name:thumbnail`))[0]\r\n  locals.backedGif = (await Aeppic.find(`p:\"${document.id}\" f.id:8bf0fb31-716d-4b76-98d8-b7349f1d7529 data.name:gif`))[0]\r\n}   \r\n\r\n\r\nplayGif() {\r\n  if (!locals.gif && locals.backedGif) {\r\n    const image = new Image()\r\n    image.src = Aeppic.Content.getSrc(locals.backedGif,'file')\r\n    image.onload = () => locals.gif = locals.backedGif\r\n  }\r\n}\r\n\r\nget videoThumbnailSrc() {\r\n  return Aeppic.Content.getSrc(this.videoThumbnail, 'file')\r\n}\r\n\r\nget thumbnailSrc() {\r\n  if (this.videoThumbnail) {\r\n    return\r\n  }\r\n\r\n  return Aeppic.Content.getThumbnailSrc(document, 'datei') \r\n}","packages":[]},"locks":[],"created":{"at":"2020-06-24T12:54:35+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2020-06-24T12:54:35+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1593003275137,"ct":1593003275137,"a_depth":4,"a":["apps","45ada186-e9fd-451d-9dbd-2defc0b4f86f","4ec6a0e5-cf2d-4095-9b70-2e31a64d5679","dbee6e16-d63a-493c-bba6-505f79918f9f"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"77b473df-1888-4cbc-b3e4-5a405f947ff5","v":"9828fa7c65e34c7f","previous":{"v":"5f38b8ea9539df33"},"p":"94886126-c88d-4ea0-b088-8ea5ad155b08","f":{"id":"design-form","v":"0061789efb5c5c29","text":"Design"},"data":{"name":"card-title","template":"<div class=\"_CSS-container\" :class=\"{ '_CSS-container--done': data.erledigt }\">\n  <button :disabled=\"!data.versendet\" class=\"ae-button ae-button--small\" style=\"padding: 0; margin-right:var(--ae-space-3)\" @click.stop=\"$refs.doneCommand.$emit('force-show', '44e1c81f-8d3d-4a09-b035-85dd85727b75')\">\n    <ae-icon v-if=\"data.erledigt\" class=\"fa fa-check-square\"></ae-icon>\n    <ae-icon v-else class=\"far fa-square\"></ae-icon>\n\n    <ae-layout layout-id=\"c80364ed-8a1f-40fa-a169-5cc7b45d4fb4\"\n              :param-document=\"document\"\n              :param-commands=\"['44e1c81f-8d3d-4a09-b035-85dd85727b75']\"\n              v-show=\"false\"\n              ref=\"doneCommand\"\n    ></ae-layout>\n  </button>\n  <ae-design style=\"width:300px;\" name=\"title\" :document=\"document\"></ae-design>\n\n  <ae-layout layout-id=\"101e5b7e-208a-42e3-951a-ee305efd3758\"\n              xparam-label=\"Aufgaben\"\n              :param-parts=\"locals.parts\"\n              class=\"_CSS-progress\"\n              :param-show-value-label=\"true\"\n  ></ae-layout>\n  <div style=\"flex: 1\"></div>\n  <div class=\"_CSS-reminder\" v-if=\"data.erinnerung && Object.values(data.erinnerung).length\" title=\"Erinnerung nach...\">\n    <ae-icon class=\"fal fa-clock\"  style=\"margin-right: var(--ae-space-1);\"></ae-icon>\n    <ae-control name=\"duration\" :document=\"document\" field-name=\"erinnerung\" :readonly=\"true\"></ae-control>\n  </div>\n  <div v-if=\"data.versendetAm\" style=\"margin-right:var(--ae-space-4);\">\n    {{ Aeppic.DateTime.fromISO(data.versendetAm).toLocaleString(Aeppic.DateTime.DATETIME_SHORT) }}\n  </div>\n  <div :title=\"data.versendet ? 'Versendet': 'Entwurf'\">\n    <ae-icon v-if=\"data.versendet\" class=\"fa fa-envelope\"></ae-icon>\n    <ae-icon v-else class=\"fal fa-envelope-open-text\"></ae-icon>\n  </div>\n\n</div>\n","css":"._CSS-container {\n  display: flex;\n  align-content: center;\n  flex-flow: row wrap;\n  min-height: 30px;\n}\n\n._CSS-container--done {\n  text-decoration: line-through;\n  opacity: var(--ae-opacity-1);\n}\n\n._CSS-reminder {\n   margin-right: var(--ae-space-4);\n   display: flex;\n   align-items: center;\n}\n\n._CSS-progress {\n  width: 20%;\n}","controller":"class Controller {\n  async init() {\n    locals.parts = []\n\n    this.updateStats(document)\n\n    Aeppic.watch(document, doc => this.updateStats(doc))\n  }\n\n  updateStats(doc) {\n    const closed = doc.data.lesebestaetigungenGelesen\n    const all  = doc.data.lesebestaetigungenGesamt\n    const open = doc.data.lesebestaetigungenUngelesen\n\n    const percentile = 100 / all\n    locals.parts = [{\n      percent: percentile * closed,\n      label: 'Gelesen',\n      value: closed,\n      color: 'var(--ae-primary-500)'\n    },\n    {\n      percent: percentile * open,\n      label: 'Ungelesen',\n      value: open,\n      color: 'var(--ae-background-300)'\n    }] \n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-11-24T13:19:51+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-02-08T14:41:07+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1675867267167,"ct":1606223991981,"a_depth":4,"a":["apps","f416e371-07cc-4987-a6de-5934ef5ff3e4","1096c5df-2773-4914-9455-dc54e0f3e0e5","94886126-c88d-4ea0-b088-8ea5ad155b08"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"7aecf846-a282-4cc6-a572-55380eb62804","v":"677049e97db120fe","previous":{"v":"cac9b26c4d98127a"},"p":"e170bb6c-f326-446d-870a-ada9d9f67230","f":{"id":"design-form","v":"e37099c040ec46e9","text":"Design"},"data":{"name":"card-title","template":"<div class=\"_CSS-container\" :class=\"{ '_CSS-container--done': data.closed }\">\n  <ae-design :document=\"document\" name=\"title\"></ae-design>\n  <div class=\"_CSS-box--algin-left\">{{ data.identifier }}</div>\n  <div class=\"_CSS-box--algin-left\" title=\"Deadline\">\n    <ae-icon style=\"margin-right: var(--ae-size-1);\" class=\"fa fa-hourglass-end\"></ae-icon>\n    <span v-if=\"data.deadline\"> {{ Aeppic.DateTime.fromISO(data.deadline).toLocaleString(Aeppic.DateTime.DATETIME_SHORT) }} </span>\n    <span v-else>-</span>\n  </div>\n  \n  <div class=\"_CSS-box--algin-left\" title=\"Erstellt\">\n    <ae-icon style=\"margin-right: var(--ae-size-1);\" class=\"fa fa-star-of-life\"></ae-icon>\n    <span> {{ Aeppic.DateTime.fromISO(document.created.at).toLocaleString(Aeppic.DateTime.DATETIME_SHORT) }} </span>\n  </div>\n  <div class=\"_CSS-box--algin-left\" title=\"Letzte Bewerbung\">\n    <ae-icon style=\"margin-right: var(--ae-size-1);\" class=\"fa fa-clock\"></ae-icon>\n    <span v-if=\"locals.lastApplicationDate\"> {{ locals.lastApplicationDate }} </span>\n    <span v-else>-</span>\n  </div>\n  \n  <div class=\"_CSS-statistics _CSS-box--algin-right\" title=\"Neue Bewerbungen\" xtitle=\"locals.downloadInfo ? 'Neue Bewerbungen seit ' + Aeppic.DateTime.fromISO(locals.downloadInfo.data.lastDownloadDate).toLocaleString(Aeppic.DateTime.DATETIME_SHORT_WITH_SECONDS)  : '' \">\n    <template v-if=\"locals.statistics.changed\">\n      {{ locals.statistics.changed }}\n      <template v-if=\"locals.statistics.changed === 999\">+</template>\n      <ae-icon class=\"fa fa-user-plus\"></ae-icon>\n    </template>\n  </div>\n\n  <div  title=\"Alle Bewerbungen\" class=\"_CSS-statistics _CSS-box--algin-right _CSS-statistics-all\">\n    <template v-if=\"locals.statistics.all\">\n      {{ locals.statistics.all }}\n      <template v-if=\"locals.statistics.all === 999\">+</template>\n      <ae-icon class=\"fa fa-user\"></ae-icon>\n    </template>\n  </div>\n</div>","css":"._CSS-container {\n  display: grid;\n  grid-template-columns: 25% auto 14% 14% 14% 6% 6%;\n}\n\n._CSS-container--done {\n  text-decoration: line-through;\n  opacity: var(--ae-opacity-1);\n}\n\n\n._CSS-statistics {\n  xdisplay: flex;\n  xalign-items: center;\n}\n\n._CSS-box--algin-right {\n  justify-self: end;\n    overflow: hidden;\n  width: 100%;\n  min-width: 0;\n}\n\n._CSS-box--algin-left {\n  justify-self: start;\n  overflow: hidden;\n  width: 100%;\n  min-width: 0;\n}\n\n._CSS-statistics-all {\n  color:var(--ae-background-500);\n}\n","controller":"class Controller {\n  async init() {\n    const MINUTE_MS = 1000 * 60\n    this.FORMS = {\n      DownloadInfo: '81265a15-9225-4401-8ccf-c041b8502537',\n      Application: '009c0da4-718f-43d0-964a-647e30074d94',\n      Project: 'e170bb6c-f326-446d-870a-ada9d9f67230'\n    }\n\n    locals.zipDownloadUrl = `/api/services/18047369-674f-4ba5-bf5d-bba493f4f9bb/v2/zip?projectId=${document.id}`\n    locals.zipDownloadUrlNew = `/api/services/18047369-674f-4ba5-bf5d-bba493f4f9bb/v2/zip?projectId=${document.id}&onlyNew=true`\n    locals.downloadInfos = []\n    locals.statistics = {\n      all: 0,\n      changed: 0,\n      last: null\n    }\n    locals.lastApplicationDate = ''\n\n    Aeppic.subscribe(`a:${document.id} f.id:${this.FORMS.DownloadInfo} data.account.id:${Aeppic.Account.id}`, async (docs) => {\n      locals.downloadInfos = docs\n    })\n\n    await this.subscribeApplication()\n\n    const reloadInterval =  Math.random() * ((MINUTE_MS * 1.2) - MINUTE_MS) + MINUTE_MS\n    Aeppic.setInterval(() => this._updateLastApplicationDate(), reloadInterval)\n  }\n\n  _updateLastApplicationDate() {\n    if (!locals.statistics.last) {\n      locals.lastApplicationDate = ''\n      return\n    }\n\n    locals.lastApplicationDate = Aeppic.DateTime.fromISO(locals.statistics.last.modified.at).toRelative()\n  }\n\n  async subscribeApplication() {\n    const queryString = `a:${document.id} f.id:${this.FORMS.Application} data.done:true`\n    const findOptions = {\n      size: 999,\n      sort: 'modified.at',\n      descending: true\n    }\n\n    Aeppic.subscribe(queryString, findOptions, async (all) => {\n      locals.statistics.all = all.length\n      locals.statistics.last = all.slice(-1)[0]\n      this._updateLastApplicationDate()\n\n      if (!locals.downloadInfos.length) {\n        locals.statistics.changed = all.length\n        return\n      }\n\n      if (!all.length){\n        return\n      }\n\n\n      const applicationsByParentId = all.reduce((result, application) => {\n        const parentId = application.p\n        if (!result[parentId]) {\n          result[parentId] = []\n        }\n        result[parentId].push(application)\n        return result\n      }, {})\n\n      let applicationsRelatedToDownloadInfosCounter = 0\n      let changedCounter = 0\n\n      const changedPromises = locals.downloadInfos.map(async (downloadInfo) => {\n        const intervalOptions = {\n          start: downloadInfo.data.lastDownloadDate,\n          fieldName: 'modified.at',\n        }\n\n        const applications = applicationsByParentId[downloadInfo.p]\n        applicationsRelatedToDownloadInfosCounter += applications.length\n\n        const changed = await packages.SearchHelpers.filterDocumentsToInterval(Aeppic, intervalOptions, applications)\n        changedCounter += changed.length\n      })\n\n      await Promise.all(changedPromises)\n      \n\n      const numberOfApplicationsWithoutDownloadInfo = all.length - applicationsRelatedToDownloadInfosCounter\n      locals.statistics.changed = changedCounter + numberOfApplicationsWithoutDownloadInfo\n\n      console.log(data.name, all.length, changedCounter, numberOfApplicationsWithoutDownloadInfo)\n    })\n  }\n}\n","packages":[{"id":"9fbc0645-b97a-4b98-8520-02670f21ac0b","v":"e1f26ccbbc55afae","text":"Aeppic Search Helpers"}],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-12-10T13:06:52+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-07-01T15:12:00+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1625152320296,"ct":1607605612701,"a_depth":4,"a":["apps","3fbe0efd-713a-457a-a34c-3a12aa19d6bb","0fb162f4-0f78-4c1e-aad2-43c27e6d98cb","e170bb6c-f326-446d-870a-ada9d9f67230"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"b1bd8cd9-6f23-4200-8cb8-37a8e3e13095","v":"initial","p":"8fef472f-9220-484b-99cd-bb80f208f795","f":{"id":"design-form","v":"e37099c040ec46e9","text":"Design"},"data":{"name":"card-title","template":"<div class=\"_CSS-container\" :class=\"{ '_CSS-container--done': data.closed }\">\n  <ae-design :document=\"document\" name=\"title\"></ae-design>\n  <!-- <div class=\"_CSS-box--algin-left\">{{ data.identifier }}</div>\n  <div class=\"_CSS-box--algin-left\" title=\"Deadline\">\n    <ae-icon style=\"margin-right: var(--ae-size-1);\" class=\"fa fa-hourglass-end\"></ae-icon>\n    <span v-if=\"data.deadline\"> {{ Aeppic.DateTime.fromISO(data.deadline).toLocaleString(Aeppic.DateTime.DATETIME_SHORT) }} </span>\n    <span v-else>-</span>\n  </div> -->\n  <div class=\"_CSS-box--algin-left\" title=\"Erstellt\">\n    <ae-icon style=\"margin-right: var(--ae-size-1);\" class=\"fa fa-star-of-life\"></ae-icon>\n    <span> {{ Aeppic.DateTime.fromISO(document.created.at).toLocaleString(Aeppic.DateTime.DATETIME_SHORT) }} </span>\n  </div>\n  <div class=\"_CSS-statistics _CSS-box--algin-right\" :title=\"locals.downloadInfo ? 'Neue Bewerbungen seit ' + Aeppic.DateTime.fromISO(locals.downloadInfo.data.lastDownloadDate).toLocaleString(Aeppic.DateTime.DATETIME_SHORT_WITH_SECONDS)  : '' \">\n    <template v-if=\"locals.statistics.changed\">\n      {{ locals.statistics.changed }}\n      <ae-icon class=\"fa fa-user-plus\"></ae-icon>\n    </template>\n  </div>\n  <div title=\"Alle Bewerbungen\" class=\"_CSS-statistics _CSS-box--algin-right _CSS-statistics-all\">\n    <template v-if=\"locals.statistics.all\">\n      {{ locals.statistics.all }}\n      <ae-icon class=\"fa fa-user\"></ae-icon>\n    </template>\n  </div>\n</div>\n ","css":"._CSS-container {\n  display: grid;\n  grid-template-columns: 68% 20% 6% 6%;\n}\n\n._CSS-container--done {\n  text-decoration: line-through;\n  opacity: var(--ae-opacity-1);\n}\n\n\n._CSS-statistics {\n  xdisplay: grid;\n  xgrid-template-columns: auto 50px;\n}\n\n._CSS-statistics-all {\n  color:var(--ae-background-500);\n}\n\n._CSS-box--algin-right {\n  justify-self: end;\n}\n\n._CSS-box--algin-left {\n  justify-self: start;\n}\n","controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      DownloadInfo: '81265a15-9225-4401-8ccf-c041b8502537',\n      Application: '009c0da4-718f-43d0-964a-647e30074d94',\n    }\n\n    locals.zipDownloadUrl = `/api/services/18047369-674f-4ba5-bf5d-bba493f4f9bb/v2/zip?projectId=${document.id}`\n    locals.zipDownloadUrlNew = `/api/services/18047369-674f-4ba5-bf5d-bba493f4f9bb/v2/zip?projectId=${document.id}&onlyNew=true`\n    locals.downloadInfo = null\n    locals.statistics = {\n      all: 0,\n      changed: 0,\n    }\n\n    Aeppic.subscribe(`p:${document.id} f.id:${this.FORMS.DownloadInfo} data.account.id:${Aeppic.Account.id}`, async (docs) => {\n      locals.downloadInfo = docs[0]\n    })\n\n    await this.subscribeApplication()\n  }\n\n  async subscribeApplication() {\n    const queryString = `p:${document.id} f.id:${this.FORMS.Application} data.done:true`\n    const findOptions = {\n      size: 999,\n    }\n\n    Aeppic.subscribe(queryString, findOptions, async (all) => {\n      locals.statistics.all = all.length\n\n      if (!locals.downloadInfo) {\n        locals.statistics.changed = all.length\n        return\n      }\n\n      const intervalOptions = {\n        start: locals.downloadInfo.data.lastDownloadDate,\n        fieldName: 'modified.at',\n      }\n\n      const changed = await packages.SearchHelpers.filterDocumentsToInterval(Aeppic, intervalOptions, all)\n      locals.statistics.changed = changed.length\n    })\n  }\n}\n","packages":[{"id":"9fbc0645-b97a-4b98-8520-02670f21ac0b","v":"e1f26ccbbc55afae","text":"Aeppic Search Helpers"}],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-06-16T13:55:35+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-06-16T13:55:35+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1623851735061,"ct":1623851735061,"a_depth":4,"a":["apps","3fbe0efd-713a-457a-a34c-3a12aa19d6bb","0fb162f4-0f78-4c1e-aad2-43c27e6d98cb","8fef472f-9220-484b-99cd-bb80f208f795"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"5c095ae4-4d6d-459f-9117-1d08fe7ff631","v":"initial","p":"3230c10a-64af-48cc-8f3d-15fc16a40e5f","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"card-with-download","applies":"","template":"<div class=\"_CSS-card\">\n  <div class=\"_CSS-title-container\">\n    <div class=\"_CSS-icon\">\n      <ae-icon class=\"fa fa-user-circle fa-2x\"></ae-icon>\n    </div>\n    <span class=\"_CSS-title\">{{data.name}}</span>\n  </div>\n  <ae-layout layout-id=\"7be86ea7-1897-4343-8dd3-56ba86e8f14e\"\n              class=\"_CSS-download-button\"\n              :param-project-id=\"locals.projectId\"\n              :param-zip-name=\"data.name\"\n              :param-filter=\"'data.roles:' + document.id\"\n              :param-application-folder-id=\"params.applicationFolderId\"\n  ></ae-layout>\n</div>\n","css":"._CSS {\n  display: flex;\n}\n\n._CSS-title-container {\n  display: flex;\n  align-items: center;\n}\n\n._CSS-card {\n  min-width: 0;\n  overflow: hidden;\n  flex: 1;\n  background: white;\n\n  padding: 8px;\n\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n}\n\n._CSS-icon {\n  display: flex;\n  justify-content: center;\n  align-items: center;\n}\n\n._CSS-title {\n  margin-left: 1rem;\n  display: flex;\n  justify-content: center;\n  align-items: flex-end;\n}\n\n._CSS-download-button {\n  margin-left: 1rem;\n  font-size: 1.5em;\n}","controller":"class Controller {\n  init() {\n    locals.projectId = document.a.slice(-2)[0]\n  }\n}","packages":[]},"locks":[],"created":{"at":"2019-04-12T14:13:54+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2019-04-12T14:13:54+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1555078434587,"ct":1555078434587,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","3230c10a-64af-48cc-8f3d-15fc16a40e5f"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"90ef55ae-900c-499e-9987-f300ed03d6c3","v":"628ea6f286945d55","previous":{"v":"fdc78b4e8063c957"},"p":"3d456c38-6282-416e-8c5e-7d20b0517a6e","f":{"id":"design-form","v":"e3fe9ece11aabc5e","text":"Design"},"data":{"name":"card.old","applies":"","template":"<div @click=\"Aeppic.navigateTo(document.id)\" class=\"mdc-card\" style=\"border: solid #d1d1d1; border-width:0 0 2px 0; background:white;box-shadow:none;cursor:pointer;\" xclass=\"{ warnBottom: Aeppic.DateTime.local().diff( Aeppic.DateTime.fromISO(data.bis)).as('days') > 0 && !data.erledigt }\">\n\t<div class=\"mdc-card__horizontal-block\">\n\t\t<div class=\"mdc-card__media\">\n\t\t\t<div class=\"mdc-checkbox\">\n\t\t\t\t<input type=\"checkbox\" class=\"mdc-checkbox__native-control\" v-model=\"data.erledigt\" @change=\"save()\" @click.stop>\n\t\t\t\t<div class=\"mdc-checkbox__background\">\n\t\t\t\t\t<svg class=\"mdc-checkbox__checkmark\" viewBox=\"0 0 24 24\">\n\t\t\t\t\t\t<path class=\"mdc-checkbox__checkmark__path\" fill=\"none\" stroke=\"white\" d=\"M1.73,12.91 8.1,19.28 22.79,4.59\" />\n\t\t\t\t\t</svg>\n\t\t\t\t\t<div class=\"mdc-checkbox__mixedmark\"></div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<div class=\"mdc-card__media\" style=\"flex:1\">\n\t\t\t<!-- <h1 class=\"mdc-card__title\">{{data.nummer}} <input type=\"text\" v-model=\"data.name\" @blur=\"save()\" @click.stop=\"\"\n\t\t\t\t :style=\"{ color: data.erledigt?'#888':'inherit' }\"> -->\n         {{data.name}}</h1>\n\t\t\t<h2 class=\"mdc-card__subtitle\">{{data.beschreibung}}</h2>\n\t\t</div>\n\t\t<div class=\"mdc-card__media\" v-if=\"data.anhaenge.length>0\" :title=\"data.anhaenge.length\"> \n      <ae-design name=\"paperclip\" :document-id=\"data.anhaenge[0].id\" :params=\"{ numberOfDocuments: data.anhaenge.length }\"></ae-design>\n\t\t</div>\n\n\t\t<div style=\"font-size:12px\" class=\"mdc-card__media mdc-card__horizontal-block\">\n\t\t\t<ae-design style=\"margin-right:4px\" v-for=\"va in data.verantwortlich\" :key=\"va.id\" :document-id=\"va.id\" name=\"inline,list\"></ae-design>\n\t\t</div>\n\n\t\t <div style=\"font-size:12px\" class=\"mdc-card__media\" v-if=\"data.bis\"> \n\t\t\t{{ Aeppic.DateTime.fromISO(data.bis).toLocaleString(Aeppic.DateTime.DATE_SHORT) }}\n\t\t</div>\n\n\t\t<section class=\"noprint mdc-card__actions mdc-card__actions--vertical\">\n\t\t\t<button class=\"mdc-button\"><ae-icon class=\"fa fa-bars\"></ae-icon></button>\n\t\t</section>\n\t</div>\n</div>","css":"._CSS {\r\n  border: 1px solid lightgray;\r\n}","controller":"","packages":[]},"locks":[],"created":{"at":"2017-12-01T13:28:11+01:00","by":"","from":"","client":"3491fa68-c1c3-4c5a-ad75-8e06d68192fd"},"modified":{"at":"2020-05-08T08:50:53+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1588927853689,"ct":1512131291411,"a_depth":4,"a":["apps","5acfd7a2-33e4-498a-9150-71e1ab772bfc","20c92864-6a81-4006-96f9-b78f473cd129","3d456c38-6282-416e-8c5e-7d20b0517a6e"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"9ff62dbf-a44b-467f-95ba-0686e16c3c4f","v":"87095fab9a21985a","cloneOf":{"id":"2e8a56a1-f52a-4d29-84e6-781fa197e43a","v":"f6dea59fccf7234a","text":"card"},"originalCloneOf":{"id":"2e8a56a1-f52a-4d29-84e6-781fa197e43a","v":"f6dea59fccf7234a","text":"card"},"previous":{"v":"16a9efe8c4304389"},"p":"3592ceee-ae9a-47a9-8488-7bad5b0d9ff5","f":{"id":"design-form","v":"3385ac6766f32638","text":"Design"},"data":{"name":"card.old","template":"<div class=\"rounded-lg bg-white p-2 border border-slate-200 flex justify-between items-center\">\n  <section class=\"flex flex-col gap-1\">\n    <div>\n      <ae-icon class=\"fa fa-building\"></ae-icon>\n      <span >{{(data.name || '[Kein Name]') + '    (Tel: '+data.tel+')' }}</span>\n    </div>\n    <div>\n      <ae-icon class=\"fa fa-user\"></ae-icon>\n      <span>Ansprechpartner: {{data.ansprechpartner}}</span>\n    </div>\n  </section>\n    \n  <ae-layout  layout-id=\"a2cd7699-9b46-494f-8f89-cb1f62151d82\"\n              param-text=\"Wartung durchführen\"\n              @click.native.stop=\"$emit('selected', document)\"\n              :param-disabled=\"params.readonly\"\n  ></ae-layout>\n</div>\n\n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-04-01T10:27:04+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-04-01T10:27:39+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1648808859832,"ct":1648808824976,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","3592ceee-ae9a-47a9-8488-7bad5b0d9ff5"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"8a6b1bc5-2e7b-4005-9b4f-d8734e35116e","v":"a7b8dfc028ed60cf","p":"804bed89-803a-4090-8b1b-857cab8ec6dd","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"card.wip","template":"<div class=\"_CSS-card\" @click.stop=\"$emit('selected', document)\">\n  <div class=\"\">\n    <ae-design name=\"title\" :document=\"document\"></ae-design>\n\n    <template v-if=\"locals.filteredMovies.length\">\n      <div class=\"_CSS-heading\">Film Filter</div>\n      <ae-design v-for=\"movie of locals.filteredMovies\" name=\"title\" :document=\"movie\"></ae-design>\n    </template>\n  </div>\n\n  <div>\n    <div class=\"dbps-button\" @click=\"controller.copy($event)\">\n      <ae-icon class=\"fa fa-clipboard\" style=\"margin-right: 0.5rem\"></ae-icon>\n      Link in Zwischenablage kopieren\n    </div>\n\n    <!-- <a class=\"dbps-button\" :href=\"controller.link\" target=\"_blank\">\n      <ae-icon class=\"fa fa-external-link\"></ae-icon>\n    </a> -->\n\n    <ae-layout v-if=\"!params.readonly\" layout-id=\"0ded34c5-1221-4511-af93-d897a79f1369\" param-button-layout-id=\"dac8948f-67d5-4b88-87ef-8dab40d869cd\" :param-document=\"document\" :param-force-show=\"true\" :param-no-navigate=\"true\"></ae-layout>\n  </div>\n</div>\n\n<ae-popup ref=\"popup\" :close-delay=\"200\" offset=\"-4px 0\">\n  <div slot=\"popup\" class=\"_CSS-popup__body\">\n    <div>\n      Der Link wurde in die Zwischenablage kopiert!\n    </div>\n    <p>\n      <!-- NOTE: do not remove input. copyToClipboard does not work on mobile devices -->\n      <input type=\"text\" v-model=\"controller.link\" style=\"width: 100%;\" readonly>\n    </p>\n  </div>\n</ae-popup>\n","css":"._CSS-card {\n  display: flex;\n  overflow: hidden;\n\n  border-bottom: 1px solid var(--ae-theme-text-secondary-on-background);\n  border-radius: var(--ae-border-radius);\n\n  box-shadow: var(--ae-shadow);\n\n  background-color: white;\n\n  justify-content: space-between;\n  align-items: center;\n  padding: 0.5rem;\n}\n\n._CSS-heading {\n  margin: 1em 0 0.1em 0;\n  font-weight: bold;\n}\n\n._CSS-popup__body {\n  padding: 0.5rem;\n  background: white;\n  box-shadow: var(--ae-shadow-2);\n\n  border-radius: var(--ae-border-radius);\n}\n","controller":"class Controller {\n  async init() {\n    locals.filteredMovies = []\n\n    const filters = await Aeppic.find(`p:${document.id} f.id:a1d626fd-bb29-4e7a-9d54-a13957c0a37b`)\n\n    for (const filter of filters) {\n      const doc = (await Aeppic.find(filter.data.query))[0]\n      locals.filteredMovies.push(doc)\n    }\n  }\n\n  get link() {\n    const baseUrl = packages.window.location.origin \n    \n    return `${baseUrl}/${params.sharePrefix}/${data.identifier}`\n  }\n\n  copy(event) {\n    Aeppic.copyToClipboard(this.link)\n\n    $refs.popup.show(event)\n  }\n}","packages":[{"id":"10843fbf-4f0c-416b-be7d-42d6bbd0ae68","v":"8da44e785879d6c0","text":"Window"}],"aliases":[],"description":""},"locks":[],"created":{"at":"2018-06-22T07:45:46+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2020-06-30T10:53:26+00:00","by":"8e6c22aa-8c69-4ff8-919a-7032841cf636","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1719473826680,"ct":1719473826680,"a_depth":3,"a":["system","system-forms","804bed89-803a-4090-8b1b-857cab8ec6dd"],"a_forms":["system-folder-form","repository-folder-form","form"],"inheritedLocks":[null,null,null,null],"stamps":[],"previous":{"v":"b07d3b45361e5553","f":{"id":"design-form","v":"9bfe8e0cd909c1f0","text":"Design"}},"meta":{"modified":{"at":"2024-06-27T07:37:06+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"14631b4d-206f-4bed-ae67-81911a273f0e","v":"2d3e0f7afcfbd081","previous":{"v":"initial"},"p":"a1e6ab82-7c13-4a74-89e4-1a23e443e350","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"category-title","template":"<div v-if=\"locals.form\" :class=\"[!data.kategorie && 'line-through']\">\n  {{ locals.form.getPlaceholder('kategorie').field.settings.options.find(o => o.value === data.kategorie)?.display || 'Unkategorisiert' }} \n</div>","css":"","controller":"class Controller {\n  async init() {\n    locals.form = null\n\n    locals.form = await Aeppic.getFormForDocument(document)\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-12-21T12:20:08+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-12-21T12:24:05+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1671625445394,"ct":1671625208391,"a_depth":4,"a":["apps","85d3c028-a61c-4be8-93d0-4366bc45752f","25fda732-5296-4fab-8d4e-92c3e32ca2c0","a1e6ab82-7c13-4a74-89e4-1a23e443e350"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"c56f1cd9-3e26-433f-a426-94d02f368151","v":"695688af31cef7cb","previous":{"v":"62789f40e72a0eb5"},"p":"d2ac3563-3c3f-4f02-b923-9b67abf98d10","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"change-card","applies":"","template":"<div class=\"_CSS-card\">\r\n  <ae-design class=\"_CSS-avatar\" name=\"avatar--small\" :document=\"document\"></ae-design>\r\n  <div class=\"_CSS-personal\">\r\n    <ae-design name=\"title\" :document=\"document\"></ae-design>\r\n    <div class=\"_CSS-description\" :title=\"data.beschreibung\">{{data.beschreibung}}</div>\r\n  </div>\r\n</div>\r\n","css":"\r\n._CSS-card {\r\n  height: 100%;\r\n  display: flex;\r\n  flex-flow: row;\r\n  align-items: center;\r\n  padding: var(--ae-size-1);\r\n\r\n  border-radius: var(--ae-border-radius);\r\n  background: var(--ae-ui-card-background);\r\n  border: var(--ae-border-width) solid var(--ae-border-color);\r\n}\r\n\r\n._CSS-personal {\r\n  padding-left: 1em;\r\n  overflow:hidden;\r\n  text-overflow: ellipsis;\r\n  white-space:nowrap;\r\n}\r\n\r\n._CSS-description {\r\n  opacity:0.6;\r\n  font-size: 0.9em;\r\n  overflow:hidden;\r\n  text-overflow: ellipsis;\r\n  white-space: nowrap;\r\n}","controller":"","packages":[]},"locks":[],"created":{"at":"2018-05-23T11:46:41+02:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","from":"","client":"server"},"modified":{"at":"2019-05-03T13:06:33+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1556888793756,"ct":1527068801207,"a_depth":4,"a":["apps","144e85c0-d7f9-4b20-8928-be30f0c78bda","8e6ee7d3-9122-4a2e-8aaf-9fb3bd204b23","d2ac3563-3c3f-4f02-b923-9b67abf98d10"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["system","fallback-designs"],"a_depth":2,"a_forms":["system-folder-form","folder"],"created":{"at":"2020-05-08T09:00:44+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":""},"ct":1720684627126,"data":{"aliases":[],"controller":"","css":"._CSS {\n  border-radius: var(--ae-border-radius);\n}\n\n._CSS-fields {\n  font-size: smaller;\n  font-family: monospace;\n}\n._CSS-fields-change + ._CSS-fields-change::before {\n  content: ',';\n  padding:0;\n  margin: 0;\n  opacity:0.7;\n}\n\n._CSS-title {\n  display: flex;\n  flex-flow: column;\n  flex: 1;\n  color: var(--ae-foreground-l2);\n  overflow: hidden;\n}\n\n._CSS-title-with-icon {\n  display: grid;\n  grid-template-columns: auto 1fr;\n  grid-column-gap: 0.5em;\n\n  grid-auto-flow: column;\n  align-items: center;\n}\n\n._CSS-path {\n  font-size: var(--ae-font-size-2);\n  color: var(--ae-background-700);\n}\n\n._CSS-date {\n  color: var(--ae-background-700);\n}","description":"","name":"change-title","packages":[],"template":"<div :title=\"data.name\" class=\"_CSS-title\">\n  <div :class=\"{'_CSS-title-with-icon': !params.hideIcon }\">\n    <ae-design v-if=\"!params.hideIcon\" :document=\"document\" name=\"icon\"></ae-design>\n    <ae-design name=\"title\" :document=\"document\"></ae-design>\n    <button class=\"ae-button\"\n      @click.stop=\"Aeppic.copyToClipboard(document.id)\"\n    >\n      Copy id to clipboard\n    </button>\n\n    <!-- Space div -->\n    <div class=\"w-1\"></div>\n\n    <div class=\"_CSS-fields\" v-if=\"document.previous && document.previous.patch\">\n      <span class=\"_CSS-fields-change\" v-for=\"field of Object.keys(document.previous.patch)\" :title=\"document.data[field]\">{{field}}</span>\n    </div>\n\n    <small v-if=\"!params.minimizedInfo\" class=\"_CSS-date\" :title=\"'Geändert: ' +  DateTime.fromISO(document.modified.at).toLocaleString(DateTime.DATETIME_FULL)\">{{DateTime.fromISO(document.modified.at).toLocaleString()}}</small>\n\n    <ae-design name=\"avatar--tiny,profile-title,title\" :document-id=\"document.modified.by\" style=\"transform:scale(0.5)\"></ae-design>\n  </div>\n\n  <div class=\"_CSS-path\" v-if=\"!params.hidePath || !params.hidePath && (params.searchParent !== document.p)\">\n    <ae-design :document=\"document\" name=\"path\" :param-full-path=\"params.fullPath\"></ae-design>\n  </div>\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"d6beb111-ee65-461a-8a5c-adcf7861b7e5","inheritedLocks":[null,null,null],"locks":[],"modified":{"at":"2026-05-12T10:29:37+00:00","backedBy":"","by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":""},"p":"fallback-designs","previous":{"v":"e20e50b329990c93"},"stamps":[],"t":1778581777457,"v":"befef0676045f9c0"},{"id":"4d18eb01-7c32-44b4-b24f-eaea00972c26","v":"3d1a14a28fadca0c","previous":{"v":"5604bfb8ac29447a"},"p":"c69a0c1c-6c53-40c2-87e8-5ace866bf1df","f":{"id":"design-form","v":"0061789efb5c5c29","text":"Design"},"data":{"name":"changelog","template":"<div class=\"_CSS-selector\">\n<button class=\"ae-button ae-button--secondary\" @click.stop=\"controller.nextMode()\">\n  <template v-if=\"locals.mode === 'history'\">\n    <ae-icon class=\"fa fa-list\"></ae-icon> Liste\n  </template>\n    <template v-if=\"locals.mode === 'apps'\">\n    <ae-icon class=\"fa fa-list\"></ae-icon> Apps\n  </template>\n</button>\n</div>\n\n<template v-if=\"locals.mode === 'history'\">\n  <h1>Änderungen (letzte 12 Monate)</h1>\n\n  <div class=\"_CSS-changes\">\n    <ae-list :documents=\"locals.changesOfInstalled\"\n              list-id=\"simple-list\"\n              param-design=\"card\"\n    ></ae-list>\n  </div>\n\n</template>\n<template v-if=\"locals.mode === 'apps'\">\n\n  <h1>Änderungen nach App</h1>\n\n  <div v-for=\"app of locals.installedApps\" v-if=\"locals.changesByAppId[app.id]\">\n    <div class=\"_CSS-app\">\n      <ae-design name=\"icon\" :document=\"app\"></ae-design>\n      <span style=\"margin-left:0.5ch\">\n        {{ app.data.label || app.data.name}}\n      </span>\n    </div>\n\n    <ae-list :documents=\"locals.changesByAppId[app.id]\"\n              list-id=\"simple-list\"\n              param-design=\"card\"\n              :param-design-params=\"{ hideApp: true }\"\n    ></ae-list>\n  </div> \n\n</template>\n\n<h3>Instanz-Informationen</h3>\n<div class=\"bp-card bp-card--bordered\" style=\"margin-bottom:var(--ae-space-2)\">\n  <div>\n    {{ locals.serverVersion }}\n  </div>\n</div>\n\n<div class=\"bp-card bp-card--bordered\">\n  <div>\n    <h4>\n      Installierte Apps\n    </h4>\n\n    <div class=\"_CSS-apps\">\n      <div class=\"_CSS-app\" v-for=\"app of locals.installedApps\">\n        <ae-design name=\"icon\" :document=\"app\"></ae-design>\n        <span style=\"margin-left:0.5ch\">\n          {{ app.data.label || app.data.name}}\n        </span>\n      </div>\n    </div>\n  </div>\n  \n</div>\n\n  ","css":"._CSS-app {\n  display: flex;\n}\n\n\n._CSS-selector {\n  display: flex;\n  justify-content: flex-end;\n}","controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Application: 'application-form',\n      ChangelogChange: 'ac1c3cae-65ab-45cf-8bdc-c00b1dc93012'\n    }\n    locals.version = ''\n    locals.changesOfInstalled = []\n    locals.changesByAppId = []\n    locals.installedApps = {}\n    locals.modes = ['history', 'apps']\n    locals.mode = locals.modes.splice(0, 1)[0]\n\n    const changes = await Aeppic.find(`(a:apps OR a:system) f.id:${this.FORMS.ChangelogChange} created.at:[now-12M TO now]`, { sort: { field: 'data.date', descending: true }})\n\n    const companyChildren = await Aeppic.find(`p:${document.id}`)\n    const companyChildrenForms = await Promise.all(companyChildren.map(child => Aeppic.get(child.f.id)))\n\n    const companyApps = await Promise.all(companyChildrenForms.map(f => Aeppic.get(f.a[f.a_forms.findIndex(a_form => a_form === this.FORMS.Application)])))\n\n    locals.installedApps = Aeppic.sort(companyApps, 'data.label,data.name').reduce((result, app) => {\n      if (app) {\n        result[app.id] = app \n      }\n      return result \n    }, {\n      '77ee8815-2c3a-4bb5-abd9-90541a545a24': await Aeppic.get('77ee8815-2c3a-4bb5-abd9-90541a545a24')\n    })\n \n    const changesOfInstalled = []\n    const changesByAppId = {}\n\n    changes.forEach(change => {\n      const appId = change.a[change.a_forms.findIndex(a_form => a_form === this.FORMS.Application)]\n \n      if (!params.showAllApps && !locals.installedApps[appId]) {\n        return\n      }\n\n      changesOfInstalled.push(change)\n\n      if (!changesByAppId[appId]) {\n        changesByAppId[appId] = []\n      }\n\n      changesByAppId[appId].push(change)\n    })\n\n    locals.changesOfInstalled = changesOfInstalled\n    locals.changesByAppId = changesByAppId\n// console.log(locals.installedApps, changes, locals.changesOfInstalled)\n\n\n    const indexResponse  = await Aeppic.fetch('/', \n      { method: 'HEAD'}\n    )\n\n    console.log(indexResponse)\n    locals.serverVersion = indexResponse.headers.get('X-Aeppic-Version')\n  }\n\n  nextMode() {\n    locals.modes.push(locals.mode)\n    locals.mode = locals.modes.splice(0, 1)[0]\n  }\n}\n   \n   ","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-07-23T11:33:37+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-12-20T13:27:05+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1671542825835,"ct":1627040017557,"a_depth":4,"a":["apps","8f8c9ed7-a7ed-4150-b162-92d6f19a05b0","526d9710-b2bd-4fa7-9341-d780ead102c1","c69a0c1c-6c53-40c2-87e8-5ace866bf1df"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"6a48c790-1d78-417f-827c-56fd926b1cc1","v":"a30e708a6d8fb9bf","previous":{"v":"831aa116319935ac"},"p":"0b6a2b21-9425-466e-9e8d-57ec39cc95e1","f":{"id":"design-form","v":"e37099c040ec46e9","text":"Design"},"data":{"name":"child-milestones","template":"<ae-list \n:root-document-id=\"document.id\"\ntype=\"children\"\nfilter=\"f.id:766c24c5-542c-4887-bf65-43ad85e6c476\"\n:sort=\"locals.sort\"\nlist-id=\"208b6d2d-4198-45a7-b716-b697e8e39d39\"\n@selected=\"Aeppic.drillInto($event.id)\"\nparam-design=\"progress-circle\"\nparam-title=\"Meilensteine\"\n:param-hide-empty=\"true\"\n></ae-list>","css":"","controller":"class Controller {\n  init() {\n    locals.sort = [\n      { field: 'data.bis' },\n      { field: 'data.name' },\n      { field: 'created.at' },\n      { field: 'id' },\n    ]\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-06-10T11:25:03+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-04-13T15:20:00+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1649863200262,"ct":1623324303764,"a_depth":4,"a":["apps","59edbdbc-2cab-426a-bb42-6e57c5158e4f","3be7e887-1bcd-4c3c-979f-b20a986c4c48","0b6a2b21-9425-466e-9e8d-57ec39cc95e1"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"93ecc118-8c15-4302-ab3a-203e67498b44","v":"9107fc19c8ea8fe8","previous":{"v":"afa553bfa01efc70"},"p":"0b6a2b21-9425-466e-9e8d-57ec39cc95e1","f":{"id":"design-form","v":"e37099c040ec46e9","text":"Design"},"data":{"name":"child-projects","template":"<div class=\"_CSS-container\">\n  <ae-list \n    :documents=\"locals.openProjects\"\n    list-id=\"2dab232c-2c8a-4aa4-b3f9-6023a7116161\"\n    :param-by=\"locals.by\"\n    :param-asc=\"locals.asc\"\n    @selected=\"Aeppic.drillInto($event.id)\"\n    param-design=\"selectable\"\n    :param-design-params=\"{ name: 'card--wide,card' }\"\n    param-title=\"Teilprojekte\"\n    param-gap=\"small\"\n    param-empty-text=\" \"\n    ></ae-list>\n\n  <ae-list  \n    v-if=\"locals.showDone\"\n    :documents=\"locals.closedProjects\"\n    list-id=\"2dab232c-2c8a-4aa4-b3f9-6023a7116161\"\n    @selected=\"Aeppic.drillInto($event.id)\"\n    param-title=\"Erledigte Teilprojekte\"\n    param-design=\"selectable\"\n    :param-design-params=\"{ name: 'card--wide,card', forceShowDetails: locals.showProjectDetails }\"\n    param-gap=\"small\"\n    param-empty-text=\"Keine erledigten Teilprojekte vorhanden\"\n    ></ae-list>\n\n  <button class=\"ae-button ae-button--small _CSS-button\" @click=\"locals.showDone = !locals.showDone\">\n    <span v-show=\"locals.showDone\" title=\"Erledigte Projekte ausblenden\"><ae-icon class=\"fad fa-clipboard-check\"></ae-icon> Erledigte ausblenden</span> \n    <span v-show=\"!locals.showDone\"  title=\"Erledigte Projekte anzeigen\"><ae-icon class=\"fad fa-clipboard\"></ae-icon> Erledigte anzeigen</span>\n  </button>\n</div>","css":"._CSS-container {\n  display: flex;\n  flex-flow: column;\n  position: relative;\n}\n\n._CSS-button {\n  position: absolute;\n  right: 0;\n  top: var(--ae-size-1);\n}","controller":"class Controller {\n  init() {\n    locals.showDone = false\n    locals.projects = []\n    locals.closedProjects = []\n    locals.openProjects = []\n\n    const options = {\n      sort: ['data.name', 'id']\n    }\n   Aeppic.subscribe(`p:${document.id} f.id:0b6a2b21-9425-466e-9e8d-57ec39cc95e1`, options, (projects) => {\n     const { open, closed } = projects.reduce((result, project) => {\n       if (project.data.erledigt) {\n         result.closed.push(project)\n       } else {\n         result.open.push(project)\n       }\n       return result\n     }, { open: [], closed: [] })\n\n     locals.projects = projects\n     locals.openProjects = open\n     locals.closedProjects = closed\n\n     if (projects.length) {\n       $emit('show')\n     } else {\n       $emit('hide')\n     }\n   })\n\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-06-10T10:56:04+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-01-06T15:44:25+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1641483865420,"ct":1623322564944,"a_depth":4,"a":["apps","59edbdbc-2cab-426a-bb42-6e57c5158e4f","3be7e887-1bcd-4c3c-979f-b20a986c4c48","0b6a2b21-9425-466e-9e8d-57ec39cc95e1"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"b3659f3d-025f-4e31-90e5-6fcffaa04eb6","v":"2ce9bf444e573080","previous":{"v":"8ba7aea514a022f6"},"p":"e170bb6c-f326-446d-870a-ada9d9f67230","f":{"id":"design-form","v":"e37099c040ec46e9","text":"Design"},"data":{"name":"closed-info","template":"<div v-if=\"data.closed\" class=\"bp-card bp-card--bordered\">\n  <div>\n    <ae-icon class=\"fa fa-exclamation-circle\" style=\"color:var(--ae-accent-red);\"></ae-icon>\n    <strong>Dieses Projekt wurde abgeschlossen.</strong><br><br>\n    Die originalen Video-Uploads werden <strong>10 Tage </strong> nach dem Abschließen <strong>gelöscht.</strong>\n  </div>\n</div>\n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-06-25T14:13:24+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2021-07-02T09:21:27+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1625217687991,"ct":1624630404407,"a_depth":4,"a":["apps","3fbe0efd-713a-457a-a34c-3a12aa19d6bb","0fb162f4-0f78-4c1e-aad2-43c27e6d98cb","e170bb6c-f326-446d-870a-ada9d9f67230"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"44996d19-9aa3-48b2-b1fb-4e74f2247f5e","v":"d8277903fb4782bc","previous":{"v":"0cdfe566bb1846cf"},"p":"093b2f65-2a18-4639-9a6a-59b9006d52ee","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"color","applies":"","template":"<div class=\"_CSS-color\" :style=\"{ 'background-color': data.color }\"></div>","css":"._CSS {\n  flex:1;\n  display: flex;\n}\n\n._CSS-color {\n  flex: 1;\n  border-radius: var(--ae-border-radius);\n}\n","controller":"","packages":[]},"locks":[],"created":{"at":"2018-09-05T09:02:35+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2019-08-22T12:35:38+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1566477338738,"ct":1536138155600,"a_depth":5,"a":["apps","83c76376-420e-4231-9275-d0fe2ab47c32","5f76a5c6-0ebc-4a08-b5ae-84fd3176f9c9","351909be-5fd2-4c27-834d-3c094a8bade3","093b2f65-2a18-4639-9a6a-59b9006d52ee"],"a_forms":["folder","application-form","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"ee2a673e-d6d9-4267-a028-7bd909f568cd","v":"efc287f9766f141a","cloneOf":{"id":"44996d19-9aa3-48b2-b1fb-4e74f2247f5e","v":"0cdfe566bb1846cf","text":"color"},"originalCloneOf":{"id":"44996d19-9aa3-48b2-b1fb-4e74f2247f5e","v":"0cdfe566bb1846cf","text":"color"},"previous":{"v":"initial"},"p":"674d8994-c7b4-4f40-aaea-ca361e8490de","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"color","applies":"","template":"<div class=\"_CSS-color\" :style=\"{ 'background-color': data.color }\"></div>","css":"._CSS {\n  flex:1;\n  display: flex;\n}\n\n._CSS-color {\n  flex: 1;\n  border-radius: var(--ae-border-radius);\n}\n","controller":"","packages":[]},"locks":[],"created":{"at":"2019-08-21T09:25:37+00:00","by":"2695f56c-96e6-4009-8e2f-d545ea1e02aa","from":"","client":"server"},"modified":{"at":"2019-08-22T12:32:32+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1566477152273,"ct":1566379537785,"a_depth":4,"a":["apps","f93ac233-7aa7-4561-a3b3-d8ebda0ee514","fc09d59c-bdef-4b1e-854e-d907bc11b295","674d8994-c7b4-4f40-aaea-ca361e8490de"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"8d6031c0-b25f-479a-8065-c602dd15682f","v":"044adf68cc583398","previous":{"v":"initial"},"p":"fallback-designs","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"colored-circle","template":"<div :title=\"data.name\" class=\"_CSS-circle\" :class=\"{ '_CSS-circle--expanded': params.expand }\" :style=\"{ 'background-color': data.color || data[params.fieldName] || 'black' }\">\n  <ae-design v-if=\"params.expand\" name=\"title\" :document=\"document\"></ae-design>\n</div>\n","css":"._CSS-circle {\n  width: 16px;\n  height: 16px;\n  border-radius: 50%;\n  color: white;\n  font-size: var(--ae-font-size-2);\n}\n\n._CSS-circle._CSS-circle--expanded {\n  width: min-content;\n  height: 16px;\n  border-radius: 50%;\n  padding: 0 var(--ae-space-1);\n  font-size: var(--ae-font-size-2);\n}","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-04-19T12:30:04+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","from":"","client":"server"},"modified":{"at":"2023-04-19T12:30:19+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1681907419584,"ct":1681907404741,"a_depth":2,"a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"],"inheritedLocks":[null,null,null],"stamps":[]},{"id":"d78b2fce-85f5-4405-8508-6ac941fa083a","v":"43e1905142bcfcc3","p":"fallback-designs","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"colored-pill","template":"<div :title=\"data.name\" class=\"_CSS-pill\" :class=\"{ '_CSS-pill--expanded': params.expand }\" :style=\"{ 'background-color': data.color || data[params.fieldName] || '#9ca3af' }\">\n  <ae-design v-if=\"params.expand\" name=\"title\" :document=\"document\"></ae-design>\n</div>\n","css":"._CSS-pill {\n  width:40px;\n  height: 8px;\n  border-radius: var(--ae-border-radius);\n  color: white;\n  font-size: var(--ae-font-size-2);\n}\n\n._CSS-pill._CSS-pill--expanded {\n  width: min-content;\n  height: 16px;\n  border-radius: var(--ae-border-radius);\n  padding: 0 var(--ae-space-1);\n  font-size: var(--ae-font-size-2);\n}","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-09-29T15:06:19+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-04-12T08:45:15+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720684627128,"ct":1720684627128,"a_depth":2,"a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"],"inheritedLocks":[null,null,null],"stamps":[],"previous":{"v":"dfda965878216f53","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"}},"meta":{"modified":{"at":"2024-07-11T09:57:07+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"5b2659db-98c5-4031-98f5-50291e30f1e8","v":"592298177c2ac3cf","p":"acba7314-8507-4720-9781-3189575ae343","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"column","template":"<document-list apply-global-filter list-id=\"ed9172cb-3d86-4d3b-a776-c79665b0834b\" query-id=\"{{data.query.id}}\"\n  option-design=\"{{data.design}}\" \n  option-title=\"{{data.name}}\"\n  option-show-account-filter=\"{{data.showAccountFilter}}\"\n  option-default-account-filter-state=\"{{data.defaultAccountFilterState}}\"\n  option-account-filter-field=\"{{data.accountFilterField}}\"></document-list>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2017-08-23T08:24:50+02:00","by":"","from":"","client":"import"},"modified":{"at":"2020-06-30T10:53:26+00:00","by":"8e6c22aa-8c69-4ff8-919a-7032841cf636","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1719473826680,"ct":1719473826680,"a_depth":3,"a":["system","system-forms","acba7314-8507-4720-9781-3189575ae343"],"a_forms":["system-folder-form","repository-folder-form","form"],"inheritedLocks":[null,null,null,null],"stamps":[],"previous":{"v":"c8b849a5d07e8e5b","f":{"id":"design-form","v":"9bfe8e0cd909c1f0","text":"Design"}},"meta":{"modified":{"at":"2024-06-27T07:37:06+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"372fdaa3-10a9-4519-9abf-c1c4270e23a0","v":"initial","p":"6c4f14e0-a9ee-4f78-b75f-75249b074054","f":{"id":"design-form","v":"3385ac6766f32638","text":"Design"},"data":{"name":"column-items-received","template":"<ae-design v-for=\"item of data.items\" name=\"ref-card,title\" :document=\"item\" :param-no-border=\"true\" :param-no-remove=\"true\" :param-no-price=\"true\"></ae-design>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-11-02T09:38:36+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-11-02T09:38:36+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1635845916654,"ct":1635845916654,"a_depth":4,"a":["apps","781ff5de-69db-49dc-99f0-f328b308cd7d","dbd0bd68-3479-4032-9303-9d51615c27a7","6c4f14e0-a9ee-4f78-b75f-75249b074054"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"3f4f8c08-cad0-4d70-b57e-3acaa5207de0","v":"initial","p":"ee4b6777-b620-43a9-9cde-7261dfc5c616","f":{"id":"design-form","v":"3385ac6766f32638","text":"Design"},"data":{"name":"column-ordered-item","template":"<ae-design v-for=\"item of data.items\" name=\"ref-card,title\" :document=\"item\" :param-no-border=\"true\" :param-no-price=\"true\"></ae-design>","css":"","controller":"init() {\r\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-11-02T09:38:35+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-11-02T09:38:35+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1635845915961,"ct":1635845915961,"a_depth":4,"a":["apps","781ff5de-69db-49dc-99f0-f328b308cd7d","dbd0bd68-3479-4032-9303-9d51615c27a7","ee4b6777-b620-43a9-9cde-7261dfc5c616"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"c38cd74c-f03f-404c-b091-dc6b1da29dd9","v":"932cdad86485f0ea","previous":{"v":"f15bc7908274dc25"},"p":"8d1804b0-c5c6-4acf-a15f-1b02872e792e","f":{"id":"design-form","v":"0061789efb5c5c29","text":"Design"},"data":{"name":"command-card","template":"\n<div class=\"bp-card bp-card--bordered\" @click.stop=\"$emit('selected', document.p)\">\n  <ae-design name=\"ref-card-title\" :document=\"document\"></ae-design>\n\n\n  <ae-layout  v-if=\"!params.readonly\"\n              layout-id=\"ed784d22-af86-420e-b70c-15a6e4dc7512\"\n              param-command-id=\"063c51a9-4d61-49a0-8b0c-31e6b0388986\"\n              :param-options=\"{ position: document }\"\n              :param-target=\"params.contextDocument\"\n  ></ae-layout>\n</div>\n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-10-02T13:06:20+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2020-10-12T14:55:35+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1602514535557,"ct":1601643980878,"a_depth":4,"a":["apps","0924db0f-7095-4b51-8966-bad1e45d68ec","a3b935e7-60bc-4996-9b18-668e4361067f","8d1804b0-c5c6-4acf-a15f-1b02872e792e"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"2e0106c6-afe0-414b-9529-5b4885e296de","v":"initial","previous":{"v":""},"p":"8b64a4e4-bcc0-4080-9913-bc973143abd9","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"content","applies":"","template":"{{data.question}}","css":"._CSS {\n  white-space: pre;\n  word-break: break-all;\n}","controller":"","packages":[]},"locks":[],"created":{"at":"2018-07-06T12:14:25+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2018-07-06T12:14:25+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1530879265872,"ct":1530879265872,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","8b64a4e4-bcc0-4080-9913-bc973143abd9"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"45526a81-c2f3-4e13-9b30-c206e1d2f602","v":"initial","previous":{"v":""},"p":"84043618-903e-4666-83b5-9cf5449ba8f4","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"content","applies":"","template":"{{data.answer}}","css":"._CSS {\n  white-space: pre-line;\n  word-break: break-all;\n}","controller":"","packages":[]},"locks":[],"created":{"at":"2018-07-06T12:14:01+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2018-07-06T12:14:01+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1530879241882,"ct":1530879241882,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","84043618-903e-4666-83b5-9cf5449ba8f4"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"e326a446-bbe3-4335-866a-d34191f010ff","v":"initial","p":"22edaaeb-3d02-4c07-a801-e90544aff249","f":{"id":"design-form","v":"5910dbdd1c0b7469","text":"Design"},"data":{"name":"content","applies":"","description":"","template":"<div class=\"_CSS-elements\">\n  <ae-layout  v-for=\"element of locals.elements\"\n              class=\"_CSS-element\"\n              :layout-id=\"element.data.layout.id\"\n              :param-page-document-id=\"params.pageDocumentId\"\n              :param-company-id=\"params.companyId\"\n              :param-user-id=\"params.userId\"\n              :param-account-id=\"params.accountId\"\n  ></ae-layout>\n</div>\n","css":"._CSS-elements {\n  display: flex;\n  flex-flow: column;\n  height: 100%;\n}\n\n._CSS-element {\n  min-height: 0;\n  min-width: 0;\n}","controller":"class Controller {\n  async init() {\n    locals.elements = await Aeppic.getAll(data.elements)\n  }\n}","packages":[]},"locks":[],"created":{"at":"2019-09-20T08:59:31+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2019-09-20T08:59:31+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1568969971244,"ct":1568969971244,"a_depth":4,"a":["apps","8fa52498-fa07-4bad-87b3-5c8df671aca4","2540faf9-e3fd-4b52-aad8-53f43274e0a2","22edaaeb-3d02-4c07-a801-e90544aff249"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"f0f959f8-8ce4-4777-ada7-7d1536a46d77","v":"0147f7bff027b14f","previous":{"v":"a20c83ff1c5a90f2"},"p":"555c5db8-bfe2-4210-968d-d2b6580cfdce","f":{"id":"design-form","v":"5910dbdd1c0b7469","text":"Design"},"data":{"name":"content","applies":"","description":"","template":"<div class=\"_CSS-elements\">\n  <ae-layout  v-for=\"element of locals.elements\"\n              class=\"_CSS-element\"\n              :layout-id=\"element.data.layout.id\"\n              :param-page-document-id=\"params.pageDocumentId\"\n              :param-company-id=\"params.companyId\"\n              :param-user-id=\"params.userId\"\n              :param-account-id=\"params.accountId\"\n  ></ae-layout>\n</div>\n","css":"._CSS-elements {\n  display: flex;\n  flex-flow: column;\n  height: 100%;\n}\n\n._CSS-element {\n  min-height: 0;\n  min-width: 0;\n}","controller":"class Controller {\n  async init() {\n    locals.elements = await Aeppic.getAll(data.elements)\n  }\n}","packages":[]},"locks":[],"created":{"at":"2018-11-29T15:57:53+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2018-12-04T14:29:54+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1543933794214,"ct":1543507073656,"a_depth":4,"a":["apps","43f84041-0fd7-4ccb-b7b5-7a38f89ada37","5d6fa6d3-7580-4c6f-9487-fff961f9c751","555c5db8-bfe2-4210-968d-d2b6580cfdce"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"b9ee0aad-a3e6-485a-a311-fc8a6db6311f","v":"94c83038f502fdf3","previous":{"v":"385e80ff5e3ea2f4"},"p":"dbee6e16-d63a-493c-bba6-505f79918f9f","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"contextmenu__entries","template":"<div class=\"_CSS-list\">\n  <div class=\"_CSS-entry\">\n    <ae-design name=\"download-and-print-buttons\" :document=\"document\" :param-no-print=\"true\"></ae-design>\n  </div>\n</div> \n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-12-21T13:40:48+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-12-21T14:08:24+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1640095704687,"ct":1640094048442,"a_depth":4,"a":["apps","45ada186-e9fd-451d-9dbd-2defc0b4f86f","4ec6a0e5-cf2d-4095-9b70-2e31a64d5679","dbee6e16-d63a-493c-bba6-505f79918f9f"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"d87e73f7-02db-43c6-b4ab-1b4562591af2","v":"465f684a29175ef8","previous":{"v":"initial"},"p":"6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"contextmenu__entries","template":"<div class=\"_CSS-list\">\n  <div class=\"_CSS-entry\">\n    <ae-design name=\"download-and-print-buttons\" :document=\"document\" :param-no-print=\"true\"></ae-design>\n  </div>\n</div> \n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-12-21T14:15:59+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-12-21T14:16:02+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1640096162639,"ct":1640096159067,"a_depth":4,"a":["apps","3d43a3f5-fea4-488d-9fc1-9dee5e694623","7c30f282-2b84-4976-8735-ba78662ea5e6","6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"e7be472b-8f73-4c39-b92e-c271f3461cfc","v":"7120a0b9743e6cc8","previous":{"v":"d85d3be9e1cd9906"},"p":"7105a939-989c-4154-96e8-44f17f556b2a","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"contracted-size-of-tenant","template":"<div class=\"flex gap-1\">\n  <div v-for=\"(contract, index) of locals.contractsByTenant\" class=\"flex items-center\">\n    <ae-design name=\"styled-size-by-status\" :document=\"contract\" class=\"text-xs\"></ae-design>\n    <ae-icon v-if=\"index + 1 < locals.contractsByTenant.length\" class=\"far fa-plus\"></ae-icon>\n  </div>\n</div>  ","css":"","controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Contract: 'b4b13fc6-7d06-4832-93b0-cd27405e269d',\n    }\n\n    locals.contractsByTenant = []\n    locals.contractsByTenant = await Aeppic.find(`p:${document.p} f.id:${this.FORMS.Contract} data.einheit:${document.id} data.mieter:${params.tenantId}`)\n  }\n} ","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-09-22T13:51:28+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-09-22T14:12:02+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1663855922166,"ct":1663854688669,"a_depth":4,"a":["apps","86189c5a-b9f4-445a-879f-d94574960df0","15292d56-6806-4263-b6d0-9194687203e1","7105a939-989c-4154-96e8-44f17f556b2a"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"d3dcdd1a-c8ef-4330-b831-23f818671470","v":"02199bcba15f2cae","p":"fallback-designs","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"controls","template":"\n      <div class=\"ae-row\">\n        <div class=\"ae-col\">\n          <h4>Controls</h4>\n          <pre style=\"background:#F0F0F0\">{{document.f.id}} @ {{document.f.v}}</pre>\n          <ae-control name=\"aeppic:text\" :document=\"document\" field-name=\"name\"></ae-control>\n          <ae-control name=\"html\" :document=\"document\" field-name=\"html\"></ae-control>\n          <!--<ae-control name=\"multiline\" :document=\"document\" field-name=\"html\"></ae-control>-->\n          <button v-if=\"!isEditing\" @click=\"startEditing\">Edit</button>\n          <div v-if=\"isEditing\" >\n            <button @click=\"saveAndStopEditing\">Save and Stop Editing</button>\n            <button @click=\"cancelEditing\">Cancel</button>\n            <button @click=\"resetEdits\">Reset</button>\n            <button @click=\"save\">Save</button>\n          </div>\n        </div>\n      </div>\n    ","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2017-08-23T08:24:50+02:00","by":"","from":"","client":"133c4b0f-80f9-43e8-a582-f95027b786bc"},"modified":{"at":"2020-06-30T09:30:13+00:00","by":"8e6c22aa-8c69-4ff8-919a-7032841cf636","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720684627128,"ct":1720684627128,"a_depth":2,"a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"],"inheritedLocks":[null,null,null],"stamps":[],"previous":{"v":"337c60c2ee8895fe","f":{"id":"design-form","v":"9bfe8e0cd909c1f0","text":"Design"}},"meta":{"modified":{"at":"2024-07-11T09:57:07+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"a":["apps","5acfd7a2-33e4-498a-9150-71e1ab772bfc","20c92864-6a81-4006-96f9-b78f473cd129","17c3a5d3-90ba-4592-961b-0800873ef9c1"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"03fe10ac-a9f6-4445-8c0d-96ffef534762","text":"page","v":"ac8c2a4c3a98cf06"},"created":{"at":"2020-05-29T14:50:45+00:00","backedBy":null,"by":"870fac1f-b0d7-4925-b191-a43166960419","client":"server","from":"","impersonatedBy":null},"ct":1590763845975,"data":{"applies":"","controller":"class Controller {\n  async init() {\n    locals.view = 'project'\n\n    locals.sort = {\n      field: 'data.name'\n    }\n\n    locals.showDoneProjects = false\n    locals.showDetails = false\n\n    await Aeppic.nextRenderPass()\n\n    const canEdit = await Aeppic.canEdit(document)\n\n    if (Aeppic.Account && Aeppic.Account.data.isGroupAccount === true) {\n      // a group account can only edit if it got rights assigned. Unsecured folders are not editable.\n      const editable = await Aeppic.edit(document)\n      const isLocked = editable.hasInheritedLock() || editable.hasLock()\n\n      if (isLocked) {\n        locals.canEdit = canEdit === true\n      } else {\n        locals.canEdit = false\n      }\n    } else {\n      locals.canEdit = canEdit\n    }\n\n    if (locals.canEdit) {\n      locals.tasksRequest = await this._newTasksRequest()\n\n      locals.newTask = this.newTask()\n    }\n  }\n\n  async _newTasksRequest() {\n    return Aeppic.new('7ee39da0-908a-4db7-8bdb-53f73fedb61b', document.id)\n  }\n\n  async newTask(name) {\n    const task = await Aeppic.new('3d456c38-6282-416e-8c5e-7d20b0517a6e', document.id)\n\n    const taskForm = await Aeppic.getFormForDocument(task)\n    const assigneesParams =  taskForm.getFieldControlParams('verantwortlich')\n\n    if (assigneesParams.defaultValueCommand) {\n      const result = await Aeppic.Commands.execute(assigneesParams.defaultValueCommand, document, { account: Aeppic.Account })\n\n      if (result.ok && result.value) {\n        task.addReference('verantwortlich', result.value)\n      }\n    }\n\n    if (name) {\n      task.data.name = name\n    }\n\n    return task\n  }\n\n  async createTasksBasedOnRequest() {\n    if (!locals.canEdit) {\n      return\n    }\n\n    const editableDocument = await Aeppic.edit(document)\n\n    const userinput = locals.tasksRequest.data.aufgaben\n    const taskNames = userinput.split(/\\n/).filter(n => n !== '')\n\n    for (const name of taskNames) {\n      const task = await this.newTask(name)\n      await this._saveTask(editableDocument, task)\n    }\n\n    Aeppic.save(editableDocument)\n\n    locals.tasksRequest = await this._newTasksRequest()\n  }\n\n  // async saveBulkTasks() {\n  //   const taskNames = locals.bulkTasks.split(/\\n/).filter(n => n !== '')\n\n  //   for (const name of taskNames) {\n  //     const task = await this.newTask(name)\n  //     this._saveTask(task)\n  //   }\n\n  //   Aeppic.save(document)\n\n  //   locals.bulkTasks = ''\n  // }\n\n  // async saveNewTask() {\n  //   this._saveTask(locals.newTask)\n  //   Aeppic.save(document)\n\n  //   locals.newTask = this.newTask()\n  // }\n\n  async _saveTask(editableDocument, task) {\n    Aeppic.save(task)\n\n    const form = await Aeppic.getFormForDocument(editableDocument)\n    const params = form.getFieldControlParams('aufgaben')\n\n    editableDocument.addReference('aufgaben', task, {\n      addToBeginning: params.addToBeginning\n    })\n  }\n\n  minColumnWidth(preferedWidth) {\n    if (locals.view === 'card--wide') { \n      return '1fr'\n    }\n\n    if (preferedWidth) {\n      return preferedWidth\n    }\n\n    return 'max-content'\n  }\n\n  get maxColumnWidth() {\n    if (Aeppic.Device === 'Phone' || locals.view === 'card--wide') {\n      return '1fr'\n    }\n\n    return '30rem'\n  }\n\n  toolbarEvent(eventType) {\n    if (eventType === 'save') {\n      $refs.form.save()\n      $refs.form.resetEdits()\n\n      return\n    }\n    if (eventType === 'reset') {\n      $refs.form.resetEdits()\n\n      return\n    }\n\n    if (eventType === 'view_details_true') {\n      locals.showDetails = true\n      return\n    }\n    if (eventType === 'view_details_false') {\n      locals.showDetails = false\n      return\n    }\n    if (eventType === 'view_done_true') {\n      locals.showDoneProjects = true\n      return\n    }\n    if (eventType === 'view_done_false') {\n      locals.showDoneProjects = false\n      return\n    }\n  }\n}\n","css":"._CSS {\n  overflow: hidden !important;\n}\n\n._CSS-body-container {\n  padding: var(--bp-page-content-padding);\n  overflow: scroll;\n  height: 100%;\n}\n._CSS-body {\n  max-width: var(--ae-page-max-width);\n  margin: auto;\n}\n\n._CSS-header {\n  color: gray;\n  font-size: 0.9em;\n  font-weight: bold;\n}\n\n._CSS-header ~ ._CSS-header {\n  margin-top: 3em;\n}\n\n._CSS-header ~ * {\n  margin-top: 1em;\n}\n\n._CSS-new-tasks-container {\n  max-width: 600px;\n}\n\n._CSS-new-tasks {\n  display: flex;\n  flex-wrap: wrap;\n}\n\n._CSS-new-tasks__input {\n  flex: 1;\n}\n\n._CSS-button {\n  padding: 4px 8px;\n  margin: 8px 0; \n  display: flex;\n  justify-content: center;\n  align-items: center;\n  border-radius: 2px;\n  border: 1px solid hsl(0, 0%, 76%);\n  background: white;\n  color: hsl(0, 0%, 34%);\n  height: 28px;\n  cursor: pointer;\n}\n\n","name":"copy of page","packages":[],"template":"<div class=\"_CSS-body-container\" @toolbar=\"controller.toolbarEvent($event.detail)\">\n  <div class=\"_CSS-body\">\n\n    <div style=\"display:flex;padding:0 var(--ae-size-2)\" v-if=\"Aeppic.Account && Aeppic.Account.data.allowDevMode\">\n      <div class=\"ae-button ae-button--secondary\" @click.stop=\"locals.view = 'report'\">\n        Bericht\n      </div>\n\n      <div class=\"ae-button ae-button--secondary\" @click.stop=\"locals.view = 'project'\">\n        Projekt\n      </div>\n    </div>\n\n    <template v-if=\"locals.view === 'project'\">\n      <ae-list \n        :root-document-id=\"document.id\"\n        type=\"children\"\n        filter=\"f.id:3ef82fa1-425d-4592-b120-1a6fc967802d\"\n        sort=\"data.bis\"\n        list-id=\"208b6d2d-4198-45a7-b716-b697e8e39d39\"\n        @selected=\"Aeppic.navigateTo($event.id)\"\n        ></ae-list>\n \n      <ae-list \n        query-id=\"cb73486b-3c55-4cc7-b0d8-343045721940\"\n        list-id=\"2dab232c-2c8a-4aa4-b3f9-6023a7116161\"\n        :param-by=\"locals.by\"\n        :param-asc=\"locals.asc\"\n        :filter=\"controller.statusToFilter\"\n        :root-document-id=\"document.id\"\n        @selected=\"Aeppic.navigateTo($event.id)\"\n        :param-min-column-width=\"controller.minColumnWidth('30rem')\"\n        :param-max-column-width=\"controller.maxColumnWidth\"\n        param-title=\"Teilprojekte\"\n        :param-hide-empty=\"true\"\n        param-design=\"card--wide,card\"\n        :param-design-params=\"{ forceShowDetails: locals.showProjectDetails }\"\n        :sort=\"locals.sort\"\n        ></ae-list>\n\n      <ae-list \n        v-if=\"locals.showDoneProjects\"\n        query-id=\"1452da1d-76cf-4b00-b110-b6915ee2ff36\"\n        list-id=\"2dab232c-2c8a-4aa4-b3f9-6023a7116161\"\n        :root-document-id=\"document.id\"\n        @selected=\"Aeppic.navigateTo($event.id)\"\n        :param-min-column-width=\"controller.minColumnWidth('30rem')\"\n        :param-max-column-width=\"controller.maxColumnWidth\"\n        param-title=\"Erledigte Teilprojekte\"\n        param-design=\"card--wide,card\"\n        :param-design-params=\"{ forceShowDetails: locals.showProjectDetails }\"\n        :sort=\"locals.sort\"\n        \n        ></ae-list>\n\n      <div class=\"_CSS-new-tasks-container\">\n        <div v-if=\"locals.tasksRequest\" class=\"_CSS-new-tasks\"> \n          <ae-form  :document=\"locals.tasksRequest\"\n                    :watch=\"false\"\n                    @data-changed=\"Aeppic.commit(locals.tasksRequest)\"\n                    class=\"_CSS-new-tasks__input\"\n          ></ae-form>\n          <div class=\"ae-form-cell ae-control-container\">\n            <div class=\"ae-form-cell__label\">&nbsp;</div>\n            <button class=\"ae-button ae-button--secondary\" @click=\"controller.createTasksBasedOnRequest()\">\n              <span v-if=\"locals.tasksRequest.data.containsNewlines\">\n                Mehrere Aufgaben speichern\n              </span>\n              <span v-else>\n                Aufgabe speichern\n              </span>\n            </button>\n          </div>\n        </div>\n      </div>\n      <ae-form\n        ref=\"form\"\n        :document=\"document\"\n        layout-id=\"8974ef10-ff5f-4584-8299-59979915d2b6\"\n        :readonly=\"!locals.canEdit\"\n        :param-no-add=\"true\"\n        @data-changed=\"Aeppic.commit(document)\"\n      ></ae-form>\n    </template>\n    <ae-layout \n              v-else-if=\"locals.view === 'report'\"\n              layout-id=\"5be16a98-bdc2-4587-8f72-57cd43ca0292\"\n              :param-document=\"document\"\n              :param-options=\"{ commandId: '08a4d3e9-c2c0-44eb-a688-45f58652d1da', formId: '3d456c38-6282-416e-8c5e-7d20b0517a6e', queryString: 'data.erledigt:false' }\"\n    ></ae-layout>\n  </div>\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"44303cec40b3e1fa"},"id":"2a6f9509-cb6d-4c1f-8450-4777bc9f690b","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-07-03T11:54:16+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"03fe10ac-a9f6-4445-8c0d-96ffef534762","text":"page","v":"ac8c2a4c3a98cf06"},"p":"17c3a5d3-90ba-4592-961b-0800873ef9c1","previous":{"v":"initial"},"stamps":[],"t":1751543656494,"v":"5af1b11478ffb28c"},{"id":"08ef2ca3-1125-4bf8-bed0-e7a65b10ee36","v":"initial","p":"74a858ae-4f61-4533-a6f7-a1d56dc81c0f","f":{"id":"design-form","v":"2d98bf27c3108340","text":"Design"},"data":{"name":"created-at","applies":"","description":"","template":"{{Aeppic.DateTime.fromISO(document.created.at).toLocaleString(Aeppic.DateTime.DATETIME_SHORT)}}\n","css":"","controller":"","packages":[]},"locks":[],"created":{"at":"2018-10-30T12:57:08+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2018-10-30T12:57:08+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1540904228518,"ct":1540904228518,"a_depth":5,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","1116d922-d8df-4da5-a7c2-70191d07d929","5cdd2d20-7676-43e3-8997-e176dd3434ed","74a858ae-4f61-4533-a6f7-a1d56dc81c0f"],"a_forms":["folder","application-form","folder","form-folder","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"31901676-09d5-4fb8-961c-42b659e8ec29","v":"initial","p":"b5c3fe35-3566-4975-b10c-fc93cfb43297","f":{"id":"design-form","v":"2d98bf27c3108340","text":"Design"},"data":{"name":"created-at","applies":"","description":"","template":"{{Aeppic.DateTime.fromISO(document.created.at).toLocaleString(Aeppic.DateTime.DATETIME_SHORT)}}\n","css":"","controller":"","packages":[]},"locks":[],"created":{"at":"2018-10-30T12:56:38+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2018-10-30T12:56:38+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1540904198331,"ct":1540904198331,"a_depth":5,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","1116d922-d8df-4da5-a7c2-70191d07d929","5cdd2d20-7676-43e3-8997-e176dd3434ed","b5c3fe35-3566-4975-b10c-fc93cfb43297"],"a_forms":["folder","application-form","folder","form-folder","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"48570430-98ac-498f-a72a-923e3fc15eb2","v":"initial","p":"4ae738ec-fc22-40d8-8d2b-159b5652a173","f":{"id":"design-form","v":"2d98bf27c3108340","text":"Design"},"data":{"name":"created-at","applies":"","description":"","template":"{{Aeppic.DateTime.fromISO(document.created.at).toLocaleString(Aeppic.DateTime.DATETIME_SHORT)}}\n","css":"","controller":"","packages":[]},"locks":[],"created":{"at":"2018-10-30T12:56:58+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2018-10-30T12:56:58+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1540904218333,"ct":1540904218333,"a_depth":5,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","1116d922-d8df-4da5-a7c2-70191d07d929","5cdd2d20-7676-43e3-8997-e176dd3434ed","4ae738ec-fc22-40d8-8d2b-159b5652a173"],"a_forms":["folder","application-form","folder","form-folder","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"883dfb90-6910-40be-b2c5-4fc15673748f","v":"initial","p":"fe83e9dd-c628-4109-b1b6-5461dec2d156","f":{"id":"design-form","v":"2d98bf27c3108340","text":"Design"},"data":{"name":"created-at","applies":"","description":"","template":"{{Aeppic.DateTime.fromISO(document.created.at).toLocaleString(Aeppic.DateTime.DATETIME_SHORT)}}\n","css":"","controller":"","packages":[]},"locks":[],"created":{"at":"2018-10-30T12:56:28+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2018-10-30T12:56:28+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1540904188706,"ct":1540904188706,"a_depth":5,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","1116d922-d8df-4da5-a7c2-70191d07d929","5cdd2d20-7676-43e3-8997-e176dd3434ed","fe83e9dd-c628-4109-b1b6-5461dec2d156"],"a_forms":["folder","application-form","folder","form-folder","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"8f231a4d-f2db-4cea-9871-37239dd866f7","v":"initial","p":"0a985995-9335-45ae-a549-457fd9c4b9cc","f":{"id":"design-form","v":"2d98bf27c3108340","text":"Design"},"data":{"name":"created-at","applies":"","description":"","template":"{{Aeppic.DateTime.fromISO(document.created.at).toLocaleString(Aeppic.DateTime.DATETIME_SHORT)}}\n","css":"","controller":"","packages":[]},"locks":[],"created":{"at":"2018-10-30T12:56:54+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2018-10-30T12:56:54+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1540904214282,"ct":1540904214282,"a_depth":5,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","1116d922-d8df-4da5-a7c2-70191d07d929","5cdd2d20-7676-43e3-8997-e176dd3434ed","0a985995-9335-45ae-a549-457fd9c4b9cc"],"a_forms":["folder","application-form","folder","form-folder","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"b55ae832-6b9e-42c0-8c22-b90276c7a440","v":"initial","p":"5b36e2dc-cb89-46a0-8806-0db032bbc247","f":{"id":"design-form","v":"2d98bf27c3108340","text":"Design"},"data":{"name":"created-at","applies":"","description":"","template":"{{Aeppic.DateTime.fromISO(document.created.at).toLocaleString(Aeppic.DateTime.DATETIME_SHORT)}}\n","css":"","controller":"","packages":[]},"locks":[],"created":{"at":"2018-10-30T12:57:16+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2018-10-30T12:57:16+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1540904236996,"ct":1540904236995,"a_depth":5,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","1116d922-d8df-4da5-a7c2-70191d07d929","5cdd2d20-7676-43e3-8997-e176dd3434ed","5b36e2dc-cb89-46a0-8806-0db032bbc247"],"a_forms":["folder","application-form","folder","form-folder","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"b93c65df-ed14-45d3-b288-bc060a3dc082","v":"initial","previous":{"v":""},"p":"686d22ba-414e-452f-9795-f6f7bcab37d5","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"created-at","applies":"","template":"{{Aeppic.DateTime.fromISO(document.created.at).toLocaleString(Aeppic.DateTime.DATE_SHORT)}}\n","css":"","controller":"","packages":[]},"locks":[],"created":{"at":"2018-05-25T10:48:01+00:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","backedBy":null,"from":"","client":"server"},"modified":{"at":"2018-05-25T10:48:01+00:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","backedBy":null,"from":"","client":"server"},"t":1527245281057,"ct":1527245281057,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","686d22ba-414e-452f-9795-f6f7bcab37d5"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"e372020a-92ae-484a-ad46-877c3bc32f17","v":"initial","p":"5d7d1886-fee5-43f5-8b9d-d1a3e11fb2c4","f":{"id":"design-form","v":"2d98bf27c3108340","text":"Design"},"data":{"name":"created-at","applies":"","description":"","template":"{{Aeppic.DateTime.fromISO(document.created.at).toLocaleString(Aeppic.DateTime.DATETIME_SHORT)}}\n","css":"","controller":"","packages":[]},"locks":[],"created":{"at":"2018-10-30T12:57:02+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2018-10-30T12:57:02+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1540904222628,"ct":1540904222627,"a_depth":5,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","1116d922-d8df-4da5-a7c2-70191d07d929","5cdd2d20-7676-43e3-8997-e176dd3434ed","5d7d1886-fee5-43f5-8b9d-d1a3e11fb2c4"],"a_forms":["folder","application-form","folder","form-folder","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"fc8bb86e-be8a-413f-bc36-a2861d505704","v":"initial","p":"777ae286-69f6-4047-b3db-adde4e37db8e","f":{"id":"design-form","v":"2d98bf27c3108340","text":"Design"},"data":{"name":"created-at","applies":"","description":"","template":"{{Aeppic.DateTime.fromISO(document.created.at).toLocaleString(Aeppic.DateTime.DATETIME_SHORT)}}\n","css":"","controller":"","packages":[]},"locks":[],"created":{"at":"2018-10-30T12:56:45+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2018-10-30T12:56:45+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1540904205822,"ct":1540904205821,"a_depth":5,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","1116d922-d8df-4da5-a7c2-70191d07d929","5cdd2d20-7676-43e3-8997-e176dd3434ed","777ae286-69f6-4047-b3db-adde4e37db8e"],"a_forms":["folder","application-form","folder","form-folder","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"18b2086b-09b1-40e2-93f6-3e497fd85e6d","v":"caa4ba7689506641","p":"fallback-designs","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"creation-and-modification","template":"<span title=\"Erstellt\"><ae-icon class=\"fa fa-hourglass-start\"></ae-icon> </span>\n<ae-design name=\"profile-avatar\" :document-id=\"document.created.by\"></ae-design>\n<span>{{ Aeppic.DateTime.fromISO(document.created.at).toLocaleString(Aeppic.DateTime.DATETIME_SHORT) }}</span>\n<span style=\"margin-right: var(--ae-size-2)\">,</span>\n<span title=\"Geändert\"><ae-icon class=\"fa fa-history\"></ae-icon></span>\n<ae-design name=\"profile-avatar\" :document-id=\"document.modified.by\"></ae-design>\n<span>{{ Aeppic.DateTime.fromISO(document.modified.at).toLocaleString(Aeppic.DateTime.DATETIME_SHORT) }}</span>","css":"._CSS {\n  display: flex;\n  justify-content: flex-end;\n  align-items: center;\n}\n\n._CSS > * {\n  margin-right: var(--ae-size-1);\n}","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2019-05-03T13:05:19+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2020-06-30T09:30:13+00:00","by":"8e6c22aa-8c69-4ff8-919a-7032841cf636","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720684627128,"ct":1720684627128,"a_depth":2,"a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"],"inheritedLocks":[null,null,null],"stamps":[],"previous":{"v":"ce5d701ee4d4a320","f":{"id":"design-form","v":"9bfe8e0cd909c1f0","text":"Design"}},"meta":{"modified":{"at":"2024-07-11T09:57:07+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"f":{"id":"design-form","v":"e3fe9ece11aabc5e","text":"Design"},"p":"c0574720-6967-4293-94a8-e7b32a40fc6f","data":{"name":"datei","applies":"","template":"<td>\r\n  {{document}}\r\n          \r\n        </td>\r\n        <td>\r\n          {{child.data.datei.name}}\r\n        </td>\r\n         <td>\r\n          {{child.data.freigabe}}\r\n        </td>\r\n         <td>\r\n          {{child.data.autor}}\r\n        </td>\r\n         <td>\r\n          {{child.data.gueltigab}}\r\n        </td>"},"id":"dd712f8b-db9b-402c-8668-31be2644c2dd","v":"172928f7ad1f8cc8","t":1467644278898,"ct":1467644278879,"previous":{"v":"initial"},"modified":{"at":"2017-09-15T10:29:31+02:00","by":"","from":"","client":"import"},"created":{"at":"2017-09-15T10:29:31+02:00","by":"","from":"","client":"import"},"locks":[],"lockRefs":[],"inheritedLocks":[null,null,null,null,null],"a":["apps","3d43a3f5-fea4-488d-9fc1-9dee5e694623","7c30f282-2b84-4976-8735-ba78662ea5e6","c0574720-6967-4293-94a8-e7b32a40fc6f"],"a_forms":["folder","application-form","folder","form"],"a_depth":4,"stamps":[]},{"id":"4e8b42ef-ac1a-480f-992b-e4000ac8f1f2","v":"566630f92e9c0f91","p":"fallback-designs","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"day","template":"<span v-if=\"params.fieldName && data[params.fieldName.replace('data.', '')]\">{{ Aeppic.DateTime.fromISO(\n  data[params.fieldName.replace('data.', '')]\n  ).toLocaleString(Aeppic.DateTime.DATE_SHORT) }}</span>\n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2017-12-06T10:36:10+01:00","by":"","from":"","client":"8b96d91f-7c23-43ba-add0-e80f651e1d38"},"modified":{"at":"2020-06-30T09:30:13+00:00","by":"8e6c22aa-8c69-4ff8-919a-7032841cf636","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720684627128,"ct":1720684627128,"a_depth":2,"a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"],"inheritedLocks":[null,null,null],"stamps":[],"previous":{"v":"50275fae120d8e06","f":{"id":"design-form","v":"9bfe8e0cd909c1f0","text":"Design"}},"meta":{"modified":{"at":"2024-07-11T09:57:07+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"aaccb0bd-8198-498c-ba41-b55a4c25bf7a","v":"8876244fd4c4e385","p":"fallback-designs","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"days-left","template":"<span v-if=\"params.done && params.date\" class=\"\" title=\"\">\n  {{ Aeppic.DateTime.fromISO(params.date).toLocaleString() }}\n</span>\n<span v-if=\"!params.done && params.date\" class=\"flex gap-1\" :title=\"Aeppic.DateTime.fromISO(params.date).toLocaleString()\">\n  <div :class=\"{ 'text-red-500': controller.isOverdue, 'text-amber-500': controller.daysLeft <= 5 && controller.daysLeft >= 0 }\"\n  >\n    {{ controller.daysLeft === 0 ? 'Heute' : controller.daysLeft }}\n  </div>\n  <div v-if=\"controller.daysLeft !== 0\" class=\"flex gap-1\">\n    <template v-if=\"controller.daysLeft === 1\">Tag</template>\n    <template v-else>Tage</template>\n    <div v-if=\"controller.isOverdue\" class=\"text-red-500\">überfällig</div>\n    <div v-else>übrig</div>\n  </div>\n</span>  ","css":"","controller":"class Controller {\n  init() {\n    \n  }\n\n  get isOverdue() {\n    if (params.hideOverdue) {\n      return null\n    }\n\n    if (!params.done && params.date) {\n      return this.daysLeft <= 0\n    }\n \n    return false\n  }\n\n  get daysLeft() {\n    return params.date ? -Aeppic.DateTime.local().diff(Aeppic.DateTime.fromISO(params.date)).toFormat('d') : null\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-08-18T14:32:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-08-18T14:57:07+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720684627129,"ct":1720684627129,"a_depth":2,"a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"],"inheritedLocks":[null,null,null],"stamps":[],"previous":{"v":"b397a92c63a4d1ea","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"}},"meta":{"modified":{"at":"2024-07-11T09:57:07+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"f3982b6d-5cc4-4db9-9d44-3474a9eef01f","v":"b4c65ccf9258a291","p":"key-ref-form","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"default","template":"<div class=\"document-marker\">\n  <svg class=\"centerv\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\">\n    <rect x=\"0\" y=\"0\" width=\"100%\" height=\"100%\" ng-style=\"{'fill':document.color}\"/>\n  </svg>\n</div>   \n<span class=\"centerv label label-link document-label\">{{document.label}}</span>\n<span class=\"line-height centerv document-name\" title=\"{{data.description}}\">{{data.key.text}}</span>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2017-08-23T08:24:50+02:00","by":"","from":"","client":"import"},"modified":{"at":"2020-06-30T10:53:26+00:00","by":"8e6c22aa-8c69-4ff8-919a-7032841cf636","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1719473826680,"ct":1719473826680,"a_depth":3,"a":["system","system-forms","key-ref-form"],"a_forms":["system-folder-form","repository-folder-form","form"],"inheritedLocks":[null,null,null,null],"stamps":[],"previous":{"v":"0957f5d3488c3a49","f":{"id":"design-form","v":"9bfe8e0cd909c1f0","text":"Design"}},"meta":{"modified":{"at":"2024-06-27T07:37:06+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"e3511de1-33bc-4e33-b2d7-2b19e6734d00","v":"8cf7466a29a13cd1","previous":{"v":"initial"},"p":"14931d03-c3bb-4cf7-9f62-747f94d8b01a","f":{"id":"design-form","v":"5dbbefb312ab61e2","text":"Design"},"data":{"name":"deletion-info","template":"<div class=\"_CSS-page\" v-if=\"locals.ready\">\n  <div class=\"_CSS-content\">\n    <div>\n    Möchten Sie die Lesebestätigung für\n    </div>\n    <div style=\"font-weight:bold;\">\n      <div v-if=\"locals.receiver\" >\n      <ae-design  :document=\"locals.receiver\" name=\"avatar--tiny\" style=\"display:inline-block\"></ae-design>\n      <ae-design  :document=\"locals.receiver\" name=\"title\" style=\"display:inline-block\"></ae-design>\n      </div>\n      <div v-else>{{ data.empfaenger.text }} </div>\n    </div> \n    <div>\n      löschen?\n    </div>\n  </div>   \n\n  <div>\n    Diese Aktion ist nicht rückgängig machbar.<br>\n    Der Empfänger der Lesebestätigung erhält keine gesonderte Benachrichtigung.\n  </div>  \n</div>\n\n","css":"._CSS-page {\n  display: flex;\n  flex-flow: column;\n  gap: 1.5em;\n}\n\n._CSS-content {\n  display: flex;\n  align-items: center;\n  gap: 0.7em;\n}","controller":"class Controller {\n  async init() {\n    locals.ready = false\n\n    locals.receiver = null\n    locals.receiver = await Aeppic.get(data.empfaenger.id)\n\n    locals.ready = true\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-01-24T09:29:06+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-01-24T09:48:25+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1674553705071,"ct":1674552546141,"a_depth":4,"a":["apps","f416e371-07cc-4987-a6de-5934ef5ff3e4","1096c5df-2773-4914-9455-dc54e0f3e0e5","14931d03-c3bb-4cf7-9f62-747f94d8b01a"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"cfbff127-ac9e-4f06-ba6e-8258ccb7d9a8","v":"5d65b18c8a7a2c08","previous":{"v":"initial"},"p":"3230c10a-64af-48cc-8f3d-15fc16a40e5f","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"description","applies":"","template":"<span class=\"_CSS-text\">{{data.description}}</span>","css":"._CSS {\n  flex: 1;\n  display: flex;\n}\n\n._CSS-text {\n  flex: 1;\n  white-space: pre-wrap;\n}","controller":"","packages":[]},"locks":[],"created":{"at":"2018-06-13T12:11:58+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2018-06-13T12:12:40+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"from":"","client":"server"},"t":1528891960381,"ct":1528891918674,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","3230c10a-64af-48cc-8f3d-15fc16a40e5f"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"5f6415c1-cd4e-4b7f-bed1-10d87faa46e8","v":"4000fc1ad5c93d62","p":"fallback-designs","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"design-of-parent","template":"<ae-design :name=\"params.name\" :document-id=\"document.p\" v-on=\"$listeners\" :params=\"params\"></ae-design>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-02-03T12:26:51+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-02-03T12:28:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720684627129,"ct":1720684627129,"a_depth":2,"a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"],"inheritedLocks":[null,null,null],"stamps":[],"previous":{"v":"1947c0de459f8fe4","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"}},"meta":{"modified":{"at":"2024-07-11T09:57:07+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"4e229ac4-7be4-408e-a946-f44dbffc054c","v":"initial","p":"33b4d43f-ca46-46f7-98b6-0a077372188c","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"detail-page","template":"<ae-design\r\n  :document=\"document\"\r\n  name=\"page-toolbar\"\r\n  @toolbar=\"controller.handleToolbarEvent($event)\"\r\n></ae-design>\r\n<ae-form :document=\"document\" ref=\"content\"></ae-form>\r\n\r\n","css":"","controller":"\r\nhandleToolbarEvent(eventValue) { \r\n  console.log(eventValue)  \r\n\r\n  if (eventValue === 'save') {\r\n    $refs.content.save()\r\n  }\r\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-11-02T09:38:39+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-11-02T09:38:39+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1635845919933,"ct":1635845919933,"a_depth":4,"a":["apps","781ff5de-69db-49dc-99f0-f328b308cd7d","dbd0bd68-3479-4032-9303-9d51615c27a7","33b4d43f-ca46-46f7-98b6-0a077372188c"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"d375a301-d9f4-489c-a162-504bf3a46090","v":"initial","p":"85095086-2b96-40d0-bc27-4281f954bb9b","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"detail-page","template":"<ae-design\r\n  :document=\"document\"\r\n  name=\"page-toolbar\"\r\n  @toolbar=\"controller.handleToolbarEvent($event)\"\r\n></ae-design>\r\n<ae-form :document=\"document\" ref=\"content\"></ae-form>\r\n\r\n","css":"","controller":"\r\nhandleToolbarEvent(eventValue) { \r\n  console.log(eventValue)  \r\n\r\n  if (eventValue === 'save') {\r\n    $refs.content.save()\r\n  }\r\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-11-02T09:38:37+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-11-02T09:38:37+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1635845917962,"ct":1635845917962,"a_depth":4,"a":["apps","781ff5de-69db-49dc-99f0-f328b308cd7d","dbd0bd68-3479-4032-9303-9d51615c27a7","85095086-2b96-40d0-bc27-4281f954bb9b"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"1473724f-4b08-4bb4-bc6a-612f472f1832","v":"initial","previous":{"v":""},"p":"64500ae9-6089-4e55-add1-3e38c2fa1c41","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"detailed-list","applies":"","template":"<div layout=\"row\" flex>\n    <div flex=\"70\" click-navigates-to=\"{{document.id}}\">{{data.name}}</div>\n    <div flex=\"30\">{{data.gezeichnetDurch}}</div>\n</div>","css":"","controller":"","packages":[]},"locks":[],"lockRefs":[],"created":{"at":"2018-02-06T09:47:25+01:00","by":"","from":"","client":"server"},"modified":{"at":"2018-02-06T09:47:25+01:00","by":"","from":"","client":"server"},"t":1517906845777,"ct":1517906845777,"a_depth":4,"a":["apps","b791df37-6eef-4a3e-9066-1b79e0bdad31","35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f","64500ae9-6089-4e55-add1-3e38c2fa1c41"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"8b66194f-c41e-48de-801f-026953d8eefd","v":"initial","cloneOf":{"id":"1473724f-4b08-4bb4-bc6a-612f472f1832","v":"initial","text":"detailed-list"},"originalCloneOf":{"id":"1473724f-4b08-4bb4-bc6a-612f472f1832","v":"initial","text":"detailed-list"},"p":"b8604959-a785-48cd-8ff4-e886afb38d1d","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"detailed-list","applies":"","template":"<div layout=\"row\" flex>\n    <div flex=\"70\" click-navigates-to=\"{{document.id}}\">{{data.name}}</div>\n    <div flex=\"30\">{{data.gezeichnetDurch}}</div>\n</div>","css":"","controller":"","packages":[]},"locks":[],"created":{"at":"2019-04-11T08:43:39+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2019-04-11T08:43:39+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1554972219786,"ct":1554972219786,"a_depth":4,"a":["apps","b791df37-6eef-4a3e-9066-1b79e0bdad31","35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f","b8604959-a785-48cd-8ff4-e886afb38d1d"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"10b231b2-6bd5-4985-ae76-a03aac80008b","v":"initial","cloneOf":{"id":"f5a5f2d3-6da0-4d63-8b36-6f834fb1369c","v":"initial","text":"detailed-list-header"},"originalCloneOf":{"id":"f5a5f2d3-6da0-4d63-8b36-6f834fb1369c","v":"initial","text":"detailed-list-header"},"p":"b8604959-a785-48cd-8ff4-e886afb38d1d","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"detailed-list-header","applies":"","template":"<div layout=\"row\" flex>\n    <div flex=\"70\">Bezeichnung</div>\n    <div flex=\"30\">Abnahme durch</div>\n</div>","css":"","controller":"","packages":[]},"locks":[],"created":{"at":"2019-04-11T08:43:39+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2019-04-11T08:43:39+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1554972219791,"ct":1554972219791,"a_depth":4,"a":["apps","b791df37-6eef-4a3e-9066-1b79e0bdad31","35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f","b8604959-a785-48cd-8ff4-e886afb38d1d"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"f5a5f2d3-6da0-4d63-8b36-6f834fb1369c","v":"initial","previous":{"v":""},"p":"64500ae9-6089-4e55-add1-3e38c2fa1c41","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"detailed-list-header","applies":"","template":"<div layout=\"row\" flex>\n    <div flex=\"70\">Bezeichnung</div>\n    <div flex=\"30\">Abnahme durch</div>\n</div>","css":"","controller":"","packages":[]},"locks":[],"lockRefs":[],"created":{"at":"2018-02-06T09:47:27+01:00","by":"","from":"","client":"server"},"modified":{"at":"2018-02-06T09:47:27+01:00","by":"","from":"","client":"server"},"t":1517906847246,"ct":1517906847246,"a_depth":4,"a":["apps","b791df37-6eef-4a3e-9066-1b79e0bdad31","35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f","64500ae9-6089-4e55-add1-3e38c2fa1c41"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"22cc0821-7095-4e29-a971-91fd5ee1b20e","v":"e624d3c3e03f9a54","p":"fallback-designs","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"dev-title","template":"<div class=\"_CSS-title\" @click.stop=\"$emit('selected', document.id)\">\n  <div  class=\"_CSS-form-name\"\n        @click.stop=\"$emit('form-selected', document.f.id)\"\n        v-if=\"params.showForm\"\n        style=\"max-width:1500px; overflow:hidden; text-overflow:ellipsis\">\n        <ae-design name=\"title\" :document-id=\"document.f.id\"></ae-design>\n  </div> \n  <ae-design name=\"title\":document=\"document\" style=\"max-width:1500px; overflow:hidden; text-overflow:ellipsis\"></ae-design>\n</div>","css":"._CSS-title {\n  display: flex;\n  flex-direction: row;\n}\n\n._CSS-form-name {\n  font-size: 0.8em;\n  padding: 0 2px;\n  border: 1px solid var(--ae-border-color);\n  background: transparent;\n  border-radius: 2px;\n  width: 100px;\n  display:inline-block;\n  text-align: center;\n  overflow: hidden;\n  text-overflow: ellipsis; \n  margin: 2px 5px;\n}","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2018-05-23T11:43:39+02:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","from":"","client":"server"},"modified":{"at":"2020-06-30T09:30:13+00:00","by":"8e6c22aa-8c69-4ff8-919a-7032841cf636","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720684627129,"ct":1720684627129,"a_depth":2,"a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"],"inheritedLocks":[null,null,null],"stamps":[],"previous":{"v":"f04db49b233c2dc2","f":{"id":"design-form","v":"9bfe8e0cd909c1f0","text":"Design"}},"meta":{"modified":{"at":"2024-07-11T09:57:07+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"0f639296-af77-4684-8c5b-f56e3ebe0fcf","v":"7e55025ab6d3da4e","previous":{"v":"initial"},"p":"f56e0113-f097-4665-b04d-70d59acf8262","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"doctor-title","applies":"","template":"<ae-design name=\"avatar--tiny\" :document=\"data.tierarzt\"></ae-design>\n<ae-design style=\"margin-left: var(--ae-size-2)\" name=\"title-with-position\" :document=\"data.tierarzt\"></ae-design>","css":"._CSS {\n  display: flex;\n  align-items: flex-start;\n}","controller":"","packages":[]},"locks":[],"created":{"at":"2018-09-05T12:44:50+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2020-05-08T08:52:51+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1588927971151,"ct":1536151490401,"a_depth":5,"a":["apps","83c76376-420e-4231-9275-d0fe2ab47c32","bbe4e999-ca2c-4be4-8740-d07f051be556","c65a0941-942e-499f-8cd7-774aeeaf0a96","f56e0113-f097-4665-b04d-70d59acf8262"],"a_forms":["folder","application-form","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"7cd29550-38b4-4171-9656-9ee6de9a03a0","v":"f9ec85b88d9bca15","cloneOf":{"id":"e4cfe15c-1a36-44d3-9d0f-60db67603066","v":"07ccc07072a2be51","text":"download-and-print-buttons"},"originalCloneOf":{"id":"e4cfe15c-1a36-44d3-9d0f-60db67603066","v":"07ccc07072a2be51","text":"download-and-print-buttons"},"previous":{"v":"0c55a3c47a6f3192"},"p":"3f5de83a-40e4-4662-b436-3ed4879edb10","f":{"id":"design-form","v":"24435d748c76f819","text":"Design"},"data":{"name":"download-and-print-buttons","template":"<template v-if=\"controller.hasDownloadableConverted\">\n  <a :href=\"Aeppic.Content.getSrc(document, 'stallkarte')\" target=\"_blank\" :download=\"document.data.name + '.mp4'\">\n    <button class=\"_CSS-actions__action ae-button\" title=\"Aktuelle Vorschau herunterladen\">\n      <ae-icon class=\"fad fa-file-image\"></ae-icon>\n    </button>  \n  </a>\n\n  <a :href=\"Aeppic.Content.getSrc(locals.original, 'file')\" target=\"_blank\" :download=\"controller.fileNameWithUploadedExtension(locals.original, 'file')\">\n    <button class=\"_CSS-actions__action ae-button\" title=\"Dokument (Original) herunterladen\">\n      <ae-icon class=\"fad fa-download\"></ae-icon>\n    </button>  \n  </a>\n\n</template>\n<a v-else :href=\"Aeppic.Content.getSrc(document, 'stallkarte')\" target=\"_blank\" :download=\"controller.fileNameWithUploadedExtension(document, 'stallkarte')\">\n  <button class=\"_CSS-actions__action ae-button\" title=\"Dokument herunterladen\">\n    <ae-icon class=\"fad fa-download\"></ae-icon>\n  </button>  \n</a>\n<button v-if=\"controller.canPrint\" class=\"_CSS-actions__action ae-button\" title=\"Dokument drucken\" @click.stop=\"$emit('toolbar', 'print')\">\n  <ae-icon class=\"fad fa-print\"></ae-icon>\n</button>  \n<a v-if=\"controller.hasPreview\" :href=\"Aeppic.Content.getPdfUrl(document, 'stallkarte')\" target=\"_blank\" :download=\"document.data.name + '.pdf'\">\n  <button class=\"_CSS-actions__action ae-button\" title=\"Aktuelle Vorschau als PDF herunterladen\">\n    <ae-icon class=\"fad fa-file-pdf\"></ae-icon>\n  </button>  \n</a>","css":"","controller":"class Controller {\n  async init() {\n    locals.original = null\n    locals.converted = null\n\n    this.displayableTypes = [\n      'application/pdf'\n    ]\n\n    this.displayableTypesStartingWith = [\n      'image/',\n      'video/',\n      'application/vnd.oasis.opendocument'\n    ]\n\n    this.displayableTypesIncluding = [\n      'word',\n      'spreadsheet',\n      'powerpoint',\n      'presentation',\n      'mspublisher',\n    ]\n\n    this.subscribeConverted()\n    this.subscribeOriginal()\n  }\n\n  fileNameWithUploadedExtension(fileDocument, fieldName) {\n    const fileField = fileDocument.data[fieldName]\n    const name = document.data.name || fileField.name\n\n    try {\n      const parts = fileField.name.split('.')\n      const extension = parts.slice(-1)[0]\n\n      if (name.endsWith(extension)) {\n        return name\n      }\n\n      return `${name}.${extension}`\n    } catch (e) {\n      return name\n    }\n  }\n\n  get canPrint() {\n    const field = data.stallkarte\n    return !field.type.startsWith('video/') && !field.type.startsWith('image/') && this.isDocumentDisplayable\n  }\n\n  get hasPreview() {\n    const field = data.stallkarte\n    return !field.type.startsWith('video/') && !field.type.startsWith('image/') && !field.type.startsWith('application/pdf') && this.isDocumentDisplayable\n  }\n\n  get isDocumentDisplayable() {\n    const type = document.data.stallkarte.type\n\n    if (type == null || typeof type !== 'string') {\n      return false\n    }\n\n    for (const t of this.displayableTypes) {\n      if (t === type) {\n        return true\n      }\n    }\n\n    for (const t of this.displayableTypesStartingWith) {\n      if (type.startsWith(t)) {\n        return true\n      }\n    }\n\n    for (const t of this.displayableTypesIncluding) {\n      if (type.includes(t)) {\n        return true\n      }\n    }\n\n    return false\n  }\n\n  subscribeOriginal() {\n    Aeppic.subscribe(`p:${document.id} f.id:8bf0fb31-716d-4b76-98d8-b7349f1d7529 data.name:original`, (documents) => {\n      locals.original = documents[0]\n    })\n  }\n  subscribeConverted() {\n    Aeppic.subscribe(`p:${document.id} f.id:8bf0fb31-716d-4b76-98d8-b7349f1d7529 data.name:converted`, (documents) => {\n      locals.converted = documents[0]\n    })\n  }\n\n  get hasDownloadableConverted() {\n    const hasConverted = locals.converted && locals.original\n\n    if (!hasConverted) {\n      return false\n    }\n\n    const isConvertedVideo = locals.converted.data.file.type.startsWith('video/')\n\n    return isConvertedVideo\n  }\n}\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-09-29T13:58:03+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-09-29T13:59:48+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1632923988795,"ct":1632923883019,"a_depth":4,"a":["apps","5ec4fefb-1235-484e-8d6f-4fd645bae372","75920050-07b1-4e79-9742-54abcc235e91","3f5de83a-40e4-4662-b436-3ed4879edb10"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"bedbc0eb-7a33-41e6-973f-7295339dd4b7","v":"7a2581ac25647357","previous":{"v":"77809739d5323d86"},"p":"6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2","f":{"id":"design-form","v":"24435d748c76f819","text":"Design"},"data":{"name":"download-and-print-buttons","template":"<template v-if=\"document.data.datei.dataUrl\">\n  <template v-if=\"controller.hasDownloadableConverted\">\n    <a :href=\"Aeppic.Content.getSrc(document, 'datei')\" target=\"_blank\" :download=\"document.data.name\">\n      <button class=\"_CSS-actions__action ae-button\" title=\"Aktuelle Vorschau herunterladen\">\n        <ae-icon class=\"fa fa-file-image\"></ae-icon>\n      </button>  \n    </a>\n\n    <a :href=\"Aeppic.Content.getSrc(locals.original, 'file')\" target=\"_blank\" :download=\"controller.fileNameWithUploadedExtension(locals.original, 'file')\">\n      <button class=\"_CSS-actions__action ae-button\" title=\"Dokument (Original) herunterladen\">\n        <ae-icon class=\"fa fa-download\"></ae-icon>\n      </button>  \n    </a>\n\n  </template>\n  <a v-else :href=\"Aeppic.Content.getSrc(document, 'datei')\" target=\"_blank\" :download=\"controller.fileNameWithUploadedExtension(document, 'datei')\">\n    <button class=\"_CSS-actions__action ae-button\" title=\"Dokument herunterladen\">\n      <ae-icon class=\"fa fa-download\"></ae-icon>\n    </button>  \n  </a>\n  <button v-if=\"controller.canPrint\" class=\"_CSS-actions__action ae-button\" title=\"Dokument drucken\" @click.stop=\"$emit('toolbar', 'print')\">\n    <ae-icon class=\"fa fa-print\"></ae-icon>\n  </button>  \n  <a v-if=\"controller.hasPreview\" :href=\"Aeppic.Content.getPdfUrl(document, 'datei')\" target=\"_blank\" :download=\"document.data.name + '.pdf'\">\n    <button class=\"_CSS-actions__action ae-button\" title=\"Aktuelle Vorschau als PDF herunterladen\">\n      <ae-icon class=\"fa fa-file-pdf\"></ae-icon>\n    </button>  \n  </a>\n</template>","css":"","controller":"class Controller {\n  async init() {\n    locals.original = null\n    locals.converted = null\n    \n    this.displayableTypes = [\n      'application/pdf'\n    ]\n\n    this.displayableTypesStartingWith = [\n      'image/',\n      'video/',\n      'application/vnd.oasis.opendocument'\n    ]\n\n    this.displayableTypesIncluding = [\n      'word',\n      'spreadsheet',\n      'powerpoint',\n      'presentation',\n      'mspublisher',\n    ]\n\n    const canEdit = await Aeppic.canEdit(document)\n    locals.canEdit = Aeppic.Account && Aeppic.Account.data.isGroupAccount === false && canEdit === true\n\n    this.subscribeConverted()\n    this.subscribeOriginal()\n  }\n\n  fileNameWithUploadedExtension(fileDocument, fieldName) {\n    const fileField = fileDocument.data[fieldName]\n\n    console.log(fileField) \n\n    try {\n      const parts = fileField.name.split('.')\n      const extension = parts.slice(-1)[0]\n\n      if (fileField.endsWith(extension)) {\n        return document.data.name\n      }\n\n      return `${document.data.name}.${extension}`\n    } catch (e) {\n      return document.data.name\n    }\n  }\n\n  isElectron() {\n    return typeof navigator === 'object' && typeof navigator.userAgent === 'string' && navigator.userAgent.indexOf('Electron') >= 0\n  }\n\n  editFile() {\n    Aeppic.editFile(Aeppic.Content.getSrc(document, 'datei'), data.datei.name, {\n      id: document.id,\n      v: document.v,\n      fieldName: 'datei',\n      mimeType: data.datei.type\n    })\n  }\n\n  get canPrint() {\n    if (params.noPrint) {\n      return false\n    }\n\n    const field = data.datei\n    return !field.type.startsWith('video/') && !field.type.startsWith('image/') && this.isDocumentDisplayable\n  }\n\n  get canRotate() {\n    const field = data.datei\n    return field.type.startsWith('image/')\n  }\n\n  get hasPreview() {\n    const field = data.datei\n    return !field.type.startsWith('video/') && !field.type.startsWith('image/') && !field.type.startsWith('application/pdf') && this.isDocumentDisplayable\n  }\n\n  get isDocumentDisplayable() {\n    const type = document.data.datei.type\n\n    if (type == null || typeof type !== 'string') {\n      return false\n    }\n\n    for (const t of this.displayableTypes) {\n      if (t === type) {\n        return true\n      }\n    }\n\n    for (const t of this.displayableTypesStartingWith) {\n      if (type.startsWith(t)) {\n        return true\n      }\n    }\n\n    for (const t of this.displayableTypesIncluding) {\n      if (type.includes(t)) {\n        return true\n      }\n    }\n\n    return false\n  }\n\n  subscribeOriginal() {\n    Aeppic.subscribe(`p:${document.id} f.id:8bf0fb31-716d-4b76-98d8-b7349f1d7529 data.name:original`, (documents) => {\n      locals.original = documents[0]\n    })\n  }\n  subscribeConverted() {\n    Aeppic.subscribe(`p:${document.id} f.id:8bf0fb31-716d-4b76-98d8-b7349f1d7529 data.name:converted`, (documents) => {\n      locals.converted = documents[0]\n    })\n  }\n\n  get hasDownloadableConverted() {\n    const hasConverted = locals.converted && locals.original\n\n    if (!hasConverted) {\n      return false\n    }\n\n    const isConvertedVideo = locals.converted.data.file.type.startsWith('video/')\n\n    return isConvertedVideo\n  }\n}\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-05-08T08:50:59+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2021-12-21T15:10:20+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1640099420626,"ct":1588927859607,"a_depth":4,"a":["apps","3d43a3f5-fea4-488d-9fc1-9dee5e694623","7c30f282-2b84-4976-8735-ba78662ea5e6","6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"e4cfe15c-1a36-44d3-9d0f-60db67603066","v":"d057d410b252e726","cloneOf":{"id":"bedbc0eb-7a33-41e6-973f-7295339dd4b7","v":"38229b01f38d2d06","text":"download-and-print-buttons"},"originalCloneOf":{"id":"bedbc0eb-7a33-41e6-973f-7295339dd4b7","v":"38229b01f38d2d06","text":"download-and-print-buttons"},"previous":{"v":"a5aff527c3192054"},"p":"dbee6e16-d63a-493c-bba6-505f79918f9f","f":{"id":"design-form","v":"24435d748c76f819","text":"Design"},"data":{"name":"download-and-print-buttons","template":"<template v-if=\"document.data.datei.dataUrl\">\n  <template v-if=\"controller.hasDownloadableConverted\">\n    <a :href=\"Aeppic.Content.getSrc(document, 'datei')\" target=\"_blank\" :download=\"document.data.name + '.mp4'\">\n      <button class=\"_CSS-actions__action ae-button\" title=\"Aktuelle Vorschau herunterladen\">\n        <ae-icon class=\"fad fa-file-image\"></ae-icon>\n      </button>  \n    </a>\n\n    <a :href=\"Aeppic.Content.getSrc(locals.original, 'file')\" target=\"_blank\" :download=\"controller.fileNameWithUploadedExtension(locals.original, 'file')\">\n      <button class=\"_CSS-actions__action ae-button\" title=\"Dokument (Original) herunterladen\">\n        <ae-icon class=\"fad fa-download\"></ae-icon>\n      </button>  \n    </a>\n\n  </template>\n  <a v-else :href=\"Aeppic.Content.getSrc(document, 'datei')\" target=\"_blank\" :download=\"controller.fileNameWithUploadedExtension(document, 'datei')\">\n    <button v-if=\"controller.hasPreview\" class=\"_CSS-actions__action ae-button\" title=\"Dokument (Original) herunterladen\">\n      <ae-icon class=\"fad fa-download\"></ae-icon>\n    </button>  \n    <button v-else class=\"_CSS-actions__action ae-button\" title=\"Dokument herunterladen\">\n      <ae-icon class=\"fad fa-download\"></ae-icon>\n    </button>  \n  </a>\n  <button v-if=\"controller.canPrint\" class=\"_CSS-actions__action ae-button\" title=\"Dokument drucken\" @click.stop=\"$emit('toolbar', 'print')\">\n    <ae-icon class=\"fad fa-print\"></ae-icon>\n  </button>  \n  <a v-if=\"controller.hasPreview\" :href=\"Aeppic.Content.getPdfUrl(document, 'datei')\" target=\"_blank\" :download=\"document.data.name + '.pdf'\">\n    <button class=\"_CSS-actions__action ae-button\" title=\"Aktuelle Vorschau als PDF herunterladen\">\n      <ae-icon class=\"fad fa-file-pdf\"></ae-icon>\n    </button>  \n  </a>\n  <!-- <button class=\"ae-button\" v-if=\"controller.hasPreview && controller.isOfficeDocument\" title=\"\">\n    <ae-icon class=\"far fa-info-circle\"></ae-icon>\n  </button> -->\n</template>\n","css":"","controller":"class Controller {\n  async init() {\n    locals.original = null\n    locals.converted = null\n\n    this.displayableTypes = [\n      'application/pdf'\n    ]\n\n    this.displayableTypesStartingWith = [\n      'image/',\n      'video/',\n      'application/vnd.oasis.opendocument'\n    ]\n\n    this.displayableTypesIncluding = [\n      'word',\n      'spreadsheet',\n      'powerpoint',\n      'presentation',\n      'mspublisher',\n    ]\n\n    this.subscribeConverted()\n    this.subscribeOriginal()\n  }\n\n  fileNameWithUploadedExtension(fileDocument, fieldName) {\n    const fileField = fileDocument.data[fieldName]\n    const name = document.data.name || fileField.name\n\n    try {\n      const parts = fileField.name.split('.')\n      const extension = parts.slice(-1)[0]\n\n      if (name.endsWith(extension)) {\n        return name\n      }\n\n      return `${name}.${extension}`\n    } catch (e) {\n      return name\n    }\n  }\n\n  get canPrint() {\n    if (params.noPrint) {\n      return false\n    }\n\n    const field = data.datei\n    return !field.type.startsWith('video/') && !field.type.startsWith('image/') && this.isDocumentDisplayable\n  }\n\n  get hasPreview() {\n    const field = data.datei\n    return !field.type.startsWith('video/') && !field.type.startsWith('image/') && !field.type.startsWith('application/pdf') && this.isDocumentDisplayable\n  }\n\n  get isOfficeDocument() {\n    const type = document.data.datei.type\n\n    return this.displayableTypesIncluding.some(t => type.includes(t))\n  }\n\n  get isDocumentDisplayable() {\n    const type = document.data.datei.type\n\n    if (type == null || typeof type !== 'string') {\n      return false\n    }\n\n    for (const t of this.displayableTypes) {\n      if (t === type) {\n        return true\n      }\n    }\n\n    for (const t of this.displayableTypesStartingWith) {\n      if (type.startsWith(t)) {\n        return true\n      }\n    }\n\n    for (const t of this.displayableTypesIncluding) {\n      if (type.includes(t)) {\n        return true\n      }\n    }\n\n    return false\n  }\n\n  subscribeOriginal() {\n    Aeppic.subscribe(`p:${document.id} f.id:8bf0fb31-716d-4b76-98d8-b7349f1d7529 data.name:original`, (documents) => {\n      locals.original = documents[0]\n    })\n  }\n  subscribeConverted() {\n    Aeppic.subscribe(`p:${document.id} f.id:8bf0fb31-716d-4b76-98d8-b7349f1d7529 data.name:converted`, (documents) => {\n      locals.converted = documents[0]\n    })\n  }\n\n  get hasDownloadableConverted() {\n    const hasConverted = locals.converted && locals.original\n\n    if (!hasConverted) {\n      return false\n    }\n\n    const isConvertedVideo = locals.converted.data.file.type.startsWith('video/')\n\n    return isConvertedVideo\n  }\n}\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-06-24T12:54:35+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2021-12-21T14:21:30+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1640096490778,"ct":1593003275140,"a_depth":4,"a":["apps","45ada186-e9fd-451d-9dbd-2defc0b4f86f","4ec6a0e5-cf2d-4095-9b70-2e31a64d5679","dbee6e16-d63a-493c-bba6-505f79918f9f"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"f8026ccf-1bf2-41d5-b486-64e38cbed12a","v":"64e29dce638d7b73","p":"document-picker-form","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"dynamic","template":"<document-list list-id=\"ecd108ca-fbac-4b45-83b5-a60b0f6a5987\" root-document-id=\"{{document.data.sourceFolder.id}}\" query-id=\"{{document.data.sourceQuery.id || 'children-query'}}\" \n  option-document-picker-id=\"{{document.id}}\" \n  option-target-folder-id=\"{{document.data.targetFolder.id || document.id}}\" \n  option-target-reference-form-id=\"{{document.data.targetReferenceForm.id || 'document-reference-form'}}\" \n  option-target-reference-form-name=\"{{document.data.targetReferenceForm.text || 'Document Reference'}}\"\n  option-target-reference-field=\"{{document.data.targetReferenceField || 'referencedDocument'}}\"\n  option-pickable-document-design=\"{{document.data.pickableDocumentDesign || 'list'}}\"\n  option-picked-document-design=\"{{document.data.dynamicPickedDocumentDesign || 'list'}}\"\n  option-show-references=\"{{document.data.showReferences}}\">\n</document-list>\n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2017-08-23T08:24:50+02:00","by":"","from":"","client":"import"},"modified":{"at":"2020-06-30T10:53:26+00:00","by":"8e6c22aa-8c69-4ff8-919a-7032841cf636","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1719473826689,"ct":1719473826689,"a_depth":3,"a":["system","system-forms","document-picker-form"],"a_forms":["system-folder-form","repository-folder-form","form"],"inheritedLocks":[null,null,null,null],"stamps":[],"previous":{"v":"ed17544a131e1edb","f":{"id":"design-form","v":"9bfe8e0cd909c1f0","text":"Design"}},"meta":{"modified":{"at":"2024-06-27T07:37:06+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"44a8c456-5a17-4365-b78d-e14641ce73c2","v":"963fceb8bc5d800c","p":"form","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"edit-list","template":"<rs-get-document id=\"{{document.f}}\" as=\"form\">\n    <span ng-click=\"document.executeCommand('261bad5b-0cf7-4364-a292-ccb4306306fc')\" class=\"line-height centerv document-name\" style=\"cursor:pointer\" title=\"{{data.description}}\"><strong>{{data.name || form.data.name}}</strong></span>\n</rs-get-document>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2017-08-23T08:24:50+02:00","by":"","from":"","client":"import"},"modified":{"at":"2020-06-30T10:53:26+00:00","by":"8e6c22aa-8c69-4ff8-919a-7032841cf636","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1719473826719,"ct":1719473826719,"a_depth":3,"a":["system","system-forms","form"],"a_forms":["system-folder-form","repository-folder-form","form"],"inheritedLocks":[null,null,null,null],"stamps":[],"previous":{"v":"cb1c24797aea4614","f":{"id":"design-form","v":"9bfe8e0cd909c1f0","text":"Design"}},"meta":{"modified":{"at":"2024-06-27T07:37:06+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"5619caac-3f3b-413f-9a1a-5d68adc30eb7","v":"7af944cf1d2250ed","p":"fallback-designs","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"editable-document","template":"<ae-form :document=\"document\"></ae-form>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2017-11-29T12:13:15+01:00","by":"","from":"","client":"eb69d595-7b9e-4c79-a678-a7c5985309c9"},"modified":{"at":"2020-11-20T14:56:17+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720684627129,"ct":1720684627129,"a_depth":2,"a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"],"inheritedLocks":[null,null,null],"stamps":[],"previous":{"v":"013684334f52749b","f":{"id":"design-form","v":"9bfe8e0cd909c1f0","text":"Design"}},"meta":{"modified":{"at":"2024-07-11T09:57:07+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"b7ba9186-befe-410e-8e97-1ba429ddec9b","v":"initial","p":"aabed4ee-20ca-4df4-9a78-75a05e97dce9","f":{"id":"design-form","v":"3a761d06f59c46c1","text":"Design"},"data":{"name":"editable-title","template":"<div class=\"_CSS-title\">\n  <ae-layout style=\"font-size: 0.6rem;\" v-if=\"controller.isCompanyUser\" layout-id=\"6273d6a2-0cf0-47da-9e45-18460c50d101\" @edit=\"controller.edit()\" @reset=\"controller.save()\"></ae-layout>\n\n  <button title=\"Thumbnail neu generieren\" v-if=\"controller.isCompanyUser && controller.isVideo\" class=\"dbps-button\" @click.stop=\"controller.regeneratePreview()\"> \n    <ae-icon class=\"fa fa-sync\"></ae-icon>\n  </button>\n\n  <ae-design v-if=\"!locals.editing\" name=\"title\" :document=\"document\"></ae-design>\n  <input type=\"text\" v-else v-model=\"document.data.name\">\n</div>","css":"._CSS-title {\n  overflow: hidden;\n  display: flex;\n  align-items: center;\n}","controller":"class Controller {\n  async init() {\n    locals.editing = false\n    // this.watchChangesAndSaveThem()\n  }\n\n  edit() {\n    startEditing()\n    locals.editing = true\n  }\n\n  save() {\n    save()\n    locals.editing = false\n  }\n\n  get isVideo() {\n    return data.datei.type && data.datei.type.startsWith('video/')\n  }\n\n  // watchChangesAndSaveThem() {\n  //   if (!this.isCompanyUser) {\n  //     return\n  //   }\n\n\n  //   Aeppic.watchRevisions(document.id, (changedDocument, reason) => {\n  //     if (!reason.updated) {\n  //       return\n  //     }\n\n  //     Aeppic.save(changedDocument)\n  //   })\n  // }\n\n  get isCompanyUser() {\n    return Aeppic.Account && Aeppic.Account.a_forms.includes('1ec5237d-463a-417f-8dac-5bbbbc2e35b7')\n  }\n\n  async regeneratePreview() {\n    if (!this.isCompanyUser) {\n      return\n    }\n\n    const existingOriginal = await Aeppic.findOne(`p:${document.id} f.id:8bf0fb31-716d-4b76-98d8-b7349f1d7529 data.name:original`)\n\n    if (!existingOriginal) {\n      return\n    }\n\n    const regenerate = await Aeppic.edit(existingOriginal)\n    regenerate.data.name = 'regenerate'\n    Aeppic.save(regenerate)\n\n\n    const original = await Aeppic.edit(existingOriginal)\n    original.data.name = 'original'\n    Aeppic.save(original)\n\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-10-13T10:11:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2020-10-13T10:11:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1602583892067,"ct":1602583892067,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","aabed4ee-20ca-4df4-9a78-75a05e97dce9"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"4c70c089-fe07-45ca-a769-4e1d7ea1988b","v":"2bbbf6c8dac98604","previous":{"v":"ddb40cdba57039a1"},"p":"cb2adf77-7636-41a7-9a16-1610b06fa91e","f":{"id":"design-form","v":"0061789efb5c5c29","text":"Design"},"data":{"name":"editor","template":"<div\r\n  v-if=\"document && locals.editor\"\r\n  ref=\"page\"\r\n  class=\"_CSS-page\"\r\n  @toolbar=\"controller.toolbarEvent($event.detail)\">\r\n  <template v-if=\"!locals.readonly\">\r\n    <div class=\"_CSS-menu\">\r\n      <button\r\n        @click=\"locals.editor.chain().focus().undo().run()\"\r\n        :disabled=\"!locals.editor.can().undo()\"\r\n        >\r\n        <ae-icon class=\"fa fa-undo\"></ae-icon>\r\n      </button>\r\n      <button\r\n        @click=\"locals.editor.chain().focus().redo().run()\"\r\n        :disabled=\"!locals.editor.can().redo()\"\r\n        >\r\n        <ae-icon class=\"fa fa-redo\"></ae-icon>\r\n      </button>\r\n      <div class=\"_CSS-menu-line\"></div>\r\n      <button\r\n        @click=\"locals.editor.chain().focus().toggleBold().run()\"\r\n        :class=\"{ '_CSS-is-active': locals.editor.isActive('bold') }\"\r\n        > \r\n        <ae-icon class=\"fad fa-bold\"></ae-icon>\r\n      </button>\r\n      <button\r\n        @click=\"locals.editor.chain().focus().toggleItalic().run()\"\r\n        :class=\"{ '_CSS-is-active': locals.editor.isActive('italic') }\"\r\n        >\r\n        <ae-icon class=\"fad fa-italic\"></ae-icon>\r\n      </button>\r\n      <button\r\n        @click=\"locals.editor.chain().focus().toggleUnderline().run()\"\r\n        :class=\"{ '_CSS-is-active': locals.editor.isActive('underline') }\"\r\n        >\r\n        <ae-icon class=\"fad fa-underline\"></ae-icon>\r\n      </button>\r\n      <button\r\n        @click=\"locals.editor.chain().focus().toggleStrike().run()\"\r\n        :class=\"{ '_CSS-is-active': locals.editor.isActive('strike') }\"\r\n        >\r\n        <ae-icon class=\"fad fa-strikethrough\"></ae-icon>\r\n      </button>  \r\n      <button\r\n        @click=\"locals.editor.chain().focus().toggleCodeBlock().run()\"\r\n        :class=\"{ '_CSS-is-active': locals.editor.isActive('codeBlock') }\"\r\n        >\r\n        <ae-icon class=\"fad fa-code\"></ae-icon>\r\n      </button>\r\n      <button @click=\"locals.editor.chain().focus().toggleHighlight().run()\" :class=\"{ '_CSS-is-active': locals.editor.isActive('highlight') }\">\r\n        <ae-icon class=\"fad fa-highlighter\"></ae-icon>\r\n      </button>\r\n      <div class=\"_CSS-menu-line\"></div>\r\n      <button @click=\"locals.editor.chain().focus().toggleHeading({ level: 1 }).run()\" :class=\"{ '_CSS-is-active': locals.editor.isActive('heading', { level: 1 }) }\">\r\n        <ae-icon class=\"fad fa-h1\"></ae-icon>\r\n      </button>\r\n      <button @click=\"locals.editor.chain().focus().toggleHeading({ level: 2 }).run()\" :class=\"{ '_CSS-is-active': locals.editor.isActive('heading', { level: 2 }) }\">\r\n        <ae-icon class=\"fad fa-h2\"></ae-icon>\r\n      </button>\r\n      <button @click=\"locals.editor.chain().focus().toggleHeading({ level: 3 }).run()\" :class=\"{ '_CSS-is-active': locals.editor.isActive('heading', { level: 3 }) }\">\r\n        <ae-icon class=\"fad fa-h3\"></ae-icon>\r\n      </button>    \r\n      <div class=\"_CSS-menu-line\"></div>\r\n      <button @click=\"locals.editor.chain().focus().toggleBulletList().run()\" :class=\"{ '_CSS-is-active': locals.editor.isActive('bulletList') }\">\r\n        <ae-icon class=\"fad fa-list-ul\"></ae-icon>\r\n      </button>\r\n      <button @click=\"locals.editor.chain().focus().toggleOrderedList().run()\" :class=\"{ '_CSS-is-active': locals.editor.isActive('orderedList') }\">\r\n        <ae-icon class=\"fad fa-list-ol\"></ae-icon>\r\n      </button>\r\n      <div class=\"_CSS-menu-line\"></div>\r\n      <button @click=\"locals.editor.chain().focus().setHorizontalRule().run()\">\r\n        <ae-icon class=\"fad fa-horizontal-rule\"></ae-icon>\r\n      </button>\r\n      <button @click=\"locals.editor.chain().focus().toggleCodeBlock().run()\" :class=\"{ '_CSS-is-active': locals.editor.isActive('codeBlock') }\">\r\n        <ae-icon class=\"fa fa-file-code\"></ae-icon>\r\n      </button>\r\n      <button @click=\"locals.editor.chain().focus().toggleBlockquote().run()\" :class=\"{ '_CSS-is-active': locals.editor.isActive('blockquote') }\">\r\n        <ae-icon class=\"fa fa-quote-left\"></ae-icon>\r\n      </button>\r\n      <div class=\"_CSS-menu-line\"></div>\r\n      <button ref=\"insertTableMenu\" @click=\" locals.editor.chain().focus().insertTable({ rows: 3, cols: 3, withHeaderRow: false }).run()\">\r\n        <ae-icon class=\"fa fa-table\"></ae-icon>\r\n      </button> \r\n      <button ref=\"editTableMenu\" :disabled=\"!locals.editor.can().deleteRow()\">\r\n        <ae-icon class=\"fa fa-chevron-down\"></ae-icon>\r\n      </button> \r\n      <div class=\"_CSS-menu-line\"></div>\r\n      <!-- <button ref=\"insertDocumentReferenceMenu\" title=\"Add reference to existing document\" @click=\"controller.focusInsertDocumentReference()\">     \r\n        <ae-icon class=\"fa fa-external-link-square\"></ae-icon>\r\n      </button>  -->\r\n      <button v-if=\"locals.insertChildTypes.length\" ref=\"insertChildMenu\" title=\"Insert document\" @click=\"controller.focusInsertChildDocument()\">\r\n        <ae-icon class=\"fa fa-plus\"></ae-icon>\r\n      </button>\r\n      <button ref=\"insertWebLinkMenu\" title=\"Add external web reference\" disabled>\r\n        <ae-icon class=\"fa fa-link\"></ae-icon>\r\n      </button>  \r\n      <div style=\"flex:1\"></div>\r\n      <div class=\"_CSS-menu-line\"></div>\r\n      <button @click=\"$emit('toggle-expand')\">\r\n        <ae-icon class=\"fa fa-expand\"></ae-icon>\r\n      </button>\r\n    </div>\r\n    \r\n    <div ref=\"insertTableMenuTemplate\" style=\"width:128px;height:128px\">  \r\n      <svg class=\"_CSS-table-size\" viewBox=\"0 0 256 256\" style=\"width:128px;height:128px\">\r\n        <g>\r\n          <rect\r\n              x=\"0\" \r\n              y=\"0\"\r\n              width=\"256\"\r\n              height=\"256\" ></rect>\r\n          <template v-for=\"y of [0,1,2,3,4,5,6,7]\">\r\n            <rect\r\n              v-for=\"x of [0,1,2,3,4,5,6,7]\"\r\n              :x=\"x * 32\" \r\n              :y=\"y * 32\"\r\n              :width=\"32\"\r\n              :height=\"32\" \r\n              ref=\"insertTableMenuSizeCells\"\r\n              :class=\"x <= locals.insertMenuSelectedCells.x && y <= locals.insertMenuSelectedCells.y ? '_CSS_insertTableCellSelected' : ''\"\r\n              @mouseenter=\"locals.insertMenuSelectedCells = { x, y }\"\r\n              @click=\"controller.insertTable()\"></rect>\r\n          </template>\r\n        </g>\r\n      </svg>\r\n    </div>\r\n\r\n    <div ref=\"editTableMenuTemplate\">\r\n      <button @click=\"locals.editor.chain().focus().addColumnBefore().run()\" :disabled=\"!locals.editor.can().addColumnBefore()\" title=\"Insert column to the left\">\r\n        <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"icon icon-tabler icon-tabler-column-insert-left\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" stroke-width=\"2\" stroke=\"currentColor\" fill=\"none\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\r\n          <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"></path>\r\n          <path d=\"M14 4h4a1 1 0 0 1 1 1v14a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1v-14a1 1 0 0 1 1 -1z\"></path>\r\n          <line x1=\"5\" y1=\"12\" x2=\"9\" y2=\"12\"></line>\r\n          <line x1=\"7\" y1=\"10\" x2=\"7\" y2=\"14\"></line>\r\n        </svg>\r\n      </button>\r\n      <button @click=\"locals.editor.chain().focus().addColumnAfter().run()\" :disabled=\"!locals.editor.can().addColumnAfter()\" title=\"Insert column to the right\">\r\n        <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"icon icon-tabler icon-tabler-column-insert-right\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" stroke-width=\"2\" stroke=\"currentColor\" fill=\"none\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\r\n          <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"></path>\r\n          <path d=\"M6 4h4a1 1 0 0 1 1 1v14a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1v-14a1 1 0 0 1 1 -1z\"></path>\r\n          <line x1=\"15\" y1=\"12\" x2=\"19\" y2=\"12\"></line>\r\n          <line x1=\"17\" y1=\"10\" x2=\"17\" y2=\"14\"></line>\r\n        </svg>\r\n      </button>\r\n      <button @click=\"locals.editor.chain().focus().addRowBefore().run()\" :disabled=\"!locals.editor.can().addRowBefore()\" title=\"Insert row before\">\r\n        <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"icon icon-tabler icon-tabler-row-insert-top\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" stroke-width=\"2\" stroke=\"currentColor\" fill=\"none\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\r\n          <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/>\r\n          <path d=\"M4 18v-4a1 1 0 0 1 1 -1h14a1 1 0 0 1 1 1v4a1 1 0 0 1 -1 1h-14a1 1 0 0 1 -1 -1z\" />\r\n          <path d=\"M12 9v-4\" />\r\n          <line x1=\"10\" y1=\"7\" x2=\"14\" y2=\"7\" />\r\n        </svg>\r\n      </button>\r\n      <button @click=\"locals.editor.chain().focus().addRowAfter().run()\" :disabled=\"!locals.editor.can().addRowAfter()\" title=\"Insert row after\">\r\n        <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"icon icon-tabler icon-tabler-row-insert-bottom\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" stroke-width=\"2\" stroke=\"currentColor\" fill=\"none\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\r\n          <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/>\r\n          <path d=\"M20 6v4a1 1 0 0 1 -1 1h-14a1 1 0 0 1 -1 -1v-4a1 1 0 0 1 1 -1h14a1 1 0 0 1 1 1z\" />\r\n          <line x1=\"12\" y1=\"15\" x2=\"12\" y2=\"19\" />\r\n          <line x1=\"14\" y1=\"17\" x2=\"10\" y2=\"17\" />\r\n        </svg>\r\n      </button>\r\n      <button @click=\"locals.editor.chain().focus().deleteColumn().run()\" :disabled=\"!locals.editor.can().deleteColumn()\" title=\"Delete column\">\r\n        Spalte löschen\r\n      </button>\r\n      <button @click=\"locals.editor.chain().focus().deleteRow().run()\" :disabled=\"!locals.editor.can().deleteRow()\">\r\n        Zeile löschen\r\n      </button>\r\n      <button @click=\"locals.editor.chain().focus().deleteTable().run()\" :disabled=\"!locals.editor.can().deleteTable()\">\r\n        Tabelle löschen\r\n      </button>\r\n      <button @click=\"locals.editor.chain().focus().mergeCells().run()\" :disabled=\"!locals.editor.can().mergeCells()\">\r\n        Zellen verbinden\r\n      </button>\r\n      <button @click=\"locals.editor.chain().focus().splitCell().run()\" :disabled=\"!locals.editor.can().splitCell()\">\r\n        Zellen teilen\r\n      </button>\r\n      <button @click=\"locals.editor.chain().focus().toggleHeaderColumn().run()\" :disabled=\"!locals.editor.can().toggleHeaderColumn()\">\r\n        Kopfspalte umschalten\r\n      </button>\r\n      <button @click=\"locals.editor.chain().focus().toggleHeaderRow().run()\" :disabled=\"!locals.editor.can().toggleHeaderRow()\">\r\n        Kopfzeile umschalten\r\n      </button>\r\n      <button @click=\"locals.editor.chain().focus().toggleHeaderCell().run()\" :disabled=\"!locals.editor.can().toggleHeaderCell()\">\r\n        Zelle als Kopfzelle umschalten\r\n      </button>\r\n      <button @click=\"locals.editor.chain().focus().mergeOrSplit().run()\" :disabled=\"!locals.editor.can().mergeOrSplit()\">\r\n        Zellen teilen/verbinden umschalten\r\n      </button>\r\n    </div>\r\n\r\n    <!-- FIXME: the search must be filtered. Currenctly all types of documents are searchable (e.g. tokens etc) -->\r\n    <!-- <div ref=\"insertDocumentReferenceMenuTemplate\" class=\"_CSS-insert-doc-ref-menu\" style=\"display:flex;flex-direction:column;position:relative;max-height:50vh;overflow-y:auto\">\r\n      <div style=\"display:flex\">\r\n        <input style=\"flex:1\" ref=\"insertDocumentReferenceMenuInput\" type=\"text\" placeholder=\"Nach Dokument suchen\" v-model=\"locals.insertDocumentReferenceSearch\" @input=\"controller.searchDocumentReference()\">\r\n        <ae-icon style=\"position:absolute;right:0;top:auto;bottom:auto\" v-show=\"locals.searchingForReference\" class=\"fa fa-spin fa-spinner-third\"></ae-icon>\r\n      </div>\r\n      <div v-show=\"locals.referencesFound && locals.referencesFound.length\" style=\"margin-top:1em;\">\r\n        <ae-design v-for=\"ref of locals.referencesFound\" :document=\"ref\" name=\"search-card,search-title,title\" @selected=\"controller.insertDocumentReference(ref)\"></ae-design>\r\n      </div>\r\n      <div v-show=\"locals.referencesFound && locals.referencesFound.length === 0\" style=\"padding:1em;vertical-align:center\">\r\n        <ae-icon class=\"fa fa-empty-set\"></ae-icon>\r\n        <small>Keine Ergebnisse gefunden</small>\r\n      </div>\r\n    </div> -->\r\n \r\n    <div ref=\"insertChildMenuTemplate\" class=\"_CSS-insert-doc-ref-menu\" style=\"display:flex;flex-direction:column;position:relative;max-height:50vh;overflow-y:auto\">\r\n      <!-- <div style=\"display:flex\">\r\n        <input style=\"flex:1\" ref=\"insertChildTypeInput\" type=\"text\" placeholder=\"Search for document\" v-model=\"locals.insertDocumentReferenceSearch\" @input=\"controller.searchDocumentReference()\">\r\n        <ae-icon style=\"position:absolute;right:0;top:auto;bottom:auto\" v-show=\"locals.searchingForReference\" class=\"fa fa-spin fa-spinner-third\"></ae-icon>\r\n      </div>\r\n       -->\r\n      <div class=\"_CSS-child-type\" v-for=\"childType of locals.insertChildTypes\">\r\n        <button class=\"ae-button\" @click=\"controller.insertNewChild(childType)\" style=\"display:flex;flex-direction:row;align-items:center\">\r\n          <div v-if=\"childType.list\" style=\"margin-right:1rem\" title=\"List\">\r\n            <ae-icon  class=\"fad fa-th-list\" style=\"opacity:0.5\"></ae-icon>\r\n          </div>\r\n          <ae-design name=\"search-title\" :document-id=\"childType.form\" :param-minimized-info=\"true\" :param-hide-path=\"true\"></ae-design>\r\n        </button>\r\n      </div>\r\n    </div>\r\n  </template>\r\n\r\n  <ae-control\r\n    v-if=\"!locals.readonly\" \r\n    name=\"title\",\r\n    field-name=\"name\"\r\n    :document=\"document\">\r\n  </ae-control>\r\n\r\n  <div style=\"font-size:12px;margin-left:8px\">\r\n    <small>Letzte Änderung: {{DateTime.fromISO(document.modified.at).toLocaleString(DateTime.DATETIME_MED)}}</small>\r\n  </div>\r\n\r\n  <section style=\"flex:1;position:relative\">\r\n    <div\r\n      style=\"position:absolute;inset:0;padding:4px;overflow-y:auto;background-color:var(--ae-ui-background);width:100%;height:100%\"    \r\n      @dragenter.stop.prevent=\"controller.dragEnter($event)\"\r\n      @dragleave.stop.prevent=\"controller.dragLeave($event)\"\r\n      @dragover.stop.prevent=\"controller.dragOver($event)\"\r\n      @drop.stop.prevent=\"controller.drop($event)\"\r\n      >\r\n       <!-- @click=\"locals.editor.commands.focus()\" -->\r\n      <editor-content class=\"_CSS_editor\" :editor=\"locals.editor\" :param-readonly=\"locals.readonly\"></editor-content>\r\n    </div>\r\n    <!-- <div class=\"_CSS-character-count\" v-if=\"locals.editor\">\r\n      {{ locals.editor.getCharacterCount() }}/{{ locals.limit }} characters\r\n    </div>   -->\r\n  </section>\r\n\r\n  <!-- <div ref=\"floatingMenu\">\r\n    <template  v-if=\"locals.editor\">\r\n      <button @click=\"locals.editor.chain().focus().unsetAllMarks().run()\">\r\n        Normal Text\r\n      </button>\r\n      <button @click=\"locals.editor.chain().focus().toggleHeading({ level: 1 }).run()\" :class=\"{ 'is-active': locals.editor.isActive('heading', { level: 1 }) }\">\r\n        h1\r\n      </button>\r\n      <button @click=\"locals.editor.chain().focus().toggleHeading({ level: 2 }).run()\" :class=\"{ 'is-active': locals.editor.isActive('heading', { level: 2 }) }\">\r\n        h2\r\n      </button>\r\n      <button @click=\"locals.editor.chain().focus().toggleBulletList().run()\" :class=\"{ 'is-active': locals.editor.isActive('bulletList') }\">\r\n        bullet list\r\n      </button>\r\n      <button @click=\"locals.editor.chain().focus().insertTable({ rows: 3, cols: 3, withHeaderRow: true }).run()\">\r\n        insertTable\r\n      </button>\r\n      <button @click=\"locals.editor.chain().focus().insertAeDesign({ 'document-id': 'root', name: 'title' }).run()\">\r\n        insertAeDesign\r\n    </button>\r\n    </template>\r\n  </div> -->\r\n\r\n</div>\r\n<!-- <pre style=\"position:absolute;bottom:0;overflow:auto;height:5em;left:0;right:0\">\r\n    {{document.data}} \r\n  </pre> -->\r\n","css":"._CSS {\r\n  padding: 8px;\r\n  display:flex;\r\n  flex-direction:column;\r\n  flex:1;\r\n  background-color: var(--ae-ui-background);\r\n}\r\n\r\n._CSS-child-type > .ae-button {\r\n  width: 100%;\r\n  margin:0;\r\n} \r\n\r\n._CSS-table-size > g > rect  {\r\n  fill: none;\r\n  stroke: var(--ae-background-400);\r\n  stroke-width: 2px;\r\n  stroke-opacity: 0.2;\r\n}\r\n\r\n._CSS-table-size > g > rect._CSS_insertTableCellSelected {\r\n  fill: var(--ae-primary-500);\r\n}\r\n/*\r\n._CSS_editor div[data-node-view-wrapper] > .ae-design {\r\n}\r\n*/\r\n._CSS-page {\r\n  display:flex;\r\n  flex:1;\r\n  flex-direction: column;\r\n  padding:4px;\r\n  overflow: auto;\r\n  position: relative;\r\n}\r\n\r\n._CSS_editor > blockquote {\r\n  border-left: 2px solid var(--ae-background-500);\r\n  padding-left: 8px;\r\n}\r\n\r\n._CSS_editor > blockquote {\r\n  background: var(--ae-background-100);\r\n  border-left: 2px solid var(--ae-background-500);\r\n  margin: 1.5em 10px;\r\n  padding: 0.5em 10px;\r\n  quotes: \"\\201C\"\"\\201D\"\"\\2018\"\"\\2019\";\r\n}\r\n\r\n// ._CSS_editor > blockquote:before {\r\n//   color: var(--ae-background-500);\r\n//   content: open-quote;\r\n//   font-size: 2em;\r\n//   font-family: 'Times New Roman', Times, serif;\r\n//   line-height: 0.1em;\r\n//   margin-right: 0.25em;\r\n//   vertical-align: -0.4em;\r\n// }\r\n._CSS_editor > p > code {\r\n  font-size: 1em;\r\n  color: var(--ae-background-600);\r\n  font-style: italic;\r\n  padding: 0 4px;\r\n}\r\n\r\n._CSS_editor > pre {\r\n  background-color: var(--ae-background-800);\r\n  color: var(--ae-background-100);\r\n  padding: 0.5rem;\r\n  border-radius: 4px;\r\n}\r\n\r\n._CSS_editor > pre > code {\r\n  color: inherit;\r\n  background: none;\r\n  padding: 0;\r\n  font-size: 0.78rem;\r\n}\r\n\r\n\r\n._CSS_editor > blockquote p {\r\n  display: inline;\r\n}\r\n\r\n._CSS-menu-line {\r\n  width:1px;\r\n  display: inline-block;\r\n  border-left: 1px solid var(--ae-background-300);\r\n}\r\n\r\n._CSS-menu {\r\n  border: 1px solid var(--ae-background-300);\r\n  margin-bottom: 8px;\r\n  position: relative;\r\n  display:flex;\r\n}\r\n\r\n._CSS-menu button {\r\n  border:none;\r\n  background: none;\r\n  padding: 8px;\r\n  opacity: 0.7;\r\n}\r\n\r\n._CSS-menu > ._CSS-is-active {\r\n  background-color: var(--ae-background-300);\r\n  opacity: 1.0;\r\n}\r\n\r\n._CSS-menu button:hover,button:focus {\r\n  background: var(--ae-background-200);\r\n  cursor: pointer;\r\n  opacity: 1;\r\n}\r\n\r\n\r\n._CSS ._CSS-character-count {\r\n  position: absolute;\r\n  bottom: 1em;\r\n  margin-top: 1rem;\r\n  color: #868e96;\r\n}\r\n\r\n._CSS header {\r\n  display:flex;\r\n  align-items: center;\r\n  justify-content: space-between;\r\n}\r\n\r\n._CSS_editor > p {\r\n  margin:0;\r\n}\r\n\r\n._CSS div[data-node-view-wrapper].has-focus {\r\n  outline:2px dotted #050521;\r\n  outline:2px dotted Highlight;\r\n  outline:2px dotted -webkit-focus-ring-color;\r\n}\r\n\r\n._CSS_editor.ProseMirror {\r\n  outline: 0px;\r\n  padding: 2px;\r\n}\r\n\r\n._CSS_editor p.is-editor-empty:first-child::before {\r\n  content: attr(data-placeholder);\r\n  float: left;\r\n  color: #ced4da;\r\n  pointer-events: none;\r\n  height: 0;\r\n}\r\n\r\n        \r\n/* Table-specific styling */\r\n._CSS_editor > .ProseMirror table {\r\n  border-collapse: collapse;\r\n  table-layout: fixed;\r\n  width: 100%;\r\n  margin: 0;\r\n  overflow: visible;\r\n}\r\n\r\n._CSS_editor > .ProseMirror td, th {\r\n  min-width: 1em;\r\n  border: 2px solid #ced4da;\r\n  padding: 3px 5px;\r\n  vertical-align: top;\r\n  box-sizing: border-box;\r\n  position: relative;\r\n}\r\n\r\n._CSS_editor > .ProseMirror td, th  > * {\r\n  margin-bottom: 0;\r\n}\r\n\r\n._CSS_editor > .ProseMirror th {\r\n  font-weight: bold;\r\n  text-align: left;\r\n  background-color: #f1f3f5;\r\n}\r\n\r\n._CSS_editor > .ProseMirror .selectedCell:after {\r\n  z-index: 2;\r\n  position: absolute;\r\n  content: \"\";\r\n  left: 0; right: 0; top: 0; bottom: 0;\r\n  background: rgba(200, 200, 255, 0.4);\r\n  pointer-events: none;\r\n}\r\n\r\n._CSS_editor div[data-node-view-wrapper] {\r\n  vertical-align: unset !important;\r\n}\r\n\r\n._CSS .column-resize-handle {\r\n  position: absolute;\r\n  right: -2px;\r\n  top: 0;\r\n  bottom: -2px;\r\n  width: 4px;\r\n  background-color: #adf;\r\n  pointer-events: none;\r\n}\r\n\r\n._CSS .tableWrapper {\r\n  // overflow-x: auto;\r\n}\r\n\r\n._CSS .resize-cursor {\r\n  cursor: ew-resize;\r\n  cursor: col-resize;\r\n}\r\n\r\n._CSS-insert-doc-ref-menu {\r\n  border-radius: var(--ae-border-radius);\r\n}\r\n\r\n._CSS-insert-doc-ref-menu > div > input {\r\n  border: none;\r\n  border-bottom: 1px solid var(--ae-background-200);\r\n}","controller":"class Controller {\r\n  async toolbarEvent(eventType) {\r\n    console.log('toolbar event kb page',eventType,  document.id)\r\n    \r\n    if (eventType === 'save') {\r\n      this.save()\r\n    } else if (eventType === 'reset') {\r\n      this.reset()\r\n    }\r\n  }\r\n\r\n  _resetInsertTableMenuSelectedCells() {\r\n    locals.insertMenuSelectedCells = {\r\n      x:2,\r\n      y:2,\r\n    }\r\n  }\r\n    \r\n  async init() {\r\n    this.FORMS = {\r\n      Page: 'cb2adf77-7636-41a7-9a16-1610b06fa91e',\r\n      Section: '47c3efd4-c1bd-40ce-81ac-d39401664153',\r\n      Datei: '6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2',\r\n      DateiCore: 'dbee6e16-d63a-493c-bba6-505f79918f9f',\r\n    }\r\n    this.FILE_FORMS = [\r\n      this.FORMS.Datei, \r\n      this.FORMS.DateiCore, \r\n    ]\r\n\r\n    locals.readonly = !Aeppic.isEditableDocument(document)\r\n    \r\n    if (!locals.readonly) {\r\n      if (params.readonly == 'true') {\r\n        locals.readonly = true  \r\n      } else if (params.readonly === true) {\r\n        locals.readonly = true\r\n      }\r\n    }\r\n\r\n    console.log('readonly', locals.readonly,Aeppic.isEditableDocument(document))\r\n\r\n    locals.editor = null\r\n    locals.limit = 10000 \r\n\r\n    const childTypes = params.childTypes || []\r\n\r\n    const ensuredChildForms = await Aeppic.getAll(childTypes.map(c => c.form))\r\n\r\n    locals.insertChildTypes = ensuredChildForms.reduce((result, childType, index) => {\r\n      if (childType?.f.id === 'form') {\r\n        result.push(childTypes[index])\r\n      }\r\n      return result\r\n    }, [])\r\n\r\n    if (!locals.readonly) { \r\n      this._resetInsertTableMenuSelectedCells()\r\n\r\n      this._findReference = this._debounce(async (query) => {    \r\n        console.log('searching for', query)  \r\n\r\n        locals.searchingForReference = query\r\n\r\n        const results = await Aeppic.find(query, { size: 20 })\r\n\r\n        if (locals.searchingForReference !== query) {\r\n          console.log('ignoring results for', query)\r\n          return\r\n        }\r\n\r\n        console.log('found results for', query)\r\n        locals.referencesFound = results\r\n        locals.searchingForReference = null    \r\n      }, 250)\r\n\r\n      \r\n      locals.insertDocumentReferenceSearch = ''\r\n      locals.searchingForReference = null \r\n      locals.referencesFound = null\r\n      \r\n      // Aeppic.watch(document, (newVersion) => {\r\n      //   Aeppic.integrate(document, newVersion)\r\n      // })\r\n    }\r\n\r\n    await Aeppic.nextRenderPass()\r\n    \r\n    const { Vue, Editor, AllExtensions } = packages.Editor \r\n\r\n    locals.extensions = [ \r\n        AllExtensions.configure({ \r\n          placeholder: {\r\n            placeholder: 'Schreiben Sie hier etwas ...'\r\n          },\r\n          table: {\r\n            resizable: true\r\n          },\r\n          aeDesign: {\r\n            defaultParams: {\r\n              kbRoot: params.kbRoot,\r\n              kbPageId: document.id,\r\n              editorBoundary: 'window',\r\n            }\r\n          },\r\n          aeDesignInline: {\r\n            defaultParams: {\r\n              kbRoot: params.kbRoot,\r\n              kbPageId: document.id,\r\n              editorBoundary: 'window',\r\n            }\r\n          },\r\n          // characterCount: {\r\n          //   limit: locals.limit\r\n          // },\r\n          // floatingMenu: {\r\n          //   element: $refs.floatingMenu,\r\n          //   tippyOptions: {\r\n          //     theme: 'light-border',\r\n          //     placement: 'bottom-start',\r\n          //     hideOnClick: false,\r\n          //     trigger: 'click', \r\n          //     inertia: true,\r\n          //     offset: [5, 20],\r\n          //   }\r\n          // } \r\n        }),\r\n      ]\r\n\r\n    const content = await this._loadContent(document)\r\n    // const content = '<p>A small <ae-design-inline document-id=\"system\" param-show-icon=\"true\"></ae-design-inline> text</p><p>[</p><ae-design document-id=\"apps\"  param-show-another-icon=\"true\"></ae-design><p>] <a href=\"https://unsplash.com/@mgoetzke\">TEST</a></p>'\r\n    const findDesignsInSlice = (slice) => this._findDesignsInContent(slice.content)\r\n    const getDesignDocument = (designNode) => this._getDocumentFromDesignNode(designNode)\r\n    const isANonPageChildOfAnotherPage = (document) => this._isANonPageChildOfAnotherPage(document)\r\n\r\n    locals.editor = new Editor({\r\n      content,\r\n      editable: !locals.readonly,\r\n      extensions: locals.extensions,\r\n      autofocus: true,\r\n      editorProps: {\r\n        attributes: {\r\n          class: '_CSS_editor',\r\n          spellcheck: 'false',\r\n        },\r\n        handlePaste(view, event, slice) {\r\n          const embeddedDesigns = findDesignsInSlice(slice)\r\n\r\n          setTimeout(async () => {\r\n            const cloneMap = new Map()\r\n\r\n            for (const design of embeddedDesigns) {\r\n              const documentInDesign = await getDesignDocument(design)\r\n              \r\n              if (!documentInDesign) {\r\n                continue\r\n              }\r\n              \r\n              if (isANonPageChildOfAnotherPage(documentInDesign)) {\r\n                console.log('ischildOfAnotherPage', documentInDesign)\r\n                \r\n                const alreadyClonedId = cloneMap.get(documentInDesign.id)\r\n\r\n                if (alreadyClonedId) {\r\n                  console.log('already cloned into current page children')\r\n                  design.attrs['document-id'] = alreadyClonedId\r\n                } else {\r\n                  const result = await Aeppic.cloneDeep(documentInDesign, document.id, { save: true })\r\n                  const cloneId = result.documents[0].id\r\n                 \r\n                  design.attrs['document-id'] = cloneId\r\n\r\n                  cloneMap.set(documentInDesign.id, cloneId)\r\n                }\r\n              }\r\n            }\r\n          })\r\n \r\n          // console.log('pasting', slice, embeddedDesigns)\r\n          // return true\r\n        }\r\n      }\r\n    }) \r\n\r\n    if (!locals.readonly) {\r\n      locals.editor.on('update', () => {\r\n        if (!document.data.editingFlag) {\r\n          console.log('updated')\r\n          document.data.editingFlag = true\r\n          Aeppic.commit(document)\r\n        }\r\n        // locals.content = JSON.stringify(getJSON())\r\n      })\r\n\r\n      await Aeppic.nextRenderPass()\r\n\r\n      this._insertTableMenu = this.insertTableMenu()\r\n      this._editTableMenu = this.insertEditTableMenu()\r\n      this._insertDocumentReferenceMenu = this.insertDocumentReferenceMenu()\r\n      this._insertChildMenu = this.insertChildMenu()\r\n      \r\n      const boundary = $refs.page\r\n\r\n      this._menus = Aeppic.Modules.Tippy.createSingleton(\r\n        [this._insertTableMenu, this._editTableMenu, this._insertDocumentReferenceMenu, this._insertChildMenu].filter(e => !!e),\r\n        { \r\n          moveTransition: 'transform 0.1s ease-out',\r\n          position: 'bottom',\r\n          boundary,\r\n          arrow: true,\r\n          theme: 'light-border',\r\n          delay: [0, 1000],\r\n          interactive: true,\r\n          offset: [0,0],\r\n        } \r\n      )\r\n    }\r\n  }\r\n\r\n  async _loadContent(sourceDocument) {\r\n    const FORMS = this.FORMS \r\n    \r\n    const pageContent = {\r\n      type: 'doc',\r\n      content: []\r\n    }\r\n\r\n    const allSections = await Aeppic.getAll(sourceDocument.data.sections)\r\n     \r\n    for (let i=0; i < allSections.length; i++) {\r\n      const section = allSections[i]\r\n \r\n      if (!section) {\r\n        const sectionRef = sourceDocument.data.sections.splice(i, 1)[0]\r\n\r\n        console.warn('Missing section', sectionRef)\r\n        Aeppic.delete(sectionRef)\r\n        continue\r\n      }\r\n\r\n      if (section.data.content && section.data.content.length > 0) {\r\n        const contentParts = section.data.content.map(json => JSON.parse(json))\r\n        pageContent.content.push(...contentParts)\r\n      } \r\n    } \r\n\r\n    if (pageContent.content.length === 0) {\r\n      return ''\r\n    }\r\n\r\n    return pageContent\r\n  }\r\n\r\n  async save() {\r\n    console.log('page: saving')\r\n    \r\n    if (locals.readonly) {\r\n      return\r\n    }\r\n\r\n    if (!Aeppic.isEditableDocument(document)) {\r\n      return\r\n    }\r\n   \r\n    if (document.hasRevisions && !document.data.editingFlag) {\r\n      Aeppic.save(document)\r\n      return\r\n    }\r\n\r\n    if (!document.data.editingFlag) {\r\n      return \r\n    }\r\n\r\n    const FORMS = this.FORMS\r\n\r\n    const { Core } = packages.Editor \r\n\r\n    const allSections = (await Aeppic.editAll(document.data.sections)).filter(s => !!s)\r\n    const sections = []  \r\n\r\n    const numberOfRootParts = locals.editor.state.doc.childCount\r\n\r\n    for (let i=0; i < numberOfRootParts; i ++) {\r\n      const part = locals.editor.state.doc.child(i)\r\n      const json = part.toJSON()\r\n      const children = []\r\n      const externalRefs = []\r\n      const { referencedDocumentIds, text } = extractStatsFromNode(part)\r\n\r\n      if (referencedDocumentIds.size > 0) {\r\n        const referencedDocuments = (await Aeppic.getAll([...referencedDocumentIds])).filter(d => !!d)\r\n\r\n        for (const referencedDocument of referencedDocuments) {\r\n          const reference = await Aeppic.asReference(referencedDocument)\r\n\r\n          if (!reference) {\r\n            continue\r\n          }\r\n\r\n          if (referencedDocument.p === document.id) {\r\n            children.push(reference)\r\n          } else {\r\n            externalRefs.push(reference)\r\n          }\r\n        } \r\n      }\r\n\r\n      const lastPart = (i === numberOfRootParts - 1)\r\n\r\n      if (lastPart && part.type.name === 'paragraph' && part.content.size === 0) {\r\n        continue\r\n      }\r\n\r\n      await writeToSection({ json, text, children, externalRefs })\r\n    } \r\n\r\n    for (const section of sections) {\r\n      Aeppic.save(section)\r\n    }\r\n\r\n    document.data.sections = sections.map(s => s.asReference())\r\n\r\n    allSections.forEach(oldSection => Aeppic.delete(oldSection))\r\n\r\n    async function writeToSection({ json, text, children, externalRefs }) {\r\n      const section = await getSection()\r\n\r\n      section.data.content.push(JSON.stringify(json))\r\n      \r\n      const html = Core.generateHTML(json, locals.extensions)\r\n\r\n      if (html.length > 0) {\r\n        section.data.html += html + ' '\r\n      }\r\n\r\n      if (text.length > 0) {\r\n        section.data.text += text + ' '\r\n      }\r\n\r\n      if (children.length) {\r\n        section.data.children = [ ...section.data.children, ...children ]\r\n      }\r\n\r\n      if (externalRefs.length) {\r\n        section.data.externalRefs = [ ...section.data.externalRefs, ...externalRefs ]\r\n      }\r\n    }\r\n\r\n    async function getSection() {\r\n      let lastSection = sections[sections.length - 1]\r\n\r\n      if (!lastSection) {\r\n        if (allSections.length > 0) {\r\n          const existingSection = allSections.shift()\r\n          \r\n          existingSection.data.html = ''\r\n          existingSection.data.text = ''\r\n          existingSection.data.children = []\r\n          existingSection.data.externalRefs = []\r\n          existingSection.data.content = []\r\n          \r\n          lastSection = existingSection\r\n        } else {\r\n          const newSection = await Aeppic.new(FORMS.Section, document)\r\n          newSection.hidden = true\r\n          lastSection = newSection\r\n        }\r\n\r\n        sections.push(lastSection)\r\n      }\r\n\r\n      return lastSection  \r\n    }\r\n\r\n    function extractStatsFromNode(node, stats = { referencedDocumentIds: new Set(), text: '' }) {\r\n      if (node.type.name === 'aeDesign' || node.type.name === 'aeDesignInline') {\r\n        const documentId = node.attrs['document-id']\r\n        stats.referencedDocumentIds.add(documentId)\r\n      } else if (node.content.content && node.content.content.length > 0) {\r\n        for (const childNode of node.content.content) {\r\n          extractStatsFromNode(childNode, stats)\r\n        }\r\n      } else {\r\n        stats.text += ' ' + node.textContent\r\n      }\r\n\r\n      return stats\r\n    }\r\n\r\n    document.data.editingFlag = false\r\n    Aeppic.save(document)\r\n  }\r\n\r\n  async reset() {\r\n    console.log('resetting page')\r\n    const content = await this._loadContent(document)\r\n    locals.editor.commands.setContent(content) \r\n    document.data.editingFlag = false \r\n  } \r\n\r\n  async destroy() {\r\n    if (this._menus) {\r\n      this._insertTableMenu.destroy()\r\n      this._editTableMenu.destroy()\r\n      this._insertDocumentReferenceMenu && this._insertDocumentReferenceMenu.destroy()\r\n      this._insertChildMenu && this._insertChildMenu.destroy()\r\n      this._menus.destroy()\r\n    }\r\n\r\n    await this.save()\r\n\r\n    locals.editor.destroy()\r\n  }\r\n\r\n  insertTableMenu() {\r\n    const tippy = Aeppic.Modules.Tippy.default\r\n    const self = this\r\n\r\n    return tippy($refs.insertTableMenu, {\r\n      content: $refs.insertTableMenuTemplate,\r\n      onShow(instance) {\r\n        self._resetInsertTableMenuSelectedCells()\r\n      },\r\n    })\r\n  }\r\n\r\n  insertTable() {\r\n    const { x, y } = locals.insertMenuSelectedCells\r\n    const options = { rows: y+1, cols: x+1, withHeaderRow: false }\r\n    \r\n    locals.editor.chain().focus().insertTable(options).run()\r\n    this._menus.hide()\r\n  }\r\n\r\n  insertEditTableMenu() {\r\n      const tippy = Aeppic.Modules.Tippy.default\r\n    const self = this\r\n\r\n    return tippy($refs.editTableMenu, {\r\n      content: $refs.editTableMenuTemplate,\r\n    })\r\n  }\r\n\r\n  insertDocumentReferenceMenu() {\r\n    if (!$refs.insertDocumentReferenceMenu) {\r\n      return null\r\n    }\r\n\r\n    const tippy = Aeppic.Modules.Tippy.default\r\n    const self = this\r\n\r\n    return tippy($refs.insertDocumentReferenceMenu, {\r\n      content: $refs.insertDocumentReferenceMenuTemplate,\r\n    })\r\n  }\r\n\r\n  insertChildMenu() {\r\n    if (!$refs.insertChildMenu) {\r\n      return null\r\n    } \r\n\r\n    const tippy = Aeppic.Modules.Tippy.default\r\n    const self = this\r\n\r\n    return tippy($refs.insertChildMenu, {\r\n      content: $refs.insertChildMenuTemplate,\r\n    })\r\n  }\r\n\r\n  focusInsertDocumentReference() {\r\n    this._menus.show(this._insertDocumentReferenceMenu)\r\n    \r\n    const input = $refs.insertDocumentReferenceMenuInput\r\n    \r\n    if (input) {\r\n      input.focus()\r\n    }\r\n  }\r\n\r\n  focusInsertChildDocument() {\r\n    \r\n  }\r\n\r\n  searchDocumentReference() {\r\n    let searchTerm = locals.insertDocumentReferenceSearch\r\n    const searchRoot = document.a[0]\r\n\r\n    if (searchTerm[0] !== '\"' && searchTerm.indexOf(':')<0) {\r\n      searchTerm += '*'\r\n    }\r\n\r\n    const query = `a:${searchRoot} ${searchTerm}`\r\n    \r\n    this._findReference(query)\r\n  }\r\n\r\n  insertDocumentReference(referencedDocument) {\r\n    locals.editor.commands.insertContent(\r\n      `<ae-design-inline document-id=\"${referencedDocument.id}\"></ae-design>`\r\n    )\r\n  }\r\n\r\n  _debounce(callback, wait) {\r\n    let timeout = null\r\n    let callbackArgs = null\r\n    \r\n    const later = () => callback.apply(this, callbackArgs)\r\n    \r\n    return function(...args) {\r\n      callbackArgs = args\r\n      Aeppic.clearTimeout(timeout)\r\n      timeout = Aeppic.setTimeout(later, wait || '250')\r\n    }\r\n  }\r\n\r\n  dragEnter() {\r\n    console.log('dragenter')\r\n  }\r\n\r\n  dragLeave() {\r\n    console.log('dragleave')\r\n  }\r\n\r\n  dragOver(...args) {\r\n    console.log('dragover', ...args)\r\n  }\r\n\r\n  async drop(event) {\r\n    const insertChildTypeOfFileForm = locals.insertChildTypes.find(childType => this.FILE_FORMS.includes(childType.form))\r\n    if (!insertChildTypeOfFileForm) {\r\n      throw new Error('No insertChildForm of type file found')\r\n    }\r\n\r\n    const dropFileFormId = insertChildTypeOfFileForm.form\r\n\r\n    const { dataTransfer } = event\r\n    \r\n    for (const file of dataTransfer.files) {\r\n      const newFile = await Aeppic.new(dropFileFormId, document)\r\n      newFile.data.name = file.name\r\n      newFile.setFile('datei', file)\r\n      Aeppic.save(newFile)\r\n\r\n      locals.editor.commands.insertContent(\r\n        `<ae-design-inline document-id=\"${newFile.id}\"></ae-design-inline>`\r\n        )\r\n    }\r\n  }\r\n\r\n  async insertNewChild(childType) {\r\n    const asList = childType.list === true\r\n\r\n    if (asList) {\r\n      const form = await Aeppic.get(childType.form)\r\n      const newList = await Aeppic.new('repository-folder-form', document)\r\n      newList.data.name = childType.name || `List of ${form.data.name}`\r\n      newList.addReference('contentsForm', form)\r\n\r\n      Aeppic.save(newList)\r\n\r\n       locals.editor.commands.insertContent(\r\n        `<ae-design-inline document-id=\"${newList.id}\"></ae-design-inline>`\r\n      )\r\n    } else {\r\n      const newChild = await Aeppic.new(childType.form, document)\r\n      newChild.data.name = 'Neu'\r\n      Aeppic.save(newChild)\r\n\r\n      if (childType.form === this.FORMS.Page) {\r\n        document.addReference('pages', newChild)\r\n      }\r\n\r\n      locals.editor.commands.insertContent(\r\n        `<ae-design-inline document-id=\"${newChild.id}\"></ae-design-inline>`\r\n      )\r\n    }\r\n  }\r\n\r\n  _findDesignsInContent(parentContent, parentDesigns) {\r\n    const designs = parentDesigns || []\r\n\r\n    for (const childContent of parentContent.content) {\r\n      if (childContent.type.name.startsWith('aeDesign')) {\r\n        designs.push(childContent)\r\n      }\r\n\r\n      this._findDesignsInContent(childContent.content, designs)\r\n    }\r\n\r\n    return designs \r\n  }\r\n   \r\n  async _getDocumentFromDesignNode(designNode) {\r\n    const documentId = designNode.attrs['document-id']\r\n    const document = await Aeppic.get(documentId)\r\n    return document\r\n  }\r\n\r\n  _isANonPageChildOfAnotherPage(doc) {\r\n    if (doc.p === document.id) {\r\n      return false\r\n    }\r\n\r\n    if (doc.f.id === this.FORMS.Page) {\r\n      return false\r\n    }\r\n\r\n    const parentFormId = doc.a_forms[doc.a.length - 1]\r\n    return (parentFormId === this.FORMS.Page)\r\n  }\r\n}\r\n ","packages":[{"id":"31da2761-bf6b-40e8-af3c-7bbbbb473058","v":"7d8f474a4c601c96","text":"Editor - TipTap2 "}],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-07-07T11:16:56+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","from":"","client":"server"},"modified":{"at":"2021-11-10T09:55:23+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1636538123285,"ct":1625656616827,"a_depth":4,"a":["apps","cf914a7f-ff5f-4598-80f1-63c9129e0a71","d69a62e9-a61f-42bf-9ae9-7983b87bf587","cb2adf77-7636-41a7-9a16-1610b06fa91e"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["system","b2533f7b-ea85-4680-99ed-d8e11be641b9","0e6939d6-9b93-4165-b6bd-977e4da881f3","627f5b74-3baf-45f8-a1d3-a5936839b844","lock-form"],"a_depth":5,"a_forms":["system-folder-form","folder","application-form","form-folder","form"],"created":{"at":"2018-12-07T13:34:00+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","client":"server","from":""},"ct":1593509366967,"data":{"aliases":[],"controller":"class Controller {\r\n  init() {\r\n    // const OWNER_RIGHT_ID = 'aa07b33e-c450-4ef2-afd4-27c9d7425d6c'\r\n    this.OWNER_RIGHT_ID = 'aa3ba2de-4b65-4152-ab1d-655e21de9efd'\r\n    this.GROUP_FORM_ID = 'group'\r\n\r\n    this.scopeId = document.a[0]\r\n\r\n    locals.canEdit = true\r\n\r\n    // locals.accounts = [Aeppic.Account]\r\n    locals.hasExistingKeys = false\r\n    locals.accounts = []\r\n    locals.keys = [] \r\n\r\n    locals.availableAccountsFilter = null\r\n    locals.availableAccounts = []\r\n    locals.showSelector = false\r\n\r\n    updateKeys()\r\n\r\n    watchParam('applicableKeys', () => {\r\n      updateKeys()\r\n    })\r\n\r\n    const self = this\r\n\r\n    async function updateKeys() {\r\n      const applicableKeys = params.applicableKeys\r\n      const existingKeys = await Aeppic.find(`p:${document.id} f.id:key-form data.lock.id:${document.id}`, { sort: 'data.name' })\r\n\r\n      locals.hasExistingKeys = !!existingKeys.length\r\n\r\n      const keys = []\r\n\r\n      const securityAdministratorsGroups = params.securityAdministratorsGroups?.filter(d => !!d)\r\n      for (const applicableKey of applicableKeys) {\r\n        let alreadyAdded = false\r\n\r\n        for (const existingKey of existingKeys) {\r\n          const rootTemplateOfExistingKey = await existingKey.originalCloneOf\r\n\r\n          if (rootTemplateOfExistingKey && rootTemplateOfExistingKey.id === applicableKey.id) {\r\n            keys.push(await Aeppic.edit(existingKey))\r\n            alreadyAdded = true\r\n            break\r\n          }\r\n        }\r\n \r\n\r\n        if (!alreadyAdded) {\r\n          const newKey = await Aeppic.clone(applicableKey, document.id)\r\n          newKey.addReference('lock', document)\r\n\r\n          if (newKey.isReferencing('rights', self.OWNER_RIGHT_ID)) {\r\n            // Automatically add current user to keys marked as having OWNER right\r\n            newKey.addReference('accounts', Aeppic.Account)\r\n\r\n            // Automatically add security group to keys marked as having OWNER right\r\n            if (securityAdministratorsGroups?.length) {\r\n              for (const group of securityAdministratorsGroups) {\r\n                newKey.addReference('groups', group)\r\n              }\r\n            }\r\n          }\r\n\r\n          Aeppic.commit(newKey)\r\n          keys.push(newKey)\r\n        }\r\n      }\r\n    \r\n      for (const existingKey of existingKeys) {\r\n        const known = keys.find(k => k.id === existingKey.id)\r\n\r\n        if (!known) {\r\n          keys.push(await Aeppic.edit(existingKey))\r\n        }\r\n      }\r\n\r\n\r\n      locals.keys = keys\r\n\r\n      updateAccountsFromKeys()\r\n    }\r\n\r\n    async function updateAccountsFromKeys() {\r\n      const addedAccounts = new Set(locals.accounts.map(a => a.id))\r\n\r\n      for (const key of locals.keys) {\r\n        for (const account of key.data.accounts) {\r\n          if (!addedAccounts.has(account.id)) {\r\n            locals.accounts.push(account)\r\n            addedAccounts.add(account.id)\r\n          }\r\n        }\r\n      }\r\n    \r\n    }\r\n\r\n\r\n    // locals.roles = [role('Leser'), role('Editor'), role('DMS Admin'), role('News Admin'), role('Auditor'), role('Publisher'), role('Supervisor'), role('Editor'), role('GF')]\r\n    locals.groups = findGroups()\r\n\r\n    async function findGroups() {\r\n      const documentRoot = document.a[0] \r\n      const groups = await Aeppic.find(`a:${documentRoot} f.id:${self.GROUP_FORM_ID}`)\r\n      return groups \r\n    }\r\n\r\n    // for (const r of locals.roles) {\r\n    //   for (const g of locals.groups) {\r\n    //     if (Math.random()*100 > 92) {\r\n    //       this.keys.push(key(r,g))\r\n    //     } \r\n    //   }\r\n    // }\r\n\r\n    // function role(name) {\r\n    //   return { name }\r\n    // }\r\n\r\n    function group(name) {\r\n      return { name }\r\n    }\r\n \r\n    // function key(role, group) {\r\n    //   return { group, role  }\r\n    // }\r\n  } \r\n\r\n  hasKeyBeenGivenToAccount(key, account) {\r\n    return key.isReferencing('accounts', account)\r\n  }\r\n\r\n  async toggleAccountAccess(key, accountRef) {\r\n    if (key.isReferencing('accounts', accountRef)) {\r\n      key.removeReference('accounts', accountRef)\r\n    } else {\r\n\r\n      const account = await Aeppic.get(accountRef)\r\n      key.addReference('accounts', account)\r\n    }\r\n    \r\n    Aeppic.commit(key)\r\n  }\r\n\r\n  async toggleGroupAccess(key, groupRef) {\r\n    if (key.isReferencing('groups', groupRef)) {\r\n      key.removeReference('groups', groupRef)\r\n    } else {\r\n      const group = await Aeppic.get(groupRef)\r\n\r\n      key.addReference('groups', group)\r\n    }\r\n\r\n    Aeppic.commit(key)\r\n  }\r\n\r\n  hasKeyBeenGivenToGroup(key, group) {\r\n    return key.isReferencing('groups', group)\r\n  }\r\n\r\n  async findAllGroups() {\r\n    return []\r\n  }\r\n\r\n  async findAllUsers() {\r\n    return [ ]\r\n  }\r\n\r\n  get hasChanges() {\r\n    if (!locals.keys) {\r\n      return false\r\n    }\r\n\r\n    for (const key of locals.keys) {\r\n      if (key.hasRevisions) {\r\n        return true\r\n      }\r\n    }\r\n\r\n    return false\r\n  }\r\n\r\n  canGroupReachDocument(group) {\r\n    return true\r\n  }\r\n\r\n  canUserReachDocument(user) {\r\n    return true\r\n  }\r\n\r\n  getKeyForGroup(group) {\r\n  }\r\n\r\n  getKeyForUser(user) {\r\n  }\r\n\r\n  async saveChanges() {\r\n    if (!this.isSomeoneOwner) {\r\n      return\r\n    }\r\n\r\n    Aeppic.save(document)\r\n     \r\n    for (const key of locals.keys) {\r\n      Aeppic.save(key)\r\n    } \r\n\r\n    const documentBeingLocked = await Aeppic.edit(document.p)\r\n    documentBeingLocked.addLock(document)\r\n    Aeppic.save(documentBeingLocked)\r\n\r\n    $emit('save')\r\n  }\r\n \r\n  get isSomeoneOwner() {\r\n    for (const key of locals.keys) {\r\n      if (!key.isReferencing('rights', this.OWNER_RIGHT_ID)) {\r\n        continue\r\n      }\r\n\r\n      if (key.data.accounts.length || key.data.groups.length) {\r\n        return true\r\n      }\r\n    }\r\n\r\n    return false\r\n  }\r\n\r\n  async showAddAccount() {\r\n    locals.availableAccountsFilter = null\r\n    locals.availableAccounts = await this.findAccounts()\r\n    locals.showSelector = true\r\n\r\n    await Aeppic.nextRenderPass()\r\n\r\n    $refs.addAccountPopup.$emit('show', {\r\n      target: $refs.buttonAdd\r\n    })\r\n  }\r\n \r\n  async findAccounts() {\r\n    const profiles = await Aeppic.find(`f.id:d2ac3563-3c3f-4f02-b923-9b67abf98d10 a:${this.scopeId} ${locals.availableAccountsFilter ? `(${locals.availableAccountsFilter})` : ''}`, { size: 9999 })\r\n\r\n    const accountsPromises = profiles.map(profile => this.getAccount(profile))\r\n    const accounts = (await Promise.all(accountsPromises)).filter(a => a != null && !locals.accounts.find(ea => ea.id == a.id))\r\n\r\n    return accounts  \r\n  }\r\n\r\n  async getAccount(profile) {\r\n    const asProfileRef = await Aeppic.findOne(`a:${this.scopeId} f.id:account account.data.profilePage.id:${profile.id}`)\r\n\r\n    if (asProfileRef) {\r\n      return asProfileRef\r\n    }\r\n\r\n    const asProfileParent = (await Aeppic.findOne(`a:${this.scopeId} f.id:account p:${profile.id}`))\r\n\r\n    if (asProfileParent) {\r\n      return asProfileParent\r\n    }\r\n\r\n    return null\r\n  }\r\n\r\n  async filterAccounts(filter) {\r\n    // FIXME: re-add `data.name:${part}*`. Right now, with the fielName specified, any search for less than 5 characters will not return any result\r\n    const filterParts = filter.trim().split(' ').map(part => `${part}*`).join(' OR ') \r\n \r\n    console.log(filterParts)\r\n\r\n    locals.availableAccountsFilter = filterParts || ''\r\n\r\n    locals.availableAccounts = this.findAccounts()\r\n  }\r\n\r\n  async addAccount(account) {\r\n    locals.accounts.push(account)\r\n  }\r\n}","css":"\r\n._CSS-fa--fa-lock:before {\r\n  content: \"\\f023\"; }\r\n\r\n._CSS-fa--fa-lock-alt:before {\r\n  content: \"\\f30d\"; }\r\n\r\n._CSS-fa--fa-lock-open:before {\r\n  content: \"\\f3c1\"; }\r\n\r\n._CSS-fa--fa-lock-open-alt:before {\r\n  content: \"\\f3c2\"; }\r\n\r\n\r\n._CSS-fa--fa-toggle-on:before {\r\n  /* content: \"\\f14a\"; */\r\n  content: \"\\f205\";\r\n  color: var(--ae-primary);\r\n  /* font-weight: bold; */\r\n}\r\n\r\n._CSS-fa--fa-toggle-off:before {\r\n  /* content: \"\\f0c8\"; */\r\n  content: \"\\f204\";  \r\n  opacity:0.5;\r\n  color: var(--ae-primary);\r\n  /* font-weight: bold; */\r\n}\r\n\r\n\r\n._CSS-icon {\r\n  font-size:25px;\r\n}\r\n\r\n._CSS-header { \r\n  display:flex;\r\n  align-items: center;\r\n  justify-content: space-between; \r\n  font-size:smaller;\r\n  background:transparent;\r\n}\r\n\r\n._CSS-ae-dialog {\r\n  border:none;\r\n}\r\n\r\n._CSS-close {\r\n  color: var(--ae-primary);\r\n  background:transparent;\r\n}\r\n\r\n._CSS-dialog__header {\r\n  flex: 1;\r\n  display: flex;\r\n  justify-content: space-between;\r\n}\r\n\r\n._CSS-dialog-footer {\r\n  flex: 1;\r\n  display: flex;\r\n  justify-content: flex-end;\r\n}\r\n\r\n._CSS-dialog-footer * {\r\n  margin-left:12px;\r\n}\r\n\r\n._CSS-matrix {\r\n  display: table;\r\n  width: 100%;\r\n}\r\n\r\n._CSS-cell {\r\n  flex: 1;\r\n  min-width:0px;\r\n  overflow: auto;\r\n  display:flex;\r\n  align-items: center;\r\n}\r\n\r\n._CSS-cell:not(:first-of-type) {\r\n  text-align: center;\r\n}\r\n\r\n._CSS-cell:first-of-type {\r\n  min-width: 12em;\r\n}\r\n \r\n._CSS-cell--header {\r\n  padding-bottom: 1em;\r\n  text-overflow: ellipsis;\r\n  display:inline-block;\r\n  align-items:center;\r\n  text-align:center;\r\n}\r\n\r\n._CSS-row--header {\r\n  min-height: 2em;\r\n}\r\n\r\n._CSS-row {\r\n  display: flex;\r\n}\r\n\r\n._CSS-row > * {\r\n  /* flex: 1; */\r\n  min-width: 1em;\r\n}\r\n\r\n._CSS-cell--content {\r\n  background: var(--ae-ui-background);\r\n  padding: 2px;\r\n  border: solid var(--ae-border-color);\r\n  border-width: var(--ae-border-width) 0px 0 var(--ae-border-width); \r\n  justify-content:center;\r\n  align-items:center;\r\n}\r\n\r\n._CSS-cell--content + ._CSS-cell--content {\r\n  border-width: var(--ae-border-width) var(--ae-border-width) 0 var(--ae-border-width);   \r\n}\r\n\r\n._CSS-rows ._CSS-row:last-of-type ._CSS-cell--content  {\r\n  border-width: var(--ae-border-width) 0px var(--ae-border-width) var(--ae-border-width);   \r\n}\r\n\r\n._CSS-rows ._CSS-row:last-of-type ._CSS-cell--content + ._CSS-cell--content {\r\n  border-width: var(--ae-border-width) var(--ae-border-width) var(--ae-border-width) var(--ae-border-width);   \r\n}\r\n\r\n\r\n._CSS-lock-title {\r\n  text-align:left;\r\n}\r\n\r\n._CSS-commands {\r\n  margin-top: 1em;\r\n  justify-content: flex-end;\r\n  display:flex;\r\n  /* xbackground:red; */\r\n  padding:0;\r\n}\r\n\r\n._CSS-commands button {\r\n  margin-right:0;\r\n}\r\n\r\n._CSS-command button:disabled {\r\n  cursor: not-allowed;\r\n  pointer-events: none;\r\n  opacity: 0.2;\r\n}\r\n\r\n._CSS ._CSS-button-add {\r\n  margin-top: 1em;\r\n  width: 28px;\r\n  height: 28px;\r\n  text-align:center;\r\n  background: transparent;\r\n  border: none;\r\n  border-radius: 50%;\r\n}\r\n\r\n._CSS ._CSS-button-add:hover {\r\n  background: var(--ae-background-d3);\r\n}\r\n\r\n._CSS-button-icon {\r\n  color: var(--ae-theme-text-icon-on-background);\r\n}\r\n\r\n._CSS-lock-title {\r\n  color: var(--ae-foreground-l3);\r\n  text-align:center;\r\n}\r\n\r\n._CSS-error {\r\n  margin: 14px 0;\r\n  color: var(--ae-heading-1-color);\r\n}","description":"","name":"editor","packages":[],"template":"<div class=\"_CSS-matrix\">\r\n  <div class=\"_CSS-row _CSS-row--header\">\r\n    <div class=\"_CSS-cell _CSS-cell--header _CSS-lock-title\">\r\n      <!-- <ae-design name=\"title\" :document=\"document\" :watch-revision=\"false\" :watch=\"false\"></ae-design> -->\r\n    </div>\r\n    <div class=\"_CSS-cell _CSS-cell--header\" v-for=\"key of locals.keys\">\r\n      <ae-design name=\"rights\" :document=\"key\" :watch-revision=\"false\" :watch=\"false\" :param-show-title=\"true\"></ae-design>\r\n    </div>\r\n  </div> \r\n  <div class=\"_CSS-row\">\r\n    <div class=\"_CSS-cell\">\r\n      <!-- <input type=\"text\"> -->\r\n    </div>\r\n    <div class=\"_CSS-cell\" v-for=\"role of locals.keys\">\r\n    </div>\r\n  </div>\r\n  <div class=\"_CSS-rows\">\r\n <h2>{{ Aeppic.translate('security:users') }}</h2>\r\n    <div class=\"_CSS-row\" v-for=\"account of locals.accounts\">\r\n      <div class=\"_CSS-cell\">\r\n        <ae-design name=\"profile-avatar\" :document=\"account\"></ae-design>\r\n        <ae-design style=\"padding-left:6px\" name=\"profile-title\" :document=\"account\"></ae-design>\r\n      </div>\r\n      <div class=\"_CSS-cell _CSS-cell--content\" v-for=\"key of locals.keys\" @click=\"controller.toggleAccountAccess(key, account)\"> \r\n        <i v-if=\"controller.hasKeyBeenGivenToAccount(key, account)\" class=\"fas fa-2x _CSS-icon _CSS-fa--fa-toggle-on\"></i>\r\n        <i v-else class=\"fal fa-2x _CSS-icon _CSS-fa--fa-toggle-off\"></i>\r\n      </div>\r\n    </div>\r\n  </div>\r\n  <button \r\n      v-if=\"locals.canEdit\"\r\n      class=\"ae-button\"\r\n      ref=\"buttonAdd\"\r\n      @click.stop.prevent=\"controller.showAddAccount()\">\r\n    <ae-icon class=\"fa fa-plus \"></ae-icon>\r\n  </button>\r\n\r\n \r\n  <!-- TODO: :param-nofilter=\"mode === 'tags' && !params.useButton\" -->\r\n  <ae-layout\r\n    layout-id=\"ed2cc4c2-d2a0-4969-8da7-49fb3d539cc9\"\r\n    ref=\"addAccountPopup\"\r\n    :params=\"{ items: locals.availableAccounts, hidePath: true, searchSize: 50, designName: 'profile-title' }\"\r\n    @filter=\"controller.filterAccounts($event)\"\r\n    @selected=\"controller.addAccount($event)\"\r\n    @load-more=\"controller.loadMoreAccounts()\" \r\n    ></ae-layout>\r\n    <!-- @load-all=\"controller.loadAllItems()\" -->\r\n\r\n  <div v-if=\"locals.groups && locals.groups.length > 0\" class=\"_CSS-rows\">\r\n<h2>{{ Aeppic.translate('security:groups') }}</h2>\r\n    <div class=\"_CSS-row\" v-for=\"group of locals.groups\">\r\n      <div class=\"_CSS-cell\">\r\n        <!-- <ae-design name=\"avatar--small\" :document=\"group\"></ae-design> -->\r\n        <ae-design xstyle=\"padding-left:6px\" name=\"title\" :document=\"group\"></ae-design>\r\n      </div>\r\n      <div class=\"_CSS-cell _CSS-cell--content\" v-for=\"key of locals.keys\" @click=\"controller.toggleGroupAccess(key, group)\">\r\n        <i v-if=\"controller.hasKeyBeenGivenToGroup(key, group)\" class=\"fas fa-2x _CSS-icon _CSS-fa--fa-toggle-on\"></i>\r\n        <i v-else class=\"fal fa-2x _CSS-icon _CSS-fa--fa-toggle-off\"></i>\r\n      </div>\r\n    </div>\r\n  </div>\r\n</div>  \r\n<div class=\"_CSS-error\" v-if=\"!controller.isSomeoneOwner\">\r\n  Anwenden der Berechtigungen nicht möglich.<br>\r\n  Mindestens einem Benutzer oder einer Gruppe muss das Bearbeiten-Recht zugeordnet werden.\r\n</div>\r\n<div class=\"_CSS-commands\">\r\n  <button class=\"ae-button ae-button--primary\" :disabled=\"!controller.hasChanges || !controller.isSomeoneOwner\" @click=\"controller.saveChanges()\">\r\n    <template v-if=\"locals.hasExistingKeys\">\r\n      Zugriff aktualisieren\r\n    </template>\r\n    <template v-else>\r\n      Zugriff sichern\r\n    </template>\r\n  </button>\r\n</div>\r\n"},"f":{"id":"design-form","text":"Design","v":"9bfe8e0cd909c1f0"},"id":"c15a1265-4975-4d89-ba6a-8ae739b55acf","inheritedLocks":[null,null,null,null,null,null],"locks":[],"modified":{"at":"2024-11-18T08:49:06+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"lock-form","previous":{"v":"b61adeb285a0f2f1"},"stamps":[],"t":1731919746351,"v":"70f9baf62aecdba9"},{"id":"a0baf2dd-7e16-4a3e-9044-d4505141c7a7","v":"0824f82995103f25","p":"fallback-designs","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"editor-block-inline","template":"<div @click.stop.prevent=\"controller.showDialog($event)\">\r\n  <ae-design name=\"card,search-title,title\" :document=\"document\" style=\"pointer-events:none\"\r\n  ></ae-design> \r\n</div>  \r\n\r\n<ae-dialog\r\n  ref=\"previewDialog\"\r\n  :open=\"locals.showPreview\"\r\n  class=\"_CSS-preview\" \r\n  @close=\"controller && controller.hidePreview()\"\r\n  :backdropClasses=\"{ '_CSS-editor-document-preview': true }\"\r\n  > \r\n  <div slot=\"header\"></div>  \r\n  <ae-layout  slot=\"body\"\r\n              style=\"min-height:90vh\"\r\n              layout-id=\"564e7028-6b98-49b8-ac43-50f7873930a1\"\r\n              :title=\"data.name\" \r\n              ref=\"showDocument\"\r\n              @deactive=\"controller && controller.hidePreview()\"\r\n  ></ae-layout>\r\n  <div slot=\"commands\"></div>\r\n</ae-dialog> \r\n\r\n ","css":"._CSS {\r\n  position:relative;\r\n  max-width: 200px;\r\n  margin-right: 8px;\r\n}\r\n\r\n._CSS-image {\r\n  display: block;\r\n  min-height: 200px;\r\n  min-width: 200px;\r\n  background-repeat: no-repeat;\r\n  background-size:cover;\r\n  border-radius: 2px;\r\n  box-shadow: 0 0 15px rgba(0,0,0,0.3);\r\n}\r\n\r\n._CSS-editor-document-preview > .ae-dialog > .ae-dialog__header{\r\n  display: none;\r\n\r\n}\r\n\r\n._CSS-editor-document-preview > .ae-dialog  {\r\n  height: 100vh;\r\n  width: 100vw;\r\n  display:flex;\r\n}\r\n\r\n._CSS-editor-document-preview > .ae-dialog > .ae-dialog__commands-bar {\r\n  display: none;\r\n  \r\n}\r\n\r\n._CSS-editor-document-preview > .ae-dialog .ae-dialog__body > *:first-child {\r\n  margin: 0;\r\n}","controller":"class Controller {\r\n  init() {\r\n    locals.showPreview = false\r\n  }\r\n  \r\n  hidePreview() { \r\n    locals.showPreview = false\r\n  } \r\n\r\n  async showDialog(event) {\r\n    console.log('show')\r\n    locals.showPreview = true\r\n    \r\n    await Aeppic.nextRenderPass()\r\n    await Aeppic.nextRenderPass()\r\n    await Aeppic.nextRenderPass()\r\n    \r\n    $refs.showDocument.$emit('show', { targetDocument: document })\r\n  }\r\n}\r\n ","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-07-07T11:34:23+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-07-07T11:34:23+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720684627129,"ct":1720684627129,"a_depth":2,"a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"],"inheritedLocks":[null,null,null],"stamps":[],"previous":{"v":"initial","f":{"id":"design-form","v":"0061789efb5c5c29","text":"Design"}},"meta":{"modified":{"at":"2024-07-11T09:57:07+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"68a354af-92aa-4560-9270-8a2a0d614876","v":"f409d501646c12ed","previous":{"v":"initial"},"p":"dbee6e16-d63a-493c-bba6-505f79918f9f","f":{"id":"design-form","v":"0061789efb5c5c29","text":"Design"},"data":{"name":"editor-block.WIP","template":"<div @click.stop.prevent=\"controller.showDialog($event)\">\r\n  <div v-if=\"locals.isImage\" class=\"_CSS-image\" :style=\"{'background-image': 'url(' + Aeppic.Content.getSrc(document, 'datei') + ')' }\">\r\n  </div>\r\n  <ae-design v-else name=\"card,title\" :document=\"document\" style=\"pointer-events:none\"\r\n  ></ae-design>\r\n</div> \r\n\r\n<ae-dialog ref=\"previewDialog\"\r\n  :open=\"locals.showPreview\"\r\n  class=\"_CSS-preview\"\r\n  @close=\"locals.showPreview = false\"\r\n  :backdropClasses=\"{ '_CSS-editor-document-preview': true }\"\r\n  >\r\n  <div slot=\"header\"></div>\r\n  <ae-layout  slot=\"body\"\r\n              :title=\"data.name\"\r\n              layout-id=\"564e7028-6b98-49b8-ac43-50f7873930a1\"\r\n              :class=\"{ '_CSS-drill-into-container': true }\"\r\n              ref=\"showDocument\"\r\n              @deactive=\"locals.showPreview = false\"\r\n  ></ae-layout>\r\n  <div slot=\"commands\"></div>\r\n</ae-dialog>\r\n\r\n","css":"._CSS {\r\n  position:relative;\r\n  max-width: 200px;\r\n  margin-right: 8px;\r\n}\r\n\r\n._CSS-image {\r\n  display: block;\r\n  min-height: 200px;\r\n  min-width: 200px;\r\n  background-repeat: no-repeat;\r\n  background-size:cover;\r\n  border-radius: 2px;\r\n  box-shadow: 0 0 15px rgba(0,0,0,0.3);\r\n}\r\n\r\n._CSS-editor-document-preview > .ae-dialog > .ae-dialog__header{\r\n  display: none;\r\n\r\n}\r\n\r\n._CSS-editor-document-preview > .ae-dialog  {\r\n  height: 100vh;\r\n  width: 100vw;\r\n  display:flex;\r\n}\r\n\r\n._CSS-editor-document-preview > .ae-dialog > .ae-dialog__commands-bar {\r\n  display: none;\r\n  \r\n}\r\n\r\n._CSS-editor-document-preview > .ae-dialog .ae-dialog__body > *:first-child {\r\n  margin: 0;\r\n}","controller":"init() {\r\n  locals.isImage = data.datei.type && data.datei.type.indexOf('image/') === 0\r\n}\r\n\r\nasync showDialog($event) {\r\n  locals.showPreview = true\r\n  $refs.showDocument.$emit('show', { targetDocument: document })\r\n  // await Aeppic.nextRenderPass()\r\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-11-04T10:24:46+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","from":"","client":"server"},"modified":{"at":"2021-11-04T10:25:30+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1636021530083,"ct":1636021486088,"a_depth":4,"a":["apps","45ada186-e9fd-451d-9dbd-2defc0b4f86f","4ec6a0e5-cf2d-4095-9b70-2e31a64d5679","dbee6e16-d63a-493c-bba6-505f79918f9f"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"6212a13a-b823-441e-85a8-883d9a70253e","v":"6a896de2b075c935","p":"fallback-designs","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"editor-inline","template":"<ae-design v-if=\"Aeppic.LocalStorage.getValue('appLayoutId')\" name=\"rd:editor-inline\" :document=\"document\" :params=\"params\" @persistedViewStateChanged=\"$emit('persistedViewStateChanged', $event)\"></ae-design>\n<ae-design v-else name=\"kb:editor-inline\" :document=\"document\" :params=\"params\" @persistedViewStateChanged=\"$emit('persistedViewStateChanged', $event)\"></ae-design>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-12-01T09:46:58+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-12-01T12:15:31+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720684627129,"ct":1720684627129,"a_depth":2,"a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"],"inheritedLocks":[null,null,null],"stamps":[],"previous":{"v":"d82d70886de9c602","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"}},"meta":{"modified":{"at":"2024-07-11T09:57:07+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"6ce2cc83-32df-4dd7-935a-222d39a78394","v":"00f4c1595e9c0717","cloneOf":{"id":"fff73674-6380-47bd-b0a2-370b9ceb5b3f","v":"d2bd6573d588988c","text":"editor-inline"},"originalCloneOf":{"id":"fff73674-6380-47bd-b0a2-370b9ceb5b3f","v":"d2bd6573d588988c","text":"editor-inline"},"previous":{"v":"94a8a800fd478ddf"},"p":"6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2","f":{"id":"design-form","v":"0061789efb5c5c29","text":"Design"},"data":{"name":"editor-inline","template":"<div\r\n  class=\"_CSS-content ae-navigatable\"\r\n  :class=\"{ '_CSS-content--image' : controller.showAsImage }\"\r\n  @click.stop=\"controller.show()\"  \r\n  @contextmenu.stop.prevent=\"controller.showMenu($event)\"\r\n  ref=\"document\"\r\n  :style=\"controller.containerStyle\"\r\n> \r\n  <template v-if=\"controller.showAsImage\" >\r\n    <ae-design v-if=\"locals.widths.imageWidth === 'thumbnail'\" name=\"editor-preview,thumbnail\" :document=\"document\"></ae-design>\r\n    <ae-control v-else name=\"file-viewer\" :document=\"document\" field-name=\"datei\" :readonly=\"true\"></ae-control>\r\n    <ae-icon v-if=\"!locals.isDocumentChildOfEmbeddedPage\" class=\"fa fa-external-link-square _CSS-overlay\" ></ae-icon>\r\n    <button class=\"ae-button ae-button--small _CSS-content__button-expand\"\r\n            @click.stop=\"controller.show()\"\r\n            title=\"In Vollbild anzeigen\"\r\n    >\r\n      <ae-icon class=\"fa fa-expand-arrows-alt\"></ae-icon>\r\n    </button>\r\n  </template>\r\n  <template v-else-if=\"controller.showAsVideo\">\r\n    <ae-control @click.native.stop name=\"file-viewer\" :document=\"document\" field-name=\"datei\" :readonly=\"true\"></ae-control>\r\n    <button class=\"ae-button ae-button--small _CSS-content__button-expand\"\r\n            @click.stop=\"controller.show()\"\r\n            title=\"In Vollbild anzeigen\"\r\n    >\r\n      <ae-icon class=\"fa fa-expand-arrows-alt\"></ae-icon>\r\n    </button>\r\n    <!-- <ae-design  name=\"editor-preview,thumbnail\" :document=\"document\"></ae-design> -->\r\n    <!-- <ae-icon v-if=\"!locals.isDocumentChildOfEmbeddedPage\" class=\"fa fa-external-link-square _CSS-overlay\" ></ae-icon> -->\r\n  </template>\r\n  <template v-else>\r\n    <ae-design  name=\"icon\" :document=\"document\" style=\"margin-right: var(--ae-size-1)\"></ae-design>\r\n    <ae-design  name=\"title\" :document=\"document\"></ae-design>\r\n    <ae-icon v-if=\"!locals.isDocumentChildOfEmbeddedPage\" class=\"fa fa-external-link-square\" style=\"margin-left:2px;padding-left:2px;opacity:0.5\"></ae-icon>\r\n  </template>\r\n</div>\r\n\r\n<div ref=\"previewPopup\" >\r\n  <ae-design\r\n    name=\"editor-popup,popup,search-card,card,title\"\r\n    v-if=\"locals.showPopup\"\r\n    @selected=\"controller.show()\"\r\n    :document=\"document\"\r\n    style=\"color:var(--ae-background-800)\"></ae-design>\r\n</div>\r\n\r\n<div ref=\"menuImage\" class=\"_CSS-menu\" v-show=\"locals.isImage\">\r\n  <button @click=\"controller.showAs('imageWidth', 'thumbnail')\" :disabled=\"!controller.canShowAs('imageWidth', 'Thumbnail')\">Bild (Thumbnail)</button>\r\n  <button @click=\"controller.showAs('imageWidth', 'normal')\" :disabled=\"!controller.canShowAs('imageWidth', 'normal')\">Bild (normal)</button>\r\n  <button @click=\"controller.showAs('imageWidth', 'big')\" :disabled=\"!controller.canShowAs('imageWidth', 'big')\">Bild (groß)</button>\r\n  <button @click=\"controller.showAs('imageWidth', 'title')\" :disabled=\"!controller.canShowAs('imageWidth', 'title')\">Titel</button>\r\n</div>\r\n\r\n \r\n<div ref=\"menuVideo\" class=\"_CSS-menu\" v-show=\"locals.isVideo\">\r\n  <button @click=\"controller.showAs('videoWidth', 'thumbnail')\" :disabled=\"!controller.canShowAs('videoWidth', 'thumbnail')\">Video (Thumbnail)</button>\r\n  <button @click=\"controller.showAs('videoWidth', 'normal')\" :disabled=\"!controller.canShowAs('videoWidth', 'normal')\">Video (normal)</button>\r\n  <button @click=\"controller.showAs('videoWidth', 'big')\" :disabled=\"!controller.canShowAs('videoWidth', 'big')\">Video (groß)</button>\r\n  <button @click=\"controller.showAs('videoWidth', 'title')\" :disabled=\"!controller.canShowAs('videoWidth', 'title')\">Titel</button>\r\n</div>","css":"._CSS {\r\n  display:flex;\r\n  width: 100%;\r\n}\r\n \r\n._CSS-content {\r\n  flex: 1;\r\n  display: flex;\r\n  align-items: center;\r\n  background: var(--ae-ui-background);\r\n  border: var(--ae-border-width) solid var(--ae-primary-900);\r\n  color: var(--ae-background-900);\r\n  border-radius: var(--ae-border-radius);\r\n  margin: var(--ae-size-1); \r\n  xpadding: var(--ae-size-1) var(--ae-size-2);\r\n  overflow: hidden;\r\n\r\n  position: relative;\r\n}\r\n\r\n._CSS-content ._CSS-content__button-expand {\r\n  position: absolute;\r\n  right: var(--ae-space-1);\r\n  top: var(--ae-space-1);\r\n\r\n  background: var(--ae-ui-background);\r\n}\r\n\r\n._CSS-content._CSS-content--image {\r\n  position: relative;\r\n  overflow: hidden;\r\n  color:grey;\r\n  box-shadow: var(--ae-shadow-1);\r\n}\r\n\r\n._CSS-overlay {\r\n  position: absolute;\r\n  top:4px;\r\n  right:4px;\r\n  margin-left:2px;\r\n  padding-left:2px;\r\n}\r\n\r\n._CSS-content._CSS-content--image-full {\r\n  // border: var(--ae-border-width) solid var(--ae-primary-900);\r\n  // color: var(--ae-background-900);\r\n  // border-radius: var(--ae-border-radius);\r\n  // margin: 0; \r\n  // padding: 0;\r\n}\r\n\r\n._CSS-menu {\r\n  padding:0;\r\n  margin:0;\r\n  display:flex;\r\n  flex-direction: column;\r\n  background: rgba(0,0,0,0.55);\r\n  box-shadow: rgb(0 0 0 / 30%) 4px 4px 15px;\r\n  backdrop-filter: blur(20px);\r\n  border-radius:  var(--ae-border-radius);\r\n  overflow: hidden;\r\n}\r\n\r\n._CSS-menu > button {\r\n  color: white;\r\n  border: none;\r\n  background: none;\r\n  border-radius: 0;\r\n  padding: 0.2em 1em 0.2em 1em;\r\n  min-width: 8em;\r\n  text-align: left;\r\n}\r\n\r\n._CSS-menu > button:hover {\r\n  background: rgba(170,170,170,0.45);\r\n  }\r\n\r\n._CSS-menu > button:disabled {\r\n  opacity:0.5;\r\n}\r\n","controller":"class Controller {\r\n  async init() {\r\n    const tippy = Aeppic.Modules.Tippy.default\r\n\r\n    this.FORMS = {\r\n      KnowledgeBase: '3fcebb78-e629-4d83-9844-1694370d9685',\r\n      Page: 'cb2adf77-7636-41a7-9a16-1610b06fa91e',\r\n    }\r\n    this.menus = []\r\n    this.popup = null\r\n    this.sizeByWidth = {\r\n      thumbnail: { width: '128px', height: '128px' }, \r\n      normal: { width: '40vw', height: '20vw' },\r\n      big: { width: '60vw', height: '30vw' },\r\n    }\r\n\r\n    locals.isDocumentChildOfEmbeddedPage = null\r\n\r\n    const viewState = params.persistedViewState ? JSON.parse(params.persistedViewState) : {}\r\n\r\n    locals.widths = {\r\n      imageWidth: viewState.imageWidth || 'normal',\r\n      videoWidth: viewState.videoWidth || 'normal',\r\n    }\r\n\r\n    locals.isImage = data.datei?.type?.startsWith('image/')\r\n    locals.isVideo = data.datei?.type?.startsWith('video/')\r\n\r\n    Aeppic.watchRevisions(document, (changedDocument) => {\r\n      locals.isImage = changedDocument.data.datei?.type?.startsWith('image/')\r\n      locals.isVideo = changedDocument.data.datei?.type?.startsWith('video/')\r\n    }) \r\n\r\n    await Aeppic.nextRenderPass()\r\n\r\n    // if (locals.isImage || locals.isVideo) {\r\n      this.menus = this.buildMenu()\r\n    // }\r\n\r\n    locals.isDocumentChildOfEmbeddedPage = (params.kbPageId === document.p)\r\n\r\n    this.popup = tippy($refs.document, {\r\n      content: $refs.previewPopup,\r\n      position: 'top-end',\r\n      arrow: false,\r\n      theme: 'no-frame',\r\n      delay: [0, 20],\r\n      boundary: params.editorBoundary,\r\n      interactive: true,\r\n      offset: [0,0],\r\n      onShow() {\r\n        if (locals.isImage && locals.widths.imageWidth === 'title') { \r\n          locals.showPopup = true\r\n        }\r\n      },\r\n      onHidden() {\r\n        locals.showPopup = false\r\n      }\r\n    })\r\n  }\r\n\r\n  get showAsImage() {\r\n    return locals.isImage && locals.widths.imageWidth !== 'title'\r\n  }\r\n\r\n  get showAsVideo() {\r\n    return locals.isVideo && locals.widths.videoWidth !== 'title'\r\n  }\r\n\r\n  get containerStyle() {\r\n    if (this.showAsVideo) {\r\n      const size = this.sizeByWidth[locals.widths.videoWidth]\r\n      return size\r\n    }\r\n\r\n     if (this.showAsImage) {\r\n      const size = this.sizeByWidth[locals.widths.imageWidth]\r\n      return size\r\n    }\r\n\r\n    return null\r\n  }\r\n\r\n  show() {\r\n    if (this.isDocumentAPageInsideSameKb()) {\r\n      Aeppic.navigateTo(params.kbRoot, { 'detail': document.id })\r\n    } else {\r\n      Aeppic.drillInto(document.id, { mode: 'dialog' })\r\n    }\r\n  }\r\n\r\n  isDocumentAPageInsideSameKb() {\r\n    const kbRootId = params.kbRoot \r\n\r\n    if (!kbRootId) {\r\n      return false\r\n    }\r\n\r\n    if (document.f.id !== this.FORMS.Page) {\r\n      return false\r\n    }\r\n\r\n    const kbIndexInAncestry = document.a_forms.lastIndexOf(this.FORMS.KnowledgeBase)\r\n\r\n    if (kbIndexInAncestry < 0) {\r\n      return false\r\n    }\r\n\r\n    const kbId = document.a[kbIndexInAncestry]\r\n\r\n    return (kbId === kbRootId)\r\n  }\r\n\r\n  buildMenu() {\r\n    const tippy = Aeppic.Modules.Tippy.default\r\n\r\n    const menus = {}\r\n\r\n    menus.image = tippy($refs.document, {\r\n      content: $refs.menuImage,\r\n      position: 'bottom',\r\n      placement: 'right-start',\r\n      theme: 'no-frame',\r\n      arrow: false,\r\n      delay: [0, 200],\r\n      boundary: params.editorBoundary,\r\n      interactive: true,\r\n      // showOnCreate: true,\r\n      trigger: 'manual',\r\n      offset: [0,0],\r\n    })\r\n\r\n    menus.video = tippy($refs.document, {\r\n      content: $refs.menuVideo,\r\n      position: 'bottom',\r\n      placement: 'right-start',\r\n      theme: 'no-frame',\r\n      arrow: false,\r\n      delay: [0, 200],\r\n      boundary: params.editorBoundary,\r\n      interactive: true,\r\n      // showOnCreate: true,\r\n      trigger: 'manual',\r\n      offset: [0,0],\r\n    })\r\n\r\n    return menus\r\n  }\r\n\r\n  showMenu(event) {\r\n    const menu = locals.isImage ? this.menus.image : (locals.isVideo ? this.menus.video : null)\r\n\r\n    if (!menu) {\r\n      return\r\n    }\r\n    \r\n    menu.setProps({\r\n      getReferenceClientRect: () => ({\r\n        width: 0,\r\n        height: 0,\r\n        top: event.clientY,\r\n        bottom: event.clientY,\r\n        left: event.clientX,\r\n        right: event.clientX,\r\n      }),\r\n    });\r\n\r\n    menu.show()\r\n  }\r\n\r\n  canShowAs(widthType, mode) {\r\n    return (locals.widths[widthType] !== mode)\r\n  }\r\n\r\n  showAs(widthType, mode) {\r\n    if (!this.canShowAs(locals.widths[widthType], mode)) {\r\n      return\r\n    }\r\n    \r\n    locals.widths[widthType] = mode\r\n\r\n    $emit('persistedViewStateChanged', locals.widths)\r\n  }\r\n\r\n  destroy(){\r\n    if (this.popup) {\r\n      this.popup.destroy()\r\n    }\r\n  }\r\n}\r\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-11-05T13:21:11+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-11-05T13:29:27+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1636118967773,"ct":1636118471423,"a_depth":4,"a":["apps","3d43a3f5-fea4-488d-9fc1-9dee5e694623","7c30f282-2b84-4976-8735-ba78662ea5e6","6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"bc4b7f06-4a3b-42e4-9f76-4377cd929a7f","v":"68998b034c877e3d","previous":{"v":"08246f75d82ea03d"},"p":"dbee6e16-d63a-493c-bba6-505f79918f9f","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"editor-inline","template":"<ae-design v-if=\"Aeppic.LocalStorage.getValue('appLayoutId')\" name=\"rd:editor-inline\" :document=\"document\" :params=\"params\" @persistedViewStateChanged=\"$emit('persistedViewStateChanged', $event)\"></ae-design>\n<ae-design v-else name=\"kb:editor-inline\" :document=\"document\" :params=\"params\" @persistedViewStateChanged=\"$emit('persistedViewStateChanged', $event)\"></ae-design>","css":"","controller":"init() {\n  locals.attrs = null\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-12-01T09:54:19+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-12-01T12:13:23+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1669896803685,"ct":1669888459941,"a_depth":4,"a":["apps","45ada186-e9fd-451d-9dbd-2defc0b4f86f","4ec6a0e5-cf2d-4095-9b70-2e31a64d5679","dbee6e16-d63a-493c-bba6-505f79918f9f"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"8675c377-a914-468e-a8cb-784dfc19ac41","v":"c7b2200bb393cd76","previous":{"v":"f3059369b9117dc3","p":"0dfd4afd-f2ec-4ff0-9a79-811badf4fed5","a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","0dfd4afd-f2ec-4ff0-9a79-811badf4fed5"]},"p":"204787ca-59c2-4b11-b866-aa05fa9c9891","f":{"id":"design-form","v":"3385ac6766f32638","text":"Design"},"data":{"name":"entry-description","template":"<span>{{data.beschreibung}}</span>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-03-04T13:54:19+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-03-04T13:55:56+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1646402156175,"ct":1646402059518,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","204787ca-59c2-4b11-b866-aa05fa9c9891"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"948792f8-92af-4269-bfbd-e328834d677a","v":"93621fa4ac366de0","previous":{"v":"b0aa1b16fc951310"},"p":"204787ca-59c2-4b11-b866-aa05fa9c9891","f":{"id":"design-form","v":"3385ac6766f32638","text":"Design"},"data":{"name":"entry-number","template":"<span>{{data.nummer}}</span>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-03-04T13:54:04+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-03-04T13:56:26+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1646402186536,"ct":1646402044991,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","204787ca-59c2-4b11-b866-aa05fa9c9891"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"8c9a884e-2c65-4f56-9a6e-1d0c16104323","v":"c7b6ad5e4ce5ca23","p":"213063e5-59c0-455c-8331-43b04fff203f","f":{"id":"design-form","v":"22a757f630104010","text":"Design"},"data":{"name":"erfassung","template":"<ae-control v-if=\"locals.parent\"\n            name=\"children\"\n            :document=\"locals.parent\"\n            field-name=\"erfassungen\"\n            :params=\"{ formField: 'erfassungsForm', onlyAdd: true,  }\"\n            :readonly=\"params.readonly\"\n></ae-control>","css":"","controller":"class Controller {\n  async init() {\n    locals.parent = null\n    locals.parent = await Aeppic.get(document.p)\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2025-08-06T13:09:17+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2025-08-06T13:09:17+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1754485772732,"ct":1754485772732,"a_depth":4,"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","d86dc31e-ad2c-45b7-8606-a6ce35580b10","213063e5-59c0-455c-8331-43b04fff203f"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[],"previous":{"v":"initial","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"}},"meta":{"modified":{"at":"2025-08-06T13:09:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"d919859d-322d-44c6-9692-881cbaa8f19c","v":"initial","cloneOf":{"id":"f178fea6-4493-4750-a9ce-9a7bf2c11340","v":"a512992ef361331f","text":"erfassung"},"originalCloneOf":{"id":"f178fea6-4493-4750-a9ce-9a7bf2c11340","v":"a512992ef361331f","text":"erfassung"},"p":"cf4be28e-7257-43df-b8b6-4d448559c5d9","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"erfassung","template":"<ae-control v-if=\"locals.parent\"\n            name=\"children\"\n            :document=\"locals.parent\"\n            field-name=\"erfassungen\"\n            :params=\"{ formField: 'erfassungsForm', onlyAdd: true,  }\"\n            :readonly=\"params.readonly\"\n></ae-control>","css":"","controller":"class Controller {\n  async init() {\n    locals.parent = null\n    locals.parent = await Aeppic.get(document.p)\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-05-23T11:14:24+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-05-23T11:14:24+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1716462864200,"ct":1716462864200,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","0614d9ba-fc1d-496b-8659-0a357871ae44","cf4be28e-7257-43df-b8b6-4d448559c5d9"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"f178fea6-4493-4750-a9ce-9a7bf2c11340","v":"a512992ef361331f","previous":{"v":"ec9de2727d76e3cd"},"p":"14dd1fdf-b8a5-4885-b49e-686d43be4603","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"erfassung","template":"<ae-control v-if=\"locals.parent\"\n            name=\"children\"\n            :document=\"locals.parent\"\n            field-name=\"erfassungen\"\n            :params=\"{ formField: 'erfassungsForm', onlyAdd: true,  }\"\n            :readonly=\"params.readonly\"\n></ae-control>","css":"","controller":"class Controller {\n  async init() {\n    locals.parent = null\n    locals.parent = await Aeppic.get(document.p)\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-06-29T07:37:44+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-06-29T10:15:17+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1656497717869,"ct":1656488264730,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","0614d9ba-fc1d-496b-8659-0a357871ae44","14dd1fdf-b8a5-4885-b49e-686d43be4603"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"837302fc-9b56-4d04-92f4-3abc348c77c3","v":"initial","cloneOf":{"id":"de2ac559-2281-4d17-8d19-c827bedcaabb","v":"0ad3f683bfed36a8","text":"erfassungen"},"originalCloneOf":{"id":"de2ac559-2281-4d17-8d19-c827bedcaabb","v":"0ad3f683bfed36a8","text":"erfassungen"},"p":"cf4be28e-7257-43df-b8b6-4d448559c5d9","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"erfassungen","template":"<ae-design v-if=\"locals.parent\" :document=\"locals.parent\" name=\"erfassungen-als-spalten\" :params=\"params\"></ae-design>","css":"","controller":"class Controller {\n  async init() {\n    locals.parent = null\n    locals.parent = await Aeppic.get(document.p)\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-05-23T11:14:24+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-05-23T11:14:24+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1716462864318,"ct":1716462864318,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","0614d9ba-fc1d-496b-8659-0a357871ae44","cf4be28e-7257-43df-b8b6-4d448559c5d9"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"85dd6dc1-d42a-42ee-b6df-8b2edd80eb79","v":"28107d8bb1646241","p":"213063e5-59c0-455c-8331-43b04fff203f","f":{"id":"design-form","v":"22a757f630104010","text":"Design"},"data":{"name":"erfassungen","template":"<ae-design v-if=\"locals.parent\" :document=\"locals.parent\" name=\"erfassungen-als-spalten\" :params=\"params\"></ae-design>","css":"","controller":"class Controller {\n  async init() {\n    locals.parent = null\n    locals.parent = await Aeppic.get(document.p)\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2025-08-06T13:09:17+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2025-08-06T13:09:17+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1754485772736,"ct":1754485772736,"a_depth":4,"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","d86dc31e-ad2c-45b7-8606-a6ce35580b10","213063e5-59c0-455c-8331-43b04fff203f"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[],"previous":{"v":"initial","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"}},"meta":{"modified":{"at":"2025-08-06T13:09:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"de2ac559-2281-4d17-8d19-c827bedcaabb","v":"0ad3f683bfed36a8","cloneOf":{"id":"f178fea6-4493-4750-a9ce-9a7bf2c11340","v":"71fad3327be83b6e","text":"erfassung"},"originalCloneOf":{"id":"f178fea6-4493-4750-a9ce-9a7bf2c11340","v":"71fad3327be83b6e","text":"erfassung"},"previous":{"v":"d37f8005aa9539b7"},"p":"14dd1fdf-b8a5-4885-b49e-686d43be4603","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"erfassungen","template":"<ae-design v-if=\"locals.parent\" :document=\"locals.parent\" name=\"erfassungen-als-spalten\" :params=\"params\"></ae-design>","css":"","controller":"class Controller {\n  async init() {\n    locals.parent = null\n    locals.parent = await Aeppic.get(document.p)\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-06-29T08:07:33+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-06-29T10:15:35+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1656497735120,"ct":1656490053305,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","0614d9ba-fc1d-496b-8659-0a357871ae44","14dd1fdf-b8a5-4885-b49e-686d43be4603"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"55afbde6-4eed-473c-af5d-ada776a93b1e","v":"0e35fcdd9a5473c8","previous":{"v":"0eb75047a85e2d21"},"p":"d7f0c56d-8e0e-4607-911b-b0789c557d40","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"erfassungen-als-spalten","template":"<div class=\"flex\" v-if=\"locals.form\">\n  <div class=\"flex flex-col min-w-[150px] overflow-hidden text-sm gap-1 border-r\">\n    <div v-for=\"field of locals.form.fields\" class=\"h-14 border-b p-2\">\n      {{ locals.form.getPlaceholder(field.name).label }}\n    </div>\n  </div>\n\n  <div v-for=\"(erfassung, index) of locals.erfassungen\" \n        class=\"flex flex-col border-r gap-1\"\n        @click.stop=\"controller.edit(erfassung, index)\"\n  >\n    <div v-for=\"field of locals.form.fields\" class=\"h-14 max-w-[150px] border-b truncate p-2\"> \n      {{ erfassung.data[field.name] }}\n    </div>\n\n    <button @click.stop=\"controller.edit(erfassung, index)\" :disabled=\"params.readonly\">\n      <ae-icon class=\"fa fa-edit\"></ae-icon>\n    </button>\n  </div>\n\n  <!-- {{data.erfassungen}} -->\n</div> ","css":"","controller":"class Controller {\n  async init() {\n    locals.form = null\n    locals.erfassungen = []\n    locals.form = await Aeppic.getForm(data.erfassungsForm.id)\n\n    locals.erfassungen = (await Aeppic.getAll(data.erfassungen)).filter(d => !!d)\n\n    Aeppic.watch(document, async (newDocument) => {\n      locals.erfassungen = (await Aeppic.getAll(newDocument.data.erfassungen)).filter(d => !!d)\n    })\n  }\n\n  edit(erfassung, index) {\n    if (params.readonly) {\n      return\n    }\n\n    Aeppic.drillInto(erfassung, { documents: locals.erfassungen, documentsIndex: index })\n  }\n} ","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-06-29T08:17:18+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-06-29T12:11:16+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1656504676185,"ct":1656490638708,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","d7f0c56d-8e0e-4607-911b-b0789c557d40"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"462fb7e0-9be8-42a5-8771-51e564a2036d","v":"065107b0c21af14a","previous":{"v":"b8d0155c7b0d2137"},"p":"7105a939-989c-4154-96e8-44f17f556b2a","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"exportable-code","template":"<div class=\"bg-white border rounded-lg w-[100px] h-[100px] flex justify-center items-center p-1 overflow-hidden\"\n    @click.stop=\"$emit('selected', document)\"\n>\n  <div v-if=\"data.mangelQrCode.dataUrl\" class=\"flex flex-col h-full\">\n    <img class=\"h-[65px]\" :src=\"Aeppic.Content.getSrc(document, 'mangelQrCode')\">\n    <ae-design class=\"flex-1\" name=\"title\" :document=\"document\"></ae-design>\n  </div>\n  <div v-else class=\"overflow-hidden flex flex-col h-full items-center\">\n    <!-- <ae-icon class=\"fa fa-empty-set\"></ae-icon> -->\n    <div class=\"flex-1 text-xs break-all\">Kein QR-Code gefunden</div>\n    <ae-design class=\"text-normal\" name=\"title\" :document=\"document\"></ae-design>\n  </div>\n</div>  ","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-05-04T09:12:44+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-05-16T08:22:28+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1652689348957,"ct":1651655564466,"a_depth":4,"a":["apps","86189c5a-b9f4-445a-879f-d94574960df0","15292d56-6806-4263-b6d0-9194687203e1","7105a939-989c-4154-96e8-44f17f556b2a"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"c87b7dd4-ff7e-4a69-a29c-5f08ae4c1c43","v":"2ecfcb327793edc5","p":"fallback-designs","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"field-as-currency","template":"<template v-if=\"data[params.fieldName]\">\n  {{ data[params.fieldName].amount }}\n  {{ controller.currencySymbol }}\n</template>","css":"","controller":"class Controller {\n  init() {\n    locals.currencies = [\n      { code: 'EUR', symbol: '€', icon: 'fa fa-euro-sign' },\n      { code: 'USD', symbol: 'US$', icon: 'fa fa-dollar-sign' },\n      { code: 'JPY', symbol: '¥', icon: 'fa fa-yen-sign' },\n      { code: 'GBP', symbol: '£', icon: 'fa fa-pound-sign' },\n    ]\n  }\n  \n  get currencySymbol() {\n    const currency = locals.currencies.find(c => c.code === data[params.fieldName].currency)\n    return currency ? currency.symbol : data[params.fieldName].currency\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-06-23T14:07:14+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-06-23T14:07:14+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720684627130,"ct":1720684627130,"a_depth":2,"a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"],"inheritedLocks":[null,null,null],"stamps":[],"previous":{"v":"initial","f":{"id":"design-form","v":"baf08f1171a94bca","text":"Design"}},"meta":{"modified":{"at":"2024-07-11T09:57:07+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"b817e3ba-e23d-49b8-9c79-006ca18ad7f5","v":"0f1085e9572754c7","p":"fallback-designs","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"fields","template":"<div style=\"padding:0 8px\">\n  <div class=\"ae-row\" >\n    <div class=\"ae-col\">\n      <h4>Fields</h4>\n      <ul style=\"padding:0;margin:0;list-style-type:none\">\n        <li v-for=\"placeholder of form.info.placeholders\" xstyle=\"padding:0\" v-if=\"placeholder.field\">\n          <strong>{{placeholder.field.name}}</strong>: {{placeholder.field.type}}/{{placeholder.field.subType}} {{'{'+ (placeholder.control ? placeholder.control.fullName:'')+'}'}}<br>\n          <template v-if=\"form.getPlaceholderControlParams(placeholder.field.name) && Object.keys(form.getPlaceholderControlParams(placeholder.field.name)).length\">\n            <small>parameters:</small>\n            <pre style=\"font-size:smaller;display:inline-flex;\">{{ form.getPlaceholderControlParams(placeholder.field.name) }}</pre>\n          </template>\n          <pre style=\"overflow:auto;min-height:1.15em;background:var(--ae-background);padding:4px\">{{data[placeholder.field.name]}}</pre>\n          <!-- <pre v-if=\"field.settings\">{{placeholder.field.settings}}</pre> --> \n          <div v-if=\"data[placeholder.field.name] && data[placeholder.field.name].dataUrl && data[placeholder.field.name].dataUrl.startsWith('aeppic')\">\n            Upload File Name: <pre style=\"font-size:smaller\" @click=\"Aeppic.copyToClipboard(controller.a2hex(data[placeholder.field.name].dataUrl))\">{{controller.a2hex(data[placeholder.field.name].dataUrl)}}</pre>\n          </div>           \n        </li>\n      </ul>\n    </div> \n  </div>\n  <div class=\"ae-row\">\n    <div class=\"ae-col\">\n      <h4>Data</h4>\n      <input :id=\"id('show-data')\" type=\"checkbox\" v-model=\"locals.showData\">\n      <label :for=\"id('show-data')\">Show JSON</label>\n      <pre v-if=\"locals.showData\">{{data}}</pre>\n    </div>\n  </div>\n  <div class=\"ae-row\">\n    <div class=\"ae-col\">\n      <h4>Document</h4>\n      <ul style=\"padding:0;margin:0;list-style-type:none\">\n        <li v-for=\"propertyName of ['id', 'p', 'v', 'f', 'previous', 'cloneOf', 'originalCloneOf', 'locks', 'inheritedLocks', 't', 'modified', 'meta', 'created', 'a', 'a_forms','a_depth', 'stamps', 'stampData', 'hidden', 'readonly']\" xstyle=\"padding:0\">\n          <strong>{{propertyName}}</strong><br>\n          <pre style=\"overflow:auto;min-height:1.15em;background:var(--ae-background);padding:4px\">{{document[propertyName]}}</pre>\n        </li>\n      </ul>\n    </div>\n  </div> \n</div>","css":"","controller":"constructor() {\n  locals.showData = false\n}\n\na2hex(str) {\n  var arr = [];\n  for (var i = 0, l = str.length; i < l; i ++) {\n    var hex = Number(str.charCodeAt(i)).toString(16);\n    arr.push(hex);\n  }\n  return arr.join('');\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2019-03-26T16:06:24+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2024-01-09T10:55:31+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720684627130,"ct":1720684627130,"a_depth":2,"a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"],"inheritedLocks":[null,null,null],"stamps":[],"previous":{"v":"416c7c1120b9f527","f":{"id":"design-form","v":"9bfe8e0cd909c1f0","text":"Design"}},"meta":{"modified":{"at":"2024-07-11T09:57:07+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"3c735a06-0ddd-446a-bf0a-4d3176696e8a","v":"initial","previous":{"v":""},"p":"bb02185c-fc19-4f63-9ee0-102c4fc68b3b","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"file-list","applies":"","template":"<style>\n    .hover-highlight:hover {\n        background: #f1f1f1;\n    }    \n</style>\n<div layout=\"row\" layout-padding class=\"hover-highlight\" >\n    <div style=\"position:relative\">\n        <img ng-if=\"data.datei.thumbnailUrl\" ng-src=\"{{data.datei.thumbnailUrl}}\" width=\"96px\" height=\"96px\">\n        <a ng-show=\"data.datei.dataUrl.startsWith('store://')\" ng-href=\"{{'api/docs/' + document.id + '/content?field=datei'}}\" target=\"_blank\" class=\"iris-file-show\">\n          <md-tooltip md-direction=\"botton\">Open in new Window</md-tooltip>\n          <md-icon>open_in_new</md-icon>\n        </a>\n    </div>\n    \n    <div flex layout=\"column\" click-navigates-to=\"{{document.id}}\">\n        <div layout=\"row\" layout-align=\"start center\" title=\"{{data.name}}\">\n            {{data.name || (document.f.text)}}\n        </div>\n        <span style=\"font-size:12px; opacity:0.9\">{{document.created.at | date:'dd.MM.yyyy hh:mm'}} </span>\n        <span style=\"font-size:12px; opacity:0.8\">{{data.datei.size}} bytes</span>\n    </div>\n    \n    \n</div>","css":"","controller":"","packages":[]},"locks":[],"lockRefs":[],"created":{"at":"2018-02-06T09:45:20+01:00","by":"","from":"","client":"server"},"modified":{"at":"2018-02-06T09:45:20+01:00","by":"","from":"","client":"server"},"t":1517906720472,"ct":1517906720472,"a_depth":4,"a":["apps","b791df37-6eef-4a3e-9066-1b79e0bdad31","35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f","bb02185c-fc19-4f63-9ee0-102c4fc68b3b"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"acff0fad-6aaa-4140-8185-ed3a6f6453c1","v":"2135b2db13055fd9","p":"24730991-d920-4a1e-8041-6a9dc6c0ffc1","f":{"id":"design-form","v":"3a761d06f59c46c1","text":"Design"},"data":{"name":"files","template":"<div class=\"_CSS-files\">\n  <div v-for=\"file in data.files\" class=\"_CSS-file\">\n    <ae-design :document-id=\"file.id\" name=\"card--small,title\" param-preview-format=\"jpg\"></ae-design>\n  </div>\n</div>","css":"._CSS-files {\n  margin: 0 -1em;\n  display: flex;\n  flex-wrap: wrap;\n}\n\n._CSS-file {\n  display: inline-block;\n  margin: 0 0 1em 1em;\n}","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2019-04-12T14:13:53+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2020-10-13T10:11:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1602583892186,"ct":1602583892186,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","24730991-d920-4a1e-8041-6a9dc6c0ffc1"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[],"previous":{"v":"initial","f":{"id":"design-form","v":"2d98bf27c3108340","text":"Design"}}},{"id":"48b98d46-3a8f-4cf6-ba8c-a5f12ba4f168","v":"3679c0a338095d32","cloneOf":{"id":"6f206a7b-54b1-43bf-a5bc-e5b84a529486","v":"7e672b93d9916534","text":"object-title"},"originalCloneOf":{"id":"6f206a7b-54b1-43bf-a5bc-e5b84a529486","v":"7e672b93d9916534","text":"object-title"},"previous":{"v":"e8d36b9d57f49af6"},"p":"c211ffaa-14f8-4439-9126-f42f65ac4424","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"firma-title","template":"<ae-design name=\"title\" :document-id=\"data.firma.id\"></ae-design>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-09-05T13:16:47+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-09-05T13:18:02+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1662383882266,"ct":1662383807940,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","c211ffaa-14f8-4439-9126-f42f65ac4424"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"5b322ef9-83de-4fe5-a500-5d1b1799b287","v":"d3ce0e3db97eae0d","p":"fallback-designs","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"form","template":"<ae-form :readonly=\"!edit && params.readonly\" :document=\"document\"></ae-form>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2019-05-28T10:05:29+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2020-09-17T07:36:33+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720684627130,"ct":1720684627130,"a_depth":2,"a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"],"inheritedLocks":[null,null,null],"stamps":[],"previous":{"v":"e1b9b34081fe43e9","f":{"id":"design-form","v":"9bfe8e0cd909c1f0","text":"Design"}},"meta":{"modified":{"at":"2024-07-11T09:57:07+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"36811c6a-7522-4411-bbee-62702c69abfe","v":"05dd821ce4fd4224","p":"fallback-designs","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"form-title","template":"<ae-design name=\"title\" :document-id=\"document.f.id\"></ae-design>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2018-04-18T15:37:10+02:00","by":"","from":"","client":"server"},"modified":{"at":"2020-06-30T09:30:13+00:00","by":"8e6c22aa-8c69-4ff8-919a-7032841cf636","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720684627130,"ct":1720684627130,"a_depth":2,"a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"],"inheritedLocks":[null,null,null],"stamps":[],"previous":{"v":"d14040806060c89b","f":{"id":"design-form","v":"9bfe8e0cd909c1f0","text":"Design"}},"meta":{"modified":{"at":"2024-07-11T09:57:07+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"b46e2f30-4adf-49e2-a319-bc9e0a801454","v":"1dc9ad42435b9b04","previous":{"v":"f28f9a0380632586","locks":[]},"p":"repository-folder-form","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"form-title","applies":"","template":"{{ Aeppic.translate('table', 'Tabelle') }}","css":"","controller":"","packages":[]},"locks":[],"created":{"at":"2018-09-21T12:25:40+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2018-09-21T12:26:51+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1537532811842,"ct":1537532740776,"a_depth":3,"a":["system","system-folder-forms-folder","repository-folder-form"],"a_forms":["system-folder-form","form-folder","form"],"inheritedLocks":[null,null,null,null],"stamps":[]},{"id":"d7dcf503-3bbb-4677-a3d9-2c8e10171a9b","v":"initial","cloneOf":{"id":"f6fc9461-ceb7-490c-9ff2-1135f1df8e61","v":"d27217c148c99061","text":"fullscreen-button"},"originalCloneOf":{"id":"f6fc9461-ceb7-490c-9ff2-1135f1df8e61","v":"d27217c148c99061","text":"fullscreen-button"},"p":"38aab2e1-ee5c-4fc2-90e9-962b4161ac22","f":{"id":"design-form","v":"e3fe9ece11aabc5e","text":"Design"},"data":{"name":"fullscreen-button","applies":"","template":"<template v-if=\"!controller.hasAttachments && document.data.packungsbeilage && document.data.packungsbeilage.dataUrl\">\n\n  <button class=\"_CSS-button bp-button-icon\" @click.stop=\"$refs.preview.$emit('show')\">\n    <ae-icon class=\"_CSS-button__icon fa fa-file\" aria-hidden=\"true\"></ae-icon>\n  </button>\n\n  <!-- <ae-dialog :full-screen=\"true\" ref=\"fileViewer\">\n    <div slot=\"header\" slot-scope=\"scope\" class=\"_CSS-dialog-header\">\n      <div class=\"bp-button\" @click=\"scope.close()\">\n        <ae-icon class=\"fa fa-chevron-left\"></ae-icon>\n      </div>\n      <span>{{ document.data[controller.fieldName].name }}</span>\n      <a class=\"bp-button\" :href=\"Aeppic.Content.getSrc(document, controller.fieldName)\" target=\"_blank\"\n      :download=\"document.data[controller.fieldName].name\">\n        <ae-icon class=\"fa fa-download\"></ae-icon>\n      </a>\n    </div>\n    <template slot=\"body\">\n      <ae-control class=\"_CSS-dialog__body\" name=\"file-viewer\" :field-name=\"controller.fieldName\" :document=\"document\" style=\"height: 100%\"></ae-control>\n    </template>\n  </ae-dialog> -->\n\n  <ae-layout\n    ref=\"preview\"\n    layout-id=\"bbd6d99f-571d-422f-a2bc-15d3f8ecfae8\"\n    :param-file-name=\"document.data.packungsbeilage.name\"\n    param-field-name=\"packungsbeilage\"\n    :param-document=\"document\"></ae-layout>\n</template> \n\n<div class=\"_CSS-attachments\" v-if=\"controller.hasAttachments\">\n  <template v-for=\"attachment of data.packungsbeilagen\">\n    <button :title=\"attachment.text\" class=\"_CSS-button bp-button-icon\" @click.stop=\"controller.showAttachment(attachment.id)\">\n      <ae-icon class=\"_CSS-button__icon fa fa-file\" aria-hidden=\"true\"></ae-icon>\n    </button>\n  </template>\n\n  <template v-if=\"locals.previewDocument\">\n      <ae-layout\n    ref=\"preview\"\n    layout-id=\"bbd6d99f-571d-422f-a2bc-15d3f8ecfae8\"\n    param-field-name=\"datei\"\n    :param-document=\"locals.previewDocument\"></ae-layout>\n  </template>\n</div>\n\n","css":"._CSS-dialog-header {\n  flex: 1;\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n\n  overflow: hidden;\n}\n\n._CSS-dialog__body {\n  outline: none;\n  margin: 0 !important;\n  flex: 1;\n  display: flex;\n}\n\n._CSS-attachments {\n  display: flex;\n  overflow: hidden;\n}\n\n._CSS-button {\n  font-size: 1.2em;\n  width: 1.2em;\n}\n._CSS-button__icon:hover {\n  color: rgba(0,0,0, 0.5);\n}","controller":"get hasAttachments() {\n  return document.data.packungsbeilage.dataUrl == null && document.data.packungsbeilagen != null\n}\n\nasync showAttachment(attachmentId) {\n  locals.previewDocument = await Aeppic.get(attachmentId)\n\n  await Aeppic.nextRenderPass()\n  await Aeppic.nextRenderPass()\n\n  $refs.preview.$emit('show')\n}","packages":[]},"locks":[],"created":{"at":"2019-03-26T08:44:12+00:00","by":"2695f56c-96e6-4009-8e2f-d545ea1e02aa","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2019-03-26T08:44:12+00:00","by":"2695f56c-96e6-4009-8e2f-d545ea1e02aa","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1553589852974,"ct":1553589852974,"a_depth":5,"a":["apps","83c76376-420e-4231-9275-d0fe2ab47c32","2c872bc9-30dc-45b4-9aed-8c1c89a69baa","d206ec4a-14b4-4425-9843-143e545ec76e","38aab2e1-ee5c-4fc2-90e9-962b4161ac22"],"a_forms":["folder","application-form","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"f6fc9461-ceb7-490c-9ff2-1135f1df8e61","v":"d27217c148c99061","previous":{"v":"0e171bf86d4f553b"},"p":"e4af0e46-8a46-4741-935d-13e29befd300","f":{"id":"design-form","v":"e3fe9ece11aabc5e","text":"Design"},"data":{"name":"fullscreen-button","applies":"","template":"<template v-if=\"!controller.hasAttachments && document.data.packungsbeilage && document.data.packungsbeilage.dataUrl\">\n\n  <button class=\"_CSS-button bp-button-icon\" @click.stop=\"$refs.preview.$emit('show')\">\n    <ae-icon class=\"_CSS-button__icon fa fa-file\" aria-hidden=\"true\"></ae-icon>\n  </button>\n\n  <!-- <ae-dialog :full-screen=\"true\" ref=\"fileViewer\">\n    <div slot=\"header\" slot-scope=\"scope\" class=\"_CSS-dialog-header\">\n      <div class=\"bp-button\" @click=\"scope.close()\">\n        <ae-icon class=\"fa fa-chevron-left\"></ae-icon>\n      </div>\n      <span>{{ document.data[controller.fieldName].name }}</span>\n      <a class=\"bp-button\" :href=\"Aeppic.Content.getSrc(document, controller.fieldName)\" target=\"_blank\"\n      :download=\"document.data[controller.fieldName].name\">\n        <ae-icon class=\"fa fa-download\"></ae-icon>\n      </a>\n    </div>\n    <template slot=\"body\">\n      <ae-control class=\"_CSS-dialog__body\" name=\"file-viewer\" :field-name=\"controller.fieldName\" :document=\"document\" style=\"height: 100%\"></ae-control>\n    </template>\n  </ae-dialog> -->\n\n  <ae-layout\n    ref=\"preview\"\n    layout-id=\"bbd6d99f-571d-422f-a2bc-15d3f8ecfae8\"\n    :param-file-name=\"document.data.packungsbeilage.name\"\n    param-field-name=\"packungsbeilage\"\n    :param-document=\"document\"></ae-layout>\n</template> \n\n<div class=\"_CSS-attachments\" v-if=\"controller.hasAttachments\">\n  <template v-for=\"attachment of data.packungsbeilagen\">\n    <button :title=\"attachment.text\" class=\"_CSS-button bp-button-icon\" @click.stop=\"controller.showAttachment(attachment.id)\">\n      <ae-icon class=\"_CSS-button__icon fa fa-file\" aria-hidden=\"true\"></ae-icon>\n    </button>\n  </template>\n\n  <template v-if=\"locals.previewDocument\">\n      <ae-layout\n    ref=\"preview\"\n    layout-id=\"bbd6d99f-571d-422f-a2bc-15d3f8ecfae8\"\n    param-field-name=\"datei\"\n    :param-document=\"locals.previewDocument\"></ae-layout>\n  </template>\n</div>\n\n","css":"._CSS-dialog-header {\n  flex: 1;\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n\n  overflow: hidden;\n}\n\n._CSS-dialog__body {\n  outline: none;\n  margin: 0 !important;\n  flex: 1;\n  display: flex;\n}\n\n._CSS-attachments {\n  display: flex;\n  overflow: hidden;\n}\n\n._CSS-button {\n  font-size: 1.2em;\n  width: 1.2em;\n}\n._CSS-button__icon:hover {\n  color: rgba(0,0,0, 0.5);\n}","controller":"get hasAttachments() {\n  return document.data.packungsbeilage.dataUrl == null && document.data.packungsbeilagen != null\n}\n\nasync showAttachment(attachmentId) {\n  locals.previewDocument = await Aeppic.get(attachmentId)\n\n  await Aeppic.nextRenderPass()\n  await Aeppic.nextRenderPass()\n\n  $refs.preview.$emit('show')\n}","packages":[]},"locks":[],"created":{"at":"2017-12-05T17:10:23+01:00","by":"","from":"","client":"db197f1e-a4da-4cf9-a148-4de723dae9d9"},"modified":{"at":"2019-01-09T12:29:12+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1547036952791,"ct":1512490215098,"a_depth":5,"a":["apps","83c76376-420e-4231-9275-d0fe2ab47c32","2c872bc9-30dc-45b4-9aed-8c1c89a69baa","d206ec4a-14b4-4425-9843-143e545ec76e","e4af0e46-8a46-4741-935d-13e29befd300"],"a_forms":["folder","application-form","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"b6678deb-4939-48b1-a6a9-b2e5f010b136","v":"3950892dfb8ff7f7","previous":{"v":"2d03e8287377c83a"},"p":"0b4fe19c-a550-46b7-ada0-6813a60e14bc","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"gantt","template":"<h1>Gantt* (beta)</h1>\n\n<div class=\"_CSS-actions\">\n  <div>von</div>\n  <ae-layout layout-id=\"3e185751-e4f9-4493-b73d-3c99055d1b86\"\n          :param-value=\"locals.start\"\n          @input=\"locals.start = $event\"\n  ></ae-layout>\n  <div>bis</div>\n  <ae-layout layout-id=\"3e185751-e4f9-4493-b73d-3c99055d1b86\"\n          :param-value=\"locals.end\"\n          @input=\"locals.end = $event\"\n  ></ae-layout>\n\n  <button class=\"ae-button\" @click.stop=\"controller.nextDoneState()\">\n    <ae-icon v-if=\"locals.done\" class=\"fa fa-check\"></ae-icon>\n    <ae-icon v-else-if=\"locals.done === false\" class=\"fa fa-times-square\"></ae-icon>\n    <ae-icon v-else class=\"fa fa-arrows\"></ae-icon>\n  </button>\n\n  <ae-design v-if=\"locals.employee\" :document=\"locals.employee\" name=\"avatar--tiny\" @click.native.stop=\"locals.employee = null\"></ae-design>\n  <ae-layout  \n            layout-id=\"36649f27-5869-49e6-9b49-3b5c3b9c795d\"\n            @selected=\"locals.employee = $event\"\n            ref=\"selectionButton\"\n            :params=\"{ \n                      settings: locals.refSearchSettings,\n                      hidePath: true\n                    }\"\n></ae-layout> \n</div>\n\n<div class=\"_CSS-container\">\n  <ae-list list-id=\"17209bdb-ccd2-4d70-a3d9-f6cd0ceecacc\"\n            :root-document-id=\"document.id\"\n            query-id=\"71d5633a-9dbd-4c96-b6e0-1c6ffc5ef0f1\"\n            :filter=\"controller.filter\"\n            :search-options=\"{ size: 9999 }\"\n            :sort=\"locals.sort\"\n            class=\"_CSS-list\"\n            @selected=\"Aeppic.drillInto($event)\"\n  ></ae-list>\n</div>","css":"._CSS-container {\n  height: 100%;\n  width: 100%;\n  xoverflow: scroll;\n}\n\n._CSS-list {\n  height: 100%;\n  width: 100%;\n}\n\n._CSS-actions {\n  display: flex;\n  gap: var(--ae-size-2);\n  align-items: center;\n}","controller":"class Controller {\n  init() {\n    locals.refSearchSettings = {\n      filter: {\n        base: 'f.id:d2ac3563-3c3f-4f02-b923-9b67abf98d10',\n        ancestorForm: 'c69a0c1c-6c53-40c2-87e8-5ace866bf1df',\n      }\n    }\n    \n    locals.done = false\n    locals.employee = null\n\n    locals.start = Aeppic.DateTime.local().startOf('day').minus({ days: 14 }).toISO()\n    locals.end = Aeppic.DateTime.local().startOf('day').plus({ days: 14 }).toISO()\n\n    locals.sort = [{\n      field: 'data.bisStart' \n    }]\n  }\n\n  get filter() {\n    const start = Aeppic.DateTime.fromISO(locals.start).diff(Aeppic.DateTime.local().startOf('day')).as('days') * -1\n    const end = Aeppic.DateTime.fromISO(locals.end).diff(Aeppic.DateTime.local().startOf('day')).as('days')\n \n    const queryParts = [\n      `f.id:0deb4864-cbb6-420c-99ee-337c7444ab24 data.bisStart:[now-${start}d TO now+${end}d]`,\n      locals.employee && `data.verantwortlich:${locals.employee.id}`,\n      locals.done != null ? `data.erledigt:${locals.done}` : null,\n    ]\n\n    const query = queryParts.join(' ')\n    console.log('###', start, end, query)  \n    return query\n  }\n\n  nextDoneState() {\n    switch (locals.done) {\n      case true: \n        locals.done = false\n        break\n      case false:\n        locals.done = null;\n        break\n      case null:\n        locals.done = true;\n        break\n    }\n  }\n}  ","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-03-16T16:11:01+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-04-20T13:16:55+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1650460615512,"ct":1647447061090,"a_depth":4,"a":["apps","59edbdbc-2cab-426a-bb42-6e57c5158e4f","3be7e887-1bcd-4c3c-979f-b20a986c4c48","0b4fe19c-a550-46b7-ada0-6813a60e14bc"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"111cf7e1-f85f-417e-a750-a871d6c22392","v":"cf3b8275a81ab141","p":"folder","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"generic-new-document-dialog","template":"<div>\n  <div class=\"rs-control-container\">\n    <label>Form</label>\n    <rs-document-picker ng-model=\"document.f\" pick-as-refs=\"true\" filter='f.id:\"form\"' show-ui=\"true\"></rs-document-picker>\n    <!-- iris-ref-picker field=\"document.f\" filter='f.id:\"form\"'></iris-ref-picker -->\n  </div>\n  <div ng-if=\"$root.account.id=='emergency-account' && document.v == 0\" layout=\"row\">\n    <md-input-container flex>\n      <label>Document-Id (change with care!)</label>\n      <input type=\"text\" ng-init=\"customDocumentId = document.id\" ng-model=\"customDocumentId\" aria-label=\"Document id\" ng-change=\"$rsDocumentDomain.changeId(document,customDocumentId)\" ng-model-options=\"{ updateOn: 'default blur', debounce: { default: 500, blur:0 } }\">\n    </md-input-container>\n  </div>\n  <hr>\n  <rs-tabbed-form flex document=\"document\"></rs-tabbed-form>\n</div>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2017-08-23T08:24:50+02:00","by":"","from":"","client":"import"},"modified":{"at":"2017-08-23T08:24:50+02:00","by":"","from":"","client":"import"},"t":1719473826736,"ct":1719473826736,"a_depth":3,"a":["system","system-forms","folder"],"a_forms":["system-folder-form","repository-folder-form","form"],"inheritedLocks":[null,null,null,null],"stamps":[],"previous":{"v":"869d9585f4610b5a","f":{"id":"design-form","v":"59e0fc1c35995ea8","text":"Design"}},"meta":{"modified":{"at":"2024-06-27T07:37:06+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"4fc738a2-01c2-4e0a-bac0-a835e65852d1","v":"947ae8c39d9cc442","previous":{"v":"e7c9308f701a2c97","p":"e5c233c9-5425-48d7-a785-d962897bc6f8"},"p":"group","f":{"id":"design-form","v":"49954170df6a253b","text":"Design"},"data":{"name":"group-with-indirect","template":"<div class=\"_CSS-card\" :style=\"{ 'min-width': params.width, width: params.width }\">\n  <ae-design name=\"avatar--small\" :document=\"document\"></ae-design>\n  <ae-design name=\"title\" :document=\"document\" style=\"margin-left: 1ch;\"></ae-design>\n</div>\n\n<ae-icon class=\"fa fa-arrow-circle-right\" v-if=\"data.group.id\"></ae-icon>\n<ae-design v-if=\"data.group.id\" name=\"group-with-indirect\" :document-id=\"data.group.id\" :param-width=\"params.width\"></ae-design>\n","css":"._CSS {\n  display: flex;\n  align-items: center;\n}\n\n._CSS-card {\n  padding: 4px;\n  display: flex;\n  align-items: center;\n}","controller":"","packages":[],"description":""},"locks":[],"created":{"at":"2019-01-17T12:53:30+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2019-01-28T11:16:42+00:00","by":null,"backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1548674202645,"ct":1547729610788,"a_depth":5,"a":["system","b2533f7b-ea85-4680-99ed-d8e11be641b9","0e6939d6-9b93-4165-b6bd-977e4da881f3","627f5b74-3baf-45f8-a1d3-a5936839b844","group"],"a_forms":["system-folder-form","folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"e79e72f5-ad34-4373-90b6-b9c15be1c579","v":"initial","p":"ce9d42b0-197e-4d60-90a4-daee72c20939","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"hardware-details-info","template":"","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-11-02T09:38:39+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-11-02T09:38:39+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1635845919158,"ct":1635845919157,"a_depth":4,"a":["apps","781ff5de-69db-49dc-99f0-f328b308cd7d","dbd0bd68-3479-4032-9303-9d51615c27a7","ce9d42b0-197e-4d60-90a4-daee72c20939"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"e99df313-9c76-43b9-a157-bc02deca62da","v":"b304aed89d779e5c","p":"fallback-designs","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"has-access","template":"<ae-icon class=\"fa fa-question\"></ae-icon>","css":"","controller":"","packages":[],"aliases":[],"description":"TODO: not yet implemented. Requires change to aeppic"},"locks":[],"created":{"at":"2019-01-24T15:29:52+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2020-06-30T09:30:13+00:00","by":"8e6c22aa-8c69-4ff8-919a-7032841cf636","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720684627131,"ct":1720684627131,"a_depth":2,"a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"],"inheritedLocks":[null,null,null],"stamps":[],"previous":{"v":"6da7345547fafde5","f":{"id":"design-form","v":"9bfe8e0cd909c1f0","text":"Design"}},"meta":{"modified":{"at":"2024-07-11T09:57:07+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"5ea0ac16-7dcd-4bac-bf25-8ef1f27ec782","v":"initial","previous":{"v":""},"p":"2f70253a-5ee5-48e0-9716-b3a21880a728","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"header","applies":"","template":"Versicherungen","css":"","controller":"","packages":[]},"locks":[],"lockRefs":[],"created":{"at":"2018-02-06T09:48:00+01:00","by":"","from":"","client":"server"},"modified":{"at":"2018-02-06T09:48:00+01:00","by":"","from":"","client":"server"},"t":1517906880004,"ct":1517906880004,"a_depth":4,"a":["apps","b791df37-6eef-4a3e-9066-1b79e0bdad31","35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f","2f70253a-5ee5-48e0-9716-b3a21880a728"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"76b578d0-d753-11e5-bd0d-2fe033264cca","v":"initial","previous":{"v":""},"p":"dd734548-b5d5-4563-bf9f-f39fce0cde06","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"header","applies":"","template":"Geräte Typen und Arten","css":"","controller":"","packages":[]},"locks":[],"lockRefs":[],"created":{"at":"2018-02-06T09:46:16+01:00","by":"","from":"","client":"server"},"modified":{"at":"2018-02-06T09:46:16+01:00","by":"","from":"","client":"server"},"t":1517906776069,"ct":1517906776068,"a_depth":4,"a":["apps","b791df37-6eef-4a3e-9066-1b79e0bdad31","35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f","dd734548-b5d5-4563-bf9f-f39fce0cde06"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"787b33b2-8812-4bce-bd3d-b522fd939ad4","v":"initial","previous":{"v":""},"p":"f5f395b4-dc48-4827-9774-5d4937cfbc45","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"header","applies":"","template":"Stammdaten","css":"","controller":"","packages":[]},"locks":[],"lockRefs":[],"created":{"at":"2018-02-06T09:47:46+01:00","by":"","from":"","client":"server"},"modified":{"at":"2018-02-06T09:47:46+01:00","by":"","from":"","client":"server"},"t":1517906866989,"ct":1517906866989,"a_depth":4,"a":["apps","b791df37-6eef-4a3e-9066-1b79e0bdad31","35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f","f5f395b4-dc48-4827-9774-5d4937cfbc45"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"20e7831c-a0f9-4f2d-80e5-7242d0b9fe97","v":"a6859ee2cd019f84","p":"document-reference-form","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"header-title","template":"<div class=\"document-page-header\">\n  <div class=\"title-line\">\n    <img ng-show=\"document.style.headerInfo.showIcon\" width=\"32px\" iris-src=\"{{document.icon}}\"/>\n    <h2 ng-if=\"document.data.referencedDocument.text\" style=\"display:inline-block;margin-top:0px;text-overflow:ellipsis;white-space:nowrap\" title=\"{{document.id}}@{{document.v}}\">{{document.data.referencedDocument.text}}</h2>\n    <h2 ng-if=\"!document.data.referencedDocument.text\" style=\"margin-top:0px;color:lightgray\" title=\"{{document.id}}@{{document.v}}\">Empty Reference</h2>\n  </div>\n  <document-breadcrumbs document=\"document\" style=\"line-height:0px\"></document-breadcrumbs>\n  <div class=\"header-bar\">\n    <document-commands class=\"header-title-commands\" target-document-id=\"{{document.id}}\" lookup-for=\"{{document.f.id}}\"></document-commands>\n    <!-- with-tags=\"-quick\" command-style=\"text\" -->\n    <document-infos class=\"text-right\" document=\"document\" ></document-infos>\n  </div>\n</div>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2017-08-23T08:24:50+02:00","by":"","from":"","client":"import"},"modified":{"at":"2017-08-23T08:24:50+02:00","by":"","from":"","client":"import"},"t":1719473826738,"ct":1719473826738,"a_depth":3,"a":["system","system-forms","document-reference-form"],"a_forms":["system-folder-form","repository-folder-form","form"],"inheritedLocks":[null,null,null,null],"stamps":[],"previous":{"v":"initial","f":{"id":"design-form","v":"927bf22562d7b1b6","text":"Design"}},"meta":{"modified":{"at":"2024-06-27T07:37:06+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"f":{"id":"design-form","v":"e3fe9ece11aabc5e","text":"Design"},"p":"c69a0c1c-6c53-40c2-87e8-5ace866bf1df","data":{"name":"header-title","applies":"","template":"<div class=\"paper-shadow-bottom-z-1\" ng-style=\"{background:'url(api/docs/{{document.id}}/content?field=banner) no-repeat center center', 'background-size':'cover'}\" style=\"position:absolute;width:100%;height:128px;\"> \r\n  <div style=\"position:absolute;bottom:16px;left:16px\"> \r\n    <img iris-src=\"api/docs/{{document.id}}/content?field=logo\" style=\"height: 100px;\"> \r\n  </div>\r\n</div>","$promise":{},"$resolved":true},"id":"a2727096-3572-41cd-9221-ad2f1ccc4a79","v":"088c552f33a2622f","t":1467644272878,"ct":1467644272647,"previous":{"v":"d0af6c90840556e5"},"modified":{"at":"2017-09-15T10:29:31+02:00","by":"","from":"","client":"import"},"created":{"at":"2017-09-15T10:29:31+02:00","by":"","from":"","client":"import"},"locks":[],"lockRefs":[],"inheritedLocks":[null,null,null,null,null],"a":["apps","8f8c9ed7-a7ed-4150-b162-92d6f19a05b0","526d9710-b2bd-4fa7-9341-d780ead102c1","c69a0c1c-6c53-40c2-87e8-5ace866bf1df"],"a_forms":["folder","application-form","form-folder","form"],"a_depth":4,"stamps":[]},{"f":{"id":"design-form","v":"927bf22562d7b1b6","text":"Design"},"p":"key-form","data":{"name":"header-title","applies":"","template":"<div class=\"document-page-header\">\n  <div class=\"title-line\">\n    <img ng-show=\"document.style.headerInfo.showIcon\" width=\"32px\" iris-src=\"{{document.icon}}\"/>\n    <h2 ng-if=\"data.rights.length == 0\" style=\"display:inline-block;margin-top:0px;text-overflow:ellipsis;white-space:nowrap\" title=\"{{document.id}}@{{document.v}}\">View rights on {{data.lock.text}}</h2>\n    <h2 ng-if=\"data.rights.length == 1\" style=\"display:inline-block;margin-top:0px;text-overflow:ellipsis;white-space:nowrap\" title=\"{{document.id}}@{{document.v}}\">{{data.rights[0].text}} on {{data.lock.text}}</h2>\n    <div popup=\"tooltip\" ng-show=\"data.rights.length > 1\">\n      <h2 ng-if=\"data.rights.length > 1\" style=\"display:inline-block;margin-top:0px;text-overflow:ellipsis;white-space:nowrap\" title=\"{{document.id}}@{{document.v}}\">{{data.rights.length}} rights on {{data.lock.text}}</h2>\n    </div>\n  </div>\n  <document-breadcrumbs document=\"document\" style=\"line-height:0px\"></document-breadcrumbs>\n  <div class=\"header-bar\">\n    <document-commands class=\"header-title-commands\" target-document-id=\"{{document.id}}\" lookup-for=\"{{document.f.id}}\"></document-commands>\n    <!-- with-tags=\"-quick\" command-style=\"text\" -->\n    <document-infos class=\"text-right\" document=\"document\" ></document-infos>\n  </div>\n  \n  <popup name=\"tooltip\">\n    <document-design document=\"document\" design=\"tooltip\"></document-design>\n  </popup>\n</div>"},"id":"b60c4429-04f6-48ce-8437-1c2d36137d1b","v":"initial","t":1447333457478,"ct":1447333457478,"modified":{"at":"2017-08-23T08:24:50+02:00","by":"","from":"","client":"import"},"created":{"at":"2017-08-23T08:24:50+02:00","by":"","from":"","client":"import"},"locks":[],"lockRefs":[],"inheritedLocks":[null,null,null,null,null],"a":["system","b2533f7b-ea85-4680-99ed-d8e11be641b9","0e6939d6-9b93-4165-b6bd-977e4da881f3","key-form"],"a_forms":["system-folder-form","folder","application-form","form"],"a_depth":4,"stamps":[]},{"id":"6345c991-1673-4e0b-a4e5-f5bfc9eeecab","v":"0c3ff9fa3ed21617","previous":{"v":"9d5ca017e58f9b17"},"p":"275b807f-7dbb-4351-b731-669e275fa97d","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"hero--intra-company","applies":"","template":"<div class=\"dbps-hero\">\n  <div class=\"dbps-hero__informations\">\n    <div>\n      <div class=\"dbps-hero__title\">{{data.name}}</div>\n      <ae-design name=\"info-line\" :document=\"document\"></ae-design>\n      <ae-design name=\"info-line--current-stage\" :document=\"document\"></ae-design>\n    </div>\n    <div>\n      <div class=\"_CSS-subtitle\">Application</div>\n      <ae-design name=\"info-line--project\" :document=\"document\"></ae-design>\n      <ae-design name=\"info-line--movie\" :document=\"document\"></ae-design>\n      <ae-design name=\"info-line--roles\" :document=\"document\"></ae-design>\n    </div>\n  </div>\n\n  <ae-design class=\"dbps-hero__index-picture\" :document=\"document\" name=\"index-picture-thumbnail\" :param-click-to-preview=\"true\"></ae-design>\n</div>","css":"._CSS-subtitle {\n  font-size: 1.1em;\n  font-weight: bold;\n  text-transform: uppercase;\n}\n","controller":"","packages":[]},"locks":[],"created":{"at":"2018-05-25T10:47:44+00:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","from":"","client":"server"},"modified":{"at":"2020-10-13T10:11:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1602583892490,"ct":1527245264165,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","275b807f-7dbb-4351-b731-669e275fa97d"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"3a01e704-dcf5-43fd-bb29-4884bac5656a","v":"initial","p":"44e0edf9-6515-4e4b-ad48-98a04d28df11","f":{"id":"design-form","v":"3a761d06f59c46c1","text":"Design"},"data":{"name":"hero--model","template":"<div v-if=\"Aeppic.Device === 'Phone'\"> \n  <ae-design name=\"index-picture-thumbnail\" :document=\"document\" class=\"dbps-hero__index-picture--standalone _CSS-index-picture--standalone\"></ae-design>\n\n  <div class=\"dbps-hero\">\n    <div class=\"dbps-hero__informations\">\n      <div>\n        <div class=\"dbps-hero__title\">{{data.name}}</div>\n        <ae-design name=\"info-line\" :document=\"document\"></ae-design>\n      </div>\n\n      <div class=\"_CSS-actions\">\n        <!-- TODO -->\n        <!-- <span class=\"dbps-button\"><ae-icon class=\"fa fa-envelope\"></ae-icon> Action 1</span>\n        <span class=\"dbps-button\">Action 2</span>\n        <span class=\"dbps-button\">Action 3</span>\n        <span class=\"dbps-button dbps-button-icon\" style=\"border-radius: 50%;\">\n          <ae-icon class=\"fa fa-ellipsis-h\"></ae-icon>\n        </span> -->\n      </div>\n\n    </div>\n\n  </div>\n</div>\n<div xclass=\"dbps-body\" v-else>\n  <div class=\"dbps-hero\">\n    <div class=\"dbps-hero__informations\">\n      <div>\n        <div class=\"dbps-hero__title\">{{data.name}}</div>\n        <ae-design name=\"info-line\" :document=\"document\"></ae-design>\n      </div>\n\n      <div class=\"_CSS-actions\">\n        <!-- TODO -->\n        <!-- <span class=\"dbps-button\"><ae-icon class=\"fa fa-envelope\"></ae-icon> Action 1</span>\n        <span class=\"dbps-button\">Action 2</span>\n        <span class=\"dbps-button\">Action 3</span>\n        <span class=\"dbps-button dbps-button-icon\" style=\"border-radius: 50%;\">\n          <ae-icon class=\"fa fa-ellipsis-h\"></ae-icon>\n        </span> -->\n      </div>\n\n    </div>\n\n    <ae-design name=\"index-picture-thumbnail\" class=\"dbps-hero__index-picture\" :document=\"document\"></ae-design>\n\n  </div>\n</div>","css":"._CSS-index-picture--standalone {\n  margin: var(--bp-page-content-padding) auto;\n}","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-10-13T10:11:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2020-10-13T10:11:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1602583892446,"ct":1602583892445,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","44e0edf9-6515-4e4b-ad48-98a04d28df11"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"e5e9866b-7c56-4f6f-aee1-41b4448df0d9","v":"initial","p":"275b807f-7dbb-4351-b731-669e275fa97d","f":{"id":"design-form","v":"3a761d06f59c46c1","text":"Design"},"data":{"name":"hero--model","template":"<div v-if=\"Aeppic.Device === 'Phone'\"> \n  <ae-design name=\"index-picture-thumbnail\" :document=\"document\" class=\"dbps-hero__index-picture--standalone _CSS-index-picture--standalone\"></ae-design>\n\n  <div class=\"dbps-hero\">\n    <div class=\"dbps-hero__informations\">\n      <div>\n        <div class=\"dbps-hero__title\">{{data.name}}</div>\n        <ae-design name=\"info-line\" :document=\"document\"></ae-design>\n      </div>\n\n      <div class=\"_CSS-actions\">\n        <!-- TODO -->\n        <!-- <span class=\"dbps-button\"><ae-icon class=\"fa fa-envelope\"></ae-icon> Action 1</span>\n        <span class=\"dbps-button\">Action 2</span>\n        <span class=\"dbps-button\">Action 3</span>\n        <span class=\"dbps-button dbps-button-icon\" style=\"border-radius: 50%;\">\n          <ae-icon class=\"fa fa-ellipsis-h\"></ae-icon>\n        </span> -->\n      </div>\n\n    </div>\n\n  </div>\n</div>\n<div xclass=\"dbps-body\" v-else>\n  <div class=\"dbps-hero\">\n    <div class=\"dbps-hero__informations\">\n      <div>\n        <div class=\"dbps-hero__title\">{{data.name}}</div>\n        <ae-design name=\"info-line\" :document=\"document\"></ae-design>\n      </div>\n\n      <div class=\"_CSS-actions\">\n        <!-- TODO -->\n        <!-- <span class=\"dbps-button\"><ae-icon class=\"fa fa-envelope\"></ae-icon> Action 1</span>\n        <span class=\"dbps-button\">Action 2</span>\n        <span class=\"dbps-button\">Action 3</span>\n        <span class=\"dbps-button dbps-button-icon\" style=\"border-radius: 50%;\">\n          <ae-icon class=\"fa fa-ellipsis-h\"></ae-icon>\n        </span> -->\n      </div>\n\n    </div>\n\n    <ae-design name=\"index-picture-thumbnail\" class=\"dbps-hero__index-picture\" :document=\"document\"></ae-design>\n\n  </div>\n</div>","css":"._CSS-index-picture--standalone {\n  margin: var(--bp-page-content-padding) auto;\n}","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-10-13T10:11:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2020-10-13T10:11:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1602583892645,"ct":1602583892645,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","275b807f-7dbb-4351-b731-669e275fa97d"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"b0ae6d4c-63c1-4e1a-ab5d-e3ca5235734d","v":"00c3aad316f4188a","previous":{"v":"73f0495140c6e125"},"p":"c69a0c1c-6c53-40c2-87e8-5ace866bf1df","f":{"id":"design-form","v":"e3fe9ece11aabc5e","text":"Design"},"data":{"name":"hero-header","applies":"","template":"<template v-if=\"Aeppic.Device !== 'Phone'\">\n\n  <div v-if=\"controller.showHero\" class=\"_CSS-card _CSS-card--hero\" :class=\"{'_CSS-card--wide':controller.showWide}\" :style=\"{ 'min-height': controller.calcMinHeight() }\">\n    <div class=\"_CSS-card__hero-background\" :style=\"{  'top':controller.backgroundPosition,'background-image': 'url(' + controller.heroImageUrl + ')'}\">\n    </div>\n    <div v-if=\"data.logo.dataUrl\" style=\"position:absolute;left:10px;bottom:10px;top:10px;\">\n      <img style=\"height: 80%; position: absolute; bottom: 0;overflow:hidden;\" :src=\"Aeppic.Content.getSrc(document, 'logo')\">\n    </div>\n    <div v-else=\"data.logo.dataUrl\" style=\"position:absolute;left:10px;bottom:10px;top:10px;\">\n      <img style=\"height: 80%; position: absolute; bottom: 0;overflow:hidden;\" :src=\"Aeppic.Content.getSrc(locals.fallbackLogo, 'file')\">\n    </div>\n  </div>\n  <div v-else class=\"_CSS-title\">\n    <h1 class=\"_CSS-title__text\">\n      <ae-design :document=\"document\" name=\"title\" class=\"_CSS-title-ae-design\"></ae-design> \n      <span class=\"_CSS-nav-up\" v-show=\"document.a && document.a.length>0\" @click=\"Aeppic.navigateTo(document.p)\">\n        <ae-icon class=\"fa fa-arrow-circle-up \"></ae-icon>\n      </span>\n    </h1>\n    <nav v-if=\"locals.ancestors\">\n      <button class=\"bp-button bp-button--transparent _CSS-title__nav-link\" v-for=\"ancestor of locals.ancestors\" v-if=\"ancestor\" @click=\"Aeppic.navigateTo(ancestor.id)\">\n        <ae-design name=\"title\" :document=\"ancestor\" :watch=\"false\"></ae-design>\n      </button>\n    </nav>\n  </div>\n\n\n</template>","css":"._CSS {\n  z-index: 1; /* use z-index to allow box-shadown overlapping page content */\n  // box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.26), 0 0 1px 0 rgba(0, 0, 0, 0.56);\n  border-bottom: var(--ae-border-width) solid var(--ae-border-color);\n}\n\n._CSS-card {\n  overflow: hidden;\n  position: relative;\n  background-color: var(--ae-background);\n}\n\n._CSS-card._CSS-card--hero {\n  margin-left: var(--ae-theme-page-padding-left, 16px);\n  margin-right: var(--ae-theme-page-padding-left, 16px);\n  border-radius: 10px;\n  min-height: 400px;\n  margin-top: var(--ae-theme-page-padding-top, 16px);\n  /* box-shadow: 1px 1px 40px 0px rgba(0,0,0,0.1); */\n  box-shadow: 0px 9px 20px 5px rgba(0, 0, 0, 0.06);\n}\n\n._CSS-card._CSS-card._CSS-card--wide::after {\n  content:'';\n  pointer-events:none;\n  position:absolute;\n  top:0;\n  left:0;\n  right:0;\n  background: linear-gradient(to bottom, rgba(0,0,0,0.25) 0%,rgba(0,0,0,0) 64%); \n  height: 16px;\n}\n\n._CSS-card__hero-background {\n  position: absolute;\n  top: 0;\n  left: 0;\n  right: 0;\n  bottom: 0;\n  margin: 0;\n  background-position: center; \n  background-repeat: no-repeat;\n  background-size: cover;\n  xtransform:scale(1.3);\n}\n\n._CSS-card__hero-background:after {\n  content: '';\n  opacity: 0.7;\n  position: absolute;\n  left: 0;\n  right: 0;\n  top: 0;\n  bottom: 0;\n  background-image: radial-gradient(ellipse farthest-corner at center center, hsla(0, 0%, 85%, 0.40) 0%, hsla(220, 2%, 75%, 0.403) 75.6%, hsla(0, 0%, 94%, 0.7) 100%);\n}\n\n// ._CSS-card__hero-background__overlay {\n//   background-color: hsla(0, 0%, 0%, .45);\n//   position: absolute;\n//   top: 0;\n//   left: 0;\n//   right: 0;\n//   bottom: 0;\n// }\n\n._CSS-card__hero-title {\n  position: absolute;\n  bottom:0;left:0;right:0;\n  overflow: hidden;\n  background: var(--ae-background);\n  height:65px;\n}\n\n._CSS-card__hero-title > * {\n  margin: 8px;\n  position: relative;\n} \n\n._CSS-card__hero-title-background {\n  background-color: var(--ae-background);\n  position: absolute;\n  left: 0;\n  right: 0;\n  bottom: 0;\n  margin: 0;\n  background-size: cover; \n  background-position: center; \n  \n  box-shadow: inset 0 0 0 300px rgba(255, 255, 255, 0.5);\n  filter: blur(23px);\n  transform:scale(1.3);\n}\n\n._CSS-card._CSS-card--wide {\n  border-radius: 0;\n  margin: 0;\n  box-shadow: none;\n}\n\n._CSS-card._CSS-card--wide > ._CSS-card__hero-title:after {\n  content:'';\n  pointer-events:none;\n  position:absolute;\n  bottom:0;\n  left:0;\n  right:0;\n  background: linear-gradient(to top, rgba(0,0,0,0.1) 0%,rgba(0,0,0,0) 64%); \n  height: 16px;\n  border-bottom: 1px solid rgba(0,0,0,0.2);\n}\n \n._CSS-title {\n  font-size: 1.5em;\n  padding-left: var(--bp-page-content-padding, 8px);\n}\n\n._CSS-title > h1 {\n  margin-top:0;\n  margin-bottom:2px;\n  padding:0;\n}\n\n._CSS-title > nav {\n  margin-top:0;\n  margin-bottom:8px;\n  font-size: 0.6em;\n  display: grid;\n  grid-auto-columns: auto;\n  grid-auto-flow: column;\n  color: var(--ae-text-secondary, #666);\n  justify-content: flex-start;\n  height: 0.8em;\n}\n\n._CSS-title > nav button._CSS-title__nav-link {\n  white-space: nowrap;\n  display: flex;\n  flex-direction: row;\n  cursor: pointer;\n  text-transform: none;\n}\n\n._CSS-title > nav button + button::before {\n  content:'/';\n  display: inline;\n  margin: 0 4px;\n}\n\n\n._CSS-title h1:hover ._CSS-nav-up {\n  opacity: 1;\n}\n\n._CSS-nav-up {\n  font-size: 0.5em;\n  color: #888;\n  opacity: 0.0;\n  min-width: 3px;\n  transition: all 0.2s ease;\n  cursor: pointer;\n}\n\n\n._CSS-title-ae-design {\n  display: initial;\n  font-weight: 700;\n}\n\n._CSS-title__text {\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n}\n","controller":"class Controller {\n  async init() {\n    locals.searchOpen = false\n    locals.searchString = ''\n    locals.heroOffsetY = 0;\n    // locals.allPageHeaderSettings = await Aeppic.find(`p:${document.f.id} f.id:a45c0a4f-3ce3-4ea3-a6e6-f6ff1cf21838`)\n    locals.fallbackLogo = await Aeppic.get('5a5cfd6a-1748-4c6a-a2a1-64490c6e28ae')\n    locals.ancestors = await Aeppic.getAll(document.a)\n  }\n \n  calcMinHeight() {\n    return '147px'\n  }\n\n  get showHero() { \n    if (Aeppic.Device ==='Phone') {\n      return false\n    }\n\n    return true\n\n    // if (locals.allPageHeaderSettings && locals.allPageHeaderSettings.length > 0) {\n    //   const settings = locals.allPageHeaderSettings[0]\n    //   locals.heroOffsetY = settings.data.heroOffsetY;\n    //   return settings.data.showHero\n    // }\n\n    return false\n  }\n\n  get showWide() { \n    return true\n    // if (locals.allPageHeaderSettings && locals.allPageHeaderSettings.length > 0) {\n    //   return locals.allPageHeaderSettings[0].data.showWide\n    // }\n\n    // return false\n  }\n\n  get heroImageUrl() {\n    let heroFieldName = 'banner'\n    let url\n\n    if (locals.allPageHeaderSettings && locals.allPageHeaderSettings.length > 0) {\n      const settings = locals.allPageHeaderSettings[0]\n      heroFieldName = settings.data.heroField\n    } \n\n    if (document.data[heroFieldName] && document.data[heroFieldName].dataUrl) {\n      url = Aeppic.Content.getSrc(document, 'banner')\n    }\n\n    if (url) {\n      return url\n    }\n\n    // TODO: Blocked by client ? return 'https://source.unsplash.com/daily?animals'\n  }\n\n  get backgroundPosition() {\n    return `${locals.heroOffsetY}px`\n  }\n \n  get backgroundPositionTitle() {\n    return `${-200+locals.heroOffsetY}px`\n  }\n\n}","packages":[]},"locks":[],"created":{"at":"2017-10-12T12:55:25+02:00","by":"","from":"","client":"284d5900-1313-48ea-948a-d0a21eceae39"},"modified":{"at":"2021-11-26T15:35:04+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1637940904648,"ct":1507805725183,"a_depth":4,"a":["apps","8f8c9ed7-a7ed-4150-b162-92d6f19a05b0","526d9710-b2bd-4fa7-9341-d780ead102c1","c69a0c1c-6c53-40c2-87e8-5ace866bf1df"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["system","fallback-designs"],"a_depth":2,"a_forms":["system-folder-form","folder"],"created":{"at":"2019-05-13T13:07:22+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","client":"server","from":""},"ct":1720684627131,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.enabled = false\n    locals.enabled = (Aeppic.Account && Aeppic.Account.data.isAdmin) || await Aeppic.Preferences.getSetting('bizpin:generic:enableHistory')\n\n    if (!locals.enabled) {\n      return\n    }\n\n    locals.loading = false\n    locals.canEdit = false\n\n    locals.historicDocuments = []\n    locals.showHistoricDocument = null\n    locals.showHistoricDocumentForm = null\n\n    const canEdit = await Aeppic.canEdit(document)\n    locals.canEdit = Aeppic.Account && Aeppic.Account.data.isGroupAccount === false && canEdit === true \n  }\n\n  async show() {\n    $refs.dialog.show()\n\n    await this.getHistory()\n  }\n\n  close() {\n  }\n\n  async showHistoricDocument(event) {\n    locals.showHistoricDocumentForm = await Aeppic.getForm(event.f)\n    locals.showHistoricDocument = event\n\n    console.log(event.id, { locks: event.locks })\n \n    $refs.documentDialog.$emit('show')\n  }\n\n  async getHistory() {\n    locals.loading = true\n\n    try {\n      const history = await Aeppic.fetch(`/api/docs/${document.id}/history`)\n      const documents = (await history.text()).trim().split('\\n').filter(d => d != null).map(d => JSON.parse(d))\n      console.log(documents)\n    \n      documents.sort((a, b) => b.modified.at.localeCompare(a.modified.at))\n\n      locals.historicDocuments = documents\n    } catch (e) {\n      locals.historicDocuments = []\n    }\n\n    locals.loading = false\n  }\n} ","css":"._CSS-spinner {\n  height: var(--ae-size-7);\n  width: var(--ae-size-7);\n}\n\n._CSS-dialog__header {\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n}","description":"","name":"history-button","packages":[],"template":"<template v-if=\"locals.enabled\">\n  <button class=\"ae-button\" v-if=\"document.a && document.a.length > 1 && locals.canEdit\" @click=\"controller.show()\" title=\"Historie\">\n    <ae-icon class=\"fa fa-history\"></ae-icon>\n  </button>\n\n  <ae-dialog ref=\"dialog\" :backdrop-close=\"false\">\n    <div slot=\"header\" slot-scope=\"scope\" class=\"_CSS-dialog__header\">\n      <span>Historie</span>\n      <button class=\"ae-button\" @click.capture=\"scope.close()\">\n        <ae-icon class=\"fad fa-times\"></ae-icon>\n      </button>\n    </div>\n    <template v-slot:body>\n      <ae-layout layout-id=\"fefa8352-0e9a-4ba8-8349-c9402ac8aefa\" v-if=\"locals.loading\" class=\"_CSS-spinner\"></ae-layout>\n      <ae-list  v-show=\"!locals.loading\"\n                :watch-documents=\"false\"\n                :documents=\"locals.historicDocuments\"\n                list-id=\"2e798091-303f-406b-a42a-93aa1cd8425c\"\n                param-design=\"history-card\"\n                style=\"width: auto;\"\n                @selected=\"controller.showHistoricDocument($event)\"\n                :param-no-watch=\"true\"\n                param-empty-text=\"Keine Versionen abrufbar\"\n      ></ae-list>\n    </template>\n    <div slot=\"commands\" slot-scope=\"scope\" class=\"_CSS-dialog__commands\">\n    </div>\n  </ae-dialog> \n\n  <ae-layout layout-id=\"765b4707-916f-42ef-afdd-853582fe4314\" \n              ref=\"documentDialog\" \n              :param-document=\"locals.showHistoricDocument\" \n              :param-form=\"locals.showHistoricDocumentForm\" \n              :param-show-path=\"true\"\n              param-dialog-height=\"95vh\"\n  ></ae-layout>\n</template>\n"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"370b7d0d-77d3-4fcf-ab65-a5e36b38ae31","inheritedLocks":[null,null,null],"locks":[],"modified":{"at":"2025-04-23T11:09:03+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"fallback-designs","previous":{"v":"d635da555e5e7e8c"},"stamps":[],"t":1745406543657,"v":"55d0f928a46327ae"},{"id":"8104bcd2-1385-46d0-9229-550a1ba60b8b","v":"57900ff4b3840850","p":"fallback-designs","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"history-card","template":"<div class=\"_CSS-card\" :class=\"{ 'ae-form-cell__input': params.withoutBorder !== true && params.noBorder !== true }\" >\n  <div class=\"_CSS_stamps\">\n    <div @mouseover=\"e => $refs.popup.show(e, $refs.popup)\" @mouseleave=\"$refs.popup.close()\" style=\"display:flex;align-items:center\" v-for=\"s of locals.applicableStamps\" v-if=\"s.data.workflow && s.data.workflow.id === locals.RELEASE_PROCESS\">\n      <ae-design name=\"icon\" :document=\"s\"></ae-design>\n    </div>\n  </div>\n<!-- {{document && document.previous && document.previous.patch && Object.keys(document.previous.patch)}} -->\n  <ae-design v-if=\"locals.modifingAccount\" name=\"profile-avatar\" :document=\"locals.modifingAccount\"></ae-design>\n  <div  v-else title=\"System\">\n    <ae-icon class=\"fa fa-user-circle\" style=\"height:28px;width:28px;\"></ae-icon>\n  </div>\n\n  <span :title=\"Aeppic.DateTime.fromISO(document.modified.at).toLocaleString(Aeppic.DateTime.DATETIME_FULL)\">\n    {{ Aeppic.DateTime.fromISO(document.modified.at).toLocaleString(Aeppic.DateTime.DATETIME_SHORT) }} \n  </span> \n  <ae-design name=\"title\" :document=\"document\" class=\"_CSS-title\" v-if=\"params.showTitle\"></ae-design>\n  <div v-if=\"Aeppic.Account && Aeppic.Account.data.isAdmin\" title=\"Version\">\n    ({{ document.v }})\n  </div>\n  <div style=\"flex:1;\"></div>\n  <button class=\"ae-button\" @click.stop=\"$emit('selected', document)\">\n    <ae-icon class=\"fa fa-eye\"></ae-icon> Anzeigen\n  </button>\n</div>\n\n<ae-popup ref=\"popup\" placement=\"top-start\" :close-delay=\"250\" offset=\"100\">\n    <div style=\"display:flex;align-items:center;\" class=\"\" slot=\"popup\" class=\"_CSS_released_popup _CSS_gap\" slot-scope=\"popup\"  @mouseleave=\"popup.close()\"  @mouseenter=\"e => $refs.popup.cancelClose()\">\n      <span>Freigegeben</span> \n      <span style=\"font-weight:bolder\" v-for=\"s of locals.applicableStamps\" v-if=\"s.stampData.workflow && s.stampData.workflow.id === locals.RELEASE_PROCESS && s.f.id === locals.RELEASE_STAMP_FORM\" :title=\"Aeppic.DateTime.fromISO(s.created.at).toLocaleString(Aeppic.DateTime.DATETIME_FULL)\">\n        {{ Aeppic.DateTime.fromISO(s.created.at).toRelativeCalendar() }} \n      </span>\n      von\n      <template v-for=\"s of locals.applicableStamps\" v-if=\"s.stampData.workflow && s.stampData.workflow.id === locals.RELEASE_PROCESS && s.f.id === locals.RELEASE_STAMP_FORM\">\n        <strong>\n          <ae-design name=\"title\" style=\"padding-left:3px\" :document-id=\"s.created.by\"></ae-design>\n        </strong>\n        <ae-design name=\"profile-avatar\" style=\"padding-left:3px\" :document-id=\"s.created.by\"></ae-design>\n      </template>\n    </div>\n </ae-popup>","css":"._CSS ._CSS-card {\n  flex: 1;\n  display: flex;\n  overflow: hidden;\n  align-items: center;\n  background-color: white;\n}\n\n._CSS-card > * {\n  margin: 0 var(--ae-size-1);\n}\n\n._CSS-title {\n  font-style: italic;\n}\n._CSS_released_popup {\n  padding: 8px;\n  border-radius: 8px;\n  overflow: hidden;\n  border:1px solid rgba(0,0,0,0.2);\n}\n\n._CSS_released_popup h1,h2,h3,h4,h5 {\n  margin-top:0;\n}\n\n._CSS_gap > * {\n  margin-right:4px;\n}\n._CSS_stamps {\n  min-width: 24px;\n}","controller":"class Controller {\r\n  async init() {\r\n    locals.RELEASE_PROCESS = '5cbc1564-5592-4c7d-946e-14c2dc069482'\r\n    //locals.RELEASE_STAMP_FORM = '97f07cfd-28e2-44c5-8feb-2d106ffef2a7'\r\n\r\n    locals.modifingAccount = null\r\n    locals.applicableStamps = []\r\n\r\n    \r\n    locals.applicableStamps = await this.findStamps()  \r\n    locals.modifingAccount = await this.getModifingAccount()\r\n  }\r\n\r\n  async findStamps() {\r\n    const children = await Aeppic.find(`p:${document.id}`)\r\n    const stamps = children.filter(c => c.stampData)\r\n\r\n    const applicableStamps = stamps.filter(s => s.stampData.documents && s.stampData.documents.find(d => d.id === document.id && d.v === document.v))\r\n\r\n    return applicableStamps.sort((a,b) => a.t - b.t)\r\n  }\r\n\r\n  async getModifingAccount() {\r\n    const modifier = await Aeppic.get(document.modified.by)\r\n\r\n    if (!modifier) {\r\n      return null\r\n    }\r\n\r\n    const isSystemAccount = !!modifier.a.find(a => a === 'apps' || a === 'system')\r\n\r\n    if (isSystemAccount) {\r\n      return null\r\n    }\r\n\r\n    return modifier\r\n  }\r\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2019-05-13T13:25:14+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2023-02-09T14:53:02+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720684627131,"ct":1720684627131,"a_depth":2,"a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"],"inheritedLocks":[null,null,null],"stamps":[],"previous":{"v":"8e157a318445c415","f":{"id":"design-form","v":"9bfe8e0cd909c1f0","text":"Design"}},"meta":{"modified":{"at":"2024-07-11T09:57:07+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"3f61575b-0a8d-4c9c-941d-5a3105dd801b","v":"1d6bc168280eb043","p":"ac1c3cae-65ab-45cf-8bdc-c00b1dc93012","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"html","template":"<!-- <div>{{ data.name }}</div> -->\n\n<div v-html=\"locals.html\">\n</div>","css":"","controller":"\n\nclass Controller {\n  init() {\n    locals.html = Aeppic.Parser.markdown(data.changes)\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-07-23T12:21:01+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-07-23T12:46:27+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1719473826738,"ct":1719473826738,"a_depth":3,"a":["system","system-forms","ac1c3cae-65ab-45cf-8bdc-c00b1dc93012"],"a_forms":["system-folder-form","repository-folder-form","form"],"inheritedLocks":[null,null,null,null],"stamps":[],"previous":{"v":"03cea9f754ab1850","f":{"id":"design-form","v":"0061789efb5c5c29","text":"Design"}},"meta":{"modified":{"at":"2024-06-27T07:37:06+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"11d0dd3a-a144-4c17-b0b4-9f73421bc00e","v":"initial","previous":{"v":""},"p":"list-form","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"icon","applies":"","template":"<ae-icon class=\"fa fa-bars\"></ae-icon>","css":"","controller":"","packages":[]},"locks":[],"created":{"at":"2018-04-18T15:35:57+02:00","by":"","backedBy":"","from":"","client":"server"},"modified":{"at":"2018-04-18T15:35:57+02:00","by":"","backedBy":"","from":"","client":"server"},"t":1524058557433,"ct":1524058557432,"a_depth":3,"a":["system","system-forms","list-form"],"a_forms":["system-folder-form","repository-folder-form","form"],"inheritedLocks":[null,null,null,null],"stamps":[]},{"id":"322ddc95-a05e-4938-a3d8-e90b6de02ed2","v":"c498f5b7e2f83082","cloneOf":{"id":"ec0b0232-c616-4058-a0e2-a6d88b02cfda","v":"8820dbe7136a44ef","text":"icon"},"originalCloneOf":{"id":"ec0b0232-c616-4058-a0e2-a6d88b02cfda","v":"8820dbe7136a44ef","text":"icon"},"previous":{"v":"719eb0aa3978fe28"},"p":"a1e6ab82-7c13-4a74-89e4-1a23e443e350","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"icon","template":"<div class=\"\">\n  <ae-icon :class=\"locals.icon\"></ae-icon>\n</div>","css":"","controller":"class Controller {\n  init() {\n    locals.icon = this.iconByType()\n  }\n\n  iconByType() {\n    switch (data.kategorie) {\n      case 'ENTSORGUNG': \n        return 'fa fa-recycle'\n      case 'HAUSMEISTER': \n        return 'fa fa-toolbox'\n      case 'INSTANDHALTUNG': \n        return 'fa fa-lightbulb'\n      case 'INTERNET': \n        return 'fa fa-router'\n      case 'REINIGUNG': \n        return 'fa fa-vacuum'\n      case 'VERBRAUCHSMATERIAL': \n        return 'fa fa-toilet-paper'\n      case 'STROM': \n        return 'fa fa-bolt'\n      case 'VERSICHERUNG': \n        return 'fa fa-file-contract'\n      case 'WARTUNG': \n        return 'fa fa-tools'\n      case 'ANDERE': \n      default:\n          return 'fa fa-box'\n    }\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-12-21T12:17:58+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-12-21T12:18:09+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1671625089749,"ct":1671625078181,"a_depth":4,"a":["apps","85d3c028-a61c-4be8-93d0-4366bc45752f","25fda732-5296-4fab-8d4e-92c3e32ca2c0","a1e6ab82-7c13-4a74-89e4-1a23e443e350"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"630713ae-703c-40a8-8870-790d44e716f2","v":"0d9c8173f711840a","previous":{"v":"b6d437f53fdc83d2"},"p":"0b3e7813-ae30-4c69-9dd6-8111a6301d38","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"icon","applies":"","template":"<ae-design :document-id=\"data.color.id\" name=\"icon\" :title=\"data.name\"></ae-design>","css":"","controller":"","packages":[]},"locks":[],"lockRefs":[],"created":{"at":"2018-01-09T10:38:59+01:00","by":"","from":"","client":"b20f0848-a55a-497f-a396-111e8029fc15"},"modified":{"at":"2018-01-09T12:01:33+01:00","by":"","from":"","client":"b20f0848-a55a-497f-a396-111e8029fc15"},"t":1515495693512,"ct":1515490737850,"a_depth":4,"a":["apps","aed1ba1c-9095-4aca-8176-74a37325f0e5","58cc45fb-3fb3-45e8-b61d-4b89899e357a","0b3e7813-ae30-4c69-9dd6-8111a6301d38"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"6f96cb70-8605-4d05-b90c-0fb04d1b1166","v":"7d803147cb1222ab","previous":{"v":"3bf211ce63a8b366"},"p":"color","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"icon","applies":"","template":"<div style=\"width: 16px; height: 16px; border-radius: 3px;\"\n     :style=\"{ 'background-color': data.color || 'white' }\"></div>","css":"","controller":"","packages":[]},"locks":[],"lockRefs":[],"created":{"at":"2018-01-09T10:16:33+01:00","by":"","from":"","client":"b20f0848-a55a-497f-a396-111e8029fc15"},"modified":{"at":"2018-01-09T13:34:46+01:00","by":"","from":"","client":"6663750f-7fab-4719-8e07-0adb1537659f"},"t":1515501286029,"ct":1515489391709,"a_depth":3,"a":["system","system-forms","color"],"a_forms":["system-folder-form","repository-folder-form","form"],"inheritedLocks":[null,null,null,null],"stamps":[]},{"a":["system","fallback-designs"],"a_depth":2,"a_forms":["system-folder-form","folder"],"created":{"at":"2017-11-28T15:08:50+01:00","by":"","client":"c4d3de47-f794-4fbb-b49c-6ef6b7b391b0","from":""},"ct":1720684627131,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.form = null\n    locals.rawSvg = ''\n\n\n    locals.form = await Aeppic.getFormForDocument(document)\n\n    if (!data[this.fieldName] || !data[this.fieldName].dataUrl || data[this.fieldName].type !== 'image/svg+xml') {\n      return\n    }\n\n    const contentSrc = await Aeppic.Content.getSrc(document, this.fieldName)\n    if (!contentSrc) {\n      return\n    }\n\n    let response\n\n    try {\n      response = await Aeppic.fetch(contentSrc, { credentials: 'include' })\n    } catch (e) {\n      response = { ok: false }\n    }\n\n    if (!response.ok) {\n      return\n    }\n    locals.rawSvg = await response.text()\n  }\n\n  get fieldName() {\n    if (params.fieldName) {\n      return params.fieldName\n    }\n\n    return 'icon'\n  }\n}\n","css":"._CSS-svg-embed {\r\n  width: 16px;\r\n  height: 16px;\r\n  fill: currentColor;\r\n}\r\n\r\n/* ._CSS-icon {\r\n  transform: translateY(-3px);\r\n} */","description":"","name":"icon","packages":[],"template":"<template v-if=\"locals.form\">\n  <template v-if=\"data[controller.fieldName] && data[controller.fieldName].dataUrl\">\n    <img v-if=\"data[controller.fieldName].type !== 'image/svg+xml'\"  :src=\"Aeppic.Content.getSrc(document, controller.fieldName)\" :title=\"data.displayName || data.name\" width=\"16px\" height=\"16px\">\n    <div v-else v-html=\"locals.rawSvg\" class=\"_CSS-svg-embed\" :title=\"data.displayName || data.name\"></div>\n  </template>\n  <div v-else-if=\"locals.form.hasField('namedIcon') && data.namedIcon\" :title=\"data.name ? data.name : ''\">\n    <ae-icon class=\"_CSS-icon\" :class=\"{ [data.namedIcon]: true }\" :style=\"{ color: data.namedIconColor }\"></ae-icon>\n  </div>\n  <div v-else-if=\"locals.form.data.namedIcon\" :title=\"locals.form.data.name ? locals.form.data.name : ''\">\n    <ae-icon class=\"_CSS-icon\" :class=\"{ [locals.form.data.namedIcon]: true }\" :style=\"{ color: data.namedIconColor || data.color || locals.form.data.namedIconColor }\"></ae-icon>\n  </div>\n  <div v-else>\n    <ae-icon class=\"far fa-cube\"></ae-icon>\n  </div>\n</template>"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"76b9b782-7be3-4164-b259-da0ca5f9e457","inheritedLocks":[null,null,null],"locks":[],"modified":{"at":"2025-09-23T12:47:43+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"fallback-designs","previous":{"v":"0430f032b6ee6ce2"},"stamps":[],"t":1758631663459,"v":"3aa6605480e5987c"},{"id":"77258e39-eb85-46ce-92cd-831ed11a0261","v":"initial","p":"37d7f918-c519-4f95-8e69-d0da9628a059","f":{"id":"design-form","v":"3385ac6766f32638","text":"Design"},"data":{"name":"icon","template":"<ae-icon class=\"fal fa-envelope-open-text\"></ae-icon>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-11-02T09:38:35+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-11-02T09:38:35+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1635845915566,"ct":1635845915566,"a_depth":4,"a":["apps","781ff5de-69db-49dc-99f0-f328b308cd7d","dbd0bd68-3479-4032-9303-9d51615c27a7","37d7f918-c519-4f95-8e69-d0da9628a059"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"793b0099-78a9-4428-a962-a8601d2afcae","v":"a6e0ced8e0585acb","previous":{"v":"adb4fb3c5bcab883"},"p":"d2ac3563-3c3f-4f02-b923-9b67abf98d10","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"icon","applies":"","template":"<ae-design name=\"avatar--tiny\" :document=\"document\"></ae-design>","css":"","controller":"","packages":[]},"locks":[],"created":{"at":"2018-01-09T10:44:51+01:00","by":"","from":"","client":"b20f0848-a55a-497f-a396-111e8029fc15"},"modified":{"at":"2019-09-13T09:19:35+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1568366375543,"ct":1515491090492,"a_depth":4,"a":["apps","144e85c0-d7f9-4b20-8928-be30f0c78bda","8e6ee7d3-9122-4a2e-8aaf-9fb3bd204b23","d2ac3563-3c3f-4f02-b923-9b67abf98d10"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"821498f3-6f4b-4e7b-83a4-f96791933ecb","v":"95c2d5a6c261fafd","previous":{"v":"f4e1209fc1658f37"},"p":"c0574720-6967-4293-94a8-e7b32a40fc6f","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"icon","applies":"","template":"<div  class=\"_CSS-icon\"\n      v-if=\"data.icon && data.icon.dataUrl\"\n      :style=\"{'background-image': 'url(' + Aeppic.Content.getSrc(document, 'icon') + ')' }\">\n</div>\n<ae-icon v-else class=\"fa fa-folder _CSS-ae-icon\" :style=\"{ 'color': data.farbe ? data.farbe : '#777'}\"></ae-icon>","css":"._CSS {\r\n  display: flex;\r\n  justify-content: center;\r\n}\r\n\r\n._CSS-ae-icon {\r\n  /* font-size: 1em; */\r\n}\r\n\r\n._CSS-icon {\r\n  width: 1em;\r\n  height: 1em;\r\n  background-size: contain;\r\n  background-repeat: no-repeat;\r\n  background-position: center;\r\n}\r\n","controller":"","packages":[]},"locks":[],"created":{"at":"2018-04-18T15:40:16+02:00","by":"","from":"","client":"server"},"modified":{"at":"2019-03-08T14:48:15+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1552056495674,"ct":1524058816278,"a_depth":4,"a":["apps","3d43a3f5-fea4-488d-9fc1-9dee5e694623","7c30f282-2b84-4976-8735-ba78662ea5e6","c0574720-6967-4293-94a8-e7b32a40fc6f"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"8540916a-69b4-4a13-9193-dd93fcc83aa6","v":"f7f6ecb3a7f1c3b9","p":"stamp","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"icon","template":"<span :title=\"locals.type && locals.type.data.name\">\r\n  <ae-icon :class=\"locals.icon\" :style=\"{ 'color': locals.color }\"></ae-icon>\r\n</span>","css":"._CSS {\r\n  display: flex;\r\n}","controller":"async init() {\r\n  const stampType = await Aeppic.get(document.data.type)\r\n  const form = await Aeppic.get(document.f.id)\r\n  \r\n  locals.type = stampType\r\n  locals.icon = (stampType && stampType.data.icon) || form.data.namedIcon \r\n  locals.color = (stampType && stampType.data.color) || form.data.color\r\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-07-07T15:09:59+00:00","by":"8e6c22aa-8c69-4ff8-919a-7032841cf636","from":"","client":"server"},"modified":{"at":"2020-07-08T14:37:25+00:00","by":"8e6c22aa-8c69-4ff8-919a-7032841cf636","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1719473826748,"ct":1719473826748,"a_depth":3,"a":["system","system-forms","stamp"],"a_forms":["system-folder-form","repository-folder-form","form"],"inheritedLocks":[null,null,null,null],"stamps":[],"previous":{"v":"bf20c545ab0295ad","f":{"id":"design-form","v":"dc80c4f66c6eb776","text":"Design"}},"meta":{"modified":{"at":"2024-06-27T07:37:06+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"a4416287-f73b-4918-92ff-f65f692a0541","v":"233b764d8e310390","cloneOf":{"id":"ec5ac2c2-72f8-4d5b-b05f-28f0761273fc","v":"c694fe6bc93ab7f8","text":"icon"},"originalCloneOf":{"id":"ec5ac2c2-72f8-4d5b-b05f-28f0761273fc","v":"c694fe6bc93ab7f8","text":"icon"},"previous":{"v":"55cb59c4b1fb74f6"},"p":"right","f":{"id":"design-form","v":"49954170df6a253b","text":"Design"},"data":{"name":"icon","template":"<div v-if=\"document.id === 'aa3ba2de-4b65-4152-ab1d-655e21de9efd'\" title=\"Bearbeiten\">\n  <ae-icon class=\"fa fa-pencil\"></ae-icon>\n</div>\n<div v-else title=\"Anzeigen\">\n  <ae-icon class=\"fa fa-eye\" ></ae-icon>\n</div>","css":"","controller":"","packages":[],"description":""},"locks":[],"created":{"at":"2019-03-18T11:01:53+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2019-03-18T11:02:05+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1552906925953,"ct":1552906913048,"a_depth":5,"a":["system","b2533f7b-ea85-4680-99ed-d8e11be641b9","0e6939d6-9b93-4165-b6bd-977e4da881f3","627f5b74-3baf-45f8-a1d3-a5936839b844","right"],"a_forms":["system-folder-form","folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"a8216144-d34c-42e0-9fa7-1519bb899952","v":"fd7b03253767f750","previous":{"v":"f6b85784ea3a4981"},"p":"6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"icon","applies":"","template":"<div class=\"_CSS-icon-container\" :title=\"data.name ? data.name : ''\">\r\n  <div class=\"_CSS-icon\" v-if=\"data.datei.type\">\r\n    <ae-icon v-if=\"data.datei.type === 'application/pdf'\" class=\"fa fa-file-pdf\"></ae-icon>\r\n    <ae-icon v-else-if=\"data.datei.type.startsWith('image')\" class=\"fa fa-file-image\"></ae-icon>\r\n    <ae-icon v-else-if=\"data.datei.type.includes('word')\" class=\"fa fa-file-word\"></ae-icon>\r\n    <ae-icon v-else-if=\"data.datei.type.startsWith('video/')\" class=\"fa fa-file-video\"></ae-icon>\r\n    <ae-icon v-else-if=\"data.datei.type.includes('spreadsheet')\" class=\"fa fa-file-excel\"></ae-icon>\r\n    <ae-icon v-else-if=\"data.datei.type.includes('powerpoint') || data.datei.type.includes('.presentation')\" class=\"fa fa-file-powerpoint\"></ae-icon>\r\n    <ae-icon v-else-if=\"data.datei.type.includes('mspublisher')\" class=\"fa fa-file-powerpoint _CSS-mspublisher\"></ae-icon>\r\n    <ae-icon v-else-if=\"data.datei.type.includes('zip')\" class=\"fa fa-file-archive _CSS-zip\"></ae-icon>\r\n    <ae-icon v-else class=\"fa fa-file\"></ae-icon>\r\n  </div>\r\n  <ae-icon v-else class=\"_CSS-icon fa fa-file\"></ae-icon>\r\n</div>","css":"._CSS {\r\n  display: flex;\r\n  justify-content: center;\r\n}\r\n\r\n._CSS-icon-container {\r\n  /* flex: 1; */\r\n  color: var(--ae-ui-element-icon-color);\r\n  /* background-color: rgba(255, 255, 255, 0.5); */\r\n}\r\n\r\n\r\n/* ._CSS-icon {\r\n  opacity: 0.77;\r\n} */\r\n\r\n/* Adobe: FF0000;\r\nWord: #2b579a\r\nExcel: #217346\r\nPowerPoint: #d24726\r\nOneNote: #80397b\r\nOutlook: #0072c6\r\nOneDrive: #094ab2 */\r\n\r\n._CSS-icon > .fa-file-pdf {\r\n  color: #FF0000;\r\n}\r\n._CSS-icon > .fa-file-word {\r\n  color: #2b579a;\r\n}\r\n._CSS-icon > .fa-file-powerpoint {\r\n  color: #d24726;\r\n}\r\n._CSS-icon > .fa-file-excel {\r\n  color: #217346;\r\n}\r\n._CSS-icon > .fa-file-powerpoint._CSS-mspublisher {\r\n  color: #00837a;\r\n}","controller":"","packages":[]},"locks":[],"created":{"at":"2018-04-19T18:15:34+02:00","by":"","from":"","client":"server"},"modified":{"at":"2022-09-09T11:00:01+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1662721201205,"ct":1524154534696,"a_depth":4,"a":["apps","3d43a3f5-fea4-488d-9fc1-9dee5e694623","7c30f282-2b84-4976-8735-ba78662ea5e6","6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"ab0467b5-589d-4aaa-a29e-04a80ca50dbe","v":"initial","cloneOf":{"id":"821498f3-6f4b-4e7b-83a4-f96791933ecb","v":"95c2d5a6c261fafd","text":"icon"},"originalCloneOf":{"id":"821498f3-6f4b-4e7b-83a4-f96791933ecb","v":"95c2d5a6c261fafd","text":"icon"},"p":"a04c8913-db48-4e80-b20d-0f3cc17a778c","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"icon","applies":"","template":"<div  class=\"_CSS-icon\"\n      v-if=\"data.icon && data.icon.dataUrl\"\n      :style=\"{'background-image': 'url(' + Aeppic.Content.getSrc(document, 'icon') + ')' }\">\n</div>\n<ae-icon v-else class=\"fa fa-folder _CSS-ae-icon\" :style=\"{ 'color': data.farbe ? data.farbe : '#777'}\"></ae-icon>","css":"._CSS {\r\n  display: flex;\r\n  justify-content: center;\r\n}\r\n\r\n._CSS-ae-icon {\r\n  /* font-size: 1em; */\r\n}\r\n\r\n._CSS-icon {\r\n  width: 1em;\r\n  height: 1em;\r\n  background-size: contain;\r\n  background-repeat: no-repeat;\r\n  background-position: center;\r\n}\r\n","controller":"","packages":[]},"locks":[],"created":{"at":"2020-06-23T14:54:59+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2020-06-23T14:54:59+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1592924099015,"ct":1592924099015,"a_depth":4,"a":["apps","45ada186-e9fd-451d-9dbd-2defc0b4f86f","4ec6a0e5-cf2d-4095-9b70-2e31a64d5679","a04c8913-db48-4e80-b20d-0f3cc17a778c"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"b8f973e8-01ee-4f32-b202-d427bd376f01","v":"initial","p":"33b4d43f-ca46-46f7-98b6-0a077372188c","f":{"id":"design-form","v":"3385ac6766f32638","text":"Design"},"data":{"name":"icon","template":"<ae-icon title=\"Component made out of referenced items only\" class=\"fal fa-barcode-alt\" v-if=\"document.data.isSingleItemComponent\" :key=\"id('items')\"></ae-icon>\r\n<ae-icon title=\"Component assembled out of other components\" class=\"fal fa-boxes\" v-else-if=\"document.data.components.length > 1\" :key=\"id('components')\"></ae-icon>\r\n<ae-icon title=\"Component assembled out of other components\" class=\"fal fa-box\" v-else-if=\"document.data.components.length === 1\" :key=\"id('components-single')\"></ae-icon>\r\n<ae-icon title=\"Component with no sub-components or items\" class=\"fal fa-tools\" v-else :key=\"id('component')\" title=\"Unfinished component. Missing item or components\"></ae-icon>\r\n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-11-02T09:38:39+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-11-02T09:38:39+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1635845919987,"ct":1635845919987,"a_depth":4,"a":["apps","781ff5de-69db-49dc-99f0-f328b308cd7d","dbd0bd68-3479-4032-9303-9d51615c27a7","33b4d43f-ca46-46f7-98b6-0a077372188c"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"c9f551dd-2a3f-4c50-a881-0e4505495349","v":"76a2924db139cab5","previous":{"v":"465f9b2875fb4a3d"},"p":"0deb4864-cbb6-420c-99ee-337c7444ab24","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"icon","template":"<ae-icon v-if=\"data.erledigt\" class=\"fa fa-check-square\"></ae-icon>\n<ae-icon v-if=\"!data.erledigt\" class=\"far fa-square\"></ae-icon> ","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-02-03T11:36:33+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-02-03T11:38:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1643888312853,"ct":1643888193438,"a_depth":4,"a":["apps","59edbdbc-2cab-426a-bb42-6e57c5158e4f","3be7e887-1bcd-4c3c-979f-b20a986c4c48","0deb4864-cbb6-420c-99ee-337c7444ab24"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"e0bd72b1-4314-4984-8ae1-19c76fe4270a","v":"6822b1f1b4ba886b","previous":{"v":"0a25de6f324d68fe"},"p":"28527c6d-4f85-4881-8f5d-948021a60ad0","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"icon","template":"<div class=\"\">\n  <ae-icon :class=\"locals.icon\"></ae-icon>\n</div>","css":"","controller":"class Controller {\n  init() {\n    locals.icon = this.iconByType()\n  }\n\n  iconByType() {\n    switch (data.typ) {\n      case 'ALLGEMEIN':\n        return 'fa fa-comment-alt'\n\n      case 'HEIZUNG':\n        return 'fa fa-fire'\n      case 'LEUCHTMITTEL':\n        return 'fa fa-lightbulb'\n      case 'ELEKTRONIK':\n        return 'fa fa-bolt'\n      case 'SONSTIGES':\n        return 'fa fa-wrench'\n      default:\n        return 'fa fa-empty-set'\n    }\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-05-04T12:59:41+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-05-04T13:06:44+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1651669604164,"ct":1651669181707,"a_depth":4,"a":["apps","86189c5a-b9f4-445a-879f-d94574960df0","15292d56-6806-4263-b6d0-9194687203e1","28527c6d-4f85-4881-8f5d-948021a60ad0"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"e49d0b47-f6f5-42b9-9bde-24d336f8a497","v":"7f203f7314f5f8b9","cloneOf":{"id":"a8216144-d34c-42e0-9fa7-1519bb899952","v":"f6b85784ea3a4981","text":"icon"},"originalCloneOf":{"id":"a8216144-d34c-42e0-9fa7-1519bb899952","v":"f6b85784ea3a4981","text":"icon"},"previous":{"v":"c03afdac6858a995"},"p":"dbee6e16-d63a-493c-bba6-505f79918f9f","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"icon","applies":"","template":"<div class=\"_CSS-icon-container\" :title=\"controller.title\">\r\n  <div class=\"_CSS-icon\" v-if=\"data.datei.type\">\r\n    <ae-icon v-if=\"data.datei.type === 'application/pdf'\" class=\"fa fa-file-pdf\"></ae-icon>\r\n    <ae-icon v-else-if=\"data.datei.type.startsWith('image')\" class=\"fa fa-image\"></ae-icon>\r\n    <ae-icon v-else-if=\"data.datei.type.includes('word') || data.datei.type.includes('.text')\" class=\"fa fa-file-word\"></ae-icon>\r\n    <ae-icon v-else-if=\"data.datei.type.startsWith('video/')\" class=\"fa fa-file-video\"></ae-icon>\r\n    <ae-icon v-else-if=\"data.datei.type.includes('spreadsheet')\" class=\"fa fa-file-excel\"></ae-icon>\r\n    <ae-icon v-else-if=\"data.datei.type.includes('powerpoint') || data.datei.type.includes('.presentation')\" class=\"fa fa-file-powerpoint\"></ae-icon>\r\n    <ae-icon v-else-if=\"data.datei.type.includes('mspublisher')\" class=\"fa fa-file-powerpoint _CSS-mspublisher\"></ae-icon>\r\n    <ae-icon v-else-if=\"data.datei.type.includes('zip')\" class=\"fa fa-file-archive _CSS-zip\"></ae-icon>\r\n    <ae-icon v-else class=\"fa fa-file\"></ae-icon>\r\n  </div>\r\n  <ae-icon v-else class=\"_CSS-icon fa fa-file\"></ae-icon>\r\n</div>\r\n<!-- {{data.name}}  --> ","css":"._CSS {\r\n  display: flex;\r\n  justify-content: center;\r\n}\r\n\r\n._CSS-icon-container {\r\n  /* flex: 1; */\r\n  color: var(--ae-ui-element-icon-color);\r\n  /* background-color: rgba(255, 255, 255, 0.5); */\r\n}\r\n\r\n\r\n/* ._CSS-icon {\r\n  opacity: 0.77;\r\n} */\r\n\r\n/* Adobe: FF0000;\r\nWord: #2b579a\r\nExcel: #217346\r\nPowerPoint: #d24726\r\nOneNote: #80397b\r\nOutlook: #0072c6\r\nOneDrive: #094ab2 */\r\n\r\n._CSS-icon > .fa-file-pdf {\r\n  color: #FF0000;\r\n}\r\n._CSS-icon > .fa-file-word {\r\n  color: #2b579a;\r\n}\r\n._CSS-icon > .fa-file-powerpoint {\r\n  color: #d24726;\r\n}\r\n._CSS-icon > .fa-file-excel {\r\n  color: #217346;\r\n}\r\n._CSS-icon > .fa-file-powerpoint._CSS-mspublisher {\r\n  color: #00837a;\r\n}","controller":"get title() {\n  if (data.name && data.datei.type) {\n    return `${data.name} (${data.datei.type})`\n  }\n\n  return data.name || ''\n}","packages":[]},"locks":[],"created":{"at":"2020-06-24T12:54:35+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2022-12-21T11:19:43+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1671621583428,"ct":1593003275144,"a_depth":4,"a":["apps","45ada186-e9fd-451d-9dbd-2defc0b4f86f","4ec6a0e5-cf2d-4095-9b70-2e31a64d5679","dbee6e16-d63a-493c-bba6-505f79918f9f"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"ec0b0232-c616-4058-a0e2-a6d88b02cfda","v":"8820dbe7136a44ef","cloneOf":{"id":"e0bd72b1-4314-4984-8ae1-19c76fe4270a","v":"6822b1f1b4ba886b","text":"icon"},"originalCloneOf":{"id":"e0bd72b1-4314-4984-8ae1-19c76fe4270a","v":"6822b1f1b4ba886b","text":"icon"},"previous":{"v":"7258088fab94e028"},"p":"c2d9407d-9dd6-42ff-acdc-ec2e296bea99","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"icon","template":"<div class=\"\">\n  <ae-icon :class=\"locals.icon\"></ae-icon>\n</div>","css":"","controller":"class Controller {\n  init() {\n    locals.icon = this.iconByType()\n  }\n\n  iconByType() {\n    switch (data.kategorie) {\n      case 'ENTSORGUNG': \n        return 'fa fa-recycle'\n      case 'HAUSMEISTER': \n        return 'fa fa-toolbox'\n      case 'INSTANDHALTUNG': \n        return 'fa fa-lightbulb'\n      case 'INTERNET': \n        return 'fa fa-router'\n      case 'REINIGUNG': \n        return 'fa fa-vacuum'\n      case 'VERBRAUCHSMATERIAL': \n        return 'fa fa-toilet-paper'\n      case 'STROM': \n        return 'fa fa-bolt'\n      case 'VERSICHERUNG': \n        return 'fa fa-file-contract'\n      case 'WARTUNG': \n        return 'fa fa-tools'\n      case 'ANDERE': \n      default:\n          return 'fa fa-box'\n    }\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-11-23T13:45:05+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-12-02T13:01:15+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1669986075150,"ct":1669211105516,"a_depth":4,"a":["apps","85d3c028-a61c-4be8-93d0-4366bc45752f","25fda732-5296-4fab-8d4e-92c3e32ca2c0","c2d9407d-9dd6-42ff-acdc-ec2e296bea99"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"ec5ac2c2-72f8-4d5b-b05f-28f0761273fc","v":"354d7b7f29c1b6e5","p":"805f465c-d7d7-4ab6-9f5e-e7d208cbaea7","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"icon","template":"<div v-if=\"document.id === 'aa3ba2de-4b65-4152-ab1d-655e21de9efd'\" title=\"Bearbeiten\">\n  <ae-icon class=\"fa fa-pencil\"></ae-icon>\n</div>\n<div v-else title=\"Anzeigen\">\n  <ae-icon class=\"fa fa-eye\" ></ae-icon>\n</div>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2019-01-25T15:09:07+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2019-01-25T15:10:52+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1719473826743,"ct":1719473826743,"a_depth":3,"a":["system","system-forms","805f465c-d7d7-4ab6-9f5e-e7d208cbaea7"],"a_forms":["system-folder-form","repository-folder-form","form"],"inheritedLocks":[null,null,null,null],"stamps":[],"previous":{"v":"c694fe6bc93ab7f8","f":{"id":"design-form","v":"49954170df6a253b","text":"Design"}},"meta":{"modified":{"at":"2024-06-27T07:37:06+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"d17ee309-dfe7-40ae-9edb-56c11b31a138","v":"1812066eae06879f","previous":{"v":"3b31e5f86bfed04b"},"p":"275b807f-7dbb-4351-b731-669e275fa97d","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"icon-project-specific-informations","applies":"","template":"<template v-if=\"locals.projectSpecificInformations\">\n  <div class=\"_CSS-container\" :class=\"[ locals.warning ? '_CSS-warning' : '_CSS-good' ]\" @click.stop=\"locals.projectSpecificInformations && $refs.dialog.$emit('show')\" :title=\"locals.warning ? 'Fragen mit zu überprüfenden Informationen beantwortet' : 'Fragen beantwortet'\">\n    <ae-icon v-show=\"locals.warning\" class=\"fa fa-exclamation-triangle\"></ae-icon>\n    <ae-icon v-show=\"!locals.warning\" class=\"fa fa-clipboard-check\"></ae-icon>\n  </div>\n\n\n  <ae-layout  layout-id=\"b1d6a227-ad65-464a-9ab3-a4250464938c\"\n              ref=\"dialog\"\n              :param-document=\"locals.projectSpecificInformations\"\n              :param-auto-save=\"true\"\n  ></ae-layout>\n</template>\n<div v-else title=\"Fragen zur Bewerbung verschickt\">\n  <ae-icon class=\"fa fa-envelope\"></ae-icon>\n</div>","css":"._CSS-container {\n  cursor: pointer;\n}\n\n._CSS-container:hover {\n  opacity: 0.5;\n}\n\n._CSS-popup__header {\n  display: flex;\n}\n\n._CSS-warning {\n  color: red;\n}\n\n._CSS-good {\n  color: green;\n}","controller":"class Controller {\n  init() {\n    locals.projectSpecificInformations = null\n    locals.projectSpecificInformationsForm = null\n    locals.warning = false\n\n    this.onUpdate()\n  }\n\n  async onUpdate() {\n    locals.projectSpecificInformations = await this.getProjectSpecificModelInformations()\n\n    if (!locals.projectSpecificInformations) {\n      return\n    }\n\n    locals.projectSpecificInformationsForm = await Aeppic.getFormForDocument(locals.projectSpecificInformations)\n\n    this.setWarning()\n  }\n\n  setWarning() {\n    locals.warning = locals.projectSpecificInformations.data.hasSpecialFee || locals.projectSpecificInformations.data.hasBlockedDates || locals.projectSpecificInformations.data.hasCompetitivePromition\n\n    $emit('warn', locals.warning)\n  }\n\n  async getProjectSpecificModelInformations() {\n    const results = await Aeppic.find(`p:${document.id} f.id:13866932-346a-448d-9560-8a7e7e26be37`)\n    if (results.length) {\n      return results[0]\n    }\n    return null\n  }\n}\n ","packages":[]},"locks":[],"created":{"at":"2018-05-25T10:47:42+00:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","from":"","client":"server"},"modified":{"at":"2020-10-13T10:11:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1602583892649,"ct":1527245262621,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","275b807f-7dbb-4351-b731-669e275fa97d"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"96f2cb37-d23a-45ef-88c2-dd358f58fa4d","v":"67e6902e815b5548","previous":{"v":"163c8dbab778eab9"},"p":"275b807f-7dbb-4351-b731-669e275fa97d","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"icon-questions-and-answers","applies":"","template":"<div @click.stop=\"$refs.dialog.show()\" :title=\"locals.answers.length ? 'Fragen wurden beantwortet' : 'Keine Antworten'\">\n  <template v-if=\"locals.answers.length\">\n    {{ locals.answers.length }}\n    <ae-icon class=\"fa fa-exclamation\"></ae-icon>\n  </template>\n  <template v-else>\n\t  {{ locals.questions.length }}\n\t  <ae-icon class=\"fa fa-question\"></ae-icon>\n  </template>\n</div>\n\n<ae-dialog ref=\"dialog\">\n  <div slot=\"header\" class=\"_CSS-dialog__header\" slot-scope=\"scope\">\n    <span>Fragen und Antworten</span>\n    <ae-icon @click.native=\"scope.close()\" class=\"fa fa-window-close\"></ae-icon>\n  </div>\n  <div slot=\"body\">\n    <ae-list\n      v-if=\"locals.answers.length\"\n      list-id=\"2e798091-303f-406b-a42a-93aa1cd8425c\"\n      :documents=\"locals.answers\"\n      param-design=\"card\"></ae-list>\n      <div v-else>\n        Keine Fragen beantwortet.\n      </div>\n  </div>\n</ae-dialog>\n\n","css":"._CSS:hover {\n  opacity: 0.5;\n  cursor: pointer;\n}\n\n._CSS-dialog__header {\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n  overflow: hidden;\n}\n\n","controller":"class Controller {\n  init() {\n    locals.answers = []\n    locals.questions = []\n\n    this.subscribeQuestions()\n    this.subscribeAnswers()\n  }\n\n  async subscribeAnswers() {\n    Aeppic.subscribe(`p:${document.id} f.id:84043618-903e-4666-83b5-9cf5449ba8f4`, (answers) => {\n      locals.answers = answers\n    })\n  }\n\n  async subscribeQuestions() {\n    Aeppic.find(`a:${document.p} f.id:f5463bba-ca34-45a9-992a-73297b1f529d`, (questions) => {\n      if (questions.length) {\n        locals.questions = questions[0].data.questions\n      }\n    })\n  }\n}\n\n","packages":[]},"locks":[],"created":{"at":"2018-05-25T10:47:45+00:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","from":"","client":"server"},"modified":{"at":"2020-10-13T10:11:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1602583892654,"ct":1527245265501,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","275b807f-7dbb-4351-b731-669e275fa97d"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"b10655d7-da48-4e5f-9b10-2e71231e9491","v":"6d8fc4ede9e00948","previous":{"v":"37edaa92ce39b265"},"p":"275b807f-7dbb-4351-b731-669e275fa97d","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"icon-rating","applies":"","template":"<div class=\"_CSS-icon-container\" :key=\"data.rating\" :class=\"{ '_CSS--interactive': params.interactive }\" v-translate:title=\"'rating'\">\n  <ae-icon v-if=\"params.interactive\" class=\"fa fa-times fa-2x _CSS-icon-star\" @click.native=\"controller.setRating(0)\"></ae-icon>\n  <template v-for=\"n in locals.maxRating\">\n    <ae-icon v-if=\"n <= data.rating\" :key=\"n\" class=\"fa fa-star _CSS-icon _CSS-icon-star\" :class=\"{ 'fa-2x': params.interactive }\" @click.native=\"controller.setRating(n)\"></ae-icon>\n    <ae-icon v-else :key=\"n\" class=\"far fa-star _CSS-icon _CSS-icon-star\" :class=\"{ 'fa-2x': params.interactive }\" @click.native=\"controller.setRating(n)\"></ae-icon>\n  </template>\n</div>","css":"._CSS-icon-container {\n  display: flex;\n  flex: 1;\n  align-items: center;\n}\n\n._CSS--interactive ._CSS-icon-star:hover {\n  color: gold;\n}\n\n\n/* ._CSS-container-star--inactive {\n  display: flex;\n  width: 1em;\n  height: 1em;\n} */\n/* ._CSS-icon-star--inactive-hovered {\n  display: none;\n}\n\n._CSS-container-star--inactive:hover ~ ._CSS-icon-star,\n._CSS-icon-star:hover ~ ._CSS-icon-star,\n._CSS-icon-star:hover ~ ._CSS-container-star--inactive {\n  color:gold;\n}\n\n._CSS-container-star--inactive:hover > ._CSS-icon-star--inactive {\n  display: none;\n}\n\n._CSS-container-star--inactive:hover > ._CSS-icon-star--inactive-hovered {\n  display: inline-block;\n} */\n","controller":"class Controller {\n  async init() {\n    locals.maxRating = 0\n    locals.maxRating = await this._getMaxRating()\n\n    if (params.interactive) {\n      await Aeppic.nextRenderPass()\n      startEditing()\n    }\n  }\n\n  async _getMaxRating() {\n    const form = await Aeppic.getFormForDocument(document)\n    return form.getField('rating').settings.options.length - 1\n  }\n\n  setRating(rating) {\n    if (!params.interactive) {\n      return\n    }\n\n    data.rating = rating\n    save()\n  }\n}\n","packages":[]},"locks":[],"created":{"at":"2018-05-25T10:47:46+00:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","from":"","client":"server"},"modified":{"at":"2020-10-13T10:11:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1602583892658,"ct":1527245266799,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","275b807f-7dbb-4351-b731-669e275fa97d"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"bf186589-be78-421c-8c82-3fb4cb72bda3","v":"initial","previous":{"v":""},"p":"13866932-346a-448d-9560-8a7e7e26be37","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"icon-row","applies":"","template":"<div class=\"_CSS-row\" @click.stop=\"Aeppic.navigateTo(document.id)\">\n  <ae-icon @mouseenter.native=\"controller.onHover('fee', $event)\" @mouseleave.native=\"$refs.popup.close()\" v-if=\"data.fee\" class=\"fa fa-dollar-sign\"></ae-icon>\n  <ae-icon @mouseenter.native=\"controller.onHover('blockedDates', $event)\" @mouseleave.native=\"$refs.popup.close()\" v-if=\"data.blockedDates\" class=\"fa fa-calendar-times\"></ae-icon>\n  <ae-icon @mouseenter.native=\"controller.onHover('promotionsOnAir', $event)\" @mouseleave.native=\"$refs.popup.close()\" v-if=\"data.promotionsOnAir\" class=\"fa fa-cloud\"></ae-icon>\n  <ae-icon @mouseenter.native=\"controller.onHover('competitivePromition', $event)\" @mouseleave.native=\"$refs.popup.close()\" v-if=\"data.competitivePromition\" class=\"fa fa-bolt\"></ae-icon>\n</div>\n\n<ae-popup ref=\"popup\" :close-delay=\"200\">\n  <div slot=\"popup\" class=\"_CSS-popup\" @mouseenter=\"$refs.popup.cancelClose()\" @mouseleave=\"$refs.popup.close()\">\n    <b>{{controller.fieldLabel(locals.hoveredFieldName)}}</b>\n\n    {{data[locals.hoveredFieldName]}}\n  </div>\n</ae-popup>\n","css":"._CSS-popup {\n  white-space: pre-line;\n  background: white;\n  padding: 0.5em;\n  box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.16), 0 0 1px 0 rgba(0, 0, 0, 0.16);\n}\n\n._CSS-row {\n  \n}","controller":"class Controller {\n  init () {\n    locals.hoveredFieldName = ''\n  }\n\n  onHover(fieldName, event) {\n    locals.hoveredFieldName = fieldName\n    $refs.popup.show(event)\n  }\n\n  destroy () {\n    $refs.popup && $refs.popup.close()\n  }\n\n  fieldLabel(fieldName) {\n    if (!fieldName) {\n      return ''\n    }\n    const placeholder = form.info.placeholders.find(placeholder => placeholder.field && placeholder.field.name === fieldName)\n    return placeholder.label\n  }\n}\n","packages":[]},"locks":[],"created":{"at":"2018-05-25T10:48:09+00:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","backedBy":null,"from":"","client":"server"},"modified":{"at":"2018-05-25T10:48:09+00:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","backedBy":null,"from":"","client":"server"},"t":1527245289294,"ct":1527245289294,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","13866932-346a-448d-9560-8a7e7e26be37"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"21d229dd-34c1-4966-a719-6f4af617d9ac","v":"7f4af105dd05c692","cloneOf":{"id":"dd6f1188-5862-47e4-860e-079e0d696dfd","v":"dee7a1d0394a67a2","text":"icon-with-title"},"originalCloneOf":{"id":"dd6f1188-5862-47e4-860e-079e0d696dfd","v":"dee7a1d0394a67a2","text":"icon-with-title"},"previous":{"v":"812234fb5d19d21f"},"p":"right","f":{"id":"design-form","v":"49954170df6a253b","text":"Design"},"data":{"name":"icon-with-title","template":"<div v-if=\"document.id === 'aa3ba2de-4b65-4152-ab1d-655e21de9efd'\" title=\"Bearbeiten\">\n  <ae-icon class=\"fa fa-pencil\"></ae-icon>\n  <span v-if=\"!params.hideTitle\">\n    Bearbeiten\n  </span>\n</div>\n<div v-else title=\"Anzeigen\">\n  <ae-icon class=\"fa fa-eye\" ></ae-icon>\n  <span v-if=\"!params.hideTitle\">\n    Anzeigen\n  </span>\n</div>","css":"","controller":"","packages":[],"description":""},"locks":[],"created":{"at":"2019-03-18T11:01:54+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2019-03-18T11:02:11+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1552906931282,"ct":1552906914676,"a_depth":5,"a":["system","b2533f7b-ea85-4680-99ed-d8e11be641b9","0e6939d6-9b93-4165-b6bd-977e4da881f3","627f5b74-3baf-45f8-a1d3-a5936839b844","right"],"a_forms":["system-folder-form","folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"dd6f1188-5862-47e4-860e-079e0d696dfd","v":"223c645894da7edf","p":"805f465c-d7d7-4ab6-9f5e-e7d208cbaea7","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"icon-with-title","template":"<div v-if=\"document.id === 'aa3ba2de-4b65-4152-ab1d-655e21de9efd'\" title=\"Bearbeiten\">\n  <ae-icon class=\"fa fa-pencil\"></ae-icon>\n  <span v-if=\"!params.hideTitle\">\n    Bearbeiten\n  </span>\n</div>\n<div v-else title=\"Anzeigen\">\n  <ae-icon class=\"fa fa-eye\" ></ae-icon>\n  <span v-if=\"!params.hideTitle\">\n    Anzeigen\n  </span>\n</div>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2019-01-25T15:14:45+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2019-01-25T15:15:44+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1719473826749,"ct":1719473826749,"a_depth":3,"a":["system","system-forms","805f465c-d7d7-4ab6-9f5e-e7d208cbaea7"],"a_forms":["system-folder-form","repository-folder-form","form"],"inheritedLocks":[null,null,null,null],"stamps":[],"previous":{"v":"dee7a1d0394a67a2","f":{"id":"design-form","v":"49954170df6a253b","text":"Design"}},"meta":{"modified":{"at":"2024-06-27T07:37:06+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"1ca5090f-4d55-4bac-b13c-32a8bb106b80","v":"ccb243d8acf9e3a9","p":"8bf0fb31-716d-4b76-98d8-b7349f1d7529","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"image","template":"<img v-if=\"Aeppic.Content.getSrc(document, 'file')\" :src=\"Aeppic.Content.getSrc(document, 'file')\" :style=\"{ height: params.height, width: params.width }\">","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-11-25T13:55:50+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-01-14T13:42:35+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1719473826749,"ct":1719473826749,"a_depth":3,"a":["system","system-forms","8bf0fb31-716d-4b76-98d8-b7349f1d7529"],"a_forms":["system-folder-form","repository-folder-form","form"],"inheritedLocks":[null,null,null,null],"stamps":[],"previous":{"v":"4a6fe853cc816c68","f":{"id":"design-form","v":"e37099c040ec46e9","text":"Design"}},"meta":{"modified":{"at":"2024-06-27T07:37:06+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"c3a12f5f-aba9-4e44-8b7f-754c91de3524","v":"fce39cc699fe3f15","previous":{"v":"7b879112f648ee30"},"p":"d2ac3563-3c3f-4f02-b923-9b67abf98d10","f":{"id":"design-form","v":"74db9b6ed94b41d9","text":"Design"},"data":{"name":"image","template":"<template v-if=\"params.overwriteDisplayWith\">\n  <span style=\"background-color: #777;\" class=\"_CSS-initials\">{{ params.overwriteDisplayWith }}</span>\n</template>\n<template v-else> \n  <div style=\"width:100%;height:100%;background-size: cover;\" v-if=\"data.foto && data.foto.dataUrl\" :title=\"data.vorname + ' ' + data.nachname\"  class=\"_CSS-image\" :style=\"{ 'background-image': 'url(' + Aeppic.Content.getThumbnailSrc(document,'foto') }\">\n    <div class=\"_CSS-image\"  :style=\"{ 'background-image': 'url(' + Aeppic.Content.getThumbnailSrc(document,'foto') }\"></div>\n  </div>\n  <div v-else-if=\"data.bild && data.bild.dataUrl\" :title=\"data.vorname + ' ' + data.nachname\" class=\"_CSS-image\" :style=\"{ 'background-image': 'url(' + Aeppic.Content.getThumbnailSrc(document,'bild') }\"></div>\n  <span v-else-if=\"locals.initials\" :title=\"data.vorname + ' ' + data.nachname\" :style=\"{ 'background-color': locals.color }\" class=\"_CSS-initials\">{{locals.initials}}</span>\n  <span v-else   ><ae-icon class=\"fa fa-2x fa-user-circle _CSS--no-image\" :style=\"{ fill: '#BBB' + '!important' }\"></ae-icon></span>\n</template> \n","css":"._CSS {\n  display: flex;\n  justify-content: flex-start;\n  align-items: center;\n}\n\n._CSS-initials {\n  margin: auto;\n  xheight: 28px;\n  xwidth: 28px;\n  height: 50px;\n  width: 50px;\n  border-radius: 50%;\n  display: flex;\n  align-items:center;\n  justify-content: center;\n  color:white;\n  font-size: 14px;\n  font-weight: bold;\n  font-family:'Trebuchet MS', 'Lucida Sans Unicode', 'Lucida Grande', 'Lucida Sans', Arial, sans-serif;\n  box-shadow: var(--ae-shadow-inset);\n}\n \n._CSS--no-image {\n  opacity: 0.7;\n  font-size: 28px;\n}\n\n._CSS-image {\n  height: 100%;\n  xwidth: 28px;\n  width: 100%;\n  xborder-radius: 50%;\n  background-repeat: no-repeat;\n  background-size: contain;\n  background-position-x: center;\n  background-color: rgba(0,0,0,.5);\n  box-shadow: var(--ae-shadow-inset);\n}","controller":"init() {\n  locals.color = this.intToRGB(this.hashCode(document.id))\n\n  if (!('vorname' in data) || !('nachname' in data)) {\n    locals.initials = ''\n  } else if (data.vorname.length === 0) {\n    locals.initials = (data.nachname.slice(0,1)).toUpperCase()\n  } else if (data.vorname && data.nachname) {\n    locals.initials = (data.vorname.slice(0,1) + data.nachname.slice(0,1)).toUpperCase()\n  }\n}\n\nhashCode(str) { // java String#hashCode\n  var hash = 0;\n  for (var i = 0; i < str.length; i++) {\n      hash = str.charCodeAt(i) + ((hash << 5) - hash);\n  }\n  return hash;\n} \n\n intToRGB(i) {\n  var c = (i & 0x00FFFFFF)\n      .toString(16)\n      .toUpperCase();\n\n  return '#' + '00000'.substring(0, 6 - c.length) + c;\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-06-04T13:57:07+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2023-10-31T11:44:54+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1698752694343,"ct":1591279027242,"a_depth":4,"a":["apps","144e85c0-d7f9-4b20-8928-be30f0c78bda","8e6ee7d3-9122-4a2e-8aaf-9fb3bd204b23","d2ac3563-3c3f-4f02-b923-9b67abf98d10"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"05396da2-06db-4936-8cf3-8273eaee378f","v":"cf00a3bdcb7ca6fd","previous":{"v":"initial"},"p":"f8fd3176-4995-455f-a8a8-d2742a836816","f":{"id":"design-form","v":"24435d748c76f819","text":"Design"},"data":{"name":"import-card","template":"<div class=\"_CSS-card\" :class=\"{ 'ae-form-cell__input': params.withoutBorder !== true && params.noBorder !== true }\" @click.stop=\"$emit('selected', document)\">\n\n  <span v-if=\"data.firma\">\n    {{ form.getPlaceholder('firma').label }}:\n    {{data.firma }},\n  </span>\n\n  <span v-if=\"data.ansprechpartner\">\n    {{ form.getPlaceholder('ansprechpartner').label }}:\n    {{data.ansprechpartner }},\n  </span>\n\n  <span v-if=\"data.email\">\n    {{ form.getPlaceholder('email').label }}:\n    <a @click.stop :href=\"'mailto:' + data.email\">{{data.email }}</a>,\n  </span>\n\n  <span v-if=\"data.festnetz\">\n    {{data.festnetz.length}}\n    {{ form.getPlaceholder('festnetz').label }}:\n    <a @click.stop :href=\"'tel:' + data.festnetz\">{{ data.festnetz }}</a>,\n  </span>\n  <span v-if=\"data.mobil\">\n    {{ form.getPlaceholder('mobil').label }}:\n    <a @click.stop :href=\"'tel:' + data.mobil\">{{data.mobil }}</a>\n  </span>\n\n</div>","css":"._CSS ._CSS-card {\n  flex: 1;\n  display: flex;\n  overflow: hidden;\n  justify-content: space-between;\n  background-color: var(--ae-ui-background);\n  border-radius: var(--ae-border-radius);\n\n  padding: var(--ae-size-2);\n\n  flex-flow: column;\n}\n","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2019-08-22T12:19:56+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2019-10-17T13:52:13+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1571320333033,"ct":1566476396382,"a_depth":4,"a":["apps","bc036ad0-6dbc-415b-b506-325fb0a44046","8ffb21f4-3d63-4824-a633-10a19d7aa7d8","f8fd3176-4995-455f-a8a8-d2742a836816"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"25c59566-1721-4641-bc7b-243f381f01c1","v":"initial","p":"98c77209-1245-43d6-90b5-8625183f470c","f":{"id":"design-form","v":"24435d748c76f819","text":"Design"},"data":{"name":"import-card","template":"<div class=\"_CSS-card\" :class=\"{ 'ae-form-cell__input': params.withoutBorder !== true && params.noBorder !== true }\" @click.stop=\"$emit('selected', document)\">\n  <div>\n    {{ data.name }} \n  </div>\n  \n  <div v-if=\"data.status\">\n    {{ form.getPlaceholder('status').label }}:\n    {{ form.getPlaceholder('status').field.settings.options.find(o => o.value === data.status).display }}\n  </div>\n\n  <div v-if=\"data.projektleiter.id\">\n  {{ form.getPlaceholder('projektleiter').label }}:\n    <ae-design name=\"avatar--resizes-with-font,title\" :document-id=\"data.projektleiter.id\"></ae-design>\n  </div>\n  \n  <div v-if=\"data.ansprechpartner.length\">\n  {{ form.getPlaceholder('ansprechpartner').label }}:\n    <ae-design name=\"avatar--resizes-with-font,title\" v-for=\"ansprechpartner in data.ansprechpartner\" :document=\"ansprechpartner\"></ae-design>\n  </div>\n  \n  <div v-if=\"data.beschreibung\">\n  {{ form.getPlaceholder('beschreibung').label }}:\n\n    <span>\n      {{ data.beschreibung }}\n    </span>\n  </div>\n\n  <span v-if=\"data.email\">\n    {{ form.getPlaceholder('email').label }}:\n    <a @click.stop :href=\"'mailto:' + data.email\">{{data.email }}</a>,\n  </span>\n\n  <span v-if=\"data.festnetz\">\n    {{ form.getPlaceholder('festnetz').label }}:\n    <a @click.stop :href=\"'tel:' + data.festnetz\">{{ data.festnetz }}</a>,\n  </span>\n  <span v-if=\"data.mobil\">\n    {{ form.getPlaceholder('mobil').label }}:\n    <a @click.stop :href=\"'tel:' + data.mobil\">{{data.mobil }}</a>\n  </span>\n\n</div>","css":"._CSS ._CSS-card {\n  flex: 1;\n  display: flex;\n  overflow: hidden;\n  justify-content: space-between;\n  background-color: var(--ae-ui-background);\n  border-radius: var(--ae-border-radius);\n\n  padding: var(--ae-size-2);\n\n  flex-flow: column;\n}\n","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2019-08-22T12:20:30+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2019-08-22T12:20:30+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1566476430387,"ct":1566476430387,"a_depth":4,"a":["apps","94a64d89-d204-4918-b147-d717914fb03e","f254ce25-42f1-4333-8ee7-23554bf746c1","98c77209-1245-43d6-90b5-8625183f470c"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"56c86758-0e09-42f7-a1aa-be1092b8b771","v":"fcb5a08a53dc01bf","previous":{"v":"initial"},"p":"275b807f-7dbb-4351-b731-669e275fa97d","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"index-picture","applies":"","template":"<div class=\"_CSS-index-picture\" :style=\"{'background-image': locals.indexPicture && 'url(' + Aeppic.Content.getSrc(locals.indexPicture, 'datei') + ')' }\"></div>\n","css":"._CSS {\n  flex: 1;\n  display: flex;\n}\n._CSS-index-picture {\n  flex: 1;\n  background-size: contain;\n  background-repeat: no-repeat;\n  background-position: center center;\n  min-height: 164px;\n  min-width: 164px;\n}","controller":"class Controller {\n  init() {\n    locals.indexPicture = null\n    \n    this.onUpdate()\n\n    Aeppic.watch(document, () => this.onUpdate())\n  }\n\n  async onUpdate() {\n    locals.indexPicture = await Aeppic.get(data.files[0])\n  }\n}","packages":[]},"locks":[],"created":{"at":"2018-07-06T12:17:44+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2020-10-13T10:11:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1602583892663,"ct":1530879464530,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","275b807f-7dbb-4351-b731-669e275fa97d"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"364eb228-78d2-4f7a-b4b1-0108f918314b","v":"80f91c3aeadd2968","previous":{"v":"48d5f2b4f41783f0"},"p":"275b807f-7dbb-4351-b731-669e275fa97d","f":{"id":"design-form","v":"3a761d06f59c46c1","text":"Design"},"data":{"name":"index-picture-thumbnail","template":"<ae-design  name=\"thumbnail\"\n            :document=\"locals.indexPicture\"\n            :param-width=\"params.width\"\n            :param-height=\"params.height\"\n></ae-design>","css":"","controller":"class Controller {\n  async init() {\n    locals.indexPicture = null\n    locals.indexPicture = await Aeppic.get('8e7da3a4-0171-4ccf-9ef9-2b962c07a9d0')\n\n    Aeppic.watch(document.id, () => this.onUpdate())\n  }\n\n  async onUpdate() {\n\n    if (!data.files.length) {\n      locals.indexPicture = await Aeppic.get('8e7da3a4-0171-4ccf-9ef9-2b962c07a9d0')\n      return\n    }\n\n    const firstFile = await Aeppic.get(data.files[0])\n\n    if (firstFile && firstFile.data.datei.type.startsWith('image/')) {\n      locals.indexPicture = firstFile\n      return\n    }\n\n    const files = await Aeppic.getAll(data.files)\n    const picture = files.find(file => file.data.datei.type.startsWith('image/'))\n\n    if (picture) {\n      locals.indexPicture = picture\n    } else {\n      locals.indexPicture = await Aeppic.get(data.files[0])\n    }\n  }\n}\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2018-10-30T12:50:54+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2020-10-13T10:11:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1602583892667,"ct":1602583892667,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","275b807f-7dbb-4351-b731-669e275fa97d"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"ef72e047-eb48-461e-8745-65c2741e6ca5","v":"bf05f3c81030535e","previous":{"v":"77f85ab43e845b41"},"p":"44e0edf9-6515-4e4b-ad48-98a04d28df11","f":{"id":"design-form","v":"3a761d06f59c46c1","text":"Design"},"data":{"name":"index-picture-thumbnail","template":"<ae-design  name=\"thumbnail\"\n            :document=\"locals.indexPicture\"\n            :param-width=\"params.width\"\n            :param-height=\"params.height\"\n></ae-design>","css":"","controller":"class Controller {\n  async init() {\n    locals.indexPicture = null\n    locals.indexPicture = await Aeppic.get('8e7da3a4-0171-4ccf-9ef9-2b962c07a9d0')\n\n    Aeppic.watch(document.id, () => this.onUpdate())\n  }\n\n  async onUpdate() {\n\n    if (!data.files.length) {\n      locals.indexPicture = await Aeppic.get('8e7da3a4-0171-4ccf-9ef9-2b962c07a9d0')\n      return\n    }\n\n    const firstFile = await Aeppic.get(data.files[0])\n\n    if (firstFile && firstFile.data.datei.type.startsWith('image/')) {\n      locals.indexPicture = firstFile\n      return\n    }\n\n    const files = await Aeppic.getAll(data.files)\n    const picture = files.find(file => file.data.datei.type.startsWith('image/'))\n\n    if (picture) {\n      locals.indexPicture = picture\n    } else {\n      locals.indexPicture = await Aeppic.get(data.files[0])\n    }\n  }\n}\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2018-10-30T12:50:33+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2020-10-13T10:11:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1602583892449,"ct":1602583892449,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","44e0edf9-6515-4e4b-ad48-98a04d28df11"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"049db751-64b6-4cd2-8683-d8ec2f2f2fd0","v":"df0378e5fb4189f9","cloneOf":{"id":"b4ad0126-7378-47b4-b77d-87b23e135ba7","v":"1c5a57d5e5d20f82","text":"security-card"},"originalCloneOf":{"id":"b4ad0126-7378-47b4-b77d-87b23e135ba7","v":"1c5a57d5e5d20f82","text":"security-card"},"previous":{"v":"2e79c86cc1c71923","p":"e5c233c9-5425-48d7-a785-d962897bc6f8"},"p":"group","f":{"id":"design-form","v":"49954170df6a253b","text":"Design"},"data":{"name":"indirect-group","template":"<div class=\"_CSS-group\" >\n  <div class=\"_CSS-avatar\">\n  <ae-design  name=\"avatar--small\" :document=\"document\"></ae-design>\n  </div>\n  <!-- <ae-icon class=\"fa fa-users\"></ae-icon> -->\n  <ae-design class=\"_CSS-group-title\" name=\"title\" :document=\"document\"></ae-design>\n  <!-- <ae-control name=\"security:group-users\" :document=\"document\" :params=\"params\" :readonly=\"true\"></ae-control> -->\n  \n  <div class=\"_CSS-features\">\n    <div v-if=\"params.indirectReferences\">\n      <div>Included by groups</div>\n      <ae-design v-for=\"groupId of params.indirectReferences\" name=\"avatar--small\" :document-id=\"groupId\"></ae-design>\n    </div>\n  </div>\n</div>\n","css":"._CSS {\n  background: var(--ae-ui-card-background);\n  padding: 4px;\n}\n\n._CSS-group {\n  display:grid;\n  xgrid-template-rows: 24px min-content;\n  grid-template-columns: auto 1fr auto;\n  grid-column-gap: 8px;\n  grid-template-areas: \n    \"avatar account features\"\n    \"avatar profile none\";\n  flex-direction: row;\n  margin-bottom: 8px; \n  cursor: pointer;\n}\n\n._CSS-group-overlay  {\n  grid-area: avatar;\n  z-index:1;\n  align-self:end;\n  justify-self: end;\n  margin: 0px 0px;\n  text-shadow: 1px solid black;\n  border-radius:50%;\n  width:32px; \n  padding: 2px; \n}\n\n._CSS-account--disabled {\n  opacity: 0.8;\n  background: var(--ae-background);\n}\n\n._CSS-avatar {\n  grid-area: avatar; \n}\n\n._CSS-profile-title {\n  grid-area: profile; \n}\n\n._CSS-account-title {\n  grid-area: account; \n  font-weight: 500;\n}\n\n._CSS-features {\n  grid-area: features;\n  color: #777;\n}\n\n._CSS-account--disabled ._CSS-account-title * {\n  text-decoration:line-through;\n}\n\n._CSS-users {\n  overflow: hidden;\n}","controller":"","packages":[],"description":""},"locks":[],"created":{"at":"2019-01-16T13:24:27+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2019-01-28T11:16:43+00:00","by":null,"backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1548674203904,"ct":1547645067919,"a_depth":5,"a":["system","b2533f7b-ea85-4680-99ed-d8e11be641b9","0e6939d6-9b93-4165-b6bd-977e4da881f3","627f5b74-3baf-45f8-a1d3-a5936839b844","group"],"a_forms":["system-folder-form","folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"1aee3c6b-d97e-4d18-b03e-3f65864f767e","v":"6b859f58518b1be4","previous":{"v":"066b6f5d822c0810"},"p":"6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"info","applies":"","template":"<dl class=\"ae-dl\">\n  <dd>Name</dd>\n  <dt>{{data.name}}</dt>\n\n  <dd>Typ</dd>\n  <dt style=\"display: flex;\">\n    <ae-design name=\"icon\" :document=\"document\"></ae-design>\n    <ae-design name=\"readable-type\" :document=\"document\"></ae-design>\n  </dt>\n\n  <dd class=\"ae-dl--gap\">Freigabe</dd>\n  <dt>{{data.freigabe ? 'Ja' : 'Nein' }}</dt>\n\n  <template v-if=\"data.gueltigab\">\n    <dd>Gültig ab</dd>\n    <dt>\n      {{Aeppic.DateTime.fromISO(data.gueltigab).toLocaleString(Aeppic.DateTime.DATETIME_SHORT)}}\n    </dt>\n  </template>\n\n\n\n\n  <template v-if=\"document.modified.at\">\n    <dd class=\"ae-dl--gap\">Geändert von</dd>\n    <dt>\n      <ae-design  name=\"avatar--small\" \n                v-if=\"document.created.by\"\n                :document=\"locals.modifiedProfile\">\n      </ae-design>\n      <span v-else>Admin</span>\n    </dt>\n\n    <dd>Geändert am</dd>\n    <dt>\n      {{Aeppic.DateTime.fromISO(document.modified.at).toLocaleString(Aeppic.DateTime.DATETIME_SHORT)}}\n    </dt>\n  </template>\n\n\n  <dd class=\"ae-dl--gap\">Erstellt von</dd>\n  <dt>\n    <ae-design  name=\"avatar--small\" \n                v-if=\"document.created.by\"\n                :document=\"locals.createdProfile\">\n    </ae-design>\n    <span v-else>Admin</span>\n  </dt>\n\n  <dd>Erstellt am</dd>\n  <dt>\n    {{Aeppic.DateTime.fromISO(document.created.at).toLocaleString(Aeppic.DateTime.DATE_SHORT)}}\n  </dt>\n</dl>","css":"","controller":"class Controller {\n  async init() {\n    locals.createdProfile = await Aeppic.getProfilePageForAccount(document.created.by)\n\n    if (document.modified.by) {\n      locals.modifiedProfile = await Aeppic.getProfilePageForAccount(document.modified.by)\n    }\n  }\n}","packages":[]},"locks":[],"created":{"at":"2018-04-19T18:15:37+02:00","by":"","from":"","client":"server"},"modified":{"at":"2018-05-23T16:21:00+02:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","backedBy":null,"from":"","client":"server"},"t":1527085260614,"ct":1524154537882,"a_depth":4,"a":["apps","3d43a3f5-fea4-488d-9fc1-9dee5e694623","7c30f282-2b84-4976-8735-ba78662ea5e6","6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"2f96adb9-9aaa-4323-9572-ac4325323073","v":"initial","cloneOf":{"id":"a6bbf5f9-29cd-4e63-8035-3bf1e34bdca0","v":"0ae2f851593cc3ba","text":"info"},"originalCloneOf":{"id":"a6bbf5f9-29cd-4e63-8035-3bf1e34bdca0","v":"0ae2f851593cc3ba","text":"info"},"p":"a04c8913-db48-4e80-b20d-0f3cc17a778c","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"info","applies":"","template":"<dl class=\"ae-dl\">\n  <dd>Name</dd>\n  <dt>{{data.name}}</dt>\n<!-- \n  <dd>Icon</dd>\n  <dt style=\"display: flex;\">\n    <ae-design  name=\"icon\" :document=\"document\"></ae-design>\n  </dt> -->\n  <template v-if=\"data.beschreibung\">\n    <dd>Beschreibung</dd>\n    <dt>{{data.beschreibung}}</dt>\n  </template> \n\n  <template v-if=\"document.modified.at && document.modified.at !== document.created.at\">\n    <dd class=\"ae-dl--gap\">Geändert</dd>\n    <dt style=\"display:flex;align-items:center\">\n      <ae-design  name=\"avatar--small\" \n                v-if=\"document.modified.by\"\n                :document=\"locals.modifiedProfile\">\n      </ae-design>\n      <span v-else>Admin</span>\n      <div style=\"text-align:left;padding-left:1em;\"  :title=\"DateTime.fromISO(document.modified.at).toLocaleString(DateTime.DATETIME_HUGE)\">\n        <span>{{DateTime.fromISO(document.modified.at).toLocaleString(DateTime.DATE_SHORT)}}</span>\n        <span class=\"_CSS-time\">{{DateTime.fromISO(document.modified.at).toLocaleString(DateTime.TIME_SIMPLE)}}</span>\n      </div>\n    </dt>\n  </template>\n\n  <dd class=\"ae-dl--gap\">Erstellt von</dd>\n  <dt style=\"display:flex;align-items:center\">\n    <ae-design  name=\"avatar--small\" \n                v-if=\"document.created.by\"\n                :document=\"locals.createdProfile\">\n    </ae-design>\n    <span v-else>Admin</span>\n    <div style=\"text-align:left;padding-left:1em;\" :title=\"DateTime.fromISO(document.created.at).toLocaleString(DateTime.DATETIME_HUGE)\">\n      <span>{{DateTime.fromISO(document.created.at).toLocaleString(DateTime.DATE_SHORT)}}</span>\n      <span class=\"_CSS-time\">{{DateTime.fromISO(document.created.at).toLocaleString(DateTime.TIME_SIMPLE)}}</span>\n    </div>\n  </dt>\n\n  <dd>Sicherheit</dd>\n  <dt>     \n    <ae-design :document=\"document\" name=\"security-access\"></ae-design>\n  </dt>\n</dl>","css":"\r\n._CSS dl {\r\n  background: var(--ae-background);\r\n  color: var(--ae-foreground-l1);\r\n}\r\n\r\n._CSS dd:not(:first-of-type) {\r\n  margin-top:1em;\r\n}\r\n\r\n._CSS-time {\r\n  opacity:0.7;\r\n}","controller":"class Controller {\n  async init() {\n    locals.createdProfile = await Aeppic.getProfilePageForAccount(document.created.by)\n\n    if (document.modified.by) {\n      locals.modifiedProfile = await Aeppic.getProfilePageForAccount(document.modified.by)\n    }\n\n    const canEdit = await Aeppic.canEdit(document)\n    locals.canEdit = Aeppic.Account && Aeppic.Account.data.isGroupAccount === false && canEdit === true\n  }\n}","packages":[]},"locks":[],"created":{"at":"2020-06-23T14:54:59+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2020-06-23T14:54:59+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1592924099020,"ct":1592924099020,"a_depth":4,"a":["apps","45ada186-e9fd-451d-9dbd-2defc0b4f86f","4ec6a0e5-cf2d-4095-9b70-2e31a64d5679","a04c8913-db48-4e80-b20d-0f3cc17a778c"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"6aa3cef3-d6c1-4dbb-9096-3389d6cc65ac","v":"9bc06e474e679721","previous":{"v":"cccf4939af76c4c4"},"p":"17c3a5d3-90ba-4592-961b-0800873ef9c1","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"info","applies":"","template":"<dl class=\"ae-dl\">\n  <dd>{{form.name}}</dd>\n  <dt class=\"_CSS--bigger\">{{data.name}}</dt>\n\n  <template v-if=\"data.bis\">\n    <dd>Bis</dd>\n    <dt style=\"display: flex; align-items: center;\">\n      {{ Aeppic.DateTime.fromISO(data.bis).toLocaleString(Aeppic.DateTime.DATE_HUGE) }}\n    </dt>\n  </template>\n\n  <template v-if=\"data.verantwortlich.length\">\n    <dd>Verantwortliche</dd>\n    <dt style=\"display: flex;\">\n      <ae-design v-for=\"va in data.verantwortlich\" :key=\"va.id\" :document-id=\"va.id\" name=\"avatar--tiny\"></ae-design>\n    </dt>\n  </template>\n\n  <template v-if=\"data.beschreibung\">\n    <dd>Beschreibung</dd>\n    <dt class=\"_CSS-dt--multiline\">{{data.beschreibung}}</dt>\n  </template>\n\n  <template v-if=\"data.anhaenge.length\">\n    <dd>Anhänge</dd>\n    <dt>\n      <ae-icon class=\"far fa-paperclip\"></ae-icon> {{ data.anhaenge.length }}\n    </dt>\n  </template>\n\n  <dd>Sicherheit</dd>\n  <dt>     \n    <ae-design :document=\"document\" name=\"security-access\"></ae-design>\n  </dt>\n</dl>\n","css":"","controller":"","packages":[]},"locks":[],"created":{"at":"2018-04-18T15:39:25+02:00","by":"","from":"","client":"server"},"modified":{"at":"2019-01-26T16:15:40+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1548519340403,"ct":1524058765053,"a_depth":4,"a":["apps","5acfd7a2-33e4-498a-9150-71e1ab772bfc","20c92864-6a81-4006-96f9-b78f473cd129","17c3a5d3-90ba-4592-961b-0800873ef9c1"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"a6bbf5f9-29cd-4e63-8035-3bf1e34bdca0","v":"0ae2f851593cc3ba","previous":{"v":"dc7e0819fbbbfb79"},"p":"c0574720-6967-4293-94a8-e7b32a40fc6f","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"info","applies":"","template":"<dl class=\"ae-dl\">\n  <dd>Name</dd>\n  <dt>{{data.name}}</dt>\n<!-- \n  <dd>Icon</dd>\n  <dt style=\"display: flex;\">\n    <ae-design  name=\"icon\" :document=\"document\"></ae-design>\n  </dt> -->\n  <template v-if=\"data.beschreibung\">\n    <dd>Beschreibung</dd>\n    <dt>{{data.beschreibung}}</dt>\n  </template> \n\n  <template v-if=\"document.modified.at && document.modified.at !== document.created.at\">\n    <dd class=\"ae-dl--gap\">Geändert</dd>\n    <dt style=\"display:flex;align-items:center\">\n      <ae-design  name=\"avatar--small\" \n                v-if=\"document.modified.by\"\n                :document=\"locals.modifiedProfile\">\n      </ae-design>\n      <span v-else>Admin</span>\n      <div style=\"text-align:left;padding-left:1em;\"  :title=\"DateTime.fromISO(document.modified.at).toLocaleString(DateTime.DATETIME_HUGE)\">\n        <span>{{DateTime.fromISO(document.modified.at).toLocaleString(DateTime.DATE_SHORT)}}</span>\n        <span class=\"_CSS-time\">{{DateTime.fromISO(document.modified.at).toLocaleString(DateTime.TIME_SIMPLE)}}</span>\n      </div>\n    </dt>\n  </template>\n\n  <dd class=\"ae-dl--gap\">Erstellt von</dd>\n  <dt style=\"display:flex;align-items:center\">\n    <ae-design  name=\"avatar--small\" \n                v-if=\"document.created.by\"\n                :document=\"locals.createdProfile\">\n    </ae-design>\n    <span v-else>Admin</span>\n    <div style=\"text-align:left;padding-left:1em;\" :title=\"DateTime.fromISO(document.created.at).toLocaleString(DateTime.DATETIME_HUGE)\">\n      <span>{{DateTime.fromISO(document.created.at).toLocaleString(DateTime.DATE_SHORT)}}</span>\n      <span class=\"_CSS-time\">{{DateTime.fromISO(document.created.at).toLocaleString(DateTime.TIME_SIMPLE)}}</span>\n    </div>\n  </dt>\n\n  <dd>Sicherheit</dd>\n  <dt>     \n    <ae-design :document=\"document\" name=\"security-access\"></ae-design>\n  </dt>\n</dl>","css":"\r\n._CSS dl {\r\n  background: var(--ae-background);\r\n  color: var(--ae-foreground-l1);\r\n}\r\n\r\n._CSS dd:not(:first-of-type) {\r\n  margin-top:1em;\r\n}\r\n\r\n._CSS-time {\r\n  opacity:0.7;\r\n}","controller":"class Controller {\n  async init() {\n    locals.createdProfile = await Aeppic.getProfilePageForAccount(document.created.by)\n\n    if (document.modified.by) {\n      locals.modifiedProfile = await Aeppic.getProfilePageForAccount(document.modified.by)\n    }\n\n    const canEdit = await Aeppic.canEdit(document)\n    locals.canEdit = Aeppic.Account && Aeppic.Account.data.isGroupAccount === false && canEdit === true\n  }\n}","packages":[]},"locks":[],"created":{"at":"2018-04-19T18:17:03+02:00","by":"","from":"","client":"server"},"modified":{"at":"2019-01-26T12:47:01+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1548506821096,"ct":1524154623778,"a_depth":4,"a":["apps","3d43a3f5-fea4-488d-9fc1-9dee5e694623","7c30f282-2b84-4976-8735-ba78662ea5e6","c0574720-6967-4293-94a8-e7b32a40fc6f"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"dc2d6432-0124-489f-8bd0-8f130555feb6","v":"5ecd3eca32931153","p":"fallback-designs","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"info","template":"<dl class=\"ae-dl\">\n  <dd>Name</dd>\n  <dt>{{data.name}}</dt>\n<!-- \n  <dd>Icon</dd>\n  <dt style=\"display: flex;\">\n    <ae-design  name=\"icon\" :document=\"document\"></ae-design>\n  </dt> -->\n  <!-- <template v-if=\"data.beschreibung\">\n    <dd>Beschreibung</dd>\n    <dt>{{data.beschreibung}}</dt>\n  </template>  -->\n\n  <template v-if=\"document.modified.at && document.modified.at !== document.created.at\">\n    <dd class=\"ae-dl--gap\">Geändert</dd>\n    <dt style=\"display:flex;align-items:center\">\n      <ae-design  name=\"avatar--small\" \n                v-if=\"document.created.by\"\n                :document=\"locals.modifiedProfile\">\n      </ae-design>\n      <span v-else>Admin</span>\n      <div style=\"text-align:left;padding-left:1em;\"  :title=\"DateTime.fromISO(document.modified.at).toLocaleString(DateTime.DATETIME_HUGE)\">\n        <span>{{DateTime.fromISO(document.modified.at).toLocaleString(DateTime.DATE_SHORT)}}</span>\n        <span class=\"_CSS-time\">{{DateTime.fromISO(document.modified.at).toLocaleString(DateTime.TIME_SIMPLE)}}</span>\n      </div>\n    </dt>\n  </template>\n\n  <dd class=\"ae-dl--gap\">Erstellt von</dd>\n  <dt style=\"display:flex;align-items:center\">\n    <ae-design  name=\"avatar--small\" \n                v-if=\"document.created.by\"\n                :document=\"locals.createdProfile\">\n    </ae-design>\n    <span v-else>Admin</span>\n    <div style=\"text-align:left;padding-left:1em;\" :title=\"DateTime.fromISO(document.created.at).toLocaleString(DateTime.DATETIME_HUGE)\">\n      <span>{{DateTime.fromISO(document.created.at).toLocaleString(DateTime.DATE_SHORT)}}</span>\n      <span class=\"_CSS-time\">{{DateTime.fromISO(document.created.at).toLocaleString(DateTime.TIME_SIMPLE)}}</span>\n    </div>\n  </dt>\n\n  <dd>Sicherheit</dd>\n  <dt>     \n    <ae-design :document=\"document\" name=\"security-access\"></ae-design>\n  </dt>\n</dl>","css":"._CSS dl {\n  background: var(--ae-background);\n  color: var(--ae-foreground-l1);\n}\n\n._CSS dd:not(:first-of-type) {\n  margin-top:1em;\n}\n\n._CSS-time {\n  opacity:0.7;\n}","controller":"class Controller {\n  async init() {\n    locals.createdProfile = await Aeppic.getProfilePageForAccount(document.created.by)\n\n    if (document.modified.by) {\n      locals.modifiedProfile = await Aeppic.getProfilePageForAccount(document.modified.by)\n    }\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2018-11-19T15:10:47+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2020-06-30T09:30:13+00:00","by":"8e6c22aa-8c69-4ff8-919a-7032841cf636","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720684627131,"ct":1720684627131,"a_depth":2,"a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"],"inheritedLocks":[null,null,null],"stamps":[],"previous":{"v":"5cc69a69f691c536","f":{"id":"design-form","v":"9bfe8e0cd909c1f0","text":"Design"}},"meta":{"modified":{"at":"2024-07-11T09:57:07+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"05683dc3-dbbf-4472-ba10-1cb102a9d817","v":"be3e037e71904b11","previous":{"v":"4f49743fa7ce1dcd"},"p":"44e0edf9-6515-4e4b-ad48-98a04d28df11","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"info-line","applies":"","template":"<template v-if=\"locals.form\">\n\n  <span class=\"_CSS-label\">{{ Aeppic.translate(locals.form.getPlaceholder('birthdate').label) }}</span>\n  <strong v-if=\"!data.birthdate\">-</strong>\n  <strong v-else class=\"_CSS-value\" :title=\"Aeppic.DateTime.fromISO(data.birthdate).toLocaleString(Aeppic.DateTime.DATE_FULL)\">{{Aeppic.DateTime.fromISO(data.birthdate).toFormat('yyyy')}}</strong>\n\n  <span class=\"_CSS-seperator\">/</span>\n\n  <span class=\"_CSS-label\">{{ Aeppic.translate(locals.form.getPlaceholder('hairColor').label) }}</span>\n  <strong v-if=\"!data.hairColor\">-</strong>\n  <strong v-else class=\"_CSS-value\">{{data.hairColor}}</strong>\n\n  <span class=\"_CSS-seperator\">/</span>\n\n  <span class=\"_CSS-label\">{{ Aeppic.translate(locals.form.getPlaceholder('eyeColor').label) }}</span>\n  <strong v-if=\"!data.eyeColor\">-</strong>\n  <strong v-else class=\"_CSS-value\">{{data.eyeColor}}</strong>\n\n  <span class=\"_CSS-seperator\">/</span>\n\n  <span class=\"_CSS-label\">{{ Aeppic.translate(locals.form.getPlaceholder('height').label) }}</span>\n  <strong v-if=\"!data.height\">-</strong>\n  <strong v-else class=\"_CSS-value\">{{data.height}}</strong>\n\n  <span class=\"_CSS-seperator\">/</span>\n\n  <span class=\"_CSS-label\">{{ Aeppic.translate(locals.form.getPlaceholder('clothesSize').label) }}</span>\n  <strong v-if=\"!data.clothesSize\">-</strong>\n  <strong v-else class=\"_CSS-value\">{{data.clothesSize}}</strong>\n\n</template>","css":"","controller":"async init() {\n  locals.form = null\n  locals.form = await Aeppic.getFormForDocument(document)\n}","packages":[]},"locks":[],"created":{"at":"2018-05-25T10:47:23+00:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","from":"","client":"server"},"modified":{"at":"2020-10-13T10:11:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1602583892457,"ct":1527245243738,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","44e0edf9-6515-4e4b-ad48-98a04d28df11"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"319184a8-6ecc-4d75-a26a-a1481e29aa7c","v":"11fd187780d36253","previous":{"v":"bbdca4ed91c0ab1a"},"p":"275b807f-7dbb-4351-b731-669e275fa97d","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"info-line","applies":"","template":"<span class=\"_CSS-label\">born</span>\n<strong v-if=\"!data.birthdate\">-</strong>\n<strong v-else class=\"_CSS-value\" :title=\"Aeppic.DateTime.fromISO(data.birthdate).toLocaleString(Aeppic.DateTime.DATE_FULL)\">{{Aeppic.DateTime.fromISO(data.birthdate).toFormat('yyyy')}}</strong>\n\n<span class=\"_CSS-seperator\">/</span>\n\n<span class=\"_CSS-label\">hair</span>\n<strong v-if=\"!data.hairColor\">-</strong>\n<strong v-else class=\"_CSS-value\">{{data.hairColor}}</strong>\n\n<span class=\"_CSS-seperator\">/</span>\n\n<span class=\"_CSS-label\">eyes</span>\n<strong v-if=\"!data.eyeColor\">-</strong>\n<strong v-else class=\"_CSS-value\">{{data.eyeColor}}</strong>\n\n<span class=\"_CSS-seperator\">/</span>\n\n<span class=\"_CSS-label\">height</span>\n<strong v-if=\"!data.height\">-</strong>\n<strong v-else class=\"_CSS-value\">{{data.height}}</strong>\n\n<span class=\"_CSS-seperator\">/</span>\n\n<span class=\"_CSS-label\">dress size</span>\n<strong v-if=\"!data.clothesSize\">-</strong>\n<strong v-else class=\"_CSS-value\">{{data.clothesSize}}</strong>\n","css":"","controller":"","packages":[]},"locks":[],"created":{"at":"2018-05-25T10:47:48+00:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","from":"","client":"server"},"modified":{"at":"2018-06-18T15:54:17+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"from":"","client":"server"},"t":1529337257286,"ct":1527245268780,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","275b807f-7dbb-4351-b731-669e275fa97d"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"674f05a6-5ee8-4d9b-a183-fff0e09bc05c","v":"b47b2330ca8765bf","previous":{"v":"8bbba4e1645ac5d0"},"p":"275b807f-7dbb-4351-b731-669e275fa97d","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"info-line--current-stage","applies":"","template":"<template v-if=\"locals.parentForm === locals.applicationFormId\">\n  <ae-design name=\"icon-project-specific-informations\" :document=\"document\"></ae-design>\n  <span>Projektbezogene Modeldaten</span>\n</template>\n<template v-if=\"locals.parentForm === locals.preselectionFormId\">\n  <ae-design name=\"icon-rating\" :document=\"document\"></ae-design>\n  <span>Rating</span>\n</template>\n<template v-if=\"locals.parentForm === locals.shortlistFormId\">\n  <ae-design name=\"icon-questions-and-answers\" :document=\"document\"></ae-design>\n  <span>Antworten auf den Fragebogen</span>\n</template>\n\n","css":"._CSS > *{\n  display: inline-block;\n}","controller":" class Controller {\n   init() {\n    locals.parentForm = document['a_forms'][document['a_forms'].length - 1]\n    locals.applicationFormId = '9c63f632-9e40-4abb-aa1a-f4a02110a97f'\n    locals.preselectionFormId = '61ccaf6b-af84-4908-aa73-785dffd83c5f'\n    locals.shortlistFormId = '9927c3c7-8ce4-4c25-bcec-3385cf1370db'\n   }\n }\n\n","packages":[]},"locks":[],"created":{"at":"2018-05-25T10:47:50+00:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","from":"","client":"server"},"modified":{"at":"2019-04-12T14:13:54+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1555078434264,"ct":1527245270371,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","275b807f-7dbb-4351-b731-669e275fa97d"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"72c5714e-453f-4ca0-98d8-8cceebdea2d3","v":"7c57c7e811253436","previous":{"v":"fed83a48b9c644c8"},"p":"275b807f-7dbb-4351-b731-669e275fa97d","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"info-line--movie","applies":"","template":"movie <ae-design v-if=\"data.movie.id\" name=\"title\" style=\"font-weight: bold;display:inline;\" :document=\"data.movie\"></ae-design><template v-else>-</template>\n ","css":"","controller":"","packages":[]},"locks":[],"created":{"at":"2018-06-21T15:47:30+00:00","by":"791dde52-ff31-42ab-98e3-734ba2f75e24","from":"","client":"server"},"modified":{"at":"2018-06-21T15:49:49+00:00","by":"791dde52-ff31-42ab-98e3-734ba2f75e24","backedBy":null,"from":"","client":"server"},"t":1529596189343,"ct":1529596050942,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","275b807f-7dbb-4351-b731-669e275fa97d"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"de468b34-90ea-4158-860f-e6df4d5dd523","v":"initial","p":"275b807f-7dbb-4351-b731-669e275fa97d","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"info-line--project","applies":"","template":"project <ae-design name=\"title\" style=\"font-weight: bold;display:inline;\" :document-id=\"document.a.slice(-3)[0]\"></ae-design>\n ","css":"","controller":"","packages":[]},"locks":[],"created":{"at":"2020-10-13T10:11:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2020-10-13T10:11:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1602583892677,"ct":1602583892677,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","275b807f-7dbb-4351-b731-669e275fa97d"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"01a380d4-7c8c-409c-bac2-5dcdb46fd41b","v":"d19e7f70b8f5a458","previous":{"v":"24619e9bf7997a51"},"p":"275b807f-7dbb-4351-b731-669e275fa97d","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"info-line--roles","applies":"","template":"roles\n<template v-if=\"data.roles.length\" v-for=\"(role, index) in data.roles\">\n  <ae-design  name=\"title\" style=\"font-weight: bold;display:inline;\" :document=\"role\"></ae-design>\n  <template v-if=\"index + 1 !== data.roles.length\">,</template>\n</template>\n<template v-else>-</template>\n ","css":"","controller":"","packages":[]},"locks":[],"created":{"at":"2018-06-21T15:49:52+00:00","by":"791dde52-ff31-42ab-98e3-734ba2f75e24","from":"","client":"server"},"modified":{"at":"2018-06-21T15:54:23+00:00","by":"791dde52-ff31-42ab-98e3-734ba2f75e24","backedBy":null,"from":"","client":"server"},"t":1529596463950,"ct":1529596192325,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","275b807f-7dbb-4351-b731-669e275fa97d"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"699af500-da2b-11e5-a1b3-3d56ead5a667","v":"2c5df5ffb39fb98c","previous":{"v":"98f6ce3b8a518daf"},"p":"d2ac3563-3c3f-4f02-b923-9b67abf98d10","f":{"id":"design-form","v":"e3fe9ece11aabc5e","text":"Design"},"data":{"name":"inline","applies":"","template":"<!-- <div layout=\"row\" layout-align=\"start center\" :title=\"'data.vorname ' + 'data.name'\">\n\t FIXME: todos[0] not available => <img :src=\"data.foto.thumbnailUrl\" style=\"width:32px;border-radius:100px\" :alt=\"todos[0].who\" v-if=\"data.foto.dataUrl\" />  \n\t<img v-if=\"data.foto.dataUrl && false\" :src=\"data.foto.thumbnailUrl\" style=\"width:32px;border-radius:100px\" />\n\t<div style=\"width:32px;height:32px;background-color:#bbbbbb;border-radius:200px;font-weight:900;font-family:sans-serif\" layout-align=\"center center\"\n\t layout=\"row\" v-else>\n\t\t<p>{{data.vorname[0]}}{{data.name[0]}}</p>\n\t</div>\n</div> -->\n\n<div>\n\t<img v-if=\"data.foto.dataUrl && data.foto.thumbnailUrl\" :src=\"data.foto.thumbnailUrl\" style=\"width:32px;border-radius:100px\" :alt=\"data.name + ', ' + data.vorname\" :title=\"data.name + ', ' + data.vorname\"/>\n\t<div style=\"width:32px;height:32px;background-color:#bbbbbb;border-radius:200px;font-weight:900;font-family:sans-serif;display:inline-block;text-align:center;line-height:32px;\"\n\t v-else>\n\t\t{{data.vorname[0]}}{{data.name[0]}}\n\t</div>\n</div>","packages":[]},"locks":[],"lockRefs":[],"created":{"at":"2017-09-15T10:29:32+02:00","by":"","from":"","client":"import"},"modified":{"at":"2017-11-09T10:06:01+01:00","by":"","from":"","client":"8ea14ee2-cdf0-49fc-970d-a2e9974ea110"},"t":1467644285056,"ct":1467644284854,"a_depth":4,"a":["apps","144e85c0-d7f9-4b20-8928-be30f0c78bda","8e6ee7d3-9122-4a2e-8aaf-9fb3bd204b23","d2ac3563-3c3f-4f02-b923-9b67abf98d10"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"3c7960b8-e4ec-4448-9593-7016702aa45b","v":"425d24a65904bee8","p":"fallback-designs","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"inline-form","template":"<ae-form :auto-save=\"true\" :document=\"document\"></ae-form>","css":"._CSS {\r\n  flex:1;\r\n  display:flex;\r\n}\r\n\r\n._CSS > * {\r\n  flex:1;\r\n}","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2019-03-11T14:12:03+00:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","from":"","client":"server"},"modified":{"at":"2020-06-30T09:30:13+00:00","by":"8e6c22aa-8c69-4ff8-919a-7032841cf636","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720684627131,"ct":1720684627131,"a_depth":2,"a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"],"inheritedLocks":[null,null,null],"stamps":[],"previous":{"v":"7d74f463b76c3669","f":{"id":"design-form","v":"9bfe8e0cd909c1f0","text":"Design"}},"meta":{"modified":{"at":"2024-07-11T09:57:07+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"5ff6f9fe-be07-4ffe-880a-c06ca3023c7c","v":"e1cfe8b6b50d9f9f","previous":{"v":"23235bf468417ec2"},"p":"recycler-form","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"inspect","applies":"","template":"Recycler contains {{Aeppic._model.Recycler.size}} documents \r\n<h4>Directly deleted items</h4>\r\n\r\n<div  v-for=\"doc of controller.getDeletedDocuments()\">\r\n  {{doc.id}}\r\n  <ae-design :key=\"doc.id\" :document=\"doc\" name=\"ctitle\"></ae-design>\r\n</div>","css":"","controller":"getDeletedDocuments() {\r\n  return Array.from(Aeppic._model.Recycler.documents())\r\n}","packages":[]},"locks":[],"created":{"at":"2018-02-22T10:53:56+01:00","by":"","from":"","client":"server"},"modified":{"at":"2018-02-22T11:35:50+01:00","by":"","from":"","client":"server"},"t":1519295750759,"ct":1519293236468,"a_depth":3,"a":["system","system-folder-forms-folder","recycler-form"],"a_forms":["system-folder-form","form-folder","form"],"inheritedLocks":[null,null,null,null],"stamps":[]},{"a":["system","fallback-designs"],"a_depth":2,"a_forms":["system-folder-form","folder"],"created":{"at":"2019-03-12T14:48:47+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","client":"server","from":""},"ct":1674227299435,"data":{"aliases":[],"controller":"class Controller {\r\n  async init() { \r\n    locals.showFields = false \r\n    locals.canUpgrade = false\r\n    locals.showHiddenFields = false\r\n    locals.showData = false\r\n    locals.showMeta = false\r\n    locals.showFormInfo = false\r\n    locals.showFormInfosMode = 'fields'\r\n    locals.fieldSetter = {\r\n      name: '',\r\n      value: undefined\r\n    }\r\n\r\n    locals.keysFound = Aeppic.find(`f.id:key-form p:${document.id}`)\r\n    locals.form = await Aeppic.getFormForDocument(document)\r\n\r\n    Aeppic.watch(document.id, async () => {\r\n      locals.canUpgrade = await Aeppic.canUpgrade(document)\r\n    })\r\n\r\n    Aeppic.watchMatchingDocuments('f.id:form', async () => {\r\n      locals.canUpgrade = await Aeppic.canUpgrade(document)\r\n    }) \r\n\r\n    await Aeppic.nextRenderPass()\r\n\r\n    startEditing()\r\n  }\r\n\r\n  get getDocumentWithoutData() {\r\n    const { data, ...rest } = document.cloneAsDocument()\r\n\r\n    return rest\r\n  }\r\n\r\n  get getFormInfos() {\r\n    if (!locals.form) {\r\n      return null\r\n    }\r\n\r\n    return {\r\n      fields: locals.form.fields,\r\n      required: locals.form.fields.filter(field => field.required),\r\n    }\r\n  }\r\n\r\n  getValidationErrors() {\r\n    if (!locals.form) {\r\n      return { error : 'form not loaded'}\r\n    }\r\n\r\n    return locals.form.validateDocumentData(document.data)\r\n  }\r\n\r\n  \r\n  toggleReadOnly() {\r\n    document.readonly = !document.readonly\r\n    Aeppic.commit(document)  \r\n  }\r\n  toggleHidden() {\r\n    document.hidden = !document.hidden\r\n    Aeppic.commit(document)  \r\n  }\r\n\r\n  async updateCanUpgrade() {\r\n    locals.canUpgrade = await Aeppic.canUpgrade(document)\r\n  }\r\n\r\n  async assignKeys(keys) {\r\n    if (data.keys) {\r\n      const e = await Aeppic.edit(document)\r\n      for (const k of keys) {\r\n        e.addReference('keys', k)\r\n      }\r\n      Aeppic.save(e)\r\n    }\r\n  }\r\n\r\n  async removeLock(lock) {\r\n    const l = await Aeppic.get(lock)\r\n    if (confirm(`Remove lock: ${l ? l.data.name : lock.id}`)) {\r\n      const current = await Aeppic.edit(document)\r\n      current.removeLock(l || lock)\r\n      // alert('Would remove:' + JSON.stringify(l.data))\r\n      Aeppic.save(current)\r\n    }\r\n  }\r\n\r\n  navigateTo(id) {\r\n    Aeppic.Developer.navigateTo(id)\r\n  }\r\n\r\n  // async resetEdits() {\r\n  //   locals.editable = null\r\n  //   locals.editable = await Aeppic.edit(document)\r\n  // }\r\n\r\n\r\n  updateFieldSetter(fieldName) {\r\n    locals.fieldSetter.name = fieldName\r\n    locals.fieldSetter.type = this.getFormInfos.fields.find(field => field.name === fieldName)?.type ?? ''\r\n    locals.fieldSetter.subType = this.getFormInfos.fields.find(field => field.name === fieldName)?.subType ?? ''\r\n  }\r\n\r\n  resetFieldSetterValue() {\r\n    if (Array.isArray(document.data[locals.fieldSetter.name])) {\r\n      locals.fieldSetter.value = []\r\n    } else {\r\n      locals.fieldSetter.value = { id: '', text: '', v: '', }\r\n    }\r\n  }\r\n\r\n  async saveFieldSetter() {\r\n    const editable = await Aeppic.edit(document)\r\n    editable.data[locals.fieldSetter.name] = locals.fieldSetter.value\r\n\r\n    Aeppic.save(editable)\r\n\r\n    locals.fieldSetter = {\r\n      name: '',\r\n      value: undefined\r\n    }\r\n  }\r\n}","css":"._CSS {\r\n  height: 100%;\r\n  \r\n  display: flex;\r\n  flex-flow: column;\r\n}\r\n\r\n._CSS_path {\r\n  list-style: none;\r\n  padding: 0;\r\n}\r\n._CSS_button {\r\n  background: transparent;\r\n  border: none;\r\n  cursor: pointer;\r\n}\r\n._CSS_button:disabled {\r\n  opacity:0.5;\r\n  cursor: not-allowed;\r\n}\r\n\r\n._CSS__header {\r\n  display: flex;\r\n  align-items: baseline;\r\n  margin: 0;\r\n  line-height: 22px;\r\n  height: 32px; \r\n} \r\n\r\n._CSS_form_label {\r\n  padding: 2px 8px;\r\n  border: 1px solid var(--ae-border-color);\r\n  margin: 0px 4px;\r\n  cursor: pointer;\r\n}\r\n\r\n._CSS-edit-row {\r\n  background: #b9ff94;\r\n  margin-bottom: 8px;\r\n  padding: 4px;\r\n  border: solid 1px solid var(--ae-background-700);\r\n}\r\n\r\n._CSS__header pre {\r\n  display: inline-block;\r\n  margin-left: 16px;\r\n  font-size: 0.75em;\r\n  overflow: hidden;\r\n  text-overflow: ellipsis;\r\n  width: 5em;\r\n  white-space: nowrap;\r\n}\r\n\r\n._CSS_path {\r\n  margin: 8px 0;\r\n  font-size: 0.8em;\r\n}\r\n._CSS_path > li._CSS_path_segment {\r\n  display: inline-flex;\r\n  padding: 0px 8px 0px 0px;\r\n}\r\n\r\n._CSS_path > li._CSS_path_segment:hover {\r\n  cursor: pointer;\r\n  text-decoration: underline;\r\n}\r\n\r\n._CSS_path > li._CSS_path_segment + li._CSS_path_segment::before {\r\n  content: '/';\r\n  padding: 0px 8px 0 0;\r\n  text-decoration: none;\r\n}\r\n\r\n._CSS-data-name {\r\n  white-space: nowrap;\r\n  text-overflow: ellipsis;\r\n  overflow: hidden;\r\n}\r\n\r\n._CSS_locks {\r\n  margin: 8px 0;\r\n  font-size: 0.8em;\r\n}\r\n\r\n._CSS_locks > li._CSS_lock {\r\n  display: inline-flex;\r\n  padding: 0px 8px 0px 0px;\r\n}\r\n\r\n._CSS_locks > li._CSS_lock:hover {\r\n  cursor: pointer;\r\n  text-decoration: underline;\r\n}\r\n\r\n._CSS_locks > li._CSS_lock + li._CSS_lock::before {\r\n  content: ' , ';\r\n  padding: 0px 8px 0 0;\r\n  text-decoration: none;\r\n}\r\n\r\n._CSS-dates {\r\n  display: flex;\r\n  flex-wrap: wrap;\r\n  font-size: 0.8em;\r\n  margin-bottom: 8px;\r\n  column-gap: 6px;\r\n}\r\n\r\n._CSS-dates__date {\r\n  display: flex;\r\n}\r\n\r\n._CSS-dates__date > *~*{\r\n  margin-left: 4px;\r\n}","description":"","name":"inspect","packages":[],"template":"<div style=\"padding: 0 8px;overflow-x:hidden;\">\r\n  <h3 class=\"_CSS__header\">\r\n    <i class=\"_CSS_form\"> </i>\r\n    <span class=\"_CSS_form_label\" v-if=\"locals.form\" title=\"Form\" @click=\"$emit('selected', locals.form.id)\">{{locals.form.data.name}}</span>\r\n    <span class=\"_CSS-data-name\" v-if=\"data.name\" title=\"Name of document\">{{data.name}}</span>\r\n    <pre :title=\"'Document Id: ' + document.id\">{{document.id}}</pre>\r\n    <span class=\"ae-button _CSS_button\" title=\"Copy Document ID to clipboard\" @click=\"Aeppic.copyToClipboard(document.id)\" style=\"margin-right: 1em;\">\r\n      <ae-icon class=\"fas fa-clipboard\"></ae-icon>\r\n    </span>\r\n    <ae-layout layout-id=\"81d5259e-8abc-4af2-8531-04f943a745d3\" :param-document-id=\"document.id\" style=\"margin-right: 1em;\"></ae-layout>\r\n    <ae-layout layout-id=\"15282e4d-d998-4a7c-b4d4-fc22de082a4a\" :param-document=\"document\"></ae-layout>\r\n    <ae-design :document=\"document\" name=\"history-button\"></ae-design>\r\n    <button class=\"ae-button _CSS_button\"  @click.stop=\"controller.toggleReadOnly()\" title=\"Change document.readonly\">\r\n      <ae-icon v-if=\"document.readonly\" class=\"fa fa-ban\"></ae-icon>\r\n      <ae-icon v-if=\"!document.readonly\" class=\"fa fa-pen\"></ae-icon>\r\n    </button>\r\n    <button class=\"ae-button _CSS_button\"  @click.stop=\"controller.toggleHidden()\" title=\"Change document.hidden\">\r\n      <ae-icon v-if=\"document.hidden\" class=\"fa fa-eye-slash\"></ae-icon>\r\n      <ae-icon v-if=\"!document.hidden\" class=\"fa fa-eye\"></ae-icon>\r\n    </button>\r\n\r\n    <button class=\"ae-button _CSS_button\"  @click.stop=\"locals.showHiddenFields = !locals.showHiddenFields\" title=\"Toggle showing hidden fields in form\">\r\n      <ae-icon v-if=\"locals.showHiddenFields\" class=\"fas fa-hood-cloak\" style=\"color:red\"></ae-icon>\r\n      <ae-icon v-if=\"!locals.showHiddenFields\" class=\"fal fa-hood-cloak\"></ae-icon>\r\n    </button>\r\n    \r\n    <pre :title=\"'Document V: ' + document.v\">@{{document.v}}</pre>\r\n\r\n    <a :href=\"'/api/docs/' + document.id\" target=\"_blank\">\r\n      <button class=\"ae-button _CSS_button\" title=\"Open in new tab /api/docs/:document-id\">\r\n        <ae-icon class=\"fa fa-webhook\"></ae-icon>\r\n      </button>\r\n    </a>\r\n\r\n    <span style=\"flex: 1;\"></span>\r\n    <button @mouseenter=\"controller.updateCanUpgrade()\" :disabled=\"locals.canUpgrade === false\" class=\"ae-button _CSS_button\" title=\"Upgrade\" @click=\"Aeppic.upgrade(document.id)\">\r\n      <ae-icon class=\"far fa-arrow-alt-square-up\"></ae-icon>\r\n    </button>\r\n    <button class=\"ae-button _CSS_button\" title=\"Navigate to\" @click=\"controller.navigateTo(document.id)\">\r\n      <ae-icon class=\"fas fa-angle-right\"></ae-icon>\r\n    </button>\r\n  </h3>\r\n  <ul class=\"_CSS_path\">\r\n    <li class=\"_CSS_path_segment\" v-for=\"a in document.a\" @click=\"$emit('selected',a)\"><ae-design :document-id=\"a\" name=\"path-title,title\" :param-prefer-name=\"true\"></ae-design></li>\r\n  </ul>\r\n\r\n  <div class=\"_CSS-dates\">\r\n    <div class=\"_CSS-dates__date\">\r\n      <span>Created</span>\r\n      <span>{{ document.created.at }}</span>\r\n      <span><ae-design name=\"title\" :document-id=\"document.created.by\"></ae-design></span>,\r\n      <span>Modified</span>\r\n      <span>{{ document.modified.at }}</span>\r\n      <span><ae-design name=\"title\" :document-id=\"document.modified.by\"></ae-design></span>,\r\n\r\n      <template v-if=\"document.meta?.modified\">\r\n        <span title=\"Meta-Modified is an optional feature flagged modified-date. If that flag is enabled, some changes (Change-Form, Move, ...) will not update modified.at but meta.modified.at\">Meta-Modified</span>\r\n        <span>{{ document.meta.modified.at }}</span>\r\n        <span><ae-design name=\"title\" :document-id=\"document.meta.modified.by\"></ae-design></span>,\r\n      </template>\r\n    </div>\r\n    <div class=\"_CSS-dates__date\">\r\n      <span>document.editVersion</span>\r\n      <span>{{ document?.editVersion }}</span>\r\n    </div>\r\n    <div class=\"_CSS-dates__date\">\r\n      <span>Hidden</span>\r\n      <span>{{ document.hidden }}</span>,\r\n      <span>Readonly</span>\r\n      <span>{{ document.readonly }}</span>\r\n    </div>\r\n    <div class=\"_CSS-dates__date\" style=\"max-height: 60px;overflow: auto;\">\r\n      <span>Stamps</span>\r\n      <span>{{ document.stamps }}</span>\r\n    </div>\r\n  </div>\r\n  <template v-if=\"document.locks && document.locks.length\">\r\n    Locks\r\n    <ul class=\"_CSS_locks\">\r\n      <li class=\"_CSS_lock\" v-for=\"l in document.locks\">\r\n        <ae-design @click.native=\"Aeppic.navigateTo(l)\" :document-id=\"l.id\" name=\"title\"></ae-design>\r\n        <button class=\"ae-button _CSS_button\" @click=\"controller.removeLock(l)\"><ae-icon class=\"fa fa-minus-circle\"></ae-icon></button>\r\n      </li>\r\n    </ul>\r\n  </template>\r\n  <!-- Keys detected:\r\n  {{locals.keysFound && locals.keysFound.length != null && locals.keysFound.map(k => k.id)}}\r\n  <button @click=\"controller.assignKeys(locals.keysFound)\">Assign</button> -->\r\n\r\n  <div class=\"_CSS-edit-row\" v-if=\"document?.hasRevisions\">\r\n    <button class=\"ae-button\" xxv-show=\"isEditing\" @click=\"save()\">Save</button>\r\n    <button class=\"ae-button\" xxv-show=\"isEditing\" @click=\"resetEdits()\">Revert</button>\r\n  </div>\r\n</div>\r\n<div style=\"padding-left:1em;grid-gap:1em;display:flex\">\r\n  <label :for=\"id('fields')\">\r\n    <input :id=\"id('fields')\" type=\"checkbox\" v-model=\"locals.showFields\" />\r\n    Show Fields</label>\r\n  <label :for=\"id('show-data')\">\r\n    <input :id=\"id('show-data')\" type=\"checkbox\" v-model=\"locals.showData\">\r\n    Show Data as JSON\r\n  </label>\r\n  <label :for=\"id('show-meta')\">\r\n    <input :id=\"id('show-meta')\" type=\"checkbox\" v-model=\"locals.showMeta\">\r\n    Show Meta Fields\r\n  </label>\r\n  <label :for=\"id('show-form-infos')\">\r\n    <input :id=\"id('show-form-infos')\" type=\"checkbox\" v-model=\"locals.showFormInfos\">\r\n    Show Form Fields\r\n  </label>\r\n\r\n  <label :for=\"id('show-field-setter')\">\r\n    <input :id=\"id('show-field-setter')\" type=\"checkbox\" v-model=\"locals.showFieldSetter\">\r\n    Show Form Setter\r\n  </label>\r\n</div>\r\n<ae-design v-if=\"locals.showFields\" :document=\"document\" name=\"fields\"></ae-design>\r\n<pre v-if=\"locals.showData\">{{data}}</pre>\r\n<pre v-if=\"locals.showMeta\">{{ controller.getDocumentWithoutData }}</pre>\r\n<div v-if=\"locals.showFormInfos\">\r\n  <button @click.stop=\"locals.showFormInfosMode = 'fields'\" :style=\"{ color: locals.showFormInfosMode === 'fields' ? 'red' : 'black'}\">Fields</button>\r\n  <button @click.stop=\"locals.showFormInfosMode = 'required-fields'\" :style=\"{ color: locals.showFormInfosMode === 'required-fields' ? 'red' :'black'}\">Required Fields</button>\r\n    <button @click.stop=\"locals.showFormInfosMode = 'validation-errors'\" :style=\"{ color: locals.showFormInfosMode === 'validation-errors' ? 'red' :'black'}\">Validation Errors</button>\r\n\r\n  <pre v-if=\"locals.showFormInfosMode === 'fields'\">\r\n    {{ controller.getFormInfos }}\r\n  </pre>\r\n\r\n  <pre v-if=\"locals.showFormInfosMode === 'required-fields'\">\r\n  {{ controller.getFormInfos.required }}\r\n  </pre>\r\n\r\n    <pre v-if=\"locals.showFormInfosMode === 'validation-errors'\">\r\n  {{ controller.getValidationErrors() }}\r\n  </pre>\r\n\r\n</div>\r\n<div v-if=\"locals.showFieldSetter\" style=\"display:flex;flex-flow:column;max-width:200px;\">\r\n  <select :value=\"locals.fieldSetter.name\" @input=\"controller.updateFieldSetter($event.target.value)\">\r\n    <option v-for=\"field of controller.getFormInfos?.fields\" :value=\"field.name\">\r\n      {{field.name}}\r\n    </option>\r\n  </select>\r\n\r\n  <textarea v-if=\"locals.fieldSetter.type === 'string'\"\r\n            v-model=\"locals.fieldSetter.value\"\r\n  ></textarea>\r\n  <input type=\"number\" v-else-if=\"locals.fieldSetter.type === 'number'\"\r\n            v-model.number=\"locals.fieldSetter.value\"\r\n  ></input>\r\n  <input type=\"checkbox\" v-else-if=\"locals.fieldSetter.type === 'boolean'\"\r\n            v-model=\"locals.fieldSetter.value\"\r\n  ></input>\r\n  <div v-if=\"locals.fieldSetter.subType === 'ref'\">\r\n    <button @click.stop=\"controller.resetFieldSetterValue()\">Reset ref field</button>\r\n  </div>\r\n  <div v-else>\r\n    Not supported yet!\r\n  </div>\r\n\r\n  <button @click=\"controller.saveFieldSetter()\">save</button>\r\n</div>\r\n\r\n\r\n<ae-form :key=\"'_CSS-form' + locals.showHiddenFields\" style=\"flex: 1\" v-if=\"document\" :document=\"document\"\r\n  :watch-layout-revisions=\"false\" @data-changed=\"Aeppic.commit(document)\"\r\n  layout-id=\"23f40ca9-b846-4117-9c59-693f6015e379\"\r\n  :view=\"{ show: { hiddenFields: locals.showHiddenFields }}\"></ae-form>\r\n  <!-- :layout-id=\"locals.showHiddenFields ? 'efdb156e-9350-4cb3-8e00-4a69adec691b' : null\" -->\r\n\r\n<ae-design name=\"additional-inspect\" :document=\"document\"></ae-design> "},"f":{"id":"design-form","text":"Design","v":"5dbbefb312ab61e2"},"id":"b1e507af-464c-4099-bd74-b35883e85348","inheritedLocks":[null,null,null],"locks":[],"modified":{"at":"2026-06-09T10:17:10+00:00","backedBy":"","by":"b7485498-f1f3-4ab1-87d1-9cb63ea890c8","client":"server","from":"","impersonatedBy":""},"p":"fallback-designs","previous":{"v":"99bcf88ab5ca3cab"},"stamps":[],"t":1781000230511,"v":"5350338cf0dd2dda"},{"id":"8a410af3-dad0-4b34-8d12-fe9d2596b4da","v":"368bac381d3f7930","previous":{"v":"b7f555ed2143c590"},"p":"34c80ca6-34a4-48e8-abdd-d9b13ff25cff","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"interactive-plan","template":"<div v-if=\"!params.readonly\">\n  <div class=\"flex gap-2\">\n    <button class=\"ae-button\" @click.stop=\"controller.switchMode()\">\n      <template v-if=\"locals.mode === 'draw'\">\n        <ae-icon class=\"fa fa-draw-polygon\"></ae-icon>\n        Zeichnen\n      </template>\n      <template v-if=\"locals.mode === 'link'\">\n        <ae-icon class=\"fa fa-crosshairs\"></ae-icon>\n        Verknüpfen\n      </template>\n    </button>\n\n    <button class=\"ae-button\" @click.stop=\"controller.add()\">\n      <ae-icon class=\"fa fa-pencil\"></ae-icon>\n      Neuen Shape beginnen\n    </button>\n\n    <!-- <button class=\"ae-button\" @click.stop=\"controller.removeLast()\">\n      <ae-icon class=\"fa fa-trash\"></ae-icon>\n      remove \n    </button> -->\n\n    <button class=\"ae-button\" @click.stop=\"controller.undo()\">\n      <ae-icon class=\"fa fa-undo\"></ae-icon>\n      Letzten Punkt rückgängig\n    </button>\n\n    <button class=\"ae-button\" @click.stop=\"controller.save()\">\n      <ae-icon class=\"fa fa-save\"></ae-icon>\n      Speichern\n    </button>\n\n    <button class=\"ae-button\" @click.stop=\"controller.reset()\">\n      <ae-icon class=\"fa fa-trash\"></ae-icon>\n      Alle Shapes löschen\n    </button>\n\n    <button class=\"ae-button\" @click.stop=\"locals.debugShapes = !locals.debugShapes\">\n      <ae-icon class=\"fa fa-eye\"></ae-icon>\n      Shape Debugger\n    </button>\n\n  </div> \n</div> \n\n<div v-if=\"params.debug\">\n{{  locals.debug }} \n<br>\n{{ locals.json.size }}\n</div>  \n \n<div class=\"\" ref=\"container\">\n  <div class=\"h-full w-full relative\" :style=\"{ height: locals.imageSize.height, width: locals.imageSize.width }\">  \n    <img v-if=\"data.datei.dataUrl && locals.loadImage\" \n        class=\"h-full w-full\"\n        :src=\"Aeppic.Content.getSrc(document, 'datei')\" \n        ref=\"image\" \n        :key=\"locals.key\"  \n        @load=\"controller.updateImageSize()\"\n    >\n<!-- @mouseover=\"controller.addTemporaryCoordinate($event)\"  --> \n    <svg v-if=\"locals.ready && locals.imageSize.viewboxWidth\" \n        class=\"absolute top-0 left-0 right-0 h-full w-full select-none\"\n        @click.stop=\"controller.addCoordinate($event)\"\n        :viewBox=\"'0 0 ' + locals.imageSize.viewboxWidth + ' ' + locals.imageSize.viewboxHeight\"   \n        :width=\"locals.imageSize.naturalImageWidth\" \n        :height=\"locals.imageSize.naturalImageHeight\" \n    > \n      <linearGradient v-if=\"locals.debugShapes\" id=\"Gradient2\" x1=\"0\" x2=\"1\" y1=\"0\" y2=\"1\">\n        <stop offset=\"0%\" stop-color=\"red\" />\n        <stop offset=\"50%\" stop-color=\"black\" stop-opacity=\"0\" />\n        <stop offset=\"100%\" stop-color=\"blue\" />\n      </linearGradient> \n      <template v-for=\"(entry, index) of locals.json.points\"> \n        <!-- {{entry}} -->\n        <polygon  v-if=\"locals.debugShapes\" \n                  :points=\"entry.points.map(point => point.x + ',' + point.y + ' ')\"  \n                  class=\"stroke-2 stroke-slate-900 hover:brightness-110 hover:saturate-200\" \n                  opacity=\"0.5\"\n                  :xclass=\"controller.getClassesByEntry(entry)\"\n                  @click=\"controller.showRefSelection($event, index)\"\n                  fill=\"url(#Gradient2)\"  \n        />\n        <polygon  v-else\n                  :points=\"entry.points.map(point => point.x + ',' + point.y + ' ')\"  \n                  class=\"stroke-2 stroke-slate-900 hover:brightness-110 hover:saturate-200\" \n                  opacity=\"0.5\"\n                  :class=\"controller.getClassesByEntry(entry)\"\n                  @click=\"controller.showRefSelection($event, index)\"\n        />\n        <text v-if=\"entry.points.length\" \n              class=\"pointer-events-none\"\n              :foox=\"entry.points[0].x + 35\"\n              :fooy=\"entry.points[0].y + 35\"\n              :x=\"controller.getCenterPoints(entry).x\"\n              :y=\"controller.getCenterPoints(entry).y\"\n              text-anchor=\"middle\"\n              :font-size=\"data.textFontSize || 25\"\n              :fill=\"data.textFontColor || 'fill-red-500'\"\n        >\n        <!-- {{ controller.getCenterPoints(entry) }} -->\n          <!-- :x=\"entry.points[0].x + ((locals.imageSize.viewboxWidth / ((data.textFontSize || 25) - 15)) )\" -->\n        <!-- :y=\"entry.points[0].y + ((locals.imageSize.viewboxHeight / ((data.textFontSize || 25) - 15)) )\" -->\n          {{ entry.document && entry.document.data.name }}\n          <!-- {{ index }} -->\n        </text>\n      </template> \n    </svg>\n  </div>  \n</div>\n\n\n<ae-popup ref=\"popupRef\">\n  <div class=\"min-w[150px] p-4\">\n    <div v-if=\"locals.json.points[locals.selectedEntryIndex]\">\n      <ae-design name=\"title\" :document-id=\"locals.json.points[locals.selectedEntryIndex].documentId\"></ae-design>\n    </div>\n\n    <button class=\"ae-button ae-button--primary\" @click.stop=\"$refs.selectionButton.$emit('show', $event)\">\n      <ae-icon class=\"fa fa-plus\"></ae-icon>\n    </button>\n\n    <button class=\"ae-button\" @click.stop=\"controller.deleteSelectedEntry()\">\n      <ae-icon class=\"fa fa-trash\"></ae-icon>\n    </button>\n  </div>\n</ae-popup>\n\n<ae-layout  \n      layout-id=\"36649f27-5869-49e6-9b49-3b5c3b9c795d\"\n      @selected=\"controller.addDocumentToEntry($event)\"\n      ref=\"selectionButton\"\n      :params=\"{ \n                settings: locals.refSearchSettings,\n                hidePath: true,\n                hideButton: true\n              }\" \n></ae-layout> \n","css":"","controller":"class Controller {\n  async init() {\n    locals.ready = false\n    locals.loadImage = false\n\n    locals.imageSize = { height: null, width: null }\n\n    locals.refSearchSettings = {\n      filter: {\n        base: 'f.id:7105a939-989c-4154-96e8-44f17f556b2a',\n        ancestorSearchLimit: 1\n      }\n    }\n\n    locals.mode = 'draw'\n\n    locals.json = { size: { width: null, height: null }, points: [] } \n    locals.selectedEntry = null \n\n    this.editable = await Aeppic.edit(document)\n    \n    const documentsToWatch = await this._updateJson()\n\n    locals.loadImage = true\n\n    Aeppic.watchAll(documentsToWatch, ({ document, reason }) => {\n      this._updateJson()\n    })\n\n    locals.ready = true\n  }\n\n  async _updateJson() {\n    console.log('_updateJson')\n    \n    const documentsToWatch = []\n \n    try {\n      const json = JSON.parse(this.editable.data.areas)\n      \n      locals.json.size = json.size\n      \n      locals.json.points = await Promise.all(json.points.map(async entry => {\n        const doc = await Aeppic.get(entry.documentId)\n        \n        documentsToWatch.push(doc)\n\n        return { ...entry, document: doc }\n      }))\n    } catch (e) { \n      locals.json = { size: { width: null, height: null }, points: [] } \n    }\n\n\n    return documentsToWatch\n  }\n\n  async updateImageSize() {\n    await Aeppic.nextRenderPass()\n    await Aeppic.nextRenderPass()\n\n    locals.imageSize = this.imageSize\n  }\n\n  get imageSize() {\n    const containerWidth = $refs.container.clientWidth\n    const containerHeight = $refs.container.clientHeight\n\n    console.log(containerHeight, containerWidth) \n   \n    if (!$refs.image) {\n      return { height: null, width: null }\n    }\n\n    this._updateImageSizeIfNew()\n\n    const naturalImageHeight = $refs.image.naturalHeight\n    const naturalImageWidth = $refs.image.naturalWidth\n\nconsole.warn(JSON.stringify(locals.json))\n\n    const svgFactorWidth = locals.json.size.width / containerWidth\n    const svgFactorHeight = locals.json.size.height / containerHeight\n\n    const factorToWidthOfContainerWidth = containerWidth / naturalImageWidth\n\n\n    function roundToDigits(number, digits) {\n      const power = Math.pow(10, digits)\n      return (Math.round(number * power) / power)\n    }\n\n    const scaledWidth = roundToDigits(naturalImageWidth * factorToWidthOfContainerWidth , 0)\n    const scaledHeight = roundToDigits(naturalImageHeight * factorToWidthOfContainerWidth, 0)\n\n    locals.debug = { \n      name: data.name,\n      clientWidth: $refs.container.clientWidth,\n      clientHeight: $refs.container.clientHeight,\n      naturalImageWidth,\n      naturalImageHeight,\n      factorToWidthOfContainerWidth, \n      scaledWidth,\n      scaledHeight,\n      svgFactorWidth,\n      svgFactorHeight,\n    }\n \n    console.log(`Got image ${naturalImageHeight}h ${naturalImageWidth}w => scaled to => ${scaledHeight}h ${scaledWidth}w`)\n\n    const result = {\n      height: `${scaledHeight}px`,\n      width: `${scaledWidth}px`,\n      scaledHeight,\n      scaledWidth,\n      naturalImageHeight,\n      naturalImageWidth,\n      svgFactorWidth, \n      svgFactorHeight,\n      viewboxWidth: roundToDigits(scaledWidth * svgFactorWidth, 0),\n      viewboxHeight:  roundToDigits(scaledHeight * svgFactorHeight, 0),\n    }\n\n    console.log(JSON.stringify(result) ) \n\n    return result\n  }\n \n  add() {\n    if (params.readonly) {  \n      return\n    }\n\n    const lastShapeIsEmpty = !locals.json.points.slice(-1)[0]?.points.length > 0\n\n    if (lastShapeIsEmpty) {\n      return\n    }\n\n    locals.json.points.push({\n      link: '',\n      documentId: '',\n      color: '',\n      points: []\n    })\n  }\n\n  removeLast() { \n    if (params.readonly) {\n      return\n    }\n    locals.json.points.splice(-1, 1)\n    console.log(locals.json)\n    // this.add()\n  }\n\n  undo() {\n    if (params.readonly) {\n      return\n    }\n\n\n    const list = locals.json.points[locals.json.points.length - 1]\n    list.points.splice(-1)\n  }\n\n  reset() {\n    if (params.readonly) {\n      return\n    }\n\n    locals.json = { size: { width: null, height: null, }, points: [] }\n\n    this.add()\n  }\n\n\n  save() {\n    if (params.readonly) {\n      return\n    }\n\n    this.editable.data.areas = JSON.stringify(locals.json)\n    Aeppic.save(this.editable)\n  }\n\n  _updateImageSizeIfNew() {\n    const isNewList = locals.json.points.length === 0 || \n                      (locals.json.points.length === 1 && locals.json.points[0].points.length === 0) // should not happen anymore, since add() is guarded now to NOT add new shapes when an empty shape is aleady there\n\n    console.log({isNewList})\n\n    if (isNewList) {\n      locals.json.size = {\n        width: $refs.container.clientWidth,\n        height: $refs.container.clientHeight,\n      }\n    }\n  }\n\n  addCoordinate(mouseClick) { \n    if (params.readonly || locals.mode !== 'draw') {\n      return\n    }\n\n    this._updateImageSizeIfNew()\n\n    const list = locals.json.points[locals.json.points.length - 1].points\n\n    // console.log(isNewList, list, locals.json.size)\n    \n    const points = { \n      x: mouseClick.offsetX,\n      y: mouseClick.offsetY,\n    }\n\n    points.x = points.x * this.imageSize.svgFactorWidth\n    points.y = points.y * this.imageSize.svgFactorHeight\n    \n    console.log(points, {  mouseClick })\n \n    list.push(points)\n  }\n\n  // async addTemporaryCoordinate(mouseOver) {\n  //   if (this._updateTemporaryCoordinate) {\n  //     return\n  //   }\n\n  //   this._updateTemporaryCoordinate = true \n\n  //   await Aeppic.waitForNextAnimationFrame()\n\n  //   const list = locals.json[locals.json.points.length - 1].points\n\n  //   const points = {\n  //     x: mouseOver.offsetX,\n  //     y: mouseOver.offsetY,\n  //   }\n\n  //   if (!list.length) {\n  //     list.push(points)\n  //   } else {\n  //     list.splice(list.length - 1, 1, points)\n  //   }\n\n  //   this._updateTemporaryCoordinate = false\n  // }\n\n  showRefSelection(mouseEvent, entryIndex) {\n    if (locals.mode !== 'link' && !params.readonly) {\n      return \n    }\n\n    mouseEvent.stopPropagation()\n\n    locals.selectedEntryIndex = entryIndex\n\n    if (params.readonly) {\n      Aeppic.drillInto(locals.json.points[locals.selectedEntryIndex].documentId)\n      return\n    }\n\n    $refs.popupRef.show(mouseEvent)\n  }\n\n  addDocumentToEntry(doc) {\n    console.log(doc)\n    const entry = locals.json.points[locals.selectedEntryIndex]\n    entry.documentId = doc.id\n    entry.document = doc\n\n    locals.json.points.splice(locals.selectedEntryIndex, 1, entry)\n\n    $refs.popupRef?.close()\n  }\n\n  deleteSelectedEntry() {\n    const entry = locals.json.points[locals.selectedEntryIndex]\n\n    if (!entry) {\n      return\n    }\n\n    locals.json.points.splice(locals.selectedEntryIndex, 1)\n \n    $refs.popupRef?.close()\n  }\n\n  getClassesByEntry(entry) {\n    // TODO: use await Aeppic.Actions.run(['27a207ee-3162-4d0a-947b-3f017855579b'], { params: { unit: entry.document }}))[0]?.value\n    if (!entry.document) {\n      return 'fill-slate-600'\n    }\n\n    const status = entry.document.data.status\n\n    if (status === 'ANFRAGE') {\n      return 'fill-violet-400'\n    }\n\n    if (status === 'VERMIETET') {\n      return 'fill-green-400'\n    }\n\n    if (status === 'GEKUENDIGT') {\n      return 'fill-yellow-400'\n    }\n\n    return 'fill-red-400'\n  }\n\n  switchMode() {\n    if (locals.mode === 'link') {\n      locals.mode = 'draw'\n      return\n    }\n\n    locals.mode = 'link'\n  }\n\n  // get jsonAsPolygons() {\n  //   if (!locals.json) {\n  //     return []\n  //   }\n\n  //   return locals.json.points.map(area => {\n  //     console.log(area)\n  //     return area.map(points => `${points.x},${points.y}`).join(' ')\n  //   })\n  // }\n\n  getCenterPoints(entry) {\n    const result = {\n      x: 0,\n      y: 0,\n    }\n    \n    const {points} = entry\n\n    const x = points.filter(p => !!p).map(p => p.x).sort()\n    const y = points.filter(p => !!p).map(p => p.y).sort()\n\n    const centerOfX = (x[0] + x.slice(-1)[0]) / 2\n    const centerOfY = (y[0] + y.slice(-1)[0]) / 2\n\nconsole.log(entry.document?.data.name, { x, centerOfX, y, centerOfY })\n\n    result.x = centerOfX\n    result.y = centerOfY\n\n\n    return result\n  }\n}\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-04-21T13:22:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-02-01T15:25:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1675265132219,"ct":1650547352423,"a_depth":4,"a":["apps","86189c5a-b9f4-445a-879f-d94574960df0","15292d56-6806-4263-b6d0-9194687203e1","34c80ca6-34a4-48e8-abdd-d9b13ff25cff"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"d01785a0-1ca7-478a-a653-8ea7421cd7d5","v":"8a88323ccc1a8f1f","previous":{"v":"ec9915be47002f8e"},"p":"686d22ba-414e-452f-9795-f6f7bcab37d5","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"intro--shared","applies":"","template":"<template v-if=\"locals.ready\">\r\n  <h1>{{data.name}}</h1>\r\n\r\n  <template v-if=\"data.deadline\">\r\n    <h3 style=\"color: red;\">{{ Aeppic.translate(locals.form.getPlaceholder('deadline').label) }}</h3>\r\n    <article class=\"_CSS-description\" style=\"color: red;\">{{ Aeppic.DateTime.fromISO(data.deadline).toLocaleString(DateTime.DATE_MED) }}</article>\r\n  </template>\r\n\r\n  <template v-if=\"data.description\">\r\n    <h3>{{ Aeppic.translate(locals.form.getPlaceholder('description').label) }}</h3>\r\n    <article class=\"_CSS-description\">{{ data.description }}</article>\r\n  </template>\r\n\r\n  <template v-if=\"data.fee\">\r\n    <h3>{{ Aeppic.translate(locals.form.getPlaceholder('fee').label) }}</h3>\r\n    <article class=\"_CSS-description\">{{ data.fee }}</article>\r\n  </template>\r\n\r\n\r\n  <template v-if=\"data.shootingDates\">\r\n    <h3>{{ Aeppic.translate(locals.form.getPlaceholder('shootingDates').label) }}</h3>\r\n    <article class=\"_CSS-description\">{{ data.shootingDates }}</article>\r\n  </template>\r\n\r\n  <section v-if=\"data.files.length > 0\" class=\"_CSS-files\">\r\n    <h1></h1>\r\n    <div v-for=\"file of data.files\" class=\"_CSS-file\">\r\n      <ae-design :document-id=\"file.id\" name=\"card--small,title\" param-preview-format=\"jpg\"></ae-design>\r\n    </div>\r\n  </section>\r\n\r\n  <section v-if=\"data.movies.length > 0\" class=\"_CSS-movies\">\r\n    <h1 v-translate=\"'movies'\">Filme</h1>\r\n    <div v-for=\"movie of data.movies\" v-if=\"!locals.onlyShowMovieIds || locals.onlyShowMovieIds.includes(movie.id)\" class=\"_CSS-movie\">\r\n      <ae-design :document-id=\"movie.id\" name=\"card--wide,title\" :param-deadline=\"data.deadline\" :param-closed=\"data.closed\" @selected-movie=\"controller.selectedMovie($event)\"></ae-design>\r\n    </div>\r\n  </section>\r\n</template>\r\n","css":"._CSS-description {\r\n  font-size: 1.1em;\r\n  padding: 8px;\r\n  background: rgba(255,255,255,0.8);\r\n  line-height: 1.5;\r\n  margin-bottom: 2em;\r\n  white-space: pre-line;\r\n}\r\n\r\n._CSS-files {\r\n  margin: 0 -1em;\r\n  display: flex;\r\n  flex-wrap: wrap;\r\n}\r\n\r\n._CSS-file {\r\n  display: inline-block;\r\n  margin: 0 0 1em 1em;\r\n}\r\n\r\n._CSS-movies {\r\n  display: flex;\r\n  flex-flow: column;\r\n}\r\n\r\n._CSS-movie {\r\n  flex: 1;\r\n  margin-bottom: 1em;\r\n}","controller":"class Controller {\n  async init() {\n    locals.ready = false\n\n    locals.form = null\n\n    if (params.shareFilters && params.shareFilters.length) {\n      locals.onlyShowMovieIds = []\n\n      for (const filter of params.shareFilters) {\n        const valueOfIdQuery = filter.data.query.split('id:').slice(-1)[0]\n\n        locals.onlyShowMovieIds.push(valueOfIdQuery)\n      }\n    }\n\n    locals.form = await Aeppic.getFormForDocument(document)\n\n    locals.ready = true\n  }\n\n  async selectedMovie(movieDocument) {\n    const casting = await Aeppic.get(params.castingId)\n\n    const requestsFolderResult = await Aeppic.find(`p:${casting.id} f.id:188cc647-d375-48c4-baff-2e738787da33`)\n    const requestFolder = requestsFolderResult[0]\n\n    const applicationRequest = await Aeppic.new('459069ef-d793-4f8c-967b-a49d150c6176', requestFolder.id)\n    applicationRequest.addReference('movie', movieDocument)\n    applicationRequest.addReference('casting', casting)\n    applicationRequest.addReference('project', document)\n    Aeppic.save(applicationRequest)\n\n    await Aeppic.nextRenderPass()\n    await Aeppic.get(applicationRequest)\n\n    Aeppic.navigateTo(applicationRequest)\n  }\n}","packages":[]},"locks":[],"created":{"at":"2018-06-04T15:57:32+00:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","from":"","client":"server"},"modified":{"at":"2020-10-13T10:11:33+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1602583893296,"ct":1528127852127,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","686d22ba-414e-452f-9795-f6f7bcab37d5"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","f1899d3b-4673-4033-afa0-2d9c540c326d"],"a_depth":3,"a_forms":["folder","application-form","design-folder"],"created":{"at":"2023-11-27T10:38:55+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1701081535545,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.name = document.f.text.split('_').slice(-1)[0]\n    locals.parent = await Aeppic.get(document.p)\n  }\n}","css":"","description":"","name":"itm:application-card","packages":[],"template":"<div class=\"w-full flex flex-col rounded-md p-1 cursor-pointer border border-transparent\"\n      :class=\"{'border-error-500': locals.valid === false }\"\n  @click.stop=\"$emit('selected', document)\"\n>\n  <div class=\"w-full overflow-hidden flex gap-2 items-center\">\n    <div class=\"flex-1 w-0 flex flex-col items-start gap-2\">\n      <div class=\"flex-1 flex gap-2\">\n        <ae-design\n          name=\"rd:validity-button\"\n          :document=\"document\"\n          :param-only-icon=\"true\"\n          @valid=\"locals.valid = true\"\n          @invalid=\"locals.valid = false\"\n        ></ae-design>\n        <div class=\"truncate max-w-full flex-1 font-bold\">{{locals.name}}</div>\n      </div>\n\n      <ae-design\n        name=\"rd:application-workflow-stamp\"\n        :document-id=\"document.p\"\n        param-workflow-definition-id=\"50fed9fd-9a25-4420-9e1c-3546b937bb6b\"\n      ></ae-design>\n    </div>\n\n    <ae-layout\n      layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n      param-icon=\"\"\n      param-text=\"Anzeigen\"\n      xparam-border=\"border border-primary-200\"\n      :param-primary=\"true\"\n      @selected=\"$emit('selected', document)\"\n    ></ae-layout>\n  </div>\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"aae3e3b7-c376-4165-ba4c-7ad1a6a54c49","inheritedLocks":[null,null,null,null],"locks":[],"meta":{"modified":{"at":"2025-07-08T08:32:06+00:00","backedBy":null,"by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":null}},"modified":{"at":"2025-04-28T13:43:08+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"f1899d3b-4673-4033-afa0-2d9c540c326d","previous":{"a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"],"p":"fallback-designs","v":"c6ac52d63a88bd3f"},"stamps":[],"t":1751963526629,"v":"e7f8a41fe59dede3"},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","f1899d3b-4673-4033-afa0-2d9c540c326d"],"a_depth":3,"a_forms":["folder","application-form","design-folder"],"cloneOf":{"id":"aae3e3b7-c376-4165-ba4c-7ad1a6a54c49","text":"itm:application-card","v":"e7f8a41fe59dede3"},"created":{"at":"2025-07-08T08:32:51+00:00","backedBy":null,"by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":null},"ct":1751963571922,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.name = document.f.text.split('_').slice(-1)[0]\n    locals.parent = await Aeppic.get(document.p)\n  }\n}","css":"","description":"","name":"itm:information-card","packages":[],"template":"<div class=\"w-full flex flex-col rounded-md p-1 cursor-pointer border border-transparent\"\n      :class=\"{'border-error-500': locals.valid === false }\"\n  @click.stop=\"$emit('selected', document)\"\n>\n  <div class=\"w-full overflow-hidden flex gap-2 items-center\">\n    <div class=\"flex-1 w-0 flex flex-col items-start gap-2\">\n      <div class=\"flex-1 flex gap-2\">\n        <ae-design\n          name=\"rd:validity-button\"\n          :document=\"document\"\n          :param-only-icon=\"true\"\n          @valid=\"locals.valid = true\"\n          @invalid=\"locals.valid = false\"\n        ></ae-design>\n        <div class=\"truncate max-w-full flex-1 font-bold\">{{locals.name}}</div>\n      </div>\n \n      <ae-design\n        name=\"rd:information-workflow-stamp\"\n        :document-id=\"document.p\"\n        param-workflow-definition-id=\"50fed9fd-9a25-4420-9e1c-3546b937bb6b\"\n      ></ae-design>\n    </div>\n\n    <ae-layout\n      layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n      param-icon=\"\"\n      param-text=\"Anzeigen\"\n      xparam-border=\"border border-primary-200\"\n      :param-primary=\"true\"\n      @selected=\"$emit('selected', document)\"\n    ></ae-layout>\n  </div>\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"522c3b48-a03a-416d-94c7-6ec03ead4740","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2025-07-08T08:35:01+00:00","backedBy":null,"by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"aae3e3b7-c376-4165-ba4c-7ad1a6a54c49","text":"itm:application-card","v":"e7f8a41fe59dede3"},"p":"f1899d3b-4673-4033-afa0-2d9c540c326d","previous":{"v":"56b43fbaac56c11c"},"stamps":[],"t":1751963701357,"v":"1d40141d467ac328"},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","f1899d3b-4673-4033-afa0-2d9c540c326d"],"a_depth":3,"a_forms":["folder","application-form","design-folder"],"created":{"at":"2023-11-27T10:06:03+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1701079563917,"data":{"aliases":[],"controller":"class Controller {\n  init() {\n    locals.upload = null //{progressPercent:0.3,status:'started'}\n  }\n\n  get isUploading() {\n    const status = Aeppic.Uploads.getUploadStatusForDocument(document)\n\n    if (status) {\n      locals.upload = status[0]\n    } else {\n      locals.upload = null\n    }\n  \n    return !!locals.upload\n  }\n\n}","css":"","description":"","name":"itm:inventory-card","packages":[],"template":"\n<div class=\"group w-full flex flex-col bg-white rounded-md p-1 border cursor-pointer\" \n     @click.stop=\"$emit('selected', document)\"\n     :class=\"{ 'border-red-500': !data.allDocumentDataValid }\"\n>\n  <div class=\"flex gap-2  items-center\">\n    <ae-design name=\"rd:icon\" :document=\"document\"></ae-design>\n\n    <ae-design class=\"flex-1 text-neutral-600\" name=\"rd:styled-title,title\" :document=\"document\"></ae-design>\n\n    <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n              v-if=\"!params.readonly && !params.disableRemove && (!params.inline || !document.hidden)\"\n              param-icon=\"far fa-trash\"\n              @selected=\"$emit('remove', document)\"\n              ref=\"button\"\n              :param-disabled=\"params.readonly \"\n              class=\"text-neutral-600 invisible group-hover:visible\"\n    ></ae-layout> \n\n    <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n              :param-icon=\"data.allDocumentDataValid ? 'far fa-badge-check text-green-500' : 'far fa-badge-percent text-red-500'\"\n              :param-title=\"data.allDocumentDataValid ? 'Alle erforderlichen Felder ausgefüllt' : 'Nicht alle erforderlichen Felder ausgefüllt'\"\n              @selected=\"Aeppic.drillInto(document)\"\n    ></ae-layout>\n  </div>\n\n  <div v-if=\"locals.upload\" style=\"display:flex\">\n    <div class=\"ae-progress\" :style=\"{ 'padding-left': (locals.upload.progressPercent * 100).toString() + '%' }\" ></div>\n  </div>\n</div>\n "},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"173e3efc-cabf-4fe2-9031-e9c21738d357","inheritedLocks":[null,null,null,null],"locks":[],"meta":{"modified":{"at":"2025-07-08T08:32:12+00:00","backedBy":null,"by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":null}},"modified":{"at":"2024-10-31T15:54:34+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"f1899d3b-4673-4033-afa0-2d9c540c326d","previous":{"a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"],"p":"fallback-designs","v":"bcdee46cff05fb72"},"stamps":[],"t":1751963532691,"v":"d1aa596086ee3f08"},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","f1899d3b-4673-4033-afa0-2d9c540c326d"],"a_depth":3,"a_forms":["folder","application-form","design-folder"],"created":{"at":"2023-11-27T10:06:25+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1701079585887,"data":{"aliases":[],"controller":"class Controller {\n  init() {\n    locals.upload = null //{progressPercent:0.3,status:'started'}\n  }\n\n  get isUploading() {\n    const status = Aeppic.Uploads.getUploadStatusForDocument(document)\n\n    if (status) {\n      locals.upload = status[0]\n    } else {\n      locals.upload = null\n    }\n  \n    return !!locals.upload\n  }\n\n} ","css":"","description":"","name":"itm:questionnaire-card","packages":[],"template":"\n<div class=\"group w-full flex flex-col bg-white rounded-md p-1 border cursor-pointer\" \n     @click.stop=\"$emit('selected', document)\"\n     :class=\"{ 'border-red-500': !data.allDocumentDataValid }\"\n>\n  <div class=\"flex gap-2  items-center\">\n    <ae-design name=\"rd:icon\" :document=\"document\"></ae-design>\n\n    <ae-design class=\"flex-1 text-neutral-600\" name=\"rd:styled-title,title\" :document=\"document\"></ae-design>\n\n    <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n              v-if=\"!params.readonly && !params.disableRemove && (!params.inline || !document.hidden)\"\n              param-icon=\"far fa-trash\"\n              @selected=\"$emit('remove', document)\"\n              ref=\"button\"\n              :param-disabled=\"params.readonly \"\n              class=\"text-neutral-600 invisible group-hover:visible\"\n    ></ae-layout> \n\n    <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n              :param-icon=\"data.allDocumentDataValid ? 'far fa-badge-check text-green-500' : 'far fa-badge-percent text-red-500'\"\n              :param-title=\"data.allDocumentDataValid ? 'Alle erforderlichen Felder ausgefüllt' : 'Nicht alle erforderlichen Felder ausgefüllt'\"\n              @selected=\"Aeppic.drillInto(document)\"\n    ></ae-layout>\n  </div>\n\n  <div v-if=\"locals.upload\" style=\"display:flex\">\n    <div class=\"ae-progress\" :style=\"{ 'padding-left': (locals.upload.progressPercent * 100).toString() + '%' }\" ></div>\n  </div>\n</div>\n "},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"2bd5c491-27ce-49c1-8d37-9d0479732f2d","inheritedLocks":[null,null,null,null],"locks":[],"meta":{"modified":{"at":"2025-07-08T08:32:16+00:00","backedBy":null,"by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":null}},"modified":{"at":"2024-10-31T15:05:24+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"f1899d3b-4673-4033-afa0-2d9c540c326d","previous":{"a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"],"p":"fallback-designs","v":"0ff3929c9f0a4774"},"stamps":[],"t":1751963536514,"v":"a7a7b43b6829fc7e"},{"id":"3f05245d-21a1-4cf6-80be-954371fc8bdb","v":"dbd14e83e3e07415","previous":{"v":"fd4a3b924ec58338"},"p":"cb2adf77-7636-41a7-9a16-1610b06fa91e","f":{"id":"design-form","v":"0061789efb5c5c29","text":"Design"},"data":{"name":"kb-page","template":"<ae-expandable  ref=\"expander\" style=\"flex:1;display:flex\">\r\n  <div style=\"display:flex;flex-direction:column;flex:1\"\r\n    :key=\"locals.rerender\">\r\n    <ae-design \r\n      xclass=\"bp-page__toolbar\"\r\n      :document=\"locals.selected\"\r\n      name=\"page-toolbar--inlined\"\r\n      :param-readonly=\"false\"\r\n      style=\"background:var(--ae-background-100)\"\r\n      @toolbar=\"controller.handleToolbarEvent($event)\"\r\n    ></ae-design>\r\n    <ae-design\r\n      ref=\"page\"\r\n      style=\"flex:1\"\r\n      :document=\"locals.selected\"\r\n      name=\"editor\"\r\n      :param-kb-root=\"params.kbRoot\"\r\n      :param-child-types=\"params.childTypes\"\r\n      :xparam-readonly=\"true\" \r\n      @toggle-expand=\"$refs.expander.toggle()\"\r\n      >\r\n    </ae-design>\r\n  </div>\r\n</ae-expandable>","css":"._CSS {\r\n  display:flex;\r\n  flex-direction:column;\r\n}\r\n\r\n._CSS > .ae-expandable > .ae-expandable__header {\r\n  display: none;\r\n}","controller":"class Controller {\r\n  async init() {\r\n    locals.selected = await Aeppic.edit(document)\r\n    locals.rerender = 1\r\n\r\n    Aeppic.watch(locals.selected, (newVersion) => {\r\n      console.log('watch triggered', newVersion.v)\r\n      if (locals.selected.v !== newVersion.v) {        \r\n        this.reset(newVersion)\r\n      }\r\n    })\r\n  }\r\n\r\n  handleToolbarEvent(event) {\r\n    console.log('toolbar')\r\n    \r\n    const pageElement = $refs.page.$el.children[0]\r\n    pageElement.dispatchEvent(new CustomEvent('toolbar', {\r\n      detail: event\r\n    }))\r\n\r\n    if (event === 'reset') {\r\n      this.reset()\r\n    }\r\n  }\r\n\r\n  async reset() {\r\n    await Aeppic.nextRenderPass()\r\n    locals.selected = await Aeppic.edit(document)\r\n  }\r\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-07-07T11:16:56+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","from":"","client":"server"},"modified":{"at":"2021-11-03T15:47:19+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1635954439520,"ct":1625656616711,"a_depth":4,"a":["apps","cf914a7f-ff5f-4598-80f1-63c9129e0a71","d69a62e9-a61f-42bf-9ae9-7983b87bf587","cb2adf77-7636-41a7-9a16-1610b06fa91e"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"911fdb61-bd52-4060-9952-30f85144550a","v":"initial","p":"cb2adf77-7636-41a7-9a16-1610b06fa91e","f":{"id":"design-form","v":"0061789efb5c5c29","text":"Design"},"data":{"name":"kb-tree-outline","template":"<ae-design\r\n  v-for=\"section of data.sections\"\r\n  :document=\"section\"\r\n  name=\"kb-tree-outline\"></ae-design>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-07-07T11:16:56+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-07-07T11:16:56+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1625656616766,"ct":1625656616765,"a_depth":4,"a":["apps","cf914a7f-ff5f-4598-80f1-63c9129e0a71","d69a62e9-a61f-42bf-9ae9-7983b87bf587","cb2adf77-7636-41a7-9a16-1610b06fa91e"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"0c5f7a63-4c47-4323-a633-2931e303d13b","v":"170245adc65fe454","p":"fallback-designs","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"kb:editor-inline","template":"<!-- <span style=\"background:green;\">foo</span> -->\r\n<div class=\"_CSS-name ae-navigatable\" @click.stop=\"controller.show()\"  ref=\"document\">\r\n  <ae-design  name=\"icon\" :document=\"document\" style=\"margin-right: var(--ae-size-1)\"></ae-design>\r\n  <ae-design  name=\"title\" :document=\"document\"></ae-design>\r\n  <ae-icon v-if=\"!locals.isDocumentChildOfEmbeddedPage\" class=\"fa fa-external-link-square\" style=\"margin-left:2px;padding-left:2px;opacity:0.5\"></ae-icon>\r\n</div>\r\n\r\n<div ref=\"previewPopup\" >\r\n  <ae-design\r\n    name=\"editor-popup,popup,search-card,card,title\"\r\n    v-if=\"locals.showPopup\"\r\n    @selected=\"controller.show()\"\r\n    :document=\"document\"\r\n    style=\"color:var(--ae-background-800)\"></ae-design>\r\n</div>","css":"._CSS {\r\n  display:flex;\r\n}\r\n\r\n._CSS-name {\r\n  flex: 1;\r\n  display: flex;\r\n  align-items: center;\r\n  background: var(--ae-ui-background);\r\n  border: var(--ae-border-width) solid var(--ae-primary-900);\r\n  color: var(--ae-background-900);\r\n  border-radius: var(--ae-border-radius);\r\n  margin: 0 var(--ae-size-1); \r\n  padding: var(--ae-size-1) var(--ae-size-2);\r\n}\r\n\r\n","controller":"async init() {\r\n  const tippy = Aeppic.Modules.Tippy.default\r\n\r\n  this.FORMS = {\r\n    KnowledgeBase: '3fcebb78-e629-4d83-9844-1694370d9685',\r\n    Page: 'cb2adf77-7636-41a7-9a16-1610b06fa91e',\r\n  }\r\n\r\n  await Aeppic.nextRenderPass()\r\n\r\n  locals.isDocumentChildOfEmbeddedPage = (params.kbPageId === document.p)\r\n\r\n  this.popup = tippy($refs.document, {\r\n    content: $refs.previewPopup,\r\n    position: 'top-end',\r\n    arrow: false,\r\n    theme: 'no-frame',\r\n    delay: [0, 20],\r\n    interactive: true,\r\n    offset: [0,0],\r\n    onShow() {\r\n      locals.showPopup = true\r\n    },\r\n    onHidden() {\r\n      locals.showPopup = false\r\n    }\r\n  })\r\n}\r\n\r\ndestroy(){\r\n  if (this.popup) {\r\n    this.popup.destroy()\r\n  }\r\n}\r\n\r\nshow() {\r\n  if (this.isDocumentAPageInsideSameKb()) {\r\n    Aeppic.navigateTo(params.kbRoot, { 'detail': document.id })\r\n  } else {\r\n    Aeppic.drillInto(document.id, { mode: 'dialog' })\r\n  }\r\n}\r\n\r\nisDocumentAPageInsideSameKb() {\r\n  const kbRootId = params.kbRoot\r\n\r\n  if (!kbRootId) {\r\n    return false\r\n  }\r\n\r\n  if (document.f.id !== this.FORMS.Page) {\r\n    return false\r\n  }\r\n\r\n  const kbIndexInAncestry = document.a_forms.lastIndexOf(this.FORMS.KnowledgeBase)\r\n\r\n  if (kbIndexInAncestry < 0) {\r\n    return false\r\n  }\r\n\r\n  const kbId = document.a[kbIndexInAncestry]\r\n\r\n  return (kbId === kbRootId)\r\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-07-07T11:34:24+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","from":"","client":"server"},"modified":{"at":"2022-12-01T09:47:09+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720684627133,"ct":1720684627133,"a_depth":2,"a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"],"inheritedLocks":[null,null,null],"stamps":[],"previous":{"v":"ad4fade95ff80338","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"}},"meta":{"modified":{"at":"2024-07-11T09:57:07+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"fff73674-6380-47bd-b0a2-370b9ceb5b3f","v":"3161cffb9e8e4765","previous":{"v":"fcbd64c75fee4db7"},"p":"dbee6e16-d63a-493c-bba6-505f79918f9f","f":{"id":"design-form","v":"0061789efb5c5c29","text":"Design"},"data":{"name":"kb:editor-inline","template":"<div\r\n  class=\"_CSS-content ae-navigatable\"\r\n  :class=\"{ '_CSS-content--image' : controller.showAsImage }\"\r\n  @click.stop=\"controller.show()\"  \r\n  @contextmenu.stop.prevent=\"controller.showMenu($event)\"\r\n  ref=\"document\"\r\n  :style=\"controller.containerStyle\"\r\n> \r\n  <template v-if=\"controller.showAsImage\" >\r\n    <ae-design v-if=\"locals.widths.imageWidth === 'thumbnail'\" name=\"editor-preview,thumbnail\" :document=\"document\"></ae-design>\r\n    <ae-control v-else name=\"file-viewer\" :document=\"document\" field-name=\"datei\" :readonly=\"true\"></ae-control>\r\n    <ae-icon v-if=\"!locals.isDocumentChildOfEmbeddedPage\" class=\"fa fa-external-link-square _CSS-overlay\" ></ae-icon>\r\n    <button class=\"ae-button ae-button--small _CSS-content__button-expand\"\r\n            @click.stop=\"controller.show()\"\r\n            title=\"In Vollbild anzeigen\"\r\n    >\r\n      <ae-icon class=\"fa fa-expand-arrows-alt\"></ae-icon>\r\n    </button>\r\n  </template>\r\n  <template v-else-if=\"controller.showAsVideo\">\r\n    <ae-control @click.native.stop name=\"file-viewer\" :document=\"document\" field-name=\"datei\" :readonly=\"true\"></ae-control>\r\n    <button class=\"ae-button ae-button--small _CSS-content__button-expand\"\r\n            @click.stop=\"controller.show()\"\r\n            title=\"In Vollbild anzeigen\"\r\n    >\r\n      <ae-icon class=\"fa fa-expand-arrows-alt\"></ae-icon>\r\n    </button>\r\n    <!-- <ae-design  name=\"editor-preview,thumbnail\" :document=\"document\"></ae-design> -->\r\n    <!-- <ae-icon v-if=\"!locals.isDocumentChildOfEmbeddedPage\" class=\"fa fa-external-link-square _CSS-overlay\" ></ae-icon> -->\r\n  </template>\r\n  <template v-else>\r\n    <ae-design  name=\"icon\" :document=\"document\" style=\"margin-right: var(--ae-size-1)\"></ae-design>\r\n    <ae-design  name=\"title\" :document=\"document\"></ae-design>\r\n    <ae-icon v-if=\"!locals.isDocumentChildOfEmbeddedPage\" class=\"fa fa-external-link-square\" style=\"margin-left:2px;padding-left:2px;opacity:0.5\"></ae-icon>\r\n  </template>\r\n</div>\r\n\r\n<div ref=\"previewPopup\" >\r\n  <ae-design\r\n    name=\"editor-popup,popup,search-card,card,title\"\r\n    v-if=\"locals.showPopup\"\r\n    @selected=\"controller.show()\"\r\n    :document=\"document\"\r\n    style=\"color:var(--ae-background-800)\"></ae-design>\r\n</div>\r\n\r\n<div ref=\"menuImage\" class=\"_CSS-menu\" v-show=\"locals.isImage\">\r\n  <button @click=\"controller.showAs('imageWidth', 'thumbnail')\" :disabled=\"!controller.canShowAs('imageWidth', 'Thumbnail')\">Bild (Thumbnail)</button>\r\n  <button @click=\"controller.showAs('imageWidth', 'normal')\" :disabled=\"!controller.canShowAs('imageWidth', 'normal')\">Bild (normal)</button>\r\n  <button @click=\"controller.showAs('imageWidth', 'big')\" :disabled=\"!controller.canShowAs('imageWidth', 'big')\">Bild (groß)</button>\r\n  <button @click=\"controller.showAs('imageWidth', 'title')\" :disabled=\"!controller.canShowAs('imageWidth', 'title')\">Titel</button>\r\n</div>\r\n\r\n \r\n<div ref=\"menuVideo\" class=\"_CSS-menu\" v-show=\"locals.isVideo\">\r\n  <button @click=\"controller.showAs('videoWidth', 'normal')\" :disabled=\"!controller.canShowAs('videoWidth', 'normal')\">Video (normal)</button>\r\n  <button @click=\"controller.showAs('videoWidth', 'big')\" :disabled=\"!controller.canShowAs('videoWidth', 'big')\">Video (groß)</button>\r\n  <button @click=\"controller.showAs('videoWidth', 'title')\" :disabled=\"!controller.canShowAs('videoWidth', 'title')\">Titel</button>\r\n</div>","css":"._CSS {\r\n  display:flex;\r\n  width: 100%;\r\n}\r\n \r\n._CSS-content {\r\n  flex: 1;\r\n  display: flex;\r\n  align-items: center;\r\n  background: var(--ae-ui-background);\r\n  border: var(--ae-border-width) solid var(--ae-primary-900);\r\n  color: var(--ae-background-900);\r\n  border-radius: var(--ae-border-radius);\r\n  margin: var(--ae-size-1); \r\n  padding: var(--ae-size-1) var(--ae-size-2);\r\n  overflow: hidden;\r\n}\r\n\r\n._CSS-content ._CSS-content__button-expand {\r\n  position: absolute;\r\n  right: var(--ae-space-1);\r\n  top: var(--ae-space-1);\r\n\r\n  background: var(--ae-ui-background);\r\n}\r\n\r\n._CSS-content._CSS-content--image {\r\n  margin: var(--ae-size-1) 0;\r\n  padding: 2px;\r\n  position: relative;\r\n  overflow: hidden;\r\n  color:grey;\r\n  box-shadow: var(--ae-shadow-2);\r\n}\r\n\r\n._CSS-overlay {\r\n  position: absolute;\r\n  top:4px;\r\n  right:4px;\r\n  margin-left:2px;\r\n  padding-left:2px;\r\n}\r\n\r\n._CSS-content._CSS-content--image-full {\r\n  // border: var(--ae-border-width) solid var(--ae-primary-900);\r\n  // color: var(--ae-background-900);\r\n  // border-radius: var(--ae-border-radius);\r\n  // margin: 0; \r\n  // padding: 0;\r\n}\r\n\r\n._CSS-menu {\r\n  padding:0;\r\n  margin:0;\r\n  display:flex;\r\n  flex-direction: column;\r\n  background: rgba(0,0,0,0.55);\r\n  box-shadow: rgb(0 0 0 / 30%) 4px 4px 15px;\r\n  backdrop-filter: blur(20px);\r\n  border-radius:  var(--ae-border-radius);\r\n  overflow: hidden;\r\n}\r\n\r\n._CSS-menu > button {\r\n  color: white;\r\n  border: none;\r\n  background: none;\r\n  border-radius: 0;\r\n  padding: 0.2em 1em 0.2em 1em;\r\n  min-width: 8em;\r\n  text-align: left;\r\n}\r\n\r\n._CSS-menu > button:hover {\r\n  background: rgba(170,170,170,0.45);\r\n  }\r\n\r\n._CSS-menu > button:disabled {\r\n  opacity:0.5;\r\n}\r\n","controller":"class Controller {\r\n  async init() {\r\n    const tippy = Aeppic.Modules.Tippy.default\r\n\r\n    this.FORMS = {\r\n      KnowledgeBase: '3fcebb78-e629-4d83-9844-1694370d9685',\r\n      Page: 'cb2adf77-7636-41a7-9a16-1610b06fa91e',\r\n    }\r\n    this.menus = []\r\n    this.popup = null\r\n    this.sizeByWidth = {\r\n      normal: { width: '40vw', height: '20vw' },\r\n      big: { width: '60vw', height: '30vw' },\r\n    }\r\n\r\n    locals.isDocumentChildOfEmbeddedPage = null\r\n\r\n    const viewState = params.persistedViewState ? JSON.parse(params.persistedViewState) : {}\r\n\r\n    locals.widths = {\r\n      imageWidth: viewState.imageWidth || 'normal',\r\n      videoWidth: viewState.videoWidth || 'normal',\r\n    }\r\n\r\n    locals.isImage = data.datei?.type?.startsWith('image/')\r\n    locals.isVideo = data.datei?.type?.startsWith('video/')\r\n\r\n    Aeppic.watchRevisions(document, (changedDocument) => {\r\n      locals.isImage = changedDocument.data.datei?.type?.startsWith('image/')\r\n      locals.isVideo = changedDocument.data.datei?.type?.startsWith('video/')\r\n    }) \r\n\r\n    await Aeppic.nextRenderPass()\r\n\r\n    // if (locals.isImage || locals.isVideo) {\r\n      this.menus = this.buildMenu()\r\n    // }\r\n\r\n    locals.isDocumentChildOfEmbeddedPage = (params.kbPageId === document.p)\r\n\r\n    this.popup = tippy($refs.document, {\r\n      content: $refs.previewPopup,\r\n      position: 'top-end',\r\n      arrow: false,\r\n      theme: 'no-frame',\r\n      delay: [0, 20],\r\n      boundary: params.editorBoundary,\r\n      interactive: true,\r\n      offset: [0,0],\r\n      onShow() {\r\n        if (locals.isImage && locals.widths.imageWidth === 'title') { \r\n          locals.showPopup = true\r\n        }\r\n      },\r\n      onHidden() {\r\n        locals.showPopup = false\r\n      }\r\n    })\r\n  }\r\n\r\n  get showAsImage() {\r\n    return locals.isImage && locals.widths.imageWidth !== 'title'\r\n  }\r\n\r\n  get showAsVideo() {\r\n    return locals.isVideo && locals.widths.videoWidth !== 'title'\r\n  }\r\n\r\n  get containerStyle() {\r\n    if (this.showAsVideo) {\r\n      const size = this.sizeByWidth[locals.widths.videoWidth]\r\n      return size\r\n    }\r\n\r\n     if (this.showAsImage) {\r\n      const size = this.sizeByWidth[locals.widths.imageWidth]\r\n      return size\r\n    }\r\n\r\n    return null\r\n  }\r\n\r\n  show() {\r\n    if (this.isDocumentAPageInsideSameKb()) {\r\n      Aeppic.navigateTo(params.kbRoot, { 'detail': document.id })\r\n    } else {\r\n      Aeppic.drillInto(document.id, { mode: 'dialog' })\r\n    }\r\n  }\r\n\r\n  isDocumentAPageInsideSameKb() {\r\n    const kbRootId = params.kbRoot \r\n\r\n    if (!kbRootId) {\r\n      return false\r\n    }\r\n\r\n    if (document.f.id !== this.FORMS.Page) {\r\n      return false\r\n    }\r\n\r\n    const kbIndexInAncestry = document.a_forms.lastIndexOf(this.FORMS.KnowledgeBase)\r\n\r\n    if (kbIndexInAncestry < 0) {\r\n      return false\r\n    }\r\n\r\n    const kbId = document.a[kbIndexInAncestry]\r\n\r\n    return (kbId === kbRootId)\r\n  }\r\n\r\n  buildMenu() {\r\n    const tippy = Aeppic.Modules.Tippy.default\r\n\r\n    const menus = {}\r\n\r\n    menus.image = tippy($refs.document, {\r\n      content: $refs.menuImage,\r\n      position: 'bottom',\r\n      placement: 'right-start',\r\n      theme: 'no-frame',\r\n      arrow: false,\r\n      delay: [0, 200],\r\n      boundary: params.editorBoundary,\r\n      interactive: true,\r\n      // showOnCreate: true,\r\n      trigger: 'manual',\r\n      offset: [0,0],\r\n    })\r\n\r\n    menus.video = tippy($refs.document, {\r\n      content: $refs.menuVideo,\r\n      position: 'bottom',\r\n      placement: 'right-start',\r\n      theme: 'no-frame',\r\n      arrow: false,\r\n      delay: [0, 200],\r\n      boundary: params.editorBoundary,\r\n      interactive: true,\r\n      // showOnCreate: true,\r\n      trigger: 'manual',\r\n      offset: [0,0],\r\n    })\r\n\r\n    return menus\r\n  }\r\n\r\n  showMenu(event) {\r\n    const menu = locals.isImage ? this.menus.image : (locals.isVideo ? this.menus.video : null)\r\n\r\n    if (!menu) {\r\n      return\r\n    }\r\n    \r\n    menu.setProps({\r\n      getReferenceClientRect: () => ({\r\n        width: 0,\r\n        height: 0,\r\n        top: event.clientY,\r\n        bottom: event.clientY,\r\n        left: event.clientX,\r\n        right: event.clientX,\r\n      }),\r\n    });\r\n\r\n    menu.show()\r\n  }\r\n\r\n  canShowAs(widthType, mode) {\r\n    return (locals.widths[widthType] !== mode)\r\n  }\r\n\r\n  showAs(widthType, mode) {\r\n    if (!this.canShowAs(locals.widths[widthType], mode)) {\r\n      return\r\n    }\r\n    \r\n    locals.widths[widthType] = mode\r\n\r\n    $emit('persistedViewStateChanged', locals.widths)\r\n  }\r\n\r\n  destroy(){\r\n    if (this.popup) {\r\n      this.popup.destroy()\r\n    }\r\n  }\r\n}\r\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-11-04T10:24:52+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","from":"","client":"server"},"modified":{"at":"2022-12-01T11:09:21+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1669892961507,"ct":1636021492715,"a_depth":4,"a":["apps","45ada186-e9fd-451d-9dbd-2defc0b4f86f","4ec6a0e5-cf2d-4095-9b70-2e31a64d5679","dbee6e16-d63a-493c-bba6-505f79918f9f"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"50813b1a-28fe-42fe-b138-724a8074cfeb","v":"initial","p":"fb9f3c56-8bcf-43d4-a0d7-2a303791e90a","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"labels","template":"<div @click.stop.prevent=\"\" style=\"display:flex;align-items:center;\">\r\n<span>Tablet&nbsp;</span>\r\n<ae-control\r\n  name=\"manufacturing:label\"\r\n  :document=\"document\"\r\n  field-name=\"tabletLabel\"\r\n  param-name=\"Label_Tablet_$Serial$.ezpx\"\r\n  param-template=\"c200292c-8506-4409-b4a5-e59c819ef273\"\r\n  param-replace-serial=\"tabletSerialNumber\"\r\n  >\r\n</ae-control>\r\n</div>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-11-02T09:38:40+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-11-02T09:38:40+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1635845920255,"ct":1635845920255,"a_depth":4,"a":["apps","781ff5de-69db-49dc-99f0-f328b308cd7d","dbd0bd68-3479-4032-9303-9d51615c27a7","fb9f3c56-8bcf-43d4-a0d7-2a303791e90a"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"83e2e8af-8d46-4684-aea6-e933826608cd","v":"b0a247e2bb838764","previous":{"v":"c72f58263e6370ee"},"p":"8b64a4e4-bcc0-4080-9913-bc973143abd9","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"language-flag","applies":"","template":"<!-- Flags taken from https://github.com/lipis/flag-icon-css -->\n<div v-for=\"translationDocument in [document].concat(locals.translations)\" v-if=\"translationDocument\">\n  <template v-if=\"translationDocument.data.language === 'de'\">\n    <svg xmlns=\"http://www.w3.org/2000/svg\" id=\"flag-icon-css-de\" width=\"16\" height=\"12\" viewBox=\"0 0 640 480\">\n      <path fill=\"#ffce00\" d=\"M0 320h640v160H0z\"/>\n      <path d=\"M0 0h640v160H0z\"/>\n      <path fill=\"#d00\" d=\"M0 160h640v160H0z\"/>\n    </svg>\n  </template>\n  <template v-else-if=\"translationDocument.data.language === 'en'\">\n    <svg xmlns=\"http://www.w3.org/2000/svg\" id=\"flag-icon-css-us\" width=\"16\" height=\"12\" viewBox=\"0 0 640 480\">\n      <g fill-rule=\"evenodd\">\n        <g stroke-width=\"1pt\">\n          <path fill=\"#bd3d44\" d=\"M0 0h972.8v39.4H0zm0 78.8h972.8v39.4H0zm0 78.7h972.8V197H0zm0 78.8h972.8v39.4H0zm0 78.8h972.8v39.4H0zm0 78.7h972.8v39.4H0zm0 78.8h972.8V512H0z\" transform=\"scale(.9375)\"/>\n          <path fill=\"#fff\" d=\"M0 39.4h972.8v39.4H0zm0 78.8h972.8v39.3H0zm0 78.7h972.8v39.4H0zm0 78.8h972.8v39.4H0zm0 78.8h972.8v39.4H0zm0 78.7h972.8v39.4H0z\" transform=\"scale(.9375)\"/>\n        </g>\n        <path fill=\"#192f5d\" d=\"M0 0h389.1v275.7H0z\" transform=\"scale(.9375)\"/>\n        <path fill=\"#fff\" d=\"M32.4 11.8L36 22.7h11.4l-9.2 6.7 3.5 11-9.3-6.8-9.2 6.7 3.5-10.9-9.3-6.7H29zm64.9 0l3.5 10.9h11.5l-9.3 6.7 3.5 11-9.2-6.8-9.3 6.7 3.5-10.9-9.2-6.7h11.4zm64.8 0l3.6 10.9H177l-9.2 6.7 3.5 11-9.3-6.8-9.2 6.7 3.5-10.9-9.3-6.7h11.5zm64.9 0l3.5 10.9H242l-9.3 6.7 3.6 11-9.3-6.8-9.3 6.7 3.6-10.9-9.3-6.7h11.4zm64.8 0l3.6 10.9h11.4l-9.2 6.7 3.5 11-9.3-6.8-9.2 6.7 3.5-10.9-9.2-6.7h11.4zm64.9 0l3.5 10.9h11.5l-9.3 6.7 3.6 11-9.3-6.8-9.3 6.7 3.6-10.9-9.3-6.7h11.5zM64.9 39.4l3.5 10.9h11.5L70.6 57 74 67.9 65 61.2l-9.3 6.7L59 57 50 50.3h11.4zm64.8 0l3.6 10.9h11.4l-9.3 6.7 3.6 10.9-9.3-6.7-9.3 6.7L124 57l-9.3-6.7h11.5zm64.9 0l3.5 10.9h11.5l-9.3 6.7 3.5 10.9-9.2-6.7-9.3 6.7 3.5-10.9-9.2-6.7H191zm64.8 0l3.6 10.9h11.4l-9.3 6.7 3.6 10.9-9.3-6.7-9.2 6.7 3.5-10.9-9.3-6.7H256zm64.9 0l3.5 10.9h11.5L330 57l3.5 10.9-9.2-6.7-9.3 6.7 3.5-10.9-9.2-6.7h11.4zM32.4 66.9L36 78h11.4l-9.2 6.7 3.5 10.9-9.3-6.8-9.2 6.8 3.5-11-9.3-6.7H29zm64.9 0l3.5 11h11.5l-9.3 6.7 3.5 10.9-9.2-6.8-9.3 6.8 3.5-11-9.2-6.7h11.4zm64.8 0l3.6 11H177l-9.2 6.7 3.5 10.9-9.3-6.8-9.2 6.8 3.5-11-9.3-6.7h11.5zm64.9 0l3.5 11H242l-9.3 6.7 3.6 10.9-9.3-6.8-9.3 6.8 3.6-11-9.3-6.7h11.4zm64.8 0l3.6 11h11.4l-9.2 6.7 3.5 10.9-9.3-6.8-9.2 6.8 3.5-11-9.2-6.7h11.4zm64.9 0l3.5 11h11.5l-9.3 6.7 3.6 10.9-9.3-6.8-9.3 6.8 3.6-11-9.3-6.7h11.5zM64.9 94.5l3.5 10.9h11.5l-9.3 6.7 3.5 11-9.2-6.8-9.3 6.7 3.5-10.9-9.2-6.7h11.4zm64.8 0l3.6 10.9h11.4l-9.3 6.7 3.6 11-9.3-6.8-9.3 6.7 3.6-10.9-9.3-6.7h11.5zm64.9 0l3.5 10.9h11.5l-9.3 6.7 3.5 11-9.2-6.8-9.3 6.7 3.5-10.9-9.2-6.7H191zm64.8 0l3.6 10.9h11.4l-9.2 6.7 3.5 11-9.3-6.8-9.2 6.7 3.5-10.9-9.3-6.7H256zm64.9 0l3.5 10.9h11.5l-9.3 6.7 3.5 11-9.2-6.8-9.3 6.7 3.5-10.9-9.2-6.7h11.4zM32.4 122.1L36 133h11.4l-9.2 6.7 3.5 11-9.3-6.8-9.2 6.7 3.5-10.9-9.3-6.7H29zm64.9 0l3.5 10.9h11.5l-9.3 6.7 3.5 10.9-9.2-6.7-9.3 6.7 3.5-10.9-9.2-6.7h11.4zm64.8 0l3.6 10.9H177l-9.2 6.7 3.5 11-9.3-6.8-9.2 6.7 3.5-10.9-9.3-6.7h11.5zm64.9 0l3.5 10.9H242l-9.3 6.7 3.6 11-9.3-6.8-9.3 6.7 3.6-10.9-9.3-6.7h11.4zm64.8 0l3.6 10.9h11.4l-9.2 6.7 3.5 11-9.3-6.8-9.2 6.7 3.5-10.9-9.2-6.7h11.4zm64.9 0l3.5 10.9h11.5l-9.3 6.7 3.6 11-9.3-6.8-9.3 6.7 3.6-10.9-9.3-6.7h11.5zM64.9 149.7l3.5 10.9h11.5l-9.3 6.7 3.5 10.9-9.2-6.8-9.3 6.8 3.5-11-9.2-6.7h11.4zm64.8 0l3.6 10.9h11.4l-9.3 6.7 3.6 10.9-9.3-6.8-9.3 6.8 3.6-11-9.3-6.7h11.5zm64.9 0l3.5 10.9h11.5l-9.3 6.7 3.5 10.9-9.2-6.8-9.3 6.8 3.5-11-9.2-6.7H191zm64.8 0l3.6 10.9h11.4l-9.2 6.7 3.5 10.9-9.3-6.8-9.2 6.8 3.5-11-9.3-6.7H256zm64.9 0l3.5 10.9h11.5l-9.3 6.7 3.5 10.9-9.2-6.8-9.3 6.8 3.5-11-9.2-6.7h11.4zM32.4 177.2l3.6 11h11.4l-9.2 6.7 3.5 10.8-9.3-6.7-9.2 6.7 3.5-10.9-9.3-6.7H29zm64.9 0l3.5 11h11.5l-9.3 6.7 3.6 10.8-9.3-6.7-9.3 6.7 3.6-10.9-9.3-6.7h11.4zm64.8 0l3.6 11H177l-9.2 6.7 3.5 10.8-9.3-6.7-9.2 6.7 3.5-10.9-9.3-6.7h11.5zm64.9 0l3.5 11H242l-9.3 6.7 3.6 10.8-9.3-6.7-9.3 6.7 3.6-10.9-9.3-6.7h11.4zm64.8 0l3.6 11h11.4l-9.2 6.7 3.5 10.8-9.3-6.7-9.2 6.7 3.5-10.9-9.2-6.7h11.4zm64.9 0l3.5 11h11.5l-9.3 6.7 3.6 10.8-9.3-6.7-9.3 6.7 3.6-10.9-9.3-6.7h11.5zM64.9 204.8l3.5 10.9h11.5l-9.3 6.7 3.5 11-9.2-6.8-9.3 6.7 3.5-10.9-9.2-6.7h11.4zm64.8 0l3.6 10.9h11.4l-9.3 6.7 3.6 11-9.3-6.8-9.3 6.7 3.6-10.9-9.3-6.7h11.5zm64.9 0l3.5 10.9h11.5l-9.3 6.7 3.5 11-9.2-6.8-9.3 6.7 3.5-10.9-9.2-6.7H191zm64.8 0l3.6 10.9h11.4l-9.2 6.7 3.5 11-9.3-6.8-9.2 6.7 3.5-10.9-9.3-6.7H256zm64.9 0l3.5 10.9h11.5l-9.3 6.7 3.5 11-9.2-6.8-9.3 6.7 3.5-10.9-9.2-6.7h11.4zM32.4 232.4l3.6 10.9h11.4l-9.2 6.7 3.5 10.9-9.3-6.7-9.2 6.7 3.5-11-9.3-6.7H29zm64.9 0l3.5 10.9h11.5L103 250l3.6 10.9-9.3-6.7-9.3 6.7 3.6-11-9.3-6.7h11.4zm64.8 0l3.6 10.9H177L168 250l3.5 10.9-9.3-6.7-9.2 6.7 3.5-11-9.3-6.7h11.5zm64.9 0l3.5 10.9H242l-9.3 6.7 3.6 10.9-9.3-6.7-9.3 6.7 3.6-11-9.3-6.7h11.4zm64.8 0l3.6 10.9h11.4l-9.2 6.7 3.5 10.9-9.3-6.7-9.2 6.7 3.5-11-9.2-6.7h11.4zm64.9 0l3.5 10.9h11.5l-9.3 6.7 3.6 10.9-9.3-6.7-9.3 6.7 3.6-11-9.3-6.7h11.5z\" transform=\"scale(.9375)\"/>\n      </g>\n    </svg>\n  </template>\n  <div v-else=\"translationDocument.data.language\" title=\"Unbekannt\">\n    <ae-icon class=\"fa fa-flag\"></ae-icon>\n    <span v-if=\"translationDocument.data.language\">({{ translationDocument.data.language }})</span>\n  </div>\n</div>   \n","css":"/* ._CSS {\n  display: flex;\n  justify-content: center;\n  align-items: center;\n} */\n\n._CSS {\n  margin: 0 1rem;\n  display: grid;\n  grid-auto-columns: max-content;\n  grid-auto-flow: column;\n  grid-gap: 1rem;\n}","controller":"class Controller {\n  async init() {\n    locals.translations = []\n    Aeppic.subscribe(`p:${document.id} f.id:${document.f.id}`, translations => locals.translations = translations)\n  }\n}","packages":[]},"locks":[],"created":{"at":"2018-05-25T10:47:06+00:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","from":"","client":"server"},"modified":{"at":"2020-10-13T10:11:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1602583892200,"ct":1527245226478,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","8b64a4e4-bcc0-4080-9913-bc973143abd9"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"15d44024-7b00-498c-b875-eac974178e23","v":"d8ca497aa61e7a86","p":"9ae84206-e0bb-4d39-9200-066c2eaf0fe3","f":{"id":"design-form","v":"22a757f630104010","text":"Design"},"data":{"name":"line","template":"<ae-design\n  v-for=\"vm of data.vertriebsMitarbeiter\"\n  :document-id=\"vm.id\" name=\"avatar--tiny\"></ae-design>\n<strong>{{data.name}}</strong>\n<span style=\"flex:1\"></span>\n","css":"._CSS {\n  display: flex;\n  flex-direction: row;\n  align-items: center;\n  gap: 8px;\n}","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-03-08T11:28:46+00:00","by":"427610a9-39dc-4014-9176-5f72aeb23263","from":"","client":"server"},"modified":{"at":"2023-03-08T11:57:15+00:00","by":"427610a9-39dc-4014-9176-5f72aeb23263","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1721206352360,"ct":1721206352360,"a_depth":4,"a":["apps","deeef973-ce03-4557-bf75-75a059001767","e7de598c-6f5a-4ab4-a33b-213ca86e489d","9ae84206-e0bb-4d39-9200-066c2eaf0fe3"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[],"previous":{"v":"4335f96a7659dd85","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"}},"meta":{"modified":{"at":"2024-07-17T08:52:32+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"396a119f-5ee6-4bc1-b8fa-ea153baae5e7","v":"initial","p":"cad45fd2-d641-4ff8-b38c-342e53533a23","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"line","template":"<dl>\r\n  <dt>Scanned At</dt>\r\n  <dd>{{DateTime.fromISO(document.created.at).toLocaleString(DateTime.DATETIME_MED)}}</dd>\r\n  <template v-for=\"component of data.components\">\r\n    <dt >{{ component.text }}</dt>\r\n    <dd>\r\n      <ae-design name=\"overview-line,line\" :document-id=\"component.id\"></ae-design>\r\n    </dd>\r\n  </template>\r\n</dl>\r\n    \r\n    <!-- <dt>Definition</dt>\r\n  <dd>  \r\n    <ae-design name=\"line\" :document-id=\"data.definition.id\"></ae-design>\r\n  </dd> -->\r\n  ","css":"._CSS {\r\n  border: 1px solid lightgray;\r\n  padding: 4px;\r\n  background: var(--ae-ui-background);\r\n  display: flex;\r\n}\r\n\r\n._CSS + ._CSS {\r\n  margin-top: 8px;\r\n}\r\n\r\n._CSS dl {\r\n  display: grid;\r\n  margin-left: 1em;\r\n  grid-template-columns: auto auto;\r\n  grid-gap: 8px;\r\n  align-items: center; \r\n}\r\n\r\n._CSS dt {\r\n  text-align: right;\r\n  font-size: smaller;\r\n}\r\n\r\n._CSS dd {\r\n  text-align: left;\r\n  font-weight: bold;\r\n}","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-11-02T09:38:38+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-11-02T09:38:38+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1635845918539,"ct":1635845918539,"a_depth":4,"a":["apps","781ff5de-69db-49dc-99f0-f328b308cd7d","dbd0bd68-3479-4032-9303-9d51615c27a7","cad45fd2-d641-4ff8-b38c-342e53533a23"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"66a56661-9215-4201-a8f6-b60e21c525e9","v":"fd2e58769007de50","cloneOf":{"id":"439ca9a4-6b74-4e7b-b74a-eeb5195cea77","v":"67750ea737974746","text":"board-card"},"originalCloneOf":{"id":"439ca9a4-6b74-4e7b-b74a-eeb5195cea77","v":"67750ea737974746","text":"board-card"},"previous":{"v":"038e302874d27373"},"p":"0deb4864-cbb6-420c-99ee-337c7444ab24","f":{"id":"design-form","v":"24435d748c76f819","text":"Design"},"data":{"name":"line","template":"<div  class=\"_CSS-line bp-card--bordered bg-white\" \r\n      :class=\"{ '_CSS-line--done': data.erledigt }\"\r\n      @click.stop=\"$emit('selected', document)\"\r\n>\r\n    <div class=\"_CSS-top\">\r\n        <div class=\"_CSS-top__text _CSS-boards-text--multilineOverflow\">\r\n            <ae-design name=\"title\" :document=\"document\"></ae-design>\r\n        </div>\r\n\r\n        <div class=\"_CSS-line-img--wrapper\" v-if=\"data.verantwortlich && data.verantwortlich.length\">\r\n            <ae-design title=\"Verantwortliche\" class=\"_CSS-line-img\" name=\"avatar--tiny\"\r\n                :document-id=\"data.verantwortlich[0].id\"></ae-design>\r\n            <ae-design class=\"_CSS-line-img\" v-if=\"data.verantwortlich.length === 2\" name=\"avatar--tiny\"\r\n                :document-id=\"data.verantwortlich[1].id\"></ae-design>\r\n\r\n            <div :title=\"locals.tooltipWeitereVerantwortliche\">\r\n                <ae-design class=\"_CSS-line-img\" v-if=\"data.verantwortlich.length > 2\" name=\"avatar--tiny\"\r\n                    :document-id=\"data.verantwortlich[1].id\"\r\n                    :param-overwrite-display-with=\"'+' + (data.verantwortlich.length - 1)\"\r\n                    :title=\"locals.tooltipWeitereVerantwortliche\"></ae-design>\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    <div class=\"_CSS-bottom\">\r\n        <div v-if=\"data.bisStart\" class=\"_CSS-bottom__date\">\r\n            {{controller.date}}\r\n        </div>\r\n\r\n        <div v-if=\"data.bisStart\" :style=\"[Aeppic.DateTime.fromISO(data.bisStart).diffNow('days').days < 0 ? {color: 'var(--ae-accent-red-600)'} : {color: 'var(--ae-accent-green-600)'}]\"\r\n            class=\"_CSS-bottom__timespan\">\r\n            {{controller.remnantDurration}}\r\n        </div>\r\n\r\n        <div class=\"_CSS-labels\">\r\n          <ae-design class=\"_CSS-label\" v-for=\"label of data.labels\" :document-id=\"label.id\" name=\"colored-pill\" param-field-name=\"farbe\"></ae-design>\r\n        </div>\r\n\r\n        <div style=\"flex:1\"></div>\r\n\r\n        <div title=\"Anhänge\">\r\n            <ae-icon class=\"fal fa-paperclip _CSS-bottom__icon\" v-if=\"data.anhaenge.length\"></ae-icon>\r\n        </div>\r\n        <div title=\"Kommentare\">\r\n            <ae-icon class=\"fal fa-comment _CSS-bottom__icon\" v-if=\"locals.comments.length > 0\"></ae-icon>\r\n        </div>\r\n        <div :title=\"'Erfasste Zeit ' + locals.readableDuration\" v-if=\"locals.duration\">\r\n            <ae-icon class=\"fal fa-clock _CSS-bottom__icon\"></ae-icon> {{ locals.readableDuration }}\r\n        </div>\r\n\r\n        <template v-if=\"data.prioritaet\">\r\n            <div title=\"Hohe Priorität\" v-if=\"data.prioritaet === 3\">\r\n                <ae-icon class=\"fal fa-arrow-circle-up _CSS-bottom__icon\"></ae-icon>\r\n            </div>\r\n            <div title=\"Mittlere Priorität\" v-else-if=\"data.prioritaet === 2\">\r\n                <ae-icon class=\"fal fa-circle _CSS-bottom__icon\"></ae-icon>\r\n            </div>\r\n            <div title=\"Niedrige Priorität\" v-else-if=\"data.prioritaet === 1\">\r\n                <ae-icon class=\"fal fa-arrow-circle-down _CSS-bottom__icon\"></ae-icon>\r\n            </div>\r\n        </template>\r\n    </div>\r\n    <ae-design class=\"_CSS-path\" name=\"path\" :document=\"document\"></ae-design>\r\n</div>","css":"._CSS-line {\r\n  overflow: hidden;\r\n  min-width: 0;\r\n  padding: var(--ae-size-1) var(--ae-size-2);\r\n\r\n  display: flex;\r\n  flex-flow: column;\r\n}\r\n\r\n._CSS-line--done {\r\n  color: var(--ae-background-300);\r\n}\r\n\r\n._CSS-line-img--wrapper{\r\n  display: flex;\r\n}\r\n\r\n._CSS-top {\r\n  display: flex;\r\n  padding-bottom: var(--ae-size-1);   \r\n}\r\n\r\n._CSS-top__text {\r\n  flex-grow: 1; \r\n  min-width: 0;\r\n}\r\n\r\n._CSS-bottom {\r\n  flex-flow: row;\r\n  display: flex;\r\n  align-items: baseline;\r\n  justify-content: flex-end;\r\n  margin-top: var(--ae-size-1);  \r\n  font-size: var(--ae-font-size-2);\r\n}\r\n\r\n._CSS-bottom__date {\r\n  margin-right: var(--ae-size-1); \r\n}\r\n\r\n._CSS-bottom__timespan {\r\n  font-size: var(--ae-font-size-2);\r\n  xflex-grow:3; \r\n  xmargin-top: var(--ae-size-1);\r\n}\r\n\r\n._CSS-bottom__img{                              \r\n  xmargin: 2px;\r\n}\r\n\r\n._CSS-bottom__icon {\r\n  margin-right: 2px;\r\n  font-size: var(--ae-size-3);\r\n}\r\n\r\n._CSS-labels {\r\n  display: flex;\r\n  align-items: center;\r\n  overflow: hidden;\r\n  padding: 0 2px;\r\n}\r\n\r\n._CSS-label~._CSS-label {\r\n  margin-left: var(--ae-space-1);\r\n}\r\n\r\n\r\n._CSS-path {\r\n  margin-top: var(--ae-space-1);\r\n  font-size: var(--ae-font-size-2);\r\n  color: var(--ae-background-700);\r\n}\r\n","controller":"class Controller {\r\n  async init() {\r\n    locals.comments = []\r\n    locals.tooltipWeitereVerantwortliche = ''\r\n\r\n    locals.readableDuration = ''\r\n    locals.duration = 0\r\n\r\n    locals.tooltipWeitereVerantwortliche = await this.updateWeitereVerantwortliche()\r\n    this.subscribeComments()\r\n\r\n    Aeppic.subscribeQuery('dd148098-bd15-4baa-a4ce-df14e495c629', document.id, (documents) => {\r\n      const { readable, millis } = this.totalDuration(documents)\r\n      locals.readableDuration = readable\r\n      locals.duration = millis\r\n    }) \r\n  }\r\n\r\n  async updateWeitereVerantwortliche() {\r\n      if (!data || !data.verantwortlich || data.verantwortlich.length <= 1) {\r\n        return ''\r\n      }\r\n\r\n      const others = data.verantwortlich.slice(1)\r\n      let title = '' \r\n      \r\n      for (const other of others) {\r\n        const va = await Aeppic.get(other)\r\n\r\n        if (title.length > 0) {\r\n          title += '\\n'\r\n        }\r\n\r\n        if (va && va.data.name) {\r\n          title += `${va.data.name}`\r\n        } else {\r\n          title += `Unbenannt`\r\n        }\r\n      }\r\n  \r\n      return title\r\n  }\r\n\r\n  subscribeComments() {\r\n    Aeppic.subscribe(`p:${document.id} f.id:cf155969-ede1-43a4-9b10-3a697b19db91`, async (documents)=>{\r\n      locals.comments = documents\r\n      // locals.comments.sort((a,b) => this.sortComment(a,b))\r\n\r\n      // const all = await Aeppic.getAll(locals.comments.map(c => c.modified.by))  \r\n      // const allSortedBackwards = all.reverse()\r\n      // const unique = allSortedBackwards.reduce((x, y) => x.findIndex(e=>e != null && y != null && e.id==y.id)<0 ? [...x, y]: x, [])\r\n \r\n      // locals.commenters = unique\r\n      // // locals.commenters.push(...all, ...all)\r\n      // locals.commentersOverflow = []\r\n\r\n      // const LIMIT = 5\r\n      \r\n      // if (locals.commenters.length > LIMIT) {\r\n      //   locals.commentersOverflow = locals.commenters.splice(LIMIT, locals.commenters.length - LIMIT)\r\n      // }\r\n    })\r\n  }\r\n\r\n  get date() {\r\n    if (!data.bisStart) {\r\n      return ''\r\n    }\r\n\r\n    const date = DateTime.fromISO(data.bisStart)\r\n\r\n    const diff = date.diffNow('days').days\r\n\r\n    if (diff >= -1 && diff < 0) {\r\n      return 'Heute'\r\n    }\r\n     \r\n    return Aeppic.DateTime.fromISO(data.bisStart).toLocaleString(Aeppic.DateTime.DATE_SHORT)\r\n  }\r\n\r\n  get remnantDurration() {\r\n    if (!data.bisStart) {\r\n      return ''\r\n    }\r\n\r\n    const durationFromToday = Aeppic.DateTime.fromISO(data.bisStart).diffNow('days')\r\n\r\n    const differenceCharacter = durationFromToday.days > 0 ? '+' : ''   \r\n\r\n    if (durationFromToday.days >= -1 && durationFromToday.days < 0) { \r\n      return ''\r\n    }\r\n\r\n    if ((durationFromToday.days < -1 && durationFromToday.days > -2) || (durationFromToday.days > 0 && durationFromToday.days < 1)) {\r\n      return differenceCharacter + Math.ceil(durationFromToday.days) + ' Tag'\r\n    }\r\n   \r\n    return differenceCharacter + Math.ceil(durationFromToday.days) + ' Tage'\r\n  }\r\n\r\n  \r\n  totalDuration(trackings) {\r\n    const duration = trackings.reduce((prev, cur) => {\r\n      if (prev) {\r\n        return Aeppic.DateTimeDuration.fromObject(cur.data.dauer).plus(prev)\r\n      }\r\n\r\n      return Aeppic.DateTimeDuration.fromObject(cur.data.dauer)\r\n    }, null)\r\n\r\n    if (duration) {\r\n      return { readable: duration.toFormat('hh:mm'), millis: duration.valueOf() }\r\n    }\r\n\r\n    return {}\r\n  }\r\n\r\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-10-11T09:02:42+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-05-25T09:26:56+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1653470816044,"ct":1633942962519,"a_depth":4,"a":["apps","59edbdbc-2cab-426a-bb42-6e57c5158e4f","3be7e887-1bcd-4c3c-979f-b20a986c4c48","0deb4864-cbb6-420c-99ee-337c7444ab24"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"8551f4cc-4e67-44a1-8cde-9c8790388dc0","v":"2dca9f0345e60539","previous":{"v":"8fbc3145670eb61c"},"p":"53eecc66-c1a1-47da-b9df-67cc2b8b60f5","f":{"id":"design-form","v":"0061789efb5c5c29","text":"Design"},"data":{"name":"line","template":"<ae-design name=\"ref-card\" :document=\"document\" :params=\"params\" :param-readonly=\"true\" @selected=\"$emit('selected', data.document)\"></ae-design>\n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-09-08T09:47:13+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-01-27T08:50:43+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1643273443487,"ct":1599558433740,"a_depth":4,"a":["apps","8884dd6d-4320-4de2-91fe-6777ecfebec9","b9b17d13-b861-425a-9c17-d27d18d5be06","53eecc66-c1a1-47da-b9df-67cc2b8b60f5"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"87d148b1-5819-4a51-9068-4348689ea7ce","v":"initial","p":"95287cc8-9e7d-43c6-98c6-1fd1a61bb3b2","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"line","template":"{{data.name}} ","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-11-02T09:38:38+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-11-02T09:38:38+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1635845918872,"ct":1635845918872,"a_depth":4,"a":["apps","781ff5de-69db-49dc-99f0-f328b308cd7d","dbd0bd68-3479-4032-9303-9d51615c27a7","95287cc8-9e7d-43c6-98c6-1fd1a61bb3b2"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"88fc8eb1-58ed-4903-a538-deb2c5788c52","v":"initial","p":"28809343-ab75-46e1-974a-74e6f40a2fd1","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"line","template":"<dl>\r\n  <dt>Definition</dt>\r\n  <dd>  \r\n    <ae-design name=\"line\" :document-id=\"data.definition.id\"></ae-design>\r\n  </dd>\r\n  <dt>Performed By</dt>\r\n  <dd>{{data.performedBy}}</dd>\r\n  <dt>Performed At</dt>\r\n  <dd>{{DateTime.fromISO(document.created.at).toLocaleString(DateTime.DATETIME_MED)}}</dd>\r\n  <template v-for=\"ts of data.steps\">\r\n    <dt >{{ ts.text }}</dt>\r\n    <dd>\r\n      <ae-design name=\"overview-line,line\" :document-id=\"ts.id\"></ae-design>\r\n    </dd>\r\n  </template>\r\n</dl>\r\n    ","css":"._CSS {\r\n  border: 1px solid lightgray;\r\n  padding: 4px;\r\n  background: var(--ae-ui-background);\r\n  display: flex;\r\n}\r\n\r\n._CSS + ._CSS {\r\n  margin-top: 8px;\r\n}\r\n\r\n._CSS dl {\r\n  display: grid;\r\n  margin-left: 1em;\r\n  grid-template-columns: auto auto;\r\n  grid-gap: 8px;\r\n  align-items: center;\r\n}\r\n\r\n._CSS dt {\r\n  text-align: right;\r\n  font-size: smaller;\r\n}\r\n\r\n._CSS dd {\r\n  text-align: left;\r\n  font-weight: bold;\r\n}","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-11-02T09:38:39+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-11-02T09:38:39+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1635845919045,"ct":1635845919045,"a_depth":4,"a":["apps","781ff5de-69db-49dc-99f0-f328b308cd7d","dbd0bd68-3479-4032-9303-9d51615c27a7","28809343-ab75-46e1-974a-74e6f40a2fd1"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"99ac7e75-a374-40e1-a549-4549f7b007d9","v":"f872991250afd499","cloneOf":{"id":"e4667bad-c28a-429b-844d-510b393f4a7c","v":"initial","text":"popup-info"},"originalCloneOf":{"id":"e4667bad-c28a-429b-844d-510b393f4a7c","v":"initial","text":"popup-info"},"previous":{"v":"f6c688f01404e51c"},"p":"e6b7aced-aaa0-49a4-b573-cfa307595402","f":{"id":"design-form","v":"24435d748c76f819","text":"Design"},"data":{"name":"line","template":"<div class=\"bp-card _CSS-info\"\n    :class=\"{ 'bp-card--bordered': !params.withoutBorder, '_CSS-info--done': locals.linkedDocument && locals.linkedDocument.data.erledigt }\" \n    @click.stop=\"$emit('selected', document)\"\n>\n  <div class=\"_CSS-line\">\n    <!-- <div class=\"_CSS-line__date\" v-if=\"controller.isAllday\">\n      <template v-if=\"data.start\">\n        {{ Aeppic.DateTime.fromISO(data.start).toLocaleString(Aeppic.DateTime.DATE_SHORT) }}\n      </template>\n      <template v-if=\"data.end && data.start !== data.end\">\n        -\n      </template>\n      <template v-if=\"data.end && data.start !== data.end\">\n        {{ Aeppic.DateTime.fromISO(data.end).toLocaleString(Aeppic.DateTime.DATE_SHORT) }}\n      </template>\n    </div>\n\n    <div class=\"_CSS-line__date\" v-else>\n      <template v-if=\"controller.isMoreThanOneDay\">\n        <template v-if=\"data.start\">\n          {{ Aeppic.DateTime.fromISO(data.start).toLocaleString(Aeppic.DateTime.DATETIME_SHORT) }}\n        </template>\n        -\n        <template v-if=\"data.end\">\n          {{ Aeppic.DateTime.fromISO(data.end).toLocaleString(Aeppic.DateTime.DATETIME_SHORT) }}\n        </template>\n      </template>\n      <template v-else>\n        <template v-if=\"data.start\">\n          {{ Aeppic.DateTime.fromISO(data.start).toLocaleString(Aeppic.DateTime.DATETIME_SHORT) }}\n        </template>\n        -\n        <template v-if=\"data.end\">\n          {{ Aeppic.DateTime.fromISO(data.end).toLocaleString(Aeppic.DateTime.TIME_24_SIMPLE) }}\n        </template>\n      </template>\n    </div> -->\n\n    <div class=\"_CSS-line__content _CSS-headline\">\n      <div class=\"_CSS-headline__title\">\n        <ae-design name=\"title\" :document=\"document\"></ae-design>\n        <!-- <ae-design class=\"_CSS-path\" name=\"title\" :document-id=\"document.a.slice(-2)[0]\"></ae-design> -->\n        <ae-design class=\"_CSS-path\" name=\"path\" :document=\"document\"></ae-design>\n      </div>\n\n      <div class=\"_CSS-line__attendees\" v-if=\"data.attendees.length\">\n        <ae-design name=\"avatar--tiny\" v-for=\"attendee of data.attendees\" :document=\"attendee\"></ae-design>\n      </div>\n    </div>\n\n\n  </div>\n\n  <div class=\"_CSS-line\"  v-if=\"data.description\">\n    <div class=\"_CSS-description\">\n      {{ data.description }}\n    </div>\n  </div>\n</div>\n\n","css":"._CSS-info {\n  padding: var(--ae-size-2);\n  display: flex;\n  flex-flow: column;\n}\n\n._CSS-line {\n  flex: 1;\n  width: 100%;\n  display: flex;\n  flex-flow: column;\n}\n\n._CSS-line ~ ._CSS-line {\n  margin: var(--ae-size-2) 0;\n}\n\n._CSS-line__icon {\n  flex: 1;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n}\n\n._CSS-line__content {\n  min-width: 0;\n  flex: 4;\n}\n\n._CSS-line__date {\n  xmin-width: 0;\n  flex: 3;\n\n  display: flex;\n  xjustify-content: flex-end;\n  margin-bottom: var(--ae-space-2);\n}\n\n._CSS-line__attendees {\n  xmin-width: 0;\n  flex: 1;\n\n  display: flex;\n  justify-content: flex-end;\n  align-items: center;\n}\n\n._CSS-path {\n  margin-top: var(--ae-space-1);\n  font-size: var(--ae-font-size-2);\n  color: var(--ae-background-700);\n}\n\n\n._CSS-description {\n  color: var(--ae-background-500);\n}\n\n._CSS-headline {\n  display: flex;\n}\n\n._CSS-headline__title {\n  display: flex;\n  flex-flow: column;\n}\n\n._CSS-info--done {\n  text-decoration: line-through;\n  opacity: var(--ae-opacity-1);\n}\n","controller":"class Controller {\n  async init() {\n    locals.linkedDocument = null\n    locals.linkedDocument = data.linkedDocument && await Aeppic.get(data.linkedDocument)\n  }\n\n  get isMoreThanOneDay() {\n    if (!data.start || !data.end) {\n      return false\n    }\n\n    const startDateTime = Aeppic.DateTime.fromISO(data.start)\n    const endDateTime = Aeppic.DateTime.fromISO(data.end)\n\n    return endDateTime.diff(startDateTime, 'days').toObject().days >=1\n  }\n\n  get isAllday() {\n    const startDateTime = data.start ? Aeppic.DateTime.fromISO(data.start) : null\n    const endDateTime = data.end ? Aeppic.DateTime.fromISO(data.end) : null\n\n\n    if (startDateTime && endDateTime)  {\n      return this._isAllday(startDateTime) && this._isAllday(endDateTime)\n    }\n\n    if (startDateTime) {\n      return this._isAllday(startDateTime)\n    }\n\n    return this._isAllday(endDateTime)\n  }\n\n  _isAllday(date) {\n    const allday = date.hour === 0 && date.minute === 0 && date.second === 0\n    return allday\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-09-03T12:22:38+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-12-01T08:54:46+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1638348886368,"ct":1599135758557,"a_depth":4,"a":["apps","d8c9a42b-e289-4c9a-97ea-801de8ab480a","db8e20d1-732c-4c6b-9cfc-b323f83fa378","e6b7aced-aaa0-49a4-b573-cfa307595402"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"fd6135c4-0b08-4467-979a-c8fd00e0e3a6","v":"initial","p":"ce9d42b0-197e-4d60-90a4-daee72c20939","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"line","template":"<ae-icon v-if=\"data.success\" class=\"fa fa-check\" style=\"fill:green\"></ae-icon>\r\n<ae-icon v-else class=\"fa fa-times\" style=\"fill:red\"></ae-icon>\r\n&nbsp;\r\n{{data.name}}","css":"._CSS {\r\n  display:flex;\r\n  align-items: center;\r\n}","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-11-02T09:38:39+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-11-02T09:38:39+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1635845919214,"ct":1635845919214,"a_depth":4,"a":["apps","781ff5de-69db-49dc-99f0-f328b308cd7d","dbd0bd68-3479-4032-9303-9d51615c27a7","ce9d42b0-197e-4d60-90a4-daee72c20939"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"2aab3015-9e6e-4cda-869b-06ff01cd3605","v":"db3833a238a99020","previous":{"v":"58f4d91ea68b68d8"},"p":"651d8603-6d29-4534-be59-4449387e857c","f":{"id":"design-form","v":"0061789efb5c5c29","text":"Design"},"data":{"name":"line-item","template":"<div class=\"bp-card bp-card--bordered ae-navigatable\" @click.stop=\"$emit('selected', document)\">\n  <ae-design name=\"title\" :document=\"document\"></ae-design>\n  <div class=\"_CSS-button-or-avatar\">\n    <ae-layout  layout-id=\"0ded34c5-1221-4511-af93-d897a79f1369\"\n                v-if=\"controller.canEdit\" \n                :param-document=\"document\"\n    ></ae-layout>\n    <ae-design v-else\n              name=\"avatar--tiny\"\n              :document-id=\"document.created.by\"\n    ></ae-design>\n  </div>\n</div>\n\n","css":"","controller":"class Controller {\n  get canEdit() {\n    return !params.readonly && Aeppic.Account && document.created.by === Aeppic.Account.id\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-10-12T08:59:30+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-06-01T14:13:00+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1622556780820,"ct":1602493170296,"a_depth":4,"a":["apps","0924db0f-7095-4b51-8966-bad1e45d68ec","a3b935e7-60bc-4996-9b18-668e4361067f","651d8603-6d29-4534-be59-4449387e857c"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"479e978b-800b-4df7-8b0d-0845635eea2a","v":"bf9d1d064eb64238","cloneOf":{"id":"135bf89f-e3d4-4ac8-8251-e4b53e7561f7","v":"37018e2d3f355997","text":"ping"},"originalCloneOf":{"id":"135bf89f-e3d4-4ac8-8251-e4b53e7561f7","v":"37018e2d3f355997","text":"ping"},"previous":{"v":"1fcefacb1e23b624"},"p":"ddaa6921-770e-4a73-b8a4-b4a99abed24b","f":{"id":"design-form","v":"0061789efb5c5c29","text":"Design"},"data":{"name":"line-item","template":"<!-- NOTE: this is only implemented for \ncategory: object/ref {}\n{\n  \"id\": \"97902782-7315-4837-94fc-8e080c6cfbf3\",\n  \"v\": \"initial\",\n  \"text\": \"Ping\"\n}\n-->\n\n<div v-if=\"data.category.id === locals.FORMS.Ping\" class=\"bp-card bp-card--bordered _CSS-card\" title=\"Ein gesendeter Ping\">\n  <ae-icon class=\"far fa-comment-plus\" style=\"margin-right: 0.5ch\"></ae-icon>\n  <i>an</i>\n  <ae-design class=\"_CSS-card__avatar\" name=\"avatar--tiny\" v-for=\"account of data.accounts\" :document-id=\"account.id\"></ae-design>\n \n  <div class=\"_CSS-what\">\n    <div class=\"_CSS-what__target\">\n      <ae-design name=\"profile-title\" v-for=\"account of data.accounts\" :document-id=\"account.id\"></ae-design>\n    </div>\n    <div class=\"_CSS-card__content\">\n      <template v-if=\"data.content.startsWith('{')\">\n        <ae-control name=\"editor-comment\"\n                  :document=\"document\"\n                  field-name=\"content\"\n                  :readonly=\"true\"\n        ></ae-control>\n      </template>\n      <template v-else-if=\"!data.content.startsWith('translate:')\">\n      {{ data.content }}\n      </template>\n      <i v-else>\n        Kein Text\n      </i>\n    </div>\n  </div>\n\n  <div class=\"_CSS-card__date\">\n    <div>\n    {{ Aeppic.DateTime.fromISO(document.created.at).toLocaleString(Aeppic.DateTime.DATETIME_SHORT) }}\n    </div>\n  </div>\n</div>\n<div v-else>\n  [dev] category not supported\n</div>","css":"._CSS {\n  width: 100%;\n}\n\n._CSS-card {\n  display: flex;\n  align-items: stretch;\n}\n\n._CSS-what {\n  flex: 1;\n}\n\n._CSS-card__avatar {\n  margin: 0 var(--ae-space-2);\n  display: flex;\n  align-items: flex-start;\n}\n\n._CSS-what__target {\n  display: flex;\n  align-items: center;\n  color: var(--ae-background-700);  \n}\n\n._CSS-card__content {\n  white-space: pre-line;\n}\n\n._CSS-card__date {\n  display: flex;\n  align-items: flex-end;\n  font-size: var(--ae-font-size-2);\n  color: var(--ae-background-700);\n}","controller":"class Controller {\n  init() {\n    locals.FORMS = {\n      Ping: '97902782-7315-4837-94fc-8e080c6cfbf3'\n    }\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-10-13T11:28:15+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-01-03T14:44:30+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1641221070298,"ct":1634124495447,"a_depth":4,"a":["apps","c9b12874-99d0-40e8-86cc-c3fe0477a15a","9b5518e5-c3ea-4446-9dc8-8628d8e8fabe","ddaa6921-770e-4a73-b8a4-b4a99abed24b"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"5c2b5429-ffc4-4966-86c9-90b96ddacad1","v":"d6271752771a4882","p":"32db2e83-2e88-4162-b680-698423aef2c3","f":{"id":"design-form","v":"22a757f630104010","text":"Design"},"data":{"name":"line-item","template":"<div class=\"_CSS-card ae-navigatable\"  @click.stop=\"controller.announceClickIfEditable()\">\n  <div class=\"_CSS-day\" :title=\"'Erfassungsdatum: ' +  Aeppic.DateTime.fromISO(document.created.at).toLocaleString(Aeppic.DateTime.DATETIME_SHORT)\">\n    <template v-if=\"data.datum\">\n      {{ Aeppic.DateTime.fromISO(data.datum).toLocaleString(Aeppic.DateTime.DATE_SHORT) }}\n    </template>\n    <template v-else>\n      <ae-icon class=\"fa fa-exclamation-triangle\"></ae-icon>\n      <span style=\"overflow:hidden;white-space:nowrap;text-overflow:ellipsis;\">\n        Kein Tag angegeben\n      </span>\n    </template>\n  </div>\n\n  <div class=\"_CSS-times\">\n    <div> {{ controller.date(data.von)  }} </div>  \n    -\n    <div> {{ controller.date(data.bis)  }} </div>  \n  </div>\n  <ae-design class=\"_CSS-duration\" name=\"readable-duration\" :document=\"document\"></ae-design>\n  <div class=\"_CSS-button-or-avatar\">\n    <ae-design \n              name=\"avatar--tiny\"\n              :document-id=\"document.created.by\"\n    ></ae-design>\n  </div>\n  <button v-if=\"!params.readonly\" class=\"ae-button ae-button--small\" @click.stop=\"$refs.popup.show($event)\">\n    <ae-icon class=\"fa fa-ellipsis-v\"></ae-icon>\n  </button>\n</div> \n\n<ae-popup ref=\"popup\">\n  <div>\n    <ae-layout  layout-id=\"0ded34c5-1221-4511-af93-d897a79f1369\"\n                v-if=\"controller.canEdit\" \n                :param-document=\"document\"\n    ></ae-layout>\n    <button class=\"ae-button\" @click=\"$emit('merge-up', document)\" title=\"In darüberliegende Zeit integrieren\">\n      <ae-icon class=\"fa fa-arrow-up\"></ae-icon>\n    </button>\n    <button class=\"ae-button\" @click=\"$emit('merge-down', document)\" title=\"In darunterliegende Zeit integrieren\">\n      <ae-icon class=\"fa fa-arrow-down\"></ae-icon>\n    </button> \n  </div>\n</ae-popup>    \n","css":"._CSS-card {\n  border: var(--ae-border-width) solid var(--ae-border-color);\n  background-color: var(--ae-ui-background);\n  border-radius: var(--ae-border-radius);\n\n  flex: 1;\n  padding: var(--ae-size-1) var(--ae-size-2) var(--ae-size-1) var(--ae-size-2);\n\n  display: grid;\n\n  grid-template-columns: 100px 200px 1fr auto;\n}\n\n._CSS-day,\n._CSS-project,\n._CSS-title {\n  padding-right: var(--ae-size-4);\n  overflow: hidden;\n  white-space: nowrap;\n  text-overflow: ellipsis;\n  display: flex;\n  align-items: center;\n}\n\n._CSS-duration {\n  overflow: hidden;\n  white-space: nowrap;\n  text-overflow: ellipsis;\n  display: flex;\n  align-items: center;\n}\n\n._CSS-title {\n  font-weight: bold;\n}\n\n._CSS-button-or-avatar {\n  display: flex;\n  justify-content: center;\n}\n._CSS-times {\n  display: flex;\n  align-items: center;\n  grid-gap: var(--ae-space-1);\n}","controller":"class Controller {\n  get canEdit() {\n    return Aeppic.Account && document.created.by === Aeppic.Account.id\n  }\n\n  announceClickIfEditable() {\n    if (!this.canEdit) {\n      return\n    }\n\n    $emit('selected', document)\n  }\n\n  date(date) {\n    const diffInDays = Aeppic.DateTime.fromISO(data.datum).diff(Aeppic.DateTime.fromISO(date), 'days').toObject().days\n    const sameDayAsMainDatum = diffInDays < 1 && diffInDays > -1 \n\n    if (sameDayAsMainDatum) {\n      return Aeppic.DateTime.fromISO(date).toLocaleString(Aeppic.DateTime.TIME_24_SIMPLE) || '-'\n    }\n\n    return Aeppic.DateTime.fromISO(date).toLocaleString(Aeppic.DateTime.DATETIME_SHORT) || '-'\n  }\n}\n  ","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-03-17T13:25:52+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-03-17T14:19:01+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1740666014602,"ct":1740666014602,"a_depth":4,"a":["apps","0c440c7a-219d-4465-9cbe-2d0eff6ec7ad","e25401a7-eca4-4c53-a20e-b30df594d3a7","32db2e83-2e88-4162-b680-698423aef2c3"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[],"previous":{"v":"4d42b76714c9a26a","f":{"id":"design-form","v":"24435d748c76f819","text":"Design"}},"meta":{"modified":{"at":"2025-02-27T14:20:14+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"8f966162-6551-4475-bf28-d96fdde6b2e7","v":"d7432112215837f8","cloneOf":{"id":"479e978b-800b-4df7-8b0d-0845635eea2a","v":"433f7c17ad4e0d6d","text":"line-item"},"originalCloneOf":{"id":"479e978b-800b-4df7-8b0d-0845635eea2a","v":"433f7c17ad4e0d6d","text":"line-item"},"previous":{"v":"8df7a21e2632d29a"},"p":"6d164aff-df9b-470d-9632-cfb6f5892509","f":{"id":"design-form","v":"0061789efb5c5c29","text":"Design"},"data":{"name":"line-item","template":"<!-- NOTE: this is only implemented for \ncategory: object/ref {}\n{\n  \"id\": \"97902782-7315-4837-94fc-8e080c6cfbf3\",\n  \"v\": \"initial\",\n  \"text\": \"Ping\"\n}\n-->\n<div v-if=\"data.category === locals.FORMS.Ping\" class=\"bp-card bp-card--bordered _CSS-card\" title=\"Ein gesendeter Ping\">\n  <ae-icon class=\"far fa-comment-plus\" style=\"margin-right: 0.5ch\"></ae-icon>\n  \n  <div class=\"_CSS-what\">\n    <div class=\"_CSS-what__target\">\n      <i>An mich</i>\n    </div>\n    <div class=\"_CSS-card__content\">\n      <template v-if=\"data.content.startsWith('{')\">\n        <ae-control name=\"editor-comment\"\n                  :document=\"document\"\n                  field-name=\"content\"\n                  :readonly=\"true\"\n      ></ae-control>\n      </template>\n      <template v-else-if=\"!data.content.startsWith('translate:')\">\n        {{ data.content }}\n      </template>\n      <i v-else>\n        Kein Text\n      </i>\n    </div>\n  </div>\n\n  <div class=\"_CSS-card__date\">\n    <ae-design name=\"avatar--tiny\" :document-id=\"data.who.id\"></ae-design>\n    <ae-design name=\"profile-title\" :document-id=\"data.who.id\"></ae-design>\n    \n    <div>\n    {{ Aeppic.DateTime.fromISO(document.created.at).toLocaleString(Aeppic.DateTime.DATETIME_SHORT) }}\n    </div>\n  </div>\n</div>\n<div v-else>\n  [dev] category {{ data.category }} not supported\n</div>","css":"._CSS {\n  width: 100%;\n}\n\n._CSS-card {\n  display: flex;\n  align-items: stretch;\n}\n\n._CSS-what {\n  flex: 1;\n}\n\n._CSS-card__avatar {\n  margin: 0 var(--ae-space-2);\n  display: flex;\n  align-items: flex-start;\n}\n\n._CSS-what__target {\n  display: flex;\n  align-items: center;\n  color: var(--ae-background-700);  \n}\n\n._CSS-card__content {\n  white-space: pre-line;\n}\n\n._CSS-card__date {\n  display: flex;\n  flex-flow: column;\n  justify-content: flex-end;\n  align-items: flex-end;\n  font-size: var(--ae-font-size-2);\n  color: var(--ae-background-700);\n}","controller":"class Controller {\n  init() {\n    locals.FORMS = {\n      Ping: '97902782-7315-4837-94fc-8e080c6cfbf3'\n    }\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-10-13T14:37:10+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-01-03T14:41:37+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1641220897728,"ct":1634135830196,"a_depth":4,"a":["apps","c9b12874-99d0-40e8-86cc-c3fe0477a15a","9b5518e5-c3ea-4446-9dc8-8628d8e8fabe","6d164aff-df9b-470d-9632-cfb6f5892509"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","0c440c7a-219d-4465-9cbe-2d0eff6ec7ad","e25401a7-eca4-4c53-a20e-b30df594d3a7","f9279010-1935-4139-abbb-82d928aa09dc"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2019-08-22T12:20:27+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","client":"server","from":""},"ct":1740666014601,"data":{"aliases":[],"controller":"class Controller {\n  init() {\n    this.projectAncestorRelativeToParentForm = {\n      '3d456c38-6282-416e-8c5e-7d20b0517a6e': -2,\n      '90877d25-bbae-421e-9ea7-0631dcbf11c2': -4,\n      '88b1f60e-71f6-46f5-94ea-3d7bbe972950': -3,\n      '0deb4864-cbb6-420c-99ee-337c7444ab24': -2,\n    }\n  } \n\n  get projectId() {\n    const parentForm = document.a_forms.slice(-1)[0]\n    const ancestorRelative = this.projectAncestorRelativeToParentForm[parentForm]\n\n    if (ancestorRelative == null) {\n      console.error('parentForm not found:', parentForm)\n      return null\n    }\n\n    return document.a.slice(ancestorRelative)[0]\n  }\n\n  get canEdit() {\n    return Aeppic.Account && document.created.by === Aeppic.Account.id\n  }\n\n  announceClickIfEditable() {\n    if (!this.canEdit) {\n      return\n    }\n\n    $emit('selected', document)\n  }\n}\n","css":"._CSS-card {\n  border: var(--ae-border-width) solid var(--ae-border-color);\n  background-color: var(--ae-ui-background);\n  border-radius: var(--ae-border-radius);\n\n  flex: 1;\n  padding: var(--ae-size-1) var(--ae-size-2) var(--ae-size-1) var(--ae-size-2);\n\n  display: grid;\n\n  grid-template-columns: 90px 1fr 1fr 3fr 100px 60px 35px;\n}\n\n._CSS-card--no-parent-info {\n  grid-template-columns: 90px 2fr 3fr 100px 60px 35px;\n}\n\n._CSS-day,\n._CSS-project,\n._CSS-title {\n  padding-right: var(--ae-size-4);\n  overflow: hidden;\n  white-space: nowrap;\n  text-overflow: ellipsis;\n  display: flex;\n  align-items: center;\n}\n\n._CSS-duration {\n  overflow: hidden;\n  white-space: nowrap;\n  text-overflow: ellipsis;\n  display: flex;\n  align-items: center;\n}\n\n._CSS-title {\n  font-weight: bold;\n}\n\n._CSS-button-or-avatar {\n  display: flex;\n  justify-content: center;\n}","description":"","name":"line-item","packages":[],"template":"<div class=\"_CSS-card ae-navigatable\" :class=\"{ '_CSS-card--no-parent-info': params.hideParentInfo }\" @click.stop=\"controller.announceClickIfEditable()\">\n  <div class=\"_CSS-day\" :title=\"'Erfassungsdatum: ' +  Aeppic.DateTime.fromISO(document.created.at).toLocaleString(Aeppic.DateTime.DATETIME_SHORT)\">\n    <template v-if=\"data.tag\">\n      {{ Aeppic.DateTime.fromISO(data.tag).toLocaleString(Aeppic.DateTime.DATE_SHORT) }}\n    </template>\n    <template v-else>\n      <ae-icon class=\"fa fa-exclamation-triangle\"></ae-icon>\n      <span style=\"overflow:hidden;white-space:nowrap;text-overflow:ellipsis;\">\n        Kein Tag angegeben\n      </span>\n    </template>\n  </div>\n  <ae-design v-if=\"!params.hideParentInfo\" class=\"_CSS-project\" name=\"title\" :document-id=\"document.p\"></ae-design>\n  <ae-design class=\"_CSS-project\" name=\"title\" :document-id=\"controller.projectId\"></ae-design>\n  <ae-design v-if=\"data.name\" class=\"_CSS-title\" name=\"title\" :document=\"document\"></ae-design>\n  <div v-else title=\"Kein Titel angegeben\"></div>\n  <ae-design class=\"_CSS-duration\" name=\"readable-duration\" :document=\"document\"></ae-design>\n  <div class=\"_CSS-button-or-avatar\">\n    <ae-design \n              name=\"avatar--tiny\"\n              :document-id=\"document.created.by\"\n    ></ae-design>\n  </div>\n  <button v-if=\"!params.readonly\" class=\"ae-button ae-button--small\" @click.stop=\"$refs.popup.show($event)\">\n    <ae-icon class=\"fa fa-ellipsis-v\"></ae-icon>\n  </button>\n</div> \n\n<ae-popup ref=\"popup\">\n  <div>\n    <ae-layout  layout-id=\"0ded34c5-1221-4511-af93-d897a79f1369\"\n                v-if=\"controller.canEdit\" \n                :param-document=\"document\"\n    ></ae-layout>\n    <button class=\"ae-button\" @click=\"$emit('merge-up', document)\" title=\"In darüberliegende Zeit integrieren\">\n      <ae-icon class=\"fa fa-arrow-up\"></ae-icon>\n    </button>\n    <button class=\"ae-button\" @click=\"$emit('merge-down', document)\" title=\"In darunterliegende Zeit integrieren\">\n      <ae-icon class=\"fa fa-arrow-down\"></ae-icon>\n    </button> \n  </div>\n</ae-popup>    \n"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"b63578af-1f9e-468d-85b9-77a282378a29","inheritedLocks":[null,null,null,null,null],"locks":[],"meta":{"modified":{"at":"2025-06-30T08:40:59+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null}},"modified":{"at":"2022-02-22T08:58:16+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"f9279010-1935-4139-abbb-82d928aa09dc","previous":{"a":["apps","0c440c7a-219d-4465-9cbe-2d0eff6ec7ad","9ee77d5e-cff4-42a8-a86e-447a18bbceba"],"a_forms":["folder","application-form","design-folder"],"p":"9ee77d5e-cff4-42a8-a86e-447a18bbceba","v":"fd93f33af1a7588d"},"stamps":[],"t":1751272859004,"v":"522117dd6bf5a1ea"},{"id":"c8466808-cad7-4a05-877f-7328981224e9","v":"0dfbd6e9bd7363e1","cloneOf":{"id":"cda11572-57b3-4e88-9ef5-ba3772f91c4f","v":"7bb7bf12fdd719d7","text":"line-item"},"originalCloneOf":{"id":"cda11572-57b3-4e88-9ef5-ba3772f91c4f","v":"7bb7bf12fdd719d7","text":"line-item"},"previous":{"v":"27f557d55a0ee694"},"p":"cf155969-ede1-43a4-9b10-3a697b19db91","f":{"id":"design-form","v":"e3fe9ece11aabc5e","text":"Design"},"data":{"name":"line-item","applies":"","template":"<div class=\"bp-card bp-card--bordered _CSS-card\" :class=\"{ '_CSS-card--to-self': !controller.createdBySelf, '_CSS-card--to-other': controller.createdBySelf }\">\n  <div class=\"_CSS-line\">\n    <div v-if=\"!controller.createdBySelf\" class=\"_CSS-card__avatar\">\n      <ae-design name=\"avatar--tiny\" :document=\"locals.profile\"></ae-design>\n    </div>\n\n    <div class=\"_CSS-what\">\n\n      <div class=\"_CSS-card__content\">\n        <template v-if=\"data.content.startsWith('{')\">\n          <ae-control name=\"editor-comment\"\n                    :document=\"document\"\n                    field-name=\"content\"\n                    :readonly=\"true\"\n                    :param-without-border=\"true\"\n          ></ae-control>\n        </template>\n        <template v-else-if=\"!data.content.startsWith('translate:')\">\n        {{ data.content }}\n        </template>\n        <i v-else>\n          Kein Text\n        </i>\n      </div>\n\n      <ae-control v-if=\"document.data.attachments.length\" style=\"flex: 1; width: 100%;\" name=\"attachment\" :document=\"document\" field-name=\"attachments\" :readonly=\"true\">\n      </ae-control>\n    </div>\n\n    <!-- <div v-if=\"!controller.createdBySelf\" class=\"_CSS-card__avatar\">\n      <ae-design name=\"avatar--tiny\" :document=\"locals.profile\"></ae-design>\n    </div> -->\n\n    <div class=\"_CSS-card__date-actions\" v-if=\"controller.canEdit\">\n      <div>\n        <button class=\"ae-button\" @click.stop=\"$emit('selected', document)\">\n          <ae-icon class=\"fa fa-edit\"></ae-icon>\n        </button>\n      </div>\n      <ae-layout  layout-id=\"0ded34c5-1221-4511-af93-d897a79f1369\"\n                  :param-document=\"document\"\n      ></ae-layout>\n    </div>\n  </div>\n\n  <div class=\"_CSS-card__date\">\n    <span>{{ Aeppic.DateTime.fromISO(document.created.at).toLocaleString(Aeppic.DateTime.DATETIME_SHORT) }}</span>\n  </div>\n  \n</div>","css":"._CSS {\r\n  width: 100%;\r\n}\r\n\r\n._CSS ._CSS-card {\r\n  display: flex;\r\n  flex-flow: column;\r\n  align-items: stretch;\r\n}\r\n\r\n._CSS-card--to-self {\r\n  margin-right: 10vw;\r\n}\r\n\r\n._CSS-card--to-other {\r\n  margin-left: 10vw;\r\n}\r\n\r\n._CSS-line {\r\n  flex: 1;\r\n  display: flex;\r\n  align-items: stretch;\r\n}\r\n\r\n._CSS-what {\r\n  flex: 1;\r\n  margin: 0 var(--ae-space-2);\r\n}\r\n\r\n._CSS-card__avatar {\r\n  xmargin: 0 var(--ae-space-2);\r\n  display: flex;\r\n  align-items: flex-start;\r\n}\r\n\r\n._CSS-what__target {\r\n  display: flex;\r\n  align-items: center;\r\n  color: var(--ae-background-700);  \r\n}\r\n\r\n._CSS-card__content {\r\n  white-space: pre-line;\r\n}\r\n\r\n._CSS-card__date {\r\n  margin: 0 0 0 var(--ae-space-2);\r\n  display: flex;\r\n  align-items: center;\r\n  justify-content: flex-end;\r\n  font-size: var(--ae-font-size-2);\r\n  color: var(--ae-background-700);\r\n}\r\n\r\n._CSS-card__date-actions {\r\n  margin-left: var(--ae-space-2);\r\n  display: flex;\r\n}\r\n","controller":"class Controller {\r\n  async init() {\r\n    locals.profile = await Aeppic.getProfilePageForAccount(document.created.by)\r\n  }\r\n\r\n  get canEdit() {\r\n    return !params.readonly && Aeppic.Account && !Aeppic.Account.data.isGroupAccount && document.created.by === Aeppic.Account.id\r\n  }\r\n\r\n  get isEdited() {\r\n    // comments are saved before the user has the chance to fill any data in\r\n    // this means every comment is saved twice at it's \"initial\"/unedited state\r\n    return document.v !== 'initial' && document.previous.v !== 'initial'\r\n  }\r\n\r\n  get createdBySelf() {\r\n    return !!(Aeppic.Account && Aeppic.Account.id === document.created.by)\r\n  }\r\n}\r\n","packages":[]},"locks":[],"created":{"at":"2021-10-13T14:56:10+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-12-20T15:41:56+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1703086916523,"ct":1634136970444,"a_depth":4,"a":["apps","14c27659-92d7-4b43-8c4f-25f4cceae591","2e759bfa-c685-48e8-81b4-cec70e93c521","cf155969-ede1-43a4-9b10-3a697b19db91"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"f2bd86ad-2d4c-45fc-9993-398a8b72f61a","v":"802657819e1233ec","cloneOf":{"id":"b5a5b421-e4e6-4a69-bb8e-21bfe5188fa4","v":"b70876ca26171930","text":"line-item"},"originalCloneOf":{"id":"b5a5b421-e4e6-4a69-bb8e-21bfe5188fa4","v":"b70876ca26171930","text":"line-item"},"previous":{"v":"4dd9798345da711f"},"p":"42cf6e7a-e304-49a6-86e1-c94d84f1d0d9","f":{"id":"design-form","v":"0061789efb5c5c29","text":"Design"},"data":{"name":"line-item","template":"<div class=\"bp-card bp-card--bordered _CSS-card\" :class=\"{ '_CSS-card--to-self': locals.currentAccountIsReceiver, '_CSS-card--to-other': !locals.currentAccountIsReceiver }\">\n  <div v-if=\"!locals.currentAccountIsReceiver\" class=\"_CSS-card__border\" title=\"Ein von mir gesendeter Ping\">\n    <template v-if=\"Array.isArray(data.receiver)\">\n      <ae-icon class=\"far fa-at\" style=\"margin: 0.5ch 0\"></ae-icon>\n\n      <ae-layout layout-id=\"8e98c038-26ba-4225-b972-e8203d647442\" \n                :param-employees=\"data.receiver\"\n                :param-max=\"1\"\n                :param-vertical-layout=\"true\"\n      ></ae-layout>\n\n    </template>\n    <template v-else>\n      <ae-icon class=\"far fa-at\" style=\"margin: 0.5ch 0\"></ae-icon>\n      <ae-design class=\"_CSS-card__avatar\" name=\"avatar--tiny\" :document-id=\"data.receiver.id\"></ae-design>\n    </template>\n  </div>\n   <div v-if=\"locals.currentAccountIsReceiver\" class=\"_CSS-card__border\" title=\"Ein Ping an mich\">\n    <ae-icon class=\"far fa-comment-plus\" style=\"margin: 0.5ch 0\"></ae-icon>\n      <ae-design class=\"_CSS-card__avatar\" name=\"avatar--tiny\" :document-id=\"data.who.id\"></ae-design>\n  </div>\n  <div class=\"_CSS-card__inner-content\">\n    <!-- <i>an</i> -->\n    <div class=\"_CSS-what\">\n      <div class=\"_CSS-card__content\">\n        <template v-if=\"data.content.startsWith('{')\">\n          <ae-control name=\"editor-comment\"\n                    :document=\"document\"\n                    field-name=\"content\"\n                    :readonly=\"true\"\n                    :param-without-border=\"true\"\n          ></ae-control>\n        </template>\n        <template v-else-if=\"!data.content.startsWith('translate:')\">\n        {{ data.content }}\n        </template>\n        <i v-else>\n          Kein Text\n        </i>\n      </div>\n    </div>\n\n    <div class=\"_CSS-card__date\">\n      <div>\n      {{ Aeppic.DateTime.fromISO(document.created.at).toLocaleString(Aeppic.DateTime.DATETIME_SHORT) }}\n      </div>\n    </div>\n  </div>\n \n</div>\n","css":"._CSS {\n  width: 100%;\n}\n\n._CSS ._CSS-card {\n  padding: 0;\n  display: flex;\n  align-items: stretch;\n  border-style: dashed;\n}\n\n._CSS-card--to-self {\n  margin-right: 10vw;\n}\n\n._CSS-card--to-other {\n  margin-left: 10vw;\n}\n\n._CSS-card__inner-content {\n  flex: 1;\n\n  padding: var(--ae-size-2);\n  display: flex;\n  flex-flow: column;\n  align-items: stretch;\n}\n\n._CSS-card__border {\n  width: 50px;\n  background-color: var(--ae-background-200);\n  display: flex;\n  align-items: center;\n  flex-flow: column;\n}\n\n._CSS-what {\n  flex: 1;\n}\n\n._CSS-card__avatar {\n  margin: 0 var(--ae-space-2);\n  display: flex;\n  align-items: flex-start;\n}\n\n._CSS-what__target {\n  display: flex;\n  align-items: center;\n  color: var(--ae-background-700);  \n}\n\n._CSS-card__content {\n  white-space: pre-line;\n}\n\n._CSS-card__date {\n  align-self: flex-end;\n\n  display: flex;\n  align-items: flex-end;\n  font-size: var(--ae-font-size-2);\n  color: var(--ae-background-700);\n}","controller":"class Controller {\n  init() {\n    locals.currentAccountIsReceiver = null\n\n    if (Array.isArray(document.data.receiver)) {\n      locals.currentAccountIsReceiver = document.created.by !== Aeppic.Account?.id && document.data.receiver.find(r => r.id === Aeppic.ProfilePage?.id)\n    } else {\n      locals.currentAccountIsReceiver = Aeppic.ProfilePage?.id === document.data.receiver.id\n    }\n  }\n}\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-01-03T14:26:38+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-01-26T12:28:24+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1643200104405,"ct":1641219998630,"a_depth":4,"a":["apps","14c27659-92d7-4b43-8c4f-25f4cceae591","2e759bfa-c685-48e8-81b4-cec70e93c521","42cf6e7a-e304-49a6-86e1-c94d84f1d0d9"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"d84063fd-932e-4c83-801d-f8ccd4521c8c","v":"initial","p":"cf155969-ede1-43a4-9b10-3a697b19db91","f":{"id":"design-form","v":"e3fe9ece11aabc5e","text":"Design"},"data":{"name":"line-item--newsfeed.old","applies":"","template":"<ae-design v-if=\"!params.alignmentCommenter\" class=\"_CSS-user--avatar\" :document=\"locals.profile\" :key=\"locals.profile && locals.profile.id\" name=\"avatar--small\"></ae-design>\n<div v-if=\"!locals.profile\" class=\"_CSS-user--avatar-placeholder\" title=\"Unbekannter Benutzer\">\n  <ae-icon class=\"fa fa-user-circle\"></ae-icon>\n</div>\n<div style=\"display:flex; flex-direction:column;width:100%;\">\n  <div class=\"_CSS-content\">\n  <div class=\"_CSS-comment-text\" :class=\"[params.alignmentCommenter? '_CSS-comment_turncate--creator' : '_CSS-comment_turncate']\" >\n    <!-- <ae-design class=\"_CSS-user\" :document=\"locals.profile\" name=\"title\"></ae-design> -->\n    <ae-control class=\"_CSS-comment\" :class=\"{'_CSS-comment--creator': params.alignmentCommenter}\" xv-if=\"!data.contentHtml && data.content\" name=\"editor-light\" :document=\"document\" field-name=\"content\" :readonly=\"true\"></ae-control>\n    <!-- <div class=\"_CSS-comment\" v-else v-html=\"data.contentHtml\"></div> -->\n    <ae-control name=\"attachment\" :document=\"document\" field-name=\"attachments\" :readonly=\"true\">\n    </ae-control>\n\n  </div>\n  </div>\n  <div class=\"_CSS-comment-footer\" :class=\"{'_CSS-comment-footer--creator': params.alignmentCommenter}\">\n    <div v-show=\"params.alignmentCommenter === false && data.attachments && data.attachments.length !== 0\" class=\"_CSS-comment-attachment\" title=\"Anhang\">\n      <ae-icon class=\"fal fa-paperclip\"/>\n    </div>\n    <span v-if=\"controller.isEdited\"><strong>Bearbeitet&nbsp;</strong> </span><span title=\"\">{{Aeppic.DateTime.fromISO(document.modified.at).toLocaleString(Aeppic.DateTime.DATETIME_SHORT)}}</span>\n    <div v-show=\"params.alignmentCommenter && data.attachments && data.attachments.length !== 0\" class=\"_CSS-comment-attachment--creator\" title=\"Anhang\">\n      <ae-icon class=\"fal fa-paperclip\"/>\n    </div>\n  </div>\n</div>\n<div>\n\n  <ae-design v-if=\"params.alignmentCommenter\" class=\"_CSS-user--avatar\" :document=\"locals.profile\" :key=\"locals.profile && locals.profile.id\" name=\"avatar--small\"></ae-design>\n  <div v-if=\"!locals.profile\" class=\"_CSS-user--avatar-placeholder\" title=\"Unbekannter Benutzer\">\n    <ae-icon class=\"fa fa-user-circle\"></ae-icon>\n  </div>\n\n  <div class=\"_CSS-actions\">\n    <template v-if=\"controller.canEdit\">\n      <button class=\"ae-button\" @click=\"Aeppic.navigateTo(document.id)\">\n        <ae-icon class=\"fa fa-edit\"></ae-icon>\n      </button>\n      <ae-layout  layout-id=\"0ded34c5-1221-4511-af93-d897a79f1369\"\n                  :param-document=\"document\"\n      ></ae-layout>\n    </template>\n  </div>\n</div>\n\n\n\n","css":"._CSS {\r\n  display: flex;\r\n  margin: var(--ae-size-3) var(--ae-size-3);\r\n}\r\n\r\n._CSS-comment_turncate {\r\n  --lh: 1.1rem;\r\n  line-height: var(--lh);\r\n  --max-lines: 6;\r\n  max-height: calc(var(--lh) * var(--max-lines));\r\n  overflow: hidden;\r\n  \r\n}\r\n\r\n._CSS-comment_turncate--creator {\r\n  --lh: 1.1rem;\r\n  line-height: var(--lh);\r\n  --max-lines: 6;\r\n  max-height: calc(var(--lh) * var(--max-lines));\r\n  overflow: hidden;\r\n  \r\n}\r\n\r\n._CSS-comment_turncate::before {\r\n  content: \"...\";\r\n  position: absolute;\r\n  bottom: var(--ae-size-2);\r\n  right: var(--ae-size-2);\r\n}\r\n\r\n ._CSS-comment_turncate--creator::before {\r\n  content: \"...\";\r\n  position: absolute;\r\n  bottom: var(--ae-size-2);\r\n  right: var(--ae-size-2);\r\n}\r\n\r\n._CSS-comment_turncate::after {\r\n  content: \"\";\r\n  position: absolute;\r\n  right: var(--ae-size-2);\r\n  width: 1rem;\r\n  height: 1rem;\r\n  background: var(--ae-ui-background);\r\n}\r\n\r\n._CSS-comment_turncate--creator::after {\r\n  content: \"\";\r\n  position: absolute;\r\n  right: var(--ae-size-2);\r\n  width: 1rem;\r\n  height: 1rem;\r\n  background: var(--ae-background-200);\r\n}\r\n\r\n._CSS .editor {\r\n  border:none !important;\r\n}\r\n\r\n._CSS-comment {\r\n  display: flex;\r\n}\r\n\r\n._CSS-comment--creator {\r\n  display: flex;\r\n  padding: 0 0 0 var(--ae-size-1);\r\n  position: relative;\r\n}\r\n\r\n._CSS-user {\r\n  color: var(--ae-primary);\r\n  font-weight: bold;\r\n}\r\n\r\n._CSS-user--avatar {\r\n  margin-right: var(--ae-size-3);\r\n  height:2.5em;\r\n  transform-origin: top right;\r\n  transform: scale(0.75);\r\n}\r\n\r\n._CSS-content {\r\n  position: relative;\r\n  min-width: 0;\r\n  width: 100%;\r\n  flex: 1;\r\n  padding: 0;\r\n}\r\n\r\n._CSS-content > * {\r\n  /* flex: 1; */\r\n  /* display: inline-block; */\r\n  font-size: 0.9em;\r\n}\r\n\r\n._CSS-comment-text { \r\n  padding: 0 var(--ae-size-1) 0 var(--ae-size-1);\r\n  margin: 0 0 1em 0;\r\n  overflow: hidden; \r\n  flex: 1;\r\n  width: 90%;\r\n}\r\n\r\n\r\n._CSS-user {\r\n  padding-right: 1rem;\r\n}\r\n\r\n._CSS-comment {\r\n  flex: 1;\r\n  display: block;\r\n}\r\n\r\n._CSS-comment-footer {\r\n  font-size: 10px;\r\n  align-self: flex-end;\r\n  margin-right: 10px;\r\n  display: flex;\r\n}\r\n\r\n._CSS-comment-attachment {\r\n  margin-right: 5px; \r\n}\r\n\r\n._CSS-comment-attachment--creator {\r\n  margin-left: 5px; \r\n}\r\n\r\n._CSS-comment-footer--creator {\r\n  align-self: flex-start;\r\n  margin-left: 10px;\r\n  display: flex;\r\n}\r\n\r\n._CSS-user--avatar-placeholder {\r\n  transform-origin: top right;\r\n  transform: scale(0.75);\r\n  font-size: 2.3em;\r\n  display: flex;\r\n  margin-right: 16px;\r\n}\r\n\r\n._CSS-actions {\r\n  display: flex;\r\n}","controller":"async init() {\r\n  locals.profile = await Aeppic.getProfilePageForAccount(document.modified.by)\r\n}\r\n\r\nget canEdit() {\r\n  return !params.readonly && Aeppic.Account && !Aeppic.Account.data.isGroupAccount && document.created.by === Aeppic.Account.id\r\n}\r\n\r\nget isEdited() {\r\n  // comments are saved before the user has the chance to fill any data in\r\n  // this means every comment is saved twice at it's \"initial\"/unedited state\r\n  return document.v !== 'initial' && document.previous.v !== 'initial'\r\n}","packages":[]},"locks":[],"created":{"at":"2020-05-08T09:00:45+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2020-05-08T09:00:45+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1588928445262,"ct":1588928445262,"a_depth":4,"a":["apps","14c27659-92d7-4b43-8c4f-25f4cceae591","2e759bfa-c685-48e8-81b4-cec70e93c521","cf155969-ede1-43a4-9b10-3a697b19db91"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"cda11572-57b3-4e88-9ef5-ba3772f91c4f","v":"299733453f0ab6cb","previous":{"v":"09bdb76fc5df6673"},"p":"cf155969-ede1-43a4-9b10-3a697b19db91","f":{"id":"design-form","v":"e3fe9ece11aabc5e","text":"Design"},"data":{"name":"line-item.old","applies":"","template":"<div style=\"width:100%; display:flex;\">\n<ae-design v-if=\"!params.cardOrderCommenter\" class=\"_CSS-user--avatar\" :document=\"locals.profile\" :key=\"locals.profile && locals.profile.id\" name=\"avatar--small\"></ae-design>\n\n<div v-if=\"!locals.profile\" class=\"_CSS-user--avatar-placeholder\" title=\"Unbekannter Benutzer\">\n  <ae-icon class=\"fa fa-user-circle\"></ae-icon>\n</div>\n\n<div class=\"_CSS-comment-area\">\n<div class=\"_CSS-content\">\n  <div v-if=\"params.cardTurncate\" class=\"_CSS-comment-text\" :class=\"[params.cardOrderCommenter? '_CSS-comment_turncate--creator' : '_CSS-comment_turncate']\">\n    <!-- <ae-design class=\"_CSS-user\" :document=\"locals.profile\" name=\"title\"></ae-design> -->\n    <ae-control class=\"_CSS-comment\" :class=\"{'_CSS-comment--creator': params.cardOrderCommenter}\" xv-if=\"!data.contentHtml && data.content\" name=\"editor-light\" :document=\"document\" field-name=\"content\" :readonly=\"true\"></ae-control>\n    <!-- <div class=\"_CSS-comment\" v-else v-html=\"data.contentHtml\"></div> -->\n\n    <ae-control v-if=\"document.data.attachments.length\" style=\"flex: 1; width: 100%;\" name=\"attachment\" :document=\"document\" field-name=\"attachments\" :readonly=\"true\">\n    </ae-control>\n\n  </div>\n\n  <div v-else class=\"_CSS-comment-text\" >\n    <!-- <ae-design class=\"_CSS-user\" :document=\"locals.profile\" name=\"title\"></ae-design> -->\n    <ae-control class=\"_CSS-comment\" :class=\"{'_CSS-comment--creator': params.cardOrderCommenter}\" xv-if=\"!data.contentHtml && data.content\" name=\"editor-light\" :document=\"document\" field-name=\"content\" :readonly=\"true\"></ae-control>\n    <!-- <div class=\"_CSS-comment\" v-else v-html=\"data.contentHtml\"></div> -->\n\n    <ae-control v-if=\"document.data.attachments.length\" style=\"flex: 1; width: 100%;\" name=\"attachment\" :document=\"document\" field-name=\"attachments\" :readonly=\"true\">\n    </ae-control>\n\n  </div>\n\n  </div>\n  <div class=\"_CSS-comment-footer\" :class=\"{'_CSS-comment-footer--creator': params.cardOrderCommenter}\">\n    <span v-if=\"controller.isEdited\"><strong>Bearbeitet&nbsp;</strong> </span><span title=\"\">{{Aeppic.DateTime.fromISO(document.modified.at).toLocaleString(Aeppic.DateTime.DATETIME_SHORT)}}</span>\n  </div>\n</div>\n\n<div>\n\n  <ae-design v-if=\"params.cardOrderCommenter\" class=\"_CSS-user--avatar\" :document=\"locals.profile\" :key=\"locals.profile && locals.profile.id\" name=\"avatar--small\"></ae-design>\n\n  <div class=\"_CSS-actions\">\n    <template v-if=\"controller.canEdit\">\n      <button class=\"ae-button\" @click.stop=\"Aeppic.drillInto(document.id)\">\n        <ae-icon class=\"fa fa-edit\"></ae-icon>\n      </button>\n      <ae-layout  layout-id=\"0ded34c5-1221-4511-af93-d897a79f1369\"\n                  :param-document=\"document\"\n      ></ae-layout>\n    </template>\n  </div>\n</div>\n</div>\n","css":"._CSS {\r\n  display: flex;\r\n}\r\n\r\n._CSS .editor {\r\n  border:none !important;\r\n}\r\n\r\n._CSS-comment {\r\n  display: flex;\r\n}\r\n\r\n._CSS-comment-area {\r\n  display:flex; \r\n  flex-direction:column; \r\n  width:100%; \r\n  overflow: hidden;\r\n}\r\n\r\n._CSS-comment--creator {\r\n  align-self: flex-end;\r\n}\r\n\r\n._CSS-user {\r\n  color: var(--ae-primary);\r\n  font-weight: bold;\r\n}\r\n\r\n._CSS-user--avatar {\r\n  margin-right: var(--ae-size-3);\r\n  height:2.5em;\r\n  transform-origin: top right;\r\n  transform: scale(0.75);\r\n}\r\n\r\n._CSS-content {\r\n  flex: 1;\r\n  display: flex;\r\n  flex-direction: column;\r\n  position: relative;\r\n}\r\n\r\n._CSS-comment_turncate--creator {\r\n  --lh: 1.1rem;\r\n  line-height: var(--lh);\r\n  --max-lines: 6;\r\n  max-height: calc(var(--lh) * var(--max-lines));\r\n  overflow: hidden;\r\n  \r\n}\r\n\r\n._CSS-comment_turncate::before {\r\n  content: \"...\";\r\n  position: absolute;\r\n  bottom: var(--ae-size-2);\r\n  right: var(--ae-size-2);\r\n}\r\n\r\n ._CSS-comment_turncate--creator::before {\r\n  content: \"...\";\r\n  position: absolute;\r\n  bottom: var(--ae-size-2);\r\n  right: var(--ae-size-2);\r\n}\r\n\r\n._CSS-comment_turncate::after,._CSS-comment_turncate--creator::after {\r\n  content: \"\";\r\n  position: absolute;\r\n  right: var(--ae-size-2);\r\n  width: 1rem;\r\n  height: 1rem;\r\n  background: var(--ae-ui-background);\r\n}\r\n\r\n._CSS-comment_turncate {\r\n  --lh: 1.1rem;\r\n  line-height: var(--lh);\r\n  --max-lines: 6;\r\n  max-height: calc(var(--lh) * var(--max-lines));\r\n  overflow: hidden; \r\n}\r\n\r\n._CSS-content > * {\r\n  /* flex: 1; */\r\n  /* display: inline-block; */\r\n  font-size: 0.9em;\r\n}\r\n\r\n._CSS-comment-text {\r\n  align-items: baseline;\r\n  flex-flow: column;\r\n  padding: 0 var(--ae-size-1) 0 var(--ae-size-1);\r\n  margin: 0 0 1em 0;\r\n  overflow: hidden; \r\n  flex: 1;\r\n  width: 90%;\r\n  display: block;\r\n}\r\n\r\n._CSS-user {\r\n  padding-right: 1rem;\r\n}\r\n\r\n._CSS-comment {\r\n  flex: 1;\r\n  display: block;\r\n}\r\n\r\n._CSS-comment-footer {\r\n  display: block !important;\r\n  font-size: 10px;\r\n  align-self: flex-end;\r\n  margin-right: 10px;\r\n}\r\n\r\n._CSS-comment-footer--creator {\r\n  align-self: flex-start;\r\n  margin-left: 10px;\r\n}\r\n\r\n._CSS-user--avatar-placeholder {\r\n  transform-origin: top right;\r\n  transform: scale(0.75);\r\n  font-size: 2.3em;\r\n  display: flex;\r\n  margin-right: 16px;\r\n}\r\n\r\n._CSS-actions {\r\n  display: flex;\r\n}","controller":"async init() {\r\n  locals.profile = await Aeppic.getProfilePageForAccount(document.modified.by)\r\n}\r\n\r\nget canEdit() {\r\n  return !params.readonly && Aeppic.Account && !Aeppic.Account.data.isGroupAccount && document.created.by === Aeppic.Account.id\r\n}\r\n\r\nget isEdited() {\r\n  // comments are saved before the user has the chance to fill any data in\r\n  // this means every comment is saved twice at it's \"initial\"/unedited state\r\n  return document.v !== 'initial' && document.previous.v !== 'initial'\r\n}","packages":[]},"locks":[],"created":{"at":"2017-10-24T12:55:55+02:00","by":"","from":"","client":"d592620b-5008-4926-8d81-205af0c46c8f"},"modified":{"at":"2021-10-14T14:43:48+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1634222628440,"ct":1508842555326,"a_depth":4,"a":["apps","14c27659-92d7-4b43-8c4f-25f4cceae591","2e759bfa-c685-48e8-81b4-cec70e93c521","cf155969-ede1-43a4-9b10-3a697b19db91"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"0ee8b3f1-6ebc-4c60-ba9a-d2431a17b485","v":"40dce758ae3a8e0a","p":"command-execution-right-form","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"list","template":"<div layout=\"row\" layout-align=\"start center\">\n    <svg class=\"small-icon\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\"\n       width=\"24px\" height=\"24px\" viewBox=\"0 0 512 512\" enable-background=\"new 0 0 512 512\" xml:space=\"preserve\">\n      <path id=\"shield-30-icon\" d=\"M256,100.867c40.768,29.345,75.684,40.771,116.5,44.536v154.125c0,24.719-7.423,37.486-18.567,49.053\n        c-18.974,19.691-53.682,39.149-97.933,66.313c-44.255-27.167-78.959-46.623-97.933-66.313\n        c-11.145-11.566-18.567-24.334-18.567-49.053V145.403C180.316,141.639,215.232,130.212,256,100.867 M256,50\n        c-57.861,49.195-96.167,57-156.5,57c0,0,0,116.921,0,192.528c0,79,56.996,99.629,156.5,162.472\n        c99.504-62.843,156.5-83.472,156.5-162.472c0-75.607,0-192.528,0-192.528C352.167,107,313.861,99.195,256,50z M235.666,323.598\n        l-62.088-62.106l26.436-26.441l35.65,35.661l82.309-82.309l26.449,26.433L235.666,323.598z\"/>\n    </svg>\n    <span class=\"line-height centerv document-name\" title=\"{{data.description}}\">{{data.name || (data.allowAllCommands ? 'All' : data.allowedCommands.length) + ' Commands Execution Right on ' + (data.applyToAllForms ? 'All' : (data.targetForms.length === 1? data.targetForms[0].text : (data.targetForms.length + ' Forms'))) + (data.forbiddenCommands.length ? (' with ' + data.forbiddenCommands.length + ' Exceptions') : '')}}<span ng-if=\"data.exceptions.length\">&nbsp; with {{data.exceptions.length}} Exceptions</span></span>\n</div>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2017-08-23T08:24:50+02:00","by":"","from":"","client":"import"},"modified":{"at":"2017-08-23T08:24:50+02:00","by":"","from":"","client":"import"},"t":1719473826750,"ct":1719473826750,"a_depth":3,"a":["system","system-forms","command-execution-right-form"],"a_forms":["system-folder-form","repository-folder-form","form"],"inheritedLocks":[null,null,null,null],"stamps":[],"previous":{"v":"2eca755ad4109226","f":{"id":"design-form","v":"59e0fc1c35995ea8","text":"Design"}},"meta":{"modified":{"at":"2024-06-27T07:37:06+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"129af509-799c-4258-8fb1-7e2f0ecf7a0b","v":"initial","previous":{"v":""},"p":"3f20614c-6274-4bb2-bd92-fde0ec668306","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"list","applies":"","template":"\n          <div class=\"document-marker\">\n            <svg class=\"centerv\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\">\n              <rect x=\"0\" y=\"0\" width=\"100%\" height=\"100%\" ng-style=\"{'fill':document.color}\"/>\n            </svg>\n          </div>   \n          <span class=\"centerv label label-link document-label\">{{document.label}}</span>\n          <span class=\"line-height centerv document-name\" title=\"{{data.description}}\">{{data.name || ('Untitled ' + document.f.text)}}</span>\n        ","css":"","controller":"","packages":[]},"locks":[],"lockRefs":[],"created":{"at":"2018-02-06T09:48:17+01:00","by":"","from":"","client":"server"},"modified":{"at":"2018-02-06T09:48:17+01:00","by":"","from":"","client":"server"},"t":1517906897118,"ct":1517906897118,"a_depth":4,"a":["apps","b791df37-6eef-4a3e-9066-1b79e0bdad31","35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f","3f20614c-6274-4bb2-bd92-fde0ec668306"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"1a0e96d2-a7fc-4876-89e9-0a036d036f50","v":"initial","previous":{"v":""},"p":"b42192cd-f547-4531-8fd2-1ecd7ecff581","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"list","applies":"","template":"<div  style=\"text-decoration:none;background:#f1f1f1;border:1px solid lightgray;padding:0\">\n    <md-list-item class=\"md-2-line\" flex xxclick-navigates-to=\"{{document.id}}\">\n        <div class=\"md-list-item-text\" layout=\"column\">\n           <div layout=\"row\">\n               <div layout=\"column\">\n                   <h3>{{ data.name }}</h3>\n                   <div flex></div>\n                   <h4>{{ data.wohneinheit }}</h4>\n               </div>\n               <span flex></span>\n               <div ng-click=\"$rsCancelEvent($event)\"  ng-if=\"data.telefon\" layout-align=\"center center\" layout=\"row\">\n                   <div flex layout=\"row\">\n                       <md-icon>phone</md-icon>\n                       <a style=\"margin-left:8px\" ng-href=\"tel:{{data.telefon}}\" style=\"display:inline-block;min-width:90px;text-align:right;text-decoration:none;font-weight:bolder\">{{ data.telefon }}</a>\n                   </div>\n               </div>\n            </div>\n         \n        </div>\n        <md-divider ></md-divider>\n    </md-list-item>\n</div>","css":"","controller":"","packages":[]},"locks":[],"lockRefs":[],"created":{"at":"2018-02-06T09:46:25+01:00","by":"","from":"","client":"server"},"modified":{"at":"2018-02-06T09:46:25+01:00","by":"","from":"","client":"server"},"t":1517906785578,"ct":1517906785577,"a_depth":4,"a":["apps","b791df37-6eef-4a3e-9066-1b79e0bdad31","35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f","b42192cd-f547-4531-8fd2-1ecd7ecff581"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"1a405cd1-abec-4555-b447-0f4cf9171315","v":"initial","previous":{"v":""},"p":"6d777b4e-0f5f-4dbf-a642-31e2a3ef4dbc","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"list","applies":"","template":"<div layout-padding layout-align=\"start center\" style=\"xbackground: #ededed; border-bottom:1px solid darkgray; margin-bottom:4px\" layout=\"row\">\n    <div><md-icon flex=\"5\">domain</md-icon></div>\n    <div flex title=\"{{data.description}}\">{{data.name || ('Untitled ' + document.f.text)}}</div>\n</div>","css":"","controller":"","packages":[]},"locks":[],"lockRefs":[],"created":{"at":"2018-02-06T09:47:11+01:00","by":"","from":"","client":"server"},"modified":{"at":"2018-02-06T09:47:11+01:00","by":"","from":"","client":"server"},"t":1517906831066,"ct":1517906831066,"a_depth":4,"a":["apps","b791df37-6eef-4a3e-9066-1b79e0bdad31","35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f","6d777b4e-0f5f-4dbf-a642-31e2a3ef4dbc"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"2892b738-277d-4906-898f-dcea86ec2edd","v":"initial","previous":{"v":""},"p":"61936050-38b7-426c-a7a1-994c750d3af8","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"list","applies":"","template":"\n          <div class=\"document-marker\">\n            <svg class=\"centerv\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\">\n              <rect x=\"0\" y=\"0\" width=\"100%\" height=\"100%\" ng-style=\"{'fill':document.color}\"/>\n            </svg>\n          </div>   \n          <span class=\"centerv label label-link document-label\">{{document.label}}</span>\n          <span class=\"line-height centerv document-name\" title=\"{{data.description}}\">{{data.name || ('Untitled ' + document.f.text)}}</span>\n        ","css":"","controller":"","packages":[]},"locks":[],"lockRefs":[],"created":{"at":"2018-02-06T09:48:11+01:00","by":"","from":"","client":"server"},"modified":{"at":"2018-02-06T09:48:11+01:00","by":"","from":"","client":"server"},"t":1517906891843,"ct":1517906891842,"a_depth":4,"a":["apps","b791df37-6eef-4a3e-9066-1b79e0bdad31","35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f","61936050-38b7-426c-a7a1-994c750d3af8"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"3407223b-0214-4192-9d2c-438c016867e7","v":"initial","previous":{"v":""},"p":"154d8541-9206-4a15-9245-5198b150d7cb","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"list","applies":"","template":"<md-list-item layout-align=\"start start\" layout=\"row\" class=\"md-3-line\" style=\"padding:10px;background:#f1f1f1; border:1px solid lightgray;margin-bottom:4px;padding:0\">\n    <div class=\"md-list-item-text\" layout=\"column\" layout-padding style=\"padding:4px\">\n      <h2>{{ data.name }}</h2>\n      <h4 ng-if=\"data.telefonnummer\"><md-icon>phone</md-icon> {{ data.telefonnummer }}</h4>\n      <div layout=\"row\" layout-align=\"start start\" ng-show=\"data.addresse.street\">\n          <md-icon>location_on</md-icon><div flex>{{data.addresse.street}} {{data.addresse.streetNumber}} <span ng-show=\"data.addresse.street\">,</span> {{data.addresse.postalCode}} {{data.addresse.city}}</div>\n      </div>\n      <p ng-show=\"data.ansprechpartner\">\n        <md-icon>person</md-icon> <strong>{{ data.ansprechpartner }}</strong> ({{data.ansprechpartnerTelefon}} )\n      </p>\n    </div>\n</md-list-item>\n      ","css":"","controller":"","packages":[]},"locks":[],"lockRefs":[],"created":{"at":"2018-02-06T09:48:07+01:00","by":"","from":"","client":"server"},"modified":{"at":"2018-02-06T09:48:07+01:00","by":"","from":"","client":"server"},"t":1517906887215,"ct":1517906887215,"a_depth":4,"a":["apps","b791df37-6eef-4a3e-9066-1b79e0bdad31","35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f","154d8541-9206-4a15-9245-5198b150d7cb"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"3d3b1945-14b8-45db-8a72-b4096894daf2","v":"c5f55fb447f643b1","p":"form","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"list","template":"<div>\n  <img ng-src=\"{{document.icon}}\" class=\"document-icon-small\"> <span class=\"label label-info\">{{data.semver}}</span> &nbsp;{{data.name}}\n</div>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2017-08-23T08:24:50+02:00","by":"","from":"","client":"import"},"modified":{"at":"2017-08-23T08:24:50+02:00","by":"","from":"","client":"import"},"t":1719473826750,"ct":1719473826750,"a_depth":3,"a":["system","system-forms","form"],"a_forms":["system-folder-form","repository-folder-form","form"],"inheritedLocks":[null,null,null,null],"stamps":[],"previous":{"v":"86da5215326ce428","f":{"id":"design-form","v":"initial","text":"Design"}},"meta":{"modified":{"at":"2024-06-27T07:37:06+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"4ae6b895-48b2-42f1-a175-ba2a00db22fe","v":"initial","previous":{"v":""},"p":"0a46aebe-e1fd-4f0e-bf20-4974cec7b03c","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"list","applies":"","template":"<div class=\"document-marker\">\r\n  <svg class=\"centerv\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\">\r\n    <rect x=\"0\" y=\"0\" width=\"100%\" height=\"100%\" ng-style=\"{'fill':document.color}\"/>\r\n  </svg>\r\n</div>   \r\n<span class=\"centerv label label-link\">{{document.label}}</span>\r\n<span class=\"line-height centerv document-name\" title=\"{{data.kommentar}}\">{{data.telefonnummer}}</span>\r\n  ","css":"","controller":"","packages":[]},"locks":[],"lockRefs":[],"created":{"at":"2018-02-06T09:47:51+01:00","by":"","from":"","client":"server"},"modified":{"at":"2018-02-06T09:47:51+01:00","by":"","from":"","client":"server"},"t":1517906871116,"ct":1517906871115,"a_depth":4,"a":["apps","b791df37-6eef-4a3e-9066-1b79e0bdad31","35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f","0a46aebe-e1fd-4f0e-bf20-4974cec7b03c"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"5a053a80-ef8f-473a-b0ea-101ae5a0f066","v":"initial","previous":{"v":""},"p":"3f20614c-6274-4bb2-bd92-fde0ec668306","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"list","applies":"","template":"<div layout=\"row\" layout-padding>\n  <strong>{{data.zaehlerstand}}</strong><span>Stunden</span>\n  <span>{{document.modified.at | amDateFormat: 'DD.MM.YY HH:MM'}}</span>\n</div>","css":"","controller":"","packages":[]},"locks":[],"lockRefs":[],"created":{"at":"2018-02-06T09:48:14+01:00","by":"","from":"","client":"server"},"modified":{"at":"2018-02-06T09:48:14+01:00","by":"","from":"","client":"server"},"t":1517906894767,"ct":1517906894767,"a_depth":4,"a":["apps","b791df37-6eef-4a3e-9066-1b79e0bdad31","35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f","3f20614c-6274-4bb2-bd92-fde0ec668306"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"69dc1405-7931-4a56-8be1-67ca3d3c8de6","v":"ac9e3cca77f79901","p":"layout-form","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"list","template":"<span title=\"{{data.description}}\"><img src=\"images/iconmonstr-code-6-icon.svg\" class=\"document-icon-small\"> <span class=\"label label-info\">Layout</span>  <strong>{{data.name}}</strong></span>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2017-08-23T08:24:50+02:00","by":"","from":"","client":"import"},"modified":{"at":"2017-08-23T08:24:50+02:00","by":"","from":"","client":"import"},"t":1719473826750,"ct":1719473826750,"a_depth":3,"a":["system","system-forms","layout-form"],"a_forms":["system-folder-form","repository-folder-form","form"],"inheritedLocks":[null,null,null,null],"stamps":[],"previous":{"v":"a390cd80add310a5","f":{"id":"design-form","v":"initial","text":"Design"}},"meta":{"modified":{"at":"2024-06-27T07:37:06+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"70463178-e9af-406c-bdfa-4ce28f6f6877","v":"86f2d0798613f1a9","p":"4149285b-f8da-44a0-9d06-eff1e81fcb1b","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"list","template":"<span class=\"line-item\" title=\"{{data.description}}\"><img ng-src=\"{{document.icon}}\" class=\"document-icon-small\"> <span class=\"label label-info\">Navigation Target</span><strong>{{data.title}}</strong></span>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2017-08-23T08:24:50+02:00","by":"","from":"","client":"import"},"modified":{"at":"2017-08-23T08:24:50+02:00","by":"","from":"","client":"import"},"t":1719473826750,"ct":1719473826750,"a_depth":3,"a":["system","system-forms","4149285b-f8da-44a0-9d06-eff1e81fcb1b"],"a_forms":["system-folder-form","repository-folder-form","form"],"inheritedLocks":[null,null,null,null],"stamps":[],"previous":{"v":"initial","f":{"id":"design-form","v":"927bf22562d7b1b6","text":"Design"}},"meta":{"modified":{"at":"2024-06-27T07:37:06+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"74e87af9-a8b4-4c6d-965a-013583c19c97","v":"initial","previous":{"v":""},"p":"e564926e-298f-4656-b500-6526d403cebc","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"list","applies":"","template":"\n          <div class=\"document-marker\">\n            <svg class=\"centerv\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\">\n              <rect x=\"0\" y=\"0\" width=\"100%\" height=\"100%\" ng-style=\"{'fill':document.color}\"/>\n            </svg>\n          </div>   \n          <span class=\"centerv label label-link document-label\">{{document.label}}</span>\n          <span class=\"line-height centerv document-name\" title=\"{{data.description}}\">{{data.name || ('Untitled ' + document.f.text)}}</span>\n        ","css":"","controller":"","packages":[]},"locks":[],"lockRefs":[],"created":{"at":"2018-02-06T09:47:32+01:00","by":"","from":"","client":"server"},"modified":{"at":"2018-02-06T09:47:32+01:00","by":"","from":"","client":"server"},"t":1517906852184,"ct":1517906852184,"a_depth":4,"a":["apps","b791df37-6eef-4a3e-9066-1b79e0bdad31","35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f","e564926e-298f-4656-b500-6526d403cebc"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"8d5afd3b-9439-4d97-8126-8b7b7e7fe722","v":"06b269bf20249513","p":"color","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"list","template":"<div>\n  <div style=\"width:100%;height:64px;border:1px solid #eee;margin-right:16px;display:inline-block\" ng-style=\"{'background-color':data.color}\"></div>\n  <div style=\"padding-bottom: 16px;text-align:center\"><span title=\"{{data.description}}\">{{data.name}}</span></div>\n</div>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2017-08-23T08:24:50+02:00","by":"","from":"","client":"import"},"modified":{"at":"2017-08-23T08:24:50+02:00","by":"","from":"","client":"import"},"t":1719473826750,"ct":1719473826750,"a_depth":3,"a":["system","system-forms","color"],"a_forms":["system-folder-form","repository-folder-form","form"],"inheritedLocks":[null,null,null,null],"stamps":[],"previous":{"v":"initial","f":{"id":"design-form","v":"initial","text":"Design"}},"meta":{"modified":{"at":"2024-06-27T07:37:06+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"bfa08e16-9445-4671-a0aa-f1042ee7ac27","v":"initial","previous":{"v":""},"p":"e564926e-298f-4656-b500-6526d403cebc","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"list","applies":"","template":"\n          <div class=\"document-marker\">\n            <svg class=\"centerv\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\">\n              <rect x=\"0\" y=\"0\" width=\"100%\" height=\"100%\" ng-style=\"{'fill':document.color}\"/>\n            </svg>\n          </div>   \n          <span class=\"centerv label label-link document-label\">{{document.label}}</span>\n          <span class=\"line-height centerv document-name\" title=\"{{data.description}}\">{{data.name || ('Untitled ' + document.f.text)}}</span>\n        ","css":"","controller":"","packages":[]},"locks":[],"lockRefs":[],"created":{"at":"2018-02-06T09:47:35+01:00","by":"","from":"","client":"server"},"modified":{"at":"2018-02-06T09:47:35+01:00","by":"","from":"","client":"server"},"t":1517906855148,"ct":1517906855148,"a_depth":4,"a":["apps","b791df37-6eef-4a3e-9066-1b79e0bdad31","35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f","e564926e-298f-4656-b500-6526d403cebc"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"d80d400c-313a-451d-a6f9-0d2cf948eb7a","v":"4ca12f0e5756e4c2","previous":{"v":"1acb2f58b23a2d68"},"p":"816b2d0e-5158-4f0c-a5cf-6069bb76de69","f":{"id":"design-form","v":"3385ac6766f32638","text":"Design"},"data":{"name":"list","template":"<div class=\"overflow-hidden grid relative\" :class=\"[controller.isAdmin ? 'grid-cols-[20px_50px_150px_auto]' :  'grid-cols-[20px_50px_auto]', controller.isActiveWartung && 'bg-theme-100 p-2 rounded' ]\">\n\n  <section v-if=\"data.ergebnis === 2 || data.ergebnis === 3\" title=\"Abgeschlossen\" class=\"w-2\" >\n    <ae-icon class=\"fa fa-check\" :class=\"[ data.ergebnis === 2 && 'text-success', data.ergebnis === 3 && 'text-error']\"></ae-icon>\n  </section>\n  <section v-else-if=\"data.ergebnis === 4\" title=\"Abgebrochen\" class=\"w-2\" >\n    <ae-icon class=\"fa fa-times\"></ae-icon>\n  </section>\n  <section v-else-if=\"data.ergebnis === 1\" title=\"Begonnen\" class=\"w-2\" >\n    <ae-icon class=\"fa fa-play\"></ae-icon>\n  </section>\n  <section v-else title=\"Noch nicht begonnen\" class=\"w-2\" >\n    <ae-icon class=\"fa fa-clipboard-list\"></ae-icon>\n  </section> \n\n  <section class=\"flex\">\n    <ae-design class=\"contents\" name=\"serial-number\" :document-id=\"document.p\"></ae-design>.{{ params.position }}\n  </section>\n\n  <section v-if=\"controller.isAdmin\" title=\"Barcode nur für Admin sichtbar\" class=\"text-theme-400\">\n    {{data.barcode}}\n  </section>\n  \n  <section class=\"overflow-hidden\">\n    <ae-design name=\"title\" :document-id=\"data.eintrag.id\"></ae-design>\n  </section>\n \n  <section v-if=\"controller.isActiveWartung\" class=\"flex absolute left-0 top-0 h-3 w-3 \" title=\"Dies ist der nächste Wartungspunkt\">\n    <span class=\"animate-ping [animation-duration:2s] motion-reduce absolute inline-flex h-full w-full rounded-full bg-sky-400 opacity-75\"></span>\n    <span class=\"relative inline-flex rounded-full h-3 w-3 bg-sky-500\"></span> \n  </section> \n  \n</div>\n\n\n<!--\n[ergebnis]: Select\n  - 0: \n  - 1: Begonnen\n  - 2: Abgeschlossen - Alles in Ordnung\n  - 3: Abgeschlossen - Teilweise nicht in Ordnung\n  - 4: Abgebrochen\n  \n-->","css":"._CSS-color--ok {\n  color: var(--ae-accent-green);\n}\n\n._CSS-color--error {\n  color: var(--ae-accent-red);\n}","controller":"class Controller {\n  async init() {\n    // locals.entry = null\n    // locals.entry = await Aeppic.get(data.eintrag)\n  }\n  get isAdmin() {\n    return Aeppic.Account?.data.isAdmin\n  }\n\n  get isActiveWartung() {\n    return params.activeDocument?.id === document.id\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-03-03T15:28:25+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-04-26T09:25:07+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1650965107246,"ct":1646321305390,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","816b2d0e-5158-4f0c-a5cf-6069bb76de69"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"faf1642e-a20d-4687-a353-9fa3a6a919d6","v":"696ab55f57efd020","p":"all-commands-execution-right-form","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"list","template":"<svg class=\"small-icon\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\"\r\n\t width=\"24px\" height=\"24px\" viewBox=\"0 0 512 512\" enable-background=\"new 0 0 512 512\" xml:space=\"preserve\">\r\n  <path id=\"shield-30-icon\" d=\"M256,100.867c40.768,29.345,75.684,40.771,116.5,44.536v154.125c0,24.719-7.423,37.486-18.567,49.053\r\n  \tc-18.974,19.691-53.682,39.149-97.933,66.313c-44.255-27.167-78.959-46.623-97.933-66.313\r\n  \tc-11.145-11.566-18.567-24.334-18.567-49.053V145.403C180.316,141.639,215.232,130.212,256,100.867 M256,50\r\n  \tc-57.861,49.195-96.167,57-156.5,57c0,0,0,116.921,0,192.528c0,79,56.996,99.629,156.5,162.472\r\n  \tc99.504-62.843,156.5-83.472,156.5-162.472c0-75.607,0-192.528,0-192.528C352.167,107,313.861,99.195,256,50z M235.666,323.598\r\n  \tl-62.088-62.106l26.436-26.441l35.65,35.661l82.309-82.309l26.449,26.433L235.666,323.598z\"/>\r\n</svg>\r\n<span class=\"line-height centerv document-name\" title=\"{{data.description}}\">{{data.name || 'All Commands Execution Right'}}<span ng-if=\"data.exceptions.length\">&nbsp; with {{data.exceptions.length}} Exceptions</span></span>\r\n  ","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2017-08-23T08:24:50+02:00","by":"","from":"","client":"import"},"modified":{"at":"2017-08-23T08:24:50+02:00","by":"","from":"","client":"import"},"t":1719473826750,"ct":1719473826750,"a_depth":3,"a":["system","system-forms","all-commands-execution-right-form"],"a_forms":["system-folder-form","repository-folder-form","form"],"inheritedLocks":[null,null,null,null],"stamps":[],"previous":{"v":"a8396e3b741801eb","f":{"id":"design-form","v":"927bf22562d7b1b6","text":"Design"}},"meta":{"modified":{"at":"2024-06-27T07:37:06+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"fb1c12bc-43dc-4cc1-94d7-ae1cfff9f35b","v":"1907b612a651cddb","p":"document-reference-form","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"list","template":"<div class=\"document-marker\">\n  <svg class=\"centerv\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\">\n    <rect x=\"0\" y=\"0\" width=\"100%\" height=\"100%\" ng-style=\"{'fill':document.color}\"/>\n  </svg>\n</div>   \n<span class=\"centerv label label-link document-label\">{{document.label}}</span>\n<span class=\"line-height centerv document-name\" title=\"{{data.description}}\">{{data.name || data.referencedDocument.text  || 'empty reference'}}</span>\n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2017-08-23T08:24:50+02:00","by":"","from":"","client":"import"},"modified":{"at":"2017-08-23T08:24:50+02:00","by":"","from":"","client":"import"},"t":1719473826751,"ct":1719473826751,"a_depth":3,"a":["system","system-forms","document-reference-form"],"a_forms":["system-folder-form","repository-folder-form","form"],"inheritedLocks":[null,null,null,null],"stamps":[],"previous":{"v":"aa9b02d22c34a704","f":{"id":"design-form","v":"927bf22562d7b1b6","text":"Design"}},"meta":{"modified":{"at":"2024-06-27T07:37:06+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"0350a913-c330-4b6d-adf5-9a51bae3511e","v":"fe3bbbe88c75dda4","previous":{"v":"initial"},"p":"816b2d0e-5158-4f0c-a5cf-6069bb76de69","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"list-review","template":"<div class=\"\">\n  <section class=\"flex gap-2 items-center\" @click.stop=\"locals.showDetails = !locals.showDetails\">\n    <ae-layout  layout-id=\"a2cd7699-9b46-494f-8f89-cb1f62151d82\"\n                :param-icon=\"locals.showDetails ? 'fa fa-chevron-circle-up' : 'fa fa-chevron-circle-down'\"\n                @selected=\"locals.showDetails = !locals.showDetails\"\n                :param-disabled=\"params.readonly\"\n    ></ae-layout>\n    <ae-design name=\"list\" :document=\"document\" :params=\"params\"></ae-design>\n  </section>\n\n  <section v-if=\"locals.showDetails || params.showDetails\">\n      <ae-list list-id=\"2e798091-303f-406b-a42a-93aa1cd8425c\"\n          :documents=\"data.arbeiten\"\n          param-design=\"work\"\n          :param-design-params=\"{ readonly: true }\"\n      ></ae-list>\n  </section>\n  \n</div>\n\n ","css":"","controller":"class Controller {\n  async init() {\n    locals.showDetails = false\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-04-06T14:03:01+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-04-06T14:21:47+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1649254907492,"ct":1649253781803,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","816b2d0e-5158-4f0c-a5cf-6069bb76de69"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","144e85c0-d7f9-4b20-8928-be30f0c78bda"],"a_depth":2,"a_forms":["folder","application-form"],"created":{"at":"2025-04-11T07:21:33+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"ct":1744356093892,"data":{"aliases":[],"controller":"","css":"","description":"","name":"Lists","packages":[],"template":""},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"b9f62a43-b908-4462-b972-a210af6c42e9","inheritedLocks":[null,null,null],"locks":[],"modified":{"at":"2025-04-11T07:21:33+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"144e85c0-d7f9-4b20-8928-be30f0c78bda","stamps":[],"t":1744356093893,"v":"initial"},{"id":"16537483-8904-463e-ab38-d614b405239a","v":"initial","p":"9bcbb6e8-5d66-4c3b-9132-8482e82e4594","f":{"id":"design-form","v":"49954170df6a253b","text":"Design"},"data":{"name":"logo","template":"<img :src=\"Aeppic.Content.getSrc(document, 'logo')\">","css":"","controller":"","packages":[],"description":""},"locks":[],"created":{"at":"2018-12-07T12:11:00+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2018-12-07T12:11:00+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1544184660592,"ct":1544184660592,"a_depth":4,"a":["apps","781ff5de-69db-49dc-99f0-f328b308cd7d","dbd0bd68-3479-4032-9303-9d51615c27a7","9bcbb6e8-5d66-4c3b-9132-8482e82e4594"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"f6cb757e-9878-4ce3-9fec-bff77a0fc2e8","v":"8e43d8995b44e8a1","previous":{"v":"cffce88a8f38717a"},"p":"4551c597-7595-4858-8b7f-207a7fb15b3e","f":{"id":"design-form","v":"bcdfee0bbf32737b","text":"Design"},"data":{"name":"logo","template":"<header class=\"_CSS-header\">\n  <img class=\"_CSS-header__logo\"  style=\"width: 200px;\" v-if=\"locals.logo\" :src=\"locals.logo\">\n</header>","css":"._CSS-header__logo {\n  display: inline-block;\n  /* margin-right: 32px; */\n  position: relative;\n}","controller":"class Controller {\n  async init() {\n    locals.logo = null\n\n    const company = await Aeppic.get(document.a[0])\n\n    if (!company) {\n      return\n    }\n\n    locals.logo = Aeppic.Content.getSrc(company, 'logo')\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2018-10-30T12:49:09+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2020-10-13T10:11:31+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1602583891991,"ct":1602583891990,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","4551c597-7595-4858-8b7f-207a7fb15b3e"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"86210970-f6d7-4ab2-9e24-cfa6fbc839e0","v":"8c22e6d2580e675a","previous":{"v":"6786ab31e0c1f420"},"p":"4551c597-7595-4858-8b7f-207a7fb15b3e","f":{"id":"design-form","v":"bcdfee0bbf32737b","text":"Design"},"data":{"name":"logo-with-title","template":"<header class=\"_CSS-header\">\n  <svg class=\"_CSS-header__logo\" style=\"width: 200px;\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\" viewBox=\"0 0 510 510\" enable-background=\"new 0 0 510 510\" xml:space=\"preserve\"> <path d=\"M487.326,8.103V8.031l3.361-0.93V5.027H477.17v10.908h2.789V8.246h0.608c4.292,0,7.868,2.468,7.868,7.724 c0,5.186-4.184,8.834-10.442,8.834c-6.008,0-10.622-2.789-10.622-8.941c0-4.041,2.038-6.437,5.436-7.153V5.385 c-5.007,0.822-8.225,4.47-8.225,10.407c0,8.047,5.901,12.303,13.411,12.303c7.76,0,13.232-4.828,13.232-12.016 C491.225,12.716,489.937,9.962,487.326,8.103L487.326,8.103z M482.892,141.704v-10.193l7.796-2.718v-3.505l-25.57,9.442v3.612 l25.57,9.406v-3.29L482.892,141.704L482.892,141.704z M480.281,140.774l-8.584-3.04c-1.466-0.501-3.612-1.18-3.612-1.18v-0.072 c0,0,2.182-0.644,3.612-1.144l8.584-2.933V140.774L480.281,140.774z M491.189,109.772c0-5.508-2.682-9.406-7.474-9.406 c-5.758,0-6.974,4.542-7.976,9.513c-0.751,3.827-1.609,6.688-4.506,6.688c-2.646,0-4.113-2.289-4.113-5.758 c0-3.755,1.824-6.115,5.472-6.581v-3.04c-4.721,0.644-7.976,3.29-7.976,9.692c0,5.186,2.539,8.691,6.759,8.691 c4.828,0,6.115-3.863,7.117-8.369c1.002-4.578,1.823-7.653,5.329-7.653c3.183,0,4.792,2.539,4.792,6.079 c0,4.828-2.253,7.475-6.58,7.904v3.147C487.183,120.393,491.189,116.96,491.189,109.772L491.189,109.772z M490.688,83.525h-22.745 v-8.512h-2.825v20.242h2.825v-8.512h22.745V83.525L490.688,83.525z M490.688,64.926h-25.57v3.219h25.57V64.926L490.688,64.926z M469.695,52.985v-0.072c0,0,1.931-1.073,3.183-1.895l17.81-11.73v-3.29h-25.57v3.005h21.064v0.071c0,0-1.967,1.002-3.29,1.86 l-17.774,11.659v3.397h25.57v-3.004H469.695L469.695,52.985z M464.545,163.04c0,7.617,5.829,12.124,13.339,12.124 c7.761,0,13.304-4.721,13.304-11.981c0-3.254-0.93-5.865-2.682-7.653c-1.788-1.824-4.649-3.04-7.189-3.076v3.183 c3.756,0.322,7.046,2.611,7.046,7.439c0,5.329-4.22,8.798-10.479,8.798c-6.009,0-10.55-3.147-10.55-8.763 c0-4.04,2.182-6.58,5.364-7.188v-3.148C467.978,153.455,464.545,157.067,464.545,163.04L464.545,163.04z M321.596,390.024h121.623 v-28.978h-88.286v-46.222h76.789v-28.499h-76.789v-38.318h87.596v-29.218H321.596V390.024L321.596,390.024z M321.724,185.059 h120.878v-7.304H329.531V95.407H431.27v-7.051H329.531V12.051h110.554V5H321.724V185.059L321.724,185.059z M368.774,423.311 l-51.563,48.969v-48.969h-1.692v80.675h1.692v-29.562l17.714-16.812l39.153,46.374h2.03l-39.942-47.503l34.978-33.172H368.774 L368.774,423.311z M176.53,390.024h122.255v-28.978H210.04v-46.222h77.19v-28.499h-77.19v-38.318h88.052v-29.218H176.53V390.024 L176.53,390.024z M176.421,185.059H297.3v-7.304H184.228V95.407h101.74v-7.051h-101.74V12.051h110.554V5H176.421V185.059 L176.421,185.059z M189.535,503.421c-15.232,0-27.418-7.108-27.418-26.064v-54.046h-1.692v54.046 c0,20.084,13.088,27.643,29.11,27.643c15.684,0,29.11-7.56,29.11-27.643v-54.046h-1.692v54.046 C216.953,496.312,204.428,503.421,189.535,503.421L189.535,503.421z M157.534,95.911C157.534,45.797,135.373,5,83.244,5H18.775 v180.059h62.706C133.61,185.059,157.534,146.277,157.534,95.911L157.534,95.911z M149.223,95.911 c0,50.87-24.427,82.097-67.994,82.097H26.582V12.304h56.41C126.559,12.304,149.223,45.041,149.223,95.911L149.223,95.911z M95.566,218.789H18.93v171.235h78.552c18.201,0,33.289-5.03,43.108-13.651c10.058-8.622,15.088-19.638,15.088-35.684 c0-21.075-12.933-36.881-31.853-42.39v-0.719c16.046-5.508,26.823-16.764,26.823-34.247c0-13.411-4.311-23.709-13.651-32.091 C128.137,223.339,114.007,218.789,95.566,218.789L95.566,218.789z M53.655,313.388h39.038c15.806,0,27.78,8.382,27.78,24.667 c0,13.89-10.058,23.231-26.822,23.231H53.655V313.388L53.655,313.388z M91.974,247.049c15.328,0,24.668,7.425,24.668,20.117 c0,13.411-10.298,20.596-25.386,20.596h-37.6v-40.714H91.974L91.974,247.049z M47.731,423.311h-28.66v80.675h1.693v-37.573h26.177 c17.263,0,25.5-8.011,25.5-21.664c0-8.575-3.724-14.668-10.042-18.166C58.45,424.439,53.373,423.311,47.731,423.311L47.731,423.311z M20.764,424.89h26.967c13.99,0,23.018,7.108,23.018,19.858c0,12.638-7.56,20.084-23.808,20.084H20.764V424.89L20.764,424.89z M85.46,423.311h-1.692v80.675h1.692v-42.199h55.4v42.199h1.692v-80.675h-1.692v36.896h-55.4V423.311L85.46,423.311z M238.321,423.311h-1.805v80.675h1.692v-77.854l56.979,77.854h1.692v-80.675h-1.692v77.853L238.321,423.311L238.321,423.311z M382.617,423.311h-1.919l30.352,44.117v36.557h1.692v-36.557l30.351-44.117h-1.918l-29.337,42.65L382.617,423.311L382.617,423.311z M487.72,190.791v13.411h-22.602v3.219h25.57v-16.63H487.72L487.72,190.791z M482.892,230.47v-10.192l7.796-2.718v-3.505 l-25.57,9.442v3.612l25.57,9.406v-3.29L482.892,230.47L482.892,230.47z M480.281,229.54l-8.584-3.04 c-1.466-0.5-3.612-1.18-3.612-1.18v-0.071c0,0,2.182-0.644,3.612-1.144l8.584-2.933V229.54L480.281,229.54z M469.695,260.135v-0.072 c0,0,1.931-1.073,3.183-1.895l17.81-11.73v-3.29h-25.57v3.004h21.064v0.072c0,0-1.967,1.001-3.29,1.859l-17.774,11.659v3.397h25.57 v-3.004H469.695L469.695,260.135z M464.545,283.509c0,7.725,5.686,12.517,13.339,12.517s13.34-4.792,13.34-12.517 s-5.687-12.517-13.34-12.517S464.545,275.784,464.545,283.509L464.545,283.509z M467.334,283.509c0-6.008,4.542-9.227,10.55-9.227 c6.008,0,10.514,3.219,10.514,9.227c0,6.009-4.506,9.227-10.514,9.227C471.876,292.736,467.334,289.518,467.334,283.509 L467.334,283.509z M490.688,303.887h-25.57v3.219h25.57V303.887L490.688,303.887z M467.943,313.975h-2.825v20.242h2.825v-8.511 h22.745v-3.218h-22.745V313.975L467.943,313.975z M490.688,335.718l-25.57,9.442v3.612l25.57,9.406v-3.29l-7.796-2.754v-10.192 l7.796-2.718V335.718L490.688,335.718z M480.281,351.203l-8.584-3.04c-1.466-0.5-3.612-1.18-3.612-1.18v-0.071 c0,0,2.182-0.644,3.612-1.144l8.584-2.933V351.203L480.281,351.203z M490.688,364.811h-25.57v3.004h21.064v0.072 c0,0-1.967,1.001-3.29,1.859l-17.774,11.659v3.397h25.57v-3.004h-20.993v-0.072c0,0,1.931-1.073,3.183-1.895l17.81-11.73V364.811 L490.688,364.811z M465.117,400.509v11.945h25.57v-3.219h-10.8v-7.117c0-3.433,1.323-4.935,5.078-5.185 c4.292-0.286,5.258-0.393,5.722-0.93v-3.469h-0.143c-0.322,0.465-1.359,0.895-5.471,1.18c-3.791,0.251-5.579,1.073-6.509,3.684 h-0.108c-1.002-3.076-3.219-4.435-6.33-4.435C467.943,392.963,465.117,396.003,465.117,400.509L465.117,400.509z M467.907,401.475 c0-3.756,1.574-5.186,4.685-5.186c2.897,0,4.685,1.788,4.685,5.364v7.581h-9.37V401.475L467.907,401.475z M467.943,419.992h-2.825 v18.061h25.57v-18.489h-2.968v15.271h-8.976v-13.483h-2.718v13.483h-8.083V419.992L467.943,419.992z M467.943,444.89h-2.825v20.242 h2.825v-8.512h22.745v-3.219h-22.745V444.89L467.943,444.89z M490.688,471.969h-25.57v3.004h21.064v0.072 c0,0-1.967,1.001-3.29,1.859l-17.774,11.659v3.398h25.57v-3.005h-20.993v-0.071c0,0,1.931-1.073,3.183-1.895l17.81-11.73V471.969 L490.688,471.969z M490.688,500.898h-25.57v3.219h25.57V500.898L490.688,500.898z\"/> </svg>\n  <div class=\"_CSS-header__title\">{{ data.name }}</div> \n</header>","css":"._CSS-header__title {\n  display: inline-block;\n  vertical-align: top;\n  font-size: 56px;\n  font-weight: bold;\n  line-height:128px;\n  margin:0;\n  position: relative;\n}\n\n._CSS-header__logo {\n  display: inline-block;\n  margin-right: 32px;\n  position: relative;\n}","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2018-06-14T08:41:38+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2020-10-13T10:11:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1602583892003,"ct":1602583892003,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","4551c597-7595-4858-8b7f-207a7fb15b3e"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"11ec1c33-74d3-44b3-8cba-651db6e980b1","v":"cf0fbb9a82118c99","previous":{"v":"0f49c8900401a892"},"p":"command-form","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"menu-entry","template":"<div v-if=\"locals.missingTarget\">TARGET MISSING FOR MENU</div>\n\n<template v-if=\"locals.forceVisible || locals.isVisible\">\n  <span v-if=\"!locals.isVisible\">Some command condition is hiding this</span>\n  <div flex=\"flex flex-row m-1 p-1\">\n    <ae-icon v-if=\"data.namedIcon\" :class=\"data.namedIcon\"\n      :style=\"data.namedIconColor ? 'color:' + data.namedIconColor : ''\"\n      ></ae-icon>\n    <button class=\"flex-1\" @click=\"controller.execute()\" :disabled=\"!locals.canExecute || locals.executing\" :title=\"data.description\">{{ data.label || data.name }}</button>\n  </div>\n</template>","css":"._CSS > button {\n  border: none;\n  padding: var(--ae-size-1);\n  margin: 0;\n  font-size: var(--ae-font-size-3);\n}\n\n\n._CSS > button {\n  padding:var(--ae-size-1); \n  margin:0;\n  font-size: var(--ae-font-size-3);\n}\n\n._CSS > button {\n  outline: none;\n}\n._CSS:hover {\n  background: var(--ae-background-200);\n  cursor: pointer;\n}","controller":"init() {\n  locals.target = params.target?.id || params.target\n  locals.missingTarget = !locals.target\n  \n  locals.forceVisible = params.forceVisible === true\n  locals.isVisible = false\n  locals.canExecute = false\n  locals.executing = false\n\n  if (params.target) {\n    Aeppic.Commands.isVisible(document, params.target).then(isVisible => locals.isVisible = isVisible)\n    Aeppic.Commands.hasRightToExecute(document, params.target).then(canExecute => locals.canExecute = canExecute)\n  }\n}\n\nasync execute() {\n  if (locals.executing) {\n    console.log('Already executing')\n    return\n  }\n\n  try {\n    locals.executing = true\n    let result = await Aeppic.Commands.execute(document, params.target)\n    console.log(result)\n  } finally {\n    locals.executing = false\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-06-21T08:40:07+02:00","by":"427610a9-39dc-4014-9176-5f72aeb23263","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-07-05T16:16:08+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720188968829,"ct":1718952006953,"a_depth":3,"a":["system","system-forms","command-form"],"a_forms":["system-folder-form","repository-folder-form","form"],"inheritedLocks":[null,null,null,null],"stamps":[]},{"id":"3144d003-7ef7-4e5f-9445-9eba6503b0e8","v":"139276dee70d2825","previous":{"v":"a76267b8a7756d18"},"p":"3cf04f76-f463-4b98-9c73-78df68374ede","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"menu-entry","applies":"","template":"<div v-if=\"data.target.id\" class=\"_CSS-line\" @click.stop=\"$emit('selected', data.target.id)\"> \n  <ae-design name=\"icon\" :document=\"document\" :class=\"{ '_CSS-icon--expand': controller.iconField === 'iconExpanded' }\" :param-field-name=\"controller.iconField\"></ae-design>\n  <ae-design class=\"_CSS-title\" v-if=\"controller.iconField === 'icon'\" name=\"title\" :document=\"document\" v-show=\"!params.hideTitle\"></ae-design>\n</div>\n<a v-else-if=\"data.url\" class=\"_CSS-line _CSS-link--unstyled\" :href=\"controller.urlAsHref()\" @click.stop target=\"_blank\"> \n  <ae-design name=\"icon\" :document=\"document\" :class=\"{ '_CSS-icon--expand': controller.iconField === 'iconExpanded' }\" :param-field-name=\"controller.iconField\"></ae-design>\n  <ae-design v-if=\"controller.iconField === 'icon'\" class=\"_CSS-title\" name=\"title\" :document=\"document\" v-show=\"!params.hideTitle\"></ae-design>\n</a>","css":"._CSS {\n  flex: 1;\n  display: flex;\n}\n\n._CSS-line {\n  flex:1;\n  display: flex;\n  align-items: center;\n\n  min-width: 48px;\n  height: 48px;\n  padding: 16px;\n  transition: transform 0.1s ease-in;\n  white-space: nowrap;\n}\n\n._CSS-line > * + *{\n  margin-left: 8px;\n}\n\n._CSS-line:hover {\n  cursor: pointer;\n}\n\n._CSS-icon--expand {\n  flex: 1;  \n}\n\n._CSS-link--unstyled {\n  color: inherit;\n  text-decoration: inherit;\n}\n\n._CSS-title {\n  font-size: var(--ae-font-size-3);\n  min-width: 0;\n  overflow: hidden;\n  white-space: nowrap;\n  \n  text-overflow: ellipsis;\n}","controller":"\r\nget iconField() {\r\n  if (data.iconExpanded && data.iconExpanded.dataUrl && params.expanded) {\r\n    return 'iconExpanded'\r\n  }\r\n\r\n  return 'icon'\r\n}\r\n\r\n\r\nurlAsHref() {\r\n  if (data.url.startsWith('http')) {\r\n    return data.url\r\n  }\r\n\r\n  return `http://${data.url}`\r\n}","packages":[]},"locks":[],"created":{"at":"2018-05-23T16:21:38+02:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","from":"","client":"server"},"modified":{"at":"2022-03-18T13:12:25+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1647609145130,"ct":1527085298894,"a_depth":4,"a":["apps","77ee8815-2c3a-4bb5-abd9-90541a545a24","b42e5a69-6cf0-4b55-928a-755011005b5a","3cf04f76-f463-4b98-9c73-78df68374ede"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"953ca373-4a04-4499-8bb1-c16bf1c2aa48","v":"initial","p":"9292b892-ed0f-48fd-b3f3-d1e3729cb7fa","f":{"id":"design-form","v":"2d98bf27c3108340","text":"Design"},"data":{"name":"menu-entry","applies":"","description":"","template":"<div class=\"_CSS-line\"> \n  <!-- <ae-design v-if=\"controller.iconField === 'icon'\" name=\"icon\" :document=\"document\" :class=\"{ '_CSS-icon--expand': controller.iconField === 'iconExpanded' }\" :param-field-name=\"controller.iconField\"></ae-design> -->\n  <ae-design v-if=\"controller.iconField === 'icon'\" name=\"icon\" :document=\"document\" :param-field-name=\"controller.iconField\"></ae-design>\n  <ae-design v-if=\"!params.hideTitle\" name=\"title\" :document=\"document\" ></ae-design>\n</div>\n","css":"._CSS {\n  flex: 1;\n  display: flex;\n}\n\n._CSS-line {\n  flex:1;\n  display: flex;\n  align-content: center;\n\n  min-width: 48px;\n  height: 48px;\n  padding: 16px;\n  transition: transform 0.1s ease-in;\n  white-space: nowrap;\n}\n\n._CSS-line > * + *{\n  margin-left: 8px;\n}\n\n._CSS-line:hover {\n  cursor: pointer;\n}\n\n","controller":"async init() {\n  locals.target = await Aeppic.get(data.target)\n}\n\nget iconField() {\n  if (data.iconExpanded && data.iconExpanded.dataUrl && params.expanded) {\n    return 'iconExpanded'\n  }\n\n  return 'icon'\n}\n","packages":[]},"locks":[],"created":{"at":"2018-10-30T11:15:18+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2018-10-30T11:15:18+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1540898118750,"ct":1540898118750,"a_depth":4,"a":["apps","77ee8815-2c3a-4bb5-abd9-90541a545a24","ff13ca04-7a64-4d12-ab9a-edee939ca478","9292b892-ed0f-48fd-b3f3-d1e3729cb7fa"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"cd73becf-4d91-49bb-8867-5433e43223e1","v":"070d13025ac3bedd","previous":{"v":"ff84b89487c8a5b9"},"p":"34db9828-9784-44cb-bfd2-d1ad89cba0e4","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"menu-entry","template":"<template>\n  <ae-design v-show=\"params.hideTitle\" name=\"icon\" :document=\"document\" class=\"_CSS-placeholder-icon\" :class=\"{ '_CSS-icon--expand': controller.iconField === 'iconExpanded' }\" :param-field-name=\"controller.iconField\"></ae-design>\n  <div v-show=\"!params.hideTitle\" class=\"_CSS-subentries\" @click.stop>\n    <div class=\"_CSS-subentries__icon\"\n         :title=\"menuEntry.data.displayName || menuEntry.data.name || menuEntry.id\"\n        v-for=\"menuEntry of locals.menuEntries\"\n        @click.stop=\"$emit('selected', menuEntry.data.target.id)\"\n    >\n    <ae-design \n              name=\"icon\"\n              :document=\"menuEntry\"\n              :class=\"{ '_CSS-subentries__icon--active': controller.activeTargetId === menuEntry.data.target.id }\"\n    ></ae-design>\n    </div>\n  </div>\n</template>\n\n\n ","css":"._CSS {\n  flex: 1;\n  display: flex;\n  color: var(--ae-background-100);\n  align-items: center;\n\n  min-width: 48px;\n  height: 48px;\n  transition: transform 0.1s ease-in;\n  white-space: nowrap;\n}\n\n._CSS-icon--expand {\n  flex: 1;  \n}\n\n._CSS-link--unstyled {\n  color: inherit;\n  text-decoration: inherit;\n}\n\n._CSS-title {\n  font-size: var(--ae-font-size-3);\n  min-width: 0;\n  overflow: hidden;\n  white-space: nowrap;\n  \n  text-overflow: ellipsis;\n}\n\n._CSS-placeholder-icon {\n  padding: 16px;\n}\n\n._CSS-subentries {\n  display: flex;\n}\n\n._CSS-subentries__icon {\n  min-width: 50px;\n  height: 48px;\n  padding: 16px 16px 16px 17px;\n}\n\n._CSS-subentries__icon--active,\n._CSS-subentries__icon:hover {\n  background: var(--ae-primary-900);\n}\n ","controller":"class Controller {\n  async init() {\n    locals.menuEntries = []\n\n    const { visibleMenuEntries } = (await Aeppic.Actions.run(['9403c143-54b4-4d4e-9a9a-88b3e9727494'], { \n      Account: Aeppic.Account,\n      menuEntries: data.menuEntries\n    }))[0].value\n\n    locals.menuEntries = visibleMenuEntries\n  }\n\n  get activeTargetId() {\n    return params.pageDocument ?  params.pageDocument.a[1] || params.pageDocument.id : ''\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-11-29T16:09:42+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-03-18T11:52:07+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1647604327909,"ct":1638202182523,"a_depth":4,"a":["apps","77ee8815-2c3a-4bb5-abd9-90541a545a24","b42e5a69-6cf0-4b55-928a-755011005b5a","34db9828-9784-44cb-bfd2-d1ad89cba0e4"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"b17ca73e-2048-4d3a-b712-6a2f1e6430fd","v":"e9a40f8a9ad26ee7","previous":{"v":"fa7e509ee1b9262e"},"p":"e46efc75-6f35-4c70-9bfb-d0317a53ed04","f":{"id":"design-form","v":"e37099c040ec46e9","text":"Design"},"data":{"name":"menu-entry__submenu","template":"<div class=\"_CSS-container\" @click.stop>\n  <!-- <div class=\"_CSS-entry\">\n    <ae-icon class=\"fa fa-grip-lines\"></ae-icon>\n  </div> -->\n  <div class=\"_CSS-entry\">\n      <!-- <ae-icon class=\"fa fa-user\"></ae-icon> -->\n      <!-- <ae-design v-if=\"locals.lastRole\" name=\"title\" :document=\"locals.lastRole\" @click.native.stop=\"Aeppic.drillInto(locals.lastRole)\" style=\"flex:1;\"></ae-design> \n      <div v-else style=\"flex:1;\"></div>\n      <div @click.stop=\"$refs.dropdownRoles.$emit('show', $event)\">\n        <ae-icon class=\"fa fa-chevron-down\"></ae-icon>\n      </div> -->\n      <div class=\"_CSS-roles\">\n        <div v-for=\"role of locals.roles.slice(0,locals.maxShow)\" class=\"_CSS-role\" :class=\"{ '_CSS-role--active': params.pageDocument.id === role.id }\" @click.stop=\"controller.goto(role)\">\n          <ae-design name=\"title\" :document=\"role\"></ae-design>\n        </div>\n\n        <div class=\"_CSS-role\" v-if=\"locals.roles.length > locals.maxShow\" @click.stop=\"$refs.dropdownRoles.$emit('show', $event)\">\n          <ae-icon class=\"fa fa-chevron-down\"></ae-icon>\n        </div>\n      </div>\n\n    <ae-layout  ref=\"dropdownRoles\"\n                layout-id=\"066b41f7-036f-422c-9afc-4c3015ddc4b4\"\n                :param-documents=\"locals.roles.slice(locals.maxShow)\"\n                @selected=\"controller.goto($event)\"\n                v-if=\"locals.roles.length > locals.maxShow\" \n    ></ae-layout>\n  </div>\n</div>\n","css":"._CSS-container {\n  display: flex;\n  flex-flow: column;\n}\n\n._CSS-entry {\n  xpadding: var(--ae-space-1);\n}\n\n._CSS-roles {\n  display: flex;\n  flex-flow: column;\n}\n\n\n._CSS-role {\n  padding: var(--ae-space-1);\n  xborder-radius: var(--ae-border-radius);\n  cursor: pointer;\n}\n\n._CSS-role--active {\n  background: var(--ae-primary-900);\n}\n\n._CSS-role:hover {\n  background: var(--ae-primary-800);\n}","controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Projekt: 'e170bb6c-f326-446d-870a-ada9d9f67230',\n      Rolle: '8fef472f-9220-484b-99cd-bb80f208f795'\n    }\n    this._currentRole = null\n    locals.maxShow = 10\n    locals.roles = []\n\n    const isRole = (doc) => doc && doc.f.id === this.FORMS.Rolle\n\n    if (isRole(params.pageDocument)) {\n      this._currentRole = params.pageDocument\n    } \n\n\n    locals.roles = await this.getRoles(params.pageDocument)\n\n    watchParam('pageDocument', async (newPageDocument) => {\n      if (newPageDocument.id !== Aeppic.Root.params.pageDocumentId) {\n        // FIXME: Aeppic/Bizpin bug -- callback is called with old pageDocument\n        return\n      }\n\n      if (newPageDocument.id === this._currentRole?.id) {\n        return\n      }\n\n      if (isRole(newPageDocument)) {\n        this._currentRole = newPageDocument\n      }\n\n      locals.roles = await this.getRoles(newPageDocument)\n    })\n  }\n\n  async getRoles(pageDocument) {\n    const options = {\n      sort: 'data.name',\n    }\n    const roles = []\n    if (pageDocument.f.id === this.FORMS.Projekt) {\n      roles.push(... await Aeppic.find(`p:${pageDocument.id} f.id:${this.FORMS.Rolle}`, options))\n    }\n\n    if (pageDocument.f.id === this.FORMS.Rolle) {\n      roles.push(... await Aeppic.find(`p:${pageDocument.p} f.id:${this.FORMS.Rolle}`, options))\n    }\n\n    // const currentPageRoleIndex = roles.findIndex(role => role.id === pageDocument.id)\n    // if (currentPageRoleIndex >= 0) {\n    //   roles.splice(currentPageRoleIndex, 1)\n    // }\n\n\n    return roles\n  }\n\n  goto(doc) {\n    Aeppic.drillInto(doc)\n\n    $emit('close')\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-06-16T13:55:34+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-06-25T09:48:54+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1624614534062,"ct":1623851734833,"a_depth":4,"a":["apps","3fbe0efd-713a-457a-a34c-3a12aa19d6bb","0fb162f4-0f78-4c1e-aad2-43c27e6d98cb","e46efc75-6f35-4c70-9bfb-d0317a53ed04"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"9dc82cd2-aff0-4bed-93c3-68f5aa2d29ed","v":"initial","p":"e170bb6c-f326-446d-870a-ada9d9f67230","f":{"id":"design-form","v":"e37099c040ec46e9","text":"Design"},"data":{"name":"menu-entry-title","template":"<span class=\"_CSS-text\">\n  <template v-if=\"data.identifier\">\n    {{ data.identifier }}\n    |\n    {{ data.name }}\n  </template>\n  <ae-design v-else name=\"title\" :document=\"document\" :params=\"params\"></ae-design>\n</span>\n","css":"._CSS,\n._CSS-text {\n  overflow: hidden; \n  text-overflow: ellipsis;\n  white-space: nowrap;\n}\n\n._CSS-text--fallback {\n  font-style: italic;\n}\n","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-06-16T13:55:34+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-06-16T13:55:34+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1623851734656,"ct":1623851734656,"a_depth":4,"a":["apps","3fbe0efd-713a-457a-a34c-3a12aa19d6bb","0fb162f4-0f78-4c1e-aad2-43c27e6d98cb","e170bb6c-f326-446d-870a-ada9d9f67230"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"7a233fe4-bc08-4799-860e-138f135805d2","v":"cde5c34c50981916","previous":{"v":"09674d7c64c0543e"},"p":"b4b13fc6-7d06-4832-93b0-cd27405e269d","f":{"id":"design-form","v":"5dbbefb312ab61e2","text":"Design"},"data":{"name":"mieteingang__table-card-button","template":"\n<button class=\"w-full whitespace-nowrap text-ellipsis overflow-hidden h-full\n  hover:bg-neutral-300 rounded-sm h-auto\" :class=\"[!data.zahlungsnotizen && 'justify-center']\"\n  @click.stop=\"$emit('selected', $event)\"\n      ref=\"zahlungsnotizenButton\"\n    > \n      <div v-show=\"data.zahlungsnotizen\">\n        {{ data.zahlungsnotizen }}\n      </div> \n      <ae-icon v-show=\"!data.zahlungsnotizen\" class=\"fa fa-font-case\"></ae-icon>\n  </button>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-02-06T10:43:45+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-02-06T14:59:41+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1675695581704,"ct":1675680225216,"a_depth":4,"a":["apps","86189c5a-b9f4-445a-879f-d94574960df0","15292d56-6806-4263-b6d0-9194687203e1","b4b13fc6-7d06-4832-93b0-cd27405e269d"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"8525b9cb-6db6-4a52-b47f-4b9ecaea88eb","v":"986c142cf4382db7","previous":{"v":"initial"},"p":"4df0ebf7-c439-48d3-8a57-eef59bcfa250","f":{"id":"design-form","v":"24435d748c76f819","text":"Design"},"data":{"name":"milestones","template":"<h1>Roadmap</h1>\n<div class=\"_CSS-columns\">\n  <div class=\"_CSS-column\" v-for=\"(milestones, index) of locals.milestones\">\n    <div class=\"_CSS-column__header\">\n      {{ index + 1 }}. Quartal\n    </div>\n    \n    <ae-list list-id=\"014c6af4-baa1-4c06-84f8-9abd31915dd3\"\n            :documents=\"milestones\"\n            param-design=\"progress-line,progress-circle,title\"\n            class=\"_CSS-column__list\"\n            @selected=\"Aeppic.navigateTo($event.p || $event)\"\n    ></ae-list>\n\n  </div>\n</div>\n","css":"._CSS-columns {\n  display: flex;\n}\n\n._CSS-column {\n  flex: 1;\n    min-width: 0;\n\n}\n\n._CSS-column__header {\n  font-size: var(--ae-size-5);\n  font-weight: 500;\n  margin-bottom: var(--ae-size-2);\n\n  display: flex;\n  justify-content: center;\n}\n","controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Meilenstein: '3ef82fa1-425d-4592-b120-1a6fc967802d'\n    }\n    locals.milestones = []\n    locals.periods = []\n\n    locals.periods = this.getPeriods()\n\n    locals.milestones = await Promise.all(locals.periods.map(p => this.getMilestones(p)))\n  }\n\n  getPeriods() {\n    const periods = []\n\n    let date = Aeppic.DateTime.local().startOf('year')\n\n    for (let i = 0; i < 4; i++) {\n      const period = {\n        start: date.startOf('quarter').toISO(),\n        end: date.endOf('quarter').toISO()\n      }\n\n      periods.push(period)\n\n      date = date.plus({ quarters: 1 })\n    }\n\n    return periods\n  }\n\n  async getMilestones(period) {\n    const start = Aeppic.DateTime.fromISO(period.start).toFormat('yyyy-LL-dd')\n    const end = Aeppic.DateTime.fromISO(period.end).toFormat('yyyy-LL-dd')\n\n    const query = `a:${document.id} f.id:${this.FORMS.Meilenstein} data.bis:[${start} TO ${end}]`\n    console.log(query)\n\n    const milestones = await Aeppic.find(query)\n    return milestones\n  }\n}\n\n\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-05-08T08:50:55+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2021-01-22T09:04:36+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1611306276477,"ct":1588927855451,"a_depth":4,"a":["apps","5acfd7a2-33e4-498a-9150-71e1ab772bfc","20c92864-6a81-4006-96f9-b78f473cd129","4df0ebf7-c439-48d3-8a57-eef59bcfa250"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"a49d85ee-b21d-4e15-9b3a-63c11387b7b9","v":"814f99682e473318","cloneOf":{"id":"b704f684-6862-4271-8dfa-99f6515319b4","v":"e711d00584158d45","text":"milestones"},"originalCloneOf":{"id":"b704f684-6862-4271-8dfa-99f6515319b4","v":"e711d00584158d45","text":"milestones"},"previous":{"v":"444a788b18ff0ff8"},"p":"0b6a2b21-9425-466e-9e8d-57ec39cc95e1","f":{"id":"design-form","v":"24435d748c76f819","text":"Design"},"data":{"name":"milestones","template":"<div class=\"_CSS-header\">\n  <h1>Roadmap {{locals.date.toFormat('yyyy')}}</h1>\n  <div class=\"_CSS-yearselector\">\n    <button class=\"ae-button ae-button--small\" @click.stop=\"controller.plus()\">\n      <ae-icon class=\"fa fa-plus\"></ae-icon>\n    </button>\n    <button class=\"ae-button ae-button--small\" @click.stop=\"controller.minus()\">\n      <ae-icon class=\"fa fa-minus\"></ae-icon>\n    </button>\n  </div>\n</div>\n<div class=\"_CSS-columns\">\n\n  <div class=\"_CSS-column\" :class=\"{ '_CSS-column--collapsed': locals.collapsedMilestones.includes(index) }\" v-for=\"(milestones, index) of locals.milestones\">\n    <template v-if=\"locals.collapsedMilestones.includes(index)\">\n      <button class=\"ae-button ae-button--small _CSS-column__header _CSS-column__header--tilted\" @click.stop=\"controller.toggle(index)\" title=\"Einblenden\">\n        {{ index + 1 }}. Quartal \n          <ae-icon style=\"margin-left:0.5em;\" class=\"fa fa-eye-slash\"></ae-icon>\n      </button>\n    </template>\n    <template v-else>\n    <button class=\"ae-button ae-button--small _CSS-column__header\" @click.stop=\"controller.toggle(index)\" title=\"Ausblenden\">\n      {{ index + 1 }}. Quartal \n      <ae-icon style=\"margin-left:0.5em;\" class=\"fa fa-eye\"></ae-icon>\n    </button>\n    \n      <ae-list list-id=\"014c6af4-baa1-4c06-84f8-9abd31915dd3\"\n              :documents=\"milestones\"\n              param-design=\"progress-card,progress-circle,title\"\n              class=\"_CSS-column__list\"\n              @selected=\"Aeppic.navigateTo($event.p || $event)\"\n      ></ae-list>\n      <div class=\"_CSS-column__list _CSS-column__list--placeholder\" v-if=\"!milestones.length\">\n        Keine Meilensteine definiert\n      </div>\n    </template>\n    </template>\n\n  </div>\n</div>\n\n","css":"._CSS-header {\n  display: flex;\n  align-items: center;\n}\n\n._CSS-yearselector {\n  display: flex;\n  flex-flow: column;\n  margin: var(--ae-space-2);\n}\n\n._CSS-columns {\n  min-height: 200px; /* account for tilted headers */\n  display: flex;\n}\n\n._CSS-column {\n  flex: 1;\n  min-width: 0;\n}\n\n._CSS-column--collapsed {\n  flex: initial;\n}\n\n._CSS-column__header {\n  width: 100%;\n  font-size: var(--ae-size-5);\n  font-weight: 500;\n  margin-bottom: var(--ae-size-2);\n\n  display: flex;\n  justify-content: center;\n  xalign-items: center;\n}\n\n._CSS-column__header--tilted {\n  transform: rotate(90deg) translateX(45%);\n}\n\n._CSS-column__list--placeholder {\n  font-size: var(--ae-font-size-3);\n  color: var(--ae-background-600);\n  font-style: italic;\n\n  display: flex;\n  justify-content: center;\n}","controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Meilenstein: '766c24c5-542c-4887-bf65-43ad85e6c476'\n    }\n    locals.milestones = []\n    locals.periods = []\n    locals.date = Aeppic.DateTime.local()\n    locals.collapsedMilestones = []\n\n    await this.update()\n\n    Aeppic.subscribe(`a:${document.id} f.id:${this.FORMS.Meilenstein}`, () => this.update())\n  }\n\n  async update() {\n    locals.periods = this.getPeriods()\n    locals.milestones = await Promise.all(locals.periods.map(p => this.getMilestones(p)))\n    const collaped = locals.milestones.reduce((result, item, index) => {\n      if (!item.length) {\n        result.push(index)\n        return result\n      }\n      return result\n    }, [])\n    console.log(collaped)\n    locals.collapsedMilestones = collaped\n  }\n\n  toggle(index) {\n    const i = locals.collapsedMilestones.findIndex(m => m == index)\n    if (i >= 0) {\n      locals.collapsedMilestones.splice(i, 1)\n    } else {\n      locals.collapsedMilestones.push(index)\n    }\n  }\n\n  async plus() {\n    locals.date = locals.date.plus({ years: 1 })\n    await this.update()\n  }\n\n  async minus() {\n    locals.date = locals.date.minus({ years: 1 })\n    await this.update()\n  }\n\n  getPeriods() {\n    const periods = []\n\n    let date = locals.date.startOf('year')\n\n    for (let i = 0; i < 4; i++) {\n      const period = {\n        start: date.startOf('quarter').toISO(),\n        end: date.endOf('quarter').toISO()\n      }\n\n      periods.push(period)\n\n      date = date.plus({ quarters: 1 })\n    }\n\n    return periods\n  }\n\n  async getMilestones(period) {\n    const start = Aeppic.DateTime.fromISO(period.start).toFormat('yyyy-LL-dd')\n    const end = Aeppic.DateTime.fromISO(period.end).toFormat('yyyy-LL-dd')\n\n    const query = `a:${document.id} f.id:${this.FORMS.Meilenstein} data.bis:[${start} TO ${end}]`\n    console.log(query)\n\n    const milestones = await Aeppic.find(query, { sort: 'data.bis' })\n    return milestones\n  }\n}\n\n\n","packages":[],"aliases":[],"description":"This is a 100% copy of \"Projekte Order\" and has to in sync by MANUALLY copy&pasting it."},"locks":[],"created":{"at":"2020-11-13T15:08:34+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-09-09T15:06:16+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1631199976645,"ct":1605280114082,"a_depth":4,"a":["apps","59edbdbc-2cab-426a-bb42-6e57c5158e4f","3be7e887-1bcd-4c3c-979f-b20a986c4c48","0b6a2b21-9425-466e-9e8d-57ec39cc95e1"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"b704f684-6862-4271-8dfa-99f6515319b4","v":"df304897c02246e9","cloneOf":{"id":"8525b9cb-6db6-4a52-b47f-4b9ecaea88eb","v":"initial","text":"milestones"},"originalCloneOf":{"id":"8525b9cb-6db6-4a52-b47f-4b9ecaea88eb","v":"initial","text":"milestones"},"previous":{"v":"040a3889e919d249"},"p":"0b4fe19c-a550-46b7-ada0-6813a60e14bc","f":{"id":"design-form","v":"24435d748c76f819","text":"Design"},"data":{"name":"milestones","template":"<div class=\"_CSS-header\">\n  <h1>Roadmap {{locals.date.toFormat('yyyy')}}</h1>\n  <div class=\"_CSS-yearselector\">\n    <button class=\"ae-button ae-button--small\" @click.stop=\"controller.plus()\">\n      <ae-icon class=\"fa fa-plus\"></ae-icon>\n    </button>\n    <button class=\"ae-button ae-button--small\" @click.stop=\"controller.minus()\">\n      <ae-icon class=\"fa fa-minus\"></ae-icon>\n    </button>\n  </div>\n</div>\n<div class=\"_CSS-columns\">\n\n  <div class=\"_CSS-column\" :class=\"{ '_CSS-column--collapsed': locals.collapsedMilestones.includes(index) }\" v-for=\"(milestones, index) of locals.milestones\">\n    <template v-if=\"locals.collapsedMilestones.includes(index)\">\n      <button class=\"ae-button ae-button--small _CSS-column__header _CSS-column__header--tilted\" @click.stop=\"controller.toggle(index)\" title=\"Einblenden\">\n        {{ index + 1 }}. Quartal \n          <ae-icon style=\"margin-left:0.5em;\" class=\"fa fa-eye-slash\"></ae-icon>\n      </button>\n    </template>\n    <template v-else>\n    <button class=\"ae-button ae-button--small _CSS-column__header\" @click.stop=\"controller.toggle(index)\" title=\"Ausblenden\">\n      {{ index + 1 }}. Quartal \n      <ae-icon style=\"margin-left:0.5em;\" class=\"fa fa-eye\"></ae-icon>\n    </button>\n    \n      <ae-list list-id=\"014c6af4-baa1-4c06-84f8-9abd31915dd3\"\n              :documents=\"milestones\"\n              param-design=\"progress-card,progress-circle,title\"\n              class=\"_CSS-column__list\"\n              @selected=\"Aeppic.navigateTo($event.p || $event)\"\n      ></ae-list>\n      <div class=\"_CSS-column__list _CSS-column__list--placeholder\" v-if=\"!milestones.length\">\n        Keine Meilensteine definiert\n      </div>\n    </template>\n    </template>\n\n  </div>\n</div>\n\n","css":"._CSS-header {\n  display: flex;\n  align-items: center;\n}\n\n._CSS-yearselector {\n  display: flex;\n  flex-flow: column;\n  margin: var(--ae-space-2);\n}\n\n._CSS-columns {\n  display: flex;\n}\n\n._CSS-column {\n  flex: 1;\n  min-width: 0;\n}\n\n._CSS-column--collapsed {\n  flex: initial;\n}\n\n._CSS-column__header {\n  width: 100%;\n  font-size: var(--ae-size-5);\n  font-weight: 500;\n  margin-bottom: var(--ae-size-2);\n\n  display: flex;\n  justify-content: center;\n  xalign-items: center;\n}\n\n._CSS-column__header--tilted {\n  transform: rotate(90deg) translateX(45%);\n}\n\n._CSS-column__list--placeholder {\n  font-size: var(--ae-font-size-3);\n  color: var(--ae-background-600);\n  font-style: italic;\n\n  display: flex;\n  justify-content: center;\n}","controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Meilenstein: '766c24c5-542c-4887-bf65-43ad85e6c476'\n    }\n    locals.milestones = []\n    locals.periods = []\n    locals.date = Aeppic.DateTime.local()\n    locals.collapsedMilestones = []\n\n    await this.update()\n  }\n\n  async update() {\n    locals.periods = this.getPeriods()\n    locals.milestones = await Promise.all(locals.periods.map(p => this.getMilestones(p)))\n    const collaped = locals.milestones.reduce((result, item, index) => {\n      if (!item.length) {\n        result.push(index)\n        return result\n      }\n      return result\n    }, [])\n    console.log(collaped)\n    locals.collapsedMilestones = collaped\n  }\n\n  toggle(index) {\n    const i = locals.collapsedMilestones.findIndex(m => m == index)\n    if (i >= 0) {\n      locals.collapsedMilestones.splice(i, 1)\n    } else {\n      locals.collapsedMilestones.push(index)\n    }\n  }\n\n  async plus() {\n    locals.date = locals.date.plus({ years: 1 })\n    await this.update()\n  }\n\n  async minus() {\n    locals.date = locals.date.minus({ years: 1 })\n    await this.update()\n  }\n\n  getPeriods() {\n    const periods = []\n\n    let date = locals.date.startOf('year')\n\n    for (let i = 0; i < 4; i++) {\n      const period = {\n        start: date.startOf('quarter').toISO(),\n        end: date.endOf('quarter').toISO()\n      }\n\n      periods.push(period)\n\n      date = date.plus({ quarters: 1 })\n    }\n\n    return periods\n  }\n\n  async getMilestones(period) {\n    const start = Aeppic.DateTime.fromISO(period.start).toFormat('yyyy-LL-dd')\n    const end = Aeppic.DateTime.fromISO(period.end).toFormat('yyyy-LL-dd')\n\n    const query = `a:${document.id} f.id:${this.FORMS.Meilenstein} data.bis:[${start} TO ${end}]`\n    console.log(query)\n\n    const milestones = await Aeppic.find(query, { sort: 'data.bis' })\n    return milestones\n  }\n}\n\n\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-07-01T14:40:04+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2021-02-09T14:07:33+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1612879653737,"ct":1593614404637,"a_depth":4,"a":["apps","59edbdbc-2cab-426a-bb42-6e57c5158e4f","3be7e887-1bcd-4c3c-979f-b20a986c4c48","0b4fe19c-a550-46b7-ada0-6813a60e14bc"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"f15343d9-15b2-4901-b7e7-187e2cda01cb","v":"0b42d574df451f18","previous":{"v":"a9bea99894cd87df"},"p":"686d22ba-414e-452f-9795-f6f7bcab37d5","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"model-project","applies":"","template":"<div class=\"_CSS-primary\" ref=\"domNode\">\n  <a class=\"dbps-button\" v-if=\"controller.isCompanyUser\" @click.stop.prevent=\"Aeppic.navigateTo(document.id)\">\n    <ae-icon class=\"fa fa-list-alt\"></ae-icon>&nbsp;\n    <ae-design name=\"title\" :document=\"document\"></ae-design>\n  </a> \n  <ae-design v-else name=\"title\" :document=\"document\"></ae-design>\n  <!-- TODO: use command and check if account is NOT model -->\n  <button class=\"dbps-button\" v-if=\"controller.canCollapse\" @click=\"locals.collapsed = !locals.collapsed\">\n    <ae-icon v-if=\"locals.collapsed\" class=\"fa fa-arrow-down\"></ae-icon>\n    <ae-icon v-else class=\"fa fa-arrow-up\"></ae-icon>\n  </button>\n  <ae-design v-if=\"controller.isCompanyUser && locals.projectSpecificModelInformations\" name=\"icon-row,title\" :document=\"locals.projectSpecificModelInformations\" @click.native=\"Aeppic.navigateTo(locals.projectSpecificModelInformations)\"></ae-design>\n</div>\n\n<section v-if=\"!locals.collapsed && params.applicationByProjectId[document.id]\" class=\"_CSS-applications\">\n  <div class=\"_CSS-application\" v-for=\"application of params.applicationByProjectId[document.id]\">\n\n    <div class=\"_CSS-secondary\">\n          <div class=\"_CSS-secondary__heading\">\n            <button class=\"dbps-button\" v-if=\"controller.isCompanyUser\" @click=\"controller.navigateToApplication(application)\" title=\"Bewerbung ansehen\" style=\"padding-left: 0;\">\n              <ae-icon class=\"fa fa-user\"></ae-icon>\n              &nbsp;\n              Bewerbung\n            </button>\n            </div>\n          <div class=\"_CSS-two-column-list\">\n            <div>Film</div> <ae-design name=\"title\" :document=\"application.data.movie\"></ae-design>\n            <div>Rollen (beworben)</div>\n            <div>\n              <ae-design v-for=\"role in application.data.roles\" name=\"title\" :document=\"role\"></ae-design>\n              <div v-if=\"!application.data.roles.length\">-</div>\n            </div>\n            <!-- <div>Rolle (erhalten)</div> <ae-design name=\"title\" :document=\"application.data.obtainedRole\"></ae-design><div v-if=\"!application.data.roles.length\">-</div> -->\n          </div> \n      \n    </div>\n\n    <div class=\"_CSS-secondary\">\n      <template v-if=\"!data.closed\">\n        <div class=\"_CSS-secondary__heading\">Weitere Dateien hochladen</div>\n        <ae-layout  layout-id=\"f5a5c2a0-bf9c-4b44-b05b-8e545156df10\"\n                    style=\"padding: 1em 0\"\n                    :param-document=\"application\"\n                    :param-show-ui=\"true\"\n                    param-field-to-add-to=\"files\"\n                    param-file-form-id=\"aabed4ee-20ca-4df4-9a78-75a05e97dce9\"\n                    param-file-form-field=\"datei\"\n                    param-file-name-to-field=\"name\"\n                    :param-save-new-documents=\"true\"\n                    :param-flatten=\"true\"\n                    @added=\"controller.added(application, $event)\"\n        ></ae-layout>\n      </template>\n\n      <template v-if=\"params.applicationByProjectId && application.data.files.length\">\n        <!-- TODO: is selected needed? -->\n        <!-- @selected=\"Aeppic.navigateTo($event)\" -->\n        <ae-list \n          :key=\"'_CSS-files' + application.data.files.length\"\n          :documents=\"application.data.files\"\n          @remove=\"controller.removeFile(application, $event)\"\n          param-design=\"card\"\n          :param-design-params=\"{ newlyAddedFiles: locals.newlyAddedFiles, showPreviewButton: true }\"\n          list-id=\"731c1d99-6cef-4d97-b265-184d63f9d0a6\"\n          param-min-column-width=\"var(--dbps-thumbnail-width)\"\n          param-max-column-width=\"var(--dbps-thumbnail-width)\"\n          >\n        </ae-list>\n          <!-- list-id=\"2dab232c-2c8a-4aa4-b3f9-6023a7116161\" -->\n      </template>\n      <span v-else>Keine Dateien hochgeladen.</span>\n    </div>\n\n    <hr>\n  </div>\n</section>\n","css":"._CSS {\n  background: rgba(255,255,255,0.8);\n  display: flex;\n  flex-flow: column;\n  padding: 8px;\n}\n\n._CSS-primary {\n  display: flex;\n  justify-content: space-between;\n  border-bottom: 1px solid #777;\n  padding-bottom: 0.2em;\n  margin-bottom: 1em;\n  font-size: 1.5rem;\n}\n\n._CSS-secondary {\n  margin-bottom: 1rem;\n}\n\n._CSS-button {\n  margin-bottom: 1rem;\n}\n\n._CSS-two-column-list {\n  display: flex;\n  flex-wrap: wrap;\n}\n\n\n._CSS-two-column-list > * {\n  flex: 1 0 50%;\n  text-overflow: ellipsis;\n  overflow: hidden;\n  white-space: nowrap;\n}\n\n._CSS-secondary__heading {\n  font-size: 1.5rem;\n}\n\n\n._CSS-application~._CSS-application {\n  padding: 25px 0;\n}\n\n._CSS-applications {\n  padding: 15px;\n}","controller":"class Controller {\n  async init () {\n    locals.newlyAddedFiles = []\n\n    locals.collapsed = this.canCollapse\n\n    locals.projectSpecificModelInformations = null\n\n    await this.onUpdate()\n  }\n\n  get canCollapse() {\n    return !params.noCollapse && this.isCompanyUser\n  }\n\n  get isCompanyUser() {\n    return Aeppic.Account && Aeppic.Account.a_forms.includes('1ec5237d-463a-417f-8dac-5bbbbc2e35b7')\n  }\n\n  async onUpdate() {\n    locals.projectSpecificModelInformations = await this.getProjectSpecificModelInformations()\n  } \n\n  async navigateToApplication(modelApplication) {\n    const application = await this._getModelApplicationByApplication(modelApplication)\n\n    Aeppic.navigateTo(application)\n  }\n\n\n  async added(application, added) {\n    const ids = added.documentIds\n\n    if (!ids) {\n      return\n    }\n\n    locals.newlyAddedFiles.push(...ids)\n\n    Aeppic.save(application)\n\n    this._announceUploadStarting(ids.length)\n  }\n\n  _announceUploadStarting(count) {\n    this._watchUploadFinish(count)\n\n    const text = `${count} Dateien werden hochgeladen.`\n\n    const toast = new CustomEvent('show-toast', {\n      bubbles: true,\n      detail: {\n        id: Aeppic.uuid(),\n        data: {\n          icon: 'fa fa-cloud-upload',\n          target: {\n            id: document.id\n          },\n          title: 'Hochladen',\n          text,\n          timeout: 5000\n        }\n      }\n    })\n\n    $refs.domNode.dispatchEvent(toast)\n  }\n\n  _watchUploadFinish(count) {\n    let countFinished = 0\n\n    Aeppic.Uploads.on('uploaded', () => { \n      countFinished += 1\n\n      if (countFinished < count) {\n        return\n      }\n\n      this._announceUploadFinished(count)\n      return true\n    })\n  }\n\n  _announceUploadFinished(count) {\n    const text = `Es wurden ${count} Dateien hochgeladen.`\n\n    const toast = new CustomEvent('show-toast', {\n      bubbles: true,\n      detail: {\n        id: Aeppic.uuid(),\n        data: {\n          icon: 'fa fa-cloud',\n          target: {\n            id: document.id\n          },\n          title: 'Hochladen abschlossen',\n          text,\n          timeout: 5000\n        }\n      }\n    })\n\n    $refs.domNode.dispatchEvent(toast)\n  }\n\n  async _getModelApplicationByApplication(application) {\n    const requestApplicationRef = application.data.requestApplication\n    const castingRef = application.data.casting\n\n    return (await Aeppic.find(`a:${castingRef.id} f.id:275b807f-7dbb-4351-b731-669e275fa97d data.requestApplication.id:${requestApplicationRef.id}`))[0]\n  }\n\n  async getProjectSpecificModelInformations() {\n    if (!params.model) {\n      return null\n    }\n\n    const result = await Aeppic.find(`a:${params.model.id} f.id:13866932-346a-448d-9560-8a7e7e26be37`)\n    if (result.length) {\n      return result[0]\n    }\n    return null\n  }\n\n  removeFile(application, file) {\n    if (!application || !file || !locals.newlyAddedFiles.includes(file.id)) {\n      return \n    }\n\n    application.removeReference('files', file)\n\n    Aeppic.save(application)\n  }\n}","packages":[]},"locks":[],"created":{"at":"2018-05-25T10:48:03+00:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","from":"","client":"server"},"modified":{"at":"2020-10-13T10:11:33+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1602583893300,"ct":1527245283513,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","686d22ba-414e-452f-9795-f6f7bcab37d5"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"4552871e-2861-47b4-b516-28b651ef36dc","v":"2bbe3a2da5995457","p":"fallback-designs","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"modifying-profile","template":"<ae-design class=\"_CSS-avatar\" name=\"profile-avatar\" :document-id=\"document.modified.by\"></ae-design>","css":"._CSS {\n  display: flex;\n  align-items: center;\n}\n","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2019-05-03T13:05:19+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2020-06-30T09:30:13+00:00","by":"8e6c22aa-8c69-4ff8-919a-7032841cf636","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720684627133,"ct":1720684627133,"a_depth":2,"a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"],"inheritedLocks":[null,null,null],"stamps":[],"previous":{"v":"b77721c3946362ca","f":{"id":"design-form","v":"9bfe8e0cd909c1f0","text":"Design"}},"meta":{"modified":{"at":"2024-07-11T09:57:07+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"e457f35a-c8b6-4c69-80a3-2e7775e55917","v":"3f96bfbaef6905d5","p":"fallback-designs","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"move-card","template":"<div class=\"_CSS-card\" :class=\"{ '_CSS-card--with-border': params.noBorder !== true }\" @click=\"params.readonly ? null : $emit('selected', document)\">\n  <ae-design name=\"search-title\" :document=\"document\" :param-minimized-info=\"params.minimizedInfo\" :param-hide-path=\"params.hidePath\"></ae-design>\n\n  <button v-if=\"!params.readonly\" class=\"ae-button\">\n    <ae-icon class=\"fa fa-chevron-right\"></ae-icon>\n  </button>\n</div>","css":"._CSS-card {\n  background-color: var(--ae-ui-card-background);\n  border-radius: var(--ae-border-radius);\n  \n  padding: 4px;\n\n  display: flex;\n  justify-content: space-between;\n}\n\n._CSS-card--with-border {\n  border: var(--ae-border-width) solid var(--ae-border-color);\n}","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2019-08-13T07:40:20+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2020-06-30T09:30:13+00:00","by":"8e6c22aa-8c69-4ff8-919a-7032841cf636","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720684627133,"ct":1720684627133,"a_depth":2,"a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"],"inheritedLocks":[null,null,null],"stamps":[],"previous":{"v":"3887e0485b1be079","f":{"id":"design-form","v":"9bfe8e0cd909c1f0","text":"Design"}},"meta":{"modified":{"at":"2024-07-11T09:57:07+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"704b6dba-d124-42e2-adc7-026480db0db5","v":"c034ec3734dcb2fd","previous":{"v":"c28adb407642d480"},"p":"381e2c4e-9eed-42a5-b65c-ad72e25369f0","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"nav-item","applies":"","template":"<!-- <button class=\"ae-button _CSS-button _CSS-newsgroup-title\"> -->\r\n<button class=\"ae-button ae-button--secondary\">\r\n  <ae-design class=\"_CSS-newsgroup-title\" name=\"title\" :document=\"document\"></ae-design>\r\n</button>\r\n","css":"._CSS {\r\n  flex: 1;\r\n}\r\n\r\n._CSS-newsgroup-title {\r\n  white-space: nowrap;\r\n  overflow: hidden;\r\n  text-overflow: ellipsis;\r\n  width: var(--ae-size-10);\r\n}","controller":"","packages":[]},"locks":[],"created":{"at":"2018-04-19T14:06:16+02:00","by":"","from":"","client":"server"},"modified":{"at":"2020-09-17T10:49:14+00:00","by":"77031fd1-c20d-4484-b4b4-46c01bdab986","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1600339754228,"ct":1524139576071,"a_depth":4,"a":["apps","b91e3079-75ae-49cd-981b-3053bf47208c","e7a0be94-cd94-4210-875e-0cceb7e8bc6c","381e2c4e-9eed-42a5-b65c-ad72e25369f0"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"648043e6-1446-4748-8d8b-7122da4a1b00","v":"e1956bfc3bcf6a0e","previous":{"v":"313c51d9df4ab779"},"p":"694aee80-d85e-479b-b7ec-8fe36906fcac","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"navigation-button","applies":"","template":"<div @click.stop class=\"bp-button bp-button-icon _CSS-navigate-button _CSS-navigate-button--disabled\" v-if=\"!data.anschrift.street && !data.anschrift.streetNumber && !data.anschrift.postalCode && !data.anschrift.city\">\n  <ae-icon class=\"fa fa-location-arrow _CSS-navigate-icon\"></ae-icon>\n</div>\n<a v-else @click.stop class=\"bp-button bp-button-icon _CSS-navigate-button\" target=\"_blank\" :href=\"'http://maps.google.de?q=' + data.anschrift.street + ' ' + data.anschrift.streetNumber + ',' + data.anschrift.postalCode + ' ' + data.anschrift.city\">\n  <ae-icon class=\"fa fa-location-arrow _CSS-navigate-icon\"></ae-icon>\n</a>","css":"._CSS-navigate-button {\n  font-size: 20px;\n  min-width: 42px;\n  min-height: 42px;\n  color: white;\n  background-color: rgb(30,68,100);\n  border-radius: 50%;\n}\n\n._CSS-navigate-icon {\n  transform: rotate(-45deg);\n}\n\n._CSS-navigate-button--disabled {\n  background-color: var(--ae-theme-text-disabled-on-light);\n}","controller":"","packages":[]},"locks":[],"created":{"at":"2018-02-06T09:47:39+01:00","by":"","from":"","client":"server"},"modified":{"at":"2018-04-20T12:30:56+02:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"from":"","client":"f8312258-bdc9-438a-a510-de77a69e61e9"},"t":null,"ct":1517906859086,"a_depth":4,"a":["apps","b791df37-6eef-4a3e-9066-1b79e0bdad31","35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f","694aee80-d85e-479b-b7ec-8fe36906fcac"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"2caec4c0-8ca4-40e4-a708-c1a4f3ba3c9c","v":"45a54f3aa8a747c7","previous":{"v":"initial"},"p":"3cf04f76-f463-4b98-9c73-78df68374ede","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"navigation-card","applies":"","template":" <div class=\"_CSS-card\" @click.stop.prevent=\"$emit('selected', data.target.id)\">\n  <ae-design name=\"icon\" :document=\"document\"></ae-design>\n  <ae-design name=\"title\" :document=\"document\"></ae-design>\n</div>\n","css":"._CSS-card {\n  display: flex;\n  overflow: hidden;\n\n  border-bottom: 1px solid var(--ae-foreground-l2);\n  border-radius: 2px;\n  box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.16), 0 0 1px 0 rgba(0, 0, 0, 0.16);\n\n  background-color: white;\n  padding: 1rem var(--bp-input-content-padding) 1rem;\n}","controller":"","packages":[]},"locks":[],"created":{"at":"2018-02-23T08:31:12+01:00","by":"","from":"","client":"server"},"modified":{"at":"2018-12-21T11:01:46+00:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1545390106945,"ct":1519371072182,"a_depth":4,"a":["apps","77ee8815-2c3a-4bb5-abd9-90541a545a24","b42e5a69-6cf0-4b55-928a-755011005b5a","3cf04f76-f463-4b98-9c73-78df68374ede"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"8f2713a1-9ada-41fd-955a-967c373b15ea","v":"d5850b43cadb38c9","previous":{"v":"7888c6d67cea32f8"},"p":"c69a0c1c-6c53-40c2-87e8-5ace866bf1df","f":{"id":"design-form","v":"e3fe9ece11aabc5e","text":"Design"},"data":{"name":"navigation-vertical","applies":"","template":"<div ref=\"container\" class=\"_CSS-nav\" :class=\"{'_CSS-nav--expanded': controller.showExpanded, '_CSS-nav--overflowing': !locals.forceExpand, '_CSS-nav--fixed': locals.forceExpand }\"  @mouseenter=\"controller.show()\" @mouseleave=\"controller.hide()\">\n  <div class=\"_CSS-top \">\n    <div class=\"ae-noselect _CSS-nav-item\" style=\"color:white; justify-content: center;\">\n      <div class=\"_CSS-top--home\" \n          :class=\"{ '_CSS-nav-item--active': !controller.activeTargetId || Aeppic.HomePage && controller.activeTargetId === Aeppic.HomePage.id }\"\n          @click=\"controller.navigateTo(Aeppic.HomePage)\">\n        <div\n          class=\"_CSS-logo _CSS-action-button\"\n          title=\"bizpin Home\"\n          v-if=\"locals.icon && locals.logo\"\n          >\n          <img title=\"bizpin - Home\" width=\"24\" height=\"24\" :src=\"Aeppic.Content.getSrc(locals.icon,'file')\"> </img>\n        </div>\n      </div>\n    </div>   \n\t</div>\n\t<div class=\"_CSS-nav-items\">\n\t\t<template v-if=\"Aeppic.Device !== 'Phone' || controller.showExpanded\">\n\t\t\t<div v-for=\"(item, index) of locals.visibleMenuEntrys\" v-if=\"item\"  :class=\"{ '_CSS-nav-item--active': item.data.target && controller.activeTargetId === item.data.target.id }\" @xclick=\"controller.navigateTo(item)\" :key=\"item.id\">\n        <ae-design v-if=\"item.f.id === locals.FORMS.MenuEntriesFolder\" name=\"menu-entry\" :document-id=\"item.id\" :key=\"locals.refresh + item.id\" :param-hide-title=\"!controller.showExpanded\" :param-page-document=\"params.pageDocument\" @selected=\"controller.navigateTo($event)\"></ae-design>\n        <ae-design v-else class=\"_CSS-nav-item\" name=\"menu-entry\" :document-id=\"item.id\" :key=\"locals.refresh + item.id\" :param-hide-title=\"!controller.showExpanded\" @selected=\"controller.navigateTo($event)\"></ae-design>\n        <ae-design  class=\"_CSS-nav-item__sub\"\n                    v-if=\"item.data.target && controller.activeTargetId === item.data.target.id\"\n                    name=\"menu-entry__submenu\"\n                    :document-id=\"item.data.target.id\"\n                    :params=\"{ pageDocument: params.pageDocument, expand: controller.showExpanded  }\"\n                    @close=\"controller.hide()\"\n        ></ae-design>\n\t\t\t</div>\n\t\t</template>\n\t</div>\n  <div style=\"flex:1\"></div>\n  <ae-layout xv-if=\"document.id === params.pageDocumentId\" layout-id=\"26ce1c07-fff9-41da-9c8d-d1159a272ed2\" :param-company-id=\"document.id\" :param-page-document-id=\"params.pageDocumentId\"></ae-layout>\n  <ae-layout layout-id=\"3ca82a79-3182-4532-bdfc-0c53e6c00890\"\n              @close=\"controller.hide()\"\n              style=\"max-width:200px;\"\n  ></ae-layout>\n  <button class=\"ae-button ae-noselect\" style=\"color:white;\" @click.stop=\"controller.forceExpand()\" title=\"Menü-Breite fixieren\">\n    <ae-icon v-if=\"locals.forceExpand\" class=\"fa fa-chevron-double-left\"></ae-icon>\n    <ae-icon v-else class=\"fa fa-chevron-double-right\"></ae-icon>\n  </button>\n</div>\n","css":"._CSS {\n  display: flex;\n  xmax-width: 49px;\n}\n\n._CSS-action-button {\n  display:flex;\n  flex-direction:column;\n  align-items:center;\n}\n._CSS-top--home {\n  display: flex;\n  align-items: center;\n  justify-content: start;\n  flex:1;\n}\n\n._CSS-logo {\n  flex:1;\n  transform: translateY(3px);\n  width:100%;\n  display: flex;\n  align-items: center;\n}\n\n._CSS-logo svg {\n  flex:1;\n}\n\n._CSS-nav {\n  z-index: 1; /* NOTE: page-toolbar has z-index of 1 */\n  flex: 1;\n  position: relative;\n  display: flex;\n  flex-direction: column;\n  align-items: stretch;\n  justify-content: flex-start;\n  flex-flow: column nowrap;\n  background-color: var(--ae-background-700);\n  transition: all 0.1s ease-in;\n  border-right: var(--ae-border-color) solid var(--ae-border-width);\n  overflow-y: auto;\n  overflow-x: hidden;\n  overflow: -moz-scrollbars-none;\n  scrollbar-width: none;\n}\n\n._CSS-nav--fixed {\n  min-width: 199px;\n}\n\n._CSS-nav--overflowing {\n  min-width: 48px;\n  xoverflow-x: visible;\n}\n\n._CSS-nav::-webkit-scrollbar { \n  width: 0 !important;\n}\n\n._CSS-nav--expanded {\n  min-width: min-content;\n}\n\n._CSS-top { \n  display:flex;\n  flex-direction: column;\n  justify-content: center; \n  align-items: stretch;\n  height:81px;\n  min-height: 81px;\n  position:relative;\n}\n\n\n._CSS-top > * {\n  flex:1;\n}\n\n._CSS-nav-items {\n  display:flex;\n  flex-direction: column;\n  align-items: stretch;\n  max-width: 200px;\n}\n\n._CSS-top ._CSS-nav-item {\n  min-width: 48px;\n  transition: transform 0.1s ease-in;\n  white-space: nowrap;\n  flex:1;\n}\n\n._CSS-nav-item {\n  display: flex;\n  flex-flow: column;\n  flex:1;\n  color: var(--ae-background-100);\n}\n\n._CSS-nav-item:hover {\n  background: var(--ae-primary-900);\n}\n\n._CSS-nav-item__sub {\n  background: var(--ae-background-600);\n}\n\n._CSS-nav-item--active {\n  xborder-right: var(--ae-primary-600) solid var(--ae-border-width);\n  color: var(--ae-primary-100);\n  background: var(--ae-primary-900);\n}\n\n._CSS_logo {\n  position:absolute;\n}","controller":"class Controller {\r\n  async init() {\r\n    this.FORMS = {\r\n      MenuEntriesFolder: '34db9828-9784-44cb-bfd2-d1ad89cba0e4',\r\n      MenuEntry: '3cf04f76-f463-4b98-9c73-78df68374ede',\r\n    }\r\n\r\n    locals.FORMS = this.FORMS\r\n\r\n    this._showExpandedTimeout = null\r\n\r\n    locals.refresh = 0\r\n    locals.showExpandedHover = false\r\n    locals.forceExpand = Aeppic.LocalStorage.getValue('bp-nav__force-expand') || false\r\n\r\n    Aeppic.on('login', async () => {\r\n      await this.updateMenuEntries()\r\n    })\r\n\r\n    Aeppic.on('logout', async () => {\r\n      await this.updateMenuEntries()\r\n    })\r\n\r\n    this.updateMenuEntries()\r\n\r\n    // WHITE\r\n    locals.logo = Aeppic.get('f3a1c576-1c56-4d66-9d59-f5e383c714af')\r\n    locals.icon = Aeppic.get('2fe6d2e7-7fc6-455c-90f3-4ce56d4826b6')\r\n    //\r\n\r\n    // COLOR\r\n    // locals.logo = Aeppic.get('5a5cfd6a-1748-4c6a-a2a1-64490c6e28ae')\r\n    // locals.icon = Aeppic.get('a295373b-2c3b-48f1-bc16-691976772fc1')\r\n    // \r\n\r\n    await Aeppic.nextRenderPass()\r\n    this._updateParentElement()\r\n  }\r\n\r\n  get showExpanded() {\r\n    return locals.forceExpand || locals.showExpandedHover || params.forceExpand\r\n  }\r\n\r\n  forceExpand() {\r\n    locals.forceExpand = !locals.forceExpand\r\n\r\n    Aeppic.LocalStorage.setValue('bp-nav__force-expand', locals.forceExpand)\r\n\r\n    this._updateParentElement()\r\n  }\r\n\r\n  _updateParentElement() {\r\n    const maxWidth = locals.forceExpand ? '200px' : '49px'\r\n    $refs.container.parentElement.style.maxWidth = maxWidth\r\n  }\r\n\r\n  show() {\r\n    this._showExpandedTimeout = Aeppic.setTimeout(() => {\r\n      locals.showExpandedHover = true\r\n    }, 300)\r\n  }\r\n\r\n  hide() {\r\n    if (this._showExpandedTimeout) {\r\n      Aeppic.clearTimeout(this._showExpandedTimeout)\r\n      this._showExpandedTimeout = null\r\n    }\r\n\r\n    locals.showExpandedHover = false\r\n  }\r\n\r\n  async updateMenuEntries() {\r\n    const { visibleMenuEntries } = (await Aeppic.Actions.run(['9403c143-54b4-4d4e-9a9a-88b3e9727494'], { \r\n      Account: Aeppic.Account,\r\n      menuEntries: data.menuItems\r\n    }))[0].value\r\n\r\n    locals.visibleMenuEntrys = visibleMenuEntries\r\n    locals.refresh++\r\n  }\r\n\r\n  async navigateTo(menuItemOrDocument) {\r\n    const item = await Aeppic.get(menuItemOrDocument)\r\n    console.log('navigateTo', { menuItemOrDocument }, item)\r\n\r\n    if (item && item.f.id === this.FORMS.MenuEntry && item.data.target?.id) {\r\n      Aeppic.navigateTo(item.data.target.id)\r\n    } else {\r\n      Aeppic.navigateTo(item)\r\n    }\r\n  \r\n    $emit('navigated')\r\n  }\r\n\r\n  get activeTargetId() {\r\n    return params.pageDocument ?  params.pageDocument.a[1] || params.pageDocument.id : ''\r\n  }\r\n}\r\n","packages":[]},"locks":[],"created":{"at":"2017-10-12T12:55:46+02:00","by":"","from":"","client":"284d5900-1313-48ea-948a-d0a21eceae39"},"modified":{"at":"2022-03-18T13:13:02+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1647609182232,"ct":1507805746718,"a_depth":4,"a":["apps","8f8c9ed7-a7ed-4150-b162-92d6f19a05b0","526d9710-b2bd-4fa7-9341-d780ead102c1","c69a0c1c-6c53-40c2-87e8-5ace866bf1df"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"81915ce5-c4bb-4e24-a25d-e700c442a99b","v":"31f03d4d2bfef064","previous":{"v":"e63e53bc49abacff"},"p":"cf155969-ede1-43a4-9b10-3a697b19db91","f":{"id":"design-form","v":"e3fe9ece11aabc5e","text":"Design"},"data":{"name":"new","applies":"","template":"<template v-if=\"locals.form\">\n  <div class=\"_CSS-container\">\n    <div class=\"_CSS-line\">\n      <button class=\"ae-button _CSS-button-attach\" @click=\"controller.showPopup($event)\">\n        <ae-icon class=\"fa fa-paperclip\"></ae-icon>\n      </button>\n\n      <ae-control   name=\"editor-comment\"\n                    :document=\"document\"\n                    field-name=\"content\"\n                    style=\"align-self:stretch;background:white;border-radius:10px\"\n                    :params=\"locals.form.getFieldControlParams('content')\"\n                    ref=\"editor\"\n                    class=\"_CSS-editor\"\n                    @focusin.native=\"$emit('focus')\"\n      ></ae-control>\n      \n\n      <button class=\"ae-button _CSS-button-send\" @click.stop=\"$emit('save')\" :disabled=\"!data.content && !data.attachments.length\">\n        <ae-icon class=\"fa fa-save\"></ae-icon>\n      </button>\n    </div>\n    <div class=\"_CSS-line _CSS-line__attachments\" v-if=\"data.attachments.length\">\n      <div class=\"_CSS-attachments-label\">Anhänge</div>\n      <div class=\"_CSS-attachments\">\n        <div v-for=\"attachment of data.attachments\">\n          <ae-design name=\"icon\" :document-id=\"attachment.id\"></ae-design>\n        </div>\n      </div>\n    </div>\n  </div>\n\n\n\n  <ae-popup ref=\"popup\" v-slot=\"scope\">\n    <div class=\"_CSS-popup\" >\n      <div class=\"_CSS-popup__header\">\n        <div>Anhänge</div>\n        <button class=\"ae-button\" @click=\"scope.close()\">\n          <ae-icon class=\"fa fa-times\"></ae-icon>\n        </button>\n      </div>\n      <ae-control name=\"attachment\" field-name=\"attachments\" :params=\"locals.form.getFieldControlParams('attachments')\" :document=\"document\" :watch=\"false\"></ae-control>\n    </div>\n  </ae-popup>\n</template>","css":"._CSS-container {\r\n  display:flex;\r\n  flex-flow: column;\r\n  padding: 10px;\r\n  border-width: 1px;\r\n  border-style: solid;\r\n  border-color: var(--ae-ui-card-border);\r\n  border-radius: 4px;\r\n  background: var(--ae-background);\r\n}\r\n\r\n._CSS-line {\r\n  display: flex;\r\n  align-items: center;\r\n}\r\n\r\n._CSS-line__attachments {\r\n  align-items: flex-end;\r\n  margin: 10px 30px 0 0;\r\n  flex-flow: column;\r\n}\r\n\r\n._CSS-attachments-label {\r\n  color: var(--ae-foreground-l3);\r\n}\r\n\r\n._CSS-attachments {\r\n  display: flex;\r\n}\r\n\r\n._CSS-editor {\r\n  flex: 1;\r\n}\r\n\r\n\r\n._CSS-popup {\r\n  display: flex;\r\n  flex-flow: column;\r\n  background: var(--ae-background);\r\n  width: 400px;\r\n  height: 350px;\r\n  box-shadow: 2px 2px 15px 0 rgba(0, 0, 0, 0.26);\r\n  overflow: auto;\r\n  padding: 10px;\r\n}\r\n\r\n._CSS-popup__header {\r\n  display: flex;\r\n  justify-content: space-between;\r\n}","controller":"class Controller {\n  async init() {\n    locals.form = null\n    locals.form = await Aeppic.getFormForDocument(document)\n  }\n\n  async showPopup(event) {\n    $emit('focus')\n\n    await Aeppic.nextRenderPass()\n    await Aeppic.nextRenderPass()\n\n    $refs.popup.show(event)\n  }\n}","packages":[]},"locks":[],"created":{"at":"2017-10-24T12:58:22+02:00","by":"","from":"","client":"d592620b-5008-4926-8d81-205af0c46c8f"},"modified":{"at":"2020-05-08T09:00:45+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1588928445502,"ct":1508842702752,"a_depth":4,"a":["apps","14c27659-92d7-4b43-8c4f-25f4cceae591","2e759bfa-c685-48e8-81b4-cec70e93c521","cf155969-ede1-43a4-9b10-3a697b19db91"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"5ce51499-76ae-4ee2-88b5-3c2d1af1812f","v":"042b66ace203bc7a","p":"fallback-designs","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"new-document","template":"<ae-form :document=\"document\" style=\"min-height: 100%\"></ae-form>\n   ","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2017-11-29T12:13:05+01:00","by":"","from":"","client":"eb69d595-7b9e-4c79-a678-a7c5985309c9"},"modified":{"at":"2022-03-15T15:13:37+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720684627133,"ct":1720684627133,"a_depth":2,"a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"],"inheritedLocks":[null,null,null],"stamps":[],"previous":{"v":"2630acff8f2268b2","f":{"id":"design-form","v":"9bfe8e0cd909c1f0","text":"Design"}},"meta":{"modified":{"at":"2024-07-11T09:57:07+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"98549e2b-8b3e-4de2-b326-4505e5ea1795","v":"ac584d8698368880","previous":{"v":"a70af8cf7d001737"},"p":"86966584-6ee3-4351-8e6e-ff6e695b970a","f":{"id":"design-form","v":"3385ac6766f32638","text":"Design"},"data":{"name":"new-document","template":"<!-- <ae-form :document=\"document\"></ae-form> -->\n\n<div class=\"_CSS-container\">\n  <div class=\"ae-form-cell ae-control-container\">\n    <label class=\"ae-form-cell__label\">Titel</label>\n    <ae-control name=\"text\" :document=\"document\" field-name=\"name\"></ae-control>\n  </div>\n\n  <div class=\"ae-form-cell ae-control-container\">\n    <ae-control name=\"editor-quill\"\n              :document=\"document\"\n              field-name=\"beitrag\"\n              style=\"flex: 1;background:white\"\n    ></ae-control>\n  </div>\n\n</div> ","css":"._CSS {\n  height: 100%;\n  display: flex;\n  flex-flow: column;\n}\n\n._CSS-container {\n  display: flex;\n  flex-flow: column;\n  flex: 1;\n} ","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-03-15T15:14:07+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-03-15T15:35:28+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1647358528056,"ct":1647357247271,"a_depth":4,"a":["apps","b91e3079-75ae-49cd-981b-3053bf47208c","e7a0be94-cd94-4210-875e-0cceb7e8bc6c","86966584-6ee3-4351-8e6e-ff6e695b970a"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"b26806a3-04fc-4e8b-9e94-04298b0d8bc7","v":"e00b94634c80d6ea","previous":{"v":"17b12b13d37c93b7"},"p":"cb2adf77-7636-41a7-9a16-1610b06fa91e","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"new-document","template":"<ae-layout layout-id=\"acd83791-970f-4b6e-bebd-d7f3bca52014\"\n          :param-document=\"document\"\n          param-fields-to-display=\"name\"\n></ae-layout> ","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-11-04T15:39:16+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-11-04T15:41:38+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1636040498023,"ct":1636040356500,"a_depth":4,"a":["apps","cf914a7f-ff5f-4598-80f1-63c9129e0a71","d69a62e9-a61f-42bf-9ae9-7983b87bf587","cb2adf77-7636-41a7-9a16-1610b06fa91e"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"dc5daf6d-14f9-4c1c-ad56-0f9b5308ff7e","v":"79571d286e17f89e","previous":{"v":"e48907cb9235434d"},"p":"86966584-6ee3-4351-8e6e-ff6e695b970a","f":{"id":"design-form","v":"e3fe9ece11aabc5e","text":"Design"},"data":{"name":"news","applies":"","template":"<h3 >{{data.name}}</h3>\n\n<div class=\"_CSS-infos\">\n  <span><b>{{ Aeppic.Date.format(data.puplikationsdatum || document.created.at, 'd. MMMM YYYY') }}</b><b v-if=\"document.modified.by\">, {{document.modified.by.text}}</b></span>\n  <small v-if=\"locals.comments.length\">{{locals.comments.length}} Kommentare</small>\n</div>\n<ae-control name=\"editor\" fieldName=\"beitrag\" :document=\"document\" :params=\"{ readonly: true }\" :param-no-expand=\"true\"></ae-control>\n ","css":"._CSS {\n  background: white;\n  box-shadow: 0 0 5px rgba(0,0,0,0.3);\n  xpadding: 4px;\n}\n\n._CSS-infos {\n  border-bottom: solid 1px #ebebeb;\n  border-top: solid 1px #ebebeb;\n  height: 40px;\n  line-height: 40px;\n  padding: 0;\n}   ","controller":"class Controller {\n  init() {\n    locals.comments = []\n    Aeppic.subscribeQuery('f812861f-68c8-4818-9972-be7b5474c9b1', document.id, (comments) => loals.comments = comments)\n  }\n}","packages":[]},"locks":[],"created":{"at":"2017-09-15T10:29:31+02:00","by":"","from":"","client":"import"},"modified":{"at":"2020-11-23T10:35:45+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1606127745823,"ct":1467644278508,"a_depth":4,"a":["apps","b91e3079-75ae-49cd-981b-3053bf47208c","e7a0be94-cd94-4210-875e-0cceb7e8bc6c","86966584-6ee3-4351-8e6e-ff6e695b970a"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"15eb7352-279f-4432-8633-8885faec9763","v":"6449270e25e849d4","previous":{"v":"a2e849e77a6913ed"},"p":"86966584-6ee3-4351-8e6e-ff6e695b970a","f":{"id":"design-form","v":"24435d748c76f819","text":"Design"},"data":{"name":"news-card","template":"<!-- web version -->\r\n<div v-if=\"Aeppic.Device !== 'Phone'\">\r\n\t<div @click.stop=\"$emit('selected', document)\" class=\"_CSS-cardArea\" :class=\"(!params.hideComments && !controller.hasContent && locals.comments.length === 0)? '_CSS-cardArea--noContentNoComments' : ''\">\r\n\t\t<div :style=\"!params.hideComments? '' : 'width: 100%'\" class=\"_CSS-card\">\r\n\t\t\t<div class=\"_CSS-card__main\" :style=\"params.hideComments? 'height: 200px' : '' \">\r\n\t\t\t\t<div class=\"_CSS-card-main__details\">\r\n\t\t\t\t\t<!-- title-->\r\n\t\t\t\t\t<span class=\"_CSS-card-main__title\" :title=\"data.name\" v-if=\"data.name\">{{data.name}}</span>\r\n\t\t\t\t\t<span v-else class=\"_CSS-card-main__title--empty\">Kein Titel</span>\r\n\t\t\t\t\t<span style=\"flex:1\"></span>\r\n\t\t\t\t\t<!-- newsgroup -->\r\n\t\t\t\t\t<ae-design class=\"_CSS-card-main__newsgroup\" name=\"title\" :document-id=\"document.p\" :style=\"{ 'background-color': controller.groupColor }\"></ae-design>\r\n\t\t\t\t</div>\r\n\t\t\t\t<!-- users -->\r\n\t\t\t\t<div v-if=\"!params.isActivity\">\r\n\t\t\t\t\t<div v-if=\"!locals.profileCreated\" class=\"_CSS-card-details__user\">\r\n\t\t\t\t\t\t<div class=\"_CSS-card-details__userImg\">\r\n\t\t\t\t\t\t\t<ae-icon class=\"fa fa-user-circle\"> </ae-icon>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<div class=\"_CSS-card-details__userName\">\r\n\t\t\t\t\t\t\tAdmin\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<template v-else>\r\n\t\t\t\t\t\t<div class=\"_CSS-card-details__user\">\r\n\t\t\t\t\t\t\t<ae-design class=\"_CSS-card-details__userImg\" :document=\"locals.profileCreated\" name=\"avatar--resizes-with-font\">\r\n\t\t\t\t\t\t\t</ae-design>\r\n\t\t\t\t\t\t\t<ae-design class=\"_CSS-card-details__userName\" :document=\"locals.profileCreated\" name=\"title\">\r\n\t\t\t\t\t\t\t</ae-design>\r\n\t\t\t\t\t\t\t<div v-if=\"locals.profileCreated && locals.profileModified && locals.profileCreated.id !== locals.profileModified.id\" class=\"_CSS-card-details__edit\">\r\n\t\t\t\t\t\t\t\t<ae-icon class=\"fas fa-pencil\" style=\"font-size: var(--ae-font-size-2)\"></ae-icon>\r\n\t\t\t\t\t\t\t\t<div class=\"_CSS-card-details-label\">&nbspvon&nbsp</div>\r\n\t\t\t\t\t\t\t\t<div class=\"_CSS-card-details__userName--editor\">\r\n\t\t\t\t\t\t\t\t\t<ae-design :document=\"locals.profileModified\" name=\"title\"></ae-design>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</template>\r\n\t\t\t\t</div>\r\n\t\t\t\t<!-- content -->\r\n\t\t\t\t<div class=\"_CSS-card-main__content\" :style=\"params.isActivity? 'min-height: 50px;max-height: 200px;' : 'height: 250px;'\"\r\n\t\t\t\t :class=\"!controller.hasContent? '_CSS-card-main__content--empty' : ''\">\r\n\t\t\t\t\t<ae-control v-if=\"controller.hasContent\" name=\"editor-light\" :document=\"document\" :readonly=\"true\" field-name=\"beitrag\"></ae-control>\r\n\t\t\t\t\t<div v-else style=\"padding: var(--ae-size-1)\">\r\n\t\t\t\t\t\t<ae-icon style=\"align-self: center;\" class=\"fas fa-empty-set\"></ae-icon>\r\n\t\t\t\t\t\t<span>Dieser Beitrag hat keinen Inhalt</span>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t\t<!-- date -->\r\n\t\t\t\t<div v-show=\"locals.profileCreated && !params.isActivity\" :title=\"controller.fullDate\">{{ controller.date }}</div>\r\n\t\t\t</div>\r\n\t\t\t<!-- comments-->\r\n\t\t\t<div class=\"_CSS-card__comments\" v-if=\"locals.comments && locals.comments.length > 0 && !params.hideComments && !params.isActivity\">\r\n\t\t\t\t<ae-design class=\"_CSS-card-comment\" v-for=\"comment of locals.comments\" v-if=\"controller.displayComment(comment)\" :key=\"comment.id\"\r\n\t\t\t\t :document-id=\"comment.id\" name=\"line-item,title\" :param-readonly=\"true\" :param-card-order-commenter=\"comment && locals.feedCreated && locals.feedCreated.id === comment.created.by\"\r\n\t\t\t\t :param-card-turncate=\"locals.truncate\" :class=\"{ '_CSS-card-comment--creator': comment && locals.feedCreated && locals.feedCreated.id === comment.created.by}\">\r\n\t\t\t\t</ae-design>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t\t<!-- comment indicater landing page-->\r\n\t\t<div class=\"_CSS-commenter__indicator\" v-if=\"(params.hideComments && locals.commenters.length > 0 && !params.isActivity)\">\r\n\t\t\t<div class=\"_CSS-commenter__area\" style=\"bottom: -0.4em\">\r\n\t\t\t\t<div class=\"_CSS-commenter__icon\" :data-count=\"locals.comments.length\">\r\n\t\t\t\t\t<ae-icon class=\"fa fa-comment\"></ae-icon>\r\n\t\t\t\t</div>\r\n\t\t\t\t<ae-design class=\"_CSS-commenter\" v-for=\"commenter of locals.commenters\" v-if=\"commenter\" :key=\"commenter.id\" :document-id=\"commenter.id\"\r\n\t\t\t\t name=\"profile-avatar\" :param-readonly=\"true\">\r\n\t\t\t\t</ae-design>\r\n\t\t\t\t<span class=\"_CSS-commenter__overflowLength\" v-if=\"locals.commentersOverflow.length > 0\">+{{locals.commentersOverflow.length}}</span>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</div>\r\n</div>\r\n\r\n<!-- mobile version -->\r\n\r\n<div v-if=\"Aeppic.Device === 'Phone'\">\r\n\t<div @click.stop=\"$emit('selected', document)\" class=\"_CSS-cardArea\" :class=\"(!params.hideComments && !controller.hasContent && locals.comments.length === 0)? '_CSS-cardArea--noContentNoComments' : ''\">\r\n\t\t<div :style=\"!params.hideComments? '' : 'width: 100%'\" class=\"_CSS-card--mobile\">\r\n\t\t\t<div class=\"_CSS-card__main\" :class=\"!controller.hasContent? '_CSS-card__main--empty--mobile' : ''\">\r\n\t\t\t\t<div class=\"_CSS-card-main__details\" :class=\"Aeppic.Device === 'Phone'? '_CSS-card-main__details--mobile' : ''\">\r\n\t\t\t\t\t<!-- newsgroup -->\r\n\t\t\t\t\t<ae-design class=\"_CSS-card-main-details__newsgroup\" name=\"title\" :document-id=\"document.p\" :style=\"{ 'background-color': controller.groupColor }\"></ae-design>\r\n\t\t\t\t\t<!-- title -->\r\n\t\t\t\t\t<span class=\"_CSS-card-main__title\" style=\"font-size: var(--ae-font-size-6)\" :title=\"data.name\" v-if=\"data.name\">{{data.name}}</span>\r\n\t\t\t\t\t<span v-else class=\"_CSS-card-main__title--empty\">Kein Titel</span>\r\n\t\t\t\t\t<span style=\"flex:1\"></span>\r\n\t\t\t\t</div>\r\n\r\n\t\t\t\t<div v-if=\"!params.isActivity\">\r\n\t\t\t\t\t<!-- user -->\r\n\t\t\t\t\t<div v-if=\"!locals.profileCreated\" class=\"_CSS-card-details__content--admin\">\r\n\t\t\t\t\t\t<ae-icon class=\"fa fa-user-circle _CSS-card-details__userImg--mobile\">\r\n\t\t\t\t\t\t</ae-icon>\r\n\t\t\t\t\t\t<span class=\"_CSS-card-details__userName--mobile\">\r\n                            Admin\r\n                        </span>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<template v-else>\r\n\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t<div style=\"display: flex\">\r\n\t\t\t\t\t\t\t\t<ae-design class=\"_CSS-card-details__userImg--mobile\" :document=\"locals.profileCreated\" name=\"avatar--resizes-with-font\">\r\n\t\t\t\t\t\t\t\t</ae-design>\r\n\t\t\t\t\t\t\t\t<ae-design class=\"_CSS-card-details__userName--mobile\" :document=\"locals.profileCreated\" name=\"title\">\r\n\t\t\t\t\t\t\t\t</ae-design>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t<div v-if=\"locals.profileCreated && locals.profileModified && locals.profileCreated.id !== locals.profileModified.id\" class=\"_CSS-card-details__edit--mobile\">\r\n\t\t\t\t\t\t\t\t<ae-icon class=\"fas fa-pencil\"></ae-icon>\r\n\t\t\t\t\t\t\t\t<div class=\"_CSS-card-details-label\">&nbspvon&nbsp</div>\r\n\t\t\t\t\t\t\t\t<div class=\"_CSS-card-details__userName--editor\">\r\n\t\t\t\t\t\t\t\t\t<ae-design :document=\"locals.profileModified\" name=\"title\"></ae-design>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</template>\r\n\t\t\t\t</div>\r\n\t\t\t\t<!-- content -->\r\n\t\t\t\t<div class=\"_CSS-card-main__content\" :style=\"params.isActivity?'max-height: 250px; min-height: 50px;' : 'height: 250px'\"\r\n\t\t\t\t :class=\"!controller.hasContent? '_CSS-card-main__content--empty' : ''\">\r\n\t\t\t\t\t<ae-control v-if=\"controller.hasContent\" name=\"editor-light\" :document=\"document\" :readonly=\"true\" field-name=\"beitrag\"></ae-control>\r\n\t\t\t\t\t<div v-else>\r\n\t\t\t\t\t\t<ae-icon style=\"align-self: center;\" class=\"fas fa-empty-set\"></ae-icon>\r\n\t\t\t\t\t\t<span>Dieser Beitrag hat keinen Inhalt</span>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t\t<!-- date -->\r\n\t\t\t\t<div v-if=\"!params.isActivity\" :title=\"controller.fullDate\">{{ controller.date }}</div>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t\t<!-- comment indicator-->\r\n\t\t<div class=\"_CSS-commenter__indicator\" v-if=\"locals.commenters.length > 0\">\r\n\t\t\t<div class=\"_CSS-commenter__area\" style=\"bottom: 1em\">\r\n\t\t\t\t<div class=\"_CSS-commenter__icon\" :data-count=\"locals.comments.length\">\r\n\t\t\t\t\t<ae-icon class=\"fa fa-comment\"></ae-icon>\r\n\t\t\t\t</div>\r\n\t\t\t\t<ae-design class=\"_CSS-commenter\" v-for=\"commenter of locals.commenters\" v-if=\"commenter\" :key=\"commenter.id\" :document-id=\"commenter.id\"\r\n\t\t\t\t name=\"profile-avatar\" :param-readonly=\"true\">\r\n\t\t\t\t</ae-design>\r\n\t\t\t\t<span class=\"_CSS-commenter__overflowLength\" v-if=\"locals.commentersOverflow.length > 0\">+{{locals.commentersOverflow.length}}</span>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</div>\r\n</div>","css":"._CSS-card {\r\n  display: flex;\r\n  border: var(--ae-border-width) solid var(--ae-border-color);\r\n  border-radius: var(--ae-border-radius);\r\n  justify-self: center;\r\n}\r\n\r\n._CSS-card--mobile {\r\n  flex-direction: column;\r\n  border: var(--ae-border-width) solid var(--ae-border-color);\r\n  border-radius: var(--ae-border-radius);\r\n}\r\n\r\n._CSS-card-details__userImg--mobile {\r\n  font-size: var(--ae-font-size-7);\r\n  margin: 0 var(--ae-size-2) 0 0;\r\n}\r\n\r\n._CSS-card-details__user {\r\n  display: flex;\r\n}\r\n\r\n._CSS-card-details__userName--mobile {\r\n  font-size: var(--ae-font-size-5); \r\n}\r\n\r\n._CSS-card-details__edit--mobile {\r\n  display: flex;\r\n  margin-left: var(--ae-size-5);\r\n}\r\n\r\n._CSS-card-details__edit {\r\n  display: flex;\r\n  align-self: baseline;\r\n  align-items: baseline;\r\n  padding: var(--ae-size-1);\r\n}\r\n\r\n._CSS-card-details__userImg {\r\n  font-size: var(--ae-font-size-7);\r\n}\r\n\r\n._CSS-card__details  {\r\n  background: var(--ae-background-100); \r\n  min-width: 0;\r\n  display: flex;\r\n  flex-direction: column;\r\n  align-items: center;\r\n  border-radius: var(--ae-border-radius) 0 0  var(--ae-border-radius);\r\n}\r\n\r\n\r\n\r\n._CSS-card__main {\r\n  background: var(--ae-ui-background);\r\n  flex: 3;\r\n  width: 100%; \r\n  min-width: 0;\r\n  display: flex;\r\n  flex-direction: column;  \r\n  padding: var(--ae-size-2) var(--ae-size-2);\r\n  border-radius: var(--ae-border-radius);\r\n}\r\n\r\n._CSS-card-details__newsgroup {\r\n  padding: var(--ae-size-10);\r\n}\r\n\r\n._CSS-card-main__newsgroup {\r\n  width: var(--ae-size-9);\r\n  border-radius: var(--ae-border-radius);\r\n  text-align: center;\r\n  padding: var(--ae-size-1);\r\n}\r\n\r\n\r\n._CSS-card__main--empty {\r\n  height: var(--ae-size-11);\r\n  border-radius: var(--ae-border-radius);\r\n}\r\n\r\n._CSS-card__main--empty--mobile {\r\n height: var(--ae-size-12);\r\n  border-radius: var(--ae-border-radius);\r\n}\r\n\r\n._CSS-cardArea {\r\n  width: 100%;\r\n}\r\n\r\n._CSS-cardArea ._CSS-cardArea--noContentNoComments{\r\n  display: flex; \r\n  justify-content: center;\r\n  \r\n  margin-left: auto;\r\n  margin-right: auto;\r\n}\r\n\r\n._CSS-commenter__indicator {\r\n  display:flex;\r\n  justify-content:flex-end;\r\n}\r\n\r\n._CSS-card-main-details__newsgroup {\r\n  width:100%;\r\n  border-radius: var(--ae-border-radius);\r\n  padding: var(--ae-size-2);\r\n  text-align: center; \r\n  font-size: var(--ae-font-size-6); \r\n}\r\n\r\n._CSS-commenter__area {\r\n  background:var(--ae-background-100);\r\n  border-radius: var(--ae-border-radius);\r\n  border: var(--ae-border-width) solid var(--ae-border-color);\r\n  display: flex;\r\n  align-items: center;\r\n  white-space: nowrap;\r\n  padding: 0;\r\n  overflow: hidden; \r\n  position: absolute;\r\n  height: var(--ae-size-7);\r\n  right: 0.8em;\r\n}\r\n\r\n._CSS-commenter__overflowLength {\r\n  opacity: var(--ae-opacity-2); \r\n  font-size: var(--ae-font-size-3);\r\n  font-weight: bold;\r\n}\r\n\r\n._CSS-commenter__area > * {\r\n  padding: var(--ae-size-1);\r\n}\r\n\r\n._CSS-commenter__icon {\r\n  opacity: var(--ae-opacity-2);\r\n  height: 100%;\r\n  width: 48px;\r\n  display: flex;\r\n  align-items: center;\r\n  justify-content: center;\r\n}\r\n\r\n._CSS-commenter__icon::after {\r\n  content: attr(data-count);\r\n  padding: var(--ae-size-1);\r\n  font-weight: bold;\r\n}\r\n\r\n._CSS-card__details {\r\n  background: var(--ae-background-100);\r\n  min-width: 0;\r\n  display: flex;\r\n  flex: 1;\r\n  flex-direction: column;\r\n  align-items: center;\r\n  border-radius: var(--ae-border-radius) 0 0  var(--ae-border-radius);\r\n}\r\n\r\n._CSS-card-details__content {\r\n  display: flex; \r\n  flex: 1; \r\n  max-width: 100%; \r\n  padding: var(--ae-size-1); \r\n  flex-direction: column;\r\n}\r\n\r\n._CSS-card__details--mobile {\r\n  background: var(--ae-background-100);\r\n  border-radius: var(--ae-border-radius) var(--ae-border-radius) 0 0;\r\n}\r\n\r\n._CSS-card__comments {\r\n  background: var(--ae-background-100);\r\n  width: 100%;\r\n  flex: 2;\r\n  min-width: 0px;\r\n  border-radius: 0 var(--ae-border-radius) var(--ae-border-radius) 0;\r\n  max-height: 370px;\r\n  overflow: hidden;\r\n  position: relative;\r\n  display: flex;\r\n  flex-direction: column;\r\n  z-index: 0;\r\n  padding: var(--ae-size-4) var(--ae-size-2);\r\n}\r\n\r\n._CSS-card__comments:after{\r\n  content: \"\";\r\n  height: var(--ae-size-10);\r\n  position: absolute;\r\n  bottom: 0;\r\n  flex: 1;\r\n  width: 100%;\r\n  background: linear-gradient(rgba(255, 255, 255, 0), var(--ae-background-100));\r\n  border-radius: 0 0 var(--ae-border-radius) 0;; \r\n  justify-self: flex-end;\r\n  z-index: 3;\r\n}\r\n\r\n._CSS-card-details__userName {\r\n  padding: var(--ae-size-1);\r\n  white-space: nowrap;\r\n  overflow: hidden;\r\n  text-overflow: ellipsis; \r\n}\r\n\r\n._CSS-card-details__userName--editor {\r\n  white-space: nowrap;\r\n  overflow: hidden;\r\n  text-overflow: ellipsis;\r\n}\r\n\r\n._CSS-card-details__date--mobile {\r\n  width: 100%;\r\n  text-align: center;\r\n}\r\n\r\n._CSS-card-details__date {\r\n  padding: 0 0 var(--ae-size-6) 0;\r\n  justify-self: center;\r\n  align-self: center;\r\n}\r\n\r\n._CSS-card-main__details {\r\n  display: flex; \r\n  align-items: baseline;\r\n  min-height: var(--ae-size-6);\r\n}\r\n\r\n._CSS-card-main__details--mobile {\r\n  min-height: var(--ae-size-8);\r\n  flex-direction: column; \r\n}\r\n\r\n._CSS-card-main__title--empty {\r\n  color: var(--ae-background-300);\r\n}\r\n\r\n._CSS-card-main__title,._CSS-card-main__title--empty {\r\n  font-size: var(--ae-font-size-6);\r\n  font-weight: bolder;\r\n  white-space: nowrap;\r\n  overflow: hidden;\r\n  text-overflow: ellipsis;\r\n  width: 100%;\r\n}\r\n\r\n._CSS-card-main__content {\r\n  overflow: hidden; \r\n  position: relative;\r\n  padding: var(--ae-size-1) 0;  \r\n}\r\n\r\n._CSS-card-main__content--empty {\r\n  color: var(--ae-background-300);\r\n  display: flex;\r\n  flex-direction: column; \r\n  justify-content: center;\r\n  align-items: center;\r\n  height: 100%;\r\n  min-height: var(--ae-size-7);\r\n}\r\n\r\n._CSS-card-main__content:after {\r\n  width: 100%;\r\n  background: linear-gradient(rgba(255,255,255,0), var(--ae-ui-background));\r\n  content: \"\";\r\n  font-size: var(--ae-font-size-12);\r\n  position: absolute;\r\n  bottom: 0;\r\n  height: var(--ae-size-8);\r\n  text-align: center;\r\n}\r\n\r\n._CSS-card-comment+._CSS-card-comment {\r\n  margin-top: var(--ae-size-3); \r\n}\r\n\r\n._CSS-card-comment {\r\n  background: var(--ae-ui-background);\r\n  border: var(--ae-border-width) solid  var(--ae-border-color);\r\n  border-radius: var(--ae-border-radius);\r\n  padding-top: var(--ae-size-1);\r\n  width: 80%;\r\n}\r\n\r\n._CSS-card-comment--creator {\r\n  align-self: flex-end;\r\n}","controller":"class Controller {\r\n  async init() {\r\n    this.publishStampId = '04a939a8-6732-4f94-ad75-6f17ac417136'\r\n\r\n\r\n    locals.heroOffsetY = 0;\r\n    locals.ancestors = Aeppic.getAll(document.a)\r\n    // locals.heroImage = this.findHeroImage()\r\n\r\n    // TODO: reenable if needed\r\n    // locals.heroImageUrl = this.findHeroImageUrl()\r\n    locals.truncate = true\r\n\r\n    locals.commenters = []\r\n    locals.comments = []\r\n    locals.commentersOverflow = []\r\n\r\n    locals.profileCreated = await Aeppic.getProfilePageForAccount(document.created.by)\r\n    locals.profileModified = await Aeppic.getProfilePageForAccount(document.modified.by)\r\n    locals.group = await Aeppic.get(document.p)\r\n    locals.feedCreated = await Aeppic.get(document.created.by)\r\n    \r\n    Aeppic.subscribe(`p:${document.id} f.id:cf155969-ede1-43a4-9b10-3a697b19db91`, { sort: { field: 'modified.at', descending: true } }, async (documents)=>{\r\n      locals.comments = []\r\n\r\n      let comments = documents\r\n      // comments.sort((a,b) => this.sortComment(a,b))\r\n      // comments = comments.reverse()\r\n\r\n      const all = await Aeppic.getAll(locals.comments.map(c => c.modified.by))\r\n      const unique = all.reduce((x, y) => x.findIndex(e=>e != null && y != null && e.id==y.id)<0 ? [...x, y]: x, [])\r\n \r\n      locals.commenters = unique\r\n      // locals.commenters.push(...all, ...all)\r\n      //locals.commentersOverflow = []\r\n\r\n      const LIMIT = 2\r\n      \r\n      if (locals.commenters.length > LIMIT) {\r\n        locals.commentersOverflow = locals.commenters.splice(LIMIT, locals.commenters.length - LIMIT)\r\n      }\r\n\r\n      locals.comments = comments.slice(0,5)\r\n    })\r\n  }\r\n\r\n  get groupColor() {\r\n    if (!locals.group || !locals.group.data.color) {\r\n      return 'var(--ae-primary-200)'\r\n    } else {\r\n      return locals.group.data.color\r\n    }\r\n  }\r\n\r\n  sortComment(a,b) {\r\n    return a.modified.at.localeCompare(b.modified.at)\r\n  }\r\n\r\n  //findHeroImageUrl() {\r\n  //  try {\r\n  //    const images = JSON.parse(data.beitrag)\r\n  //    for (const op of images.ops) {\r\n  //      if (op.insert && op.insert.image) {\r\n  //        console.log(op)\r\n  //        return op.insert.image\r\n  //      }\r\n  //    }\r\n  //  } catch (e) {}\r\n  //}\r\n\r\n  // findHeroImage() {\r\n  //   const attachments = await Aeppic.getAll(data.references)\r\n  \r\n  //   for (const a of attachments) {\r\n  //     console.log(attachments)\r\n  //     if (a && a.data.datei && a.data.datei.type && a.data.datei.type.indexOf('image/') === 0 ) {\r\n  //       if (true || a.data.datei.size > 10000) {\r\n  //         return a\r\n  //       }\r\n  //     }\r\n  //   }\r\n  // }\r\n\r\n  // get showHero() { \r\n  //   return locals.heroImage != null \r\n  // }\r\n\r\n  //get showWide() { \r\n  //  return false\r\n  //}\r\n \r\n  // get heroImageUrl() {\r\n  //   if (!locals.heroImage) {\r\n  //     return\r\n  //   }\r\n  //   return Aeppic.Content.getSrc(locals.heroImage, 'datei')\r\n  // }\r\n\r\n  //get backgroundPosition() {\r\n  //  return `${locals.heroOffsetY}px`\r\n  //}\r\n \r\n  //get backgroundPositionTitle() {\r\n  //  return `${-148+locals.heroOffsetY}px`\r\n  //}\r\n\r\n  //get gradient() {\r\n  //  if (!$refs.title) {\r\n  //    return\r\n  //  }\r\n\r\n  //  const win = $refs.title.ownerDocument.defaultView\r\n  //  return win.RandomGradient(document.p)\r\n  //}\r\n\r\n  get date() {\r\n    const dateSource = data.publikationsdatum ? data.publikationsdatum : document.created.at\r\n    const date = DateTime.fromISO(dateSource)\r\n\r\n    const diff = -date.diffNow('days').days.toFixed(0)\r\n\r\n    if (diff > 7) {\r\n      return date.toLocaleString(DateTime.DATE_MED)\r\n    }\r\n\r\n    return date.toLocaleString({weekday: 'long' })\r\n  }\r\n\r\n  get fullDate() {\r\n    const dateSource = data.publikationsdatum ? data.publikationsdatum : document.created.at\r\n\r\n    return DateTime.fromISO(dateSource).toLocaleString(DateTime.DATETIME_FULL)\r\n  }\r\n\r\n  displayComment(comment) {\r\n    // // FIXME: this is indented for development purposes only\r\n    // const robertsAccountId = '870fac1f-b0d7-4925-b191-a43166960419'\r\n    // if (Aeppic.Account && Aeppic.Account.data.allowDevMode && comment.created.by === robertsAccountId) {\r\n    //   return true\r\n    // }\r\n    // //\r\n\r\n    const commentHasNewForm = 'attachments' in comment.data\r\n\r\n    if (commentHasNewForm) {\r\n      return comment.stamps && comment.stamps.find(s => s.type && s.type.id === this.publishStampId)\r\n      // return comment.v !== 'initial'\r\n    }\r\n\r\n    return true\r\n  }\r\n\r\n  get hasContent() {\r\n    // <!-- {\"ops\":[{\"insert\":\"\\n\"}]} has length of 25 -->\r\n    return data.beitrag.length > 25\r\n  }\r\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2019-03-27T09:33:04+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2021-11-03T13:11:51+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1635945111792,"ct":1553679184296,"a_depth":4,"a":["apps","b91e3079-75ae-49cd-981b-3053bf47208c","e7a0be94-cd94-4210-875e-0cceb7e8bc6c","86966584-6ee3-4351-8e6e-ff6e695b970a"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"6d560ee6-af82-4006-bba7-d5a1a60d01f9","v":"initial","p":"86966584-6ee3-4351-8e6e-ff6e695b970a","f":{"id":"design-form","v":"24435d748c76f819","text":"Design"},"data":{"name":"news-card.old","template":"  <!-- <div v-if=\"controller.showHero\" class=\"_CSS-card _CSS-card--hero\" :class=\"{'_CSS-card--wide':controller.showWide}\"> -->\r\n  <div v-if=\"locals.heroImageUrl\" class=\"_CSS-card _CSS-card--hero\" :class=\"{'_CSS-card--wide':controller.showWide}\">\r\n    <div class=\"_CSS-card__hero-background\" :style=\"{  'top':controller.backgroundPosition,'background-image': 'url(' + locals.heroImageUrl + ')'}\"></div>\r\n   \r\n    <div class=\"_CSS-card__hero-title\" >    \r\n      <div class=\"_CSS-card__hero-title-background\" :style=\"{ 'top':controller.backgroundPositionTitle, 'background-image': 'url(' + locals.heroImageUrl + ')'}\"></div>\r\n      <h1>{{data.name}}</h1>\r\n      <ae-control name=\"editor-light\" :document=\"document\" :readonly=\"true\" field-name=\"beitrag\"></ae-control>\r\n    </div>   \r\n  </div> \r\n<div ref=\"title\" v-else class=\"_CSS-title _CSS-card\" >\r\n  <div class=\"_CSS-title__background\" :style=\"{ background: controller.background }\"></div>\r\n  <div class=\"_CSS-title__header\">\r\n    <!-- <ae-design class=\"_CSS-card__user-avatar\" :document=\"locals.profile\" name=\"avatar--small\"></ae-design>\r\n    <ae-design class=\"_CSS-card__user-name\" :document=\"locals.profile\" name=\"title\"></ae-design>\r\n    <ae-design class=\"_CSS-card__group\" :document-id=\"document.p\" name=\"title\"></ae-design>\r\n    <span class=\"_CSS-card__date\">{{ data.publikationsdatum && Aeppic.DateTime.fromISO(data.publikationsdatum).toLocaleString() }}</span> -->\r\n    <span class=\"_CSS-card__name\">{{data.name}}</span>\r\n    <span style=\"flex:1\"></span>\r\n    <ae-design title=\"Veröffentlicht in Gruppe\" class=\"_CSS-card__group\" @click.native.stop=\"Aeppic.navigateTo(locals.group)\" :document=\"locals.group\" name=\"title\" :style=\"{ 'background-color': controller.groupColor }\" ></ae-design>\r\n  </div>\r\n  \r\n  <div class=\"_CSS-card-infos--suffix\">\r\n    <span style=\"display: none;position:absolute;bottom:-0px;z-index:1;background:rgba(255,255,255,0.5)\">{{document.modified}}</span>\r\n    <span class=\"_CSS-card__user-name\" v-if=\"!locals.profileCreated\">Admin</span>\r\n    <template v-else>\r\n      <ae-design class=\"_CSS-card__user\" :document=\"locals.profileCreated\" name=\"avatar--tiny\"></ae-design>\r\n      <ae-design class=\"_CSS-card__user-name\" :document=\"locals.profileCreated\" name=\"title\"></ae-design>\r\n      <div class=\"_CSS-profile\" v-if=\"locals.profileCreated && locals.profileModified && locals.profileCreated.id !== locals.profileModified.id\" >\r\n        <span>( Geändert:</span>\r\n        <ae-design class=\"_CSS-card__user\" :document=\"locals.profileModified\" name=\"avatar--tiny\"></ae-design>\r\n        <ae-design class=\"_CSS-card__user-name\" :document=\"locals.profileModified\" name=\"title\"></ae-design>\r\n        <span>)</span>\r\n      </div>\r\n    </template>\r\n    </template>\r\n    <!-- <span>in Gruppe</span> -->\r\n    <span style=\"flex:1\"></span>\r\n    <span class=\"_CSS-card__date\" :title=\"controller.fullDate\">{{ controller.date }}</span>\r\n  </div>\r\n\r\n\r\n  <ae-control style=\"padding-right: 8px;\" name=\"editor-light\" :document=\"document\" :readonly=\"true\" field-name=\"beitrag\"></ae-control>  \r\n</div>\r\n\r\n<div class=\"_CSS-comments\" v-if=\"locals.comments && locals.comments.length > 0 && !params.hideComments\">\r\n  <ae-design class=\"_CSS-comment\" v-for=\"comment of locals.comments\" v-if=\"controller.displayComment(comment)\" :key=\"comment.id\" :document-id=\"comment.id\" name=\"line-item,title\" :param-readonly=\"true\"></ae-design>\r\n</div>\r\n<div class=\"_CSS-commenter__indicator\" v-if=\"params.hideComments && locals.commenters.length > 0\" >\r\n  <div class=\"_CSS-commenter__area\">\r\n    <div class=\"_CSS-commenter__icon\" :data-count=\"locals.comments.length\">\r\n      <ae-icon class=\"fa fa-comment\"></ae-icon>\r\n    </div> \r\n    <ae-design class=\"_CSS-commenter\" v-for=\"commenter of locals.commenters\" v-if=\"commenter\" :key=\"commenter.id\" :document-id=\"commenter.id\" name=\"profile-avatar\" :param-readonly=\"true\"></ae-design>\r\n    <span style=\"margin-left:8px;opacity:0.7;font-size:12px;font-weight:bold\" v-if=\"locals.commentersOverflow.length > 0\">+{{locals.commentersOverflow.length}}</span>\r\n  </div> \r\n</div>\r\n\r\n","css":"._CSS {\r\n  flex: 1;\r\n  font-size: 1em;\r\n}\r\n\r\n._CSS-card-infos--suffix {\r\n  display: flex;\r\n  align-items: center;\r\n  margin-left: -8px;\r\n  font-size: 0.8em;\r\n  padding-bottom: 3em; \r\n}\r\n\r\n._CSS-card-infos--suffix > *+* {\r\n  margin-left: 8px;\r\n}\r\n._CSS-card-infos--suffix > span {\r\n  color: var(--ae-background-600);\r\n}\r\n\r\n._CSS .ql-container {\r\n  font-size: 0.8em;\r\n}\r\n\r\n._CSS-card {\r\n  max-height: 500px;\r\n\r\n  overflow: hidden;\r\n  position: relative;\r\n  background-color: var(--ae-ui-background);\r\n  border-radius: var(--ae-border-radius);\r\n  border-style: solid;\r\n  border-width: var(--ae-border-width);\r\n  border-color: var(--ae-border-color);\r\n}\r\n\r\n._CSS-card._CSS-card--hero {\r\n  /* margin-left: var(--ae-theme-page-padding-left, 16px);\r\n  margin-right: var(--ae-theme-page-padding-left, 16px); */\r\n  min-height: 250px;\r\n  min-width: 400px;\r\n  /* box-shadow: 1px 1px 40px 0px rgba(0,0,0,0.1); */\r\n}\r\n\r\n._CSS-card--hero  ._CSS-card-infos {\r\n  position:absolute;\r\n  top: 4px;\r\n  left:4px;\r\n  display:grid;\r\n  grid-gap: 4px;\r\n  grid-template-columns: 64px 1fr; \r\n  grid-template-areas:\r\n    \"avatar user\"\r\n    \"avatar group\"\r\n    \"avatar time\";\r\n  /* background: white; */\r\n}\r\n\r\n._CSS-card--hero ._CSS-card-infos * {\r\n  color:var(--ae-foreground-l1);\r\n  text-shadow: 1px 1px 10px #000000ad;\r\n}\r\n\r\n._CSS-card--hero  ._CSS-card__user {\r\n  grid-area: avatar;\r\n  transform: scale(0.4);\r\n}\r\n\r\n._CSS-card--hero  ._CSS-card__user > *::first-child {\r\n  box-shadow: 0 0 12px 12px rgba(0,0,0,0.2);\r\n} \r\n\r\n\r\n._CSS-card._CSS-card._CSS-card--wide::after {\r\n  content:'';\r\n  pointer-events:none;\r\n  position:absolute;\r\n  top:0;\r\n  left:0;\r\n  right:0;\r\n  background: linear-gradient(to bottom, rgba(0,0,0,0.25) 0%,rgba(0,0,0,0) 64%); \r\n  height: 16px;\r\n}\r\n\r\n._CSS-card__hero-background {\r\n  position: absolute;\r\n  top: 0;\r\n  left: 0;\r\n  right: 0;\r\n  bottom: 0;\r\n  margin: 0;\r\n  background-position: center; \r\n  background-repeat: no-repeat;\r\n  background-size: cover;\r\n  transform:scale(1.2);\r\n}\r\n\r\n._CSS-card__hero-title {\r\n  position: absolute;\r\n  bottom:0;left:0;right:0;\r\n  overflow: hidden;\r\n  background: var(--ae-ui-background); \r\n  padding: 0;\r\n  height:100px;\r\n  font-size: 1em;\r\n}\r\n\r\n._CSS-card__hero-title * {\r\n  margin: 8px;\r\n  position: relative;\r\n} \r\n\r\n._CSS-card__hero-title-background {\r\n  background-color: var(--ae-ui-background);\r\n  position: absolute;\r\n  left: 0;\r\n  right: 0;\r\n  bottom: 0;\r\n  margin: 0;\r\n  background-size: cover; \r\n  background-position: center; \r\n  box-shadow: inset 0 0 0 300px rgba(255, 255, 255, 0.5);\r\n  filter: blur(10px);\r\n  transform:scale(1.2);\r\n}\r\n\r\n._CSS-card--hero::after {\r\n  content:'';\r\n  position:absolute;\r\n  bottom:0;\r\n  left:0;right:0;\r\n  height: 3em;\r\n  background: linear-gradient(to top, rgba(255,255,255,0.5) 0%,rgba(255,255,255,0) 64%); \r\n}\r\n\r\n._CSS-title {\r\n  overflow:hidden; \r\n  font-size: 1.1em;\r\n  padding-left: var(--bp-page-content-padding, 8px);\r\n  min-height:200px;\r\n  padding-bottom: 1em;\r\n}\r\n\r\n._CSS-title > ._CSS-title__header {\r\n  position:relative;\r\n  display:flex;\r\n  align-items: flex-start;\r\n}\r\n\r\n._CSS-title__background {\r\n  position:absolute;\r\n  top:0;\r\n  left:0;\r\n  right:0;\r\n  bottom:0;\r\n  opacity:0.8;\r\n  filter:blur(0px);\r\n  xtransform:scale(1.6);\r\n  xbackground: var(--ae-primary);\r\n  color: var(--ae-foreground-l1);\r\n}\r\n\r\n\r\n._CSS-title__header {\r\n  display:grid;\r\n  justify-content: flex-start;\r\n  grid-template-areas:\r\n    \"avatar user\"\r\n    \"avatar group\"\r\n    \"avatar time\"\r\n    \"title title\";\r\n  grid-template-columns: 64px 1fr; \r\n  grid-template-rows: min-content;\r\n}\r\n\r\n._CSS-title__header ._CSS-card__user-avatar {\r\n  grid-area: avatar;\r\n  height:4em;\r\n}\r\n\r\n._CSS-card__user-name {\r\n  grid-area: user;\r\n  font-weight: bold;\r\n  color: var(--ae-primary);\r\n}\r\n\r\n._CSS-card__group {\r\n  grid-area: group;\r\n  color: var(--ae-primary-fg);\r\n  background: var(--ae-primary);\r\n  justify-self: start;\r\n  padding: 8px 4px;\r\n  margin-left: 16px;\r\n  border-color: var(--ae-ui-element-border-color);\r\n  border-radius: 0 0 0 var(--ae-border-radius);\r\n  cursor:pointer;\r\n  min-width:8em;\r\n  text-align:center;\r\n}\r\n\r\n._CSS-card__name {\r\n  grid-area: title;\r\n  font-size: 1.5em;\r\n  font-weight: bold;\r\n}\r\n\r\n._CSS-card__date {\r\n  color: var(--ae-foreground-l3);\r\n  font-size: 0.8em;\r\n  padding: 8px;\r\n}\r\n \r\n._CSS-comments {\r\n  background: var(--ae-background-d2);\r\n  margin: -12px 0 24px 0;\r\n  padding: 8px 0 0 0px;\r\n  border: 1px solid var(--ae-ui-element-border-color);\r\n}\r\n\r\n._CSS-comment+._CSS-comment {\r\n  border-top: 1px solid var(--ae-border-color);\r\n  padding-top: 8px;\r\n}\r\n\r\n._CSS-commenter__indicator {\r\n  display:flex;\r\n  justify-content:flex-end;\r\n}\r\n\r\n._CSS-commenter__area {\r\n  position:relative;\r\n  top: -20px;\r\n  background:var(--ae-background-100);\r\n  border-radius:8px;\r\n  border: var(--ae-border-width) solid var(--ae-border-color);\r\n  display:flex;\r\n  align-items:center;\r\n  white-space:nowrap;\r\n  margin:0;\r\n  margin-right:10px;\r\n  padding:0;\r\n  overflow:hidden;\r\n}\r\n\r\n._CSS-commenter__area > * {\r\n  padding: 6px;\r\n}\r\n\r\n._CSS-commenter__icon {\r\n  opacity: 0.4;\r\n  height:100%;\r\n  width:48px;\r\n  display:flex;\r\n  align-items:center;\r\n  justify-content:center;\r\n}\r\n\r\n._CSS-commenter__icon::after {\r\n  content: attr(data-count);\r\n  padding-left: 4px;\r\n  font-weight: bold;\r\n}\r\n\r\n._CSS-profile {\r\n  display: flex;\r\n  align-items: baseline;\r\n}\r\n\r\n._CSS-profile > *~* {\r\n  margin-left: 3px;\r\n}","controller":"class Controller {\r\n  async init() {\r\n    locals.heroOffsetY = 0;\r\n    locals.ancestors = Aeppic.getAll(document.a)\r\n    // locals.heroImage = this.findHeroImage()\r\n\r\n    // TODO: reenable if needed\r\n    // locals.heroImageUrl = this.findHeroImageUrl()\r\n\r\n    locals.commenters = []\r\n    locals.commentersOverflow = []\r\n\r\n    locals.profileCreated = await Aeppic.getProfilePageForAccount(document.created.by)\r\n    locals.profileModified = await Aeppic.getProfilePageForAccount(document.modified.by)\r\n    locals.group = await Aeppic.get(document.p)\r\n    \r\n    Aeppic.subscribe(`p:${document.id} f.id:cf155969-ede1-43a4-9b10-3a697b19db91`, async (documents)=>{\r\n      locals.comments = documents\r\n      locals.comments.sort((a,b) => this.sortComment(a,b))\r\n\r\n      const all = await Aeppic.getAll(locals.comments.map(c => c.modified.by))  \r\n      const allSortedBackwards = all.reverse()\r\n      const unique = allSortedBackwards.reduce((x, y) => x.findIndex(e=>e != null && y != null && e.id==y.id)<0 ? [...x, y]: x, [])\r\n \r\n      locals.commenters = unique\r\n      // locals.commenters.push(...all, ...all)\r\n      locals.commentersOverflow = []\r\n\r\n      const LIMIT = 5\r\n      \r\n      if (locals.commenters.length > LIMIT) {\r\n        locals.commentersOverflow = locals.commenters.splice(LIMIT, locals.commenters.length - LIMIT)\r\n      }\r\n    })\r\n  }\r\n\r\n  get groupColor() {\r\n    if (!locals.group || !locals.group.data.color) {\r\n      return 'var(--ae-primary-200)'\r\n    } else {\r\n      return locals.group.data.color\r\n    }\r\n  }\r\n\r\n  sortComment(a,b) {\r\n    return a.modified.at.localeCompare(b.modified.at)\r\n  }\r\n\r\n  findHeroImageUrl() {\r\n    try {\r\n      const images = JSON.parse(data.beitrag)\r\n      for (const op of images.ops) {\r\n        if (op.insert && op.insert.image) {\r\n          console.log(op)\r\n          return op.insert.image\r\n        }\r\n      }\r\n    } catch (e) {}\r\n  }\r\n\r\n  // findHeroImage() {\r\n  //   const attachments = await Aeppic.getAll(data.references)\r\n  \r\n  //   for (const a of attachments) {\r\n  //     console.log(attachments)\r\n  //     if (a && a.data.datei && a.data.datei.type && a.data.datei.type.indexOf('image/') === 0 ) {\r\n  //       if (true || a.data.datei.size > 10000) {\r\n  //         return a\r\n  //       }\r\n  //     }\r\n  //   }\r\n  // }\r\n\r\n  // get showHero() { \r\n  //   return locals.heroImage != null \r\n  // }\r\n\r\n  get showWide() { \r\n    return false\r\n  }\r\n \r\n  // get heroImageUrl() {\r\n  //   if (!locals.heroImage) {\r\n  //     return\r\n  //   }\r\n  //   return Aeppic.Content.getSrc(locals.heroImage, 'datei')\r\n  // }\r\n\r\n  get backgroundPosition() {\r\n    return `${locals.heroOffsetY}px`\r\n  }\r\n \r\n  get backgroundPositionTitle() {\r\n    return `${-148+locals.heroOffsetY}px`\r\n  }\r\n\r\n  get gradient() {\r\n    if (!$refs.title) {\r\n      return\r\n    }\r\n\r\n    const win = $refs.title.ownerDocument.defaultView\r\n    return win.RandomGradient(document.p)\r\n  }\r\n\r\n  get date() {\r\n    const dateSource = data.publikationsdatum ? data.publikationsdatum : document.created.at\r\n    const date = DateTime.fromISO(dateSource)\r\n\r\n    const diff = -date.diffNow('days').days.toFixed(0)\r\n\r\n    if (diff === 0) {\r\n      return date.toLocaleString(DateTime.TIME_24_SIMPLE)\r\n    }\r\n\r\n    if (diff > 7) {\r\n      return date.toLocaleString(DateTime.DATE_MED)\r\n    }\r\n\r\n    return date.toLocaleString({weekday: 'long' })\r\n  }\r\n\r\n  get fullDate() {\r\n    const dateSource = data.publikationsdatum ? data.publikationsdatum : document.created.at\r\n\r\n    return DateTime.fromISO(dateSource).toLocaleString(DateTime.DATETIME_FULL)\r\n  }\r\n\r\n  displayComment(comment) {\r\n    const days = Aeppic.DateTime.fromISO(comment.created.at).diff(Aeppic.DateTime.fromISO('2019-03-26T17:34:41.848+01:00'))\r\n    if (days > 0) {\r\n      return comment.v !== 'initial'\r\n    } else {\r\n      return true\r\n    }\r\n  }\r\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-05-08T08:50:57+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2020-05-08T08:50:57+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1588927857264,"ct":1588927857264,"a_depth":4,"a":["apps","b91e3079-75ae-49cd-981b-3053bf47208c","e7a0be94-cd94-4210-875e-0cceb7e8bc6c","86966584-6ee3-4351-8e6e-ff6e695b970a"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"f":{"id":"design-form","v":"e3fe9ece11aabc5e","text":"Design"},"p":"320bbded-2e47-4772-b662-c54254627ac3","data":{"name":"newsgroupordnerübersicht","applies":"","template":"<h3>{{document.data.name}}</h3>\n\n{{document}}"},"id":"719ae7b0-f6b1-4dd0-8301-777b9cf40be6","v":"4137994613892d7c","t":1467644266764,"ct":1467644266748,"previous":{"v":"initial"},"modified":{"at":"2017-09-15T10:29:31+02:00","by":"","from":"","client":"import"},"created":{"at":"2017-09-15T10:29:31+02:00","by":"","from":"","client":"import"},"locks":[],"lockRefs":[],"inheritedLocks":[null,null,null,null,null],"a":["apps","b91e3079-75ae-49cd-981b-3053bf47208c","e7a0be94-cd94-4210-875e-0cceb7e8bc6c","320bbded-2e47-4772-b662-c54254627ac3"],"a_forms":["folder","application-form","folder","form"],"a_depth":4,"stamps":[]},{"id":"415c7605-48f4-4ee3-a220-1d187471322d","v":"2648ad0c30b48302","previous":{"v":"8fb81db824a9ad42"},"p":"381e2c4e-9eed-42a5-b65c-ad72e25369f0","f":{"id":"design-form","v":"e3fe9ece11aabc5e","text":"Design"},"data":{"name":"newsgroupübersicht","applies":"","template":"<div @click=\"Aeppic.navigateTo(document.id)\">\n    <h4 style=\"color:#666; cursor: pointer;\">{{data.name}}</h4>\n    <!-- TODO: sort, limit  -->\n    <h5>Letzte Einträge</h5>\n    <ae-list list-id=\"simple-list\" query-id=\"f812861f-68c8-4818-9972-be7b5474c9b1\" sort=\"created.at! DESC\" :root-document-id=\"document.id\" :params=\"{ noheader:true, design: 'search,short,list' }\" limit=\"3\"></ae-list>\n</div>","packages":[]},"locks":[],"lockRefs":[],"created":{"at":"2017-09-15T10:29:32+02:00","by":"","from":"","client":"import"},"modified":{"at":"2017-10-25T14:27:02+02:00","by":"","from":"","client":"6408c488-c2b6-4011-bbb0-2ddf30efd899"},"t":1467724684623,"ct":1467644260311,"a_depth":4,"a":["apps","b91e3079-75ae-49cd-981b-3053bf47208c","e7a0be94-cd94-4210-875e-0cceb7e8bc6c","381e2c4e-9eed-42a5-b65c-ad72e25369f0"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"6fe428db-9c5f-4f9d-9836-facf5059636d","v":"50e2257271186b77","previous":{"v":"baa2e32f23a8fa7d"},"p":"816b2d0e-5158-4f0c-a5cf-6069bb76de69","f":{"id":"design-form","v":"3385ac6766f32638","text":"Design"},"data":{"name":"next","template":"<div class=\"flex flex-col rounded-lg rounded-lg bg-white p-2 border border-slate-200\">\n  <section class=\"flex justify-between\">\n    <ae-design class=\"text-2xl\" name=\"styled-title\" :document-id=\"data.eintrag.id\"></ae-design>\n    <div>\n      <span class=\"font-bold\"> {{ data.arbeiten.length }}</span> Arbeitsschritte\n    </div>\n  </section> \n\n  <!-- FIXME: only with noCache it works, when you goback from the wartungspunkt -->\n  <section class=\"flex flex-wrap gap-4 items-stretch justify-between overflow-auto\">\n    <img v-if=\"data.zeichnungLupe.dataUrl\"\n        :src=\"Aeppic.Content.getSrc(document, 'zeichnungLupe', { noCache: true })\"\n        class=\"min-w-[300px] w-[300px]\"\n        width=\"300px\">\n    <div v-if=\"data.zeichnung.dataUrl\"\n          :style=\"{ 'background-image':'url(' + Aeppic.Content.getSrc(document, 'zeichnung', { noCache: true }) + ')' }\"\n          class=\"flex-1 bg-contain bg-no-repeat min-w-[200px] min-h-[200px]\"\n    ></div>\n  </section>\n  \n  <section class=\"self-center w-full max-w-[400px] mt-8\">\n    <ae-layout class=\"w-full\"\n                layout-id=\"cb92d818-e25d-43ff-8c41-5b6e6a58a7bd\"\n                @code=\"controller.checkBarcode($event)\"\n                :param-readonly=\"params.readonly\"\n                :param-document=\"document\"\n                param-preference-key=\"keeptrack:settings:maintenancePointReaderMode\"\n    ></ae-layout>\n  </section>\n</div>\n","css":"","controller":"class Controller {\n  async init() {\n    locals.barcode = ''\n  }\n  \n  async checkBarcode(barcode) {\n    const result = await Aeppic.Commands.execute('99b8cee0-a0e4-4410-9247-0662b1e8bb6c', document.p, { barcode: barcode })\n\n    console.log(result)\n    \n    if (result.value)  {\n      Aeppic.navigateTo(result.value)\n    }\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-03-03T15:20:34+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-06-28T13:21:19+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1656422479259,"ct":1646320834673,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","816b2d0e-5158-4f0c-a5cf-6069bb76de69"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"9c6a3dd6-6d43-4d26-bd79-f2d4a9962777","v":"bc97b0171ba9094d","previous":{"v":"initial"},"p":"cf155969-ede1-43a4-9b10-3a697b19db91","f":{"id":"design-form","v":"e37099c040ec46e9","text":"Design"},"data":{"name":"notification-content","template":"<ae-design name=\"line-item\" :document=\"document\"></ae-design>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-03-29T09:50:36+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-03-29T09:50:46+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1617011446289,"ct":1617011436219,"a_depth":4,"a":["apps","14c27659-92d7-4b43-8c4f-25f4cceae591","2e759bfa-c685-48e8-81b4-cec70e93c521","cf155969-ede1-43a4-9b10-3a697b19db91"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"742189c1-cd9c-4bcf-b313-5738ada47f09","v":"eecd14796ff690ed","cloneOf":{"id":"bf6379e6-1bbf-42d0-839d-964bbd42c9dd","v":"d45953c2778744fc","text":"notification-title"},"originalCloneOf":{"id":"bf6379e6-1bbf-42d0-839d-964bbd42c9dd","v":"d45953c2778744fc","text":"notification-title"},"previous":{"v":"919cfe6919fde68e"},"p":"cf155969-ede1-43a4-9b10-3a697b19db91","f":{"id":"design-form","v":"e37099c040ec46e9","text":"Design"},"data":{"name":"notification-target-title","template":"<div class=\"_CSS-line\">\n  <ae-design name=\"icon\" :document-id=\"document.p\"></ae-design>\n  &nbsp;\n  <ae-design name=\"title\" :document-id=\"document.p\"></ae-design>\n</div>\n","css":"._CSS-line {\n  width: 100%;\n  display: flex;\n}","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-03-29T11:35:14+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-03-29T11:36:08+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1617017768594,"ct":1617017714713,"a_depth":4,"a":["apps","14c27659-92d7-4b43-8c4f-25f4cceae591","2e759bfa-c685-48e8-81b4-cec70e93c521","cf155969-ede1-43a4-9b10-3a697b19db91"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"01f59a1b-4ecb-4721-906a-231d495d3d0c","v":"8ae15af776415341","previous":{"v":"770a5c01c8db67f4"},"p":"0deb4864-cbb6-420c-99ee-337c7444ab24","f":{"id":"design-form","v":"e37099c040ec46e9","text":"Design"},"data":{"name":"notification-title","template":"<div class=\"_CSS-line\">\n  <ae-design style=\"color:var(--ae-background-600);\" name=\"title\" :document-id=\"document.p\"></ae-design>\n  <ae-design style=\"xmargin-left: var(--ae-space-3);\" name=\"title\" :document=\"document\"></ae-design>\n</div>\n","css":"._CSS-line {\n  width: 100%;\n}","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-03-23T13:55:59+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-03-23T14:03:24+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1616508204762,"ct":1616507759541,"a_depth":4,"a":["apps","59edbdbc-2cab-426a-bb42-6e57c5158e4f","3be7e887-1bcd-4c3c-979f-b20a986c4c48","0deb4864-cbb6-420c-99ee-337c7444ab24"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"9afd192d-44e2-48c9-8d1d-dcc9b1e80143","v":"2a813a3020655bdb","previous":{"v":"6cb84d034ede82c8"},"p":"14931d03-c3bb-4cf7-9f62-747f94d8b01a","f":{"id":"design-form","v":"e37099c040ec46e9","text":"Design"},"data":{"name":"notification-title","template":"<ae-design style=\"color: var(--ae-background-600)\" name=\"title\" :document-id=\"document.p\"></ae-design>\n<ae-design name=\"title\" :document-id=\"document\"></ae-design>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-03-29T11:44:29+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-03-29T11:45:40+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1617018340866,"ct":1617018269744,"a_depth":4,"a":["apps","f416e371-07cc-4987-a6de-5934ef5ff3e4","1096c5df-2773-4914-9455-dc54e0f3e0e5","14931d03-c3bb-4cf7-9f62-747f94d8b01a"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"bf6379e6-1bbf-42d0-839d-964bbd42c9dd","v":"d45953c2778744fc","previous":{"v":"5905c509ca3e31cf"},"p":"cf155969-ede1-43a4-9b10-3a697b19db91","f":{"id":"design-form","v":"e37099c040ec46e9","text":"Design"},"data":{"name":"notification-title","template":"<div class=\"_CSS-line\">\n  <ae-design name=\"title\" :document-id=\"document.p\"></ae-design>\n</div>\n","css":"._CSS-line {\n  width: 100%;\n  color: var(--ae-background-600);\n}","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-03-23T15:09:47+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-03-29T11:34:06+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1617017646500,"ct":1616512187297,"a_depth":4,"a":["apps","14c27659-92d7-4b43-8c4f-25f4cceae591","2e759bfa-c685-48e8-81b4-cec70e93c521","cf155969-ede1-43a4-9b10-3a697b19db91"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"7acb2651-8388-4d11-b4be-c5a97d3a3ead","v":"82ecefbbcda1d880","previous":{"v":"a91951df5729d263"},"p":"764f746e-a836-4e9d-a770-1d8d5ccad49b","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"number-comments-and-commenter","applies":"","template":"<div class=\"_CSS-commenter__indicator\" v-if=\"locals.commenters.length > 0\" >\n  <div class=\"_CSS-commenter__area\">\n    <div class=\"_CSS-commenter__icon\" :data-count=\"locals.comments.length\">\n      <ae-icon class=\"fa fa-comment\"></ae-icon>\n    </div> \n    <ae-design class=\"_CSS-commenter\" v-for=\"commenter of locals.commenters\" v-if=\"commenter\" :key=\"commenter.id\" :document-id=\"commenter.id\" name=\"profile-avatar\" :param-readonly=\"true\"></ae-design>\n    <span style=\"margin-left:8px;opacity:0.7;font-size:12px;font-weight:bold\" v-if=\"locals.commentersOverflow.length > 0\">+{{locals.commentersOverflow.length}}</span>\n  </div> \n</div> ","css":"._CSS {\n  position: relative;\n}\n\n._CSS-commenter__indicator {\n  display:flex;\n  justify-content:flex-end;\n}\n\n._CSS-commenter__area {\n  position:relative;\n  /* top:-20px; */\n  background:rgba(255,255,255,0.8);\n  border-radius:16px;\n  border: 1px solid rgba(0,0,0,0.2);\n  box-shadow: 0px 0px 5px rgba(0,0,0,0.1);\n  display:flex;\n  align-items:center;\n  white-space:nowrap;\n  margin:0;\n  margin-right:10px;\n  padding:0;\n  overflow:hidden;\n}\n\n._CSS-commenter__area > * {\n  padding: 6px;\n}\n\n._CSS-commenter__icon {\n  opacity: 0.4;\n  background:#BBB;\n  height:100%;\n  width:40px;\n  display:flex;\n  align-items:center;\n  justify-content:center;\n}\n\n._CSS-commenter__icon::after {\n  content: attr(data-count);\n  padding-left: 4px;\n  font-weight: bold;\n}","controller":"class Controller {\n  init() {\n    locals.comments = []\n    locals.commenters = []\n    locals.commentersOverflow = []\n\n    Aeppic.subscribe(`p:${document.id} f.id:cf155969-ede1-43a4-9b10-3a697b19db91`, async (documents)=>{\n      locals.comments = documents\n      locals.comments.sort((a,b) => this.sortComment(a,b))\n\n      const all = await Aeppic.getAll(locals.comments.map(c => c.modified.by))  \n      const allSortedBackwards = all.reverse()\n      const unique = allSortedBackwards.reduce((x, y) => x.findIndex(e=>e != null && y != null && e.id==y.id)<0 ? [...x, y]: x, [])\n\n      locals.commenters = unique\n      // locals.commenters.push(...all, ...all)\n      locals.commentersOverflow = []\n\n      const LIMIT = 5\n      \n      if (locals.commenters.length > LIMIT) {\n        locals.commentersOverflow = locals.commenters.splice(LIMIT, locals.commenters.length - LIMIT)\n      }\n    })\n  }\n\n  sortComment(a,b) {\n    return a.modified.at.localeCompare(b.modified.at)\n  }\n}\n","packages":[]},"locks":[],"created":{"at":"2018-07-03T07:34:09+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2018-07-03T07:56:44+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1530604604532,"ct":1530603249523,"a_depth":4,"a":["apps","a590ce5b-28fc-4f85-9049-d006e1b8f880","169e87e0-0379-48e1-8c94-8fadac5969bb","764f746e-a836-4e9d-a770-1d8d5ccad49b"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"6f206a7b-54b1-43bf-a5bc-e5b84a529486","v":"053da69619f07a11","previous":{"v":"7e672b93d9916534"},"p":"c211ffaa-14f8-4439-9126-f42f65ac4424","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"objekt-title","template":"<ae-design name=\"title\" :document-id=\"data.objekt.id\"></ae-design>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-09-05T13:01:22+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-09-05T13:17:12+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1662383832389,"ct":1662382882105,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","c211ffaa-14f8-4439-9126-f42f65ac4424"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"d6667bc6-c411-4d21-bad4-6763adf39da6","v":"55c3fb872917cb43","p":"form","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"old_page","template":"<div layout-padding layout=\"column\">\n<!--<document-children flex=\"25\" parent=\"{{document.id}}\" title=\"\" subTitle=\"\" style=\"padding-left:16px\"></document-children>-->\n<rs-tabbed-form flex document=\"document\"></rs-tabbed-form>\n</div>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2017-08-23T08:24:50+02:00","by":"","from":"","client":"import"},"modified":{"at":"2017-08-23T08:24:50+02:00","by":"","from":"","client":"import"},"t":1719473826834,"ct":1719473826834,"a_depth":3,"a":["system","system-forms","form"],"a_forms":["system-folder-form","repository-folder-form","form"],"inheritedLocks":[null,null,null,null],"stamps":[],"previous":{"v":"43684534d0f89b6b","f":{"id":"design-form","v":"59e0fc1c35995ea8","text":"Design"}},"meta":{"modified":{"at":"2024-06-27T07:37:06+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"8aba999d-b552-4772-aed2-d1acca447fd7","v":"initial","p":"47c3efd4-c1bd-40ce-81ac-d39401664153","f":{"id":"design-form","v":"0061789efb5c5c29","text":"Design"},"data":{"name":"outline-refs","template":"<div v-if=\"data.externalRefs.length\">\r\n  <ae-icon class=\"fa fa-paperclip\" style=\"color:var(--ae-background-500)\"></ae-icon>\r\n  <span>{{data.externalRefs.length}}</span>\r\n</div>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-07-07T11:16:57+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-07-07T11:16:57+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1625656617002,"ct":1625656617002,"a_depth":4,"a":["apps","cf914a7f-ff5f-4598-80f1-63c9129e0a71","d69a62e9-a61f-42bf-9ae9-7983b87bf587","47c3efd4-c1bd-40ce-81ac-d39401664153"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"0898de3b-373c-4ca8-8fb8-9e9aaeb9e306","v":"initial","p":"6e89617c-ecdd-4a84-b944-e18b610c7d75","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"overview-line","template":"<ae-icon class=\"fa fa-check\" style=\"fill:green; margin-right:8px\"></ae-icon>\r\n<pre v-if=\"data.serial\">{{data.serial}}</pre>","css":"._CSS {\r\n  display: flex;\r\n  align-items: center;\r\n}","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-11-02T09:38:38+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-11-02T09:38:38+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1635845918649,"ct":1635845918648,"a_depth":4,"a":["apps","781ff5de-69db-49dc-99f0-f328b308cd7d","dbd0bd68-3479-4032-9303-9d51615c27a7","6e89617c-ecdd-4a84-b944-e18b610c7d75"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"9843f31c-5736-4a0b-97aa-8657d1b6747e","v":"initial","p":"ce9d42b0-197e-4d60-90a4-daee72c20939","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"overview-line","template":"<div class=\"_CSS-line\">\r\n  <ae-icon v-if=\"data.success\" class=\"fa fa-check\" style=\"fill:green\"></ae-icon>\r\n  <ae-icon v-else class=\"fa fa-times\" style=\"fill:red\"></ae-icon>\r\n  &nbsp;\r\n  {{data.name}}\r\n</div>\r\n<div v-if=\"locals.hardwareDetails\">\r\n  <template >\r\n  <pre>#{{locals.hardwareDetails.numChannels}} {{locals.hardwareDetails.productName}}</pre>\r\n  <pre>Card 1: {{locals.hardwareDetails.card1}}</pre>\r\n  <pre>Card 2: {{locals.hardwareDetails.card2}}</pre>\r\n  <!-- {{locals.hardwareDetails}} -->\r\n  <!-- {{data.result}} -->\r\n  <!-- <pre>{{locals.hardwareDetails.stdout}}</pre> -->\r\n  </template> \r\n</div>","css":"._CSS {\r\n  display:flex;\r\n  align-items: left;\r\n  flex-direction: column;\r\n}\r\n\r\n._CSS-line {\r\n  display:flex;\r\n  align-items: center;\r\n  flex-direction: row; \r\n}","controller":"init() {\r\n  locals.hardwareDetails = this._readHardwareDetails()\r\n} \r\n\r\n_readHardwareDetails() {\r\n  const hardwareReaders = {\r\n    '176f17d4-3d64-4ca9-8a58-950d47f29ca4': this._readCaptureDetails\r\n  }\r\n\r\n  const reader = hardwareReaders[data.definition.id]\r\n  \r\n  if (reader) {\r\n    return reader.call(this)\r\n  }\r\n}\r\n\r\n_readCaptureDetails() {\r\n  const json = readJson(data.result) \r\n  \r\n  const { cards: toolCards, stdout } = JSON.parse(json)\r\n\r\n  const cards = readCards(stdout)\r\n\r\n  if (cards[0] !== toolCards[0]) {\r\n    console.warn('Order not identical between tool and aeppic')\r\n  }\r\n\r\n  return {\r\n    libMWCaptureVersion: readLine('LibMWCapture Version V'),\r\n    numChannels: readLine('NUM CHANNEL '),\r\n    channel0: readLine('Device: Channel #0'),\r\n    channel1: readLine('Device: Channel #1'),\r\n    card1: cards[0],\r\n    card2: cards[1],\r\n    productName: readLine('Product Name: '),\r\n    stdout,\r\n  }\r\n \r\n  function readLine(prefix) {\r\n    for (const line of stdout) {\r\n      if (line.startsWith(prefix)) {\r\n        return line.substr(prefix.length)\r\n      } \r\n    }\r\n  } \r\n \r\n  function readJson(text) {\r\n    if (text[0] === '\"') {\r\n      return text.substr(0, text.length - 2)\r\n    } else {\r\n      return text\r\n    }\r\n  }\r\n\r\n  function readCards(lines) {\r\n   let boardDetected = false\r\n   let boardIndex = null\r\n   const cards = []\r\n  \r\n   const BOARD_INDEX = /Open channel - BoardIndex = (\\d).*/\r\n   const BOARD_SERIAL = /Board SerialNo: (\\w*).*/\r\n\r\n    for (const line of lines) {\r\n      const boardIndexMatch = BOARD_INDEX.exec(line)\r\n\r\n      if (boardIndexMatch) {\r\n        if (boardDetected) {\r\n          console.error('Board Detection Input mixed')\r\n          return []\r\n        }\r\n        boardIndex = parseInt(boardIndexMatch[1], 10) - 1\r\n        boardDetected = true\r\n        continue\r\n      }\r\n      \r\n      if (boardDetected && boardIndex != null) {\r\n        const boardSerialMatch = BOARD_SERIAL.exec(line)\r\n\r\n        if (boardSerialMatch) {\r\n          cards[boardIndex] = boardSerialMatch[1]\r\n\r\n          boardDetected = false\r\n          boardIndex = null\r\n        }\r\n      }\r\n    }\r\n\r\n    return cards\r\n  }\r\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-11-02T09:38:39+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-11-02T09:38:39+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1635845919292,"ct":1635845919292,"a_depth":4,"a":["apps","781ff5de-69db-49dc-99f0-f328b308cd7d","dbd0bd68-3479-4032-9303-9d51615c27a7","ce9d42b0-197e-4d60-90a4-daee72c20939"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"0375c980-8e08-4935-ae5a-de27a348cf37","v":"1a56abf94ae309b2","previous":{"v":"e896e36859822e4e"},"p":"a85202bb-7177-4d76-9e1e-d92aec8ef4b4","f":{"id":"design-form","v":"49954170df6a253b","text":"Design"},"data":{"name":"page","template":"<ae-list \r\n  ref=\"calendar\"\r\n  list-id=\"03b5c1ad-c7f1-4bc9-8fa8-8aa6037e8561\"\r\n  :param-show-version=\"true\"\r\n  param-title=\"Kalender\"\r\n  search=\"f.id:9715b20a-382c-4a81-b854-caf0e6656f74\"\r\n  :param-view=\"locals.view\"\r\n  :param-hide-weekend=\"true\"\r\n  param-map-color-field=\"data.farbe\" \r\n  param-map-title-field=\"data.label\"\r\n  param-map-start-field=\"data.statAufnahme\"\r\n  :param-default-duration=\"{ hours: 1 }\"\r\n  :sort=\"[{ field: 'data.statAufnahme', descending: false }, { field: 'created.at' }] \"\r\n  @new=\"(e) => controller.newDocument(e)\"\r\n  @update=\"(e) => controller.updateDocument(e)\"\r\n  > \r\n</ae-list>\r\n\r\n<button @click=\"controller.showMonth()\" >Monat</button>\r\n<button @click=\"controller.showWeek()\" >Woche</button>\r\n\r\n<ae-dialog ref=\"dialogNew\" title=\"Neu\" @close=\"$emit('close')\" :backdrop-close=\"false\">\r\n  <div slot=\"header\" slot-scope=\"scope\" class=\"_CSS-dialog__header\">\r\n    <span>Neu</span>\r\n    <ae-icon class=\"_CSS-button fal fa-times\" @click.native=\"scope.close()\"></ae-icon>\r\n  </div>\r\n\t<ae-design name=\"editable-document\" slot=\"body\" :document=\"locals.newDocument\" :edit=\"true\" :watch=\"false\" ref=\"editDesign\" class=\"ae-stacking-context\"></ae-design>\r\n\t<div slot=\"commands\" slot-scope=\"scope\" class=\"_CSS-dialog__commands\">\r\n    <button class=\"bp-button bp-button--transparent\" @click=\"controller.cancel()\">Abbrechen</button>\r\n\t\t<button class=\"bp-button bp-button--raised\" @click=\"controller.saveEditedDocument()\">Anlegen</button>\r\n\t</div>\r\n</ae-dialog> \r\n","css":"._CSS {\r\n  padding: 1em;\r\n}","controller":"class Controller {\r\n  init(){\r\n    locals.newDocument = null \r\n    locals.update = 1\r\n    locals.view = 'week'\r\n\r\n    Aeppic.watchMatchingDocuments('f.id: 9715b20a-382c-4a81-b854-caf0e6656f74', () => {\r\n      $refs.calendar.$emit('list-refresh')\r\n    })\r\n\r\n  }\r\n\r\n  showMonth() {\r\n    locals.view = 'month'\r\n  }\r\n\r\n  showWeek() {\r\n    locals.view = 'week'\r\n  }\r\n\r\n  async newDocument(event) {\r\n    const details = event\r\n\r\n    console.log(details)\r\n\r\n    const formId = '9715b20a-382c-4a81-b854-caf0e6656f74'\r\n    const parent = 'e2e55d2d-fb6b-4183-9147-0065ef26bffc'\r\n\r\n    locals.newDocument = await Aeppic.new(formId, parent)\r\n\r\n    if (details && details.start) {\r\n      const startDate = details.start.toDate() \r\n      locals.newDocument.data.statAufnahme = Aeppic.DateTime.fromJSDate(startDate).toISO()\r\n    }\r\n\r\n    $refs.dialogNew.show()\r\n  }\r\n\r\n  cancel() {\r\n    $refs.dialogNew.close()\r\n  }\r\n\r\n  saveEditedDocument() {\r\n    if (locals.newDocument) {\r\n      Aeppic.save(locals.newDocument)\r\n      locals.newDocument = null\r\n    }\r\n    $refs.dialogNew.close()\r\n  }\r\n\r\n  async updateDocument(e) {\r\n\r\n    const document = await Aeppic.edit(e.schedule.id)\r\n    \r\n    const startDate = e.start.toDate() \r\n    document.data.statAufnahme = Aeppic.DateTime.fromJSDate(startDate).toISO()\r\n\r\n    Aeppic.save(document)\r\n  }\r\n}","packages":[],"description":""},"locks":[],"created":{"at":"2019-01-31T15:06:54+00:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","from":"","client":"server"},"modified":{"at":"2019-09-17T15:14:43+00:00","by":"8e6c22aa-8c69-4ff8-919a-7032841cf636","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1568733283419,"ct":1548947214696,"a_depth":4,"a":["apps","d10eebac-6285-4412-8451-55d1bf2fc849","f5966f1d-7108-4be4-801e-8f957c6f4150","a85202bb-7177-4d76-9e1e-d92aec8ef4b4"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"04322d6b-0ccd-4d8c-93d2-508b4da576d9","v":"5d7223afba326896","previous":{"v":"482cbfa740478a14"},"p":"1850b225-79c2-4ae4-9160-c0e719f0c2fd","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"page","applies":"","template":"<!-- <ae-layout layout-id=\"e8f8cc49-0118-43ba-ac25-0c016d6dea1d\"></ae-layout> -->\n\n<div class=\"dbps-body-with-actions _CSS-container\">\n  <div class=\"dbps-body-with-actions__actions-placeholder\"></div>\n  <div class=\"dbps-body-with-actions__actions\">\n    <ae-layout style=\"font-size: 2rem;\" layout-id=\"99d33d30-e81e-4ff5-a79f-407fc564d2f0\" :param-no-edit=\"true\" :param-document=\"document\" param-create-button-layout-id=\"5a1a3596-acd5-4446-a105-5d6ce02d9b71\"></ae-layout>\n  </div>\n\n  <div class=\"_CSS-body\">\n    <ae-list\n      list-id=\"table-list\"\n      query-id=\"f812861f-68c8-4818-9972-be7b5474c9b1\"\n      :root-document-id=\"document.id\"\n      param-columns=\"data.name,data.closed,data.deadline,created.at\"\n      param-headers=\",,,Erstellungsdatum\"\n      param-designs=\"title,,,created-at\"\n      param-filter-fields=\"data.closed,data.deadline\"\n      param-sort-fields=\"data.name,data.closed,data.shootingDates\"\n      :param-hide-quick-view=\"true\"\n      :sort=\"controller.sorting\"\n      ></ae-list>\n    </div>\n</div>\n<div class=\"dbps-bottom-spacer\"></div> \n ","css":"._CSS {\n  display: flex;\n  flex-flow: column;\n}\n\n._CSS-container {\n  flex: 1;\n}\n\n._CSS-body {\n  flex: 1;\n  display: flex;\n  flex-flow: column;\n  margin: 8px;\n  background: rgba(255,255,255,0.6);\n}","controller":"get sorting() {\n  return {\n    field: 'created.at',\n    descending: true\n  }\n}","packages":[]},"locks":[],"created":{"at":"2018-05-25T10:48:16+00:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","from":"","client":"server"},"modified":{"at":"2020-10-13T10:11:33+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1602583893497,"ct":1527245296081,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","1850b225-79c2-4ae4-9160-c0e719f0c2fd"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"04348f9b-105c-42d9-bb95-18b611232548","v":"087670d764927fc7","previous":{"v":"28084b43cf7e2e38"},"p":"c69a0c1c-6c53-40c2-87e8-5ace866bf1df","f":{"id":"design-form","v":"e3fe9ece11aabc5e","text":"Design"},"data":{"name":"page","applies":"","template":"<ae-design :document=\"document\" name=\"hero-header\" :param-sidebar-open=\"params.sidebarOpen\" @show-sidebar=\"$emit('show-sidebar', $event)\" @hide-sidebar=\"$emit('hide-sidebar', $event)\"></ae-design>\n<template v-if=\"locals.ready\">\n  <ae-design v-if=\"!locals.recents\" :document=\"document\" :name=\"data.recentsDesign\" class=\"_CSS-content\"></ae-design>\n  <ae-design v-else :document=\"locals.recents\" :name=\"data.recentsDesign || 'page'\" class=\"_CSS-content\"></ae-design>\n</template>\n","css":"._CSS {\r\n  display: flex;\r\n  flex-direction: column;\r\n}\r\n\r\n._CSS-content {\r\n  flex: 1;\r\n  overflow: scroll;\r\n  padding: var(--bp-page-content-padding);\r\n}","controller":"async init() {\r\n  locals.ready = false\r\n  locals.recents = null\r\n  locals.recents = await Aeppic.findOne(`p:${document.id} f.id:6786b72e-276f-4c82-b7c5-ca5758689118`)\r\n  locals.ready = true\r\n}","packages":[]},"locks":[],"created":{"at":"2017-10-11T16:19:29+02:00","by":"","from":"","client":"e8d7f648-b6e6-40ba-9c16-5991470e1d43"},"modified":{"at":"2021-06-17T13:50:57+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1623937857674,"ct":1507731569972,"a_depth":4,"a":["apps","8f8c9ed7-a7ed-4150-b162-92d6f19a05b0","526d9710-b2bd-4fa7-9341-d780ead102c1","c69a0c1c-6c53-40c2-87e8-5ace866bf1df"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"05062938-443c-450d-99e5-4f14bdbc69c0","v":"31d62d6d47825d28","previous":{"v":"04062b765a1a43c1"},"p":"43420696-8097-4fc1-88e5-c69df9821470","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"page","template":"<ae-list  list-id=\"bace3889-c006-47c5-9c57-7f4bbe9dfe02\"\n          :search=\"controller.search\"\n          @selected=\"Aeppic.drillInto($event)\"\n          :search-options=\"{ searchAllFields: true, size: 5000 }\"\n          :sort=\"['data.name', 'id']\"\n          class=\"_CSS-list\"\n          :params=\"data\"\n          :param-selection-id=\"document.f.id\"\n          :param-board-id=\"document.id\"\n></ae-list> ","css":"._CSS-list {\n  height: 100%;\n}","controller":"class Controller {\n  get search() {\n    const ancestors = data.locations.map(location => `a:${location.id}`).join(' OR ')\n    const forms = data.form.map(form => `f.id:${form.id}`).join(' OR ')\n    const base =  `(${ancestors}) (${forms})`\n\n    if (params.filter) {\n      return `${base} ${params.filter.trim()}`\n    }\n\n    return base\n  }\n}  ","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-09-01T10:47:14+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-09-01T11:57:03+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1662033423646,"ct":1662029234399,"a_depth":4,"a":["apps","089481c4-a42f-4a98-9bc9-12e9f1131f4b","5fa71c32-0186-4007-92a9-f03a32b0ff33","43420696-8097-4fc1-88e5-c69df9821470"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"06400e41-e95b-457f-af26-e863859d3652","v":"0a8cc0a45f09697b","p":"dashboard-form","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"page","template":"<document-list ng-show=\"!document.isEditable\" list-id=\"c4f3b95c-0f80-469c-ba13-b064f9bbecfd\" query-id=\"a679a6bb-b528-44eb-b4fd-f6f32ef45064\" root-document-id=\"{{document.id}}\" flex></document-list>\n\n<div  ng-show=\"document.isEditable\" layout-padding layout=\"column\">\n    <rs-tabbed-form flex document=\"document\"></rs-tabbed-form>\n</div>\n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2017-08-23T08:24:50+02:00","by":"","from":"","client":"import"},"modified":{"at":"2017-08-23T08:24:50+02:00","by":"","from":"","client":"import"},"t":1719473826844,"ct":1719473826844,"a_depth":3,"a":["system","system-forms","dashboard-form"],"a_forms":["system-folder-form","repository-folder-form","form"],"inheritedLocks":[null,null,null,null],"stamps":[],"previous":{"v":"dd118ae9c3c1ef37","f":{"id":"design-form","v":"927bf22562d7b1b6","text":"Design"}},"meta":{"modified":{"at":"2024-06-27T07:37:06+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"07ffaa6d-9963-4bb6-a80e-ac98c57bc6b3","v":"93b9822b5e51b25c","cloneOf":{"id":"7ebfa27a-84c7-4668-b31b-b2d0f05112d2","v":"bb7e41dced51d236","text":"page"},"originalCloneOf":{"id":"7ebfa27a-84c7-4668-b31b-b2d0f05112d2","v":"bb7e41dced51d236","text":"page"},"previous":{"v":"4cbbd01f323e2be6"},"p":"3d678f2a-65f5-4dc1-a643-c5998fa33f32","f":{"id":"design-form","v":"3385ac6766f32638","text":"Design"},"data":{"name":"page","template":"<template v-if=\"locals.ready\">\n  <ae-design v-if=\"locals.isVerwalter\" ref=\"page\" @toolbar.native=\"controller.dispatchEventChildren('page', 'toolbar', $event.detail)\" name=\"page--administator\" :document=\"document\" :params=\"params\" v-on=\"$listeners\"></ae-design>\n  <ae-design v-else name=\"page--worker\" ref=\"page\" @toolbar.native=\"controller.dispatchEventChildren('page', 'toolbar', $event.detail)\" :document=\"document\" :params=\"params\" v-on=\"$listeners\"></ae-design>\n</template> ","css":"","controller":"class Controller {\n  async init() {\n    locals.ready = false\n    \n    locals.isVerwalter = false\n    locals.isVerwalter = (await Aeppic.Commands.execute('950f35d3-95ba-4d5a-a164-0074c767d600', document, { Account: Aeppic.Account })).value\n    \n    locals.ready = true\n  }\n\n   dispatchEventChildren(refName, eventName, eventValue) { \n    if (!$refs[refName] || !$refs[refName].$el || !$refs[refName].$el.children) {\n      return\n    }\n    const children = $refs[refName].$el.children\n    for (let i = 0; i < children.length; i++) {\n      children[i].dispatchEvent(new CustomEvent(eventName, {\n        detail: eventValue\n      }))\n    }\n    $refs[refName].$emit(eventName, eventValue)\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-04-01T08:14:46+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-04-19T13:27:12+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1650374832595,"ct":1648800886501,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","3d678f2a-65f5-4dc1-a643-c5998fa33f32"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"0883f6d2-13d9-49eb-9e67-d1655fb863d6","v":"initial","p":"500095d4-c6b7-4efe-bfa0-b22b35331547","f":{"id":"design-form","v":"65801907e0c30697","text":"Design"},"data":{"name":"page","template":"<section class=\"_CSS-header\">\n  <ae-layout layout-id=\"c07bacfd-ec47-4105-98f1-e6d6e9b00201\"></ae-layout>\n</section>\n<div class=\"_CSS-container\" @toolbar=\"controller.toolbarEvent($event.detail)\">\n  <div v-if=\"locals.account\" class=\"_CSS-page\">\n    <div class=\"_CSS-profile\" v-if=\"locals.profile\">\n      <h2>Profil</h2>\n      <ae-layout  layout-id=\"73fd81e5-c901-4c56-9b38-cd04a7d17f8a\"\n                  :param-document-id=\"locals.profile\"\n                  @save=\"controller.saveProfile()\"\n                  @reset=\"() => { controller.resetProfile() }\"\n                  style=\"padding-top: 1rem;\"\n      ></ae-layout>\n      <ae-form ref=\"profile\" :document=\"locals.profile\" :readonly=\"!locals.canEditProfile\"></ae-form>\n      \n    </div>\n    <div class=\"_CSS-contactinfo\">\n      <h2>Kontaktdaten</h2>\n      <ae-layout  layout-id=\"73fd81e5-c901-4c56-9b38-cd04a7d17f8a\"\n                  :param-document-id=\"locals.account\"\n                  @save=\"controller.saveAccount()\"\n                  @reset=\"() => { controller.resetAccount() }\"\n                  style=\"padding-top: 1rem;\"\n      ></ae-layout>\n      <ae-form ref=\"form\" :document=\"locals.account\" layout-id=\"209c267a-9f3c-4040-9b91-e98ee590b9af\"></ae-form>\n      \n    </div>\n  </div>\n</div>\n\n<!-- <ae-form v-if=\"Aeppic.Device === 'Desktop'\"\n  ref=\"form\"\n  :document=\"document\" \n  :readonly=\"controller.isReadonly\"\n  :auto-save=\"params.autoSave || false\"\n  @toolbar.native=\"controller.toolbarEvent($event.detail)\"></ae-form>\n<ae-form v-else\n  ref=\"form\"\n  layout-id=\"acd83791-970f-4b6e-bebd-d7f3bca52014\"\n  :auto-save=\"true\"\n  :document=\"document\"\n  :readonly=\"controller.isReadonly\"\n  @toolbar.native=\"controller.toolbarEvent($event.detail)\"></ae-form> -->\n","css":"._CSS {\n  display: flex;\n  flex-flow: column;\n}\n\n._CSS-header {\n  min-height: 177px;\n}\n\n._CSS-container {\n}\n\n._CSS-page {\n  max-width: var(--ae-page-max-width);\n  margin: auto;\n  height: 100%;\n  padding: var(--bp-page-content-padding);\n}\n\n._CSS-profile,\n._CSS-contactinfo {\n  background: var(--ae-ui-background);\n  padding: var(--bp-page-content-padding);\n  border-radius: var(--ae-border-radius);\n  margin: var(--ae-size-4) 0;\n}","controller":"class Controller {\n  async init() {\n    locals.account = null\n    locals.profile = null\n    locals.canEditProfile = false\n\n    if (!Aeppic.Account || Aeppic.Account.data.isGroupAccount) {\n      return\n    }\n\n    locals.account = await Aeppic.edit(Aeppic.Account)\n\n    locals.canEditProfile = await Aeppic.canEdit((await Aeppic.getProfilePageForAccount(locals.account)))\n\n    locals.profile = await Aeppic.edit((await Aeppic.getProfilePageForAccount(locals.account)))\n  }\n\n  toolbarEvent(eventType) {\n    // if (eventType === 'save') {\n    //   save()\n    //   return\n    // }\n    // if (eventType === 'reset') {\n    //   resetEdits()\n    //   return\n    // }\n  }\n\n  get isReadonly() {\n    if (typeof params.readonly === 'boolean') {\n      return params.readonly\n    }\n\n    return false\n  }\n\n  async saveAccount() {\n    const { mobilePhone, email } = locals.account.data\n    \n    const result = await Aeppic.Commands.execute('879a37fc-a95d-4c8a-bdbf-35ff3172e30a', locals.account, {\n      mobilePhone,\n      email\n    })\n\n    if (!result.ok) {\n      console.error('Could not change accounts contact data')\n    }\n\n    locals.account = await Aeppic.edit(Aeppic.Account)\n  }\n\n  async resetAccount() {\n    locals.account = await Aeppic.edit(Aeppic.Account)\n  }\n\n  async saveProfile() {\n    Aeppic.save(locals.profile)\n\n    locals.profile = await Aeppic.edit((await Aeppic.getProfilePageForAccount(locals.account)))\n  }\n\n  async resetProfile() {\n    locals.profile = await Aeppic.edit((await Aeppic.getProfilePageForAccount(locals.account)))\n  }\n}\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2019-09-09T09:30:32+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2019-09-09T09:30:32+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1568021432594,"ct":1568021432594,"a_depth":4,"a":["apps","18da93c8-dfa2-4c21-b0fe-7e09b2b6d6c4","bd0159cd-1362-4c50-916d-26aa2bb1ae24","500095d4-c6b7-4efe-bfa0-b22b35331547"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"09f2b6c7-d1f0-4821-8459-91ad7b6728f0","v":"e38bedcec9319e70","previous":{"v":"1d8cef047e78e8ba"},"p":"4f3c48aa-8d12-4dfa-8a66-064d8a851a5b","f":{"id":"design-form","v":"24435d748c76f819","text":"Design"},"data":{"name":"page","template":"<h2>Aktuelle Mitarbeiter</h2>\n<ae-list  list-id=\"table-list\"\n          :documents=\"locals.current\"\n          :params=\"{ columns: 'data.vorname,data.nachname,data.position,data.eintrittsdatum,', designs: ',,,day,table:number-of-files', headers: ',,,,Dateien' }\"\n          :search-options=\"{ searchAllFields: true }\"\n          :param-list-form-id=\"locals.FORMS.Personaldaten\"\n          param-sort-fields=\"data.vorname,data.nachname,data.eintrittsdatum,data.austrittsdatum,data.position\"\n          param-filter-fields=\"data.vorname,data.nachname,data.eintrittsdatum,data.austrittsdatum,data.position,data.kinder,data.behinderungsGrad,data.gehaltAnpassungDatum,data.abwesenheitVon,data.abwesenheitBis,data.abwesenheitGrund,data.corvid19Geimpft\"\n          sort=\"data.nachname\"\n          class=\"_CSS-list\"\n></ae-list>\n\n<h2>Ausgeschiedene Mitarbeiter</h2>\n<ae-list  list-id=\"table-list\"\n          :documents=\"locals.retired\" \n          :params=\"{ columns: 'data.vorname,data.nachname,data.position,data.eintrittsdatum,data.austrittsdatum,', designs: ',,,day,day,table:number-of-files', headers: ',,,,,Dateien' }\"\n          :search-options=\"{ searchAllFields: true }\"\n          :param-list-form-id=\"locals.FORMS.Personaldaten\"\n          param-sort-fields=\"data.vorname,data.nachname,data.eintrittsdatum,data.austrittsdatum,data.position\"\n          param-filter-fields=\"data.vorname,data.nachname,data.eintrittsdatum,data.austrittsdatum,data.position,data.kinder,data.behinderungsGrad,data.gehaltAnpassungDatum,data.abwesenheitVon,data.abwesenheitBis,data.abwesenheitGrund,data.corvid19Geimpft\"\n          sort=\"data.nachname\"\n          class=\"_CSS-list\"\n></ae-list>","css":"._CSS {\r\n  padding: var(--bp-page-content-padding);\r\n}\r\n\r\n\r\n._CSS-list {\r\n  height: 600px;\r\n  max-height: 600px;\r\n}","controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Personaldaten: '3090c06d-faea-41f6-a6ea-846b900faad5'\n    }\n\n    locals.FORMS = this.FORMS\n\n    locals.current = []\n    locals.retired = []\n\n    Aeppic.subscribe(`a:${document.id} f.id:${this.FORMS.Personaldaten}`, { size: 9999 }, (documents) => {\n      const { current, retired } = this.filterDocuments(documents)\n\n      locals.current = current\n      locals.retired = retired\n    })\n  }\n\n  filterDocuments(documents) {\n    const current = []\n    const retired = []\n\n    for (const doc of documents) {\n      if (!doc.data.austrittsdatum) {\n        current.push(doc)\n        continue\n      }\n\n      if (Aeppic.DateTime.fromISO(doc.data.austrittsdatum).diffNow('days') < 0) {\n        retired.push(doc)\n      } else {\n        current.push(doc)\n      }\n    }\n\n    return { current, retired }\n  }\n}\n\n ","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-05-08T08:51:31+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2023-01-05T10:37:34+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1672915054095,"ct":1588927891271,"a_depth":4,"a":["apps","a590ce5b-28fc-4f85-9049-d006e1b8f880","169e87e0-0379-48e1-8c94-8fadac5969bb","4f3c48aa-8d12-4dfa-8a66-064d8a851a5b"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"0e52e382-b755-482d-aade-97fcde73ac20","v":"e2e3d422b587070c","previous":{"v":"ca730d2ffd3188ff"},"p":"14931d03-c3bb-4cf7-9f62-747f94d8b01a","f":{"id":"design-form","v":"0061789efb5c5c29","text":"Design"},"data":{"name":"page","template":"<div class=\"_CSS-container\" v-if=\"locals.unterweisung\">\n  <h1>{{ locals.unterweisung.data.name }}&nbsp;</h1>\n  <small style=\"font-weight:normal;font-size:small\" v-if=\"locals.unterweisung.data.fragen?.length\">Quiz mit {{ locals.unterweisung.data.fragen.length }} Frage(n)</small>\n  \n  <div v-if=\"data.gelesen\" class=\"bp-card bp-card--bordered _CSS-read\">\n    Bestätigt am {{ Aeppic.DateTime.fromISO(data.gelesenAm).toLocaleString(Aeppic.DateTime.DATETIME_SHORT) }}\n    <ae-icon class=\"fa fa-check-circle\" style=\"color:var(--ae-accent-green)\"></ae-icon>\n  </div>\n\n  <div class=\"bp-card bp-card--bordered _CSS-intro\" v-if=\"locals.unterweisung.data.kommentar\">{{ locals.unterweisung.data.kommentar }}</div>\n\n  <ae-design name=\"page--left,page\" :document=\"locals.folder\"></ae-design>\n\n</div>","css":"._CSS {\n  padding: var(--bp-page-content-padding);\n}\n\n._CSS-container {\n  max-width: var(--ae-page-max-width);\n  margin: auto;\n}\n\n._CSS-intro {\n  white-space: pre-line;\n}\n\n._CSS-read {\n  margin-bottom: var(--ae-space-4);\n}","controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Ordner: 'c0574720-6967-4293-94a8-e7b32a40fc6f'\n    }\n\n    locals.unterweisung = null\n    locals.unterweisung = await Aeppic.get(document.p)\n\n    locals.folder = await Aeppic.findOne(`p:${locals.unterweisung.id} f.id:${this.FORMS.Ordner}`)\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-11-19T15:11:20+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-05-28T08:25:20+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1622190320974,"ct":1605798680248,"a_depth":4,"a":["apps","f416e371-07cc-4987-a6de-5934ef5ff3e4","1096c5df-2773-4914-9455-dc54e0f3e0e5","14931d03-c3bb-4cf7-9f62-747f94d8b01a"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"0ee8ab70-4d99-4c86-8ad5-963dc1e76a46","v":"bc79b4e4a318dede","previous":{"v":"initial"},"p":"fb822f2f-880c-4676-be8b-cc557e822bc4","f":{"id":"design-form","v":"49954170df6a253b","text":"Design"},"data":{"name":"page","template":"<ae-list  list-id=\"2dab232c-2c8a-4aa4-b3f9-6023a7116161\"\n          query-id=\"f812861f-68c8-4818-9972-be7b5474c9b1\"\n          :root-document-id=\"document.id\"\n          @selected=\"Aeppic.navigateTo($event)\"\n          param-min-column-width=\"1fr\"\n          param-design=\"search-title\"\n          :param-design-params=\"{ hidePath: true }\"\n          class=\"_CSS-list\"\n          >\n</ae-list>\n\n<ae-layout layout-id=\"582baf96-ad3a-4e6a-a77c-84509a6f4a0a\"></ae-layout>","css":"._CSS {\n  padding: var(--bp-page-content-padding);\n  /* max-width: 40%; */\n}\n\n._CSS-list > * > .ae-design {\n  background: var(--ae-background);\n  padding: 0.5em 1em;\n  cursor: pointer;\n}\n\n._CSS-list > * > .ae-design:hover {\n  background: rgba(0,0,0,0.2)\n}","controller":"","packages":[],"description":""},"locks":[],"created":{"at":"2019-05-03T14:14:36+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2020-10-01T14:09:08+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1601561348975,"ct":1556885676150,"a_depth":4,"a":["apps","94a64d89-d204-4918-b147-d717914fb03e","f254ce25-42f1-4333-8ee7-23554bf746c1","fb822f2f-880c-4676-be8b-cc557e822bc4"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"136a926b-0910-4652-88df-fc6f1cea1ed2","v":"initial","p":"74a858ae-4f61-4533-a6f7-a1d56dc81c0f","f":{"id":"design-form","v":"2d98bf27c3108340","text":"Design"},"data":{"name":"page","applies":"","description":"","template":"<ae-design  name=\"preview\"\n            :document=\"document.data.template\"\n            :param-view-data=\"data\"\n></ae-design>\n\n","css":"._CSS {\n  display: flex;\n}","controller":"","packages":[]},"locks":[],"created":{"at":"2018-10-30T12:57:10+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2018-10-30T12:57:10+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1540904230237,"ct":1540904230236,"a_depth":5,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","1116d922-d8df-4da5-a7c2-70191d07d929","5cdd2d20-7676-43e3-8997-e176dd3434ed","74a858ae-4f61-4533-a6f7-a1d56dc81c0f"],"a_forms":["folder","application-form","folder","form-folder","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"15edb11e-d83d-4f01-9091-292c513c3969","v":"9eac4d17448029dc","p":"fallback-designs","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"page","template":"  <!-- <div class=\"_CSS-page\" :class=\"{ '_CSS-page--full': params.noRight || document.a_depth <= 1 || Aeppic.Device === 'Phone' || locals.printMode, '_CSS-page--right-expaned': locals.expand }\" @toolbar=\"controller.emitToolbar($event.detail)\"> -->\n  <div class=\"_CSS-page\" :class=\"{ '_CSS-page--full': params.noRight || locals.pageDocumentIsStructualDocument || Aeppic.Device === 'Phone' || params.rightOverlay || locals.printMode, '_CSS-page--right-expaned': locals.expand }\" @toolbar=\"controller.emitToolbar($event.detail)\">\n    <div class=\"_CSS-page__left\" ref=\"leftOverflowingContainer\">\n      <ae-design  style=\"min-height: 0;height:100%\"\n                  ref=\"left\"\n                  :name=\"(Aeppic.Account && Aeppic.Account.data.allowDevMode && 'page--left__dev,' || '') + 'page--left'\" \n                  :document=\"document\"\n                  :key=\"locals.rerenderOnResetCounter\"\n                  :params=\"{ ...params, documentChangedBus: null, hasCustomPage: locals.pageDocumentHasCustomPage, hasDetails: locals.pageDocumentHasDetails, readonly: controller.isReadonly, isStructualDocument: locals.pageDocumentIsStructualDocument }\"\n                  @scroll-to=\"controller.scrollTo($event)\"\n      ></ae-design>\n    </div>\n    <!-- <div class=\"_CSS-page__right\" v-if=\"params.hasDetails || params.hasCustomPage\"> -->\n    <template v-if=\"!params.noRight && !locals.pageDocumentIsStructualDocument && !locals.printMode\">\n      <div class=\"_CSS-page__right--mobile\" :class=\"{ '_CSS-page__right--mobile-overlay': !locals.expand }\" v-if=\"Aeppic.Device === 'Phone' || params.rightOverlay\">\n        <button class=\"ae-button ae-button--secondary\" @click=\"locals.expand = !locals.expand\" style=\"align-self:flex-end;\">\n          <ae-icon class=\"fa fa-info-circle\"></ae-icon>\n        </button>\n\n        <ae-design  style=\"min-height: 0;height:100%\"\n                    ref=\"right\"\n                    name=\"page--right\"\n                    :document=\"document\"\n                    @document-changed=\"controller.documentChanged($event)\"\n                    :params=\"{ ...params, documentChangedBus: null, hasCustomPage: locals.pageDocumentHasCustomPage, hasDetails: locals.pageDocumentHasDetails, isStructualDocument: locals.pageDocumentIsStructualDocument }\"\n                    @delete=\"$emit('delete', $event)\"\n                    v-if=\"locals.expand\"\n        ></ae-design>\n        \n      </div>\n      <div v-else class=\"_CSS-page__right\" >\n        <ae-design  style=\"min-height: 0;height:100%\"\n                    ref=\"right\"\n                    name=\"page--right\"\n                    :document=\"document\"\n                    @document-changed=\"controller.documentChanged($event)\"\n                    :params=\"{ ...params, documentChangedBus: null, hasCustomPage: locals.pageDocumentHasCustomPage, hasDetails: locals.pageDocumentHasDetails, isStructualDocument: locals.pageDocumentIsStructualDocument }\"\n                    @delete=\"$emit('delete', $event)\"\n        ></ae-design>\n      </div>\n    </template>\n    </div>\n  <!-- </div> -->  \n","css":"._CSS-container {\n  max-width: var(--ae-page-max-width);\n  margin: auto;\n}\n\n._CSS-form {\n  height: 100%;\n}\n\n\n._CSS-page {\n  height: 100%;\n\n  display: grid;\n  grid-template-columns: auto 25%;\n}\n\n._CSS-page._CSS-page--full {\n  grid-template-columns: auto;\n}\n\n._CSS-page._CSS-page--right-expaned {\n  grid-template-columns: 0% 100%;\n}\n\n._CSS-page__right--mobile-overlay {\n  position: absolute;\n  right: 0;\n  top: 0;\n  bottom: 0;\n}\n\n._CSS-page__left {\n  min-height: 0;\n  overflow: auto;\n}\n\n._CSS-page__right {\n  min-height: 0;\n\n  display: flex;\n\n  border-left: var(--ae-border-color) solid var(--ae-border-width);\n  background-color: var(--ae-ui-background);\n\n  box-shadow: var(--ae-shadow-1);\n}\n\n._CSS-page__right--mobile {\n  display: flex;\n  flex-flow: column;\n}","controller":"class Controller {\n  async init() {\n    locals.printMode = params.queryParams && 'print' in params.queryParams\n    locals.expand = false\n    locals.rerenderOnResetCounter = 1\n    locals.pageDocumentHasDetails = false\n    locals.pageDocumentHasCustomPage = false\n    locals.pageDocumentIsStructualDocument = false\n\n    await this.updatePageDocumentInfo()\n  }\n\n  async updatePageDocumentInfo() {\n    // const isStructuralDocument = document.a_depth <= 1 || document.f.id === 'repository-folder-form' || document.f.id === 'folder'\n    locals.pageDocumentIsStructualDocument = document.f.id === 'repository-folder-form' || document.f.id === 'folder'\n  \n    if (locals.pageDocumentIsStructualDocument) {\n      locals.pageDocumentHasCustomPage = false\n      locals.pageDocumentHasDetails = false\n    } else {\n      const pageDesigns = await Aeppic.find(`p:${document.f.id} f.id:design-form (data.name:page--left OR data.name:page--right OR data.name:page-details__content)`)\n\n      if (!pageDesigns.length) {\n        locals.pageDocumentHasCustomPage = false\n        locals.pageDocumentHasDetails = false\n      } else if (pageDesigns.length >= 2) {\n        locals.pageDocumentHasCustomPage = true\n        locals.pageDocumentHasDetails = true\n      } else {\n        const pageDesign = pageDesigns[0]\n        locals.pageDocumentHasCustomPage = pageDesign.data.name === 'page--left'\n        locals.pageDocumentHasDetails = pageDesign.data.name === 'page--right' || pageDesign.data.name === 'page-details__content'\n      }\n    }\n  }\n\n  get isReadonly() {\n    if (document.readonly === true) {\n      return true\n    }\n\n    if (typeof params.readonly === 'boolean') {\n      return params.readonly\n    }\n\n    return false\n  }\n\n  emitToolbar(value) {\n    this.dispatchEventChildren('left', 'toolbar', value)\n    this.dispatchEventChildren('right', 'toolbar', value)\n  }\n\n   dispatchEventChildren(refName, eventName, eventValue) { \n    if (!$refs[refName] || !$refs[refName].$el || !$refs[refName].$el.children) {\n      return\n    }\n    const children = $refs[refName].$el.children\n    for (let i = 0; i < children.length; i++) {\n      children[i].dispatchEvent(new CustomEvent(eventName, {\n        detail: eventValue\n      }))\n    }\n    $refs[refName].$emit(eventName, eventValue)\n  }\n\n  async documentChanged(didChange) {\n    if (didChange) {\n      params.documentChangedBus.changed()\n    } else {\n      locals.rerenderOnResetCounter += 1\n      params.documentChangedBus.reset()\n    }\n  }\n\n  scrollTo(scrollToOptions) {\n    if (!scrollToOptions) {\n      return\n    }\n\n    if (typeof $refs.leftOverflowingContainer.scrollTo !== 'function') {\n      return\n    }\n\n    // FIXME: don't do this! \n    $refs.leftOverflowingContainer.scrollTo(scrollToOptions)\n  }\n\n}\n ","packages":[{"id":"10843fbf-4f0c-416b-be7d-42d6bbd0ae68","v":"5f748569e59edddc","text":"Window"}],"aliases":[],"description":""},"locks":[],"created":{"at":"2018-12-04T11:24:33+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2021-12-16T11:07:20+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720684627133,"ct":1720684627133,"a_depth":2,"a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"],"inheritedLocks":[null,null,null],"stamps":[],"previous":{"v":"02fbe45f4b564623","f":{"id":"design-form","v":"9bfe8e0cd909c1f0","text":"Design"}},"meta":{"modified":{"at":"2024-07-11T09:57:07+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"170aace0-d840-4b6d-bb49-99b4c3d83466","v":"8de2c976b65863fb","previous":{"v":"00e93e6c44faf97e"},"p":"da18ed53-47e1-4d39-bc02-7e02ef1c22bc","f":{"id":"design-form","v":"24435d748c76f819","text":"Design"},"data":{"name":"page","template":"<ae-form :document=\"document\" @toolbar.native=\"controller.toolbarEvent($event.detail)\"></ae-form>\n\n<ae-list\nlist-id=\"table-list\"\n:documents=\"locals.children\"\nparam-columns=\"data.name,data.type,data.datei,data.gueltigab,data.gueltigbis,data.datum\"\nparam-headers=\",Typ,,Gültig ab,Gültig bis,Datum\"\nparam-designs=\"title,form-title,,table:date,table:date,table:date\"\nparam-list-form-id=\"925e9bf5-2a2c-4f49-ad56-505d137e62ad\"\nsort=\"f.text\"\n></ae-list>  \n","css":"._CSS-list {\n  padding: 0 var(--bp-page-content-padding) 0;\n}\n","controller":"class Controller {\n  init() {\n    locals.children = []\n    setTimeout(() => {\n     startEditing()\n    })\n\n    Aeppic.subscribe(`p:${document.id}`, (children) => locals.children = children)\n  }\n\n  toolbarEvent(eventType) {\n    if (eventType === 'save') {\n      save()\n      return\n    }\n    if (eventType === 'reset') {\n      resetEdits()\n      return\n    }\n  } \n} \n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2017-12-06T10:44:47+01:00","by":"","from":"","client":"8b96d91f-7c23-43ba-add0-e80f651e1d38"},"modified":{"at":"2021-09-27T10:02:47+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1632736967451,"ct":1588927892198,"a_depth":4,"a":["apps","c978f91a-22e9-434c-9ad0-c9781eeae198","08a88408-534b-4ca2-b96e-7ee12b00e6d2","da18ed53-47e1-4d39-bc02-7e02ef1c22bc"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"173f25ae-c7ca-45ac-adb4-0ef760ac19af","v":"2409940f9bccfe83","previous":{"v":"4fe882706cb96688"},"p":"4aad33d2-1b89-404a-836f-89ff24051170","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"page","applies":"","template":"<div class=\"dbps-body\">\n  <ae-layout  layout-id=\"f66a2fef-e019-4cc3-a3ce-9d6e1e16a7ab\"\n              param-list-form-id=\"44e0edf9-6515-4e4b-ad48-98a04d28df11\"\n              @filter=\"locals.filter.manual = $event\"\n              @sort=\"locals.sort.manual = $event\"\n              :param-initial-sort=\"locals.sort.initial\"\n              :param-initial-filters=\"locals.filter.initial\"\n              :param-document=\"document\"\n              :param-disable-sort=\"false\"\n              :param-disable-filter=\"false\"\n              :param-filter-fields=\"locals.filter.fields\"\n              class=\"_CSS-filterbar\"\n  ></ae-layout> \n\n  <ae-list\n    list-id=\"45a6cd45-4d79-422a-bc3e-11e6992e9041\"\n    query-id=\"f812861f-68c8-4818-9972-be7b5474c9b1\"\n    :root-document-id=\"document.id\"\n    @selected=\"Aeppic.navigateTo($event.id)\"\n    :sort=\"locals.sort.manual\"\n    :filter=\"locals.filter.manual\"\n    :search-options=\"{ searchAllFields: true }\"\n  ></ae-list>\n</div>\n","css":"._CSS-filterbar {\n  margin-bottom: 15px;\n  background: var(--ae-ui-background);\n}","controller":"class Controller {\n  init() {\n    locals.filter = {\n      initial: null,\n      fields: 'data.gender,data.birthdate',\n      manual: null\n    }\n\n    locals.sort = {\n      initial: 'data.firstname',\n      manual: null\n    }\n  }\n}","packages":[]},"locks":[],"created":{"at":"2018-05-25T10:47:58+00:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","from":"","client":"server"},"modified":{"at":"2020-10-13T10:11:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1602583892885,"ct":1527245278911,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","4aad33d2-1b89-404a-836f-89ff24051170"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"17b07198-0994-47ed-9704-0c467dab3e39","v":"b70fe43d296ff963","previous":{"v":"ae5bdc07588344f8"},"p":"7da8412c-01e9-4a42-a527-6339e2c25488","f":{"id":"design-form","v":"3385ac6766f32638","text":"Design"},"data":{"name":"page","template":"<div class=\"_CSS-body-container\" @toolbar=\"controller.toolbarEvent($event.detail)\">\n  <div class=\"_CSS-body\">\n    <ae-design name=\"board\" :document=\"document\" style=\"height:100%;\"></ae-design>\n  </div>\n</div>","css":"._CSS-body-container {\n  height: 100%;\n}\n\n._CSS-body {\n  height: 100%;\n}","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-03-08T08:51:40+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-03-08T09:09:41+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1646730581207,"ct":1646729500503,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","7da8412c-01e9-4a42-a527-6339e2c25488"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"17bab3b2-dd8c-44d4-af09-fb35815e8c85","v":"cfd24071b1b69448","previous":{"v":"89028457bfb3a8a7"},"p":"42424bba-dbd1-4a7b-a0a4-81d647d8a000","f":{"id":"design-form","v":"5910dbdd1c0b7469","text":"Design"},"data":{"name":"page","applies":"","description":"","template":"<div class=\"_CSS-outer\" :style=\"[controller.overflow]\">\n  <div style=\"margin: auto;\" :style=\"{ 'max-width': locals.columns.length > 1 ? 'var(--ae-page-max-width)' : '',  }\">\n    <div class=\"_CSS-container\" :style=\"{ 'min-height': data.height + 'px', 'xjustify-content': locals.columns.length >= 2 ? 'space-around' : 'auto' }\">\n        <ae-design  v-for=\"column of locals.columns\"\n                    :style=\"{ 'width': locals.columns.length === 1 ? column.data.width : '', 'min-width': locals.columns.length > 1 ? column.data.width : '' }\"\n                    :document=\"column\"\n                    name=\"content\"\n                    class=\"_CSS-column\"\n                    :param-page-document-id=\"params.pageDocumentId\"\n                    :param-company-id=\"params.companyId\"\n                    :param-user-id=\"params.userId\"\n                    :param-account-id=\"params.accountId\"\n        ></ae-design>\n    </div>\n  </div>\n</div>","css":"._CSS-outer {\n  height: 100%;\n}\n\n._CSS-container {\n  display: flex;\n  flex-wrap: wrap;\n  justify-content: auto;\n  height: 100%;\n  overflow: auto;\n  margin-left: -50px;\n  min-height: inherit;\n}\n \n._CSS-column {\n  overflow: hidden;\n  margin-left: 50px;\n} \n\n._CSS-column~._CSS-column {\n  margin-left: 50px;\n}","controller":"class Controller {\n  async init() {\n    locals.columns = []\n    locals.columns = await Aeppic.getAll(data.columns)\n  }\n\n  get overflow() {\n    const value = data.scrollOverflow\n\n    if (!value || value === 'NONE') {\n      return null\n    }\n\n    const result = {}\n\n    if (value === 'X') {\n      result['overflow-x'] = 'scroll'\n    } else if (value === 'Y') {\n      result['overflow-y'] = 'scroll'\n    } else if (value === 'BOTH') {\n      result.overflow = 'scroll'\n    }\n\n    return result\n  }\n}","packages":[]},"locks":[],"created":{"at":"2018-11-29T15:49:37+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2019-03-20T09:47:30+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1553075250825,"ct":1543506577566,"a_depth":4,"a":["apps","43f84041-0fd7-4ccb-b7b5-7a38f89ada37","5d6fa6d3-7580-4c6f-9487-fff961f9c751","42424bba-dbd1-4a7b-a0a4-81d647d8a000"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","a590ce5b-28fc-4f85-9049-d006e1b8f880","169e87e0-0379-48e1-8c94-8fadac5969bb","b2030eae-0210-474c-bf24-9b5c6f0a0d3b"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2018-07-02T11:27:24+00:00","by":"2695f56c-96e6-4009-8e2f-d545ea1e02aa","client":"server","from":""},"ct":1530530844748,"data":{"applies":"","controller":"class Controller {\n  async init() {\n    locals.initialSorting = { \n      field: 'data.bewerbungseingangsdatum',\n      descending:  true\n    }\n  }\n}","css":"._CSS {\n  padding: var(--bp-page-content-padding);\n}\n\n._CSS ._CSS-table-list--small {\n  min-height: 300px;\n}\n\n._CSS ._CSS-table-list--normal {\n  min-height: 400px;\n}\n\n._CSS ._CSS-table-list--big {\n  min-height: 600px;\n}","name":"page","packages":[],"template":"<h2>Aktuelle Bewerbungen</h2>\r\n\r\n<ae-list  list-id=\"table-list\"\r\n          class=\"_CSS-table-list--big\"\r\n          :root-document-id=\"document.id\"\r\n          query-id=\"71d5633a-9dbd-4c96-b6e0-1c6ffc5ef0f1\"\r\n          filter=\"f.id:764f746e-a836-4e9d-a770-1d8d5ccad49b AND data.bewerbungsverfahrenAbgeschlossen:false AND data.bewerberpool:false\"\r\n          :params=\"{ columns: 'data.vorname,data.name,data.position,data.bewerbungseingangsdatum,', designs: ',title,,,number-comments-and-commenter,', headers: ',,,,Kommentare' }\"\r\n          :sort=\"locals.initialSorting\"\r\n          :search-options=\"{ searchAllFields: true }\"\r\n          :param-row-height=\"50\"\r\n          >\r\n</ae-list>\r\n\r\n<h2>Abgeschlossene Bewerbungen</h2>\r\n\r\n<ae-list  list-id=\"table-list\"\r\n          class=\"_CSS-table-list--small\"\r\n          :root-document-id=\"document.id\"\r\n          query-id=\"71d5633a-9dbd-4c96-b6e0-1c6ffc5ef0f1\"\r\n          filter=\"f.id:764f746e-a836-4e9d-a770-1d8d5ccad49b AND data.bewerbungsverfahrenAbgeschlossen:true\"\r\n          :params=\"{ columns: 'data.vorname,data.name,data.position,data.bewerbungseingangsdatum,data.geplanterEinstellungstermin,', designs: ',title,,,,number-comments-and-commenter,', headers: ',,,,,Kommentare' }\"\r\n          :sort=\"locals.initialSorting\"\r\n          :search-options=\"{ searchAllFields: true }\"\r\n          :param-row-height=\"50\"\r\n          >\r\n</ae-list>\r\n  \r\n<h2>Bewerberpool</h2>\r\n\r\n<ae-list  list-id=\"table-list\"\r\n          class=\"_CSS-table-list--normal\"\r\n          :root-document-id=\"document.id\"\r\n          query-id=\"71d5633a-9dbd-4c96-b6e0-1c6ffc5ef0f1\"\r\n          filter=\"f.id:764f746e-a836-4e9d-a770-1d8d5ccad49b AND data.bewerberpool:true\"\r\n          :params=\"{ columns: 'data.vorname,data.name,data.position,data.bewerbungseingangsdatum,,data.einwilligung', designs: ',title,,,number-comments-and-commenter,', headers: ',,,,Kommentare' }\"\r\n          :sort=\"locals.initialSorting\"\r\n          :search-options=\"{ searchAllFields: true }\"\r\n          :param-row-height=\"50\"\r\n          >\r\n</ae-list>\r\n"},"f":{"id":"design-form","text":"Design","v":"0736f6b8ec393e5e"},"id":"1abf800e-ce11-4410-a7af-afbac6bc9d2f","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-07-03T11:56:09+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"b2030eae-0210-474c-bf24-9b5c6f0a0d3b","previous":{"v":"253f617783fb9a0b"},"stamps":[],"t":1751543769828,"v":"09118126fecaa6e5"},{"id":"1db21668-eb87-4a03-a8b5-77d8a0c171ce","v":"ef7bfd9ecf6916d3","previous":{"v":"02a9c82062a76f8e"},"p":"73974d8e-7d35-4b59-acf0-84c529b194f1","f":{"id":"design-form","v":"baf08f1171a94bca","text":"Design"},"data":{"name":"page","template":"<div class=\"_CSS-body-container\">\n  <div class=\"_CSS-body\" :class=\"{ '_CSS-body--print': params.printMode }\">\n    <div class=\"_CSS-body__column\">\n      <!-- <ae-layout  layout-id=\"2a8a4535-b320-4fa1-b1e3-2b6f583c6540\"\n                  :param-document=\"document\"\n                  @dates=\"controller.updateTableDates($event)\"\n                  class=\"_CSS-dates-filter\"\n                  v-if=\"locals.dateColumnsConfiguration && locals.dateColumnsConfiguration.queryFields.length\"\n      ></ae-layout>   -->\n      <ae-list  :documents=\"locals.documents\"\n                list-id=\"table-list\"\n              :param-columns=\"data.displayTableColumns\"\n              :param-headers=\"data.displayTableHeaders\"\n              :param-designs=\"data.displayTableDesigns\"\n              :param-list-form-id=\"data.form.id\"\n              :sort=\"locals.sort\"\n              :param-initial-sort-by=\"data.sortBy\"\n              :param-initial-sort-asc=\"data.sortAsc\"\n              :param-show-reset-sorting=\"data.showResetSorting\"\n              :param-row-height=\"data.rowHeight\"\n              :watch-list=\"false\"\n              :search-options=\"{ searchAllFields: true, size: 2000 }\"\n              :param-contents-form=\"data.form\"\n              :param-filter-fields=\"data.filterFields\"\n              :param-sort-fields=\"data.sortFields\"\n              :param-list-document=\"document\"\n              :param-additional-filter-layout-id=\"data.additionalFilterLayout.id\"\n              :param-date-fields=\"data.dateFields\"\n              :param-date-columns=\"data.dateColumns\"\n              :param-date-field-colors=\"data.dateFieldColors\"\n              :param-date-field-designs=\"data.dateFieldDesigns\"\n              :param-min-column-widths=\"data.minColumnWidths\"\n              :param-fixed-column-widths=\"data.fixedColumnWidths\"\n              :param-show-sums=\"data.showSums\"\n              style=\"flex: 1;\"\n      ></ae-list>\n    </div>\n  </div>\n</div>\n","css":"._CSS-body-container {\n  padding: var(--bp-page-content-padding);\n  padding-top: 12px;\n\n  /* full page */\n  position: absolute;\n  top: 0;\n  bottom: 0;\n  left: 0;\n  right: 0;\n}\n\n\n._CSS-body {\n  margin: auto;\n  height: 100%;\n}\n\n._CSS-body__column {\n  height: 100%;\n  min-width: 0;\n\n  display: flex;\n  flex-direction: column;\n}\n\n._CSS-dates-filter {\n  position: absolute;\n  left: 400px;\n  top: 25px;\n  z-index: 1;\n}","controller":"class Controller  {\n  async init() {\n    this.sub = null\n    locals.documents = []\n    // TODO: remove params.initialSortBy \n    locals.sort = { field: data.sortBy || params.initialSortBy || 'data.name', descending: typeof params.initialSortAsc === 'boolean' ? !params.initialSortAsc : null }\n    locals.dateColumnsConfiguration = null\n\n    Aeppic.watch(document.id, () => this.update())\n    \n    this.update()\n  }      \n                        \n          \n  async update() { \n    const result = await Aeppic.Actions.run(['7ccb0102-e758-48ea-a39f-6da70d72593c'], { \n      dateColumns: data.dateColumns,\n      dateFields: data.dateFields,\n      dateFieldColors: data.dateFieldColors,\n      form: data.form,\n    })\n\n    locals.dateColumnsConfiguration = result[0].value\n \n    const queryFieldsQuery = locals.dateColumnsConfiguration.queryFields.length ? `(${locals.dateColumnsConfiguration.queryFields.join(' OR ')})` : ''\n\n    const query = `p:${document.id} f.id:${data.form.id} ${queryFieldsQuery}`\n\nconsole.log({query, queryFieldsQuery})\n\n    this.sub = Aeppic.updateSubscription(this.sub, query, { sort: locals.sort, size: 9999 }, (docs) => {\n      locals.documents = this.filter(docs)\n    })\n  }\n\n  filter(docs) {\n    if (!locals.dateColumnsConfiguration.fields.length) {\n      return docs\n    }\n\n    return docs.filter((doc) => {\n      return locals.dateColumnsConfiguration.fields.some(fieldName => {\n        const value = this.resolveField(doc, fieldName)\n        return value && value !== '{}'\n      })\n    })\n  } \n\n  async updateTableDates(dates) {\n    const editable = await Aeppic.edit(document)\n    editable.data.dateColumns = dates\n    Aeppic.save(editable)\n  }\n \n  resolveField(object, path) {\n    const parts = path.split('.')\n    let value = object\n\n    while (parts.length > 0) {\n      const part = parts.shift() \n\n      value = value[part]\n\n      if (value == null) {\n        if (part === 'raw') {\n          return [value]\n        }\n\n        return [undefined]\n      }\n\n      if (parts.length === 0) {\n        if (Array.isArray(value)) {\n          return value\n        } else {\n          return [value]\n        }\n      }\n\n      if (Array.isArray(value)) {\n        return value.map(v => this.resolveField(v, parts.join('.')))\n      }\n    }\n\n    if (value === object) {\n      return [null]\n    } else {\n      return [value]\n    }\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-06-29T12:59:30+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-11-07T12:13:40+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1699359220816,"ct":1624971570252,"a_depth":4,"a":["apps","75c6f72a-08a2-44f4-a29c-86b58be26f96","d0e84149-815a-4c38-a801-1664583fef16","73974d8e-7d35-4b59-acf0-84c529b194f1"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"1e5d9dc4-404e-4c2e-ba47-69ec4f4c0a96","v":"b28481c26374bcde","p":"1fb60157-8ac6-4a44-bc91-e47166b92284","f":{"id":"design-form","v":"0061789efb5c5c29","text":"Design"},"data":{"name":"page","template":"<ae-control name=\"editor-light\" :readonly=\"true\" :document=\"document\" field-name=\"leitsaetze\"></ae-control>","css":"._CSS {\n  padding: var(--bp-page-content-padding);\n  background: white;\n}","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2019-03-14T09:53:51+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2021-01-29T13:46:30+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1611927990353,"ct":1611927990353,"a_depth":4,"a":["apps","e83af4c0-db7e-438f-bf78-60a14245d6d9","5358044d-ffd1-4e97-887d-c18c22120229","1fb60157-8ac6-4a44-bc91-e47166b92284"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[],"previous":{"v":"bf7444e3793c487b","f":{"id":"design-form","v":"24435d748c76f819","text":"Design"}}},{"id":"1fa0f164-302b-4dbb-b9e4-cc6c3dd5a5da","v":"initial","p":"099bed81-95bf-4f04-b4d5-860172d8dab3","f":{"id":"design-form","v":"5910dbdd1c0b7469","text":"Design"},"data":{"name":"page","applies":"","description":"","template":"<div class=\"_CSS-outer\" :style=\"[controller.overflow]\">\n  <div style=\"margin: auto;\" :style=\"{ 'max-width': locals.columns.length > 1 ? 'var(--ae-page-max-width)' : '',  }\">\n    <div class=\"_CSS-container\" :style=\"{ 'min-height': data.height + 'px', 'xjustify-content': locals.columns.length >= 2 ? 'space-around' : 'auto' }\">\n        <ae-design  v-for=\"column of locals.columns\"\n                    :style=\"{ 'width': locals.columns.length === 1 ? column.data.width : '', 'min-width': locals.columns.length > 1 ? column.data.width : '' }\"\n                    :document=\"column\"\n                    name=\"content\"\n                    class=\"_CSS-column\"\n                    :param-page-document-id=\"params.pageDocumentId\"\n                    :param-company-id=\"params.companyId\"\n                    :param-user-id=\"params.userId\"\n                    :param-account-id=\"params.accountId\"\n        ></ae-design>\n    </div>\n  </div>\n</div>","css":"._CSS-outer {\n  height: 100%;\n}\n\n._CSS-container {\n  display: flex;\n  flex-wrap: wrap;\n  justify-content: auto;\n  height: 100%;\n  overflow: auto;\n  margin-left: -50px;\n  min-height: inherit;\n}\n \n._CSS-column {\n  overflow: hidden;\n  margin-left: 50px;\n} \n\n._CSS-column~._CSS-column {\n  margin-left: 50px;\n}","controller":"class Controller {\n  async init() {\n    locals.columns = []\n    locals.columns = await Aeppic.getAll(data.columns)\n  }\n\n  get overflow() {\n    const value = data.scrollOverflow\n\n    if (!value || value === 'NONE') {\n      return null\n    }\n\n    const result = {}\n\n    if (value === 'X') {\n      result['overflow-x'] = 'scroll'\n    } else if (value === 'Y') {\n      result['overflow-y'] = 'scroll'\n    } else if (value === 'BOTH') {\n      result.overflow = 'scroll'\n    }\n\n    return result\n  }\n}","packages":[]},"locks":[],"created":{"at":"2019-09-20T08:59:30+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2019-09-20T08:59:30+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1568969970990,"ct":1568969970972,"a_depth":4,"a":["apps","8fa52498-fa07-4bad-87b3-5c8df671aca4","2540faf9-e3fd-4b52-aad8-53f43274e0a2","099bed81-95bf-4f04-b4d5-860172d8dab3"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"20ad18b3-32e4-4617-8c62-4d000fc8384b","v":"0d24c7f892df35bc","previous":{"v":"1ef8a1623fe9f47a"},"p":"6770bab9-4e15-45ae-bf22-7fe4ef2a0848","f":{"id":"design-form","v":"e3fe9ece11aabc5e","text":"Design"},"data":{"name":"page","applies":"","template":"<div class=\"_CSS-commands-bar\">\n  <div class=\"_CSS-commands\">\n    <button class=\"bp-button bp-button--raised _CSS-command--primary\" @click=\"controller.showNewDocumentDialog()\" :disabled=\"data.activateSprints && !locals.currentSprint\">\n      <ae-icon class=\"fa fa-plus\"></ae-icon>\n    </button>\n    <button v-if=\"data.activateSprints\" class=\"bp-button bp-button--transparent _CSS-command--primary\" @click=\"controller.showNewSprintDialog()\">\n      Neuer Sprint\n    </button>\n  </div>\n\n  <div class=\"_CSS-commands\" @click=\"controller.navigateTo(locals.menuEntries[0])\" role=\"button\">\n    <button class=\"bp-button bp-button-icon\">\n      <ae-icon class=\"fa fa-cog\"></ae-icon>\n    </button>\n  </div>\n</div>\n\n<div class=\"_CSS-board-container\" :class=\"{ '_CSS-board-container--prevent-interaction': data.activateSprints && !locals.currentSprint }\">\n  <div class=\"_CSS-board\" :class=\"{ '_CSS-board--prevent-interaction': data.activateSprints && !locals.currentSprint }\">\n  <div class=\"_CSS-no-active-sprint-info\" v-if=\"data.activateSprints && !locals.currentSprint\">\n    Kein aktiver Sprint vorhanden.\n    Bitte einen neuen Sprint anlegen.\n  </div>\n    <div v-for=\"(columnName, index) in controller.columnNames\" class=\"_CSS-board__column\">\n      <div class=\"_CSS-board__header\">\n        {{columnName}}\n      </div>\n\n      <div  class=\"_CSS-board__body\">\n          <ae-list  :documents=\"locals.workItemsByColumnIndex[index]\"\n                    list-id=\"4981cc6b-f0b9-4742-b37a-570855a74079\"\n                    @drop-before=\"controller.dropBefore(id(index), $event)\"\n                    @drop-at-end=\"controller.dropAtEnd(id(index), $event)\"\n                    @drop-column=\"controller.dropColumn(id(index), $event)\"\n                    :param-column-id=\"controller.getColumnId(index, id(index))\"\n                    ></ae-list>\n      </div>\n    </div>\n  </div>\n</div>\n\n<ae-dialog ref=\"dialogNewDocument\" :title=\"locals.newDocument && locals.newDocument.f.text || ''\">\n\t<ae-design slot=\"body\" name=\"new-document\" :document=\"locals.newDocument\" :edit=\"true\" :watch=\"false\"></ae-design>\n\t<div slot=\"commands\" slot-scope=\"dialogScope\">\n\t\t<button class=\"mdc-button mdc-button--raised\" @click=\"controller.saveNewDocument()\">Speichern</button>\n\t</div>\n</ae-dialog>\n\n<ae-dialog ref=\"newSprintDialog\" title=\"Neuen Sprint anlegen\">\n  <div slot=\"body\">\n    <!-- TODO: remove v-if when ae-form can handle document=null again -->\n    <ae-form v-if=\"locals.newSprint\" :document=\"locals.newSprint\" :watch=\"false\"></ae-form>\n  </div>\n\t<div slot=\"commands\" slot-scope=\"scope\">\n    <div class=\"bp-button bp-button--raised\" @click=\"scope.close(); controller.createNewSprint()\">\n      Neuen Sprint anlegen\n    </div>\n\t</div>\n</ae-dialog>\n","css":"._CSS {\n  display: flex;\n  flex-flow: column;\n}\n\n._CSS-board-container {\n  flex: 1;\n  display: flex;\n  /* overflow-x: auto; */\n}\n\n._CSS-board-container--prevent-interaction {\n  z-index: 1;\n  cursor: not-allowed;\n}\n\n._CSS-board--prevent-interaction:after {\n  content: '';\n  position: absolute;\n  top: 0;\n  left: 0;\n  bottom: 0;\n  right: 0;\n\n  background: rgba(0,0,0,0.2);\n}\n\n._CSS-no-active-sprint-info {\n  position: absolute;\n  top: 0;\n  left: 0;\n  bottom: 0;\n  right: 0;\n\n  font-size: 1.5em;\n  color: white;\n  font-weight: bold;\n\n  z-index: 2;\n  white-space: pre-wrap;\n\n  display: flex;\n  justify-content: center;\n  align-items: center;\n}\n\n._CSS-board--prevent-interaction {\n  pointer-events: none;\n}\n\n._CSS-board {\n  flex: 1;\n  display: flex;\n  position: relative;\n}\n\n._CSS-board__column {\n  display: flex;\n  flex-flow: column;\n  flex: 1;\n\n  overflow: hidden;\n}\n\n._CSS-board__header {\n  min-height: 5rem;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n\n  font-weight: bold;\n  font-size: 1.3rem;\n  border-bottom: 1px solid var(--ae-primary);\n  margin: 0 1rem 0 1rem;\n}\n\n._CSS-board__body {\n  padding: 1rem;\n  overflow-y: auto;\n  display: flex;\n  flex: 1;\n}\n\n._CSS-commands-bar {\n  /* flex: 1; */\n  margin: 0;\n  padding: 4px 0 8px 0;\n  padding-left: var(--bp-page-content-padding, 8px); \n  padding-right: var(--bp-page-content-padding, 8px); \n  display: flex;\n  justify-content: space-between;\n  xborder: 1px solid lightgray;\n  xbackground: #f0f0f0;\n  border-top: 1px solid transparent;\n  \n  position: relative;\n}\n\n._CSS-commands-bar::after {\n  content:'';\n  position:absolute;\n  height:4px;\n  left:0;\n  bottom:-0px;\n  right:0;\n  border-top: 1px solid rgba(0,0,0,0.2);\n  background: linear-gradient(to bottom, rgba(0,0,0,0.1) 0%,rgba(0,0,0,0) 100%);\n  display:block;\n}\n\n._CSS-commands-bar::after {\n  content:'';\n  position:absolute;\n  height:4px;\n  left:0;\n  bottom:-0px;\n  right:0;\n  border-top: 1px solid rgba(0,0,0,0.2);\n  background: linear-gradient(to bottom, rgba(0,0,0,0.1) 0%,rgba(0,0,0,0) 100%);\n  display:block;\n}\n\n._CSS-button--danger:hover > * {\n  color: var(--ae-theme-warning);\n}\n\n._CSS-commands {\n  display: flex;\n}\n\n._CSS-commands > .bp-button._CSS-command--primary {\n  padding: 8px 16px; \n}\n\n._CSS-commands .bp-button {\n  padding: 8px;\n}\n\n\n/* menu */\n\n._CSS-menu {\n  background: white;\n  border: 1px solid gray;\n  font-size: 0.8em;\n  margin:0;padding:0;\n  display:flex;\n  flex-direction: column;\n  align-items: stretch;\n}\n\n\n._CSS-menu_button {\n  padding: 8px;\n  border:none;\n  background:transparent;\n  text-align: center;\n}\n\n._CSS-menu_button:hover {\n  background: rgba(0,0,0,0.2);\n}","controller":"class Controller {\n  async init() {\n    this._ENTRY_TYPE_ADDED = 0\n    this._ENTRY_TYPE_FINISHED = 1\n    this._ENTRY_TYPE_REMOVED = 2\n    this._ENTRY_TYPE_NOTHING = 3\n\n    locals.columnIndexByColumnId = {}\n    locals.workItemsByColumnIndex = []\n    locals.newDocument = null\n\n    locals.newSprint = null\n    locals.currentSprint = null\n     \n    this._columnFilters = this.columnQuerys.map((columnQuery) => {\n      let queryString = columnQuery.replace('data.', '')\n      const columnFilter = {}\n      for (const filterQuery of queryString.split(' ')) {\n        const splittedFilter = filterQuery.split(':')\n        columnFilter[splittedFilter[0]] = splittedFilter[1]\n      }\n      return columnFilter\n    })\n\n    await this._refresh()\n    this._watchChangesOfReferencedDocuments()\n\n    locals.menuEntries = await Aeppic.find(`p:${document.id} f.id:3cf04f76-f463-4b98-9c73-78df68374ede`)\n\n    if (data.activateSprints) {\n      this.loadCurrentlyActiveSprint()\n    }\n  }\n\n  getColumnId(columnIndex, newColumnId) {\n    locals.columnIndexByColumnId[newColumnId] = columnIndex\n    return newColumnId\n  }\n\n  async _refreshAndRecalculateSortIndex(columnId, originColumnId) {\n    await this._refresh()\n    if (columnId !== originColumnId) {\n      await this._recalculateSortIndex(originColumnId)\n    }\n    await this._recalculateSortIndex(columnId)\n    await this._refresh()\n  }\n\n  async _recalculateSortIndex(columnId) {\n    const columnDocuments = this._columnDocuments(columnId)\n    for (let i = 0; i < columnDocuments.length; i++) {\n      const editableColumnDocument = await Aeppic.edit(columnDocuments[i].id)\n      editableColumnDocument.data.sortIndex = i\n      Aeppic.save(editableColumnDocument)\n    }\n  }\n\n  async _refresh() {\n    await this._getWorkItems()\n  }\n\n  async _getWorkItems() {\n    const workItemsQueryString = `p: ${document.id} AND f.id:a1a03095-df18-418e-8353-e8ac14b83ebe`\n    return new Promise((resolve) => {\n      Aeppic.subscribe(workItemsQueryString, async (workItems) => {\n        locals.workItems = workItems\n        locals.referencedDocuments = await Aeppic.getAll(workItems.map(workItem => workItem.data.referencedDocument))\n\n        locals.workItemsByColumnIndex = this._columnFilters.map((columnFilter) => {\n          return this._columnWorkItems(columnFilter)\n        })\n\n        resolve()\n      })\n    })\n  }\n\n  async _watchChangesOfReferencedDocuments() {\n    const referencedDocumentsQueryString = 'id:' + locals.workItems.map(workItem => workItem.data.referencedDocument.id).join(' OR id:')\n    Aeppic.subscribe(referencedDocumentsQueryString, () => {\n      this._getWorkItems()\n    })\n  }\n\n  _columnWorkItems(columnFilter) {\n    if (!locals.referencedDocuments) {\n      return null\n    }\n    const filteredWorkItems = []\n\n    for (let i = 0; i < locals.workItems.length; i++) {\n      const workItem = locals.workItems[i]\n      const referencedDocument = locals.referencedDocuments[i]\n\n      // FIXME: there will be workItems which point to deleted board tasks. Those workItems should be deleted by a business rule. Once business rules are implemente one may remove this guard\n\n      if (referencedDocument == null) {\n        continue\n      }\n\n      if (!this._referencedDocumentMatchesColumnFilter(referencedDocument, columnFilter)) {\n        continue\n      }\n      filteredWorkItems.push(workItem)\n    }\n    return filteredWorkItems\n  }\n\n  get columnQuerys() {\n    return data.columnFilters.split(',')\n  }\n\n  get columnNames() {\n    return data.columnNames.split(',')\n  }\n\n  columnFilter(columnIndex) {\n    if (!this._columnFilters) {\n      return []\n    }\n    return this._columnFilters[columnIndex]\n  }\n\n  _referencedDocumentMatchesSomeColumnId(referencedDocument) {\n    const columnIds = Object.keys(locals.columnIndexByColumnId)\n    for(let i = 0; i < columnIds.length; i++) {\n      const columnId = columnIds[i]\n      const columnFilter = this.columnFilter(locals.columnIndexByColumnId[columnId])\n\n      if (this._referencedDocumentMatchesColumnFilter(referencedDocument, columnFilter)) {\n        return columnId\n      }\n    }\n    return null\n  }\n\n  _referencedDocumentMatchesColumnFilter(referencedDocument, columnFilter) {\n    return Object.keys(columnFilter).some((filterKey) => {\n      if (columnFilter[filterKey] === 'null') {\n        return referencedDocument.data[filterKey] === null\n      }\n      return referencedDocument.data[filterKey] == columnFilter[filterKey]\n    })\n  }\n\n  _columnDocuments(columnId) {\n    return locals.workItemsByColumnIndex[locals.columnIndexByColumnId[columnId]]\n  }\n\n  async dropColumn(columnId, [droppedWorkItemId, originColumnId]) {\n    console.log('dropColumn')\n\n    // FIXME: dropping at a column seems insert at the beginng (at least optical)\n\n    // if (columnId !== originColumnId) {\n    //   const workItemDocument = await Aeppic.get(droppedWorkItemId)\n    //   const couldAdaptReferencedDocument = await this._adaptReferencedDocumentToColumnId(workItemDocument, columnId)\n    //   console.log('couldAdaptReferencedDocument', couldAdaptReferencedDocument)\n    // }\n\n    await this.dropAtEnd(columnId, [droppedWorkItemId, originColumnId])\n  }\n\n  async dropBefore(columnId, [droppedWorkItemId, targetWorkItemId, originColumnId]) {\n    console.log('dropBefore', columnId, originColumnId)\n    if (droppedWorkItemId === targetWorkItemId) {\n      // dropped on own drop-area\n      return\n    }\n\n    const targetWorkItemDocument = await Aeppic.get(targetWorkItemId)\n    const droppedWorkItemDocument = await Aeppic.edit(droppedWorkItemId)\n\n    if (columnId === originColumnId && \n        targetWorkItemDocument.data.sortIndex - droppedWorkItemDocument.data.sortIndex === 1) {\n          // dropped right behind itself\n      return\n    }\n\n    const columnDocuments = this._columnDocuments(columnId)\n\n    const targetIndex = targetWorkItemDocument.data.sortIndex\n    const droppedWorkItemIndex = droppedWorkItemDocument.data.sortIndex\n    droppedWorkItemDocument.data.sortIndex = targetIndex\n    Aeppic.save(droppedWorkItemDocument)\n    if (columnId !== originColumnId) {\n      await this._adaptReferencedDocumentToColumnId(droppedWorkItemDocument, columnId)\n    }\n\n    // add changed document\n    columnDocuments.splice(targetIndex, 0, droppedWorkItemDocument)\n\n    // if added to same column, remove the document from it's previous position\n    if (columnId === originColumnId) {\n      if (targetIndex > droppedWorkItemIndex) {\n        // changed document inserted before itself\n        columnDocuments.splice(droppedWorkItemIndex, 1)\n      } else {\n        // changed document inserted after itself\n        columnDocuments.splice(droppedWorkItemIndex + 1, 1)\n      }\n    }\n\n    await this._recalculateSortIndex(columnId)\n    await this._refresh()\n  }\n\n  async dropAtEnd(columnId, [droppedWorkItemId, originColumnId]) {\n    console.log('dropAtEnd', columnId, droppedWorkItemId, originColumnId)\n    const columnDocuments = this._columnDocuments(columnId)\n    const newIndexAtTheEnd = columnDocuments.length === 1 ? 0 : columnDocuments.length\n\n    const droppedWorkItemDocument = await Aeppic.edit(droppedWorkItemId)\n    droppedWorkItemDocument.data.sortIndex = newIndexAtTheEnd\n    Aeppic.save(droppedWorkItemDocument)\n\n    if (columnId !== originColumnId) {\n      await this._adaptReferencedDocumentToColumnId(droppedWorkItemDocument, columnId)\n    }\n\n    await this._refreshAndRecalculateSortIndex(columnId, originColumnId)\n  }\n\n  async _adaptReferencedDocumentToColumnId(workItemDocument, columnId) {\n    const columnFilter = this.columnFilter(locals.columnIndexByColumnId[columnId])\n    const referencedDocument = await Aeppic.edit(workItemDocument.data.referencedDocument.id)\n    const originalReferencedDocument = await Aeppic.get(workItemDocument.data.referencedDocument.id)\n\n    const documentForm = await Aeppic.getDocumentForm(referencedDocument)\n    for(const filterKey in columnFilter) {\n      if (!referencedDocument.data.hasOwnProperty(filterKey)) {\n        return false\n      }\n      const javascriptTypeOfField = documentForm.info.fields[filterKey].type\n      let castedValue = null\n\n      if (javascriptTypeOfField === 'number') {\n        castedValue = columnFilter[filterKey] === 'null' ?\n          null : Number(columnFilter[filterKey])\n      } else if (javascriptTypeOfField === 'boolean') {\n        castedValue = Boolean(columnFilter[filterKey])\n      } else {\n        castedValue = columnFilter[filterKey]\n      }\n      referencedDocument.data[filterKey] = castedValue\n    }\n    Aeppic.save(referencedDocument)\n\n    if (data.activateSprints) {\n      await this.createBurndownEntry(referencedDocument, originalReferencedDocument, workItemDocument)\n    }\n\n    return true\n  }\n\n  async showNewDocumentDialog() {\n    locals.newDocument = await Aeppic.new(data.forms[0].id, document.id)\n    Aeppic.commit(locals.newDocument)\n    $refs.dialogNewDocument.show()\n  }\n\n  async saveNewDocument() {\n    $refs.dialogNewDocument.close()\n    Aeppic.save(locals.newDocument)\n\n    const newWorkItem = await Aeppic.new('a1a03095-df18-418e-8353-e8ac14b83ebe', document.id)\n    newWorkItem.addReference('referencedDocument', locals.newDocument)\n    Aeppic.save(newWorkItem)\n    \n    const matchedColumnId = this._referencedDocumentMatchesSomeColumnId(locals.newDocument)\n\n    locals.newDocument = null\n\n    if (matchedColumnId) {\n      await this.dropAtEnd(matchedColumnId, [newWorkItem.id, matchedColumnId])\n    }\n  }\n\n  async createBurndownEntry(movedReferencedDocument, originalReferencedDocument, workItemDocument) {\n    console.log('createBurndownEntry')\n\n    if (!data.columnBasetypes) {\n      return\n    }\n    const columnBaseTypes = this._parsedColumBaseTypes\n    if (columnBaseTypes.length !== this.columnNames.length) {\n      return\n    }\n\n    const matchedColumnId = this._referencedDocumentMatchesSomeColumnId(movedReferencedDocument)\n    const originalMatchedColumnId = this._referencedDocumentMatchesSomeColumnId(originalReferencedDocument)\n    const newColumnBaseType = columnBaseTypes[locals.columnIndexByColumnId[matchedColumnId]]\n    const originalColumnBaseType = columnBaseTypes[locals.columnIndexByColumnId[originalMatchedColumnId]]\n\n    if (newColumnBaseType === originalColumnBaseType || \n       ((originalColumnBaseType === this._ENTRY_TYPE_FINISHED && newColumnBaseType === this._ENTRY_TYPE_REMOVED)) ) {\n      console.log('do nothing')\n      return\n    }\n\n    if (originalColumnBaseType === this._ENTRY_TYPE_REMOVED && newColumnBaseType === this._ENTRY_TYPE_FINISHED) {\n      console.log('add and finish')\n      await this.addWorkItemToSprint(this._ENTRY_TYPE_ADDED, workItemDocument)\n      await this.addWorkItemToSprint(this._ENTRY_TYPE_FINISHED, workItemDocument)\n      return\n    }\n\n    console.log(`use newColumnBaseType \"${newColumnBaseType}\" to do sth`)\n\n    await this.addWorkItemToSprint(newColumnBaseType, workItemDocument)\n  }\n\n  get _parsedColumBaseTypes() {\n    const map = {\n      ADD: this._ENTRY_TYPE_ADDED,\n      REMOVE: this._ENTRY_TYPE_REMOVED,\n      FINISH: this._ENTRY_TYPE_FINISHED\n    }\n\n    return data.columnBasetypes.split(',').map(columnBasetype => map[columnBasetype])\n  }\n\n  async navigateTo(menuItem) {\n    const item = await Aeppic.get(menuItem)\n    \n    if (item.data.target && item.data.target.id) {\n      Aeppic.navigateTo(item.data.target.id)\n    }\n  }\n\n  async showNewSprintDialog() {\n    locals.newSprint = await Aeppic.new('fee1d6a3-fd7b-416c-a42a-e11c9585bcf5', document.id)\n    Aeppic.commit(locals.newSprint)\n    $refs.newSprintDialog.show()\n  }\n\n  async loadCurrentlyActiveSprint() {\n    const lastSprint = await Aeppic.find(`f.id:fee1d6a3-fd7b-416c-a42a-e11c9585bcf5 p:${document.id} data.start: [* TO now] data.end: [now TO *]`)\n    if (!lastSprint || !lastSprint.length) {\n      locals.currentSprint = null\n      return\n    }\n\n    locals.currentSprint = await Aeppic.edit(lastSprint[0])\n  }\n\n  async addWorkItemToSprint(entryType, workItem) {\n    const sprintEntry = await Aeppic.new('3c8d23b1-8721-46f8-9baa-15ee91d2a750', locals.currentSprint.id)\n\n    sprintEntry.addReference('workItem', workItem)\n\n    sprintEntry.data.date = Aeppic.DateTime.fromJSDate(Aeppic.Parser.dateRange('now/d', {\n      now: new Date(),\n      wildCardDate: new Date('9999-01-01')\n    })).toJSON()\n\n    sprintEntry.data.finished = false\n    sprintEntry.data.removed = false\n\n    if (entryType === this._ENTRY_TYPE_ADDED) {\n      // TODO: remove this check?\n    } else if (entryType === this._ENTRY_TYPE_FINISHED) {\n      sprintEntry.data.finished = true\n    } else if (entryType === this._ENTRY_TYPE_REMOVED) {\n      sprintEntry.data.removed = true\n    }\n\n    Aeppic.save(sprintEntry)\n\n    locals.currentSprint.addReference('workItems', sprintEntry)\n\n    Aeppic.save(locals.currentSprint)\n  }\n\n  async createNewSprint() {\n    \n    Aeppic.save(locals.newSprint)\n    locals.newSprint = null\n    this.loadCurrentlyActiveSprint()\n\n    let addedWorkItems = [] \n    for (let i = 0; i < this._parsedColumBaseTypes.length; i++) {      \n      const columnBaseType = this._parsedColumBaseTypes[i]\n      if (columnBaseType === this._ENTRY_TYPE_ADDED) {\n        addedWorkItems = addedWorkItems.concat(locals.workItemsByColumnIndex[i] )\n      }\n    }\n    console.log(addedWorkItems)\n\n    const sprintBacklogColumnId = Object.keys(locals.columnIndexByColumnId)[1]\n    console.log(sprintBacklogColumnId)\n\n    const moveUnfishedWorkItemsToBacklogPromises = []\n    for(let i = 0; i < addedWorkItems.length; i++) {\n      moveUnfishedWorkItemsToBacklogPromises.push(this._adaptReferencedDocumentToColumnId(addedWorkItems[i], sprintBacklogColumnId))\n    }\n    await Promise.all(moveUnfishedWorkItemsToBacklogPromises)\n\n    console.log('moved all unfished tasks')\n  }\n}\n\n","packages":[]},"locks":[],"created":{"at":"2017-12-14T15:43:24+01:00","by":"","from":"","client":"64e35a85-527c-4d1c-947c-c1ad0dcec14d"},"modified":{"at":"2018-12-21T11:04:10+00:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1545390250849,"ct":1513262602732,"a_depth":4,"a":["apps","aed1ba1c-9095-4aca-8176-74a37325f0e5","58cc45fb-3fb3-45e8-b61d-4b89899e357a","6770bab9-4e15-45ae-bf22-7fe4ef2a0848"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"21186e23-53e1-453f-8fcf-e20d54cf1aa6","v":"initial","p":"bddf496c-822a-4eff-b294-5e6085fedaa7","f":{"id":"design-form","v":"24435d748c76f819","text":"Design"},"data":{"name":"page","template":"Meeting Room unter: <a target=\"_blank\" :href=\"locals.meetingRoomUrl\">{{locals.meetingRoomUrl}}</a>","css":"","controller":"class Controller {\r\n  async init() {\r\n    locals.meetingRoomUrl = ''\r\n\r\n    let { data:{ server: serverBaseUrl, prefix } } = await Aeppic.get(document.p)\r\n    this.serverBaseUrl = serverBaseUrl\r\n    this.prefix = prefix\r\n\r\n    this._updateMeetingRoomUrl(document)\r\n\r\n    Aeppic.watch(document, (d) => this._updateMeetingRoomUrl(d))\r\n  }\r\n\r\n  _updateMeetingRoomUrl(d) {\r\n    const trimmedUrl = (this.serverBaseUrl || 'https://meet.bizpin.de').trim()\r\n    const baseUrl = trimmedUrl.replace(/\\/+$/,'')\r\n    locals.meetingRoomUrl = `${baseUrl}/${this.prefix}` + this._encodeRoomName(d.data.name)\r\n  }\r\n\r\n  _encodeRoomName(name) {\r\n    const newNameChars = []\r\n\r\n    let capitalize = true\r\n    for (let c of name) {\r\n      if (!c.match(/[a-z0-9]/i)) {\r\n        capitalize = true\r\n        continue\r\n      }\r\n      \r\n      if (capitalize) {\r\n        c = c.toUpperCase()\r\n        capitalize = false\r\n      }\r\n      newNameChars.push(c)\r\n    }\r\n\r\n    return newNameChars.join('')\r\n  }\r\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-05-08T08:52:41+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2020-05-08T08:52:41+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1588927961822,"ct":1588927961822,"a_depth":4,"a":["apps","69555db0-1399-48c4-b87f-d8fa2f7b656f","ca4c359f-4705-4ab0-b018-b39e0d324486","bddf496c-822a-4eff-b294-5e6085fedaa7"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"2177fa93-f776-4720-853f-f007eadf062a","v":"initial","p":"b5c3fe35-3566-4975-b10c-fc93cfb43297","f":{"id":"design-form","v":"2d98bf27c3108340","text":"Design"},"data":{"name":"page","applies":"","description":"","template":"<ae-design  name=\"preview\"\n            :document=\"document.data.template\"\n            :param-view-data=\"data\"\n></ae-design>\n\n","css":"._CSS {\n  display: flex;\n}","controller":"","packages":[]},"locks":[],"created":{"at":"2018-10-30T12:56:40+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2018-10-30T12:56:40+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1540904200075,"ct":1540904200075,"a_depth":5,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","1116d922-d8df-4da5-a7c2-70191d07d929","5cdd2d20-7676-43e3-8997-e176dd3434ed","b5c3fe35-3566-4975-b10c-fc93cfb43297"],"a_forms":["folder","application-form","folder","form-folder","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"234a9bbb-bccd-438b-aeb9-0a5896a9408f","v":"d335cd178924597e","previous":{"v":"96de61708af1c40f"},"p":"3dc78392-be3d-4804-996e-df4bcd1c5ce4","f":{"id":"design-form","v":"49954170df6a253b","text":"Design"},"data":{"name":"page","template":"<ae-list  list-id=\"2dab232c-2c8a-4aa4-b3f9-6023a7116161\"\n          query-id=\"f812861f-68c8-4818-9972-be7b5474c9b1\"\n          :root-document-id=\"document.id\"\n          @selected=\"Aeppic.navigateTo($event)\"\n          param-min-column-width=\"1fr\"\n          param-design=\"search-card\"\n          :param-design-params=\"{ hidePath: true }\"\n          class=\"_CSS-list\"\n          param-gap=\"small\"\n          >\n</ae-list>\n","css":"._CSS {\n  padding: var(--bp-page-content-padding);\n}\n","controller":"","packages":[],"description":""},"locks":[],"created":{"at":"2019-01-08T16:24:55+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2019-05-03T13:06:33+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1556888793737,"ct":1546964695735,"a_depth":5,"a":["apps","83c76376-420e-4231-9275-d0fe2ab47c32","ba440134-1703-495e-b869-0f0c8d447f75","91352b74-c5e5-4c05-aa68-f13b0b723f35","3dc78392-be3d-4804-996e-df4bcd1c5ce4"],"a_forms":["folder","application-form","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"24c84a43-6e4f-427e-bf25-16ee3254952a","v":"87ae2cb3e6bf632c","previous":{"v":"b9c6d096568ba8ba"},"p":"folder","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"page","applies":"","template":"<ae-list  list-id=\"2dab232c-2c8a-4aa4-b3f9-6023a7116161\"\n          query-id=\"f812861f-68c8-4818-9972-be7b5474c9b1\"\n          :root-document-id=\"document.id\"\n          @selected=\"Aeppic.navigateTo($event)\"\n          param-min-column-width=\"1fr\"\n          param-design=\"search-card\"\n          :param-design-params=\"{ hidePath: true }\"\n          class=\"_CSS-list\"\n          param-gap=\"small\"\n          >\n</ae-list>\n","css":"._CSS {\n  padding: var(--bp-page-content-padding);\n}\n","controller":"","packages":[]},"locks":[],"created":{"at":"2018-04-19T13:41:32+02:00","by":"","from":"","client":"server"},"modified":{"at":"2019-05-03T13:05:19+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1556888719696,"ct":1524138092785,"a_depth":3,"a":["system","system-forms","folder"],"a_forms":["system-folder-form","repository-folder-form","form"],"inheritedLocks":[null,null,null,null],"stamps":[]},{"id":"2919a631-36e6-493a-97b8-612fd6cc9109","v":"initial","p":"886b4a1a-0e92-4341-a0e7-e5ee4e9dc7f2","f":{"id":"design-form","v":"e7284adf8f42da65","text":"Design"},"data":{"name":"page","template":"<ae-list list-id=\"simple-list\" :documents=\"data.menuItems\" @selected=\"Aeppic.navigateTo($event.data.target)\"></ae-list>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-09-01T09:49:49+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2020-09-01T09:49:49+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1598953789973,"ct":1598953789973,"a_depth":4,"a":["apps","13d49bff-7e17-4694-b28f-de734b9abd9b","726c1664-cf32-4036-94b2-5508e10c0ecd","886b4a1a-0e92-4341-a0e7-e5ee4e9dc7f2"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"2a140f45-1b4f-4377-88e5-f2a9c7eda843","v":"0e84bb19d45b8a08","previous":{"v":"69c9925df219c198"},"p":"d60a5613-e046-4341-9bc9-34a241e8a28a","f":{"id":"design-form","v":"3385ac6766f32638","text":"Design"},"data":{"name":"page","template":"<ae-list  list-id=\"table-list\"\n          :root-document-id=\"document.id\"\n          query-id=\"f812861f-68c8-4818-9972-be7b5474c9b1\"\n          :filter=\"'f.id:' + locals.FORMS.Wartungsplan\"\n          :param-list-form-id=\"locals.FORMS.Wartungsplan\"\n          @selected=\"Aeppic.drillInto($event, arguments[1])\"\n          :search-options=\"{ searchAllFields: true, size: 9999 }\"\n          param-columns=\"data.name,data.beschreibung\"\n></ae-list>\n","css":"","controller":"class Controller {\n  init() {\n    this.FORMS = {\n      Wartungsplan: '522ca40d-810b-4021-835f-beeace3af7fa'\n    }\n    locals.FORMS = this.FORMS\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-03-02T15:56:05+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-04-05T13:15:02+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1649164502243,"ct":1646236565738,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","d60a5613-e046-4341-9bc9-34a241e8a28a"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"2ad25bac-15eb-4253-8f0a-01ccbe39287c","v":"initial","p":"ee4b6777-b620-43a9-9cde-7261dfc5c616","f":{"id":"design-form","v":"49954170df6a253b","text":"Design"},"data":{"name":"page","template":"<div class=\"_CSS-container\" @toolbar=\"controller.toolbarEvent($event.detail)\">\n  <ae-form  ref=\"form\"\n            :document=\"document\" \n            :readonly=\"controller.isReadonly\"\n            :auto-save=\"params.autoSave || false\"\n            class=\"_CSS-form\"\n  ></ae-form>\n  <div class=\"_CSS-extra\">\n    <h4>Related Information</h4>\n    \n    <h5>Received</h5>\n    <div class=\"_CSS-incoming\"  :class=\"{ '_CSS-incoming--empty': locals.receipts.length === 0} \">\n      <ae-design v-for=\"receipt of locals.receipts\" :document=\"receipt\" name=\"sidebar-info,title\"></ae-design>\n    </div>     \n  </div>\n</div>\n\n<!-- <ae-form v-if=\"Aeppic.Device === 'Desktop'\"\n  ref=\"form\"\n  :document=\"document\" \n  :readonly=\"controller.isReadonly\"\n  :auto-save=\"params.autoSave || false\"\n  @toolbar.native=\"controller.toolbarEvent($event.detail)\"></ae-form>\n<ae-form v-else\n  ref=\"form\"\n  layout-id=\"acd83791-970f-4b6e-bebd-d7f3bca52014\"\n  :auto-save=\"true\"\n  :document=\"document\"\n  :readonly=\"controller.isReadonly\"\n  @toolbar.native=\"controller.toolbarEvent($event.detail)\"></ae-form> -->\n","css":"._CSS {\n}\n\n._CSS-container {\n  // max-width: var(--ae-page-max-width);\n  margin: auto;\n  display:grid;\n  grid-template-columns: 1fr minmax(400px,20%);\n}\n\n._CSS-form {\n  overflow-x: hidden;\n}\n\n._CSS-extra {\n  height:100%;\n  border-left:1px solid var(--ae-background-300);\n  padding: 0 8px;\n  overflow-y:auto;\n}\n\n._CSS-incoming--empty::after {\n  content:'Nothing received yet';\n  display: block;\n  opacity:0.5;\n  font-size:smaller;\n}","controller":"class Controller {\n  async init() {\n    await Aeppic.nextRenderPass()\n    startEditing()\n\n    locals.receipts = Aeppic.subscribe(`p:3a59340f-5bd6-40e2-a63d-32cecb76b6c1 data.order.id:${document.id}`, (result) => {\n      console.log(result)\n    })\n  }\n\n  toolbarEvent(eventType) {\n     console.log('toolbarevent', eventType)\n    if (eventType === 'save') {\n      $refs.form.save()\n      $refs.form.resetEdits()\n\n      return\n    }\n    if (eventType === 'reset') {\n      $refs.form.resetEdits()\n\n      return\n    }\n  }\n\n  get isReadonly() {\n    if (typeof params.readonly === 'boolean') {\n      return params.readonly\n    }\n\n    return false\n  }\n}","packages":[{"id":"10843fbf-4f0c-416b-be7d-42d6bbd0ae68","v":"5f748569e59edddc","text":"Window"}],"description":""},"locks":[],"created":{"at":"2021-11-02T09:38:36+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-11-02T09:38:36+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1635845916134,"ct":1635845916124,"a_depth":4,"a":["apps","781ff5de-69db-49dc-99f0-f328b308cd7d","dbd0bd68-3479-4032-9303-9d51615c27a7","ee4b6777-b620-43a9-9cde-7261dfc5c616"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"2b1ef589-2bfc-43ad-a6c5-0f90c6952f0b","v":"2a9c69ad577e39a1","cloneOf":{"id":"00b41dc1-4763-4864-b3d7-ed941c5bb65a","v":"initial","text":"page"},"originalCloneOf":{"id":"00b41dc1-4763-4864-b3d7-ed941c5bb65a","v":"initial","text":"page"},"previous":{"v":"b45c41f932a7a141"},"p":"5475727b-0e0c-412a-8452-23b9c5b242f2","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"page","template":"<div class=\"_CSS-body-container\" @toolbar=\"controller.toolbarEvent($event.detail)\">\n  <div class=\"_CSS-body\">\n      <ae-design  v-if=\"locals.view === 'list'\"\n                  name=\"table\"\n                  :document=\"document\"\n                  style=\"height:100%;\"\n      ></ae-design>\n      <ae-design  v-else-if=\"locals.view === 'accounting'\"\n                  name=\"accounting\"\n                  :document=\"document\"\n                  style=\"height:100%;\"\n      ></ae-design>\n      <ae-design  v-else-if=\"locals.view === 'board'\"\n                  name=\"board\"\n                  :document=\"document\"\n                  style=\"height:100%;\"\n      ></ae-design>\n  </div>\n</div>\n","css":"._CSS-body-container {\n  height: 100%;\n}\n\n._CSS-body {\n  height: 100%;\n}","controller":"class Controller {\n  async init() {\n    locals.view = Aeppic.LocalStorage.getValue('bp-pref-crm-folder-view-id') || 'board'\n  }\n\n  toolbarEvent(eventType) {\n    if (eventType === 'view_list') {\n      locals.view = 'list'\n      return\n    }\n    if (eventType === 'view_accounting') {\n      locals.view = 'accounting'\n      return\n    }\n    if (eventType === 'view_board') {\n      locals.view = 'board'\n      return\n    }\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-09-20T13:29:42+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-10-01T15:19:08+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1633101548137,"ct":1632144582372,"a_depth":4,"a":["apps","9d6ee173-26fe-4472-a271-7667f717094e","6743ef9a-c21b-443f-91b8-4dd86886ee8c","5475727b-0e0c-412a-8452-23b9c5b242f2"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"2fb8a1a1-7602-40aa-8ad2-0d5ad8bd0e91","v":"8e6150ea57c9f0d5","previous":{"v":"initial"},"p":"b9d0a2e5-4aac-4927-ac39-a1f532e6c20e","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"page","applies":"","template":"\n<div class=\"_CSS-column\">\n  <h3>Gemeldet</h3>\n  <ae-list class=\"_CSS-list\"\n    list-id=\"simple-list\"\n    :param-design=\"controller.design\"\n    :documents=\"locals.gemeldet\"\n  ></ae-list>\n</div>\n\n<div class=\"_CSS-column\">\n  <h3>In Arbeit</h3>\n  <ae-list class=\"_CSS-list\"\n    list-id=\"simple-list\"\n    :param-design=\"controller.design\"\n    :documents=\"locals.inArbeit\"\n  ></ae-list>\n</div>\n\n<div class=\"_CSS-column\">\n  <h3>Abrechnung</h3>\n  <ae-list class=\"_CSS-list\"\n    list-id=\"simple-list\"\n    :param-design=\"controller.design\"\n    :documents=\"locals.abrechnung\"\n  ></ae-list>\n</div>\n\n<div class=\"_CSS-column\">\n  <h3>Abgerechnet</h3>\n  <ae-list class=\"_CSS-list\"\n    list-id=\"simple-list\"\n    :param-design=\"controller.design\"\n    :documents=\"locals.abgerechnet\"\n  ></ae-list>\n</div>","css":"._CSS {\n  display: flex;\n  flex-flow: column;\n  padding: 0 var(--bp-page-content-padding);\n}\n\n.ae-desktop ._CSS {\n  display: grid;\n  grid-auto-flow: column;\n  grid-gap: 1rem;\n  grid-template-columns: repeat(4, minmax(10rem, 1fr));\n}\n\n.ae-desktop ._CSS-column {\n  display: flex;\n  flex-flow: column;\n  overflow: hidden;\n}\n\n.ae-desktop ._CSS-list {\n  overflow-y: auto;\n}\n","controller":"class Controller {\n  init() {\n    this.resetDocuments()\n\n    Aeppic.subscribe(`p: ${document.id}`, (documents) => {\n      this.resetDocuments()\n\n      for(let i=0; i < documents.length; i++) {\n        const doc = documents[i]\n        const status = doc.data.arbeitsstatus\n        \n        if (!status) {\n          locals.gemeldet.push(doc)\n          continue\n        }\n        if (status === 'begonnen') {\n          locals.inArbeit.push(doc)\n          continue\n        }\n        if (status === 'erledigt') {\n          locals.abrechnung.push(doc)\n          continue\n        }\n\n        if (status === 'abgerechnet') {\n          locals.abgerechnet.push(doc)\n        }\n      }\n    })\n  }\n\n  resetDocuments() {\n    locals.gemeldet = []\n    locals.inArbeit = []\n    locals.abrechnung = []\n    locals.abgerechnet = []\n  }\n\n  get design() {\n    if (Aeppic.Device === 'Desktop') {\n      return 'card'\n    }\n    return 'card--thin'\n  }\n}\n","packages":[]},"locks":[],"created":{"at":"2018-02-06T09:45:45+01:00","by":"","from":"","client":"server"},"modified":{"at":"2019-04-05T13:23:40+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1554470620833,"ct":1517906745574,"a_depth":4,"a":["apps","b791df37-6eef-4a3e-9066-1b79e0bdad31","35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f","b9d0a2e5-4aac-4927-ac39-a1f532e6c20e"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"30c5b2ed-ab4d-470f-8571-b26cb8c745cb","v":"47911e57a038ca96","previous":{"v":"d75ef8bc321ba3e0"},"p":"582f2701-c678-4770-bcba-e5ff84e06752","f":{"id":"design-form","v":"e37099c040ec46e9","text":"Design"},"data":{"name":"page","template":"<div class=\"_CSS-container\">\n  <div class=\"_CSS-sidebar\">\n    <div  class=\"_CSS-entry\" \n            :class=\"{ '_CSS-entry--with-day-crossing': controller.isConversationDocumentCrossingMoreThan1DayApart(conversationDocument) }\"\n            v-for=\"(conversationDocument, index) of locals.conversationDocuments\"\n            @click.stop=\"locals.selectedConversation = conversationDocument\"\n    >\n      <!-- {{controller.isConversationDocumentCrossingMoreThan1DayApart(conversationDocument)}} -->\n      <!-- {{conversationDocument.id}} -->\n      <div class=\"_CSS-entry__day\" v-if=\"index === 0 || controller.isConversationDocumentCrossingMoreThan1DayApart(conversationDocument)\">\n        {{ controller.formatDate(locals.messagesByConversationDocumentId[conversationDocument.id][0].created.at) }}\n      </div>\n\n      <button class=\"ae-button _CSS-entry__button\"\n              :class=\"{ 'ae-button--primary': conversationDocument === locals.selectedConversation }\"\n      >\n        <div class=\"_CSS-entry__line\">\n          <ae-design name=\"icon\" :document=\"conversationDocument\"></ae-design>\n          <ae-design style=\"margin-left:var(--ae-space-2)\" name=\"title\" :document=\"conversationDocument\"></ae-design>\n          <div style=\"flex:1;\"></div>\n          <div class=\"_CSS-entry__line__messages\">\n            {{ locals.messagesByConversationDocumentId[conversationDocument.id].length }}\n          </div>\n        </div>\n        <ae-design class=\"_CSS-entry__path\" name=\"path\" :document=\"conversationDocument\"></ae-design>\n      </button>\n    </div>\n  </div>\n  <div class=\"_CSS-conversation\">\n    <template v-if=\"locals.selectedConversation\">\n      <!-- <ae-design name=\"title\" :document=\"locals.selectedConversation\"></ae-design> -->\n      <ae-design  style=\"margin-bottom:var(--ae-space-5)\"\n                  name=\"search-card\"\n                  :document=\"locals.selectedConversation\"\n                  @selected=\"Aeppic.drillInto($event, { mode: 'dialog', ...arguments[1] })\"\n      ></ae-design>\n      <ae-control name=\"conversations\" :document=\"locals.selectedConversation\"></ae-control>\n    </template>\n  </div>\n  <!-- <div class=\"_CSS-entry\" v-for=\"conversationDocument of locals.conversationDocuments\">\n    <ae-design name=\"search-card\" :document=\"conversationDocument\"></ae-design>\n    <hr>\n    <ae-control name=\"conversations\" :document=\"conversationDocument\"></ae-control>\n  </div> -->\n</div>","css":"._CSS-container {\n  height: 100%;\n  display: grid;\n  grid-template-columns: 20% auto;\n  grid-template-rows: 100%;\n}\n\n._CSS-sidebar {\n  overflow-x: hidden;\n  overflow-y: scroll;\n  display: flex;\n  flex-flow: column;\n\n  background: var(--ae-ui-background);\n}\n\n._CSS-conversation {\n  overflow-x: hidden;\n  overflow-y: scroll;\n  padding: var(--bp-page-content-padding);\n}\n\n._CSS-entry {\n  display: flex;\n  flex-flow: column;\n}\n\n._CSS-entry__day {\n  color: var(--ae-background-600);\n}\n\n._CSS-entry._CSS-entry--with-day-crossing {\n  margin-top: var(--ae-space-4);\n}\n\n._CSS-entry__button {\n  display: flex;\n  flex-flow: column;\n}\n\n._CSS-entry__line {\n  flex: 1;\n  width: 100%;\n  display: flex;\n}\n\n._CSS-entry__line__messages {\n  flex-shrink: 0;\n  color: var(--ae-background-100);\n  font-size: var(--ae-font-size-2);\n  background: var(--ae-background-700);\n  border-radius: 50%;\n  width: 1.5em;\n  height: 1.5em;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n}\n\n._CSS-entry__path {\n  font-size: var(--ae-font-size-1);\n  width: 100%;\n  min-width: 0;\n  overflow: hidden;\n}","controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Notification: '6d164aff-df9b-470d-9632-cfb6f5892509',\n      PingAsNotificationCategory: '97902782-7315-4837-94fc-8e080c6cfbf3',\n      NotificationRequest: 'ddaa6921-770e-4a73-b8a4-b4a99abed24b',\n      Comment: 'cf155969-ede1-43a4-9b10-3a697b19db91',\n      Ping: '42cf6e7a-e304-49a6-86e1-c94d84f1d0d9',\n    }\n\n    locals.newPing = {\n      receiver: '',\n      editableDocument: null\n    }\n    locals.conversationDocuments = []\n    locals.messagesByConversationDocumentId = {}\n    locals.selectedConversation = null\n    locals.canCreate = false\n    locals.canEdit = false\n    \n    if (!Aeppic.Account) {\n      return\n    }\n\n\n    const commentsQuery = `f.id:${this.FORMS.Comment} created.by:${Aeppic.Account.id}`\n    const pingsQuery = `p:${Aeppic.Account.id} (((f.id:${this.FORMS.Notification} OR f.id:${this.FORMS.NotificationRequest}) data.category:${this.FORMS.PingAsNotificationCategory}) OR f.id:${this.FORMS.Ping})`\n\n    const query = `(${commentsQuery}) OR (${pingsQuery})`\n\n    Aeppic.subscribe(query, { sort: { field: 'created.at', descending: true }, size: 100 }, (documents) => this._refresh(documents))\n  }\n \n  async _refresh(pingsOrComments) {\n    const conversationsByDocumentId = new Set()\n    const messagesByConversationDocumentId = {}\n\n    for (const doc of pingsOrComments) {\n      let targetDocumentId = ''\n\n      if (doc.f.id === this.FORMS.Comment) {\n        const comment = doc\n        targetDocumentId = comment.p\n      } else {\n        const ping = doc\n        targetDocumentId = ping.data.document.id\n      } \n\n      conversationsByDocumentId.add(targetDocumentId, doc)\n      \n      if (!messagesByConversationDocumentId[targetDocumentId]) {\n        messagesByConversationDocumentId[targetDocumentId] = []\n      }\n\n      messagesByConversationDocumentId[targetDocumentId].push(doc)\n      // console.log(ping.data.document)\n      // const receivingPing = ping.f.id === this.FORMS.Notification\n \n      // if (receivingPing) {\n      //   if (!pingsByReceiver[ping.data.who.id]) {\n      //     pingsByReceiver[ping.data.who.id] = []\n      //   }\n\n      //   pingsByReceiver[ping.data.who.id].push(ping)\n      // } else {\n      //   for (const account of ping.data.accounts) {\n      //     // pings to own are handled as 'normal' notification\n      //     const isPingToMyself = account.id === Aeppic.Account.id\n      //     if (isPingToMyself) {\n      //       continue\n      //     }\n\n      //     if (!pingsByReceiver[account.id]) {\n      //       pingsByReceiver[account.id] = []\n      //     }\n\n      //     pingsByReceiver[account.id].push(ping)\n      //   }\n      // }\n    }\n\n    locals.conversationDocuments = (await Aeppic.getAll([...conversationsByDocumentId])).filter(d => !!d)\n    locals.selectedConversation = locals.conversationDocuments[0]\n    locals.messagesByConversationDocumentId = messagesByConversationDocumentId\n  }\n\n  isConversationDocumentCrossingMoreThan1DayApart(conversationDocument) {\n    const index = locals.conversationDocuments.findIndex(d => d === conversationDocument)\n\n    const previousConversationDocument = locals.conversationDocuments[index - 1]\n\n    if (!previousConversationDocument) {\n      return false\n    }\n\n    const previousMessage = locals.messagesByConversationDocumentId[previousConversationDocument.id][0]\n    const currentMessage = locals.messagesByConversationDocumentId[conversationDocument.id][0]\n    console.log(conversationDocument.id, locals.messagesByConversationDocumentId[conversationDocument.id])\n    const diffInDays = Aeppic.DateTime.fromISO(currentMessage.created.at).startOf('day').diff(Aeppic.DateTime.fromISO(previousMessage.created.at).startOf('day'), 'days').toObject().days\n    // return { diffInDays, c: currentMessage.created.at, p: previousMessage.created.at }\n    return diffInDays <= -1\n  } \n\n  formatDate(dateString) {\n    const date = DateTime.fromISO(dateString)\n\n    const diff = -date.diffNow('days').days.toFixed(0)\n\n    if (diff === 0) {\n      return date.toLocaleString(DateTime.TIME_24_SIMPLE)\n    }\n\n    if (diff <= 7) {\n      //  hour: '2-digit', minute: '2-digit'\n      return date.toLocaleString({weekday: 'long',  })\n    }\n\n    return date.toLocaleString(DateTime.DATE_MED)\n  }\n\n\n  get readonly() {\n    // FIXME\n    return true\n\n\n    if (params.readonly === true) {\n      return true\n    }\n\n    if (typeof readonly === 'boolean') {\n      return readonly\n    }\n\n    return false\n  }\n\n  destroy() {\n  }\n}\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-05-21T08:43:09+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-01-13T09:50:49+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1642067449776,"ct":1621586589428,"a_depth":4,"a":["apps","c676e25c-4d28-48e3-9b60-811cde637ea5","fd2312bb-54bc-41a9-8fc7-b65b22ecb1d5","582f2701-c678-4770-bcba-e5ff84e06752"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","bf03da73-d7e2-4e63-a5aa-250d0bdcb286"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2022-09-05T12:16:05+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1662380165392,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Wartungsplan: '522ca40d-810b-4021-835f-beeace3af7fa',\n      Arbeit: 'd7f0c56d-8e0e-4607-911b-b0789c557d40',\n      Wartung: 'c211ffaa-14f8-4439-9126-f42f65ac4424',\n    } \n\n    locals.ready = false\n\n    locals.wartungsPlaene = []\n    locals.wartungen = {\n      begonnen: [], \n      abgebrochen: [],\n      abgeschlossen: [],\n      zursgenommen: []\n    }\n    locals.arbeiten = []\n \n     Aeppic.subscribe(\n      `a:${document.a[0]} f.id:${this.FORMS.Wartung}`, \n      { size: 50, sort: { field: 'created.at', descending: true }},\n      (docs) => {\n        locals.wartungen = {\n          begonnen: [],\n          abgebrochen: [],\n          abgeschlossen: [],\n          zurKenntnisgenommen: []\n        }\n        for (const doc of docs) {\n          doc.data.status === 0 && locals.wartungen.begonnen.push(doc)\n          doc.data.status === 1 && locals.wartungen.abgebrochen.push(doc)\n          doc.data.status === 2 && locals.wartungen.abgeschlossen.push(doc)\n          doc.data.status === 3 && locals.wartungen.zurKenntnisgenommen.push(doc)\n        }\n      }\n    )\n\n\n    // // FIXME: delivers no result. no idea why, because status:3 does\n    // Aeppic.subscribe(\n    //   `a:${document.a[0]} f.id:${this.FORMS.Wartung} data.status:0`, \n    //   { size: 10, sort: { field: 'created.at', descending: true }},\n    //   (docs) => {\n    //     locals.wartungen.begonnen = docs\n    //   }\n    // ) \n    \n    // Aeppic.subscribe(\n    //   `a:${document.a[0]} f.id:${this.FORMS.Wartung} data.status:1`, \n    //   { size: 10, sort: { field: 'created.at', descending: true }},\n    //   (docs) => locals.wartungen.abgebrochen = docs\n    // )\n    // Aeppic.subscribe(\n    //   `a:${document.a[0]} f.id:${this.FORMS.Wartung} data.status:2`, \n    //   { size: 10, sort: { field: 'created.at', descending: true }},\n    //   (docs) => locals.wartungen.abgeschlossen = docs\n    // )\n    // Aeppic.subscribe(\n    //   `a:${document.a[0]} f.id:${this.FORMS.Wartung} data.status:3`, \n    //   { size: 10, sort: { field: 'created.at', descending: true }},\n    //   (docs) => locals.wartungen.zurKenntnisgenommen = docs\n    // )\n\n\n    // Aeppic.subscribe(\n    //   `a:${document.a[0]} f.id:${this.FORMS.Wartungsplan}`, \n    //   { size: 10, sort: { field: 'created.at', descending: true }},\n    //   (docs) => locals.wartungsPlaene = docs\n    // )\n\n    Aeppic.subscribe(\n      `a:${document.a[0]} f.id:${this.FORMS.Arbeit} data.io:1`, \n      { size: 30, sort: { field: 'modified.at', descending: true }},\n      (docs) => locals.arbeiten = docs\n    )\n    \n    locals.ready = true\n  }\n\n  async getWorkStatistics(wartungsplan) {\n    const statistics = {\n      all: 0,\n      problem: 0,\n      ok: 0,\n      todo: 0\n    }\n\n    const anlagen = (await Aeppic.getAll(wartungsplan.data.anlagen)).filter(d => !!d)\n    const anlagenteile = (await Promise.all(anlagen.map(anlage => Aeppic.getAll(anlage.data.anlagenteile)))).filter(d => !!d).flat()\n    const arbeiten = (await Promise.all(anlagenteile.map(teil => Aeppic.getAll(teil.data.arbeiten)))).filter(d => !!d).flat()\n \n    for (const arbeit of arbeiten) { \n      statistics.all += 1\n      \n      if (arbeit.data.io === 0) {\n        statistics.todo +=1 \n      } else if (arbeit.data.io === 1) {\n        statistics.problem +=1 \n      } else if (arbeit.data.io === 2) {\n        statistics.ok +=1 \n      }\n    }\n\n    return statistics\n  }\n}","css":"","description":"","name":"page","packages":[],"template":"\n<div class=\"p-2 gap-6 flex flex-wrap justify-center\">\n  <div class=\"p-4 rounded-lg bg-center bg-cover bg-white rounded-lg border border-slate-200 p-2\">\n    <div class=\"mb-4 text-slate-600\"> \n      Wartungen in Arbeit\n    </div> \n\n    <div class=\"flex flex-col divide-y\"> \n      <div v-for=\"wartung of locals.wartungen.begonnen.slice(0,10)\" class=\"py-2 flex gap-6 justify-between items-center\">\n        <div class=\"flex flex-col\">\n          <ae-design name=\"plan\" :document=\"wartung\" param-design=\"title\"></ae-design>\n          <ae-design class=\"text-neutral-600\" name=\"objekt-title\" :document=\"wartung\"></ae-design>\n          <ae-design class=\"text-neutral-600\" name=\"firma-title\" :document=\"wartung\"></ae-design>\n        </div>\n        <ae-design name=\"plan\" param-design=\"work-status\" :document=\"wartung\"></ae-design>\n      </div>\n    </div>\n  </div>  \n\n  <div class=\"p-4 rounded-lg bg-center bg-cover bg-white rounded-lg border border-slate-200 p-2\">\n    <div class=\"mb-4 text-slate-600\">  \n      Zuletzt abgeschlossene Wartungen\n    </div>\n\n    <div class=\"flex flex-col divide-y\">\n      <div v-for=\"wartung of [...locals.wartungen.abgeschlossen, ...locals.wartungen.zurKenntnisgenommen].slice(0,10)\" class=\"py-2 flex flex-col gap-2\">\n        <div class=\"flex gap-6 justify-between items-center\">\n\n          <div class=\"flex flex-col\">\n            <ae-design name=\"plan\" param-title=\"title\" :document=\"wartung\"></ae-design>\n            <ae-design class=\"text-neutral-600\" name=\"objekt-title\" :document=\"wartung\"></ae-design>\n            <ae-design class=\"text-neutral-600\" name=\"firma-title\" :document=\"wartung\"></ae-design>\n          </div> \n\n          <ae-design name=\"plan\" param-design=\"work-status\" :document=\"wartung\"></ae-design>\n        </div>\n\n        <ae-design class=\"flex-1\" name=\"status-times\" :document=\"wartung\"></ae-design>\n      </div>\n    </div>\n  </div>  \n\n  <div class=\"p-4 rounded-lg bg-center bg-cover bg-white rounded-lg border border-slate-200 p-2\">\n    <div class=\"mb-4 text-slate-600\"> \n      Aktuellste Probleme\n    </div>\n    \n    <div class=\"flex flex-col divide-y\">\n      <div v-for=\"work of locals.arbeiten\"\n            class=\"py-4 flex flex-col gap-2\"\n      >\n        <div class=\"flex gap-4 items-center\">\n          <ae-icon class=\"fa fa-building\"></ae-icon>\n          <ae-design name=\"wartung\" param-design=\"objekt-title\" :document=\"work\"></ae-design> \n          <ae-icon class=\"fa fa-user-hard-hat\"></ae-icon>\n          <ae-design name=\"wartung\" param-design=\"firma-title\" :document=\"work\"></ae-design> \n\n          <div class=\"flex-1\"></div>\n\n          <div class=\"text-sm text-neutral-600\">\n            {{ Aeppic.DateTime.fromISO(work.modified.at).toLocaleString(Aeppic.DateTime.DATETIME_SHORT) }}\n          </div>\n        </div>\n\n        <ae-design name=\"title\" :document=\"work\" :param-readonly=\"true\"></ae-design> \n        <div class=\"italic\">\n        {{work.data.bemerkungen || 'Keine Bemerkung'}}\n        </div>\n      </div>\n    </div>\n  </div>\n</div> "},"f":{"id":"design-form","text":"Design","v":"c2d9ae57c7a46896"},"id":"31168239-82dc-48d0-8c85-7533be6a5c28","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-03-23T08:35:22+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"p":"bf03da73-d7e2-4e63-a5aa-250d0bdcb286","previous":{"v":"4e7664ea57866c75"},"stamps":[],"t":1774254922490,"v":"06961d96731c3e57"},{"id":"31a31a8d-dbb9-42cd-8b20-2f9d21895721","v":"90b912108b0b3176","previous":{"v":"9b6ec84fec9ad381"},"p":"6e55b0af-03d5-414b-a26b-0854ec230a07","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"page","template":"<ae-list  list-id=\"table-list\"\n          :root-document-id=\"document.id\"\n          query-id=\"f812861f-68c8-4818-9972-be7b5474c9b1\"\n          filter=\"f.id:e66eae7c-a9d5-4a59-a2f0-d1fa6eb90ea5\"\n          :params=\"{ columns: 'data.erledigt,data.name,data.verantwortlich,data.bis', sortFields: 'data.name,data.bis,data.erledigt,data.verantwortlich', filterFields: 'data.erledigt', designs: ',title-as-link,table:avatar--small,table:date,', fixedColumnWidths: '90,,,100' }\"\n></ae-list> ","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-10-06T12:47:35+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2022-10-19T08:43:46+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1666169026071,"ct":1633524455738,"a_depth":4,"a":["apps","1887a103-bf3b-473c-8cb7-4f1afad0286b","9b02b1b6-e32b-41ec-b451-dba59bc5847b","6e55b0af-03d5-414b-a26b-0854ec230a07"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"33b2b19e-1bc3-4a9f-9035-16ffeaa316c4","v":"initial","p":"089eb68f-d2ec-4e30-a3bb-6549d72932ec","f":{"id":"design-form","v":"49954170df6a253b","text":"Design"},"data":{"name":"page","template":"<ae-list  list-id=\"2dab232c-2c8a-4aa4-b3f9-6023a7116161\"\n          query-id=\"f812861f-68c8-4818-9972-be7b5474c9b1\"\n          :root-document-id=\"document.id\"\n          @selected=\"Aeppic.navigateTo($event)\"\n          param-min-column-width=\"1fr\"\n          param-design=\"search-title\"\n          :param-design-params=\"{ hidePath: true }\"\n          class=\"_CSS-list\"\n          >\n</ae-list>\n","css":"._CSS {\n  padding: var(--bp-page-content-padding);\n  /* max-width: 40%; */\n}\n\n._CSS-list > * > .ae-design {\n  background: var(--ae-background);\n  padding: 0.5em 1em;\n  cursor: pointer;\n}\n\n._CSS-list > * > .ae-design:hover {\n  background: rgba(0,0,0,0.2)\n}","controller":"","packages":[],"description":""},"locks":[],"created":{"at":"2019-05-03T14:14:37+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2019-05-03T14:14:37+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1556885677102,"ct":1556885677102,"a_depth":4,"a":["apps","94a64d89-d204-4918-b147-d717914fb03e","f254ce25-42f1-4333-8ee7-23554bf746c1","089eb68f-d2ec-4e30-a3bb-6549d72932ec"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"33bf6c1e-966c-4332-a40a-cc50331b664d","v":"15431da1b9ed1054","previous":{"v":"b75db69760483fee"},"p":"da73bcf8-be71-46ca-9645-894b04e2bfd1","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"page","template":"<ae-list  list-id=\"table-list\"\n          query-id=\"f812861f-68c8-4818-9972-be7b5474c9b1\"\n          filter=\"f.id:43551782-1b7f-47ef-a694-9e9824c97091\"\n          param-list-form-id=\"43551782-1b7f-47ef-a694-9e9824c97091\"\n          :root-document-id=\"document.id\"\n          @selected=\"Aeppic.drillInto($event)\"\n></ae-list>\n ","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-10-01T09:58:01+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-10-07T14:07:17+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1633615637055,"ct":1633082281603,"a_depth":4,"a":["apps","4a58cfdb-e1ef-40a2-8a89-57157ddda7d0","fe411da7-3843-4c17-acf5-aaeba96d1a85","da73bcf8-be71-46ca-9645-894b04e2bfd1"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","aed1ba1c-9095-4aca-8176-74a37325f0e5","58cc45fb-3fb3-45e8-b61d-4b89899e357a","dd7e2145-a511-4762-854e-bc58e5a2ecc3"],"a_depth":4,"a_forms":["folder","application-form","folder","form"],"created":{"at":"2018-04-18T15:42:00+02:00","backedBy":"","by":"","client":"server","from":""},"ct":1524058920082,"data":{"applies":"","controller":"","css":"._CSS {\n  padding: var(--bp-page-content-padding) var(--bp-page-content-padding) 0 var(--bp-page-content-padding);\n}","name":"page","packages":[],"template":"<ae-list\n  list-id=\"2dab232c-2c8a-4aa4-b3f9-6023a7116161\"\n  :root-document-id=\"document.id\"\n  query-id=\"f812861f-68c8-4818-9972-be7b5474c9b1\"\n  filter=\"f.id:6770bab9-4e15-45ae-bf22-7fe4ef2a0848\"\n  param-max-column-width=\"40rem\"\n></ae-list>"},"f":{"id":"design-form","text":"Design","v":"44303cec40b3e1fa"},"id":"3753f50f-2923-4be5-8dc1-2de60666ae11","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-07-03T11:55:04+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"dd7e2145-a511-4762-854e-bc58e5a2ecc3","previous":{"v":"initial"},"stamps":[],"t":1751543704446,"v":"4ee71f3ceeaa6868"},{"id":"3aba2114-6774-4c91-ace9-d55e3dbd42d2","v":"e544af74fdd6c2c8","p":"92b40379-c29e-4f04-a28c-129575d864c3","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"page","template":"<div class=\"_CSS-body-container\" @toolbar=\"controller.toolbarEvent($event.detail)\">\n  <div class=\"_CSS-body\">\n      <ae-design  v-if=\"locals.view === 'list'\"\n                  name=\"table\"\n                  :document=\"document\"\n                  style=\"height:100%;\"\n      ></ae-design>\n      <ae-design  v-else-if=\"locals.view === 'board'\"\n                  name=\"board\"\n                  :document=\"document\"\n                  style=\"height:100%;\"\n      ></ae-design>\n  </div>\n</div>\n","css":"._CSS-body-container {\n  height: 100%;\n}\n\n._CSS-body {\n  height: 100%;\n}","controller":"class Controller {\n  async init() {\n    locals.view = Aeppic.LocalStorage.getValue('maus-pref-crm-folder-view-id') || 'board'\n  }\n\n  toolbarEvent(eventType) {\n    if (eventType === 'view_list') {\n      locals.view = 'list'\n      return\n    }\n    if (eventType === 'view_board') {\n      locals.view = 'board'\n      return\n    }\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-12-06T16:00:17+00:00","by":"427610a9-39dc-4014-9176-5f72aeb23263","from":"","client":"server"},"modified":{"at":"2022-12-07T07:21:21+00:00","by":"427610a9-39dc-4014-9176-5f72aeb23263","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1718866007162,"ct":1718866007162,"a_depth":4,"a":["apps","deeef973-ce03-4557-bf75-75a059001767","e7de598c-6f5a-4ab4-a33b-213ca86e489d","92b40379-c29e-4f04-a28c-129575d864c3"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[],"previous":{"v":"0dbd0096a4e35596","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"}},"meta":{"modified":{"at":"2024-06-20T08:46:47+02:00","by":"427610a9-39dc-4014-9176-5f72aeb23263","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"3b026302-434a-4544-931c-6f6d7d003c2e","v":"1d57f35e3be8acb6","previous":{"v":"0496eb6ee205d844"},"p":"275b807f-7dbb-4351-b731-669e275fa97d","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"page","applies":"","template":"<!-- <ae-layout layout-id=\"e8f8cc49-0118-43ba-ac25-0c016d6dea1d\"></ae-layout> -->\n\n<!-- \n<ae-design name=\"page--shortlist-questionnaire\" v-if=\"Aeppic.Account.id === 'f870f929-72f1-40e5-a8d3-9550ee54a6b3'\" class=\"_CSS-ae-design\" :document=\"document\"></ae-design>\n<ae-design name=\"page--application-questionnaire\" v-else-if=\"Aeppic.Account.id === 'aa4eddae-4a9d-4f66-a4c1-bf8b92a27bb2'\" class=\"_CSS-ae-design\" :document=\"document\"></ae-design>\n<ae-design name=\"page--shared\" v-else-if=\"Aeppic.Account.id === 'bb0abc92-1952-4761-a0d2-be44d1c4440b'\" class=\"_CSS-ae-design\" :document=\"document\"></ae-design>\n<ae-design name=\"page--model\" v-else-if=\"Aeppic.Account.p === '1d21a70e-45a4-4b4f-8481-8bc9b2d10662' || Aeppic.Account.p === '78cd62d5-a62e-41a0-ba11-bf1f1d9d4d51'\" :document=\"document\"></ae-design>\n<ae-design name=\"page--intra-company\" v-else :document=\"document\"></ae-design> -->\n\n<ae-design name=\"page--intra-company\" :document=\"document\"></ae-design>\n\n<div class=\"dbps-bottom-spacer\"></div>\n","css":"._CSS {\n  padding: var(--bp-page-content-padding);\n}\n","controller":"","packages":[]},"locks":[],"created":{"at":"2018-05-25T10:47:51+00:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","from":"","client":"server"},"modified":{"at":"2018-10-30T12:50:55+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1540903855936,"ct":1527245271963,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","275b807f-7dbb-4351-b731-669e275fa97d"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"3ba49eee-9bbe-4f9b-b443-5a55304262c2","v":"initial","p":"3ec659f4-8a0c-4f01-a2ce-aed6bafad038","f":{"id":"design-form","v":"24435d748c76f819","text":"Design"},"data":{"name":"page","template":"Note: Displaying 9999 items. This might take some time\n\n\n\n<button class=\"ae-button ae-button--primary\" @click.stop=\"locals.showAppForms = !locals.showAppForms\">\n  show apps\n</button>\n\n<button class=\"ae-button ae-button--primary\" @click.stop=\"locals.showForms = !locals.showForms\">\n  show forms\n</button>\n\n<template v-if=\"locals.showAppForms\">\n  <h1>Apps</h1>\n\n  <div class=\"_CSS-list\">\n    <div class=\"_CSS-row\">\n      <div>\n        Form\n      </div>\n      <div>\n        Icon\n      </div>\n      <div>\n        namedIcon\n      </div>\n    </div>\n    <div class=\"_CSS-row\" v-for=\"form of locals.appForms\" :class=\"{ '_CSS-row--missing': !controller.hasIcon(form) }\">\n      <div class=\"_CSS-title\">\n        <ae-design name=\"title\" :document=\"form\"></ae-design>\n        <ae-design style=\"color: var(--ae-background-600)\" name=\"path\" :document=\"form\" :param-full-path=\"true\"></ae-design>\n      </div>\n      <div class=\"_CSS-icons\">\n        <ae-design name=\"icon\" :document=\"form\"></ae-design>\n        <ae-design name=\"icon\" :document=\"form\" style=\"font-size: 1.2em;\"></ae-design>\n        <ae-design name=\"icon\" :document=\"form\" style=\"font-size: 1.5em;\"></ae-design>\n        <ae-design name=\"icon\" :document=\"form\" style=\"font-size: 2em;\"></ae-design>\n      </div>\n      <div>\n        {{form.data.namedIcon}}\n      </div>\n    </div>\n  </div>\n</template>\n\n<template v-if=\"locals.showForms\">\n  <h1>Forms</h1>\n\n  <div class=\"_CSS-list\">\n    <div class=\"_CSS-row\">\n      <div>\n        Form\n      </div>\n      <div>\n        Icon\n      </div>\n      <div>\n        namedIcon\n      </div>\n    </div>\n    <div class=\"_CSS-row\" v-for=\"form of locals.forms\" :class=\"{ '_CSS-row--missing': !controller.hasIcon(form) }\">\n      <div class=\"_CSS-title\">\n        <ae-design name=\"title\" :document=\"form\"></ae-design>\n        <ae-design style=\"color: var(--ae-background-600)\" name=\"path\" :document=\"form\" :param-full-path=\"true\"></ae-design>\n      </div>\n      <div class=\"_CSS-icons\">\n        <ae-design name=\"icon\" :document=\"form\"></ae-design>\n        <ae-design name=\"icon\" :document=\"form\" style=\"font-size: 1.2em;\"></ae-design>\n        <ae-design name=\"icon\" :document=\"form\" style=\"font-size: 1.5em;\"></ae-design>\n        <ae-design name=\"icon\" :document=\"form\" style=\"font-size: 2em;\"></ae-design>\n      </div>\n      <div>\n        {{form.data.namedIcon}}\n      </div>\n    </div>\n  </div>\n</template>","css":"._CSS-list {\n  display: grid;\n  grid-row-gap: var(--ae-size-3);\n\n  padding: var(--bp-page-content-padding);\n}\n\n._CSS-row:nth-child(even) {\n  background: var(--ae-background-200);\n}\n\n\n._CSS-row {\n  display: grid;\n  grid-template-columns: 1fr 4fr 1fr;\n\n  overflow: hidden;\n  min-width: 0;\n  padding: var(--ae-size-3) 0;\n}\n\n._CSS-row._CSS-row--missing {\n  background: var(--ae-accent-red-100);\n}\n\n._CSS-icons {\n  display: flex;\n  align-items: baseline;\n}\n._CSS-icons > * {\n  margin-right: var(--ae-size-2);\n}\n\n\n._CSS-title {\n  min-width: 0;\n  display: flex;\n  flex-flow: column;\n  overflow: hidden;\n}","controller":"class Controller {\n  async init() {\n    locals.showApps = false\n    locals.showForms = false\n    locals.appForms = []\n    locals.forms = []\n\n    locals.appForms = await Aeppic.find('a:apps f.id:application-form', { size: 9999 })\n    locals.forms = await Aeppic.find('a:apps f.id:form', { size: 9999 })\n  }\n\n\n  hasIcon(form) {\n    const formData = form.data\n\n    return !!(formData.namedIcon || (formData.icon && formData.icon.dataUrl))\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-05-08T08:52:51+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2020-05-08T08:52:51+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1588927971126,"ct":1588927971126,"a_depth":3,"a":["apps","30363d01-3c4c-407b-861e-c0ef1ca6be75","3ec659f4-8a0c-4f01-a2ce-aed6bafad038"],"a_forms":["folder","application-form","form"],"inheritedLocks":[null,null,null,null],"stamps":[]},{"id":"3be939ee-8b19-4d17-afd3-36245417b865","v":"e7673e11f6893182","p":"6f48c20d-dc77-400a-b49d-5aa8b1d9053f","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"page","template":"<!-- <select @input=\"controller.setView($event.target.value)\">\n  <option v-for=\"view of locals.views\" :value=\"view.value\" :selected=\"view.value === locals.view.value\">\n    {{ view.label }}\n  </option>\n</select> -->\n\n<div  class=\"_CSS-container\" \n      v-if=\"locals.view\"\n      @toolbar.prevent=\"controller.toolbarEvent($event.detail)\"\n> \n  <div v-if=\"locals.view === 'diagram:polar-area' || locals.view === 'diagram:bar'\" class=\"_CSS-chart\">\n    <canvas ref=\"chart\" width=\"400\" height=\"400\"></canvas>\n  </div>\n  <div v-else-if=\"locals.view === 'table'\" class=\"_CSS-table\">\n    <ae-list  list-id=\"table-list\"\n              :root-document-id=\"document.id\"\n              query-id=\"f812861f-68c8-4818-9972-be7b5474c9b1\"\n              param-columns=\"data.name,,data.antragsteller,data.standorte,data.itaSitzungsmonat\"\n              param-headers=\",Status\"\n              param-designs=\",form-title,table:avatar--small\"\n              :param-row-height=\"51\"\n    ></ae-list>\n  </div>\n</div>\n","css":"._CSS {\n  padding: var(--bp-page-content-padding);\n}\n\n._CSS-container {\n}\n\n._CSS-table {\n\n}\n\n._CSS-chart {\n  max-width: 600px;\n  margin: auto;\n}","controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      AntragBitmAs: 'd4e69a72-1734-4c98-943d-a62222749b52',\n      AntragDsb: '50fe38f2-b229-4b81-b408-23608c10a1c8',\n      AntragIta: '0918989c-e4c8-4f20-b79d-d9aa4d4e08b6',\n      AntragUeberarbeitung: '8c0cbcac-a01e-4b57-9fe7-6aaa94f6954c',\n      AntragBeschlossen: 'a607b3f3-74d9-48a0-be85-7a7fde8356ba',\n    }\n\n    this.LABELS = [\n      'Neu',\n      'Datenschutzbeauftrager',\n      'ITA',\n      'In Überarbeitung',\n      'Beschlossen',\n    ]\n\n    this.COLOR_DEFITNIONS = {\n      red: 'rgb(255, 99, 132)',\n      orange: 'rgb(255, 159, 64)',\n      yellow: 'rgb(255, 205, 86)',\n      green: 'rgb(75, 192, 192)',\n      blue: 'rgb(54, 162, 235)',\n      purple: 'rgb(153, 102, 255)',\n      grey: 'rgb(201, 203, 207)'\n    }\n\n    this.COLORS = [\n      this.COLOR_DEFITNIONS.grey,\n      this.COLOR_DEFITNIONS.blue,\n      this.COLOR_DEFITNIONS.red,\n      this.COLOR_DEFITNIONS.orange,\n      this.COLOR_DEFITNIONS.green,\n    ]\n\n    this._chart = null\n\n    await Aeppic.nextRenderPass()\n\n    // this.setView('diagram:polar-area') \n\n    Chart.scaleService.updateScaleDefaults('linear', {\n      ticks: {\n        beginAtZero: true\n      }\n    })\n\n    locals.view = 'table'\n\n    this.renderView()\n  }\n\n  toolbarEvent(eventType) {\n    if (eventType === 'view_diagram:polar-area') {\n      locals.view = 'diagram:polar-area'\n    } else if (eventType === 'view_diagram:bar') {\n      locals.view = 'diagram:bar'\n    } else if (eventType === 'view_table') {\n      locals.view = 'table'\n    }\n\n    this.renderView()\n  }\n\n  renderView() {\n    this.createChart()\n  }\n\n  async createChart(docs) {\n    if (this._chart) {\n      this._chart.destroy()\n    }\n\n    const documents = await this.getDocuments()\n\n    if (locals.view === 'diagram:polar-area') {\n      const chartData = await this.buildPolarData(documents)\n\n      this._chart = new Chart($refs.chart, {\n          type: 'polarArea',\n          data: chartData\n      })\n    }\n\n    if (locals.view === 'diagram:bar') {\n      const chartData = await this.buildBarData(documents)\n\n      this._chart = new Chart($refs.chart, {\n        label: 'Anträge',\n        type: 'horizontalBar',\n        data: chartData\n      })\n    }\n  }\n\n  async getDocuments() {\n    const promises = []\n\n    promises.push(Aeppic.find(`p:${document.id} f.id:${this.FORMS.AntragBitmAs}`))\n    promises.push(Aeppic.find(`p:${document.id} f.id:${this.FORMS.AntragDsb}`))\n    promises.push(Aeppic.find(`p:${document.id} f.id:${this.FORMS.AntragIta}`))\n    promises.push(Aeppic.find(`p:${document.id} f.id:${this.FORMS.AntragUeberarbeitung}`))\n    promises.push(Aeppic.find(`p:${document.id} f.id:${this.FORMS.AntragBeschlossen}`))\n\n    return Promise.all(promises)\n  }\n\n  async buildBarData(sets) {\n    const result = {\n      datasets: [],\n      labels: ['Anträge']\n    }\n\n    result.datasets = sets.map((s, i) => {\n      return {\n        label: this.LABELS[i],\n        backgroundColor: this.COLORS[i],\n        data: [s.length]\n      }\n    })\n\n    return result\n  }\n\n  async buildPolarData(sets) {\n    const result = {\n      labels: this.LABELS,\n      datasets: []\n    }\n\n    result.datasets.push({\n        backgroundColor: this.COLORS,\n        data: sets.map((s, i) => s.length)\n    })\n\n    return result\n  }\n}\n \n\n","packages":[{"id":"4a6e27ae-e4a0-4e22-9997-b352899f86f5","v":"d11d7f56132d47f5","text":"Chart.js"}],"aliases":[],"description":""},"locks":[],"created":{"at":"2019-10-04T10:49:18+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2022-11-14T13:06:12+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1668431172895,"ct":1668431172895,"a_depth":4,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","76983fec-9e9a-4ab9-b7d0-e2f9923b8bd8","6f48c20d-dc77-400a-b49d-5aa8b1d9053f"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[],"previous":{"v":"38375a7d6aeaa33a","f":{"id":"design-form","v":"24435d748c76f819","text":"Design"}}},{"id":"3dcedb4e-fd3d-4d79-8511-ba387dd04d03","v":"5739a09ad2001994","previous":{"v":"6b56966dd7ef46d3"},"p":"5d0ac040-1428-48bc-9b4f-28c69e098b3c","f":{"id":"design-form","v":"24435d748c76f819","text":"Design"},"data":{"name":"page","template":"<div class=\"_CSS-container\">\n\t<div class=\"_CSS-content\">\n\t\t<div class=\"_CSS-filters\">\n\t\t\t<div class=\"_CSS-text\">\n\t\t\t\t<input style=\"flex:1\" type=\"text\" v-focus autofocus placeholder=\"Wonach suchen Sie?\" v-model=\"locals.filters.text\" @input=\"controller.update()\">\n\t\t\t</div>\n\n\t\t\t<section class=\"_CSS-filters__sub\">\n\t\t\t\t<div class=\"_CSS-users\" v-if=\"locals.allowFilterAccounts\">\n\t\t\t\t\t<label class=\"_CSS-label\">\n          Wer\n        </label>\n        <button class=\"ae-button\" :class=\"[ locals.filters.users.length ? 'ae-button--tertiary' : 'ae-button--primary' ]\"\n        @click.stop=\"controller.resetUsers()\">\n          <ae-icon class=\"far fa-users\"></ae-icon> Alle\n        </button>\n\n        <button class=\"ae-button\" :class=\"[ locals.filters.users.length === 1 && locals.filters.users[0].id === Aeppic.ProfilePage.id ? 'ae-button--primary' : 'ae-button--tertiary' ]\"\n        @click.stop=\"controller.setUsersToMe()\"\n         v-if=\"Aeppic.Account && !Aeppic.Account.data.isGroupAccount\">\n          <ae-design name=\"avatar--resizes-with-font\" :document=\"Aeppic.ProfilePage\" style=\"display:inline-block;\"></ae-design> Ich\n        </button>\n\n        <button class=\"ae-button\" :class=\"[ controller.otherUsersThanMeSelected  ? 'ae-button--primary' : 'ae-button--tertiary' ]\"\n        @click.stop=\"$refs.userSelectorBtn.$emit('show', $event)\"\n        v-if=\"locals.allowFilterOtherAccounts\">\n          <ae-icon class=\"far fa-user\"></ae-icon> \n          Auswählen\n        </button>\n\n        <template v-if=\"controller.otherUsersThanMeSelected\">\n          <div class=\"_CSS-user\" v-for=\"user of locals.filters.users\">\n            <ae-design name=\"avatar--resizes-with-font\" :document=\"user\"></ae-design>\n            <ae-design name=\"title\" :document=\"user\"></ae-design>\n            <button class=\"ae-button\" @click.stop=\"controller.removeFilter('users', user)\">\n                <ae-icon class=\"fa fa-times\"></ae-icon>\n            </button>\n          </div>\n            \n        </template>\n\n        <ae-layout layout-id=\"36649f27-5869-49e6-9b49-3b5c3b9c795d\"\n                    @selected=\"controller.addFilter('users', $event)\"\n                    :param-settings=\"locals.userSelectorSettings\"\n                    :param-hide-button=\"!locals.filters.users.length || controller.currentUserIsFiltered\"\n                    ref=\"userSelectorBtn\"\n                    :param-hide-path=\"true\"\n        ></ae-layout>\n\t\t\t\t</div>\n\n\t\t\t\t<div class=\"_CSS-forms\" v-if=\"locals.formSelectorSettings.filter.base\">\n          <label class=\"_CSS-label\">\n            Typ\n          </label>\n\n\n        <button   class=\"ae-button\"\n                :class=\"[ locals.filters.forms.length ? 'ae-button--tertiary' : 'ae-button--primary' ]\"\n                @click.stop=\"controller.resetFilterForms()\"\n        >\n          <ae-icon class=\"fas fa-cube\"></ae-icon> Alle\n        </button>\n\n        <!-- <button class=\"ae-button\" :class=\"[ !locals.filters.forms.length ? 'ae-button--tertiary' : 'ae-button--primary' ]\"\n        @click.stop=\"$refs.formSelectorBtn.$emit('show', $event)\">\n          <ae-icon class=\"fas fa-mouse-pointer\"></ae-icon> \n          Auswählen\n        </button> --> \n\n        <div  class=\"_CSS-form ae-button\" \n              v-for=\"(form, index) of locals.availableFilters.forms\"\n              @click.stop=\"controller.toggleFilter('forms', form)\"\n              :class=\"[ locals.filters.forms.find(f => f.id === form.id) ? 'ae-button--primary' : 'ae-button--tertiary' ]\"\n        >\n          <ae-design name=\"icon\" :document=\"form\"></ae-design>\n          <ae-design name=\"title\" :document=\"form\" style=\"margin-left:0.5ch\" :param-prefer-label=\"true\"></ae-design>\n        </div>\n\n        <!-- <div class=\"_CSS-form\" v-for=\"(form, index) of locals.filters.forms\">\n          <ae-design name=\"icon\" :document=\"form\"></ae-design>\n          <ae-design name=\"title\" :document=\"form\"></ae-design>\n          <button class=\"ae-button\" @click.stop=\"controller.removeFilter('forms', form)\">\n            <ae-icon class=\"fa fa-times\"></ae-icon>\n          </button>\n        </div> -->\n\n        <!-- <ae-layout layout-id=\"36649f27-5869-49e6-9b49-3b5c3b9c795d\"\n                   @selected=\"controller.addFilter('forms', $event)\"\n                  :param-settings=\"locals.formSelectorSettings\"\n                  ref=\"formSelectorBtn\"\n                  :param-hide-button=\"!locals.filters.forms.length\"\n                  :param-hide-path=\"true\"\n        ></ae-layout> -->\n\t\t\t\t</div>\n        \n        <div class=\"_CSS-ancestor\" v-if=\"locals.filters.ancestorId\">\n          <label class=\"_CSS-label\">\n            Ort\n          </label>\n          <ae-design name=\"search-card\" :document-id=\"locals.filters.ancestorId\"></ae-design>\n        </div>\n\n\n\t\t\t\t<!-- TODO: reenable -->\n\t\t\t\t<!-- \n      <input type=\"checkbox\"\n              v-model=\"locals.filters.types.created\"\n              @input=\"controller.update()\"\n      > Created\n      <input type=\"checkbox\"\n              v-model=\"locals.filters.types.modified\"\n              @input=\"controller.update()\"\n      > Modified -->\n\n\t\t\t</section>\n\t\t</div>\n\t\t<!-- {{ locals.$_query}} -->\n\n\t\t<!-- <button class=\"ae-button ae-button--primary\" @click.stop=\"controller.update()\">\n      Suchen\n    </button> -->\n\n\n\t\t<div class=\"_CSS-results\">\n\t\t\t<div class=\"_CSS-loader\" v-if=\"locals.search.loading\" :class=\"{ '_CSS-loader--hidden': !locals.search.loading }\">\n\t\t\t\t<div class=\"_CSS-loader__content\">\n\t\t\t\t\t<ae-icon class=\"fa fa-spinner-third fa-5x fa-spin\"></ae-icon>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<ae-list class=\"_CSS-results__list\" param-min-column-width=\"100%\" param-max-column-width=\"1fr\" list-id=\"2dab232c-2c8a-4aa4-b3f9-6023a7116161\"\n\t\t\t :documents=\"locals.searchResults.slice(0,locals.search.size)\" @selected=\"Aeppic.drillInto($event, { mode: 'dialog' })\" param-design=\"search-card,search-title\" \n\t\t\t :param-hide-path=\"false\" param-gap=\"small\" :param-hide-empty=\"true\"></ae-list>\n\n\t\t\t<div class=\"_CSS-results__more\" v-if=\"!locals.search.loading && locals.search.executed\">\n\t\t\t\t<template v-if=\"locals.searchResults.length >= locals.search.size\">\n \n\t\t\t\t\t<button class=\"ae-button ae-button--secondary\" @click=\"controller.loadMore()\">mehr laden</button>\n\t\t\t\t</template>\n\t\t\t\t<div v-else>\n\t\t\t\t\t<ae-icon class=\"fa fa-stream\"></ae-icon>\n\t\t\t\t\t{{ locals.searchResults.length }} Ergebnisse gefunden.\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\n\t</div>\n\n</div>","css":"._CSS-container {\n  max-width: var(--ae-page-max-width);\n  margin: auto;\n}\n\n._CSS-content {\n  padding: var(--bp-page-content-padding);\n}\n\n._CSS-filters {\n  display: flex;\n  flex-flow: column;\n  flex-wrap: wrap;\n}\n\n._CSS-filters__sub {\n  display: flex;\n  flex-wrap: wrap;\n  flex-flow: column;\n\n  margin-bottom: var(--ae-size-3);\n}\n\n._CSS-text {\n  width: 100%;\n  display: flex;\n  padding: var(--ae-size-3) 0;\n}\n\n._CSS-forms {\n  flex: 1;\n\n  display: flex;\n  align-items: center;\n  flex-wrap: wrap;\n}\n\n._CSS-form {\n  display: flex;\n  align-items: center;\n}\n\n\n._CSS-users {\n  flex: 1;\n\n  display: flex;\n  align-items: center;\n  flex-wrap: wrap;\n}\n\n._CSS-user {\n  display: flex;\n  align-items: center;\n\n\n  border: var(--ae-border-width) solid var(--ae-border-color);\n  border-radius: var(--ae-border-radius);\n  padding: var(--ae-size-1) var(--ae-size-3);\n  margin: 2px;\n  background: var(--ae-ui-background);\n}\n\n._CSS-user-modifiers {\n  flex: 1;\n}\n\n._CSS-ancestor {\n  flex: 1;\n\n  display: flex;\n  align-items: center;\n  flex-wrap: wrap;\n}\n\n._CSS-results {\n  position: relative;\n}\n\n._CSS-loader {\n  position: absolute;\n  top: 0;\n  bottom: 0;\n  left: 0;\n  right: 0;\n  z-index: 10;\n\n  display: flex;\n  justify-content: center;\n  align-items: center;\n\n  opacity: 1;\n\n  transition: opacity .2s 1s ease-in;\n}\n\n._CSS-loader:before {\n  content: '';\n  position: absolute;\n  top: 0;\n  bottom: 0;\n  left: 0;\n  right: 0;\n  background: var(--ae-ui-background);\n\n  pointer-events: none;\n}\n\n\n._CSS-loader._CSS-loader--hidden {\n  opacity: 0;\n  pointer-events: none;\n}\n\n\n._CSS-results__more {\n  display: flex;\n  justify-content: center;\n\n  margin: var(--ae-size-4);\n}\n\n\n._CSS-label {\n  color: var(--ae-background-700);\n  margin-right: var(--ae-size-2);\n}\n\n._CSS-hint {\n  color: var(--ae-background-500);\n}","controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Mitarbeiter: 'd2ac3563-3c3f-4f02-b923-9b67abf98d10',\n      Account: 'account',\n      Company: 'c69a0c1c-6c53-40c2-87e8-5ace866bf1df'\n    }\n\n    this.formIdsToFind = [\n      // '3d456c38-6282-416e-8c5e-7d20b0517a6e',\n      // '3ef82fa1-425d-4592-b120-1a6fc967802d',\n      // '17c3a5d3-90ba-4592-961b-0800873ef9c1',\n      // '8fc08287-dbcc-4e41-9d5d-28e4cd828943',\n      // '84ede5f8-c5af-4113-8235-4b7fa528e265',\n      // '3d45f20b-ecb3-4dc5-aa39-67a28e3923d8',\n      // 'ea3fb00c-4b3e-44ed-8bfb-7dce7f8a8f4c',\n      // 'ccf254f6-4115-40fb-8b32-5cf86cc04231',\n      // 'e24202d4-aa6f-4ea9-933c-5c1be7e38556',\n      // 'dbee6e16-d63a-493c-bba6-505f79918f9f',\n      // 'a04c8913-db48-4e80-b20d-0f3cc17a778c',\n      // 'e6b7aced-aaa0-49a4-b573-cfa307595402',\n      // '6f641574-7cb6-424a-9657-4b8d652a2cf7',\n      // '0deb4864-cbb6-420c-99ee-337c7444ab24',\n      // '766c24c5-542c-4887-bf65-43ad85e6c476',\n      // '0b6a2b21-9425-466e-9e8d-57ec39cc95e1',\n      // '13bd28ac-9c00-4a2a-886f-18932875180a',\n      // '08c34da9-1d5d-4b91-a9e9-a9147d7dec6b',\n      // '6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2',\n      // 'c0574720-6967-4293-94a8-e7b32a40fc6f',\n      // '7894afb7-cbf3-4c0d-96d7-8c48efc1e227',\n      // '90bcd87b-ca52-4533-9a9e-dff73b31c2fc',\n      // 'da7fd443-da96-4fa3-83d9-bdbb188f09f1',\n      // '38aab2e1-ee5c-4fc2-90e9-962b4161ac22',\n      // 'e4af0e46-8a46-4741-935d-13e29befd300',\n      // '86966584-6ee3-4351-8e6e-ff6e695b970a',\n      // '381e2c4e-9eed-42a5-b65c-ad72e25369f0',\n      // '77bb245a-dcb6-44d4-9baa-149185d6892c',\n      // '8dbe21a7-7642-4884-986b-a119c6498bd3',\n      // '954212d9-9cc7-4356-82e3-a80cf745da4d',\n      // '527f9bb3-01bd-48cc-ad5b-08b1bba3af33',\n      // 'f0cf1b33-f840-4d4b-9335-c10daa7a335e',\n      // 'f66b823a-4dd9-4002-9684-388747c4f26f',\n      // 'd6f1cc99-f34e-4cb8-99b3-11f917485c25',\n      // '24523534-125d-4ebe-9a83-bd7fed39ff92',\n      // 'f56e0113-f097-4665-b04d-70d59acf8262',\n      // 'e90e5e3c-3eac-4544-8be0-57dea64e6f56',\n    ]\n    \n    this._updateRunning = null\n\n    this.debounceUpdate = Aeppic.debounce(async () => {\n      await this._update()\n    }) \n\n    locals.searchResults = []\n    locals.filters = {\n      text:'',\n      forms: [],\n      users: [],\n      types: {\n        modified: true,\n        created: true\n      },\n      ancestor: ''\n    }\n    locals.allowFilterAccounts = false\n    locals.allowFilterOtherAccounts = false\n    locals.availableFilters = {\n      forms: []\n    }\n\n    locals.search = {\n      size: 15,\n      maximumSizeOfAnyResult: -1,\n      loading: false,\n      executed: false\n    }\n\n    locals.$_query = ''\n    locals.formSelectorSettings = {\n      filter: {\n        targetDocument: document,\n        formIds: 'form'\n      },\n      search: {\n        sort: 'data.name'\n      }\n    }\n    locals.userSelectorSettings = {\n      filter: {\n        targetDocument: document,\n        formIds: this.FORMS.Mitarbeiter,\n        ancestorForm: this.FORMS.Company,\n      }\n    }\n\n    await this.updateAvailableForms()\n\n    await this.updateAllowedFilters()\n\n    locals.filters = await this.getInitialFilters()\n\n    if (locals.filters.text || locals.filters.users.length || locals.filters.forms.length) {\n      await this.update()\n    }\n  }\n\n  async updateAllowedFilters() {\n    const company = await Aeppic.get(document.a[0])\n    locals.allowFilterAccounts = await Aeppic.Preferences.getSettingForDocument('bizpin:search:allowFilterAccounts', company)\n    locals.allowFilterOtherAccounts = await Aeppic.Preferences.getSettingForDocument('bizpin:search:allowFilterOtherAccounts', company)\n  }\n\n  async updateAvailableForms() {\n    const company = await Aeppic.get(document.a[0])\n    const forms = await Aeppic.Preferences.getSettingForDocument('bizpin:search:forms', company)\n\n    if (!forms) {\n      locals.formSelectorSettings.filter.base = ''\n      locals.availableFilters.forms = []\n      return\n    }\n\n    locals.availableFilters.forms = forms\n\n    this.formIdsToFind.push(...forms.map(form => form.id))\n    locals.formSelectorSettings.filter.base = forms.map(form => `id:${form.id}`).join(' OR ')\n  }\n\n  async getInitialFilters() {\n    const persisted = await this._loadPersistedSearch()\n\n    const users = locals.allowFilterOtherAccounts ? persisted.users : null\n\n    const filters = {\n      text: persisted.text || '',\n      forms: persisted.forms || [],\n      users: users || [],\n      types: {\n        modified: true,\n        created: true\n      },\n      ancestorId: persisted.ancestorId || ''\n    }\n\n\n    // if (Aeppic.ProfilePage && Aeppic.ProfilePage.f.id === this.FORMS.Mitarbeiter) {\n    //   filters.users.push(Aeppic.ProfilePage)\n    // }\n\n    return filters\n  }\n\n  async toggleFilter(key, documentALike) {\n    if (!documentALike) {\n      return\n    }\n\n    const index = locals.filters[key].findIndex(d => d.id === documentALike.id)\n\n    if (index === -1) {\n      locals.filters[key].push(documentALike)\n    } else {\n      locals.filters[key].splice(index, 1)\n    }\n\n    await this.update()\n  }\n\n  async addFilter(key, documentALike) {\n    if (!documentALike) {\n      return\n    }\n\n    const includes = locals.filters[key].includes(d => d.id === documentALike.id)\n    \n    if (!includes) {\n      locals.filters[key].push(documentALike)\n    }\n\n    await this.update()\n  }\n\n  async removeFilter(key, documentALike) {\n    if (!documentALike) {\n      return\n    }\n\n    const index = locals.filters[key].findIndex(d => d.id === documentALike.id)\n    \n    if (index !== -1) {\n      locals.filters[key].splice(index, 1)\n    }\n\n    await this.update()\n  }\n\n  loadMore() {\n    locals.search.size += 30\n\n    this.update()\n  }\n  \n  update() {\n    this.debounceUpdate()\n  }\n\n  async _update() {\n    if (locals.search.loading) {\n      if (this._updateRunning) {\n        clearTimeout(this._updateRunning)\n      }\n\n      this._updateRunning = Aeppic.setTimeout(() => {\n        this.update()\n      }, 200) \n\n      return\n    }\n\n    this._updateRunning = null\n    locals.search.loading = true\n\n    const queryStrings = await this._buildQuery()\n\n    locals.$_query = queryStrings\n\n    console.log('updating...', queryStrings)\n\n    const searchResult  = await this._getSearchResults(queryStrings)\n  \n    locals.search.maximumSizeOfAnyResult = searchResult.biggestResultSize\n    locals.searchResults = searchResult.documents\n\n    locals.search.loading = false\n    locals.search.executed = true\n\n    this._persistSearch()\n  }\n\n  _persistSearch() {\n    if (params.noPersist) {\n      return\n    }\n\n    const documentId = Aeppic.Root.params ? Aeppic.Root.params.pageDocumentId : document.id\n\n    Aeppic.navigateTo(documentId, { \n      ...Aeppic.Root.params.queryParams, \n      ...{\n        q: locals.filters.text,\n        qF: locals.filters.forms.map(f => f.id).join('_'),\n        qU: locals.filters.users.map(u => u.id).join('_'),\n        qA: locals.filters.ancestorId\n      }\n    })\n  }\n\n  async _loadPersistedSearch() {\n    if (!Aeppic.Root.params || !Aeppic.Root.params.queryParams) {\n      return {}\n    }\n\n    const { q, qF, qU, qA } = Aeppic.Root.params.queryParams\n\n    const users = qU ? await Aeppic.getAll(qU.split('_')) : []\n    const forms = qF ? await Aeppic.getAll(qF.split('_')) : []\n\n    return {\n      users: users.filter(d => d != null),\n      forms: forms.filter(d => d != null),\n      text: q,\n      ancestorId: qA\n    }    \n  }\n\n  async _buildQuery() {\n    // 2 queries are going to be build. One more precise and a less precise.\n\n    const topLimit = document.a[0] ? `a:${document.a[0]}` : `a_forms:${this.FORMS.Company}`\n\n    const genericParts = [topLimit]\n    const preciseParts = []\n    const looseParts = []\n\n    if (locals.filters.ancestorId) {\n      genericParts.push(`a:${locals.filters.ancestorId}`)\n    }\n\n    const forms = locals.filters.forms.length ? locals.filters.forms : locals.availableFilters.forms\n\n    if (forms) {\n      const subParts = []\n\n      for (const form of forms) {\n        subParts.push(`f.id:${form.id}`)\n      }\n\n      if (subParts.length) {\n        genericParts.push(`(${subParts.join(' OR ')})`)\n      }\n    }\n\n    if (locals.filters.text) {\n      const filterQueryObject = this._buildFilterQuery(locals.filters.text)\n      console.log(filterQueryObject)\n\n      preciseParts.push(filterQueryObject.precise)\n      looseParts.push(filterQueryObject.loose)\n    }\n\n    if (locals.filters.users.length) {\n      const accounts = await this._getAccountsForUsers(locals.filters.users)\n\n      const subParts = []\n\n      for (const account of accounts) {\n        if (locals.filters.types.modified) {\n          subParts.push(`modified.by:${account.id}`)\n        }\n\n        if (locals.filters.types.created) {\n          subParts.push(`created.by:${account.id}`)\n        }\n      }\n\n      if (subParts.length) {\n        genericParts.push(`(${subParts.join(' OR ')})`)\n      }\n    }\n\n    const genericQuery = genericParts.join(' ')\n\n    return {\n      precise: `${genericQuery} ${preciseParts.join(' ')}`,\n      loose: `${genericQuery} ${looseParts.join(' ')}`,\n    }\n  }\n\n  async _getAccountsForUsers(users) {\n    const promises = []\n    const accounts = []\n\n    for (const user of users) {\n      const promise = Aeppic.findOne(`p:${user.id} f.id:${this.FORMS.Account}`).then(account => account && accounts.push(account))\n\n      promises.push(promise)\n    }\n\n    await Promise.all(promises)\n\n    return accounts\n  }\n\n  _buildFilterQuery(rawFilter) {\n    const parts = {\n      precise: [],\n      loose: []\n    }\n\n    const filter = rawFilter.trim().replace(/\\s{2,}/g, ' ')\n\n    if (filter !== '') {\n      if (filter.indexOf(':') === -1) {\n        filter.split(/\\s/).map((part) => {\n          parts.precise.push(`${part}*`)\n          parts.loose.push(`*${part}*`)\n        })\n      } else {\n        parts.precise.push(filter)\n      }\n    }\n\n    return {\n      precise: parts.precise.join(' AND '),\n      loose: parts.loose.join(' AND ')\n    }\n  }\n\n  async _getSearchResults(queries) {\n    const options = {\n      sort: [{\n          field: 'modified.at',\n          descending: true\n        }, \n        'data.name'\n      ],\n      size: 100,\n      searchAllFields: true\n    }\n\n    let allResultsFiltered = false\n\n    const morePreciseSearchFn = async () => {\n      const docs = await Aeppic.find(queries.precise, options)\n\n      const filtered = docs.filter(doc => this._filter(doc))\n\n      if (docs.length === options.size && filtered.length === 0) {\n        allResultsFiltered = true\n      }\n\n      console.log(`precise: found ${docs.length} and filtered to ${filtered.length}`)\n      return filtered\n    }\n\n    const lessPreciseSearchFn = async () => {\n      const docs = await Aeppic.find(queries.loose, options)\n\n      const filtered = docs.filter(doc => this._filter(doc))\n\n      if (false) {\n        // TODO: this sorts by formId\n        const sorted = docs.sort((a, b) => {\n          return this.formIdsToFind.findIndex(fId => fId === a.f.id) - this.formIdsToFind.findIndex(fId => fId === b.f.id)\n        })\n\n        console.log(sorted.map(s => s && s.f.text))\n      }\n\n      if (docs.length === options.size && filtered.length === 0) {\n        allResultsFiltered = true\n      }\n\n      console.log(`loose: found ${docs.length} and filtered to ${filtered.length}`)\n      return filtered\n    }\n\n    const searches = []\n\n    if (false) {\n      searches.push(morePreciseSearchFn())\n    }\n\n    searches.push(lessPreciseSearchFn())\n\n    let resultSets = await Promise.all(searches)\n\n    if (allResultsFiltered) {\n      console.log('increasing search size to 500')\n      options.size = 500\n\n      const increasedSearches = []\n\n      if (false) {\n        increasedSearches.push(morePreciseSearchFn())\n      }\n\n      increasedSearches.push(lessPreciseSearchFn())\n\n      resultSets = await Promise.all(increasedSearches)\n    }\n  \n    const results = resultSets.flat()\n\n    const resultsWithoutDuplicates = results.reduce((prev, cur) => {\n      if (!prev.find(doc => doc.id === cur.id)) {\n        prev.push(cur)\n      }\n\n      return prev\n    }, [])\n\n    const preciseResultSize = resultSets[0]?.length || 0\n    const looseResultSize = resultSets[1]?.length || 0\n    const biggestResultSize = preciseResultSize > looseResultSize ? preciseResultSize : looseResultSize\n\n    return { documents: resultsWithoutDuplicates, biggestResultSize } \n  }\n\n  _filter(doc) {\n    return this.formIdsToFind.includes(doc.f.id)\n  }\n\n  async resetUsers() {\n    locals.filters.users = []\n\n    await this.update() \n  }\n\n\n  async resetFilterForms() {\n    locals.filters.forms = []\n\n    await this.update() \n  }\n\n  async setUsersToMe() {\n    locals.filters.users = [await Aeppic.ProfilePage]\n\n    await this.update()\n  }\n\n  // async addUser(documentALike) {\n  //    if (!documentALike) {\n  //     return\n  //   }\n\n\n  //   if (this.currentUserIsFiltered) {\n  //     locals.filters.users = []\n  //   }\n\n  //   const includes = !!locals.filters.users.find(d => d.id === documentALike.id)\n    \n  //   if (!includes) {\n  //     locals.filters.users.push(documentALike)\n  //   }\n\n  //   await this.update()\n  // }\n\n  get otherUsersThanMeSelected() {\n    return locals.filters.users.length > 1 || (locals.filters.users.length === 1 && !this.currentUserIsFiltered)\n  }\n\n  get currentUserIsFiltered() {\n    return locals.filters.users.length === 1 && locals.filters.users[0].id === Aeppic.ProfilePage.id\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-05-08T08:50:48+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2021-11-04T15:48:59+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1636040939946,"ct":1588927848566,"a_depth":4,"a":["apps","9302d29e-bf32-4350-a5fd-18b542d1b5db","97851ae4-ed6d-45fa-b1a0-4cab2145f189","5d0ac040-1428-48bc-9b4f-28c69e098b3c"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"3ef3694c-a683-4466-a425-d8e44b8355ed","v":"5454f19e97a920db","previous":{"v":"dd20232543d09fc2"},"p":"06971b6e-2e82-40e0-9121-3bb78611fc4a","f":{"id":"design-form","v":"0061789efb5c5c29","text":"Design"},"data":{"name":"page","template":"<div v-if=\"typeof locals.isManager === 'boolean'\" @toolbar.prevent=\"controller.toolbar($event.detail)\">\n  <ae-design class=\"_CSS-body\" v-if=\"locals.isManager\" name=\"page__manager\" :document=\"document\" :params=\"params\" v-on=\"$listeners\" :param-show-overview=\"locals.view.overview\"></ae-design>\n  <ae-design class=\"_CSS-body\" v-else name=\"page__receipient\" :document=\"document\" :params=\"params\" v-on=\"$listeners\"></ae-design>\n</div>\n\n","css":"._CSS {\n  padding: var(--bp-page-content-padding);\n}\n\n._CSS-body {\n  max-width: var(--ae-page-max-width);\n  margin: auto;\n}","controller":"class Controller {\n  async init() {\n    locals.view = {\n      overview: false,\n    }\n    locals.isManager = null\n\n    locals.isManager = (await Aeppic.Actions.run(['7c4c6268-b24a-43c4-b876-a2a07f13942c'], { Account: Aeppic.Account, target: document }))[0].value\n\n    console.log({ isManager: locals.isManager })\n  }\n\n  toolbar(event) {\n    if (event === 'view_overview_true') {\n      locals.view.overview = true\n    }\n    if (event === 'view_overview_false') {\n      locals.view.overview = false\n    }\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-11-19T13:53:44+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-02-01T12:15:49+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1675253749960,"ct":1605794024415,"a_depth":4,"a":["apps","f416e371-07cc-4987-a6de-5934ef5ff3e4","1096c5df-2773-4914-9455-dc54e0f3e0e5","06971b6e-2e82-40e0-9121-3bb78611fc4a"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"42100437-84e0-4b2d-a30d-b08d94e52dfa","v":"80f0da3b417492b8","previous":{"v":"initial"},"p":"f85fbba8-1232-4ec7-9ca8-da9fc5b14109","f":{"id":"design-form","v":"0061789efb5c5c29","text":"Design"},"data":{"name":"page","template":"<ae-list :root-document-id=\"document.id\"\n          query-id=\"f812861f-68c8-4818-9972-be7b5474c9b1\"\n          list-id=\"2e798091-303f-406b-a42a-93aa1cd8425c\"\n          @selected=\"Aeppic.drillInto($event)\"\n></ae-list>","css":"._CSS {\n  padding: var(--bp-page-content-padding);\n}","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-11-27T12:29:20+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2020-11-27T12:30:36+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1606480236517,"ct":1606480160528,"a_depth":4,"a":["apps","f416e371-07cc-4987-a6de-5934ef5ff3e4","1096c5df-2773-4914-9455-dc54e0f3e0e5","f85fbba8-1232-4ec7-9ca8-da9fc5b14109"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"43bb001f-ff5b-43bc-b7c4-b2019af36790","v":"87f64602c33bade7","previous":{"v":"initial"},"p":"b32fed0d-d54f-47ac-9174-cc42cfa585e5","f":{"id":"design-form","v":"3385ac6766f32638","text":"Design"},"data":{"name":"page","template":"<ae-list  list-id=\"table-list\"\n          :root-document-id=\"document.id\"\n          query-id=\"f812861f-68c8-4818-9972-be7b5474c9b1\"\n          :filter=\"'f.id:' + locals.FORMS.Wartung\"\n          :param-list-form-id=\"locals.FORMS.Wartung\"\n          @selected=\"Aeppic.drillInto($event, arguments[1])\"\n          :search-options=\"{ searchAllFields: true, size: 9999 }\"\n></ae-list>\n","css":"","controller":"init() {\n  this.FORMS = {\n    Wartung: 'c211ffaa-14f8-4439-9126-f42f65ac4424'\n  }\n\n  locals.FORMS = this.FORMS\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-03-03T14:02:27+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-03-03T14:04:17+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1646316257023,"ct":1646316147538,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","b32fed0d-d54f-47ac-9174-cc42cfa585e5"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"44e39f97-f90e-4a42-a368-230cf0462821","v":"afba8c4f4974e4bb","previous":{"v":"f726f86e924ae6f2"},"p":"83204a3e-ce65-4c74-9c6c-ea659224610d","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"page","template":"<div class=\"p-1\">\n  <ae-list list-id=\"2e798091-303f-406b-a42a-93aa1cd8425c\"\n            :root-document-id=\"document.id\"\n            query-id=\"f812861f-68c8-4818-9972-be7b5474c9b1\"\n            filter=\"f.id:3d678f2a-65f5-4dc1-a643-c5998fa33f32\"\n            @selected=\"Aeppic.drillInto($event, arguments[1])\"\n  ></ae-list>\n</div>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-04-05T12:59:21+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-04-05T13:41:37+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1649166097953,"ct":1649163561318,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","83204a3e-ce65-4c74-9c6c-ea659224610d"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"45782e0e-00b5-43ca-accd-843adb4a6849","v":"00eca02386669f5c","p":"5bb66c24-a34f-4ed4-8319-0b2e28ee4e73","f":{"id":"design-form","v":"22a757f630104010","text":"Design"},"data":{"name":"page","template":"<div class=\"flex flex-col\">\n  <ae-form :document=\"document\" :auto-save=\"true\"></ae-form>\n\n    <ae-layout  layout-id=\"a2cd7699-9b46-494f-8f89-cb1f62151d82\"\n                param-text=\"Zurück zur Wartung\"\n                @selected=\"Aeppic.navigateTo(document.a[document.a_forms.findIndex(aForm => aForm === '816b2d0e-5158-4f0c-a5cf-6069bb76de69')])\"\n                :param-disabled=\"params.readonly\"\n                class=\"self-center mt-8\"\n    ></ae-layout>\n</div>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2025-08-06T13:09:17+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2025-08-06T13:09:17+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1754485772736,"ct":1754485772736,"a_depth":4,"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","d86dc31e-ad2c-45b7-8606-a6ce35580b10","5bb66c24-a34f-4ed4-8319-0b2e28ee4e73"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[],"previous":{"v":"initial","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"}},"meta":{"modified":{"at":"2025-08-06T13:09:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"f":{"id":"design-form","v":"e3fe9ece11aabc5e","text":"Design"},"p":"34175cf3-8f6f-4eaf-ab75-b4dbd1c0b509","data":{"name":"page","applies":"","template":"<div layout=\"column\" flex layout-padding>\n  <document-list list-id=\"70dee5f4-9b1b-44d1-9689-56e819eeaf55\"  uery-id=\"{{data.events.id}}\" query=\"f.id:dcf7ec7a-fde9-4dd2-b861-90a3a81ab01c\" root-document-id=\"{{document.id}}\" page-size=\"1000\" layout=\"column\" flex></document-list>   \n</div>\n"},"id":"461838a8-e870-43b6-8ec4-fa7df8d916e0","v":"79329cc6fe6e9cfe","t":1467644304922,"ct":1467644302883,"previous":{"v":"335b50c975478827"},"modified":{"at":"2017-09-15T10:29:32+02:00","by":"","from":"","client":"import"},"created":{"at":"2017-09-15T10:29:32+02:00","by":"","from":"","client":"import"},"locks":[],"lockRefs":[],"inheritedLocks":[null,null,null,null,null],"a":["apps","21ba9d78-2545-4495-a24b-129f934de2f1","252f693f-4fdd-4aa4-8185-95c2e0539c62","34175cf3-8f6f-4eaf-ab75-b4dbd1c0b509"],"a_forms":["folder","application-form","form-folder","form"],"a_depth":4,"stamps":[]},{"id":"4676c90c-b069-4b84-8a2b-71e90e2f2f41","v":"f7ba417a8c8536f5","previous":{"v":"218fe4496c42e28a"},"p":"3b0389d0-78b1-4e26-adf0-20086c87ae40","f":{"id":"design-form","v":"49954170df6a253b","text":"Design"},"data":{"name":"page","template":"<ae-list list-id=\"2dab232c-2c8a-4aa4-b3f9-6023a7116161\"\n          query-id=\"f812861f-68c8-4818-9972-be7b5474c9b1\"\n          :root-document-id=\"document.id\"\n          @selected=\"Aeppic.drillInto($event)\"\n          param-min-column-width=\"1fr\"\n          param-design=\"search-title\"\n          :param-design-params=\"{ hidePath: true }\"\n          class=\"_CSS-list\">\n</ae-list>\n\n<ae-layout layout-id=\"582baf96-ad3a-4e6a-a77c-84509a6f4a0a\"></ae-layout>","css":"._CSS {\n  padding: var(--bp-page-content-padding);\n  /* max-width: 40%; */\n}\n\n._CSS-list > * > .ae-design {\n  background: var(--ae-background);\n  padding: 0.5em 1em;\n  cursor: pointer;\n}\n\n._CSS-list > * > .ae-design:hover {\n  background: rgba(0,0,0,0.2)\n}\n\n._CSS-info {\n  \n}","controller":"","packages":[],"description":""},"locks":[],"created":{"at":"2019-05-03T14:14:36+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2021-09-24T09:01:54+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1632474114340,"ct":1556885676870,"a_depth":4,"a":["apps","94a64d89-d204-4918-b147-d717914fb03e","f254ce25-42f1-4333-8ee7-23554bf746c1","3b0389d0-78b1-4e26-adf0-20086c87ae40"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"46bd3557-23a1-4d16-a277-5940a0299555","v":"8ff4fafc51fad6ba","previous":{"v":"226461261b1019ef"},"p":"5d69e79e-f8d7-48f3-8631-d50c6025dda6","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"page","template":"<div class=\"p-2\">\n  <ae-list class=\"max-w-xl m-auto\"\n            list-id=\"2dab232c-2c8a-4aa4-b3f9-6023a7116161\"\n            :root-document-id=\"document.id\" \n            query-id=\"f812861f-68c8-4818-9972-be7b5474c9b1\"\n            filter=\"f.id:b433eabd-abe6-4564-940f-a918f71037fb\"\n            @selected=\"Aeppic.drillInto($event, arguments[1])\"\n            :params=\"{ design: 'card,search-card', gap: 'small', minColumnWidth: '100%' }\"\n  ></ae-list>\n</div>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-04-21T12:33:15+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-09-26T13:41:55+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1664199715423,"ct":1650544395733,"a_depth":4,"a":["apps","86189c5a-b9f4-445a-879f-d94574960df0","15292d56-6806-4263-b6d0-9194687203e1","5d69e79e-f8d7-48f3-8631-d50c6025dda6"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"48266eb0-2ca9-4043-b5d9-882e5146da76","v":"a6f0f0211f0b3147","previous":{"v":"e9f7a2fd2c9cd54b"},"p":"3592ceee-ae9a-47a9-8488-7bad5b0d9ff5","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"page","template":"<template v-if=\"locals.ready\">\n  <ae-design v-if=\"locals.isVerwalter\" ref=\"page\" @toolbar.native=\"controller.dispatchEventChildren('page', 'toolbar', $event.detail)\" name=\"page--administator\" :document=\"document\" :params=\"params\" v-on=\"$listeners\"></ae-design>\n  <ae-design v-else name=\"page--worker\" ref=\"page\" @toolbar.native=\"controller.dispatchEventChildren('page', 'toolbar', $event.detail)\" :document=\"document\" :params=\"params\" v-on=\"$listeners\"></ae-design>\n</template> ","css":"","controller":"class Controller {\n  async init() {\n    locals.ready = false\n    \n    locals.isVerwalter = false\n    locals.isVerwalter = (await Aeppic.Commands.execute('950f35d3-95ba-4d5a-a164-0074c767d600', document, { Account: Aeppic.Account })).value\n    \n    locals.ready = true\n  }\n\n   dispatchEventChildren(refName, eventName, eventValue) { \n    if (!$refs[refName] || !$refs[refName].$el || !$refs[refName].$el.children) {\n      return\n    }\n    const children = $refs[refName].$el.children\n    for (let i = 0; i < children.length; i++) {\n      children[i].dispatchEvent(new CustomEvent(eventName, {\n        detail: eventValue\n      }))\n    }\n    $refs[refName].$emit(eventName, eventValue)\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-03-31T15:00:50+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-04-19T13:22:37+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1650374557680,"ct":1648810104092,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","3592ceee-ae9a-47a9-8488-7bad5b0d9ff5"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"533744b0-cc56-4614-8850-6e32544ebccf","v":"37034b72b1a681b6","p":"11b48436-fdf2-487e-883c-0de21afd3817","f":{"id":"design-form","v":"24435d748c76f819","text":"Design","client":"server"},"data":{"name":"page","template":"<ae-list  list-id=\"2dab232c-2c8a-4aa4-b3f9-6023a7116161\"\n          query-id=\"f812861f-68c8-4818-9972-be7b5474c9b1\"\n          :root-document-id=\"document.id\"\n          @selected=\"Aeppic.navigateTo($event)\"\n          param-min-column-width=\"1fr\"\n          param-design=\"search-title\"\n          :param-design-params=\"{ hidePath: true }\"\n          class=\"_CSS-list\"\n          >\n</ae-list>\n","css":"._CSS {\n  padding: var(--bp-page-content-padding);\n  /* max-width: 40%; */\n}\n\n._CSS-list > * > .ae-design {\n  background: var(--ae-background);\n  padding: 0.5em 1em;\n  cursor: pointer;\n}\n\n._CSS-list > * > .ae-design:hover {\n  background: rgba(0,0,0,0.2)\n}","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2019-04-04T10:01:15+00:00","by":"2695f56c-96e6-4009-8e2f-d545ea1e02aa","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2019-04-04T10:01:15+00:00","by":"2695f56c-96e6-4009-8e2f-d545ea1e02aa","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1554372075641,"ct":1554372075641,"a_depth":4,"a":["apps","9c1db9f8-e61a-46ef-9fb2-ca409e980f45","83e0eafe-40b0-4a4d-a4bf-88940f2d098b","11b48436-fdf2-487e-883c-0de21afd3817"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[],"previous":{"v":"initial","f":{"id":"design-form","v":"49954170df6a253b","text":"Design"}}},{"id":"533c13cb-e3bf-42c6-815c-1f762880671a","v":"initial","p":"0a985995-9335-45ae-a549-457fd9c4b9cc","f":{"id":"design-form","v":"2d98bf27c3108340","text":"Design"},"data":{"name":"page","applies":"","description":"","template":"<ae-design  name=\"preview\"\n            :document=\"document.data.template\"\n            :param-view-data=\"data\"\n></ae-design>\n\n","css":"._CSS {\n  display: flex;\n}","controller":"","packages":[]},"locks":[],"created":{"at":"2018-10-30T12:56:55+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2018-10-30T12:56:55+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1540904215979,"ct":1540904215978,"a_depth":5,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","1116d922-d8df-4da5-a7c2-70191d07d929","5cdd2d20-7676-43e3-8997-e176dd3434ed","0a985995-9335-45ae-a549-457fd9c4b9cc"],"a_forms":["folder","application-form","folder","form-folder","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"58773987-bde8-4f81-bccc-37a06c0b0a90","v":"c2c9a4e934094f33","cloneOf":{"id":"31a31a8d-dbb9-42cd-8b20-2f9d21895721","v":"dabf9224d9d07d47","text":"page"},"originalCloneOf":{"id":"31a31a8d-dbb9-42cd-8b20-2f9d21895721","v":"dabf9224d9d07d47","text":"page"},"previous":{"v":"c30774e4e3dac907"},"p":"573419c5-1ab4-43c9-94ba-a831ae580d6a","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"page","template":"<ae-list  list-id=\"table-list\"\n          :root-document-id=\"document.id\"\n          query-id=\"f812861f-68c8-4818-9972-be7b5474c9b1\"\n          filter=\"f.id:5a88c3ad-ed61-473d-8c2d-2ce4f54db7f2\"\n          :params=\"{ columns: 'data.name' }\"\n></ae-list>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-10-06T12:53:17+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2021-10-06T13:28:48+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1633526928218,"ct":1633524797935,"a_depth":4,"a":["apps","1887a103-bf3b-473c-8cb7-4f1afad0286b","9b02b1b6-e32b-41ec-b451-dba59bc5847b","573419c5-1ab4-43c9-94ba-a831ae580d6a"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"5a63232f-9d23-40d9-9e3d-542c4c759fbe","v":"f934ea7271bd1fa0","previous":{"v":"093a56dca64679b8","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"}},"p":"cdf93f5b-9bea-494d-99e1-a7dd39d91586","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"page","template":"<ae-list  list-id=\"table-list\"\n          :root-document-id=\"document.id\"\n          query-id=\"f812861f-68c8-4818-9972-be7b5474c9b1\"\n          :filter=\"'f.id:' + locals.FORMS.Teil\"\n          :param-list-form-id=\"locals.FORMS.Teil\"\n          @selected=\"Aeppic.drillInto($event, arguments[1])\"\n          :search-options=\"{ searchAllFields: true, size: 9999 }\"\n          param-columns=\"data.nummer,data.beschreibung\"\n          param-fixed-column-widths=\"100,\"\n></ae-list>\n ","css":"","controller":"class Controller {\n  init() {\n    this.FORMS = {\n      Teil: '0dfd4afd-f2ec-4ff0-9a79-811badf4fed5'\n    }\n    locals.FORMS = this.FORMS\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-04-07T14:42:29+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-04-14T11:07:36+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1716458153182,"ct":1716458153182,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","cdf93f5b-9bea-494d-99e1-a7dd39d91586"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[],"meta":{"modified":{"at":"2024-05-23T09:55:53+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"5c1a5183-8a8a-48f4-9898-f1f53f5d95ae","v":"b35db9cdb29a08da","previous":{"v":"f1c3977e8c1d4013"},"p":"522ca40d-810b-4021-835f-beeace3af7fa","f":{"id":"design-form","v":"3385ac6766f32638","text":"Design"},"data":{"name":"page","template":"<template v-if=\"locals.ready\">\n  <ae-design v-if=\"locals.isVerwalter\" ref=\"page\" @toolbar.native=\"controller.dispatchEventChildren('page', 'toolbar', $event.detail)\" name=\"page--administator\" :document=\"document\" :params=\"params\" v-on=\"$listeners\"></ae-design>\n  <ae-design v-else name=\"page--worker\" ref=\"page\" @toolbar.native=\"controller.dispatchEventChildren('page', 'toolbar', $event.detail)\" :document=\"document\" :params=\"params\" v-on=\"$listeners\"></ae-design>\n</template> ","css":"","controller":"class Controller {\n  async init() {\n    locals.ready = false\n    \n    locals.isVerwalter = false\n    locals.isVerwalter = (await Aeppic.Commands.execute('950f35d3-95ba-4d5a-a164-0074c767d600', document, { Account: Aeppic.Account })).value\n    \n    locals.ready = true\n  }\n\n   dispatchEventChildren(refName, eventName, eventValue) { \n    if (!$refs[refName] || !$refs[refName].$el || !$refs[refName].$el.children) {\n      return\n    }\n    const children = $refs[refName].$el.children\n    for (let i = 0; i < children.length; i++) {\n      children[i].dispatchEvent(new CustomEvent(eventName, {\n        detail: eventValue\n      }))\n    }\n    $refs[refName].$emit(eventName, eventValue)\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-03-31T14:30:53+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-04-19T12:40:28+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1650372028184,"ct":1648737053829,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","522ca40d-810b-4021-835f-beeace3af7fa"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"5e6850eb-7355-47de-95bc-43029ec15728","v":"initial","p":"5e447a00-40e9-4881-b4e8-06cad2c28bba","f":{"id":"design-form","v":"baf08f1171a94bca","text":"Design"},"data":{"name":"page","template":"<ae-list  list-id=\"6f7ccf06-9f61-4ebf-b405-f2be582d6b05\"\n          :documents=\"locals.projects\"\n></ae-list>","css":"","controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Payment: 'e10a8072-024c-44a7-80e3-4cd75c6ec1ea',\n      Contract: '859f370d-2f40-4ab0-a841-134f57513254',\n      Project: '98c77209-1245-43d6-90b5-8625183f470c'\n    }\n\n    locals.projects = []\n\n    locals.projects = await Aeppic.find(`a:${document.a[0]} f.id:${this.FORMS.Project}`, { size: 9999, sort: { field: 'data.name', descending: true }})\n    // await this.getHistory(locals.projects)\n  }\n\n  // async getHistory(projects) {\n  //   const histories = await Promise.all(projects.forEach(async (project) => {\n  //     const history = await Aeppic.fetch(`/api/docs/${project.id}/history`)\n  //     const historicDocuments = (await history.text()).trim().split('\\n').filter(d => d != null).map(d => JSON.parse(d))\n  //     return historicDocuments\n  //   }))\n\n  //   console.log(histories)\n  // }\n}\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-01-05T15:11:45+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-01-05T15:11:45+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1609859505325,"ct":1609859505325,"a_depth":4,"a":["apps","bfeee3b0-ad25-4bba-a51c-01584d72c45a","2fee3f35-6446-483d-aafe-4d2bc1deb83e","5e447a00-40e9-4881-b4e8-06cad2c28bba"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"5f1e0708-25db-4348-85f2-4b5811d75723","v":"5fe6766eb648ac71","previous":{"v":"4289ce895b9af975"},"p":"4df0ebf7-c439-48d3-8a57-eef59bcfa250","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"page","applies":"","template":"<div class=\"_CSS-body-container\" @toolbar=\"controller.toolbarEvent($event.detail)\">\n  <div class=\"_CSS-body\" :class=\"{ '_CSS-body--full': locals.view === 'milestones' }\">\n    <div v-if=\"locals.view === 'projects'\" class=\"_CSS-body__column\">\n      <ae-design name=\"projects\"\n                 :document=\"document\"\n                 :param-show-done=\"locals.showDone\"\n                 :param-show-details=\"locals.showDetails\"\n      ></ae-design>\n    </div>\n    <div v-else-if=\"locals.view === 'calendar'\" class=\"_CSS-body__column\">\n      <ae-design name=\"calendar\"\n                 :document=\"document\"\n      ></ae-design>\n    </div>\n    <div v-else-if=\"locals.view === 'milestones'\" class=\"_CSS-body__column\">\n      <ae-design name=\"milestones\"\n                 :document=\"document\"\n      ></ae-design>\n    </div>\n  </div>\n</div>\n","css":"._CSS-body-container {\n  padding: var(--bp-page-content-padding);\n  xpadding-top: 12px;\n\n  /* full page */\n  position: absolute;\n  xtop: 48px;\n  top: 0;\n  bottom: 0;\n  left: 0;\n  right: 0;\n}\n\n._CSS-body {\n  max-width: 1000px;\n  margin: auto;\n}\n\n._CSS-body--full {\n  max-width: 100%;\n}\n\n._CSS-body__column {\n  flex: 1;\n  min-width: 0;\n\n  display: flex;\n  flex-direction: column;\n}\n","controller":"class Controller {\n  init() {\n    locals.showDone = false\n    locals.showDetails = false\n\n    locals.view = 'projects'\n  }\n\n  toolbarEvent(eventType) {\n    if (eventType === 'view_details_true') {\n      locals.showDetails = true\n      return\n    }\n    if (eventType === 'view_details_false') {\n      locals.showDetails = false\n      return\n    }\n    if (eventType === 'view_done_true') {\n      locals.showDone = true\n      return\n    }\n    if (eventType === 'view_done_false') {\n      locals.showDone = false\n      return\n    }\n    if (eventType === 'view_calendar') {\n      locals.view = 'calendar'\n      return\n    }\n    if (eventType === 'view_projects') {\n      locals.view = 'projects'\n      return\n    }\n    if (eventType === 'view_milestones') {\n      locals.view = 'milestones'\n      return\n    }\n  }\n}","packages":[]},"locks":[],"created":{"at":"2019-02-11T15:48:05+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2021-01-29T13:56:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1611928592079,"ct":1549900085258,"a_depth":4,"a":["apps","5acfd7a2-33e4-498a-9150-71e1ab772bfc","20c92864-6a81-4006-96f9-b78f473cd129","4df0ebf7-c439-48d3-8a57-eef59bcfa250"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"5f4dbf45-6288-417e-a805-6e98cccfbf17","v":"3a6ff94224366f8b","p":"55b76650-8f79-4cb4-bfb2-9e46ad80853d","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"page","template":"<h2>\n\tBasic Use\n</h2>\n\n<ae-icon class=\"fas fa-camera-retro\"></ae-icon>\n\n<div style=\"font-size:3em; color:Tomato\">\n\t<ae-icon class=\"fas fa-camera-retro\"></ae-icon>\n</div>\n\n<h1>\n\tAdditional Styling\n</h1>\n\n<h2>\n\tIcon Sizes\n</h2>\n\n<ae-icon class=\"fas fa-camera-retro fa-xs\"></ae-icon>\n<ae-icon class=\"fas fa-camera-retro fa-sm\"></ae-icon>\n<ae-icon class=\"fas fa-camera-retro fa-lg\"></ae-icon>\n<ae-icon class=\"fas fa-camera-retro fa-2x\"></ae-icon>\n<ae-icon class=\"fas fa-camera-retro fa-3x\"></ae-icon>\n<ae-icon class=\"fas fa-camera-retro fa-5x\"></ae-icon>\n<ae-icon class=\"fas fa-camera-retro fa-7x\"></ae-icon>\n<ae-icon class=\"fas fa-camera-retro fa-10x\"></ae-icon>\n\n<h2>\n\tFixed Width Icons\n\n</h2>\n\n<div>\n\t<ae-icon class=\"fas fa-home fa-fw\" style=\"background:MistyRose\"></ae-icon> Home</div>\n<div>\n\t<ae-icon class=\"fas fa-info fa-fw\" style=\"background:MistyRose\"></ae-icon> Info</div>\n<div>\n\t<ae-icon class=\"fas fa-book fa-fw\" style=\"background:MistyRose\"></ae-icon> Library</div>\n<div>\n\t<ae-icon class=\"fas fa-pencil-alt fa-fw\" style=\"background:MistyRose\"></ae-icon> Applications</div>\n<div>\n\t<ae-icon class=\"fas fa-cog fa-fw\" style=\"background:MistyRose\"></ae-icon> Settings</div>\n\n<h2>\n\tList Icons\n\n</h2>\n\n<ul class=\"fa-ul\">\n\t<li><span class=\"fa-li\"><ae-icon class=\"fas fa-check-square\"></ae-icon></span>List icons can</li>\n\t<li><span class=\"fa-li\"><ae-icon class=\"fas fa-check-square\"></ae-icon></span>be used to</li>\n\t<li><span class=\"fa-li\"><ae-icon class=\"fas fa-spinner fa-pulse\"></ae-icon></span>replace bullets</li>\n\t<li><span class=\"fa-li\"><ae-icon class=\"far fa-square\"></ae-icon></span>in lists</li>\n</ul>\n\n<h2>\n\tBordered & Pulled Icons\n\n</h2>\n\n<ae-icon class=\"fas fa-quote-left fa-2x fa-pull-left fa-border\"></ae-icon>\nGatsby believed in the green light, the orgastic future that year by year recedes before us. It eluded us then, but that’s\nno matter — tomorrow we will run faster, stretch our arms further... And one fine morning — So we beat on, boats against\nthe current, borne back ceaselessly into the past. Animated Icons Use the fa-spin class to get any icon to rotate, and use\nfa-pulse to have it rotate with 8 steps. Works especially well with fa-spinner & everything in the spinner icons category.\n\n<h2>\n\tAnimated Icons\n\n</h2>\n\n<div class=\"fa-3x\">\n\t<ae-icon class=\"fas fa-spinner fa-spin\"></ae-icon>\n\t<ae-icon class=\"fas fa-circle-notch fa-spin\"></ae-icon>\n\t<ae-icon class=\"fas fa-sync fa-spin\"></ae-icon>\n\t<ae-icon class=\"fas fa-cog fa-spin\"></ae-icon>\n\t<ae-icon class=\"fas fa-spinner fa-pulse\"></ae-icon>\n</div>\n\n<h1>\n\tPower Transforms\n</h1>\n<h2>\n\tPower Transforms: Scaling\n</h2>\n\n<div class=\"fa-4x\">\n\t<ae-icon class=\"fas fa-magic\" data-fa-transform=\"shrink-8\" style=\"background:MistyRose\"></ae-icon>\n\t<ae-icon class=\"fas fa-magic\" style=\"background:MistyRose\"></ae-icon>\n\t<ae-icon class=\"fas fa-magic\" data-fa-transform=\"grow-6\" style=\"background:MistyRose\"></ae-icon>\n</div>\n\n<h2>\n\tPower Transforms: Positioning\n</h2>\n\n<div class=\"fa-4x\">\n\t<ae-icon class=\"fas fa-magic\" data-fa-transform=\"shrink-8\" style=\"background:MistyRose\"></ae-icon>\n\t<ae-icon class=\"fas fa-magic\" data-fa-transform=\"shrink-8 up-6\" style=\"background:MistyRose\"></ae-icon>\n\t<ae-icon class=\"fas fa-magic\" data-fa-transform=\"shrink-8 right-6\" style=\"background:MistyRose\"></ae-icon>\n\t<ae-icon class=\"fas fa-magic\" data-fa-transform=\"shrink-8 down-6\" style=\"background:MistyRose\"></ae-icon>\n\t<ae-icon class=\"fas fa-magic\" data-fa-transform=\"shrink-8 left-6\" style=\"background:MistyRose\"></ae-icon>\n</div>\n\n<h2>\n\tPower Transforms: Rotating & Flipping\n\n</h2>\n\n<div class=\"fa-4x\">\n\t<ae-icon class=\"fas fa-magic\" data-fa-transform=\"rotate-90\" style=\"background:MistyRose\"></ae-icon>\n\t<ae-icon class=\"fas fa-magic\" data-fa-transform=\"rotate-180\" style=\"background:MistyRose\"></ae-icon>\n\t<ae-icon class=\"fas fa-magic\" data-fa-transform=\"rotate-270\" style=\"background:MistyRose\"></ae-icon>\n\t<ae-icon class=\"fas fa-magic\" data-fa-transform=\"rotate-30\" style=\"background:MistyRose\"></ae-icon>\n\t<ae-icon class=\"fas fa-magic\" data-fa-transform=\"rotate--30\" style=\"background:MistyRose\"></ae-icon>\n\t<ae-icon class=\"fas fa-magic\" data-fa-transform=\"flip-v\" style=\"background:MistyRose\"></ae-icon>\n\t<ae-icon class=\"fas fa-magic\" data-fa-transform=\"flip-h\" style=\"background:MistyRose\"></ae-icon>\n\t<ae-icon class=\"fas fa-magic\" data-fa-transform=\"flip-v flip-h\" style=\"background:MistyRose\"></ae-icon>\n</div>\n\n<h1>Stacking icons</h1>\n\n<span class=\"fa-stack fa-2x\">\n  <ae-icon class=\"fas fa-square fa-stack-2x\"></ae-icon>\n  <ae-icon class=\"fab fa-twitter fa-stack-1x fa-inverse\"></ae-icon>\n</span>\n<span class=\"fa-stack fa-2x\">\n  <ae-icon class=\"fas fa-circle fa-stack-2x\"></ae-icon>\n  <ae-icon class=\"fas fa-flag fa-stack-1x fa-inverse\"></ae-icon>\n</span>\n<span class=\"fa-stack fa-2x\">\n  <ae-icon class=\"fas fa-square fa-stack-2x\"></ae-icon>\n  <ae-icon class=\"fas fa-terminal fa-stack-1x fa-inverse\"></ae-icon>\n</span>\n<span class=\"fa-stack fa-4x\">\n  <ae-icon class=\"fas fa-square fa-stack-2x\"></ae-icon>\n  <ae-icon class=\"fas fa-terminal fa-stack-1x fa-inverse\"></ae-icon>\n</span>\n<span class=\"fa-stack fa-2x\">\n  <ae-icon class=\"fas fa-camera fa-stack-1x\"></ae-icon>\n  <ae-icon class=\"fas fa-ban fa-stack-2x\" style=\"color:Tomato\"></ae-icon>\n</span>\n\n<h1>\n\tMasking\n</h1>\n\n<div class=\"fa-4x\">\n\t<ae-icon class=\"fas fa-pencil-alt\" data-fa-transform=\"shrink-10 up-.5\" data-fa-mask=\"fas fa-comment\" style=\"background:MistyRose\"></ae-icon>\n\t<ae-icon class=\"fab fa-facebook-f\" data-fa-transform=\"shrink-3.5 down-1.6 right-1.25\" data-fa-mask=\"fas fa-circle\" style=\"background:MistyRose\"></ae-icon>\n\t<ae-icon class=\"fas fa-headphones\" data-fa-transform=\"shrink-6\" data-fa-mask=\"fas fa-square\" style=\"background:MistyRose\"></ae-icon>\n</div>\n<h1>\n\tLayering, Text, & Counters\n</h1>\n\n<div class=\"fa-4x\">\n\t<span class=\"fa-layers fa-fw\" style=\"background:MistyRose\">\n      <ae-icon class=\"fas fa-circle\" style=\"color:Tomato\"></ae-icon>\n      <ae-icon class=\"fa-inverse fas fa-times\" data-fa-transform=\"shrink-6\"></ae-icon>\n    </span>\n\n\t<span class=\"fa-layers fa-fw\" style=\"background:MistyRose\">\n      <ae-icon class=\"fas fa-bookmark\"></ae-icon>\n      <ae-icon class=\"fa-inverse fas fa-heart\" data-fa-transform=\"shrink-10 up-2\" style=\"color:Tomato\"></ae-icon>\n    </span>\n\n\t<span class=\"fa-layers fa-fw\" style=\"background:MistyRose\">\n      <ae-icon class=\"fas fa-play\" data-fa-transform=\"rotate--90 grow-2\"></ae-icon>\n      <ae-icon class=\"fas fa-sun fa-inverse\" data-fa-transform=\"shrink-10 up-2\"></ae-icon>\n      <ae-icon class=\"fas fa-moon fa-inverse\" data-fa-transform=\"shrink-11 down-4.2 left-4\"></ae-icon>\n      <ae-icon class=\"fas fa-star fa-inverse\" data-fa-transform=\"shrink-11 down-4.2 right-4\"></ae-icon>\n    </span>\n\n\t<span class=\"fa-layers fa-fw\" style=\"background:MistyRose\">\n      <ae-icon class=\"fas fa-calendar\"></ae-icon>\n      <span class=\"fa-layers-text fa-inverse\" data-fa-transform=\"shrink-8 down-3\" style=\"font-weight:900\">27</span>\n\t</span>\n\n\t<span class=\"fa-layers fa-fw\" style=\"background:MistyRose\">\n      <ae-icon class=\"fas fa-certificate\"></ae-icon>\n      <span class=\"fa-layers-text fa-inverse\" data-fa-transform=\"shrink-11.5 rotate--30\" style=\"font-weight:900\">NEW</span>\n\t</span>\n\n\t<span class=\"fa-layers fa-fw\" style=\"background:MistyRose\">\n      <ae-icon class=\"fas fa-envelope\"></ae-icon>\n      <span class=\"fa-layers-counter\" style=\"background:Tomato\">1,419</span>\n\t</span>\n</div>\n\n<!-- \n<pre>\n{{locals.testPageHtml}}\n</pre> -->","css":"","controller":"class Controller {\n  init() {\n    // let content = this.howToUsePageContent.replace(/<i/g,'<ae-icon')\n\n    // locals.testPageHtml = content.replace(/<\\/i>/g, '</ae-icon>')\n  }\n\n  get howToUsePageContent() {\n    return `\nBasic Use\nYou can place Font Awesome icons just about anywhere using a CSS style prefix and the icon’s name. Font Awesome is designed to be used with inline elements (we like the <i> tag for brevity, but using a <span> is more semantically correct).\n\n\n<i class=\"fas fa-camera-retro\"></i>\n\nFont Awesome icons automatically inherit CSS size and color. This means they blend in with text inline wherever you put them.\n\n\n<div style=\"font-size:3em; color:Tomato\">\n  <i class=\"fas fa-camera-retro\"></i>\n</div>\n\nNeed to find an icon to use? Check out all 2,177 here.\n\nStyles & Prefixes\nFont Awesome 5 icons can be any of 4 different styles, each with its own prefix.\n\nStyle\tStyle Prefix\tCode\tResult\nSolid\tfas\t<i class=\"fas fa-camera-retro\">\t\nRegular\tfar \t<i class=\"far fa-camera-retro\">\t\nLight\tfal \t<i class=\"fal fa-camera-retro\">\t\nBrands\tfab\t<i class=\"fab fa-font-awesome\">\t\nThe fa prefix has been deprecated in version 5. The new default is the fas solid style and the fab style for brands.\n\nAdditional Styling\nIcon Sizes\n\n<i class=\"fas fa-camera-retro fa-xs\"></i>\n<i class=\"fas fa-camera-retro fa-sm\"></i>\n<i class=\"fas fa-camera-retro fa-lg\"></i>\n<i class=\"fas fa-camera-retro fa-2x\"></i>\n<i class=\"fas fa-camera-retro fa-3x\"></i>\n<i class=\"fas fa-camera-retro fa-5x\"></i>\n<i class=\"fas fa-camera-retro fa-7x\"></i>\n<i class=\"fas fa-camera-retro fa-10x\"></i>\n\nClass\tSize\nfa-xs\t.75em\nfa-sm\t.875em\nfa-lg\t1.33em, also applies vertical-align: -25%\nfa-2x through fa-10x\t2em through 10em\nFixed Width Icons\nUse fa-fw to set icons to the same fixed width. Great to use when varying icon widths would throw off vertical alignment. Especially useful in things like nav lists & list groups. For clarity in the example, we’ve added a background color on the icon so you can see the fixed width.\n\n\n<div><i class=\"fas fa-home fa-fw\" style=\"background:MistyRose\"></i> Home</div>\n<div><i class=\"fas fa-info fa-fw\" style=\"background:MistyRose\"></i> Info</div>\n<div><i class=\"fas fa-book fa-fw\" style=\"background:MistyRose\"></i> Library</div>\n<div><i class=\"fas fa-pencil-alt fa-fw\" style=\"background:MistyRose\"></i> Applications</div>\n<div><i class=\"fas fa-cog fa-fw\" style=\"background:MistyRose\"></i> Settings</div>\n\nList Icons\nUse fa-ul and fa-li to replace default bullets in unordered lists.\n\n\n<ul class=\"fa-ul\">\n  <li><span class=\"fa-li\"><i class=\"fas fa-check-square\"></i></span>List icons can</li>\n  <li><span class=\"fa-li\"><i class=\"fas fa-check-square\"></i></span>be used to</li>\n  <li><span class=\"fa-li\"><i class=\"fas fa-spinner fa-pulse\"></i></span>replace bullets</li>\n  <li><span class=\"fa-li\"><i class=\"far fa-square\"></i></span>in lists</li>\n</ul>\n\nBordered & Pulled Icons\nUse fa-border and fa-pull-right or fa-pull-left for easy pull quotes or article icons.\n\n\n<i class=\"fas fa-quote-left fa-2x fa-pull-left fa-border\"></i>\nGatsby believed in the green light, the orgastic future that year by year recedes before us.\nIt eluded us then, but that’s no matter — tomorrow we will run faster, stretch our arms further...\nAnd one fine morning — So we beat on, boats against the current, borne back ceaselessly into the past.\n\nAnimated Icons\nUse the fa-spin class to get any icon to rotate, and use fa-pulse to have it rotate with 8 steps. Works especially well with fa-spinner & everything in the spinner icons category.\n\n\n<div class=\"fa-3x\">\n  <i class=\"fas fa-spinner fa-spin\"></i>\n  <i class=\"fas fa-circle-notch fa-spin\"></i>\n  <i class=\"fas fa-sync fa-spin\"></i>\n  <i class=\"fas fa-cog fa-spin\"></i>\n  <i class=\"fas fa-spinner fa-pulse\"></i>\n</div>\n\nIcon animation wobble foibles\nWe've worked hard to keep icons perfectly centered when they are spinning or pulsing. However, we've seen issues where icons in desktop Safari still have a wobble. This appears to be a bug in Safari.\n\nOne way that you might be able to work around this is by using display: block; where you can. This seems to help a lot with this issue.\n\n\nWhat if I have a thousand icons on the page?\nYou might be wondering how rendering icons with JavaScript affects performance. We worried about this quite a bit while we were developing it and even took some special measures to make sure it was as fast as we could make it.\n\nOur testing shows that for the typical number of icons most people use on a site the loading and rendering time is faster than web fonts. Your mileage may vary, of course, and we’d love to hear about your experience if this turns out not to be the case for you.\n\nIf you are using 1,000’s of icons on a page you might benefit from Symbols. This uses SVG with JS and the SVG sprites technique to reuse icons that are repeating. (Think rows of icons.)\n\nPower Transforms NEW\nThanks to the power of SVG in Font Awesome 5, now you can scale, position, flip, & rotate icons arbitratily using the data-fa-transform element attribute. You can even combine them for some super-useful effects.\n\nPower Transforms: Scaling\nPower Transform scaling effects icon size without changing or moving the container. To scale icons up or down, use grow-# and shrink-# with any arbitrary value, including decimals. Units are 1/16em. For clarity in the example, we’ve added a background color on the icon so you can see the effect.\n\n\n<div class=\"fa-4x\">\n  <i class=\"fas fa-magic\" data-fa-transform=\"shrink-8\" style=\"background:MistyRose\"></i>\n  <i class=\"fas fa-magic\" style=\"background:MistyRose\"></i>\n  <i class=\"fas fa-magic\" data-fa-transform=\"grow-6\" style=\"background:MistyRose\"></i>\n</div>\n\nPower Transforms: Positioning\nPower Transform positioning effects icon location without changing or moving the container. To move icons up, down, left, or right, use up-#, down-#, left-#, and right-# with any arbitrary value, including decimals. Units are 1/16em. For clarity in the example, we’ve added a background color on the icon so you can see the effect.\n\n\n<div class=\"fa-4x\">\n  <i class=\"fas fa-magic\" data-fa-transform=\"shrink-8\" style=\"background:MistyRose\"></i>\n  <i class=\"fas fa-magic\" data-fa-transform=\"shrink-8 up-6\" style=\"background:MistyRose\"></i>\n  <i class=\"fas fa-magic\" data-fa-transform=\"shrink-8 right-6\" style=\"background:MistyRose\"></i>\n  <i class=\"fas fa-magic\" data-fa-transform=\"shrink-8 down-6\" style=\"background:MistyRose\"></i>\n  <i class=\"fas fa-magic\" data-fa-transform=\"shrink-8 left-6\" style=\"background:MistyRose\"></i>\n</div>\n\nPower Transforms: Rotating & Flipping\nPower Transform rotating & flipping effects icon angle and reflection without changing or moving the container. To rotate or flip icons use any combination of rotate-#, flip-v, and flip-h with any arbitrary value. Units are degrees with negative numbers allowed (see fifth icon in the example). For clarity in the example, we’ve added a background color on the icon so you can see the effect.\n\n\n<div class=\"fa-4x\">\n  <i class=\"fas fa-magic\" data-fa-transform=\"rotate-90\" style=\"background:MistyRose\"></i>\n  <i class=\"fas fa-magic\" data-fa-transform=\"rotate-180\" style=\"background:MistyRose\"></i>\n  <i class=\"fas fa-magic\" data-fa-transform=\"rotate-270\" style=\"background:MistyRose\"></i>\n  <i class=\"fas fa-magic\" data-fa-transform=\"rotate-30\" style=\"background:MistyRose\"></i>\n  <i class=\"fas fa-magic\" data-fa-transform=\"rotate--30\" style=\"background:MistyRose\"></i>\n  <i class=\"fas fa-magic\" data-fa-transform=\"flip-v\" style=\"background:MistyRose\"></i>\n  <i class=\"fas fa-magic\" data-fa-transform=\"flip-h\" style=\"background:MistyRose\"></i>\n  <i class=\"fas fa-magic\" data-fa-transform=\"flip-v flip-h\" style=\"background:MistyRose\"></i>\n</div>\n\nThe Best... Around!\nNothing's gonna ever keep you down when you mix and match any combination of our Power Transforms! Fight till you drop. Listen to that sound. You're the best in town!\n\nEXOSCALEGet the latest generation GPU cards & extra-large SSD storage. Run Tensorflow or any other Deep Learning workload on Exoscale\nMasking NEW\nCombine two icons create one single-color shape, thanks to the power of SVG in Font Awesome 5! Use it with our new Power Transforms for some really awesome effects.\n\nMasks are great when you do want your background color to show through. For clarity in the example, we’ve added a background color on the icon so you can see the effect.\n\n\n<div class=\"fa-4x\">\n  <i class=\"fas fa-pencil-alt\" data-fa-transform=\"shrink-10 up-.5\" data-fa-mask=\"fas fa-comment\" style=\"background:MistyRose\"></i>\n  <i class=\"fab fa-facebook-f\" data-fa-transform=\"shrink-3.5 down-1.6 right-1.25\" data-fa-mask=\"fas fa-circle\" style=\"background:MistyRose\"></i>\n  <i class=\"fas fa-headphones\" data-fa-transform=\"shrink-6\" data-fa-mask=\"fas fa-square\" style=\"background:MistyRose\"></i>\n</div>\n\nInner Icon (cut out)\tSet using typical class attribute. Transform using any data-fa-transform properties.\nOuter Icon\tSet using data-fa-mask attribute.\nLayering, Text, & Counters NEW\nLayers are the new way to place icons and text visually on top of each other, replacing our classic icons stacks. With this new approach you can use more than 2 icons. Yuss!\n\nLayers are awesome when you don’t want your page’s background to show through, or when you do want to use multiple colors, layer several icons, layer text, or layer counters onto an icon. For clarity in the example, we’ve added a background color on the layers so you can see the effect.\n\n\n<div class=\"fa-4x\">\n  <span class=\"fa-layers fa-fw\" style=\"background:MistyRose\">\n    <i class=\"fas fa-circle\" style=\"color:Tomato\"></i>\n    <i class=\"fa-inverse fas fa-times\" data-fa-transform=\"shrink-6\"></i>\n  </span>\n\n  <span class=\"fa-layers fa-fw\" style=\"background:MistyRose\">\n    <i class=\"fas fa-bookmark\"></i>\n    <i class=\"fa-inverse fas fa-heart\" data-fa-transform=\"shrink-10 up-2\" style=\"color:Tomato\"></i>\n  </span>\n\n  <span class=\"fa-layers fa-fw\" style=\"background:MistyRose\">\n    <i class=\"fas fa-play\" data-fa-transform=\"rotate--90 grow-2\"></i>\n    <i class=\"fas fa-sun fa-inverse\" data-fa-transform=\"shrink-10 up-2\"></i>\n    <i class=\"fas fa-moon fa-inverse\" data-fa-transform=\"shrink-11 down-4.2 left-4\"></i>\n    <i class=\"fas fa-star fa-inverse\" data-fa-transform=\"shrink-11 down-4.2 right-4\"></i>\n  </span>\n\n  <span class=\"fa-layers fa-fw\" style=\"background:MistyRose\">\n    <i class=\"fas fa-calendar\"></i>\n    <span class=\"fa-layers-text fa-inverse\" data-fa-transform=\"shrink-8 down-3\" style=\"font-weight:900\">27</span>\n  </span>\n\n  <span class=\"fa-layers fa-fw\" style=\"background:MistyRose\">\n    <i class=\"fas fa-certificate\"></i>\n    <span class=\"fa-layers-text fa-inverse\" data-fa-transform=\"shrink-11.5 rotate--30\" style=\"font-weight:900\">NEW</span>\n  </span>\n\n  <span class=\"fa-layers fa-fw\" style=\"background:MistyRose\">\n    <i class=\"fas fa-envelope\"></i>\n    <span class=\"fa-layers-counter\" style=\"background:Tomato\">1,419</span>\n  </span>\n</div>\n`\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2018-08-07T12:19:26+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2018-08-07T12:40:23+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1719319448799,"ct":1719319448799,"a_depth":4,"a":["system","04632e3e-9132-4927-b91d-3c28d1afe3e9","2b5725a7-9e8f-4993-a3e8-ef9c1ff0be8c","55b76650-8f79-4cb4-bfb2-9e46ad80853d"],"a_forms":["system-folder-form","folder","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[],"previous":{"v":"08ef71a47d6148ab","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"}},"meta":{"modified":{"at":"2024-06-25T14:44:08+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"5f76b45b-933b-4794-8f71-b3d0454c7eac","v":"50efb74f26d5d80b","previous":{"v":"eb7f4ed62f0b8980"},"p":"c211ffaa-14f8-4439-9126-f42f65ac4424","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"page","template":"<div class=\"p-4 flex flex-col\">\n  <section class=\"self-center w-full max-w-[400px] mb-4\">\n    <ae-layout class=\"w-full\"\n                layout-id=\"cb92d818-e25d-43ff-8c41-5b6e6a58a7bd\"\n                @code=\"controller.checkBarcode($event)\"\n                :param-readonly=\"params.readonly\"\n                :param-document=\"document\"\n                param-preference-key=\"keeptrack:settings:siteReaderMode\"\n    ></ae-layout>\n  </section>\n  <section>\n    <ae-design :document=\"document\" name=\"anlagen\"></ae-design>\n  </section>\n\n  <section v-if=\"data.status === 2\" class=\"mt-4 rounded-lg bg-white p-2 border border-slate-200 flex flex-col\">\n    <div class=\"font-bold mb-2\">\n    Diese Wartung wurde abgeschlossen.\n    </div>\n    <div class=\"text-sm\">\n      Diese Wartung muss nun vom Betreiber zur Kenntnis genommen werden, bevor eine neue Wartung durchgeführt werden kann.\n    </div>\n  </section>\n\n  <section v-if=\"data.status === 3\" class=\"mt-4 rounded-lg bg-white p-2 border border-slate-200 flex flex-col\">\n    <div class=\"font-bold mb-2\">\n    Diese Wartung wurde zur Kenntnis genommen.\n    </div>\n  </section>\n\n  <!-- <ae-layout  v-if=\"!data.status || data.status < 2\"\n              class=\"w-full mt-6\"\n              layout-id=\"a2cd7699-9b46-494f-8f89-cb1f62151d82\"\n              param-text=\"Zurück zu den Wartungsplänen\"\n              @selected=\"Aeppic.navigateTo(document.data.firma)\"\n              param-classes=\"w-full\"\n  ></ae-layout> -->\n\n  <ae-layout  class=\"w-full mt-6\"\n              layout-id=\"a2cd7699-9b46-494f-8f89-cb1f62151d82\"\n              param-text=\"Zurück zur Startseite\"\n              @selected=\"controller.abort()\"\n              param-classes=\"w-full\"\n  ></ae-layout>\n  \n<!-- \n  <ae-layout  xv-if=\"data.status === 0\"\n              class=\"w-full mt-6\"\n              layout-id=\"a2cd7699-9b46-494f-8f89-cb1f62151d82\"\n              param-icon=\"fa fa-exclamation-circle\"\n              param-text=\"Wartung abbrechen\"\n              @selected=\"controller.abort()\"\n              param-classes=\"w-full\"\n  ></ae-layout> -->\n  \n</div>","css":"","controller":"class Controller {\n  async abort() {\n    const wartungIsDoneOrAcknowledged = data.status >= 2\n\n    if (!wartungIsDoneOrAcknowledged)  {\n      // FIXME: if we are somehow offline or under bad connection, the save will not persist\n      //        But this is not soooo important to persist\n      const editable = await Aeppic.edit(document)\n      editable.data.status = 1\n      Aeppic.save(editable)\n\n      await Aeppic.waitForNextTick()\n      await Aeppic.waitForNextTick()\n    }\n\n    Aeppic.reload()\n  }\n\n  async checkBarcode(barcode) {\n    const result = await Aeppic.Commands.execute('b503ae51-6b05-4daf-9f1f-e42030e67c8f', document.id, { barcode: barcode })\n\n    console.log(result)\n    \n    if (result.value)  {\n      Aeppic.navigateTo(result.value)\n    }\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-03-03T14:20:00+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-06-23T14:52:03+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1655995923941,"ct":1649233215574,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","c211ffaa-14f8-4439-9126-f42f65ac4424"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"61644aa0-2197-4e46-ac13-803d1541a5ff","v":"initial","p":"5b36e2dc-cb89-46a0-8806-0db032bbc247","f":{"id":"design-form","v":"2d98bf27c3108340","text":"Design"},"data":{"name":"page","applies":"","description":"","template":"<ae-design  name=\"preview\"\n            :document=\"document.data.template\"\n            :param-view-data=\"data\"\n></ae-design>\n\n","css":"._CSS {\n  display: flex;\n}","controller":"","packages":[]},"locks":[],"created":{"at":"2018-10-30T12:57:19+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2018-10-30T12:57:19+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1540904239034,"ct":1540904239031,"a_depth":5,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","1116d922-d8df-4da5-a7c2-70191d07d929","5cdd2d20-7676-43e3-8997-e176dd3434ed","5b36e2dc-cb89-46a0-8806-0db032bbc247"],"a_forms":["folder","application-form","folder","form-folder","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"a":["apps","a590ce5b-28fc-4f85-9049-d006e1b8f880","169e87e0-0379-48e1-8c94-8fadac5969bb","df3870fe-b129-4535-9e52-c33a05fb4bce"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2020-05-08T08:51:31+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":""},"ct":1588927891667,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Personaldaten: '3090c06d-faea-41f6-a6ea-846b900faad5'\n    }\n\n    locals.FORMS = this.FORMS\n    locals.current = []\n    locals.retired = []\n    locals.availableFolders = []\n\n\n    Aeppic.subscribe(`a:${document.id} f.id:${this.FORMS.Personaldaten}`, { size: 999 }, (documents) => {\n      const { current, retired } = this.filterDocuments(documents)\n\n      locals.current = current\n      locals.retired = retired\n    })\n\n    if (data.folders) {\n      const folders = await Aeppic.getAll(data.folders)\n      locals.availableFolders = folders.filter(f => f != null)\n    }\n  }\n\n  filterDocuments(documents) {\n    const current = []\n    const retired = []\n\n    for (const doc of documents) {\n      if (!doc.data.austrittsdatum) {\n        current.push(doc)\n        continue\n      }\n\n      if (Aeppic.DateTime.fromISO(doc.data.austrittsdatum).diffNow('days') < 0) {\n        retired.push(doc)\n      } else {\n        current.push(doc)\n      }\n    }\n\n    return { current, retired }\n  }\n}\n\n ","css":"._CSS {\r\n  padding: var(--bp-page-content-padding);\r\n}\r\n\r\n._CSS-buttons {\r\n  padding: var(--bp-page-content-padding) 0;\r\n  display: grid;\r\n  grid-template-columns: repeat(auto-fill, var(--ae-size-11));\r\n  grid-auto-rows: var(--ae-size-9);\r\n  grid-gap: var(--ae-size-2);\r\n}\r\n\r\n._CSS-button {\r\n  display: flex;\r\n  flex-flow: column;\r\n  justify-content: center;\r\n  align-items: center;\r\n  text-align: center;\r\n}\r\n\r\n._CSS-button__icon  {\r\n  font-size: var(--ae-font-size-9);\r\n}\r\n\r\n._CSS-list {\r\n  height: 600px;\r\n  max-height: 600px;\r\n}\r\n","description":"","name":"page","packages":[],"template":"<div class=\"_CSS-buttons\">\n  <div class=\"ae-button ae-button--secondary _CSS-button\" v-for=\"folder of locals.availableFolders\" @click=\"Aeppic.navigateTo(folder.id)\">\n    <ae-icon class=\"_CSS-button__icon\" :class=\"[folder.data.namedIcon || 'fa fa-folder'] \"></ae-icon>\n    <span>{{ folder.data.displayName || folder.data.name }} </span>\n  </div>\n</div>\n\n<h2>Aktuelle Mitarbeiter</h2>\n<ae-list  list-id=\"table-list\"\n          :documents=\"locals.current\"\n          :params=\"{ columns: 'data.vorname,data.nachname,data.position,data.eintrittsdatum,', designs: ',,,day,table:number-of-files', headers: ',,,,Dateien' }\"\n          :search-options=\"{ searchAllFields: true }\"\n          :param-list-form-id=\"locals.FORMS.Personaldaten\"\n          param-sort-fields=\"data.vorname,data.nachname,data.eintrittsdatum,data.austrittsdatum,data.position\"\n          param-filter-fields=\"data.vorname,data.nachname,data.eintrittsdatum,data.austrittsdatum,data.position,data.kinder,data.behinderungsGrad,data.gehaltAnpassungDatum,data.abwesenheitVon,data.abwesenheitBis,data.abwesenheitGrund,data.corvid19Geimpft\"\n          sort=\"data.nachname\"\n          class=\"_CSS-list\"\n></ae-list>\n\n<h2>Ausgeschiedene Mitarbeiter</h2>\n<ae-list  list-id=\"table-list\"\n          :documents=\"locals.retired\" \n          :params=\"{ columns: 'data.vorname,data.nachname,data.position,data.eintrittsdatum,data.austrittsdatum,', designs: ',,,day,day,table:number-of-files', headers: ',,,,,Dateien' }\"\n          :search-options=\"{ searchAllFields: true }\"\n          :param-list-form-id=\"locals.FORMS.Personaldaten\"\n          param-sort-fields=\"data.vorname,data.nachname,data.eintrittsdatum,data.austrittsdatum,data.position\"\n          param-filter-fields=\"data.vorname,data.nachname,data.eintrittsdatum,data.austrittsdatum,data.position,data.kinder,data.behinderungsGrad,data.gehaltAnpassungDatum,data.abwesenheitVon,data.abwesenheitBis,data.abwesenheitGrund,data.corvid19Geimpft\"\n          sort=\"data.nachname\"\n          class=\"_CSS-list\"\n></ae-list>\n<!-- \n<h2>Aktuelle Mitarbeiter</h2>\n<ae-list  list-id=\"table-list\"\n          :root-document-id=\"document.id\"\n          query-id=\"f812861f-68c8-4818-9972-be7b5474c9b1\"\n          filter='f.id:da18ed53-47e1-4d39-bc02-7e02ef1c22bc AND data.austrittsdatum:\"\"'\n          :params=\"{ columns: 'data.vorname,data.name,data.position,data.eintrittsdatum', designs: ',title,,day' }\"\n          :search-options=\"{ searchAllFields: true }\"\n></ae-list>\n\n<h2>Ausgeschiedene Mitarbeiter</h2>\n<ae-list  list-id=\"table-list\"\n          :root-document-id=\"document.id\"\n          query-id=\"f812861f-68c8-4818-9972-be7b5474c9b1\"\n          filter=\"f.id:da18ed53-47e1-4d39-bc02-7e02ef1c22bc AND data.austrittsdatum: [now TO *]\"\n          :params=\"{ columns: 'data.vorname,data.name,data.position,data.eintrittsdatum,data.austrittsdatum', designs: ',title,,day,day' }\"\n          :search-options=\"{ searchAllFields: true }\"\n></ae-list>\n  -->\n  "},"f":{"id":"design-form","text":"Design","v":"24435d748c76f819"},"id":"62b71bb7-ba48-4f7a-9124-8cf41036d88c","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-07-03T11:56:44+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"df3870fe-b129-4535-9e52-c33a05fb4bce","previous":{"v":"59d29c681c04fd1f"},"stamps":[],"t":1751543804765,"v":"21d666e0ba417213"},{"id":"62e49ee9-7a33-4702-869b-5086f3e80c58","v":"aa0cfe5c6dd6c029","p":"084a6995-3d56-4672-aad0-7e76d30999a0","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"page","template":"<div class=\"_CSS-body-container\" @toolbar=\"controller.toolbarEvent($event.detail)\">\n  <div class=\"_CSS-body\">\n      <ae-design  v-if=\"locals.view === 'list'\"\n                  name=\"table\"\n                  :document=\"document\"\n                  style=\"height:100%;\"\n      ></ae-design>\n      <ae-design  v-else-if=\"locals.view === 'accounting'\"\n                  name=\"accounting\"\n                  :document=\"document\"\n                  style=\"height:100%;\"\n      ></ae-design>\n      <ae-design  v-else-if=\"locals.view === 'board'\"\n                  name=\"board\"\n                  :document=\"document\"\n                  style=\"height:100%;\"\n      ></ae-design>\n  </div>\n</div>","css":"._CSS-body-container {\n  height: 100%;\n}\n\n._CSS-body {\n  height: 100%;\n}","controller":"class Controller {\n  async init() {\n    locals.view = Aeppic.LocalStorage.getValue('bp-pref-maus-crm-folder-view-id') || 'board'\n  }\n\n  toolbarEvent(eventType) {\n    if (eventType === 'view_list') {\n      locals.view = 'list'\n      return\n    }\n    if (eventType === 'view_accounting') {\n      locals.view = 'accounting'\n      return\n    }\n    if (eventType === 'view_board') {\n      locals.view = 'board'\n      return\n    }\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-11-15T08:31:00+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","from":"","client":"server"},"modified":{"at":"2022-11-15T08:56:11+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1718866007162,"ct":1718866007162,"a_depth":4,"a":["apps","deeef973-ce03-4557-bf75-75a059001767","e7de598c-6f5a-4ab4-a33b-213ca86e489d","084a6995-3d56-4672-aad0-7e76d30999a0"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[],"previous":{"v":"67f32b9c3f6cc9dc","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"}},"meta":{"modified":{"at":"2024-06-20T08:46:47+02:00","by":"427610a9-39dc-4014-9176-5f72aeb23263","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"6598be49-acb2-407b-b9fb-bdf9457ea627","v":"310685154454e2bf","previous":{"v":"731fe2076d70a8ba"},"p":"cfd3ce74-9fa5-46c8-a9e9-cba33a3b8e70","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"page","template":"\n<div class=\"_CSS-body-container\" v-if=\"locals.ready\" >\n  <ae-list  list-id=\"fd77a026-056a-47fa-8433-be50dc8b89db\"\n            v-if=\"params.printMode\" \n            :filter=\"locals.filter\"\n            :search-options=\"{ searchAllFields: true }\"\n            :sort=\"locals.tableSort\"\n            :params=\"locals.tableParams\"\n            :param-list-form-id=\"locals.formId\"\n  ></ae-list>\n  <div v-else class=\"_CSS-body\" :class=\"{ '_CSS-body--print': params.printMode }\">\n    <div class=\"_CSS-body__column\">\n      <ae-list\n      list-id=\"table-list\" \n      @selected=\"Aeppic.navigateTo($event.id)\"\n      :filter=\"locals.filter\"\n      :search-options=\"{ searchAllFields: true, size: 9999 }\"\n      :sort=\"locals.tableSort\"\n      :params=\"locals.tableParams\"\n      :param-list-form-id=\"locals.formId\"\n      ></ae-list>\n    </div>\n  </div>\n</div>\n\n ","css":"._CSS-body-container {\n  padding: var(--bp-page-content-padding);\n  padding-top: 12px;\n\n  /* full page */\n  position: absolute;\n  top: 0;\n  bottom: 0;\n  left: 0;\n  right: 0;\n}\n\n\n._CSS-body {\n  margin: auto;\n  height: 100%;\n}\n\n._CSS-body._CSS-body--print {\n  height: initial;\n}\n\n._CSS-body__column {\n  height: 100%;\n  min-width: 0;\n\n  display: flex;\n  flex-direction: column;\n}\n","controller":"class Controller {\n  async init() {\n    console.log('init')\n    // locals.ready = false\n    locals.filter = ''\n    locals.formId = ''\n\n    locals.projectionFolder = await this.getProjectionFolder()\n\n    if (locals.projectionFolder) {\n      const { params, configurationDocument, sort } = this.transformRepoFolder(locals.projectionFolder)\n      locals.tableConfiguration = configurationDocument\n      locals.tableSort = sort\n      locals.tableParams = params\n    } else {\n      const { params, configurationDocument, sort } = await this.parseTableConfiguration()\n      locals.tableConfiguration = configurationDocument\n      locals.tableSort = sort\n      locals.tableParams = params\n    }\n\n    locals.formId = locals.projectionFolder ? '2add3026-2869-40ea-9e6d-dcb14ef0ba19' : '98c77209-1245-43d6-90b5-8625183f470c'\n    locals.filter = [\n      `p:${locals.projectionFolder ? locals.projectionFolder.id : document.id}`,\n      `f.id:${locals.formId}`\n    ].join(' ')\n\n    locals.ready = true\n  }\n\n  async getProjectionFolder() {\n    return Aeppic.get(data.projectionFolder)\n  }\n\n  async parseTableConfiguration() {\n    const tableConfiguration = await Aeppic.findOne(`p:${document.id} f.id:repository-folder-form`)\n\n    return this.transformRepoFolder(tableConfiguration)\n  }\n\n  transformRepoFolder(repoFolder) {\n    const {\n      displayTableColumns: columns,\n      displayTableHeaders: headers,\n      displayTableDesigns: designs,\n      initialSort,\n      initialSortAsc,\n      showResetSorting,\n      rowHeight,\n      contentsForm,\n      filterFields,\n      sortFields\n     } = repoFolder.data\n\n    const params = {\n      columns,\n      headers,\n      designs,\n      showResetSorting,\n      rowHeight,\n      contentsForm,\n      filterFields,\n      sortFields\n    }\n\n    const sort = {\n      field: initialSort || 'data.name',\n      descending: initialSortAsc || null\n    }\n\n    const configurationDocument = repoFolder.data.configurationDocument\n\n    return { params, configurationDocument, sort }\n  }\n\n}","packages":[]},"locks":[],"created":{"at":"2019-05-03T14:14:36+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2021-11-30T12:08:26+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1638274106744,"ct":1556885676901,"a_depth":4,"a":["apps","94a64d89-d204-4918-b147-d717914fb03e","f254ce25-42f1-4333-8ee7-23554bf746c1","cfd3ce74-9fa5-46c8-a9e9-cba33a3b8e70"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"67ff9f30-3efc-4b8f-9670-86a3452e8f87","v":"f6c3954481b48511","previous":{"v":"aabfd0deb6b5effe"},"p":"c818d93b-446d-494f-8120-a39db2bdf484","f":{"id":"design-form","v":"5910dbdd1c0b7469","text":"Design"},"data":{"name":"page","applies":"","description":"","template":"<ae-design v-for=\"container of locals.containers\"\n           :document=\"container\"\n           name=\"page\"\n           :param-page-document-id=\"document.id\"\n           :param-company-id=\"locals.companyIdOfAccount\"\n           :param-account-id=\"locals.accountId\"\n           :param-user-id=\"locals.userId\"\n           :style=\"{ 'min-height': container.data.height + 'px' }\"\n></ae-design>","css":"._CSS {\n  display: flex;\n  flex-flow: column;\n  overflow: hidden;\n}","controller":"class Controller {\n  async init() {\n    locals.containers = await Aeppic.getAll(data.containers)\n\n    const COMPANY_FORM = 'c69a0c1c-6c53-40c2-87e8-5ace866bf1df'\n    const homePage = await Aeppic.get(Aeppic.HomePage)\n\n    if (homePage) {\n      if (homePage.f.id === COMPANY_FORM) {\n        locals.companyIdOfAccount = homePage.id\n      } else {\n        if (homePage.a_forms !== null) {\n          const companyAncestorIndex = homePage.a_forms.findIndex(formId => formId === COMPANY_FORM)\n          locals.companyIdOfAccount = homePage.a[companyAncestorIndex]\n        }\n      }\n    }\n\n    locals.userId = Aeppic.ProfilePage && Aeppic.ProfilePage.id\n    locals.accountId = Aeppic.Account && Aeppic.Account.id    \n  }\n}","packages":[]},"locks":[],"created":{"at":"2018-11-29T15:47:02+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2019-03-27T08:54:22+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1553676862285,"ct":1543506422714,"a_depth":4,"a":["apps","43f84041-0fd7-4ccb-b7b5-7a38f89ada37","5d6fa6d3-7580-4c6f-9487-fff961f9c751","c818d93b-446d-494f-8120-a39db2bdf484"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"68e0070e-212d-44b0-af91-42ed3df371a7","v":"a2121f4897c2322c","previous":{"v":"c1a968bf20f505f5"},"p":"89a3cd1a-7afc-4413-9327-a5b5d87cdfcc","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"page","template":"<ae-list list-id=\"2e798091-303f-406b-a42a-93aa1cd8425c\"\n          :root-document-id=\"document.id\"\n          query-id=\"f812861f-68c8-4818-9972-be7b5474c9b1\"\n          @selected=\"Aeppic.drillInto($event, arguments[1])\"\n></ae-list>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-08-17T11:34:04+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-08-17T11:35:03+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1660736103042,"ct":1660736044247,"a_depth":4,"a":["apps","86189c5a-b9f4-445a-879f-d94574960df0","15292d56-6806-4263-b6d0-9194687203e1","89a3cd1a-7afc-4413-9327-a5b5d87cdfcc"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"6d454651-7d56-4052-812b-bb5db30701cc","v":"71acc3dc2d57ac6f","p":"command-form","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"page","template":"<div>\n  <ae-layout @save=\"controller.toolbarEvent('save')\" @reset=\"controller.toolbarEvent('reset')\" layout-id=\"73fd81e5-c901-4c56-9b38-cd04a7d17f8a\"  :param-document-id=\"document.id\">\n  </ae-layout>\n  <ae-form v-if=\"Aeppic.Device === 'Desktop'\"\n    ref=\"form\"\n    :document-id=\"document.id\"   \n    ></ae-form>\n  <ae-form v-else\n    ref=\"form\"\n    layout-id=\"acd83791-970f-4b6e-bebd-d7f3bca52014\"\n    :document-id=\"document.id\"   \n    ></ae-form> \n</div>\n<div class=\"_CSS-preview\" v-if=\"Aeppic.Device === 'Desktop'\">\n  <header> \n    <label class=\"ae-tab__label\">Preview</label>\n    <span style=\"flex:1\"></span>\n    <div class=\"checkbox\">\n        <input :id=\"id('simulate')\" type=\"checkbox\"  title=\"Run\" v-model=\"locals.simulate\">\n        <label :for=\"id('simulate')\">Simulate</label>\n    </div>\n    <div style=\"width:24px\"></div>\n    <button @click=\"controller.run()\" class=\"_CSS-preview__button\" :class=\"{ '_CSS-preview__button--dirty': locals.dirty }\" title=\"Run\">\n      <ae-icon class=\"fa fa-play\"></ae-icon>\n    </button>\n    <div style=\"width:8px\"></div>\n  </header>\n  <section>\n    <label>Target Id: <input v-model=\"locals.target\"></label>\n  </section>\n  <section class=\"_CSS-preview-log\" v-if=\"locals.result\">\n    <h2>Result</h2>\n    <pre>{{controller.toDisplayValue(locals.result.value)}}</pre>\n    <h2>Changes</h2>\n    <pre>{{locals.result.changes}}</pre>\n    <h2>Log </h2>\n    <ae-layout layout-id=\"975669f5-f826-4a47-8cf2-88c297e834c0\" :param-log=\"locals.result.log\"></ae-layout>\n  </section>\n</div>\n","css":"._CSS {\r\n  display: flex;\r\n}\r\n\r\n._CSS > *:nth-child(1){\r\n  flex:1;\r\n}\r\n\r\n._CSS-preview {\r\n  overflow: auto;\r\n  flex:1;\r\n}\r\n\r\n._CSS-preview > header {\r\n  margin:0;\r\n  background: darkgray;\r\n  display:flex;\r\n  align-items: center;\r\n  justify-content: center;\r\n}\r\n\r\n._CSS-preview > header label {\r\n  color: white;  \r\n}\r\n\r\n._CSS-preview__button {\r\n  background: none;\r\n  border:none;\r\n  color: lightgreen;\r\n}\r\n\r\n._CSS-preview__button--dirty {\r\n  color: lightgray;\r\n}\r\n\r\n.checkbox input[type=\"checkbox\"] {\r\n    opacity: 0;\r\n}\r\n\r\n.checkbox label {\r\n    position: relative;\r\n    display: inline-block;\r\n    \r\n    /*16px width of fake checkbox + 6px distance between fake checkbox and text*/\r\n    padding-left: 22px;\r\n}\r\n\r\n.checkbox label::before,\r\n.checkbox label::after {\r\n    position: absolute;\r\n    content: \"\";\r\n    \r\n    /*Needed for the line-height to take effect*/\r\n    display: inline-block;\r\n}\r\n\r\n/*Outer box of the fake checkbox*/\r\n.checkbox label::before{\r\n    height: 16px;\r\n    width: 16px;\r\n    \r\n    border: 1px solid;\r\n    left: 0px;\r\n    \r\n    /*(24px line-height - 16px height of fake checkbox) / 2 - 1px for the border\r\n     *to vertically center it.\r\n     */\r\n    top: 3px;\r\n}\r\n\r\n/*Checkmark of the fake checkbox*/\r\n.checkbox label::after {\r\n    height: 5px;\r\n    width: 9px;\r\n    border-left: 2px solid;\r\n    border-bottom: 2px solid;\r\n    \r\n    transform: rotate(-45deg);\r\n    \r\n    left: 4px;\r\n    top: 7px;\r\n}\r\n\r\n/*Hide the checkmark by default*/\r\n.checkbox input[type=\"checkbox\"] + label::after {\r\n    content: none;\r\n}\r\n\r\n/*Unhide on the checked state*/\r\n.checkbox input[type=\"checkbox\"]:checked + label::after {\r\n    content: \"\";\r\n}\r\n\r\n/*Adding focus styles on the outer-box of the fake checkbox*/\r\n.checkbox input[type=\"checkbox\"]:focus + label::before {\r\n    outline: rgb(59, 153, 252) auto 5px;\r\n}\r\n\r\n._CSS-preview-log {\r\n  margin-bottom: 2em;\r\n}","controller":"class Controller {\n  init() {\n    setTimeout(() => {\n     startEditing()\n    })\n\n    locals.dirty = false\n    locals.simulate = true\n    locals.revision = null\n    locals.result = null\n    locals.target = null\n\n    Aeppic.watchRevisions(document, (changed) => {\n      locals.dirty = true\n      locals.revision = changed\n    })\n  }\n\n  toolbarEvent(eventType) {\n    if (eventType === 'save') {\n      $refs.form.save()\n      return\n    }\n    if (eventType === 'reset') {\n      $refs.form.resetEdits()\n      return\n    }\n  }\n\n  get isReadonly() {\n    if (typeof params.readonly === 'boolean') {\n      return params.readonly\n    }\n\n    return false\n  }\n \n  async run() {\n    locals.result = null\n    const command = locals.revision || document\n    const targetId = locals.target ?? 'root'\n    const result = await Aeppic.Commands.execute(command, targetId, {}, { checkMode: locals.simulate, noIsolation: true, verbose: true })\n    console.log(result)\n    locals.result = result\n  }\n\n  toDisplayValue(value) {\n    if (Aeppic.isEditableDocument(value)) {\n      return `Editable Document\\n${value.id}@${value.v}\\n\\np:${value.p}\\n\\nf:${JSON.stringify(value.f,null,2)}\\n\\n${JSON.stringify(value.data, null, 2)}`\n    } else {\n      return JSON.stringify(value, null, 2)\n    }\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2018-07-06T08:24:00+02:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","from":"","client":"server"},"modified":{"at":"2021-01-14T09:22:22+00:00","by":"8e6c22aa-8c69-4ff8-919a-7032841cf636","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1719473826840,"ct":1719473826840,"a_depth":3,"a":["system","system-forms","command-form"],"a_forms":["system-folder-form","repository-folder-form","form"],"inheritedLocks":[null,null,null,null],"stamps":[],"previous":{"v":"6e837aadcf4b2df0","f":{"id":"design-form","v":"74db9b6ed94b41d9","text":"Design"}},"meta":{"modified":{"at":"2024-06-27T07:37:06+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"6ff2c1a0-331d-4e70-87ff-833a8bb2d59b","v":"initial","p":"4ae738ec-fc22-40d8-8d2b-159b5652a173","f":{"id":"design-form","v":"2d98bf27c3108340","text":"Design"},"data":{"name":"page","applies":"","description":"","template":"<ae-design  name=\"preview\"\n            :document=\"document.data.template\"\n            :param-view-data=\"data\"\n></ae-design>\n\n ","css":"._CSS {\n  display: flex;\n}","controller":"","packages":[]},"locks":[],"created":{"at":"2018-10-30T12:56:58+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2018-10-30T12:56:58+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1540904218340,"ct":1540904218340,"a_depth":5,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","1116d922-d8df-4da5-a7c2-70191d07d929","5cdd2d20-7676-43e3-8997-e176dd3434ed","4ae738ec-fc22-40d8-8d2b-159b5652a173"],"a_forms":["folder","application-form","folder","form-folder","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"71fd8bdd-b203-4172-be1c-813b020a3a8b","v":"initial","p":"7f955a3b-e5cf-45ff-a13b-2053751439cd","f":{"id":"design-form","v":"24435d748c76f819","text":"Design"},"data":{"name":"page","template":"<div class=\"_CSS-container\">\n  <iframe class=\"_CSS-iframe\" src=\"https://membra.de/\" sandbox=\"allow-scripts\"></iframe>\n</div>","css":"._CSS-container {\n  max-width: var(--ae-page-max-width);\n  margin: auto;\n  height: 100%;\n\n  padding: var(--bp-page-content-padding);\n}\n\n._CSS-iframe {\n  height: 100%;\n  width: 100%;\n  border: var(--ae-border-width) solid var(--ae-border-color);\n}","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-05-08T08:52:36+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2020-05-08T08:52:36+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1588927956741,"ct":1588927956741,"a_depth":4,"a":["apps","fb23c419-a6bb-4f45-9f62-e79baa359f89","55112711-674e-46d1-a76a-3660e0862851","7f955a3b-e5cf-45ff-a13b-2053751439cd"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"72e88935-0426-4a30-a354-eb2a8b12d795","v":"72398e2ce31830f9","previous":{"v":"1946456e188d9a66"},"p":"096cfb8f-bb8e-4a6e-87c2-2d1fac5e822a","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"page","template":"<ae-list :root-document-id=\"document.id\"\n          query-id=\"f812861f-68c8-4818-9972-be7b5474c9b1\"\n          list-id=\"2e798091-303f-406b-a42a-93aa1cd8425c\"\n          @selected=\"Aeppic.drillInto($event, arguments[0])\"\n></ae-list>\n\n\n<!-- old stuff -->\n<!-- @selected=\"$refs.edit.$emit('show', {\ncommand: 'd63707a3-46ff-41a9-8463-e05dab539ffc',\ndocument: $event\n})\"\n\n<ae-layout layout-id=\"c80364ed-8a1f-40fa-a169-5cc7b45d4fb4\"\n            v-show=\"false\"\n          ref=\"edit\"\n></ae-layout>   -->","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-02-28T15:41:06+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-04-05T13:18:52+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1649164732020,"ct":1646062866737,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","096cfb8f-bb8e-4a6e-87c2-2d1fac5e822a"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"7539004e-30fe-4377-8052-0aa68cc134bd","v":"e150d122e0a93a2e","previous":{"v":"5533faf5d334e342"},"p":"44e0edf9-6515-4e4b-ad48-98a04d28df11","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"page","applies":"","template":"<ae-design name=\"hero--model\" :document=\"document\"></ae-design>\n\n<div class=\"dbps-body-with-actions\">\n  <div class=\"dbps-body-with-actions__actions-placeholder\"></div>\n  <div class=\"dbps-body-with-actions__actions\" v-if=\"controller.isCompanyUser\">\n    <ae-layout layout-id=\"6273d6a2-0cf0-47da-9e45-18460c50d101\" @edit=\"controller.setEditing(true)\" @reset=\"controller.setEditing(false)\"></ae-layout>\n    <ae-layout  class=\"dbps-button\"\n                layout-id=\"7be86ea7-1897-4343-8dd3-56ba86e8f14e\"\n                style=\"font-size: 3rem;\"\n                :param-model-id=\"document.id\"\n                :param-zip-name=\"data.name\"\n    ></ae-layout>\n    <ae-layout style=\"font-size: 2rem;\" layout-id=\"0ded34c5-1221-4511-af93-d897a79f1369\" :param-document=\"document\"></ae-layout>\n  </div>\n\n  <div>\n    <div class=\"dbps-tabs\">\n      <span class=\"dbps-tab\" @click.stop=\"locals.tab = 'projects'\" :class=\"{ 'dbps-tab--active': locals.tab === 'projects' }\">Projects</span>\n      <span class=\"dbps-tab\" @click.stop=\"locals.tab = 'media'\" :class=\"{ 'dbps-tab--active': locals.tab === 'media' }\">Media</span>\n      <span class=\"dbps-tab\" @click.stop=\"locals.tab = 'about'\" :class=\"{ 'dbps-tab--active': locals.tab === 'about' }\">About</span>\n    </div>\n\n    <div v-if=\"locals.tab === 'media'\" class=\"dbps-tab__content\">\n        <ae-form  :document=\"document\"\n                  :auto-save=\"true\"\n                  layout-id=\"1e9d55d2-a4f8-474e-897b-0b747c5c6a01\"\n                  v-if=\"locals.edit\"\n                  ref=\"form\"\n        ></ae-form>\n        <ae-list\n          v-else\n          list-id=\"731c1d99-6cef-4d97-b265-184d63f9d0a6\"\n          param-min-column-width=\"var(--dbps-thumbnail-width)\"\n          param-max-column-width=\"var(--dbps-thumbnail-width)\"\n          :documents=\"data.files\"\n          param-design=\"card\"\n          :param-design-params=\"{ showPreviewButton: true }\"\n        ></ae-list>\n    </div>\n\n\n    <template v-if=\"locals.tab === 'projects'\">\n       \n      <ae-list\n        class=\"dbps-tab__content\"\n        list-id=\"2dab232c-2c8a-4aa4-b3f9-6023a7116161\"\n        :documents=\"locals.projects\"\n        :param-design-params=\"{ applicationByProjectId: locals.projectIdsWithApplication, model: document }\"\n        param-design=\"model-project,card\"\n        param-max-column-width=\"100%\"\n        >\n      </ae-list>\n    </template>\n\n    <div v-if=\"locals.tab === 'about'\" class=\"dbps-tab__content\">\n      <ae-form :document=\"document\" :readonly=\"!locals.edit || Aeppic.Account.p === '1d21a70e-45a4-4b4f-8481-8bc9b2d10662'\" :auto-save=\"true\" ref=\"form\"></ae-form>\n    </div>\n  </div>\n</div>\n\n<div class=\"dbps-bottom-spacer\"></div>","css":"","controller":"class Controller {\n  async init () {\n    locals.edit = false\n    locals.projects = []\n    locals.projectIdsWithApplication = {}\n\n    locals.tabs = ['media', 'projects', 'about']\n    locals.tab = locals.tabs[1]\n\n    this.onUpdate()\n\n  }\n\n  get isCompanyUser() {\n    return Aeppic.Account && Aeppic.Account.a_forms.includes('1ec5237d-463a-417f-8dac-5bbbbc2e35b7')\n  }\n\n  setEditing(value) {\n    $refs.form && $refs.form.save()\n\n    locals.edit = value\n  }\n  \n  async onUpdate() {\n    const { projectIdsWithApplication, projects } = await this.getProjects()\n    \n    locals.projectIdsWithApplication = projectIdsWithApplication\n    locals.projects = projects\n  }\n\n  async getProjects() {\n    const applications = await Aeppic.find(`p:${document.id} f.id:275b807f-7dbb-4351-b731-669e275fa97d`, { sort: { field: 'created.at', descending: true } })\n\n    const projectIdsWithApplication = {}\n\n    for (const application of applications) {\n      const projectId = application.data.project.id\n\n      if (!projectId) {\n        continue\n      }\n\n      const editableApplication = await Aeppic.edit(application)\n\n      if (!editableApplication) {\n        continue\n      }\n      \n      if (!projectIdsWithApplication[projectId]) {\n        projectIdsWithApplication[projectId] = []\n      }\n\n      projectIdsWithApplication[projectId].push(editableApplication)\n    }\n\n    const projects = await Aeppic.getAll(Object.keys(projectIdsWithApplication))\n\n    return {\n      projectIdsWithApplication,\n      projects\n    }\n  }\n}","packages":[]},"locks":[],"created":{"at":"2018-05-25T10:47:25+00:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","from":"","client":"server"},"modified":{"at":"2020-10-13T10:11:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1602583892462,"ct":1527245245631,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","44e0edf9-6515-4e4b-ad48-98a04d28df11"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"764aa628-b09b-459f-8f3a-127fe3ba49a2","v":"999279b95a84eee3","previous":{"v":"initial"},"p":"d990fd22-7ffc-4395-86a7-804da25f908b","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"page","applies":"","template":"<div class=\"_CSS-card\" style=\"background:lightgreen\" @click=\"Aeppic.navigateTo('578b4aa1-69cc-4f6b-b68c-19a708b86bb8')\">\r\n\t<ae-icon class=\"_CSS-icon fa fa-map-marker-alt\"></ae-icon>\r\n\t<h3>Fälle</h3>\r\n</div>\r\n<div class=\"_CSS-card\" style=\"background:lightblue\" @click=\"Aeppic.navigateTo('4691da74-78df-4df8-b8f8-a4262c24c312')\">\r\n\t<ae-icon class=\"_CSS-icon fa fa-archive\"></ae-icon>\r\n\t<h3>Stammdaten</h3>\r\n</div>\r\n","css":"._CSS {\n  padding: var(--bp-page-content-padding) var(--bp-page-content-padding) 0 var(--bp-page-content-padding);\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr));\n  grid-template-rows: 15rem;\n  grid-gap: 1rem;\n}\n\n._CSS-card {\n  display: flex;\n  flex-flow: column;\n  justify-content: center;\n  align-items: center;\n  height: 15rem;\n}\n\n._CSS-icon  {\n  color: rgba(0,0,0,0.4);\n  font-size: 6rem;\n}\n","controller":"","packages":[]},"locks":[],"created":{"at":"2018-02-06T09:47:57+01:00","by":"","from":"","client":"server"},"modified":{"at":"2018-04-20T12:31:01+02:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"from":"","client":"f8312258-bdc9-438a-a510-de77a69e61e9"},"t":null,"ct":1517906877358,"a_depth":4,"a":["apps","b791df37-6eef-4a3e-9066-1b79e0bdad31","35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f","d990fd22-7ffc-4395-86a7-804da25f908b"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"77142650-0f4f-4463-8912-cc28f89a3847","v":"1210ed5a6073ed85","previous":{"v":"b8e847f13e0f58aa"},"p":"8de1bf7a-fbd9-4386-9b15-6e0f5e0cdf37","f":{"id":"design-form","v":"49954170df6a253b","text":"Design"},"data":{"name":"page","template":"<div class=\"_CSS-logo\" :style=\"{ 'background-image': 'url(' +  Aeppic.Content.getSrc(locals.logo, 'file') + ')' }\"></div>\n\n<ae-list  list-id=\"2dab232c-2c8a-4aa4-b3f9-6023a7116161\"\n          query-id=\"f812861f-68c8-4818-9972-be7b5474c9b1\"\n          :root-document-id=\"document.id\"\n          param-min-column-width=\"400px\"\n          param-max-column-width=\"1fr\"\n          :sort=\"locals.sorting\"\n></ae-list>\n","css":"._CSS-logo {\n  height: 300px;\n  width: 100%;\n  background-position: center;\n  background-repeat: no-repeat;\n  background-size: contain;\n  margin: 20px 0 40px 0;\n}","controller":"async init() {\n  locals.sorting = {\n    field: 'data.name'\n  }\n\n  const logo = await Aeppic.get('527ac127-e397-4208-b364-8d348d580a80')\n  locals.logo = logo\n  console.log(logo)\n}","packages":[],"description":""},"locks":[],"created":{"at":"2018-12-05T11:35:35+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2018-12-05T13:30:41+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1544016641210,"ct":1544009735649,"a_depth":4,"a":["apps","5cff2cfd-1083-47f1-acc2-46e6440304cc","43976185-12d8-4a50-9a93-9b42e455838d","8de1bf7a-fbd9-4386-9b15-6e0f5e0cdf37"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","c978f91a-22e9-434c-9ad0-c9781eeae198","08a88408-534b-4ca2-b96e-7ee12b00e6d2","fe84ab6a-27cb-496d-aaa9-2c375e7b7b16"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2017-12-06T10:09:56+01:00","by":"","client":"166cf5c1-e05b-442a-a8f6-b9b5205a4a8f","from":""},"ct":1588927892244,"data":{"aliases":[],"controller":"class Controller {\n  init() {\n    locals.current = []\n    locals.retired = []\n\n    Aeppic.subscribe(`p:${document.id} f.id:da18ed53-47e1-4d39-bc02-7e02ef1c22bc`, (documents) => {\n      const { current, retired } = this.filterDocuments(documents)\n\n      locals.current = current\n      locals.retired = retired\n    })\n  }\n\n  filterDocuments(documents) {\n    const current = []\n    const retired = []\n\n    for (const doc of documents) {\n      if (!doc.data.austrittsdatum) {\n        current.push(doc)\n        continue\n      }\n\n      if (Aeppic.DateTime.fromISO(doc.data.austrittsdatum).diffNow('days') < 0) {\n        retired.push(doc)\n      } else {\n        current.push(doc)\n      }\n    }\n\n    return { current, retired }\n  }\n}\n\n ","css":"._CSS {\r\n  padding: var(--bp-page-content-padding);\r\n}","description":"","name":"page","packages":[],"template":"\n<h2>Aktuelle Mitarbeiter</h2>\n<ae-list  list-id=\"table-list\"\n          :documents=\"locals.current\"\n          :params=\"{ columns: 'data.vorname,data.name,data.position,data.eintrittsdatum', designs: ',title,,day' }\"\n          :search-options=\"{ searchAllFields: true }\"\n></ae-list>\n\n<h2>Ausgeschiedene Mitarbeiter</h2>\n<ae-list  list-id=\"table-list\"\n          :documents=\"locals.retired\" \n          :params=\"{ columns: 'data.vorname,data.name,data.position,data.eintrittsdatum,data.austrittsdatum', designs: ',title,,day,day' }\"\n          :search-options=\"{ searchAllFields: true }\"\n></ae-list>\n\n<!-- \n<h2>Aktuelle Mitarbeiter</h2>\n<ae-list  list-id=\"table-list\"\n          :root-document-id=\"document.id\"\n          query-id=\"f812861f-68c8-4818-9972-be7b5474c9b1\"\n          filter='f.id:da18ed53-47e1-4d39-bc02-7e02ef1c22bc AND data.austrittsdatum:\"\"'\n          :params=\"{ columns: 'data.vorname,data.name,data.position,data.eintrittsdatum', designs: ',title,,day' }\"\n          :search-options=\"{ searchAllFields: true }\"\n></ae-list>\n\n<h2>Ausgeschiedene Mitarbeiter</h2>\n<ae-list  list-id=\"table-list\"\n          :root-document-id=\"document.id\"\n          query-id=\"f812861f-68c8-4818-9972-be7b5474c9b1\"\n          filter=\"f.id:da18ed53-47e1-4d39-bc02-7e02ef1c22bc AND data.austrittsdatum: [now TO *]\"\n          :params=\"{ columns: 'data.vorname,data.name,data.position,data.eintrittsdatum,data.austrittsdatum', designs: ',title,,day,day' }\"\n          :search-options=\"{ searchAllFields: true }\"\n></ae-list>\n  -->\n  "},"f":{"id":"design-form","text":"Design","v":"24435d748c76f819"},"id":"784a94e5-786e-41d5-8d1c-05d9a9b5c0af","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-07-03T11:57:10+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"fe84ab6a-27cb-496d-aaa9-2c375e7b7b16","previous":{"v":"f1f5ab1a82452e8d"},"stamps":[],"t":1751543830703,"v":"cef06154824613b1"},{"id":"78cf0743-8054-4a07-919e-cf2e92574187","v":"c5403ac454cf61da","cloneOf":{"id":"5f1e0708-25db-4348-85f2-4b5811d75723","v":"4289ce895b9af975","text":"page"},"originalCloneOf":{"id":"5f1e0708-25db-4348-85f2-4b5811d75723","v":"4289ce895b9af975","text":"page"},"previous":{"v":"6cd4a9d88bda9ff5"},"p":"0b4fe19c-a550-46b7-ada0-6813a60e14bc","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"page","applies":"","template":"<div class=\"_CSS-body-container\" @toolbar=\"controller.toolbarEvent($event.detail)\">\n  <div class=\"_CSS-body\">\n    <div v-if=\"locals.view === 'projects'\" class=\"_CSS-body__column\">\n      <ae-design name=\"projects\"\n                 :document=\"document\"\n                 :param-show-done=\"locals.showDone\"\n                 :param-show-details=\"locals.showDetails\"\n      ></ae-design>\n    </div>\n    <div v-else-if=\"locals.view === 'calendar'\" class=\"_CSS-body__column\">\n      <ae-design name=\"calendar\"\n                 :document=\"document\"\n      ></ae-design>\n    </div>\n    <div v-else-if=\"locals.view === 'milestones'\" class=\"_CSS-body__column\">\n      <ae-design name=\"milestones\"\n                 :document=\"document\"\n      ></ae-design>\n    </div>\n    <ae-design  v-else-if=\"locals.view === 'gantt'\" class=\"_CSS-body__column\"\n                name=\"gantt\"\n                :document=\"document\"\n    ></ae-design>\n  </div>\n</div>\n","css":"._CSS-body-container {\n  padding: var(--bp-page-content-padding);\n  xpadding-top: 12px;\n\n  /* full page */\n  position: absolute;\n  xtop: 48px;\n  top: 0;\n  bottom: 0;\n  left: 0;\n  right: 0;\n}\n\n._CSS-body {\n  xmax-width: 1000px;\n  margin: auto;\n\n  height: 100%;\n}\n\n._CSS-body__column {\n  height: 100%;\n  flex: 1;\n  min-width: 0;\n\n  display: flex;\n  flex-direction: column;\n}\n","controller":"class Controller {\n  init() {\n    locals.showDone = false\n    locals.showDetails = false\n\n    locals.view = Aeppic.LocalStorage.getValue('bp-pref-tasks-view-id') || 'projects'\n  }\n\n  toolbarEvent(eventType) {\n    if (eventType === 'view_done_true') {\n      locals.showDone = true\n      return\n    }\n    if (eventType === 'view_done_false') {\n      locals.showDone = false\n      return\n    }\n    if (eventType === 'view_calendar') {\n      locals.view = 'calendar'\n      return\n    }\n    if (eventType === 'view_projects') {\n      locals.view = 'projects'\n      return\n    }\n    if (eventType === 'view_milestones') {\n      locals.view = 'milestones'\n      return\n    }\n    if (eventType === 'view_gantt') {\n      locals.view = 'gantt'\n      return\n    }\n  }\n}","packages":[]},"locks":[],"created":{"at":"2020-07-01T14:40:04+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2022-03-17T08:38:31+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1647506311710,"ct":1593614404645,"a_depth":4,"a":["apps","59edbdbc-2cab-426a-bb42-6e57c5158e4f","3be7e887-1bcd-4c3c-979f-b20a986c4c48","0b4fe19c-a550-46b7-ada0-6813a60e14bc"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"78ea6a96-d353-4dbc-80f9-91db215fd04f","v":"0b5bdc5f89361b78","previous":{"v":"d8f1af9c36d7fccc"},"p":"1ec5237d-463a-417f-8dac-5bbbbc2e35b7","f":{"id":"design-form","v":"24435d748c76f819","text":"Design"},"data":{"name":"page","template":"<ae-list  class=\"_CSS-list\"\n          list-id=\"table-list\"\n          :search=\"controller.filter\"\n          :root-document-id=\"document.id\" \n          :param-columns=\"data.displayTableColumns\"\n          :param-headers=\"data.displayTableHeaders\"\n          :param-designs=\"data.displayTableDesigns\"\n          :sort=\"locals.sort\"\n          :param-initial-sort-by=\"data.sortBy\"\n          :param-initial-sort-asc=\"data.sortAsc\"\n          :param-show-reset-sorting=\"data.showResetSorting\"\n          :param-row-height=\"data.rowHeight\"\n          param-sort-fields=\"data.name,data.vorname,data.nachname\"\n          :watch-list=\"false\"\n          :search-options=\"{ searchAllFields: true, size: 2000 }\"\n          :param-contents-form=\"data.contentsForm\"\n          >\n</ae-list>","css":"._CSS {\n  padding: 0 var(--bp-page-content-padding);\n  overflow: hidden;\n  /* overflow-y: scroll;\n  overflow-x: scroll;\n  overflow-y: scroll;\n  -webkit-overflow-scrolling: touch; */\n}\n\n._CSS-list {\n  height: 100%;\n}","controller":"class Controller  {\n  init() {\n    locals.filter = ''\n    // TODO: remove params.initialSortBy \n    locals.sort = { field: data.sortBy || params.initialSortBy || 'data.name', descending: typeof params.initialSortAsc === 'boolean' ? !params.initialSortAsc : null }\n  }\n  \n  get filter() {\n    const parts = [`p:${document.id}`]\n\n    // if (locals.filter) {\n    //   parts.push(locals.filter)\n    // }\n\n    if (data.contentsForm.id) {\n      parts.push('f.id:' + data.contentsForm.id)\n    }\n\n    return parts.join(' AND ')\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2019-05-31T09:15:06+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2020-10-29T14:08:04+00:00","by":"ab01efe6-018d-4330-8ec4-5989e212f82a","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1603980484568,"ct":1559294106042,"a_depth":4,"a":["apps","144e85c0-d7f9-4b20-8928-be30f0c78bda","8e6ee7d3-9122-4a2e-8aaf-9fb3bd204b23","1ec5237d-463a-417f-8dac-5bbbbc2e35b7"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[],"hidden":false,"readonly":false},{"id":"7cdfc930-cad9-4ba5-a964-b3786d11a4ab","v":"4bfebd43b0f1866d","previous":{"v":"initial","locks":[]},"p":"c91f85c0-63af-48ac-bc69-94561b27025a","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"page","applies":"","template":"<ae-form v-if=\"Aeppic.Device === 'Desktop'\"\n  ref=\"form\"\n  :document=\"document\" \n  :readonly=\"false\"\n  :auto-save=\"params.autoSave || false\"\n  @toolbar.native=\"controller.toolbarEvent($event.detail)\"></ae-form>\n<ae-form v-else\n  ref=\"form\"\n  layout-id=\"acd83791-970f-4b6e-bebd-d7f3bca52014\"\n  :auto-save=\"true\"\n  :document=\"document\"\n  :readonly=\"false\"\n  @toolbar.native=\"controller.toolbarEvent($event.detail)\"></ae-form>\n\n<h1>Verarbeitungstätigkeiten</h1>\n\n<ae-list  list-id=\"table-list\"\n          :documents=\"locals.referencedVerarbeitungsTaetigkeiten\"\n          param-columns=\"data.name,data.verantwortlicher,data.risikoklasseAlsZahl\">\n</ae-list>\n\n","css":"._CSS {\n  padding: var(--bp-page-content-padding);\n}","controller":"class Controller {\n  async init() {\n    setTimeout(() => {\n     startEditing()\n    })\n\n    const results = await Aeppic.find(`f.id:7894afb7-cbf3-4c0d-96d7-8c48efc1e227`)\n\n    const filteredResults = results.filter((result) => {\n      return result.data.itSysteme && result.data.itSysteme.some((ref) => {\n        return ref.id === document.id\n      })\n    })\n\n    locals.referencedVerarbeitungsTaetigkeiten = filteredResults\n  }\n\n  toolbarEvent(eventType) {\n    if (eventType === 'save') {\n      save()\n      return\n    }\n    if (eventType === 'reset') {\n      resetEdits()\n      return\n    }\n  }\n}\n","packages":[]},"locks":[],"created":{"at":"2018-05-24T16:28:36+02:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","from":"","client":"server"},"modified":{"at":"2018-08-17T10:13:14+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1534500794637,"ct":1527172116552,"a_depth":5,"a":["apps","83c76376-420e-4231-9275-d0fe2ab47c32","ba440134-1703-495e-b869-0f0c8d447f75","91352b74-c5e5-4c05-aa68-f13b0b723f35","c91f85c0-63af-48ac-bc69-94561b27025a"],"a_forms":["folder","application-form","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"7ebfa27a-84c7-4668-b31b-b2d0f05112d2","v":"bb7e41dced51d236","cloneOf":{"id":"cbab18f5-6ab1-4514-876a-aa1898e94980","v":"dcde1cf3f60c8d8f","text":"page"},"originalCloneOf":{"id":"cbab18f5-6ab1-4514-876a-aa1898e94980","v":"dcde1cf3f60c8d8f","text":"page"},"previous":{"v":"e80f378a19305ced"},"p":"816b2d0e-5158-4f0c-a5cf-6069bb76de69","f":{"id":"design-form","v":"3385ac6766f32638","text":"Design"},"data":{"name":"page","template":"<template v-if=\"locals.ready\">\n  <ae-design v-if=\"locals.isVerwalter\" ref=\"page\" @toolbar.native=\"controller.dispatchEventChildren('page', 'toolbar', $event.detail)\" name=\"page--administator\" :document=\"document\" :params=\"params\" v-on=\"$listeners\"></ae-design>\n  <ae-design v-else name=\"page--worker\" ref=\"page\" @toolbar.native=\"controller.dispatchEventChildren('page', 'toolbar', $event.detail)\" :document=\"document\" :params=\"params\" v-on=\"$listeners\"></ae-design>\n</template> ","css":"","controller":"class Controller {\n  async init() {\n    locals.ready = false\n    \n    locals.isVerwalter = false\n    locals.isVerwalter = (await Aeppic.Commands.execute('950f35d3-95ba-4d5a-a164-0074c767d600', document, { Account: Aeppic.Account })).value\n    \n    locals.ready = true\n  }\n\n   dispatchEventChildren(refName, eventName, eventValue) { \n    if (!$refs[refName] || !$refs[refName].$el || !$refs[refName].$el.children) {\n      return\n    }\n    const children = $refs[refName].$el.children\n    for (let i = 0; i < children.length; i++) {\n      children[i].dispatchEvent(new CustomEvent(eventName, {\n        detail: eventValue\n      }))\n    }\n    $refs[refName].$emit(eventName, eventValue)\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-03-31T13:51:24+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-03-31T13:51:47+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1648734707202,"ct":1648734684529,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","816b2d0e-5158-4f0c-a5cf-6069bb76de69"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"80c708e4-c4c7-4367-8862-3e42d4c95bd1","v":"initial","p":"6af8d180-b697-461d-afe7-d9277c1469a6","f":{"id":"design-form","v":"e37099c040ec46e9","text":"Design"},"data":{"name":"page","template":"<ae-list  class=\"_CSS-list\"\n          list-id=\"table-list\"\n          :search=\"controller.filter\"\n          :root-document-id=\"document.id\" \n          :param-columns=\"data.displayTableColumns\"\n          :param-headers=\"data.displayTableHeaders\"\n          :param-designs=\"data.displayTableDesigns\"\n          :sort=\"locals.sort\"\n          :param-initial-sort-by=\"data.sortBy\"\n          :param-initial-sort-asc=\"data.sortAsc\"\n          :param-show-reset-sorting=\"data.showResetSorting\"\n          :param-row-height=\"data.rowHeight\"\n          param-sort-fields=\"data.name,data.vorname,data.nachname\"\n          :watch-list=\"false\"\n          :search-options=\"{ searchAllFields: true, size: 2000 }\"\n          :param-contents-form=\"data.contentsForm\"\n          >\n</ae-list>","css":"._CSS {\n  padding: 0 var(--bp-page-content-padding);\n  overflow: hidden;\n}\n\n._CSS-list {\n  height: 100%;\n}","controller":"class Controller  {\n  init() {\n    locals.filter = ''\n    // TODO: remove params.initialSortBy \n    locals.sort = { field: data.sortBy || params.initialSortBy || 'data.name', descending: typeof params.initialSortAsc === 'boolean' ? !params.initialSortAsc : null }\n  }\n  \n  get filter() {\n    const parts = [`p:${document.id}`]\n\n    // if (locals.filter) {\n    //   parts.push(locals.filter)\n    // }\n\n    if (data.contentsForm.id) {\n      parts.push('f.id:' + data.contentsForm.id)\n    }\n\n    return parts.join(' AND ')\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-12-10T13:06:52+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2020-12-10T13:06:52+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1607605612386,"ct":1607605612385,"a_depth":4,"a":["apps","3fbe0efd-713a-457a-a34c-3a12aa19d6bb","0fb162f4-0f78-4c1e-aad2-43c27e6d98cb","6af8d180-b697-461d-afe7-d9277c1469a6"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"82626429-225a-4ce7-b70e-59126b9900e0","v":"f0fda203aae37c6b","previous":{"v":"fc208093f510f750"},"p":"686d22ba-414e-452f-9795-f6f7bcab37d5","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"page","applies":"","template":"<!-- <ae-layout layout-id=\"e8f8cc49-0118-43ba-ac25-0c016d6dea1d\"></ae-layout> -->\n<div class=\"dbps-body-with-actions\">\n  <div class=\"dbps-body-with-actions__actions-placeholder\"></div>\n  <div class=\"dbps-body-with-actions__actions\">\n    <ae-layout layout-id=\"6273d6a2-0cf0-47da-9e45-18460c50d101\" @edit=\"controller.setEditing(true)\" @reset=\"controller.setEditing(false)\"></ae-layout>\n\n    <ae-layout  layout-id=\"c80364ed-8a1f-40fa-a169-5cc7b45d4fb4\"\n                :param-document=\"document\"\n                :param-vertical=\"true\"\n    ></ae-layout>\n\n    <!-- TODO: remove after refactoring this into command buttons dialog -->\n    <!-- <ae-control style=\"font-size: 2rem;\" name=\"children\" :document=\"document\" field-name=\"movies\" :param-template-parent-id=\"document.id\" param-design=\"card--wide,card\" :param-handle-selected=\"false\" :param-only-add=\"true\" param-layout-id-add=\"71170c86-ae9a-41b0-9281-625cc316caec\" param-template-parent-id=\"67ef16e7-6b61-41b5-b422-f3b1e17be90f\"></ae-control> -->\n    <!-- <ae-control style=\"font-size: 2rem;\" name=\"children\" :document=\"document\" field-name=\"castings\" :param-template-parent-id=\"document.id\" param-design=\"card--wide,card\" :param-handle-selected=\"false\" :param-only-add=\"true\" param-layout-id-add=\"c1b71894-0012-4f61-8be2-e24d4c62736f\" param-template-parent-id=\"67ef16e7-6b61-41b5-b422-f3b1e17be90f\" :param-only-template=\"true\"></ae-control> -->\n\n    <div style=\"height:1.5em;\"></div>\n    <button :title=\"data.castings[0] && data.castings[0].id ? 'Zum Board' : 'Kein Casting erstellt'\" style=\"font-size: 2rem;\" class=\"dbps-button\" @click=\"Aeppic.navigateTo(data.castings[0])\" :disabled=\"!data.castings[0] || !data.castings[0].id\">\n      <ae-icon class=\"fa fa-columns\"></ae-icon>\n    </button>\n    <div style=\"height:3rem;\"></div>\n    <ae-layout style=\"font-size: 2rem;\" layout-id=\"52c03528-281a-41b3-8575-1c0eb20a6da9\" :param-document=\"document\"></ae-layout>\n  </div>\n  \n  <ae-form ref=\"form\" :document=\"document\" :auto-save=\"true\" layout-id=\"5305772d-2a41-4524-a38e-91ccec4deefa\" :readonly=\"!locals.edit\" @data-changed=\"Aeppic.commit(document)\" @save=\"Aeppic.save(document)\"></ae-form>\n  \n</div>\n\n<div class=\"dbps-bottom-spacer\"></div>","css":"","controller":"class Controller {\n  async init () {\n    // await Aeppic.nextRenderPass()\n\n    // startEditing()\n  }\n\n  setEditing(value) {\n    // $refs.form && $refs.form.save()\n\n    locals.edit = value\n  }\n}","packages":[]},"locks":[],"created":{"at":"2018-05-25T10:48:05+00:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","from":"","client":"server"},"modified":{"at":"2020-10-13T10:11:33+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1602583893304,"ct":1527245285729,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","686d22ba-414e-452f-9795-f6f7bcab37d5"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"8311ff3b-4916-40ef-b041-80df6abfd7c7","v":"0215d228dd46fa7a","previous":{"v":"initial"},"p":"8775cf16-c122-4de4-9859-a57ae99dcc5c","f":{"id":"design-form","v":"49954170df6a253b","text":"Design"},"data":{"name":"page","template":"<ae-list  list-id=\"2dab232c-2c8a-4aa4-b3f9-6023a7116161\"\r\n          query-id=\"f812861f-68c8-4818-9972-be7b5474c9b1\"\r\n          :root-document-id=\"document.id\"\r\n          param-design=\"card,title\"\r\n          @selected=\"Aeppic.navigateTo($event)\"\r\n          sort=\"data.name\"\r\n> </ae-list>","css":"._CSS {\r\n  padding: var(--bp-page-content-padding);\r\n}","controller":"","packages":[],"description":""},"locks":[],"created":{"at":"2018-12-07T12:11:01+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2020-05-08T08:52:50+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1588927970370,"ct":1544184661197,"a_depth":4,"a":["apps","781ff5de-69db-49dc-99f0-f328b308cd7d","dbd0bd68-3479-4032-9303-9d51615c27a7","8775cf16-c122-4de4-9859-a57ae99dcc5c"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"8651da48-d312-4aea-8de7-4e84b35d29da","v":"1b15ec50160075f2","previous":{"v":"56a101f2c8ab2623"},"p":"root-folder-form","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"page","applies":"","template":"<div style=\"padding: 20px; display:flex; justify-content: center;align-items: center;flex-flow:column;\">\n\n  <ae-icon class=\"fa fa-exclamation-circle fa-3x\"></ae-icon>\n\n  <p>\n    Es ist ein unerwartetes Problem aufgetreten.\n  </p>\n  <p>\n    Bitte melden Sie sich neu an. Sollte das Problem weiterhin auftreten werden Sie sich an Ihren Bizpin Administrator.\n  </p>\n\n  <button class=\"bp-button bp-button--raised\" @click=\"Aeppic.logout()\">Abmelden</button>\n</div>","css":"","controller":"init() {\n  if (Aeppic.Account && Aeppic.HomePage) {\n    Aeppic.navigateTo(Aeppic.HomePage)\n  }\n}","packages":[]},"locks":[],"created":{"at":"2018-09-26T14:38:07+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2019-02-19T08:45:20+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1550565920046,"ct":1537972687452,"a_depth":3,"a":["system","system-folder-forms-folder","root-folder-form"],"a_forms":["system-folder-form","form-folder","form"],"inheritedLocks":[null,null,null,null],"stamps":[]},{"id":"8b21b822-cff0-45d6-baa7-51989f5ec6c0","v":"483368d1afe06e19","previous":{"v":"initial","p":"1d539cd5-fc27-4c9b-bcb0-8ddc01e6363a"},"p":"f69da93c-1d0b-4f18-97f4-82e61073e157","f":{"id":"design-form","v":"baf08f1171a94bca","text":"Design"},"data":{"name":"page","template":"<ae-list  list-id=\"eaa0486e-e98b-4f37-abcd-7296ad172f2b\"\n          :documents=\"locals.contracts\"\n          :param-payments=\"locals.payments\"\n          :param-payments-by-contracts=\"locals.paymentsByContract\"\n></ae-list>","css":"","controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Payment: 'e10a8072-024c-44a7-80e3-4cd75c6ec1ea',\n      Contract: '859f370d-2f40-4ab0-a841-134f57513254'\n    }\n\n    // locals.payments = []\n    locals.contracts = []\n\n    locals.contracts = await Aeppic.find(`a:${document.a[0]} f.id:${this.FORMS.Contract}`, { size: 9999, sort: { field: 'created.at', descending: true }})\n    // const payments = await Aeppic.find(`f.id:${this.FORMS.Payment}`, { size: 9999, sort: { field: 'created.at', descending: true }})\n\n    // const uniqueContracts = new Set([...payments.map(p => p.p)])\n    // const contracts = await Aeppic.getAll([...uniqueContracts])\n\n    // locals.payments = payments\n    // locals.contracts = contracts\n  }\n}\n\n    // const paymentsByContract = {} \n    // for (const payment of payments) {\n    //   const contractId = payment.p\n    //   if (!paymentsByContract[contractId]) {\n    //     paymentsByContract[contractId] = []\n    //   }\n\n    //   paymentsByContract[contractId].push(payment)\n    // }\n    // locals.paymentsByContract = paymentsByContract","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-07-22T17:31:14+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2021-01-05T15:11:37+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1609859497570,"ct":1595431874032,"a_depth":4,"a":["apps","bfeee3b0-ad25-4bba-a51c-01584d72c45a","2fee3f35-6446-483d-aafe-4d2bc1deb83e","f69da93c-1d0b-4f18-97f4-82e61073e157"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"8b5d39a4-a8bf-417c-af80-748ad593ddfd","v":"8c3fa36a5682a312","previous":{"v":"b07efae3342fcbde"},"p":"296d07ef-b468-480e-8e8b-270b83f68863","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"page","applies":"","template":"<div v-if=\"locals.canEdit\" class=\"_CSS-container _CSS-container--edit\" @toolbar=\"controller.toolbarEvent($event.detail)\">\n  <ae-form :document=\"document\" ></ae-form>\n  <ae-expandable class=\"_CSS-expandable\">\n    <ae-layout  layout-id=\"d0db9ea4-c082-4e49-bba9-fd900016dedc\"\n                :param-markdown=\"data.markdown\"\n                @click.native.capture.stop=\"controller.onClick($event)\"\n                style=\"overflow: auto;\"\n    ></ae-layout>\n  </ae-expandable>\n</div>\n<div v-else class=\"_CSS-container\">\n  <ae-layout  layout-id=\"d0db9ea4-c082-4e49-bba9-fd900016dedc\"\n              :param-markdown=\"data.markdown\"\n              @click.native.capture.stop=\"controller.onClick($event)\"\n  ></ae-layout>\n</div>","css":"._CSS-container--edit {\n  flex: 1;\n  display: flex;\n  flex-flow: row;\n}\n\n._CSS-container--edit > * {\n  width: 50%;\n}\n\n._CSS-expandable {\n  position: absolute;\n  min-height: 0;\n  height: 100%;\n  right: 0;\n} ","controller":"class Controller {\n  async init() {\n    const canEdit = await Aeppic.canEdit(document)\n    locals.canEdit = Aeppic.Account && Aeppic.Account.data.isGroupAccount === false && canEdit === true\n\n    if (!locals.canEdit) {\n      return\n    }\n\n    await Aeppic.nextRenderPass()\n    startEditing()\n  }\n   onClick(e) {\n    if (e.target.tagName === 'A') {\n      const href = e.target.getAttribute('href')\n\n      if (!href.startsWith('aeppic/')) {\n        return\n      }\n\n      e.preventDefault()\n      Aeppic.navigateTo(href.substring(7))\n    }\n\n    if (e.target.tagName.startsWith('H')) {\n      const tabsContainer = e.target.parentElement.parentElement\n\n      const activeTabContainer = tabsContainer.querySelector('.tab--active')\n      if (activeTabContainer) {\n        activeTabContainer.classList.remove('tab--active')\n      }\n\n      const futureActiveTabContainer = e.target.parentElement\n      futureActiveTabContainer.classList.add('tab--active')\n    }\n  }\n\n  toolbarEvent(eventType) {\n    console.log(eventType)\n    if (eventType === 'save') {\n      save()\n      return\n    }\n    if (eventType === 'reset') {\n      resetEdits()\n      return\n    }\n  }\n}\n\n ","packages":[]},"locks":[],"created":{"at":"2018-04-18T15:40:54+02:00","by":"","from":"","client":"server"},"modified":{"at":"2023-07-13T08:22:29+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1689236549706,"ct":1524058854464,"a_depth":4,"a":["apps","9e7fd821-5bd9-4314-a542-34431752f51f","46c5b63b-50ff-47ea-83a8-72c35dc21618","296d07ef-b468-480e-8e8b-270b83f68863"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"8c9981d8-6471-44c1-a9a0-7b7fcac216b5","v":"8c01aa4d7e970c0e","previous":{"v":"75d6a81a169dd78b"},"p":"account","f":{"id":"design-form","v":"49954170df6a253b","text":"Design"},"data":{"name":"page","template":"<!-- <ae-layout  layout-id=\"acd83791-970f-4b6e-bebd-d7f3bca52014\"\n            :param-document=\"document\"\n            :param-fields-to-display=\"['name', 'mobilePhone', 'email']\"\n            :param-no-tabs=\"true\"\n            :param-readonly=\"true\"\n></ae-layout>  -->\n\n<div class=\"_CSS-status\">\n  <div class=\"_CSS-table\">\n    <div class=\"_CSS-header\">\n      <div class=\"_CSS-header__cell\">\n        Attribut\n      </div>\n      <div class=\"_CSS-header__cell\"> </div>\n    </div>\n\n    <div class=\"_CSS-row\">\n      <div class=\"_CSS-row__cell\">\n        Anmeldename\n      </div>\n      <div class=\"_CSS-row__cell\">\n        {{ data.name }}\n      </div>\n    </div>\n\n    <div class=\"_CSS-row\">\n      <div class=\"_CSS-row__cell\">\n        Benutzer-ID\n      </div>\n      <div class=\"_CSS-row__cell\">\n        {{ document.id }}\n      </div>\n    </div>\n\n    <div class=\"_CSS-row\">\n      <div class=\"_CSS-row__cell\">\n        E-Mail\n      </div>\n      <div class=\"_CSS-row__cell\">\n        {{ data.email || '-' }}\n      </div>\n    </div>\n\n    <div class=\"_CSS-row\">\n      <div class=\"_CSS-row__cell\">\n        Telefonnummer\n      </div>\n      <div class=\"_CSS-row__cell\">\n        {{ data.mobilePhone || '-' }}\n      </div>\n    </div>\n\n    <div class=\"_CSS-row\">\n      <div class=\"_CSS-row__cell\">\n        Account aktiv\n      </div>\n      <div class=\"_CSS-row__cell\">\n        <ae-icon v-if=\"!data.disabled\" class=\"fa fa-check\"></ae-icon>\n        <ae-icon v-else class=\"fa fa-times\"></ae-icon>\n      </div>\n    </div>\n    <!-- <div class=\"_CSS-row\">\n      <div class=\"_CSS-row__cell\">\n        Letzte Aktivität (Seitenwechsel)\n      </div>\n      <div class=\"_CSS-row__cell\">\n        <template v-if=\"locals.lastActive\">\n          {{Aeppic.DateTime.fromISO(locals.lastActive).toLocaleString(Aeppic.DateTime.DATETIME_SHORT)}}\n        </template>\n        <template v-else>\n          Keine, da bisher keine Anmeldung durchgeführt\n        </template>\n      </div>\n    </div> -->\n    <div class=\"_CSS-row\">\n      <div class=\"_CSS-row__cell\">\n        Direktes Anmelden erlaubt\n      </div>\n      <div class=\"_CSS-row__cell\">\n        <ae-icon v-if=\"data.allowDirectLogin\" class=\"fa fa-check\"></ae-icon>\n        <ae-icon v-else class=\"fa fa-times\"></ae-icon>\n      </div>\n    </div>\n    <div class=\"_CSS-row\">\n      <div class=\"_CSS-row__cell\">\n        Ist ein Gruppenaccount\n      </div>\n      <div class=\"_CSS-row__cell\">\n        <ae-icon v-if=\"data.isGroupAccount\" class=\"fa fa-check\"></ae-icon>\n        <ae-icon v-else class=\"fa fa-times\"></ae-icon>\n      </div>\n    </div>\n    <div class=\"_CSS-row\">\n      <div class=\"_CSS-row__cell\">\n        Ist ein externer Account\n      </div>\n      <div class=\"_CSS-row__cell\">\n        <ae-icon v-if=\"locals.profilePage?.data.externerMitarbeiter\" class=\"fa fa-check\"></ae-icon>\n        <ae-icon v-else class=\"fa fa-times\"></ae-icon>\n      </div>\n    </div>\n  </div>\n</div>\n\n<div class=\"_CSS-table\" v-if=\"data.groups.length\">\n  <div class=\"_CSS-header\">\n    <div class=\"_CSS-header__cell\">\n      Gruppen des Benutzers\n    </div>\n    <div class=\"_CSS-header__cell\">\n      Indirekt Mitglied in Gruppen ...\n    </div>\n  </div>\n  <div v-for=\"(group, index) of data.groups\" class=\"_CSS-row\">\n    <ae-design name=\"group-with-indirect\" :document=\"group\" param-width=\"400px\"></ae-design>\n  </div>\n\n  <!-- <div style=\"margin-top: 12px;\">\n    <button class=\"bp-button bp-button--transparent\">\n      Grupppe hinfügen\n    </button>\n  </div> -->\n</div>\n\n<!-- <h3>Groups</h3>\n<ae-list  :documents=\"controller.directGroupMemberships\"\n                list-id=\"2dab232c-2c8a-4aa4-b3f9-6023a7116161\"\n        @selected=\"Aeppic.navigateTo($event)\"\n        param-design=\"security-card\"\n></ae-list> -->\n\n<!-- <h3>Indirect group memberships</h3>\n<div  class=\"_CSS-list\">\n  <div v-for=\"(groupIdsIncludingIndirect, groupId) in locals.indirectGroupsMap\">\n    <ae-design  name=\"indirect-group,title\"\n                :document-id=\"groupId\"\n                :param-indirect-references=\"groupIdsIncludingIndirect\"\n                @click.native=\"Aeppic.navigateTo(groupId)\"\n    ></ae-design>\n  </div>\n</div> -->\n\n<!-- <div class=\"_CSS-table\">\n  <h3>Zusätzliche Zugriffsrechte des Benutzers (\"Schlüssel\")</h3>\n  <p>\n    <span>Legende</span><br>\n    <ae-icon class=\"fa fa-eye\"></ae-icon> - Betrachten<br>\n    <ae-icon class=\"fa fa-pencil\"></ae-icon> - Editieren\n  </p>\n  <ae-list  :search=\"'f.id:key-form AND data.accounts:' + document.id\"\n              list-id=\"2dab232c-2c8a-4aa4-b3f9-6023a7116161\"\n              @selected=\"Aeppic.navigateTo($event)\"\n              param-design=\"accessible-documents\"\n              param-min-column-width=\"1fr\"\n  ></ae-list>\n</div> -->\n\n<h3>Alle Zugriffsrechte des Benutzers</h3>\n\n<ae-layout v-if=\"locals.allGroupsIds\" layout-id=\"d5255c05-8040-47e5-a2e3-0e499be8579d\" :param-document=\"document\" :param-account-id=\"document.id\" :param-groups-ids=\"locals.allGroupsIds\"></ae-layout>\n ","css":"._CSS {\n  padding: var(--bp-page-content-padding);\n}\n\n._CSS-list {\n  grid-template-columns: repeat(auto-fill, minmax(10%, 400px));\n  grid-auto-rows: auto;\n  display: grid;\n  grid-gap: 4px;\n}\n\n._CSS-card {\n  background: white;\n}\n\n._CSS-groups {\n  display: flex;\n  flex-flow: column;\n  overflow: scroll;\n}\n\n._CSS-table {\n  background: var(--ae-background);\n  overflow: auto;\n  padding: 12px;\n  margin: 12px 0;\n}\n\n._CSS-header {\n  display: flex;\n  padding: 12px 0;\n  border-bottom: 1px solid var(--ae-background-d2);\n  font-weight: 700;\n  color: var(--ae-foreground-l2);\n}\n\n._CSS-header__cell {\n  min-width: 400px;\n  width: 400px;\n}\n\n._CSS-row {\n  display: flex;\n  padding: 12px 0;\n  border-bottom: 1px solid var(--ae-background-d2);\n}\n\n._CSS-row__cell {\n  min-width: 400px;\n  width: 400px;\n}\n\n._CSS-row:nth-child(odd) {\n  background: var(--ae-background-d1);\n}","controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      RecentlyVisitedDocuments: '0a8dbc2a-384e-457b-ab48-57013109ba44'\n    }\n\n    locals.indirectGroupsMap = {}\n    locals.lastActive = null\n    locals.profilePage = null\n\n    const groups = (await Aeppic.getAll(data.groups)).filter(g => g !== null)\n    const indirectGroupsMap = await this._indirectGroupMemberships(groups)\n\n    for (const groupId in indirectGroupsMap) {\n      indirectGroupsMap[groupId] = [... new Set(indirectGroupsMap[groupId])]\n    }\n\n    locals.indirectGroupsMap = indirectGroupsMap\n\n    locals.allGroupsIds = [...groups.map(ref => ref.id), ...Object.keys(indirectGroupsMap)]\n\n    locals.profilePage = await Aeppic.getProfilePageForAccount(document)\n\n    // this.subscribeRecentlyVisitedDocument()\n  }\n\n  // async subscribeRecentlyVisitedDocument() {\n  //   const profilePage = await Aeppic.getProfilePageForAccount(document)\n\n  //   if (!profilePage) {\n  //     return\n  //   }\n\n  //   Aeppic.subscribe(`p:${profilePage.id} f.id:${this.FORMS.RecentlyVisitedDocuments}`, (documents) => {\n  //     const recentlyVisitedDocument = documents[0]\n\n  //     locals.lastActive = recentlyVisitedDocument.modified.at\n  //   })\n  // }\n\n  get directGroupMemberships() {\n    return data.groups\n  }\n\n  async _indirectGroupMemberships(groups) {\n    const indirects = {}\n    \n    for (const group of groups) {\n      const containingGroup = group.data.group.id ? await Aeppic.get(group.data.group.id) : null\n\n      if (containingGroup) {\n        if (!indirects[containingGroup.id]) {\n          indirects[containingGroup.id] = []\n        }\n\n        indirects[containingGroup.id].push(group.id)\n\n        const upperIndirectMemberships = await this._indirectGroupMemberships([containingGroup])\n\n        if (upperIndirectMemberships) {\n          for (const key in upperIndirectMemberships) {\n            if (!indirects[key]) {\n              indirects[key] = []\n            }\n\n            indirects[key].push(...upperIndirectMemberships[key])\n          }\n        }\n      }\n    }\n\n    return indirects\n  }\n}   ","packages":[],"description":""},"locks":[],"created":{"at":"2019-01-10T14:54:35+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2021-10-08T08:52:55+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1633683175073,"ct":1547132075275,"a_depth":5,"a":["system","b2533f7b-ea85-4680-99ed-d8e11be641b9","0e6939d6-9b93-4165-b6bd-977e4da881f3","627f5b74-3baf-45f8-a1d3-a5936839b844","account"],"a_forms":["system-folder-form","folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"8dc94dc4-0c75-4f95-99d3-2f1be72cedf0","v":"4a3e500c8f490673","previous":{"v":"0bfcea6ec2c19d09"},"p":"4551c597-7595-4858-8b7f-207a7fb15b3e","f":{"id":"design-form","v":"bcdfee0bbf32737b","text":"Design"},"data":{"name":"page","template":"<ae-design name=\"page--intra-company\" :document=\"document\" style=\"flex: 1;\"></ae-design>\n","css":"._CSS {\n  padding: var(--bp-page-content-padding);\n  display: flex;\n}\n","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2018-10-30T12:49:12+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2020-10-13T10:11:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1602583892013,"ct":1602583892013,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","4551c597-7595-4858-8b7f-207a7fb15b3e"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"8dff1bb5-d02f-4a8f-b20a-fd53c1d44e3f","v":"initial","p":"fe83e9dd-c628-4109-b1b6-5461dec2d156","f":{"id":"design-form","v":"2d98bf27c3108340","text":"Design"},"data":{"name":"page","applies":"","description":"","template":"<ae-design  name=\"preview\"\n            :document=\"document.data.template\"\n            :param-view-data=\"data\"\n></ae-design>\n\n","css":"._CSS {\n  display: flex;\n}","controller":"","packages":[]},"locks":[],"created":{"at":"2018-10-30T12:56:30+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2018-10-30T12:56:30+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1540904190416,"ct":1540904190416,"a_depth":5,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","1116d922-d8df-4da5-a7c2-70191d07d929","5cdd2d20-7676-43e3-8997-e176dd3434ed","fe83e9dd-c628-4109-b1b6-5461dec2d156"],"a_forms":["folder","application-form","folder","form-folder","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"8ff44264-ff50-4fdf-9494-47ca086dd916","v":"initial","p":"133d6aab-1f5b-447f-a513-e6d468388476","f":{"id":"design-form","v":"3385ac6766f32638","text":"Design"},"data":{"name":"page","template":"<ae-splitter  :split=\"30\" class=\"_CSS-view\">\r\n  <div slot=\"left-pane\">\r\n    <div class=\"_CSS-options\">\r\n      <label>\r\n        <input type=\"checkbox\" v-model=\"locals.showAll\" @change=\"controller.showAllChanged()\">\r\n        Show All components\r\n      </label>\r\n    </div>\r\n    <ae-list\r\n      class=\"_CSS-tree\"\r\n      list-id=\"f47b218b-fea3-4b55-8c2a-43d4fe6a9c85\" \r\n      :documents=\"locals.documents\"\r\n      @selected=\"(d) => controller.select(d)\"\r\n      ></ae-list>\r\n  </div>\r\n  <ae-design slot=\"right-pane\" @ae-drill-into.native.stop=\"controller.drill($event)\" :document=\"locals.selected\" name=\"detail-page,page\"></ae-design>\r\n</ae-splitter>  \r\n ","css":"._CSS-options {\r\n  display:flex;\r\n  padding: var(--ae-size-5) 0 var(--ae-size-3) var(--ae-size-4);\r\n}\r\n\r\n._CSS-tree {\r\n  --ae-tree-indent: 28px;\r\n}\r\n","controller":"class Controller {\r\n  async init() {\r\n    locals.selected = null\r\n    locals.showAll = false\r\n    this.query()\r\n\r\n    this._readRoute()\r\n \r\n    this._onpopstate = () => {\r\n      this._readRoute()\r\n    }\r\n\r\n    packages.window.addEventListener('popstate', this._onpopstate)\r\n  }\r\n\r\n  destroy() {\r\n    packages.window.removeEventListener('popstate', this._onpopstate)\r\n  }\r\n\r\n  async _readRoute() {\r\n    const selectedIdFromUrl = Aeppic.Root.params && Aeppic.Root.params.queryParams?.s\r\n\r\n    if (selectedIdFromUrl) {\r\n      locals.selected = await Aeppic.get(selectedIdFromUrl)\r\n    }\r\n  }\r\n\r\n  showAllChanged() {\r\n    this.query()\r\n  }\r\n\r\n  query() {\r\n    if (this.documentsSubscription) {\r\n      this.documentsSubscription.cancel()\r\n    }\r\n\r\n\r\n    this.documentsSubscription = Aeppic.subscribe(\r\n      `p:b4da3a36-744f-4617-9faa-c970043cd684`,\r\n      { size: 1000, sort: 'data.name' },\r\n      async (documents) => {\r\n        const filtered = []\r\n        \r\n        for (const d of documents) {\r\n          if (locals.showAll) {\r\n            filtered.push(d)\r\n            continue\r\n          }\r\n\r\n          if (await this.isReferenced(d, documents)) {\r\n            continue\r\n          } \r\n\r\n          filtered.push(d)\r\n        }\r\n\r\n        const groups = []\r\n        const baseComponents = []\r\n        const articles = []\r\n        const unknowns = []\r\n\r\n        for (const c of filtered) {\r\n          // -barcode-alt\" v-if=\"document.data.isSingleItemComponent\" :key=\"id('items')\"></ae-icon>\r\n          // \" v-else-if=\"document.data.components.length > 1\" :key=\"id('components')\"></ae-icon>\r\n          // -box\" v-else :key=\"id('component')\"></ae-icon>\r\n          if (c.data.components.length > 1) {\r\n            groups.push(c)\r\n          } else if (c.data.isSingleItemComponent) {\r\n            articles.push(c)\r\n          } else if (c.data.components.length === 1) {\r\n            baseComponents.push(c)\r\n          } else {\r\n            unknowns.push(c)\r\n          }\r\n        }\r\n  \r\n        locals.documents = [...groups, ...baseComponents, ...articles, ...unknowns]\r\n      }\r\n    )\r\n  } \r\n\r\n  async select(d) {\r\n    if (typeof d === 'string') {\r\n      locals.selected = await Aeppic.get(d)\r\n    } else {\r\n      locals.selected = d\r\n    }\r\n\r\n    Aeppic.navigateTo(document.id, {\r\n      s: locals.selected.id\r\n    })\r\n  }\r\n\r\n  async isReferenced(d, others) {\r\n    for (const other of others) {\r\n      if (other === d) {\r\n        continue\r\n      }\r\n\r\n      const usedComponents = await Aeppic.getAll(other.data.components)\r\n      for (const usedComponent of usedComponents) {\r\n        if (usedComponent.data.component.id === d.id) {\r\n          return true\r\n        } \r\n      } \r\n    }\r\n\r\n    return false\r\n  }\r\n\r\n  drill(event) {\r\n    // console.log(event)\r\n    this.select(event.detail.targetDocument)\r\n  }\r\n}","packages":[{"id":"10843fbf-4f0c-416b-be7d-42d6bbd0ae68","v":"5b7bb60ebbac81cb","text":"Window"}],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-11-02T09:38:37+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-11-02T09:38:37+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1635845917400,"ct":1635845917400,"a_depth":4,"a":["apps","781ff5de-69db-49dc-99f0-f328b308cd7d","dbd0bd68-3479-4032-9303-9d51615c27a7","133d6aab-1f5b-447f-a513-e6d468388476"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"906f545f-e2c6-497c-ab28-c4c7482a12f8","v":"initial","p":"5d7d1886-fee5-43f5-8b9d-d1a3e11fb2c4","f":{"id":"design-form","v":"2d98bf27c3108340","text":"Design"},"data":{"name":"page","applies":"","description":"","template":"<ae-design  name=\"preview\"\n            :document=\"document.data.template\"\n            :param-view-data=\"data\"\n></ae-design>\n\n","css":"._CSS {\n  display: flex;\n}","controller":"","packages":[]},"locks":[],"created":{"at":"2018-10-30T12:57:04+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2018-10-30T12:57:04+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1540904224142,"ct":1540904224142,"a_depth":5,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","1116d922-d8df-4da5-a7c2-70191d07d929","5cdd2d20-7676-43e3-8997-e176dd3434ed","5d7d1886-fee5-43f5-8b9d-d1a3e11fb2c4"],"a_forms":["folder","application-form","folder","form-folder","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"90ad58cf-482f-42e7-90e1-14f200e8fc3a","v":"initial","previous":{"v":""},"p":"2f70253a-5ee5-48e0-9716-b3a21880a728","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"page","applies":"","template":"<div layout=\"column\" flex layout-padding class=\"bg-white\">\n  <document-list flex query-id=\"children-query\" list-id=\"2e798091-303f-406b-a42a-93aa1cd8425c\" root-document=\"document\" ></document-list>\n <!--  <rs-tabbed-form flex layout=\"column\" document=\"document\"></rs-tabbed-form> -->\n</div>\n    ","css":"","controller":"","packages":[]},"locks":[],"lockRefs":[],"created":{"at":"2018-02-06T09:48:04+01:00","by":"","from":"","client":"server"},"modified":{"at":"2018-02-06T09:48:04+01:00","by":"","from":"","client":"server"},"t":1517906884082,"ct":1517906884082,"a_depth":4,"a":["apps","b791df37-6eef-4a3e-9066-1b79e0bdad31","35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f","2f70253a-5ee5-48e0-9716-b3a21880a728"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"91612765-49b2-4b1e-8243-3e1c8c378c5e","v":"1ef350de8910fa32","previous":{"v":"51f692204e7e1fe4"},"p":"1a899567-18c8-4428-a377-caa9b3ed6c9f","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"page","template":"<ae-list  list-id=\"table-list\"\n          :root-document-id=\"document.id\"\n          query-id=\"f812861f-68c8-4818-9972-be7b5474c9b1\"\n          :filter=\"'f.id:' + locals.FORMS.ArbeitEintrag\"\n          :param-list-form-id=\"locals.FORMS.ArbeitEintrag\"\n          @selected=\"Aeppic.drillInto($event, arguments[1])\"\n          :search-options=\"{ searchAllFields: true, size: 9999 }\"\n          param-columns=\"data.nummer,data.beschreibung\"\n          param-fixed-column-widths=\"100,\"\n></ae-list>\n","css":"","controller":"class Controller {\n  init() {\n    this.FORMS = {\n      ArbeitEintrag: '204787ca-59c2-4b11-b866-aa05fa9c9891'\n    }\n    locals.FORMS = this.FORMS\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-04-07T14:41:04+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-04-14T11:07:54+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1649934474919,"ct":1649342464678,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","1a899567-18c8-4428-a377-caa9b3ed6c9f"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"9198c112-2440-46b5-bb68-1327d35ced50","v":"2006cecf306a9b13","previous":{"v":"24f4bbca8df53ae3"},"p":"4dd133fa-e12a-4ff3-a49e-9422fc4c4caf","f":{"id":"design-form","v":"24435d748c76f819","text":"Design"},"data":{"name":"page","template":"\n<ae-list \n  style=\"height:100%\"\n  v-if=\"locals.canEdit != null && locals.resources.array.length\" \n  list-id=\"c53687df-2cde-4630-9820-1ae540f6e11d\"\n  :documents=\"locals.appointments\"\n  param-title=\"Kalender\"\n  :param-calendars=\"locals.resources\"\n  :param-active-calendars-map=\"locals.activeResources.map\"\n  :param-document-to-calendar-mapper=\"(doc) => controller.mapDocumentToCalendar(doc)\"\n  :param-document=\"document\"\n  @calendar-remove=\"controller.removeCalendar($event)\"\n  @calendar-add=\"controller.addCalendar($event)\"\n  :param-readonly=\"true\"\n  param-map-start-field=\"data.bis\"\n  :param-debug=\"true\"\n></ae-list>\n","css":"","controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Mitarbeiter: 'd2ac3563-3c3f-4f02-b923-9b67abf98d10',\n      Termin: '941dad3f-07ee-401d-a7f5-244eba256937',\n      Unternehmen: 'c69a0c1c-6c53-40c2-87e8-5ace866bf1df',\n      Aufgabe: '3d456c38-6282-416e-8c5e-7d20b0517a6e',\n      AufgabeEnergieberater: '88b1f60e-71f6-46f5-94ea-3d7bbe972950'\n    }\n\n    this.subscription = null\n\n    locals.appointments = []\n    locals.resources = {\n      array: [],\n      map: {}\n    }\n    locals.activeResources = {\n      array: [],\n      map: {}\n    }\n\n\n    const canEdit = await Aeppic.canEdit(document)\n    locals.canEdit = Aeppic.Account && Aeppic.Account.data.isGroupAccount === false && canEdit === true\n\n    const resources = await this.getResources()\n    if (Aeppic.ProfilePage) {\n      const activeResourcesArray = resources.array.filter(res => res.id === Aeppic.ProfilePage.id)\n      const activeResourcesMap = activeResourcesArray.reduce((result, item) => {\n        result[item.id] = item\n        return result\n      }, {})\n\n      console.log(activeResourcesArray)\n      locals.activeResources = {\n        array: activeResourcesArray,\n        map: activeResourcesMap\n      } \n    }\n\n    locals.resources = resources\n\n    this.subscribeAppointments()\n  }\n    \n  async getResources() {\n    const queryString = `a:${document.a[0]} f.id:${this.FORMS.Mitarbeiter}`\n    const asArray = await Aeppic.find(queryString)\n    const asMap = {}\n    asArray.forEach(resource => {\n      if (!asMap[resource.id]) {\n        asMap[resource.id] = resource\n      }\n    })\n\n    return {\n      array: asArray,\n      map: asMap\n    }\n  }\n\n  async subscribeAppointments() {\n    // NOTE: building to many conditions proved to be very slow. Use a big query and filter it later!\n    // if (!locals.activeResources.array.length) {\n    //   this.subscription && this.subscription.cancel()\n    //   this.subscription = null\n\n    //   locals.appointments = []\n\n    //   return\n    // }\n    // const appointmentsParentQuery = locals.activeResources.map(r => `data.verantwortlich:${r.id}`).join(` OR `)\n    // const search = `(f.id:${this.FORMS.AufgabeEnergieberater} OR f.id:${this.FORMS.Aufgabe}) data.erledigt:false data.bis:[* TO *] (${appointmentsParentQuery})`\n\n\n    const search = `(f.id:${this.FORMS.AufgabeEnergieberater} OR f.id:${this.FORMS.Aufgabe}) data.erledigt:false data.bis:[* TO *]`\n    const findOptions = {\n      size: 9999,\n      sort: 'data.bis',\n    }\n\n    this.subscription = Aeppic.updateSubscription(this.subscription, search, findOptions, async (appointments) => {\n      locals.appointments = await Aeppic.getAll(appointments)\n    })\n  }\n\n  mapDocumentToCalendar(doc) {\n    if ('verantwortlich' in doc.data) {\n      if (Array.isArray(doc.data.verantwortlich)) {\n        return doc.data.verantwortlich.map(v => v.id).filter(vId => !!locals.activeResources.map[vId])\n      }\n\n      const singleRef = doc.data.verantwortlich.id\n\n      if (!!locals.activeResources.map[singleRef]) {\n        return [singleRef]\n      }\n    }\n \n    return [null]\n  }\n\n  async removeCalendar(calendar) {\n    const c = await Aeppic.get(calendar)\n    console.log('remove', calendar, c)\n    locals.activeResources.array = locals.activeResources.array.filter(r => r.id !== c.id)\n    locals.activeResources.map = Object.assign({}, locals.activeResources.map, { [c.id]: null })    \n  }\n  \n  async addCalendar(calendar) {\n    const c = await Aeppic.get(calendar)\n    console.log('add', calendar,c )\n    locals.activeResources.array.push(c)\n    locals.activeResources.map = Object.assign({}, locals.activeResources.map, { [c.id]: c})    \n  }\n}\n\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-05-08T08:51:40+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2021-11-10T11:40:03+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1636544403779,"ct":1588927900345,"a_depth":4,"a":["apps","49babc91-9123-4d92-b850-ce4d10f0e1b4","b6b5ad5b-124f-4b1c-8f55-74294451a2ba","4dd133fa-e12a-4ff3-a49e-9422fc4c4caf"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"91adf929-79d7-4b5d-9326-0fc60bf25979","v":"820f19d61679e7d1","previous":{"v":"5eef4c6477fb65f6"},"p":"f5f395b4-dc48-4827-9774-5d4937cfbc45","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"page","applies":"","template":"<div class=\"_CSS-buttons\">\r\n  <div class=\"_CSS-button\" v-for=\"button in locals.buttons\" @click=\"Aeppic.navigateTo(button.data.target)\">\r\n    <ae-icon class=\"_CSS-button__icon\" :class=\"{ [button.data.namedIcon]: true }\" :style=\"{ color: button.data.namedIconColor ? button.data.namedIconColor : false }\"></ae-icon>\r\n    <span>{{ button.data.displayName || button.data.name }}</span>\r\n  </div>\r\n</div>\r\n\r\n <!-- <div class=\"_CSS-card\" style=\"background:#FFCDD2\" @click=\"Aeppic.navigateTo('b588fbf1-8317-4d0c-8433-62ae6f6b5a6e')\">\r\n\t<ae-icon class=\"_CSS-icon fa fa-users\"></ae-icon>\r\n\t<h3>Mitarbeiter</h3>\r\n</div>\r\n<div class=\"_CSS-card\" style=\"background:#E6DEAD\" @click=\"Aeppic.navigateTo('db92e18e-9d9d-4ef9-9df6-449870e5ab68')\">\r\n\t<ae-icon class=\"_CSS-icon fa fa-building\"></ae-icon>\r\n\t<h3>Hausverwaltungen</h3>\r\n</div>\r\n<div class=\"_CSS-card\" style=\"background:#ADE4E6\" @click=\"Aeppic.navigateTo('8cdfdb86-7899-4530-af86-8bb307143b54')\">\r\n\t<ae-icon class=\"_CSS-icon fa fa-handshake\"></ae-icon>\r\n\t<h3>Versicherungen</h3>\r\n</div>\r\n<div class=\"_CSS-card\" style=\"background:#FFC458\" @click=\"Aeppic.navigateTo('12430c0f-4670-47da-a23c-d96637926265')\">\r\n\t<ae-icon class=\"_CSS-icon fa fa-plug\"></ae-icon>\r\n\t<h3>Geräte</h3>\r\n</div>\r\n<div class=\"_CSS-card\" style=\"background:#5899FF\" @click=\"Aeppic.navigateTo('32d9862b-f06c-45c4-8b10-2457caf4fca1')\">\r\n\t<ae-icon class=\"_CSS-icon fa fa-briefcase\"></ae-icon>\r\n\t<h3>Leistungen</h3>\r\n</div>\r\n<div class=\"_CSS-card\" style=\"background:#6BFF58\" @click=\"Aeppic.navigateTo('798849dc-d5d8-4c21-9480-7bbd3de108fb')\">\r\n\t<ae-icon class=\"_CSS-icon fa fa-cog\"></ae-icon>\r\n\t<h3>Geräte Typen und Arten</h3>\r\n</div> -->\r\n","css":"._CSS-buttons {\n  padding: var(--bp-page-content-padding) var(--bp-page-content-padding) 0 var(--bp-page-content-padding);\n  display: grid;\n  grid-template-columns: repeat(2, minmax(15rem, 1fr));\n  grid-template-rows: repeat(auto-fill, 7rem);\n  grid-gap: 1rem;\n} \n\n._CSS-button {\n  cursor: pointer;\n  display: flex;\n  flex-flow: column;\n  justify-content: center;\n  align-items: center;\n  text-align: center;\n  padding: 1em;\n\n  background: var(--ae-ui-card-background);\n  border: solid 1px;\n  border-color: var(--ae-ui-card-border);\n  box-shadow: 1px 1px 4px 0 rgba(0, 0, 0, 0.1);\n}\n\n._CSS-button__icon  {\n  color: #291498;\n  font-size: 3rem;\n}","controller":"class Controller {\n  async init() {\n    const buttons = await Aeppic.getAll(data.menuItems)\n    const availableButtons = await Promise.all(buttons.map(async (b) => {\n      const target = await Aeppic.get(b.data.target)\n      if (target) {\n        return b\n      }\n\n      return null\n    }))\n\n    locals.buttons = availableButtons.filter(b => b !== null)\n  }\n}","packages":[]},"locks":[],"created":{"at":"2018-02-06T09:47:48+01:00","by":"","from":"","client":"server"},"modified":{"at":"2019-04-02T11:27:32+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1554204452750,"ct":1517906868593,"a_depth":4,"a":["apps","b791df37-6eef-4a3e-9066-1b79e0bdad31","35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f","f5f395b4-dc48-4827-9774-5d4937cfbc45"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"91efba97-177f-4862-876a-49adadaad0d7","v":"089e7f8373b955ed","previous":{"v":"181c52ad619493d1"},"p":"b29709d0-8fd5-4da8-8bbc-4f61fb9f82d9","f":{"id":"design-form","v":"49954170df6a253b","text":"Design"},"data":{"name":"page","template":"<ae-form  ref=\"form\"\n          :document=\"document\" \n          :readonly=\"controller.isReadonly\"\n          :auto-save=\"params.autoSave || false\"\n          @toolbar.native=\"controller.toolbarEvent($event.detail)\"\n></ae-form>\n\n<h1>Missing translations</h1>\n\n<pre>\n  {{ Aeppic.Translator.missingTranslations }}\n</pre>\n","css":"","controller":"class Controller {\n  init() {\n    setTimeout(() => {\n     startEditing()\n    })\n  }\n\n  toolbarEvent(eventType) {\n    if (eventType === 'save') {\n      save()\n      return\n    }\n    if (eventType === 'reset') {\n      resetEdits()\n      return\n    }\n  }\n\n  get isReadonly() {\n    if (typeof params.readonly === 'boolean') {\n      return params.readonly\n    }\n\n    return false\n  }\n}","packages":[],"description":""},"locks":[],"created":{"at":"2019-01-09T15:31:17+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2019-01-09T15:37:19+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1547048239620,"ct":1547047877982,"a_depth":4,"a":["apps","77ee8815-2c3a-4bb5-abd9-90541a545a24","b42e5a69-6cf0-4b55-928a-755011005b5a","b29709d0-8fd5-4da8-8bbc-4f61fb9f82d9"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"92e16b6c-9935-4cd3-9ad7-435aeed68e2f","v":"01f6805311e6c5b9","p":"page-form","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"page","template":"<div class=\"_CSS-content\" v-html=\"Aeppic.Parser.markdown(data.content)\"></div>\n\n<!-- <ae-control name=\"markdown\" field-name=\"content\" :document=\"document\" :readonly=\"true\"></ae-control> -->","css":"@font-face {\r\n  font-family: octicons-link;\r\n  src: url(data:font/woff;charset=utf-8;base64,d09GRgABAAAAAAZwABAAAAAACFQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEU0lHAAAGaAAAAAgAAAAIAAAAAUdTVUIAAAZcAAAACgAAAAoAAQAAT1MvMgAAAyQAAABJAAAAYFYEU3RjbWFwAAADcAAAAEUAAACAAJThvmN2dCAAAATkAAAABAAAAAQAAAAAZnBnbQAAA7gAAACyAAABCUM+8IhnYXNwAAAGTAAAABAAAAAQABoAI2dseWYAAAFsAAABPAAAAZwcEq9taGVhZAAAAsgAAAA0AAAANgh4a91oaGVhAAADCAAAABoAAAAkCA8DRGhtdHgAAAL8AAAADAAAAAwGAACfbG9jYQAAAsAAAAAIAAAACABiATBtYXhwAAACqAAAABgAAAAgAA8ASm5hbWUAAAToAAABQgAAAlXu73sOcG9zdAAABiwAAAAeAAAAME3QpOBwcmVwAAAEbAAAAHYAAAB/aFGpk3jaTY6xa8JAGMW/O62BDi0tJLYQincXEypYIiGJjSgHniQ6umTsUEyLm5BV6NDBP8Tpts6F0v+k/0an2i+itHDw3v2+9+DBKTzsJNnWJNTgHEy4BgG3EMI9DCEDOGEXzDADU5hBKMIgNPZqoD3SilVaXZCER3/I7AtxEJLtzzuZfI+VVkprxTlXShWKb3TBecG11rwoNlmmn1P2WYcJczl32etSpKnziC7lQyWe1smVPy/Lt7Kc+0vWY/gAgIIEqAN9we0pwKXreiMasxvabDQMM4riO+qxM2ogwDGOZTXxwxDiycQIcoYFBLj5K3EIaSctAq2kTYiw+ymhce7vwM9jSqO8JyVd5RH9gyTt2+J/yUmYlIR0s04n6+7Vm1ozezUeLEaUjhaDSuXHwVRgvLJn1tQ7xiuVv/ocTRF42mNgZGBgYGbwZOBiAAFGJBIMAAizAFoAAABiAGIAznjaY2BkYGAA4in8zwXi+W2+MjCzMIDApSwvXzC97Z4Ig8N/BxYGZgcgl52BCSQKAA3jCV8CAABfAAAAAAQAAEB42mNgZGBg4f3vACQZQABIMjKgAmYAKEgBXgAAeNpjYGY6wTiBgZWBg2kmUxoDA4MPhGZMYzBi1AHygVLYQUCaawqDA4PChxhmh/8ODDEsvAwHgMKMIDnGL0x7gJQCAwMAJd4MFwAAAHjaY2BgYGaA4DAGRgYQkAHyGMF8NgYrIM3JIAGVYYDT+AEjAwuDFpBmA9KMDEwMCh9i/v8H8sH0/4dQc1iAmAkALaUKLgAAAHjaTY9LDsIgEIbtgqHUPpDi3gPoBVyRTmTddOmqTXThEXqrob2gQ1FjwpDvfwCBdmdXC5AVKFu3e5MfNFJ29KTQT48Ob9/lqYwOGZxeUelN2U2R6+cArgtCJpauW7UQBqnFkUsjAY/kOU1cP+DAgvxwn1chZDwUbd6CFimGXwzwF6tPbFIcjEl+vvmM/byA48e6tWrKArm4ZJlCbdsrxksL1AwWn/yBSJKpYbq8AXaaTb8AAHja28jAwOC00ZrBeQNDQOWO//sdBBgYGRiYWYAEELEwMTE4uzo5Zzo5b2BxdnFOcALxNjA6b2ByTswC8jYwg0VlNuoCTWAMqNzMzsoK1rEhNqByEyerg5PMJlYuVueETKcd/89uBpnpvIEVomeHLoMsAAe1Id4AAAAAAAB42oWQT07CQBTGv0JBhagk7HQzKxca2sJCE1hDt4QF+9JOS0nbaaYDCQfwCJ7Au3AHj+LO13FMmm6cl7785vven0kBjHCBhfpYuNa5Ph1c0e2Xu3jEvWG7UdPDLZ4N92nOm+EBXuAbHmIMSRMs+4aUEd4Nd3CHD8NdvOLTsA2GL8M9PODbcL+hD7C1xoaHeLJSEao0FEW14ckxC+TU8TxvsY6X0eLPmRhry2WVioLpkrbp84LLQPGI7c6sOiUzpWIWS5GzlSgUzzLBSikOPFTOXqly7rqx0Z1Q5BAIoZBSFihQYQOOBEdkCOgXTOHA07HAGjGWiIjaPZNW13/+lm6S9FT7rLHFJ6fQbkATOG1j2OFMucKJJsxIVfQORl+9Jyda6Sl1dUYhSCm1dyClfoeDve4qMYdLEbfqHf3O/AdDumsjAAB42mNgYoAAZQYjBmyAGYQZmdhL8zLdDEydARfoAqIAAAABAAMABwAKABMAB///AA8AAQAAAAAAAAAAAAAAAAABAAAAAA==) format('woff');\r\n}\r\n\r\n._CSS {\r\n  -ms-text-size-adjust: 100%;\r\n  -webkit-text-size-adjust: 100%;\r\n  color: #24292e;\r\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\r\n  font-size: 16px;\r\n  line-height: 1.5;\r\n  word-wrap: break-word;\r\n  padding:16px;\r\n}\r\n\r\n._CSS-content {\r\n  padding:15px;\r\n  background: var(--ae-ui-background);\r\n  border: var(--ae-border-width) solid var(--ae-border-color);\r\n  border-radius: var(--ae-border-radius);\r\n}\r\n\r\n._CSS .pl-c {\r\n  color: #6a737d;\r\n}\r\n\r\n._CSS .pl-c1,\r\n._CSS .pl-s .pl-v {\r\n  color: #005cc5;\r\n}\r\n\r\n._CSS .pl-e,\r\n._CSS .pl-en {\r\n  color: #6f42c1;\r\n}\r\n\r\n._CSS .pl-smi,\r\n._CSS .pl-s .pl-s1 {\r\n  color: #24292e;\r\n}\r\n\r\n._CSS .pl-ent {\r\n  color: #22863a;\r\n}\r\n\r\n._CSS .pl-k {\r\n  color: #d73a49;\r\n}\r\n\r\n._CSS .pl-s,\r\n._CSS .pl-pds,\r\n._CSS .pl-s .pl-pse .pl-s1,\r\n._CSS .pl-sr,\r\n._CSS .pl-sr .pl-cce,\r\n._CSS .pl-sr .pl-sre,\r\n._CSS .pl-sr .pl-sra {\r\n  color: #032f62;\r\n}\r\n\r\n._CSS .pl-v,\r\n._CSS .pl-smw {\r\n  color: #e36209;\r\n}\r\n\r\n._CSS .pl-bu {\r\n  color: #b31d28;\r\n}\r\n\r\n._CSS .pl-ii {\r\n  color: #fafbfc;\r\n  background-color: #b31d28;\r\n}\r\n\r\n._CSS .pl-c2 {\r\n  color: #fafbfc;\r\n  background-color: #d73a49;\r\n}\r\n\r\n._CSS .pl-c2::before {\r\n  content: \"^M\";\r\n}\r\n\r\n._CSS .pl-sr .pl-cce {\r\n  font-weight: bold;\r\n  color: #22863a;\r\n}\r\n\r\n._CSS .pl-ml {\r\n  color: #735c0f;\r\n}\r\n\r\n._CSS .pl-mh,\r\n._CSS .pl-mh .pl-en,\r\n._CSS .pl-ms {\r\n  font-weight: bold;\r\n  color: #005cc5;\r\n}\r\n\r\n._CSS .pl-mi {\r\n  font-style: italic;\r\n  color: #24292e;\r\n}\r\n\r\n._CSS .pl-mb {\r\n  font-weight: bold;\r\n  color: #24292e;\r\n}\r\n\r\n._CSS .pl-md {\r\n  color: #b31d28;\r\n  background-color: #ffeef0;\r\n}\r\n\r\n._CSS .pl-mi1 {\r\n  color: #22863a;\r\n  background-color: #f0fff4;\r\n}\r\n\r\n._CSS .pl-mc {\r\n  color: #e36209;\r\n  background-color: #ffebda;\r\n}\r\n\r\n._CSS .pl-mi2 {\r\n  color: #f6f8fa;\r\n  background-color: #005cc5;\r\n}\r\n\r\n._CSS .pl-mdr {\r\n  font-weight: bold;\r\n  color: #6f42c1;\r\n}\r\n\r\n._CSS .pl-ba {\r\n  color: #586069;\r\n}\r\n\r\n._CSS .pl-sg {\r\n  color: #959da5;\r\n}\r\n\r\n._CSS .pl-corl {\r\n  text-decoration: underline;\r\n  color: #032f62;\r\n}\r\n\r\n._CSS .octicon {\r\n  display: inline-block;\r\n  vertical-align: text-top;\r\n  fill: currentColor;\r\n}\r\n\r\n._CSS a {\r\n  background-color: transparent;\r\n}\r\n\r\n._CSS a:active,\r\n._CSS a:hover {\r\n  outline-width: 0;\r\n}\r\n\r\n._CSS strong {\r\n  font-weight: inherit;\r\n}\r\n\r\n._CSS strong {\r\n  font-weight: bolder;\r\n}\r\n\r\n._CSS h1 {\r\n  font-size: 2em;\r\n  margin: 0.67em 0;\r\n}\r\n\r\n._CSS img {\r\n  border-style: none;\r\n}\r\n\r\n._CSS code,\r\n._CSS kbd,\r\n._CSS pre {\r\n  font-family: monospace, monospace;\r\n  font-size: 1em;\r\n}\r\n\r\n._CSS hr {\r\n  box-sizing: content-box;\r\n  height: 0;\r\n  overflow: visible;\r\n}\r\n\r\n._CSS input {\r\n  font: inherit;\r\n  margin: 0;\r\n}\r\n\r\n._CSS input {\r\n  overflow: visible;\r\n}\r\n\r\n._CSS [type=\"checkbox\"] {\r\n  box-sizing: border-box;\r\n  padding: 0;\r\n}\r\n\r\n._CSS * {\r\n  box-sizing: border-box;\r\n}\r\n\r\n._CSS input {\r\n  font-family: inherit;\r\n  font-size: inherit;\r\n  line-height: inherit;\r\n}\r\n\r\n._CSS a {\r\n  color: #0366d6;\r\n  text-decoration: none;\r\n}\r\n\r\n._CSS a:hover {\r\n  text-decoration: underline;\r\n}\r\n\r\n._CSS strong {\r\n  font-weight: 600;\r\n}\r\n\r\n._CSS hr {\r\n  height: 0;\r\n  margin: 15px 0;\r\n  overflow: hidden;\r\n  background: transparent;\r\n  border: 0;\r\n  border-bottom: 1px solid #dfe2e5;\r\n}\r\n\r\n._CSS hr::before {\r\n  display: table;\r\n  content: \"\";\r\n}\r\n\r\n._CSS hr::after {\r\n  display: table;\r\n  clear: both;\r\n  content: \"\";\r\n}\r\n\r\n._CSS table {\r\n  border-spacing: 0;\r\n  border-collapse: collapse;\r\n}\r\n\r\n._CSS td,\r\n._CSS th {\r\n  padding: 0;\r\n}\r\n\r\n._CSS h1,\r\n._CSS h2,\r\n._CSS h3,\r\n._CSS h4,\r\n._CSS h5,\r\n._CSS h6 {\r\n  margin-top: 0;\r\n  margin-bottom: 0;\r\n}\r\n\r\n._CSS h1 {\r\n  font-size: 32px;\r\n  font-weight: 600;\r\n}\r\n\r\n._CSS h2 {\r\n  font-size: 24px;\r\n  font-weight: 600;\r\n}\r\n\r\n._CSS h3 {\r\n  font-size: 20px;\r\n  font-weight: 600;\r\n}\r\n\r\n._CSS h4 {\r\n  font-size: 16px;\r\n  font-weight: 600;\r\n}\r\n\r\n._CSS h5 {\r\n  font-size: 14px;\r\n  font-weight: 600;\r\n}\r\n\r\n._CSS h6 {\r\n  font-size: 12px;\r\n  font-weight: 600;\r\n}\r\n\r\n._CSS p {\r\n  margin-top: 0;\r\n  margin-bottom: 10px;\r\n}\r\n\r\n._CSS blockquote {\r\n  margin: 0;\r\n}\r\n\r\n._CSS ul,\r\n._CSS ol {\r\n  padding-left: 0;\r\n  margin-top: 0;\r\n  margin-bottom: 0;\r\n}\r\n\r\n._CSS ol ol,\r\n._CSS ul ol {\r\n  list-style-type: lower-roman;\r\n}\r\n\r\n._CSS ul ul ol,\r\n._CSS ul ol ol,\r\n._CSS ol ul ol,\r\n._CSS ol ol ol {\r\n  list-style-type: lower-alpha;\r\n}\r\n\r\n._CSS dd {\r\n  margin-left: 0;\r\n}\r\n\r\n._CSS code {\r\n  font-family: \"SFMono-Regular\", Consolas, \"Liberation Mono\", Menlo, Courier, monospace;\r\n  font-size: 12px;\r\n}\r\n\r\n._CSS pre {\r\n  margin-top: 0;\r\n  margin-bottom: 0;\r\n  font-family: \"SFMono-Regular\", Consolas, \"Liberation Mono\", Menlo, Courier, monospace;\r\n  font-size: 12px;\r\n}\r\n\r\n._CSS .octicon {\r\n  vertical-align: text-bottom;\r\n}\r\n\r\n._CSS .pl-0 {\r\n  padding-left: 0 !important;\r\n}\r\n\r\n._CSS .pl-1 {\r\n  padding-left: 4px !important;\r\n}\r\n\r\n._CSS .pl-2 {\r\n  padding-left: 8px !important;\r\n}\r\n\r\n._CSS .pl-3 {\r\n  padding-left: 16px !important;\r\n}\r\n\r\n._CSS .pl-4 {\r\n  padding-left: 24px !important;\r\n}\r\n\r\n._CSS .pl-5 {\r\n  padding-left: 32px !important;\r\n}\r\n\r\n._CSS .pl-6 {\r\n  padding-left: 40px !important;\r\n}\r\n\r\n._CSS::before {\r\n  display: table;\r\n  content: \"\";\r\n}\r\n\r\n._CSS::after {\r\n  display: table;\r\n  clear: both;\r\n  content: \"\";\r\n}\r\n\r\n._CSS>*:first-child {\r\n  margin-top: 0 !important;\r\n}\r\n\r\n._CSS>*:last-child {\r\n  margin-bottom: 0 !important;\r\n}\r\n\r\n._CSS a:not([href]) {\r\n  color: inherit;\r\n  text-decoration: none;\r\n}\r\n\r\n._CSS .anchor {\r\n  float: left;\r\n  padding-right: 4px;\r\n  margin-left: -20px;\r\n  line-height: 1;\r\n}\r\n\r\n._CSS .anchor:focus {\r\n  outline: none;\r\n}\r\n\r\n._CSS p,\r\n._CSS blockquote,\r\n._CSS ul,\r\n._CSS ol,\r\n._CSS dl,\r\n._CSS table,\r\n._CSS pre {\r\n  margin-top: 0;\r\n  margin-bottom: 16px;\r\n}\r\n\r\n._CSS hr {\r\n  height: 0.25em;\r\n  padding: 0;\r\n  margin: 24px 0;\r\n  background-color: #e1e4e8;\r\n  border: 0;\r\n}\r\n\r\n._CSS blockquote {\r\n  padding: 0 1em;\r\n  color: #6a737d;\r\n  border-left: 0.25em solid #dfe2e5;\r\n}\r\n\r\n._CSS blockquote>:first-child {\r\n  margin-top: 0;\r\n}\r\n\r\n._CSS blockquote>:last-child {\r\n  margin-bottom: 0;\r\n}\r\n\r\n._CSS kbd {\r\n  display: inline-block;\r\n  padding: 3px 5px;\r\n  font-size: 11px;\r\n  line-height: 10px;\r\n  color: #444d56;\r\n  vertical-align: middle;\r\n  background-color: #fafbfc;\r\n  border: solid 1px #c6cbd1;\r\n  border-bottom-color: #959da5;\r\n  border-radius: 3px;\r\n  box-shadow: inset 0 -1px 0 #959da5;\r\n}\r\n\r\n._CSS h1,\r\n._CSS h2,\r\n._CSS h3,\r\n._CSS h4,\r\n._CSS h5,\r\n._CSS h6 {\r\n  margin-top: 24px;\r\n  margin-bottom: 16px;\r\n  font-weight: 600;\r\n  line-height: 1.25;\r\n}\r\n\r\n._CSS h1 .octicon-link,\r\n._CSS h2 .octicon-link,\r\n._CSS h3 .octicon-link,\r\n._CSS h4 .octicon-link,\r\n._CSS h5 .octicon-link,\r\n._CSS h6 .octicon-link {\r\n  color: #1b1f23;\r\n  vertical-align: middle;\r\n  visibility: hidden;\r\n}\r\n\r\n._CSS h1:hover .anchor,\r\n._CSS h2:hover .anchor,\r\n._CSS h3:hover .anchor,\r\n._CSS h4:hover .anchor,\r\n._CSS h5:hover .anchor,\r\n._CSS h6:hover .anchor {\r\n  text-decoration: none;\r\n}\r\n\r\n._CSS h1:hover .anchor .octicon-link,\r\n._CSS h2:hover .anchor .octicon-link,\r\n._CSS h3:hover .anchor .octicon-link,\r\n._CSS h4:hover .anchor .octicon-link,\r\n._CSS h5:hover .anchor .octicon-link,\r\n._CSS h6:hover .anchor .octicon-link {\r\n  visibility: visible;\r\n}\r\n\r\n._CSS h1 {\r\n  padding-bottom: 0.3em;\r\n  font-size: 2em;\r\n  border-bottom: 1px solid #eaecef;\r\n}\r\n\r\n._CSS h2 {\r\n  padding-bottom: 0.3em;\r\n  font-size: 1.5em;\r\n  border-bottom: 1px solid #eaecef;\r\n}\r\n\r\n._CSS h3 {\r\n  font-size: 1.25em;\r\n}\r\n\r\n._CSS h4 {\r\n  font-size: 1em;\r\n}\r\n\r\n._CSS h5 {\r\n  font-size: 0.875em;\r\n}\r\n\r\n._CSS h6 {\r\n  font-size: 0.85em;\r\n  color: #6a737d;\r\n}\r\n\r\n._CSS ul,\r\n._CSS ol {\r\n  padding-left: 2em;\r\n}\r\n\r\n._CSS ul ul,\r\n._CSS ul ol,\r\n._CSS ol ol,\r\n._CSS ol ul {\r\n  margin-top: 0;\r\n  margin-bottom: 0;\r\n}\r\n\r\n._CSS li {\r\n  word-wrap: break-all;\r\n}\r\n\r\n._CSS li>p {\r\n  margin-top: 16px;\r\n}\r\n\r\n._CSS li+li {\r\n  margin-top: 0.25em;\r\n}\r\n\r\n._CSS dl {\r\n  padding: 0;\r\n}\r\n\r\n._CSS dl dt {\r\n  padding: 0;\r\n  margin-top: 16px;\r\n  font-size: 1em;\r\n  font-style: italic;\r\n  font-weight: 600;\r\n}\r\n\r\n._CSS dl dd {\r\n  padding: 0 16px;\r\n  margin-bottom: 16px;\r\n}\r\n\r\n._CSS table {\r\n  display: block;\r\n  width: 100%;\r\n  overflow: auto;\r\n}\r\n\r\n._CSS table th {\r\n  font-weight: 600;\r\n}\r\n\r\n._CSS table th,\r\n._CSS table td {\r\n  padding: 6px 13px;\r\n  border: 1px solid #dfe2e5;\r\n}\r\n\r\n._CSS table tr {\r\n  background-color: #fff;\r\n  border-top: 1px solid #c6cbd1;\r\n}\r\n\r\n._CSS table tr:nth-child(2n) {\r\n  background-color: #f6f8fa;\r\n}\r\n\r\n._CSS img {\r\n  max-width: 100%;\r\n  box-sizing: content-box;\r\n  background-color: #fff;\r\n}\r\n\r\n._CSS img[align=right] {\r\n  padding-left: 20px;\r\n}\r\n\r\n._CSS img[align=left] {\r\n  padding-right: 20px;\r\n}\r\n\r\n._CSS code {\r\n  padding: 0.2em 0.4em;\r\n  margin: 0;\r\n  font-size: 85%;\r\n  background-color: rgba(27,31,35,0.05);\r\n  border-radius: 3px;\r\n}\r\n\r\n._CSS pre {\r\n  word-wrap: normal;\r\n}\r\n\r\n._CSS pre>code {\r\n  padding: 0;\r\n  margin: 0;\r\n  font-size: 100%;\r\n  word-break: normal;\r\n  white-space: pre;\r\n  background: transparent;\r\n  border: 0;\r\n}\r\n\r\n._CSS .highlight {\r\n  margin-bottom: 16px;\r\n}\r\n\r\n._CSS .highlight pre {\r\n  margin-bottom: 0;\r\n  word-break: normal;\r\n}\r\n\r\n._CSS .highlight pre,\r\n._CSS pre {\r\n  padding: 16px;\r\n  overflow: auto;\r\n  font-size: 85%;\r\n  line-height: 1.45;\r\n  background-color: var(--ae-background-200);\r\n  border-radius: 3px;\r\n}\r\n\r\n._CSS pre code {\r\n  display: inline;\r\n  max-width: auto;\r\n  padding: 0;\r\n  margin: 0;\r\n  overflow: visible;\r\n  line-height: inherit;\r\n  word-wrap: normal;\r\n  background-color: transparent;\r\n  border: 0;\r\n}\r\n\r\n._CSS .full-commit .btn-outline:not(:disabled):hover {\r\n  color: #005cc5;\r\n  border-color: #005cc5;\r\n}\r\n\r\n._CSS kbd {\r\n  display: inline-block;\r\n  padding: 3px 5px;\r\n  font: 11px \"SFMono-Regular\", Consolas, \"Liberation Mono\", Menlo, Courier, monospace;\r\n  line-height: 10px;\r\n  color: #444d56;\r\n  vertical-align: middle;\r\n  background-color: #fafbfc;\r\n  border: solid 1px #d1d5da;\r\n  border-bottom-color: #c6cbd1;\r\n  border-radius: 3px;\r\n  box-shadow: inset 0 -1px 0 #c6cbd1;\r\n}\r\n\r\n._CSS :checked+.radio-label {\r\n  position: relative;\r\n  z-index: 1;\r\n  border-color: #0366d6;\r\n}\r\n\r\n._CSS .task-list-item {\r\n  list-style-type: none;\r\n}\r\n\r\n._CSS .task-list-item+.task-list-item {\r\n  margin-top: 3px;\r\n}\r\n\r\n._CSS .task-list-item input {\r\n  margin: 0 0.2em 0.25em -1.6em;\r\n  vertical-align: middle;\r\n}\r\n\r\n._CSS hr {\r\n  border-bottom-color: #eee;\r\n}","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2018-10-02T11:10:25+00:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","from":"","client":"server"},"modified":{"at":"2020-05-08T09:00:45+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1719473826844,"ct":1719473826844,"a_depth":3,"a":["system","system-forms","page-form"],"a_forms":["system-folder-form","repository-folder-form","form"],"inheritedLocks":[null,null,null,null],"stamps":[],"previous":{"v":"8da3cfcc6aa83cc7","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"}},"meta":{"modified":{"at":"2024-06-27T07:37:06+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"963f34a5-0385-43c0-831a-356c3affd6bc","v":"3848505561b9a2cf","previous":{"v":"44e285032049d81f"},"p":"bd9bf8c0-f0d5-41ce-8fea-146471f824de","f":{"id":"design-form","v":"3385ac6766f32638","text":"Design"},"data":{"name":"page","template":"<section class=\"p-4\" v-if=\"locals.ready\" :key=\"'_CSS' + locals.step\">\n  <div class=\"flex justify-between mb-12\">\n    <div class=\"text-2xl\">Anmeldung</div>\n\n    <ae-layout  layout-id=\"a2cd7699-9b46-494f-8f89-cb1f62151d82\"\n                param-text=\"Von vorne beginnen\"\n                @selected=\"locals.step = 'company'\"\n                :param-disabled=\"locals.step === 'company'\"\n    ></ae-layout>\n  </div>\n\n  <div v-if=\"locals.isVerwalter\" class=\"flex items-center gap-2 text-red-500\">\n    <ae-icon class=\"fa fa-ban\"></ae-icon>\n    <div>Bitte melden Sie sich mit einem Firmen-Account ohne Verwalter-Rechte an!</div>\n  </div>\n  <template v-else>\n    <div v-if=\"locals.step === 'company'\">\n      <div class=\"my-4 flex gap-2 items-center\">\n        <ae-icon class=\"far fa-info-circle text-2xl\"></ae-icon>\n        <span>\n          Wählen Sie Ihre Firma aus, für die Sie Wartungen vornehmen wollen\n        </span>\n      </div>\n\n      <ae-list  list-id=\"2e798091-303f-406b-a42a-93aa1cd8425c\"\n            :root-document-id=\"document.a[0]\"\n            query-id=\"71d5633a-9dbd-4c96-b6e0-1c6ffc5ef0f1\"\n            filter=\"f.id:3592ceee-ae9a-47a9-8488-7bad5b0d9ff5\"\n            param-design=\"card\"\n            :param-design-params=\"{ readonly: locals.isVerwalter }\"\n            @selected=\"controller.selectedCompany($event)\" \n      ></ae-list> \n    </div>\n\n    <div v-if=\"locals.step === 'object'\">\n      <div class=\"mb-6\">\n        <ae-design name=\"card\" :document=\"locals.selectedCompany\" :param-no-commands=\"true\"></ae-design>\n      </div>\n\n      <ae-list list-id=\"2e798091-303f-406b-a42a-93aa1cd8425c\"\n          :search=\"controller.objectsSearchString\"\n          param-design=\"card\"\n          param-title=\"Objekte\"\n          @selected=\"controller.selectedObject($event)\" \n      ></ae-list>\n    </div>\n\n    <div v-if=\"locals.step === 'plan'\">\n      <div class=\"flex flex-col gap-2 mb-6\">\n        <ae-design name=\"card\" :document=\"locals.selectedCompany\" :param-no-commands=\"true\"></ae-design>\n        <ae-design name=\"card\" :document=\"locals.selectedObject\" :param-no-commands=\"true\"></ae-design>\n      </div>\n\n      <ae-list v-if=\"locals.activeWartungen.length\"\n              list-id=\"2e798091-303f-406b-a42a-93aa1cd8425c\"\n              :documents=\"locals.activeWartungen\"\n              param-design=\"active-card\"\n              param-title=\"Wartungen (In Bearbeitung)\"\n      ></ae-list>\n      <ae-list  v-else\n                list-id=\"2e798091-303f-406b-a42a-93aa1cd8425c\"\n                :documents=\"locals.plans\"\n                param-design=\"card\"\n                param-title=\"Wartungspläne\"\n                @selected=\"controller.selectedPlan($event)\" \n      ></ae-list>\n    </div>\n  </template>\n\n</section> ","css":"","controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Objekt: '3d678f2a-65f5-4dc1-a643-c5998fa33f32',\n      Wartungsplan: '522ca40d-810b-4021-835f-beeace3af7fa',\n      Wartung: 'c211ffaa-14f8-4439-9126-f42f65ac4424',\n      Wartungsfirma: '3592ceee-ae9a-47a9-8488-7bad5b0d9ff5'\n    } \n\n    locals.ready = false\n    locals.step = 'company'\n    locals.plans = []\n    locals.activeWartungen = []\n\n    const companies = await Aeppic.find(`a:${document.a[0]} f.id:${this.FORMS.Wartungsfirma}`)\n\n    if (companies.length === 1) {\n      await this.selectedCompany(companies[0])\n    }\n    \n    locals.isVerwalter = false\n    locals.isVerwalter = (await Aeppic.Commands.execute('950f35d3-95ba-4d5a-a164-0074c767d600', document, { Account: Aeppic.Account })).value\n\n    if (locals.isVerwalter) {\n      Aeppic.onLinkClicked(null, packages.window.location.origin)\n      Aeppic.reload()\n      return\n    }\n    \n    locals.ready = true\n  }\n\n  async selectedCompany(company) {\n    locals.selectedCompany = company\n\n    locals.step = 'object'\n  } \n\n  async selectedObject(object) {\n    locals.selectedObject = object\n\n    locals.activeWartungen = await Aeppic.find(`a:${object.id} f.id:${this.FORMS.Wartung} data.objekt:${locals.selectedObject.id} data.firma:${locals.selectedCompany.id}  created.at:[now/d-7d TO *] AND NOT data.status:3`, { size: 999 })\n    locals.plans = await Aeppic.getAll(object.data.plan)\n\n    locals.step = 'plan'\n  }\n\n  async selectedPlan(plan) {\n    console.log('selectedPlan')\n    const wartungenFolder = (await Aeppic.query('b41dd25d-922e-4e07-a14e-75245d846707', locals.selectedObject))[0]\n\n    const wartung = await Aeppic.new(this.FORMS.Wartung, wartungenFolder)\n    wartung.addReference('firma', locals.selectedCompany)\n    wartung.addReference('objekt', locals.selectedObject)\n    wartung.addReference('plan', plan)\n\n    Aeppic.save(wartung)\n\n    await Aeppic.Commands.execute('b667b4ac-c685-41a2-b599-c8e5c48a8bc3', wartung, {}, { navigation: true })\n  }\n\n  get objectsSearchString() {\n    return `a:${document.a[0]} f.id:${this.FORMS.Objekt} data.firma:${locals.selectedCompany.id}`\n  }\n\n}","packages":[{"id":"10843fbf-4f0c-416b-be7d-42d6bbd0ae68","v":"d4ce6dec568c3dc1","text":"Window"}],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-04-01T10:21:28+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-04-11T15:05:05+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1681225505773,"ct":1648808488551,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","bd9bf8c0-f0d5-41ce-8fea-146471f824de"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"9647c9d6-c4ba-4ee0-b6b4-e2f54adf0354","v":"ac68a7072076b53d","previous":{"v":"49993ced482f795b"},"p":"6786b72e-276f-4c82-b7c5-ca5758689118","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"page","applies":"","template":"<ae-list class=\"_CSS-files\" :documents=\"data.files\" list-id=\"663edb5e-9f78-4fc0-a8bc-b894d8d01246\"></ae-list>\r\n\r\n<ae-list class=\"_CSS-news\" :documents=\"data.news\" list-id=\"f94fac30-56a6-4aac-bd7c-1881bd752b13\"></ae-list>\r\n\r\n<ae-list class=\"_CSS-employees\" :documents=\"data.employees\" list-id=\"a6ba3102-6e70-4085-893c-cc01f7994fd4\"></ae-list>","css":"/* ._CSS > * {\r\n  padding-left:8px;\r\n}\r\n\r\n._CSS > *+* {\r\n  margin-top:28px;\r\n} */\r\n\r\n._CSS {\r\n  display: grid;\r\n  grid-template-columns: 1fr 1fr;\r\n  grid-auto-rows: min-content;\r\n  grid-gap: 3em;\r\n}\r\n \r\n._CSS-files {\r\n  grid-column: 1/3;\r\n  grid-row: 1/2;\r\n  max-height:285px;\r\n  overflow:hidden;\r\n}\r\n\r\n._CSS-news {\r\n  grid-column: 1/2;\r\n  grid-row: 2/3;\r\n}\r\n\r\n._CSS-employees {\r\n  grid-column: 2/3;\r\n  grid-row: 2/3;\r\n}\r\n","controller":"","packages":[]},"locks":[],"created":{"at":"2018-05-23T16:20:08+02:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","from":"","client":"server"},"modified":{"at":"2022-02-17T14:05:02+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1645106702258,"ct":1527085208317,"a_depth":4,"a":["apps","77ee8815-2c3a-4bb5-abd9-90541a545a24","b42e5a69-6cf0-4b55-928a-755011005b5a","6786b72e-276f-4c82-b7c5-ca5758689118"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"97c996ff-d7b4-4773-bd0e-7a8e662f2482","v":"2c636a43e9884de1","previous":{"v":"a850a716df91e4da"},"p":"9927c3c7-8ce4-4c25-bcec-3385cf1370db","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"page","applies":"","template":"<ae-form layout-id=\"28a11ccb-22fa-4799-b017-eb2d7d4aec31\" :document=\"document\" :auto-save=\"true\"></ae-form>\n\n<div class=\"dbps-bottom-spacer\"></div>","css":"","controller":"","packages":[]},"locks":[],"created":{"at":"2018-05-25T10:48:18+00:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","from":"","client":"server"},"modified":{"at":"2018-10-30T12:51:53+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1540903913440,"ct":1527245298442,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","9927c3c7-8ce4-4c25-bcec-3385cf1370db"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"97f6585d-7424-4ecc-877e-511fe884677b","v":"e2ff698bd0bb4fe9","previous":{"v":"31a9426a57569fca"},"p":"47e813ae-6780-4aa9-a1cb-b3f625d7468d","f":{"id":"design-form","v":"0061789efb5c5c29","text":"Design"},"data":{"name":"page","template":"Native File System API\n\n<ae-design ref=\"ref\"></ae-design>\n\n<button @click.stop=\"controller.do()\">do it</button>","css":"","controller":"class Controller {\n  init() {\n    this._dir = null\n  }\n\n  async do() {\n    const document = await Aeppic.get('493c612d-0bf7-4485-a5bd-a693871b91e0')\n    \n    this._dir = await packages.window.showDirectoryPicker()\n    console.log(this._dir)\n\n    const file = await this._dir.getFileHandle('template.html', { create: true })\n    const writeableFile = await file.createWritable()\n    await writeableFile.write(document.data.template)\n    await writeableFile.close()\n\n    this.watchAndEdit()\n  }\n\n\n  watchAndEdit() {\n    Aeppic.setTimeout(async () => {\n      const document = await Aeppic.edit('493c612d-0bf7-4485-a5bd-a693871b91e0')\n\n      for await (const entry of this._dir.entries()) {\n        console.log(entry)\n      }\n    }, 5000)\n  }\n  \n}\n\n\n","packages":[{"id":"10843fbf-4f0c-416b-be7d-42d6bbd0ae68","v":"066da4f04edfd0fe","text":"Window"}],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-09-18T14:44:59+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2020-09-28T14:48:40+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1601304520298,"ct":1600440299124,"a_depth":4,"a":["apps","02c3f939-f382-4e27-b3d4-bea5fdd6e092","9d7c3582-4c41-47ef-938e-2cb3880ab789","47e813ae-6780-4aa9-a1cb-b3f625d7468d"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"9bcf6adc-e7bd-4c51-82fb-5df6724b6c30","v":"f9c14600b4d3da0d","cloneOf":{"id":"1d78a256-3e69-41b0-bf7f-bf0d1c998924","v":"initial","text":"page"},"originalCloneOf":{"id":"1d78a256-3e69-41b0-bf7f-bf0d1c998924","v":"initial","text":"page"},"previous":{"v":"f96fe3a16256857e"},"p":"c6237a67-b8cf-4107-92d8-afd460497f0e","f":{"id":"design-form","v":"24435d748c76f819","text":"Design"},"data":{"name":"page","template":"<ae-list \n  style=\"xheight:800px;height:100%;\"\n  v-if=\"locals.canEdit != null && locals.query\"\n  list-id=\"cda28cd1-b41b-4193-b3e2-1d590c400741\"\n  param-title=\"Kalender\"\n  :param-calendars=\"locals.calendars\"\n  :param-document-to-calendar-mapper=\"(doc) => controller.mapDocumentToCalendar(doc)\"\n  :param-document=\"document\"\n  :param-configuration=\"locals.configuration\"\n  @calendar-remove=\"controller.removeCalendar($event)\"\n  @calendar-add=\"controller.addCalendar($event)\"\n  :param-readonly=\"!locals.canEdit\"\n  @update-dates=\"controller.subscribeAppointments($event)\"\n  :param-query=\"locals.query\"\n  :xparam-debug=\"true\"\n  :xdocuments=\"locals.appointments\"\n></ae-list>\n\n","css":"","controller":"class Controller {\n  async init() {\n    this.subscription = null\n\n    locals.appointments = []\n    locals.resources = []\n    locals.activeResources = []\n\n\n    const canEdit = await Aeppic.canEdit(document)\n    locals.canEdit = Aeppic.Account && Aeppic.Account.data.isGroupAccount === false && canEdit === true\n\n    locals.configuration = params.configuration || JSON.parse(data.configuration)\n    locals.activeResources = await this.getCalendars()\n    locals.calendars = await this.getCalendars()\n\n    this.updateQuery()\n\n    // await this.subscribeAppointments() \n  }\n\n  updateQuery() {\n    locals.query = Aeppic.Query.descendants(document.a[0]).forms(locals.activeResources.map(r => r.form))\n  }\n    \n  async getCalendars() {\n    const configuration = locals.configuration\n\n    if (Array.isArray(configuration)) { \n      return configuration\n    } else {\n      return configuration.calendars\n    }\n\n    // return Aeppic.getAll(data.resources)\n  }\n\n  // subscribeResources() {\n  //   Aeppic.subscribe(`id:${document.id}`, async () => {\n  //     console.log('subscribe ressources')\n  //     locals.resources = await this.getResources()\n  //     locals.activeResources = await this.getResources()\n  //     console.log('sub res', locals.resources, locals.activeResources)\n\n  //     await this.subscribeAppointments()\n  //   })\n  // }\n\n  async subscribeAppointments(eventWithStartEndDates) {\n    if (!locals.activeResources.length) {\n      this.subscription && this.subscription.cancel()\n\n      locals.appointments = []\n\n      return\n    }\n\n    const appointmentsParentQuery = locals.activeResources.map(r => `f.id:${r.form}`).join(` OR `)\n    const search = `a:${document.a[0]} (${appointmentsParentQuery})`\n    const findOptions = {\n      size: 9999,\n      sort: 'created.at',\n    }\n\n    this.subscription = Aeppic.updateSubscription(this.subscription, search, findOptions, async (appointments) => {\n      locals.appointments = appointments\n    })\n  }\n\n  mapDocumentToCalendar(appointment) {\n    return appointment.f.id\n  }\n\n  async removeCalendar(calendar) {\n    locals.activeResources = locals.activeResources.filter(r => r.form !== calendar.form)\n\n    this.updateQuery()\n    // this.subscribeAppointments()\n  }\n  \n  async addCalendar(calendar) {\n    locals.activeResources.push(calendar)\n\n    this.updateQuery()\n    // this.subscribeAppointments()\n  }\n}\n\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-08-10T12:13:13+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2022-07-04T11:38:35+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1656934715842,"ct":1597061593179,"a_depth":4,"a":["apps","d8c9a42b-e289-4c9a-97ea-801de8ab480a","db8e20d1-732c-4c6b-9cfc-b323f83fa378","c6237a67-b8cf-4107-92d8-afd460497f0e"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"9dee2135-1539-4ef4-926d-b6a3be563d0b","v":"0a9fd254da779ba2","previous":{"v":"250f2063aaa314e6"},"p":"50c9b51e-f477-48c0-94a9-b1445b287fd7","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"page","applies":"","template":"<ae-splitter :split=\"25\">\n  <div slot=\"left-pane\" class=\"_CSS-left-pane\">\n    <div v-for=\"preferencesRef in data.preferences\" @click=\"controller.selectPreferences(preferencesRef.id)\" :class=\"{ '_CSS-preferences-section-button--active': locals.selectedPreferences && (locals.selectedPreferences.id === preferencesRef.id)}\" class=\"_CSS-preferences-section-button\">\n      <ae-design :document-id=\"preferencesRef.id\" name=\"title\" :param-prefere-label=\"true\"></ae-design>\n    </div>\n  </div>\n  <div slot=\"right-pane\" class=\"_CSS-right-pane\">\n    <div v-if=\"locals.selectedPreferences\">\n      <div class=\"_CSS-tabs\">\n        <div class=\"ae-col ae-tabs\" @keydown.alt.capture=\"controller.keydownAlt($event)\">\n          <div class=\"_CSS-tabs-header\">\n            <!-- tabs -->\n            <label class=\"ae-tab__label ae-noselect\" :for=\"id('tab-global-settings')\" v-if=\"locals.selectedPreferences.data.activeSettings && locals.selectedPreferences.data.activeSettings.id\" aria-hidden=\"true\" @click=\"locals.showTabIndex = 0\" :class=\"{ 'ae-tab__label--active': locals.showTabIndex===0}\" tabindex=\"-1\">System Settings</label>\n            <label class=\"ae-tab__label ae-noselect\" :for=\"id('tab-user-settings')\" v-if=\"locals.selectedPreferences.data.defaultUserSettings.length\" aria-hidden=\"true\" @click=\"locals.showTabIndex = 1\" :class=\"{ 'ae-tab__label--active': locals.showTabIndex===1}\" tabindex=\"-1\">User Settings</label>\n            <div class=\"_CSS-empty\" style=\"position:relative\"></div>\n          </div>\n          <!-- global settings tab-page-->\n          <div :id=\"id('tab-global-settings')\" ref=\"content\" class=\"ae-tab__content\" v-if=\"locals.selectedPreferences.data.activeSettings && locals.selectedPreferences.data.activeSettings.id\" v-show=\"locals.showTabIndex===0\">\n            <ae-design :document-id=\"locals.selectedPreferences.data.activeSettings.id\" name=\"page\" :param-auto-save=\"true\"></ae-design>\n            <div v-if=\"locals.selectedPreferences.data.defaultUserSettings.length\" class=\"_CSS-reset-section\">\n              <div v-if=\"locals.selectedPreferences.data.defaultUserSettings.length===1\">\n                <button @click=\"controller.setUserPreset(0)\">Reset to Default</button>\n              </div>\n              <div v-else>\n                <select v-model=\"locals.selectedUserPresetIdx\">\n                  <option :value=\"presetIdx\" v-for=\"(preset, presetIdx) in locals.userPresets\">{{preset.data.name}}</option>\n                </select>\n                <button @click=\"controller.setUserPreset(locals.selectedUserPresetIdx)\">Set</button>\n              </div>\n            </div>\n          </div>\n          <!-- user settings tab-page-->\n          <div :id=\"id('tab-user-settings')\" ref=\"content\" class=\"ae-tab__content\" v-if=\"locals.selectedPreferences.data.defaultUserSettings.length\" v-show=\"locals.showTabIndex===1\">\n            <ae-design v-if=\"locals.activeUserSettingsId\" :document-id=\"locals.activeUserSettingsId\" name=\"page\" :param-auto-save=\"true\"></ae-design>\n            <div v-if=\"locals.selectedPreferences.data.defaultSettings.length\"  class=\"_CSS-reset-section\">\n              <div v-if=\"locals.selectedPreferences.data.defaultSettings.length===1\">\n                <button @click=\"controller.setGlobalPreset(0)\">Reset to Default</button>\n              </div>\n              <div v-else>\n                <select v-model=\"locals.selectedGlobalPresetIdx\">\n                  <option :value=\"presetIdx\" v-for=\"(preset, presetIdx) in locals.globalPresets\">{{preset.data.name}}</option>\n                </select>\n                <button @click=\"controller.setGlobalPreset(locals.selectedGlobalPresetIdx)\">Set</button>\n              </div>\n            </div>\n          </div>\n        </div>\n      </div> \n    </div>\n  </div>\n</ae-splitter> ","css":"._CSS-left-pane,\n._CSS-right-pane {\n  xbackground: var(--ae-background-d2); \n}\n\n._CSS-preferences-section-button{\n  padding: 13px;\n  border-bottom: 1px solid var(--ae-separator-color);\n  font-weight: bold;\n  text-align: center;\n  cursor: pointer;\n  color: var(--ae-foreground-l3);\n  background: var(--ae-background-d1);\n}\n\n._CSS-preferences-section-button--active,\n._CSS-preferences-section-button:hover{\n  color: var(--ae-primary);\n  background: var(--ae-background-d2);\n}\n\n._CSS-reset-section {\n    padding: 20px 9px;\n    margin-top: 20px;\n    border-top: solid 1px var(--ae-separator-color);\n}\n\n._CSS-empty {\n  flex:1;\n  min-width: 45px;\n  border-bottom: 1px solid var(--ae-ui-element-border-color);\n}\n\n._CSS-tabs-header {\n  white-space: nowrap;\n  overflow-y: none;\n  overflow-x: auto;\n  width:100%;\n  display: flex;\n  align-items: stretch;\n  justify-content: flex-start;\n}\n\n.ae-col.ae-tabs {\n  opacity: 1;\n  display: flex;\n  flex-wrap: wrap;\n  width: 100%;\n}\n\n\n.ae-tab__label {\n  display: inline-block;\n  cursor: pointer;\n  padding: 12px 24px;  \n  background: transparent;\n  border-top: 1.6px solid transparent;\n  border-left: 1px solid transparent;\n  border-right: 1px solid transparent;\n  margin-right: -1px;\n  /* margin-left: -1px; */\n  border-bottom: 1px solid var(--ui-element-border-color);\n  transition: all 0.05s ease-in-out;\n  font-weight: bold;\n  color: var(--ae-foreground-l2);\n}\n\n.ae-tab__label:focus {\n  outline:none;\n}\n\n.ae-tab__label--active {\n  border-top-color: var(--ae-primary);\n  border-left-color: var(--ui-element-border-color);\n  border-right-color: var(--ui-element-border-color);\n  border-bottom-color: var(--ae-background-d1);\n  color: var(--ae-foreground-l1);\n  position:relative;\n}\n\n\n.ae-tab__label--active::after {\n  content:'';\n  position: absolute;\n  bottom:0;\n  left:0;\n  right:0;\n}\n\n.ae-tab__label:hover {\n  background: rgba(238,238,238,0.8);\n}\n\n.ae-tab__content {\n  position: relative;  \n  width: 100%;\n  margin: 0 -8px; /* TODO: FORM VAR */  \n  padding-top: 8px;   \n}","controller":"class Controller{\n  init() {\n    locals.showTabIndex = 0\n    locals.selectedPreferences = null\n    locals.activeUserSettingsId = null\n    locals.globalPresets = []\n    locals.userPresets = []\n  }\n\n  async selectPreferences(preferencesId) {\n    locals.showTabIndex = -1\n\n    locals.selectedPreferences = await Aeppic.edit(preferencesId)\n\n    if(locals.selectedPreferences.data.activeSettings.id){\n      locals.showTabIndex = 0\n    }\n\n    const activeUserSettings = await this.getUserSettings(locals.selectedPreferences)\n    \n    if (activeUserSettings) {\n      locals.activeUserSettingsId = activeUserSettings.id\n      locals.showTabIndex = 1\n    }\n\n    const globalPresets = await Aeppic.getAll(locals.selectedPreferences.data.defaultSettings) \n    locals.globalPresets.splice(0, locals.globalPresets.length, ...globalPresets)\n\n    const userPresets = await Aeppic.getAll(locals.selectedPreferences.data.defaultUserSettings) \n    locals.userPresets.splice(0, locals.userPresets.length, ...userPresets)\n  }\n\n  async getUserSettings(preferences) {\n    \n    if (!preferences.data.defaultUserSettings.length) {\n      return null\n    }\n\n    const defaultUserSettings = await Aeppic.get(preferences.data.defaultUserSettings[0].id)\n    const existingUserSettings = await Aeppic.find(`f.id:${defaultUserSettings.f.id} AND p:${preferences.id} AND created.by:${Aeppic.Account.id}`)\n\n    if (existingUserSettings.length) {\n      const existing = existingUserSettings[0]\n\n      if((existing.f.id !== defaultUserSettings.f.id) || (existing.f.v !== defaultUserSettings.f.v)){\n        const newFormVersion = await Aeppic.getFormForDocument(defaultUserSettings)\n        Aeppic.change(existing, newFormVersion)\n      }\n\n      return existing\n    }\n    else {\n      const newUserSettings = await Aeppic.clone(defaultUserSettings.id, preferences.id)\n      const newUserSettingsForm = await Aeppic.getFormForDocument(newUserSettings)\n\n      if (newUserSettingsForm.hasField('name')) {\n        const plural = (Aeppic.Account.data.displayName || Aeppic.Account.data.name).endsWith('s') ? '\\'' : '\\'s'\n        newUserSettings.data.name = `${Aeppic.Account.data.displayName || Aeppic.Account.data.name}${plural} settings`\n      }\n\n      Aeppic.save(newUserSettings)\n      return newUserSettings\n    }\n  }\n\n  async setGlobalPreset(index){\n    const preset = await Aeppic.get(locals.selectedPreferences.data.defaultSettings[index].id)\n    const oldSettingsId = locals.selectedPreferences.data.activeSettings && locals.selectedPreferences.data.activeSettings.id\n      \n    const newGlobalSettings = await Aeppic.clone(preset.id, locals.selectedPreferences.id)\n    const newGlobalSettingsForm = await Aeppic.getFormForDocument(newGlobalSettings)\n\n    if (newGlobalSettingsForm.hasField('name')) {\n      newGlobalSettings.data.name = 'Global settings'\n    }\n\n    locals.selectedPreferences.addReference('activeSettings', newGlobalSettings)\n\n    if(oldSettingsId){\n      Aeppic.delete(oldSettingsId)\n    }\n\n    Aeppic.save(newGlobalSettings)\n    Aeppic.save(locals.selectedPreferences)\n  } \n\n  async setUserPreset(index){\n    const preset = await Aeppic.get(locals.selectedPreferences.data.defaultUserSettings[index].id)\n    const existingUserSettings = await Aeppic.find(`f.id:${preset.f.id} AND p:${locals.selectedPreferences.id} AND created.by:${Aeppic.Account.id}`)\n    \n    for(const s of existingUserSettings){\n      Aeppic.delete(s)\n    }\n\n    const newUserSettings = await Aeppic.clone(preset.id, locals.selectedPreferences.id)\n    const newUserSettingsForm = await Aeppic.getFormForDocument(newUserSettings)\n\n    if (newUserSettingsForm.hasField('name')) {\n      const plural = (Aeppic.Account.data.displayName || Aeppic.Account.data.name).endsWith('s') ? '\\'' : '\\'s'\n      newUserSettings.data.name = `${Aeppic.Account.data.displayName || Aeppic.Account.data.name}${plural} settings`\n    }\n\n    Aeppic.save(newUserSettings)\n    locals.activeUserSettingsId = newUserSettings.id\n  }\n}","packages":[]},"locks":[],"created":{"at":"2018-04-18T15:35:28+02:00","by":"","from":"","client":"server"},"modified":{"at":"2020-05-08T09:00:44+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1588928444818,"ct":1524058528542,"a_depth":3,"a":["system","system-forms","50c9b51e-f477-48c0-94a9-b1445b287fd7"],"a_forms":["system-folder-form","repository-folder-form","form"],"inheritedLocks":[null,null,null,null],"stamps":[]},{"id":"a4461f50-11bf-455f-94a4-f3c9b89267ad","v":"e2ef94b49a202f13","previous":{"v":"initial"},"p":"41f040c3-4bb1-489b-86b9-a736c7d0e860","f":{"id":"design-form","v":"e37099c040ec46e9","text":"Design"},"data":{"name":"page","template":"\n<div class=\"bp-card bp-card--bordered _CSS-projects-container\">\n<h3>Neue Bewerbungen nach Projekt</h3>\n  <div class=\"_CSS-projects\">\n    <div class=\"_CSS-heading\">Projekt</div>\n    <div class=\"_CSS-heading\">Anzahl</div>\n    <div class=\"_CSS-heading\">Bewerbungen</div>\n    <template v-for=\"(applications, projectId) in locals.applicationsByProjectId\">\n      <ae-design name=\"title\" :document-id=\"projectId\"></ae-design>\n      <div>{{applications.length}}</div>\n      <div class=\"_CSS-projects__apps\">\n        <ae-list :documents=\"applications\"\n          list-id=\"2dab232c-2c8a-4aa4-b3f9-6023a7116161\"\n          @selected=\"Aeppic.drillInto($event)\"\n        ></ae-list>\n      </div>\n    </template>\n  </div>\n</div>\n\n<div class=\"bp-card bp-card--bordered\" style=\"display:block;\">\n<h3>Neue Bewerbungen</h3>\n  <ae-list :documents=\"locals.recentApplications\"\n            list-id=\"2dab232c-2c8a-4aa4-b3f9-6023a7116161\"\n            @selected=\"Aeppic.drillInto($event)\"\n  ></ae-list>\n</div>\n","css":"._CSS {\n  padding: var(--bp-page-content-padding);\n}\n\n._CSS-projects-container {\n  margin-bottom: var(--ae-space-4);\n  display: block;\n}\n\n._CSS-projects {\n\n  display: grid;\n  grid-template-columns: 100px 50px auto;\n  grid-gap: var(--ae-space-6);\n}\n\n._CSS-projects__apps {\n}\n\n._CSS-heading {\n  color: var(--ae-background-600);\n  font-size: var(--ae-font-size-3);\n  display: flex;\n}","controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Application: '009c0da4-718f-43d0-964a-647e30074d94',\n      Project: 'e170bb6c-f326-446d-870a-ada9d9f67230'\n    }\n    this.companyId = document.a[document.a_forms.findIndex(a_form => a_form === 'c69a0c1c-6c53-40c2-87e8-5ace866bf1df')]\n\n    locals.recentApplications = []\n    locals.applicationsByProjectId = {}\n\n\n    const options = {\n      sort: {\n        field: 'created.at',\n        descending: true\n      },\n      size: 20\n    }\n  \n    Aeppic.subscribe(`a:${this.companyId} f.id:${this.FORMS.Application}`, options, (docs) => {\n      locals.recentApplications = docs\n      locals.applicationsByProjectId = this.groupApplicationsByProject(docs)\n    })\n  }\n\n  groupApplicationsByProject(applications) {\n    const result = {}\n\n    for (const application of applications) {\n      const projectId = application.a[application.a_forms.findIndex(a_form => a_form === this.FORMS.Project)]\n      \n      if (!result[projectId]) {\n        result[projectId] = [application]\n      } else {\n        result[projectId].push(application)\n      }\n    }\n\n    return result\n  }\n}\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-01-14T13:45:22+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-06-16T13:55:34+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1623851734548,"ct":1610631922412,"a_depth":4,"a":["apps","3fbe0efd-713a-457a-a34c-3a12aa19d6bb","0fb162f4-0f78-4c1e-aad2-43c27e6d98cb","41f040c3-4bb1-489b-86b9-a736c7d0e860"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"ad8ab277-56fe-421e-8afd-b2b4957698d5","v":"c9dd996be7f131cc","previous":{"v":"initial"},"p":"a81d14be-57ea-4eaa-88b2-14c72486aab4","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"page","applies":"","template":"<ae-form :document=\"document\" :watch=\"false\"></ae-form>\n\n<hr>\n<label :for=\"id('size')\">\n  <span>Search Size</span>\n  <input :id=\"id('size')\" type=\"number\" v-model.number=\"locals.searchSize\">\n</label>\n<hr>\n<ae-list \n  list-id=\"simple-list\"\n  :search=\"controller.search\"\n  :search-options=\"controller.searchOptions\"\n  param-design=\"search-title\"\n></ae-list>\n","css":"","controller":"init() {\n  locals.searchSize = 50\n\n  Aeppic.nextRenderPass(() => {\n    startEditing()\n  }) \n}\n\nget search() {\n  const parts = []\n\n  if (data.key.id) {\n    parts.push(`data.keys:${data.key.id}`)\n  }\n  if (data.group.id) {\n    parts.push(`data.groups:${data.group.id}`)\n  }\n\n  if (parts.length) {\n    parts.push(`(f.id:account OR f.id:e5c233c9-5425-48d7-a785-d962897bc6f8)`)\n  }\n\n  return parts.join(' AND ')\n}\n\nget searchOptions() {\n  return {\n    size: locals.searchSize\n  }\n}","packages":[]},"locks":[],"created":{"at":"2018-10-11T15:13:32+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2018-12-11T08:50:08+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1544518208019,"ct":1539270812368,"a_depth":4,"a":["system","04632e3e-9132-4927-b91d-3c28d1afe3e9","2b5725a7-9e8f-4993-a3e8-ef9c1ff0be8c","a81d14be-57ea-4eaa-88b2-14c72486aab4"],"a_forms":["system-folder-form","folder","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"afc6b2d8-e620-4b64-a82d-b94c46cdd747","v":"initial","p":"777ae286-69f6-4047-b3db-adde4e37db8e","f":{"id":"design-form","v":"2d98bf27c3108340","text":"Design"},"data":{"name":"page","applies":"","description":"","template":"<ae-design  name=\"preview\"\n            :document=\"document.data.template\"\n            :param-view-data=\"data\"\n></ae-design>\n\n","css":"._CSS {\n  display: flex;\n}","controller":"","packages":[]},"locks":[],"created":{"at":"2018-10-30T12:56:47+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2018-10-30T12:56:47+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1540904207614,"ct":1540904207613,"a_depth":5,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","1116d922-d8df-4da5-a7c2-70191d07d929","5cdd2d20-7676-43e3-8997-e176dd3434ed","777ae286-69f6-4047-b3db-adde4e37db8e"],"a_forms":["folder","application-form","folder","form-folder","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"b5108d8d-686a-4aea-a989-690c6a46b26f","v":"4d039f708f3ff6a1","previous":{"v":"75a83e08d6b249e1"},"p":"208dc4fd-4c2c-4a8f-9c6d-94be86daac1d","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"page","template":"<div class=\"py-1 px-2 overflow-auto w-full  h-full flex\" @toolbar=\"controller.onToolbar($event.detail)\">\n  <ae-list list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\"\n          :documents=\"locals.rentIncomes\"\n          :root-document-id=\"document.id\"\n          param-table-header-design=\"table-header\"\n          @selected=\"Aeppic.drillInto($event)\"\n          param-design=\"table-card\"\n          :sort=\"locals.sort\"\n          :param-split-func=\"(event) => controller.getSplitIdentifier(event)\"\n          :param-split-by-documents=\"locals.buildings\"\n          :param-filter-by-month=\"true\"\n          param-filter-by-month-field-name=\"data.datum\"\n          :param-disable-sort=\"true\"\n          :param-disable-filter=\"true\"\n          :search-options=\"{ searchAllFields: true }\"\n          :param-table-style=\"true\" \n          class=\"mx-auto\"\n          :param-enable-filter-bar=\"true\"\n  ></ae-list> \n</div>   \n  ","css":"","controller":"class Controller {\n  async init() {\n    locals.buildings = []\n    locals.rentIncomes = []\n    locals.rentIncomeByBuildingId = []\n\n    locals.view = Aeppic.LocalStorage.getValue('bp-pref-rooms-tenant-payments-list-view') || 'todo'\n    locals.sort = [{ field: 'data.gebaeude', descending: false }, { field: 'data.einheit', descending: false } , { field: 'data.datum', descending: true }, 'id']\n\n    await this.updateDocuments()\n  }\n\n  async updateDocuments() { \n    const buildingsSet = new Set()\n    const rentIncomeByBuildingId = {}\n\n    const rentIncomes = await Aeppic.find(`p:${document.id} f.id:8b4121d2-1838-46b6-833f-43f6ded78011 ${this.filter}`, { size: 9999 })\n\n    rentIncomes.forEach(rentIncome => {\n      const buildingId = rentIncome.data.gebaeude.id\n\n      buildingsSet.add(buildingId)\n\n      if (!rentIncomeByBuildingId[buildingId]) {\n        rentIncomeByBuildingId[buildingId] = []\n      }\n\n      rentIncomeByBuildingId[buildingId].push(rentIncome)\n    })\n \n    const buildings = Aeppic.Functions.sort(await Aeppic.getAll([...buildingsSet]), ['data.name', 'id'])\n    \n    locals.buildings = buildings\n    locals.rentIncomeByBuildingId = rentIncomeByBuildingId\n    locals.rentIncomes = rentIncomes\n    \n    console.log('updateDocuments', { rentIncomes })\n  }\n\n  onToolbar(event) {\n    if (event.startsWith('view_')) {\n      console.log(event)\n      locals.view = event.replace('view_', '')\n    \n      this.updateDocuments()\n    }\n  }\n\n\n  get filter() {\n    if (locals.view === 'todo') {\n      return '(data.bezahlt:false)'\n    }\n\n    if (locals.view === 'closed') {\n      return 'data.bezahlt:true'\n    }\n\n    if (locals.view === 'overview') {\n      return ''\n    } \n  }\n\n  getSplitIdentifier(rentIncome) {\n    return rentIncome.data.gebaeude.id\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-11-18T11:08:29+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-02-14T13:30:34+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1676381434450,"ct":1668769709538,"a_depth":4,"a":["apps","253003a3-5cbd-4d84-bfb2-38f60a741fb5","06b46bf8-ceeb-4fd4-bf6a-4a3da0cab4ad","208dc4fd-4c2c-4a8f-9c6d-94be86daac1d"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"bae639c3-545e-4510-a6fa-58655c0c59be","v":"1286234218a9bde9","cloneOf":{"id":"46969926-3c96-4d3d-a0ab-799633f6f120","v":"13d3892be92ca384","text":"page--left"},"originalCloneOf":{"id":"46969926-3c96-4d3d-a0ab-799633f6f120","v":"13d3892be92ca384","text":"page--left"},"previous":{"v":"74334a62c83521c9"},"p":"65abdd36-c20f-4742-8744-3995211cdd2f","f":{"id":"design-form","v":"9bfe8e0cd909c1f0","text":"Design"},"data":{"name":"page","template":"<div  class=\"_CSS-container\"\n      ref=\"container\"\n      @toolbar=\"controller.toolbarEvent($event.detail)\">\n  <ae-form  ref=\"form\"\n            :document=\"document\" \n            :readonly=\"controller.isReadonly\"\n            :auto-save=\"params.autoSave || false\"\n            class=\"_CSS-form\"\n  ></ae-form>\n  <ae-design  name=\"page__additional-content\"\n              :document=\"document\"\n              :param-readonly=\"controller.isReadonly\"\n  ></ae-design>\n</div>","css":"._CSS-container {\n  max-width: var(--ae-page-max-width);\n  margin: auto;\n}\n\n._CSS-form {\n  height: 100%;\n}\n","controller":"class Controller {\n  toolbarEvent(eventType) {\n    if (eventType === 'save') {\n      $refs.form.save()\n      $refs.form.resetEdits()\n\n      return\n    }\n    if (eventType === 'reset') {\n      $refs.form.resetEdits()\n\n      return\n    }\n  }\n\n  get isReadonly() {\n    if (document.readonly === true) {\n      return true\n    }\n\n    if (typeof params.readonly === 'boolean') {\n      return params.readonly\n    }\n\n    if (document.readonly) {\n      return document.readonly\n    }\n\n    return false\n  }\n}\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-10-26T11:36:12+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-10-26T11:37:07+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1635248227113,"ct":1635248172529,"a_depth":4,"a":["apps","599db2de-4e07-4722-98bd-7f42d498b352","79718664-ed22-4b52-9c10-037881df3578","65abdd36-c20f-4742-8744-3995211cdd2f"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"bcc46b4b-e902-4483-8cb9-4107ba2658e5","v":"b40148bb4c75e27f","previous":{"v":"0b68fb6ca1e45c88"},"p":"64500ae9-6089-4e55-add1-3e38c2fa1c41","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"page","applies":"","template":"\n<md-content flex layout-padding>\n    <h1>Abnahmeprotokoll</h1>\n    <rs-get-document id=\"{{document.data.geschaedigter.id}}\" as=\"geschaedigter\" layout=\"column\">\n        \n        <rs-load-form-info document=\"geschaedigter\" form-info=\"formInfo1\">\n            <h2>Geschädigter</h2>\n            <rs-form document=\"geschaedigter\" form-info=\"formInfo1\" section=\"formInfo1.sections[0]\" with-subsections=\"false\" readonly=\"true\"></rs-form>\n            <!-- rs-form document=\"geschaedigter\" form-info=\"formInfo1\" section-id=\"Details\" readonly=\"true\"></rs-form -->\n        </rs-load-form-info>\n        \n        <h2 style=\"margin-top:30px\">Zählerstände </h2>\n        <div class=\"rs-form-cell-readonly\">\n            <strong layout=\"row\">\n                <div flex=\"40\" layout=\"row\" layout-align=\"start end\">Gerät:</div>\n                <div flex=\"60\" layout=\"column\">\n                    <div layout=\"row\" layout-align=\"start\">Betriebstunden:</div>\n                    <div layout=\"row\">\n                        <div flex=\"33\">Aufbau</div>\n                        <div flex=\"33\">Abbau</div>\n                        <div flex=\"33\">Diff</div>\n                    </div>\n                </div>\n            </strong>\n        </div>\n        <div>\n            <div ng-repeat=\"stand in geschaedigter.data.geraetezaehlerstaende\" layout=\"row\" style=\"margin-bottom:4px\" class=\"rs-form-cell-readonly\">\n                <rs-get-document id=\"{{stand.id}}\" as=\"stand\" layout=\"row\" flex>\n                    <div flex=\"40\" layout=\"column\">\n                        <rs-get-document id=\"{{stand.data.geraet.id}}\" as=\"geraet\" layout=\"column\">\n                            <div>{{geraet.data.seriennummer}}</div>\n                            <div layout=\"row\" flex>\n                                <div flex=\"45\">von:</div>\n                                <div flex>{{stand.data.aufbaudatum | date:'dd.MM.yy'}}</div>\n                            </div>\n                            <div layout=\"row\" flex>\n                                <div flex=\"45\">bis:</div>\n                                <div flex>{{stand.data.abbaudatum | date:'dd.MM.yy'}}</div>\n                            </div>\n                            <div layout=\"row\" flex>\n                                <div flex=\"45\">Leistung:</div>\n                                <div flex>{{geraet.data.verbrauchswert}} kw/h</div>\n                            </div>\n                            <div layout=\"row\" flex>\n                                <div flex=\"45\">Verbr.:</div>\n                                <div flex>{{stand.data.verbrauch}} kw</div>\n                            </div>\n                        </rs-get-document>\n                    </div>\n                    <div flex=\"20\">{{stand.data.aufbauzaehlerstand}}</div>\n                    <div flex=\"20\">{{stand.data.abbauzaehlerstand}}</div>\n                    <div flex=\"20\">{{stand.data.betriebsstunden}}</div>\n                </rs-get-document>\n            </div>\n        </div>\n        \n        <h2 style=\"margin-top:30px\">Messprotokoll</h2>\n        <div layout=\"column\" flex>\n            <div ng-repeat=\"raumRef in geschaedigter.data.raeume\">\n                <rs-get-document id=\"{{raumRef.id}}\" as=\"raum\">\n                    <div ng-repeat=\"stelleRef in raum.data.feuchtigkeitsstellen\" style=\"margin-bottom:4px\" class=\"rs-form-cell-readonly\">\n                        <rs-get-document id=\"{{stelleRef.id}}\" as=\"stelle\">\n                            <h3>{{raum.data.name}} Punkt {{($index+1)}} <small ng-if=\"stelle.data.kommentar\">({{stelle.data.kommentar}})</small></h3>\n                            <rs-get-document ng-repeat=\"messungRef in stelle.data.messungen\" id=\"{{messungRef.id}}\" as=\"messung\"  layout=\"row\">\n                                <div flex=\"40\" layout=\"row\">{{messung.created.at | date : 'dd.MM.yyyy - HH:mm'}}</div>\n                                <div flex>{{messung.data.wert}}</div>\n                            </rs-get-document>\n                        </rs-get-document>\n                    </div>\n                </rs-get-document>\n            </div>\n        </div>\n    </rs-get-document>\n    \n    <rs-load-form-info document=\"document\" form-info=\"formInfo2\">\n        <rs-form document=\"document\" form-info=\"formInfo2\" section=\"formInfo2.sections[1]\" readonly=\"{{document.data.unterschrift.size !== 0? 'true' : 'false'}}\"></rs-form>\n    </rs-load-form-info>\n</md-content>","css":"","controller":"","packages":[]},"locks":[],"created":{"at":"2018-02-06T09:47:28+01:00","by":"","from":"","client":"server"},"modified":{"at":"2019-04-11T08:43:43+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1554972223837,"ct":1517906848812,"a_depth":4,"a":["apps","b791df37-6eef-4a3e-9066-1b79e0bdad31","35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f","64500ae9-6089-4e55-add1-3e38c2fa1c41"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"bd294c30-f6bb-48a6-9287-3ff71ea102fd","v":"31de2ef28075d8b1","previous":{"v":"initial"},"p":"14b26fb3-bc41-4172-94da-954a55f5fe65","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"page","template":"<ae-list  list-id=\"2dab232c-2c8a-4aa4-b3f9-6023a7116161\"\n          query-id=\"f812861f-68c8-4818-9972-be7b5474c9b1\"\n          :root-document-id=\"document.id\"\n          @selected=\"Aeppic.navigateTo($event)\"\n          param-min-column-width=\"1fr\"\n          param-design=\"search-card\"\n          :param-design-params=\"{ hidePath: true }\"\n          class=\"_CSS-list\"\n          >\n</ae-list>\n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-11-29T15:52:36+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-11-29T15:52:41+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1669737161717,"ct":1669737156820,"a_depth":4,"a":["apps","94a64d89-d204-4918-b147-d717914fb03e","7a20d482-9f09-47a0-984e-f9aaec24e338","14b26fb3-bc41-4172-94da-954a55f5fe65"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"bea0e9f2-c9fe-47f7-8ab5-2256b6dbf9a7","v":"17abb672895015ae","previous":{"v":"34515e2356d8d4e6"},"p":"24842415-3690-4cad-82b9-b959ae7621c6","f":{"id":"design-form","v":"baf08f1171a94bca","text":"Design"},"data":{"name":"page","template":"<template v-if=\"!locals.entries.length\">\n  Keine Einstellungen möglich\n</template>\n<template v-else>\n  <div class=\"_CSS-settings\">\n      <div class=\"_CSS-menu\">\n        <div class=\"_CSS-list__entry ae-button\" :class=\"{ 'ae-button--primary': index === locals.activeEntryIndex }\" v-for=\"(entry, index) of locals.entries\" @click.stop=\"locals.activeEntryIndex = index; locals.activeLocation = locals.locationsByIndex[index][0]\">\n          <ae-icon :class=\"entry.data.namedIcon || 'fa fa-cog'\"></ae-icon>\n          <span>{{ entry.data.name }}</span>\n        </div>\n      </div>\n\n      <section class=\"_CSS-locations\" >\n        <div class=\"_CSS-location ae-button\" :class=\"{ 'ae-button--secondary': location === locals.activeLocation }\" v-for=\"location of locals.locationsByIndex[locals.activeEntryIndex]\" @click.stop=\"locals.activeLocation = location\">\n          <ae-design style=\"display:inline-block;\" name=\"icon\" :document=\"location\"></ae-design>\n          <ae-design style=\"display:inline-block;\" name=\"title\" :document=\"location\"></ae-design>\n        </div>\n      </section>\n      <div class=\"_CSS-active bp-card bp-card--bordered\">\n        <ae-design name=\"page-with-toolbar\" :document=\"locals.activeLocation\" style=\"width: 100%;\"></ae-design>\n      </div>\n  </div>\n</template>","css":"._CSS {\n  padding: var(--bp-page-content-padding);\n  overflow-y: scroll;\n}\n\n._CSS-settings {\n  max-width: var(--ae-page-max-width);\n  margin: auto;\n\n  display: grid;\n  grid-template-areas: \n  \"menu locations\"\n  \"menu active\";\n  grid-template-columns: 200px 1fr;\n  grid-gap: var(--ae-size-3);\n}\n\n._CSS-settings__active {\n  flex: 1;\n}\n\n._CSS-menu {\n  grid-area: menu;\n}\n\n._CSS-locations {\n  grid-area: locations;\n\n  display: flex;\n\n  width: 100%;\n  overflow-x: auto;\n}\n\n._CSS-active {\n  grid-area: active;\n\n}\n\n._CSS-entry__settings {\n  display: flex;\n}","controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Einstellung: '8bb3e79d-120a-4e77-a580-205c4401d101'\n    }\n\n    locals.entries = []\n    locals.locationsByIndex = []\n    locals.activeEntryIndex = null\n    locals.activeLocation = null\n\n    locals.entries = await Aeppic.find(`a:${document.a[0]} f.id:${this.FORMS.Einstellung}`)\n    locals.locationsByIndex = await Promise.all(locals.entries.map(entry => Aeppic.get(entry.data.locations)))\n\n    locals.activeEntryIndex = 0\n    if (!locals.locationsByIndex[locals.activeEntryIndex]) {\n      return\n    }\n\n    locals.activeLocation = locals.locationsByIndex[locals.activeEntryIndex][0]\n  }\n}\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-09-17T11:54:52+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-03-30T13:58:15+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1648648695098,"ct":1600343692979,"a_depth":4,"a":["apps","a4f3e35e-f945-4c8b-a7a4-81e987585974","13525440-3a25-44be-851b-1bcd803bff80","24842415-3690-4cad-82b9-b959ae7621c6"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"bee01ad9-14be-44bc-95ca-a028d30ac1e2","v":"231c77ee61c79783","previous":{"v":"0fe05a9799daf240"},"p":"fc2bd280-6c0c-4e62-ac45-ce67d884ff01","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"page","template":"\n<ae-list  list-id=\"table-list\"\n          :filter=\"locals.filter ? 'f.id:' + locals.filter : null\"\n          :documents=\"locals.documents\"\n          :param-list-form-id=\"locals.FORMS.Mieter\"\n          :param-root-document-id=\"document.id\"\n          @selected=\"Aeppic.drillInto($event)\"\n          :params=\"{ columns: 'data.status,data.unternehmen,data.ansprechpartner,data.telefon1,data.email1', designs: 'table:switch,' }\"\n          :search-options=\"{ searchAllFields: true }\"\n          param-sort-fields=\"data.name,data.unternehmen,data.anrede\"\n          param-filter-fields=\"data.name,data.anrede\"\n          class=\"_CSS-list\"\n></ae-list>\n   ","css":"","controller":"class Controller {\n  async init() {\n    locals.filter = ''\n\n    locals.FORMS = {\n      Mieter: '3c0a7011-6a65-4ed3-98e1-06e4f5a314d8',\n    }\n\n    locals.documents = []\n\n    await this.update()\n  }\n\n  async update() {\n    const query = `p:${document.id} f.id:${locals.FORMS.Mieter}`\n    console.log(query)\n    const options = {\n      size: 3000,\n      sort: 'data.nachname,data.unternehmen,id'\n    }\n\n    Aeppic.subscribe(query, options, (documents) => locals.documents = documents)\n  }\n}\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-08-16T10:55:37+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-08-19T11:19:48+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1660907988185,"ct":1660647337075,"a_depth":4,"a":["apps","86189c5a-b9f4-445a-879f-d94574960df0","15292d56-6806-4263-b6d0-9194687203e1","fc2bd280-6c0c-4e62-ac45-ce67d884ff01"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"bf570c3f-22bd-4cbd-92a6-31c4c6746b77","v":"a24093a57ff7fcb7","previous":{"v":"cda5c8cef0777322"},"p":"7be5f2c5-206b-4ab6-9d4d-c4834baf8e32","f":{"id":"design-form","v":"65801907e0c30697","text":"Design"},"data":{"name":"page","template":"<div :class=\"{ '_CSS--wide': Aeppic.Device === 'Desktop', '_CSS--small': Aeppic.Device !== 'Desktop' }\">\n\n  <section class=\"_CSS-infos\">\n    <button v-if=\"data.type === 'ENERGIE'\" class=\"ae-button _CSS-infos__button\" @click.stop=\"$refs.myPersonalTasksCreator.$emit('show')\">\n      <ae-icon class=\"fad fa-plus\"></ae-icon>\n      Notiz erstellen\n    </button>\n\n    <button class=\"ae-button _CSS-infos__button\" @click.stop=\"$refs.myPersonalTasks.$emit('show')\">\n      <ae-icon class=\"fad fa-sticky-note\"></ae-icon>\n      Meine Notizen\n    </button>\n\n    <button class=\"ae-button _CSS-infos__button\" @click.stop=\"controller.showOverdues()\">\n      <ae-icon class=\"fad fa-exclamation\"></ae-icon>\n      Überfällige Aufgaben\n    </button>\n\n    <button class=\"ae-button _CSS-infos__button\" @click.stop=\"controller.showMyTasks()\">\n      <ae-icon class=\"fad fa-check\"></ae-icon>\n      Meine Aufgaben\n    </button>\n  </section>\n\n  <section class=\"_CSS-tasks\">\n    <section class=\"_CSS-lists__selectors\">\n      <button class=\"ae-button _CSS-button-date\"\n              :class=\"[ locals.activeSelector.key === selector.key ? 'ae-button--secondary' : '' ]\"\n              v-for=\"selector of locals.selectors\"\n              @click.stop=\"locals.activeSelector = selector\"\n      >\n        <div class=\"_CSS-button-date__label\">\n          {{ selector.label }}\n        </div>\n\n        <div class=\"_CSS-button-date__readable-date\">\n        {{ selector.start.toLocaleString({ day:'2-digit', weekday: 'short', month: 'short' }) }}\n        <template v-if=\"selector.end\">\n        - {{ selector.end.toLocaleString({ day:'2-digit', weekday: 'short', month: 'short' }) }}\n        </template>\n        </div>\n      </button>\n    </section>\n\n    <ae-layout  layout-id=\"978892c9-4757-4f01-926a-697961a1ce1e\"\n                :param-date=\"{ start: locals.activeSelector.start, end: locals.activeSelector.end }\"\n                :param-dashboard-type=\"data.type\"\n                param-filter=\"data.read:false\"\n                param-label=\"Benachrichtigungen (ungelesen)\"\n                class=\"_CSS-list\"\n                :key=\"'notificationsunread' + locals.activeSelector.key\"\n    ></ae-layout>\n\n    <ae-layout  layout-id=\"3675ffcc-f19a-4d72-907c-c0b09bf31da7\"\n                :param-date=\"{ start: locals.activeSelector.start, end: locals.activeSelector.end }\"\n                :param-dashboard-type=\"data.type\"\n                :param-debug=\"false\"\n                class=\"_CSS-list\"\n                :key=\"'overdues' + locals.activeSelector.key\"\n    ></ae-layout>\n\n\n    <template v-if=\"data.type === 'BIZPIN' || data.type === 'BIZPIN_CORE' || !data.type\">\n        <ae-layout  layout-id=\"5bc44c85-9419-4485-b71e-51a4f783b980\"\n                  :param-date=\"{ start: locals.activeSelector.start, end: locals.activeSelector.end }\"\n                  :param-dashboard-type=\"data.type\"\n                  :param-debug=\"true\"\n                  class=\"_CSS-list\"\n                  :key=\"'mytasksCore' + locals.activeSelector.key\"\n      ></ae-layout>\n    </template>\n    <template v-else>\n      <ae-layout  layout-id=\"54f86044-ce0f-4295-af1c-5bd7a5a2fbe2\"\n                  :param-date=\"{ start: locals.activeSelector.start, end: locals.activeSelector.end }\"\n                  :param-dashboard-type=\"data.type\"\n                  class=\"_CSS-list\"\n                  :key=\"'callbacks' + locals.activeSelector.key\"\n      ></ae-layout>\n      <ae-layout  layout-id=\"683d9180-5b53-432a-bb31-674569cb922c\"\n                  :param-date=\"{ start: locals.activeSelector.start, end: locals.activeSelector.end }\"\n                  :param-dashboard-type=\"data.type\"\n                  class=\"_CSS-list\"\n                  :key=\"'mytasks' + locals.activeSelector.key\"\n      ></ae-layout>\n    </template>\n    \n    <ae-layout  layout-id=\"978892c9-4757-4f01-926a-697961a1ce1e\"\n                :param-date=\"{ start: locals.activeSelector.start, end: locals.activeSelector.end }\"\n                :param-dashboard-type=\"data.type\"\n                param-filter=\"data.read:true\"\n                param-label=\"Benachrichtigungen (gelesen)\"\n                class=\"_CSS-list\"\n                :key=\"'notificationsread' + locals.activeSelector.key\"\n    ></ae-layout>\n\n  </section>\n\n</div>\n \n\n<!-- DIALOGS -->\n\n<template v-if=\"data.type === 'BIZPIN' || data.type === 'BIZPIN_CORE' || !data.type\">\n  <ae-layout layout-id=\"d3dff547-443b-4aa5-a270-2ceb6828eeb6\" ref=\"myPersonalTasks\"></ae-layout>\n</template>\n<template v-else-if=\"data.type === 'ENERGIE'\">\n  <ae-layout layout-id=\"5fcfaa8c-07a2-4d9f-b3e3-9127f20a4877\" ref=\"myPersonalTasks\"></ae-layout>\n  <ae-layout layout-id=\"34176a94-bc9e-463d-91f5-14f86095a67e\" ref=\"myPersonalTasksCreator\"></ae-layout>\n</template>\n","css":"._CSS {\n  padding: var(--bp-page-content-padding);\n}\n\n._CSS-infos {\n  display: flex;\n  flex-wrap: wrap;\n\n  margin-bottom: var(--ae-size-5);\n}\n\n._CSS--small ._CSS-infos {\n  justify-content: space-evenly;\n}\n\n._CSS--wide ._CSS-infos {\n  justify-content: center;\n}\n\n._CSS ._CSS-infos__button {\n  background: var(--ae-ui-background);\n  xmargin: var(--ae-size-1) var(--ae-size-2);\n\n  display: flex;\n  xflex-flow: column;\n\n  xjustify-content: center;\n  align-items: center;\n  xtext-align: center;\n}\n\n\n/*\n._CSS--wide ._CSS-infos__button {\n  font-size: var(--ae-font-size-5);\n  width: var(--ae-size-10);\n  height: var(--ae-size-10);\n\n  margin: var(--ae-size-1) var(--ae-size-2);\n}\n\n._CSS--small ._CSS-infos__button {\n  font-size: var(--ae-font-size-3);\n\n  width: var(--ae-size-9);\n  height: var(--ae-size-9);\n\n  margin: var(--ae-size-1) var(--ae-size-1);\n}\n*/\n\n._CSS-infos__button > .ae-icon {\n  margin: 0 var(--ae-size-2) 0 0;\n}\n\n._CSS-lists__selectors {\n  display: flex;\n  margin-bottom: var(--ae-size-5);\n\n  flex-wrap: wrap;\n}\n\n._CSS--wide ._CSS-lists__selectors {\n  justify-content: center;  \n}\n\n._CSS--small ._CSS-lists__selectors {\n  justify-content: flex-start;\n}\n\n._CSS ._CSS-button-date {\n  background: var(--ae-ui-background);\n\n  display: flex;\n  flex-flow: column;\n}\n\n._CSS--wide ._CSS-button-date {\n  margin: var(--ae-size-1) var(--ae-size-3);\n\n}\n\n._CSS--small ._CSS-button-date {\n  margin: var(--ae-size-1) var(--ae-size-1);\n\n  font-size: var(--ae-font-size-3);\n}\n\n._CSS-button-date__label {\n  color: var(--ae-primary-900);\n}\n\n\n._CSS--wide ._CSS-button-date__readable-date {\n  font-size: var(--ae-font-size-3);\n}\n\n._CSS--small ._CSS-button-date__readable-date {\n  font-size: var(--ae-font-size-1);\n}\n\n._CSS-list ~ ._CSS-list {\n  margin-top: var(--ae-size-3);\n}","controller":"class Controller {\n  init() {\n    this.FORMS = {\n      Overdues: 'd4a62ddc-8f9c-4c88-89b3-2ab43babb8b7',\n      MyTasks: '4aed43d5-124f-47e7-9600-8a6e70ed59ab',\n    }\n\n    locals.selectors = this.buildSelectors()\n\n    locals.activeSelector = locals.selectors[1]\n  }\n\n  buildSelectors() {\n    const today = Aeppic.DateTime.local().startOf('day')\n\n    const selectors = []\n    selectors.push(this.buildSelector({ label: 'Letzten 10 Tage', start: today.plus({ days: -10 }), end: today.plus({ days: -1 }) }))\n    selectors.push(this.buildSelector({ label: 'Aktuell', start: today.plus({ days: -1 }), end: today.plus({ days: 1 }) }))\n    // selectors.push(this.buildSelector({ label: 'Gestern', start: today.plus({ days: -1 }) }))\n    // selectors.push(this.buildSelector({ label: 'Heute', start: today }))\n    // selectors.push(this.buildSelector({ label: 'Morgen', start: today.plus({ days: 1 }) }))\n    selectors.push(this.buildSelector({ label: 'Nächsten 10 Tage', start: today.plus({ days: 1 }), end: today.plus({ days: 10 }) }))\n    \n    return selectors\n  }\n\n  buildSelector(options) {\n    const { label, icon, start, end } = options\n    \n    const selector = {\n      key: Aeppic.uuid(),\n      label: label || '',\n      icon: icon || '',\n      start: start || null,\n      end: end || null\n    } \n\n    return selector\n  }\n\n  async showOverdues() {\n    let overdueDocument = await Aeppic.findOne(`p:${Aeppic.Account.id} f.id:${this.FORMS.Overdues}`)\n\n    if (!overdueDocument) {\n      overdueDocument = await Aeppic.new(this.FORMS.Overdues, Aeppic.Account.id)\n      Aeppic.save(overdueDocument)\n    }\n\n    Aeppic.drillInto(overdueDocument, { mode: 'dialog' })\n  }\n\n  async showMyTasks() {\n    let myTasksDocument = await Aeppic.findOne(`p:${Aeppic.Account.id} f.id:${this.FORMS.MyTasks}`)\n\n    if (!myTasksDocument) {\n      myTasksDocument = await Aeppic.new(this.FORMS.MyTasks, Aeppic.Account.id)\n      Aeppic.save(myTasksDocument)\n    }\n\n    Aeppic.drillInto(myTasksDocument, { mode: 'dialog' })\n  }\n}\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-05-08T08:51:34+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2022-01-27T08:37:02+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1643272622566,"ct":1588927894172,"a_depth":4,"a":["apps","599db2de-4e07-4722-98bd-7f42d498b352","79718664-ed22-4b52-9c10-037881df3578","7be5f2c5-206b-4ab6-9d4d-c4834baf8e32"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"c0141b2e-473e-42c5-a291-5717230aebb4","v":"5c4238fb7d9a2ba5","previous":{"v":"81d3b950a324cad4"},"p":"repository-folder-form","f":{"id":"design-form","v":"e3fe9ece11aabc5e","text":"Design"},"data":{"name":"page","applies":"","template":"<!-- <ae-layout  layout-id=\"f66a2fef-e019-4cc3-a3ce-9d6e1e16a7ab\"\n            :param-list-form=\"data.contentsForm\"\n            @filter=\"locals.filter = $event\"\n            @sort=\"locals.sort = $event\"\n            :param-initial-sort=\"locals.sort\"\n            :param-initial-filters=\"params.initialFilters\"\n            :param-document=\"document\"\n></ae-layout> -->\n\n<ae-list  class=\"_CSS-list\"\n          list-id=\"table-list\"\n          :search=\"controller.filter\"\n          :root-document-id=\"document.id\" \n          :param-columns=\"data.displayTableColumns\"\n          :param-headers=\"data.displayTableHeaders\"\n          :param-designs=\"data.displayTableDesigns\"\n          :sort=\"locals.sort\"\n          :param-initial-sort-by=\"data.sortBy\"\n          :param-initial-sort-asc=\"data.sortAsc\"\n          :param-show-reset-sorting=\"data.showResetSorting\"\n          :param-row-height=\"data.rowHeight\"\n          :watch-list=\"false\"\n          :search-options=\"{ searchAllFields: true, size: 2000 }\"\n          :param-contents-form=\"data.contentsForm\"\n          :param-filter-fields=\"data.filterFields\"\n          :param-sort-fields=\"data.sortFields\"\n          :param-disable-filter=\"data.disableFilter\"\n          :param-disable-sort=\"data.disableSort\"\n          >\n</ae-list>\n","css":"._CSS {\n  padding: 0 var(--bp-page-content-padding);\n  overflow: hidden;\n  /* overflow-y: scroll;\n  overflow-x: scroll;\n  overflow-y: scroll;\n  -webkit-overflow-scrolling: touch; */\n}\n\n._CSS-list {\n  height: 100%;\n}","controller":"class Controller  {\n  init() {\n    locals.filter = ''\n    // TODO: remove params.initialSortBy \n    locals.sort = { field: data.sortBy || params.initialSortBy || 'data.name', descending: typeof params.initialSortAsc === 'boolean' ? !params.initialSortAsc : null }\n  }\n  \n  get filter() {\n    const parts = [`p:${document.id}`]\n\n    // if (locals.filter) {\n    //   parts.push(locals.filter)\n    // }\n\n    if (data.contentsForm.id) {\n      parts.push('f.id:' + data.contentsForm.id)\n    }\n\n    return parts.join(' AND ')\n  }\n}","packages":[]},"locks":[],"created":{"at":"2017-11-24T15:46:29+01:00","by":"","from":"","client":"412955bd-5923-4b91-8f6b-df6b732e3ce8"},"modified":{"at":"2020-10-29T15:15:07+00:00","by":"ab01efe6-018d-4330-8ec4-5989e212f82a","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1603984507561,"ct":1511534789377,"a_depth":3,"a":["system","system-folder-forms-folder","repository-folder-form"],"a_forms":["system-folder-form","form-folder","form"],"inheritedLocks":[null,null,null,null],"stamps":[],"hidden":false,"readonly":false},{"id":"c20df568-8e15-4090-82f8-d33e588bec45","v":"1802f5e2a6d0abdd","previous":{"v":"0f49b68768f83cb6"},"p":"2b4d7b0d-1b7c-49b7-956c-ab1b701fbe3d","f":{"id":"design-form","v":"24435d748c76f819","text":"Design"},"data":{"name":"page","template":"<div class=\"_CSS-split\">\n  <div class=\"_CSS-buttons\">\n    <div class=\"ae-button _CSS-button\" v-for=\"button in locals.buttons\" @click=\"Aeppic.drillInto(button.data.target)\">\n      <ae-icon class=\"_CSS-button__icon\" :class=\"{ [button.data.namedIcon]: true }\"></ae-icon>\n      <span>{{ button.data.displayName || button.data.name }}</span>\n    </div>\n  </div>\n\n  <div class=\"_CSS-tablewrapper\">\n    <table class=\"_CSS-table\">\n      <tbody>\n        <tr>\n          <th rowspan=\"3\" class=\"_CSS-description-axis-y\">\n            <div>Eintrittswahrscheinlichkeit</div>\n          </th>\n          <th title=\"hoch\" class=\"_CSS-description-small-axis-y\"><ae-icon class=\"far fa-arrow-up\"/></th>\n          <td class=\"_CSS-risk _CSS-risk--warning\">{{ locals.counts['3 A'] }}</td>\n          <td class=\"_CSS-risk _CSS-risk--danger\">{{ locals.counts['3 B'] }}</td>\n          <td class=\"_CSS-risk _CSS-risk--danger\">{{ locals.counts['3 C'] }}</td>\n        </tr>\n        <tr>\n          <th title=\"mittel\" class=\"_CSS-description-small-axis-y\"><ae-icon class=\"far fa-circle\"/></th>\n          <td class=\"_CSS-risk _CSS-risk--ok\">{{ locals.counts['2 A'] }}</td>\n          <td class=\"_CSS-risk _CSS-risk--warning\">{{ locals.counts['2 B'] }}</td>\n          <td class=\"_CSS-risk _CSS-risk--danger\">{{ locals.counts['2 C'] }}</td>\n        </tr>\n        <tr>\n          <th title=\"gering\" class=\"_CSS-description-small-axis-y\"><ae-icon class=\"far fa-arrow-down\"/></th>\n          <td class=\"_CSS-risk _CSS-risk--ok\">{{ locals.counts['1 A'] }}</td>\n          <td class=\"_CSS-risk _CSS-risk--ok\">{{ locals.counts['1 B'] }}</td>\n          <td class=\"_CSS-risk _CSS-risk--warning\">{{ locals.counts['1 C'] }}</td>\n        </tr>\n        <tr>\n          <th></th>\n          <th></th>\n          <th title=\"gering\" class=\"_CSS-description-small-axis-x\"><ae-icon class=\"far fa-arrow-down\"/></th>\n          <th title=\"mittel\" class=\"_CSS-description-small-axis-x\"><ae-icon class=\"far fa-circle\"/></th>\n          <th title=\"schwer\" class=\"_CSS-description-small-axis-x\"><ae-icon class=\"far fa-arrow-up\"/></th>\n        </tr>\n        <tr>\n          <th></th>\n          <th></th>\n          <th class=\"_CSS-description-axis-x\" colspan=\"3\">Schwere der Auswirkung</th>\n        </tr>\n      </tbody>\n    </table>\n  </div>\n</div>\n\n<ae-list  list-id=\"table-list\"\n          v-if=\"locals.processingOperations\"\n          :root-document-id=\"locals.processingOperations.id\"\n          param-columns=\"data.name,data.verantwortlicher,data.risikoklasseAlsZahl\"\n          param-designs=\"title,,risk-color\"\n          query-id=\"f812861f-68c8-4818-9972-be7b5474c9b1\"\n          filter=\"f.id:7894afb7-cbf3-4c0d-96d7-8c48efc1e227\"\n          param-list-form-id=\"7894afb7-cbf3-4c0d-96d7-8c48efc1e227\"\n          sort=\"data.name\"\n          :param-disable-sort=\"true\"\n          :param-disable-filter=\"true\"\n>\n</ae-list>\n","css":"._CSS {\n  flex: 1;\n  display: flex;\n  flex-flow: column;\n\n  padding: var(--bp-page-content-padding);\n}\n\n._CSS-split {\n  /* overflow: auto; */\n\n  /* flex: 1; */\n  display: grid;\n  grid-template-columns: 1fr 1fr;\n  grid-column-gap: var(--ae-size-6);\n}\n\n._CSS-buttons {\n  padding: var(--bp-page-content-padding) var(--bp-page-content-padding) 0 var(--bp-page-content-padding);\n  display: grid;\n  grid-template-columns: repeat(2, minmax(15rem, 1fr));\n  grid-template-rows: repeat(auto-fill, 7rem);\n  grid-gap: 1rem;\n} \n\n\n._CSS ._CSS-button {\n  cursor: pointer;\n  display: flex;\n  flex-flow: column;\n  justify-content: center;\n  align-items: center;\n  text-align: center;\n  padding: 1em;\n\n  background: var(--ae-ui-card-background);\n\n  border: var(--ae-border-width) solid var(--ae-border-color);\n  border-radius: var(--ae-border-radius);\n}\n\n._CSS-button__icon  {\n  color: var(--ae-primary-700);\n  font-size: var(--ae-font-size-11);\n}\n\n._CSS-table {\n  display: table;\n  table-layout: fixed;\n\n  border-spacing: var(--ae-size-3);\n}\n\n._CSS-tablewrapper {\n  margin: 0 auto;\n  padding: var(--ae-size-2);\n}\n\n._CSS-table * {\n  text-align: center;\n}\n\n._CSS-description-small-axis-y {\n  width: var(--ae-size-6);\n  padding: 0 var(--ae-size-3) 0 var(--ae-size-3); \n} \n\n._CSS-description-small-axis-x {\n  width: var(--ae-size-6);\n  padding: 0 var(--ae-size-3) 0 var(--ae-size-3); \n} \n\n._CSS-description-axis-y {\n  color: var(--ae-foreground-l3);\n  width: var(--ae-size-6);\n}\n\n._CSS-description-axis-x {\n  color: var(--ae-foreground-l3);\n}\n\n._CSS-description-axis-y > div {\n  transform: \n    /* Magic Numbers */\n    translate(0px, var(--ae-size-9))\n    /* 45 is really 360 - 45 */\n    rotate(270deg);\n  width: var(--ae-size-5);\n}\n\n._CSS ._CSS-risk {\n  height: var(--ae-size-9);\n  min-width: var(--ae-size-9); \n  border-radius: var(--ae-border-radius); \n}\n\n._CSS-risk--ok {\n  background: var(--ae-accent-green-600);\n}\n\n._CSS-risk--warning {\n  background: var(--ae-accent-orange-500);\n}\n\n._CSS-risk--danger {\n  background: var(--ae-accent-red-500);\n}\n","controller":"class Controller {\n  async init() {\n    locals.counts = {}\n\n    Aeppic.subscribe(`a: ${document.id} AND f.id:7894afb7-cbf3-4c0d-96d7-8c48efc1e227`, (documents) => {\n      this.onUpdate(documents)\n    })\n\n    locals.processingOperations = (await Aeppic.find(`p:${document.id} data.contentsForm.id:7894afb7-cbf3-4c0d-96d7-8c48efc1e227`))[0]\n    const buttons = await Aeppic.getAll(data.buttons)\n    const availableButtons = await Promise.all(buttons.map(async (b) => {\n      const target = await Aeppic.get(b.data.target)\n      if (target) {\n        return b\n      }\n    }))\n\n    locals.buttons = availableButtons.filter(b => b != null)\n  }\n \n  onUpdate(documents) {\n    locals.counts = this.countPerRiskClass(documents)\n  }\n\n  countPerRiskClass(documents) {\n    const counts = {\n      '1 A': 0,\n      '2 A': 0,\n      '3 A': 0,\n      '1 B': 0,\n      '2 B': 0,\n      '3 B': 0,\n      '1 C': 0,\n      '2 C': 0,\n      '3 C': 0\n    }\n\n    for (const doc of documents) {\n      const risikoklasse = doc.data.risikoklasse\n      if (typeof counts[risikoklasse] !== 'undefined') {\n        counts[risikoklasse] += 1\n      } else {\n        console.warn(`Unknown riskoklasse \"${risikoklasse}\"`)\n      }\n    }\n\n    return counts\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2018-05-24T16:28:36+02:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","from":"","client":"server"},"modified":{"at":"2020-06-16T09:21:14+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1592299274254,"ct":1588927857104,"a_depth":5,"a":["apps","83c76376-420e-4231-9275-d0fe2ab47c32","ba440134-1703-495e-b869-0f0c8d447f75","91352b74-c5e5-4c05-aa68-f13b0b723f35","2b4d7b0d-1b7c-49b7-956c-ab1b701fbe3d"],"a_forms":["folder","application-form","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"c28cf8c7-fe7e-4660-98d5-70adecde344a","v":"b59daff9bb70cb47","previous":{"v":"00d0a4ad543e7201"},"p":"4aed43d5-124f-47e7-9600-8a6e70ed59ab","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"page","template":"<div class=\"_CSS-body\">\n  <ae-layout  layout-id=\"9d6ba0de-4e22-4291-b1d8-4e73b55ed3b9\"\n              :param-company-id=\"Aeppic.Account[0]\"\n              :param-user-id=\"Aeppic.ProfilePage.id\"\n              param-initial-filters=\"data.erledigt:false\"\n              @selected=\"Aeppic.drillInto($event, { mode: 'dialog', ...arguments[1] })\"\n              style=\"width: 100%;\"\n  ></ae-layout>\n</div>","css":"._CSS-body {\n  padding: var(--bp-page-content-padding);\n}","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-10-26T11:27:04+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-10-26T11:30:12+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1635247812443,"ct":1635247624743,"a_depth":4,"a":["apps","77ee8815-2c3a-4bb5-abd9-90541a545a24","b42e5a69-6cf0-4b55-928a-755011005b5a","4aed43d5-124f-47e7-9600-8a6e70ed59ab"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"c2e35a7d-6739-414e-80b5-6f62ff633bff","v":"ebd9adc7b5785e82","previous":{"v":"43d28505c649c4c7"},"p":"35131030-70b7-4f91-a70d-5e424770d2e3","f":{"id":"design-form","v":"24435d748c76f819","text":"Design"},"data":{"name":"page","template":"<button @click=\"locals.white = !locals.white\">\n  Background white/transparent\n</button> \n<div class=\"_CSS-container\" :style=\"{ background: locals.white ? 'white' : 'transparent' }\">\n\n\n  <div class=\"_CSS-shadows\">\n    <template v-for=\"i of 5\">\n      <div class=\"_CSS-shadow\" :style=\"{ 'box-shadow': 'var(--' + ['ae-shadow-' + i] + ')' }\">\n      ae-shadow-{{ i }}\n      </div>\n    </template>\n  </div>\n\n  <div class=\"_CSS-colors\">\n    <template v-for=\"i of 9\">\n      <div class=\"_CSS-block\" :style=\"{ background: 'var(--' + ['ae-primary-' + i + '00'] + ')' }\">\n      ae-primary-{{ i }}00\n      </div>\n    </template>\n  </div>\n\n  <div class=\"_CSS-colors\">\n    <template v-for=\"i of 9\">\n      <div class=\"_CSS-block\" :style=\"{ background: 'var(--' + ['ae-background-' + i + '00'] + ')' }\">\n      ae-background-{{ i }}00\n      </div>\n    </template>\n  </div>\n\n  <div class=\"_CSS-colors\">\n    <div class=\"_CSS-block\" :style=\"{ background: 'var(--' + ['ae-foreground'] + ')' }\">\n      Foreground\n    </div>\n    <template v-for=\"i of 4\">\n      <div class=\"_CSS-block\" :style=\"{ background: 'var(--' + ['ae-foreground-l' + i] + ')' }\">\n        Foreground l-{{ i }}\n      </div>\n    </template>\n  </div>\n  <div class=\"_CSS-colors\">\n    <div class=\"_CSS-block\" :style=\"{ background: 'var(--' + ['ae-background'] + ')' }\">\n      Background\n    </div>\n    <template v-for=\"i of 4\">\n      <div class=\"_CSS-block\" :style=\"{ background: 'var(--' + ['ae-background-d' + i] + ')' }\">\n        Background d-{{ i }}\n      </div>\n    </template>\n  </div>\n  <div class=\"_CSS-colors\">\n    <template v-for=\"i of 9\">\n      <div class=\"_CSS-block\" :style=\"{ background: 'var(--' + ['ae-accent-red-' + i + '00'] + ')' }\">\n      ae-accent-red-{{ i }}00\n      </div>\n    </template>\n  </div>\n  <div class=\"_CSS-colors\">\n    <template v-for=\"i of 9\">\n      <div class=\"_CSS-block\" :style=\"{ background: 'var(--' + ['ae-accent-green-' + i + '00'] + ')' }\">\n      ae-accent-green-{{ i }}00\n      </div>\n    </template>\n  </div>\n\n \n  <div class=\"_CSS-n\" style=\"background: var(--ae-primary-100); border-color: var(--ae-primary-200);\">\n    <span class=\"_CSS-n__headline\" style=\"color: var(--ae-primary-900);\">Our privacy policy has changed</span>\n    <span class=\"_CSS-n__subline\" style=\"color: var(--ae-primary-500);\">Make sure you know how these changes affect you.</span>\n  </div>\n  <div class=\"_CSS-n\" style=\"background: var(--ae-primary-900); border-color: var(--ae-primary-800);\">\n    <span class=\"_CSS-n__headline\" style=\"color: var(--ae-primary-100);\">Our privacy policy has changed</span>\n    <span class=\"_CSS-n__subline\" style=\"color: var(--ae-primary-200);\">Make sure you know how these changes affect you.</span>\n  </div>\n\n  <div class=\"_CSS-n\" style=\"background: var(--ae-background-100); border-color: var(--ae-background-200);\">\n    <span class=\"_CSS-n__headline\" style=\"color: var(--ae-background-900);\">Our privacy policy has changed</span>\n    <span class=\"_CSS-n__subline\" style=\"color: var(--ae-background-500);\">Make sure you know how these changes affect you.</span>\n  </div>\n  <div class=\"_CSS-n\" style=\"background: var(--ae-background-900); border-color: var(--ae-background-800);\">\n    <span class=\"_CSS-n__headline\" style=\"color: var(--ae-background-100);\">Our privacy policy has changed</span>\n    <span class=\"_CSS-n__subline\" style=\"color: var(--ae-background-200);\">Make sure you know how these changes affect you.</span>\n  </div>\n\n  <div class=\"_CSS-n\" style=\"background: var(--ae-accent-red-100); border-color: var(--ae-accent-red-200);\">\n    <span class=\"_CSS-n__headline\" style=\"color: var(--ae-accent-red-900);\">Our privacy policy has changed</span>\n    <span class=\"_CSS-n__subline\" style=\"color: var(--ae-accent-red-500);\">Make sure you know how these changes affect you.</span>\n  </div>\n  <div class=\"_CSS-n\" style=\"background: var(--ae-accent-red-900); border-color: var(--ae-accent-red-800);\">\n    <span class=\"_CSS-n__headline\" style=\"color: var(--ae-accent-red-100);\">Our privacy policy has changed</span>\n    <span class=\"_CSS-n__subline\" style=\"color: var(--ae-accent-red-200);\">Make sure you know how these changes affect you.</span>\n  </div>\n  <div class=\"_CSS-n\" style=\"background: var(--ae-accent-green-900); border-color: var(--ae-accent-green-800);\">\n    <span class=\"_CSS-n__headline\" style=\"color: var(--ae-accent-green-100);\">Our privacy policy has changed</span>\n    <span class=\"_CSS-n__subline\" style=\"color: var(--ae-accent-green-200);\">Make sure you know how these changes affect you.</span>\n  </div>\n\n\n  <p>\n  </p>\n\n  <button class=\"ae-button\">\n    Neu\n  </button>\n\n  <button class=\"ae-button ae-button--primary\">\n    Neu\n  </button>\n\n  <button class=\"ae-button ae-button--secondary\">\n    Neu\n  </button>\n\n  <button class=\"ae-button\">\n    <ae-icon class=\"fa fa-save\"></ae-icon>\n  </button>\n\n  <button class=\"ae-button\">\n    <ae-icon class=\"fa fa-save\"></ae-icon> <span>Speichern</span>\n  </button>\n\n  <button class=\"ae-button\" style=\"font-size: 2rem;\">\n    <span>Speichern</span> <ae-icon class=\"fa fa-save\"></ae-icon>\n  </button>\n\n  <button class=\"ae-button\" disabled>\n    Neu\n  </button>\n\n  <button class=\"ae-button ae-button--primary\" disabled>\n    Neu\n  </button>\n\n  <button class=\"ae-button ae-button--secondary\" disabled>\n    Neu\n  </button>\n\n  <button class=\"ae-button\" disabled>\n    <ae-icon class=\"fa fa-save\"></ae-icon>\n  </button>\n\n  <button class=\"ae-button\" disabled>\n    <ae-icon class=\"fa fa-save\"></ae-icon> <span>Speichern</span>\n  </button>\n\n  <button class=\"ae-button\" style=\"font-size: 2rem;\" disabled>\n    <span>Speichern</span> <ae-icon class=\"fa fa-save\"></ae-icon>\n  </button>\n\n</div>\n","css":"._CSS-container {\n  padding: 12px;\n  height: 100%;\n}\n\n._CSS-shadows,\n._CSS-colors {\n  display: flex;\n  flex-wrap: wrap;\n  height: min-content;\n}\n\n._CSS-shadow,\n._CSS-block {\n  min-width: 200px;\n  height: 100px;\n  margin: 20px;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  color: white;\n}\n\n._CSS-shadow {\n  color: black;\n}\n\n._CSS-n {\n  margin-top:40px;\n  width: 700px;\n  height: 75px;\n  background: var(--ae-primary-100);\n  display: flex;\n  flex-flow:column;\n  border: 2px solid;\n  border-color: var(--ae-primary-200);\n  border-radius: var(--ae-border-radius);\n  padding: var(--ae-size-2);\n}\n\n._CSS-n__headline {\n  color: var(--ae-primary-900);\n  font-size: var(--ae-size-4);\n}\n\n._CSS-n__subline {\n  font-size: var(--ae-size-3);\n  color: var(--ae-primary-500);\n}","controller":"init() {\n  locals.white = false\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2019-03-27T09:06:03+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2020-05-08T08:52:51+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1588927971131,"ct":1553677563883,"a_depth":3,"a":["apps","30363d01-3c4c-407b-861e-c0ef1ca6be75","35131030-70b7-4f91-a70d-5e424770d2e3"],"a_forms":["folder","application-form","form"],"inheritedLocks":[null,null,null,null],"stamps":[]},{"id":"c3287f07-241d-491d-914c-27709691e0fa","v":"initial","p":"aeff79db-4983-45b8-aa9e-38a33d6fb5a5","f":{"id":"design-form","v":"3385ac6766f32638","text":"Design"},"data":{"name":"page","template":"<ae-splitter :limit-expand=\"false\" :split=\"20\" style=\"flex:1\">\r\n  <div slot=\"left-pane\" style=\"display:flex;flex-direction:column\">\r\n    <ae-design class=\"_CSS-tree-header\" name=\"title\" :document=\"document\"></ae-design>\r\n    <ae-list\r\n      class=\"_CSS-tree-children\"\r\n      list-id=\"fb3d7076-2da3-4339-b450-c3f9199aed06\"\r\n      :documents=\"locals.children\"\r\n      param-design-names=\"tree-title,title\"\r\n      param-children-data-field=\"components\"\r\n      >\r\n    </ae-list>\r\n  </div>    \r\n  <div slot=\"right-pane\" class=\"_CSS-container\">\r\n    <ae-form  ref=\"form\"\r\n              class=\"_CSS-form\"\r\n              :document=\"document\" \r\n              :auto-save=\"true\"\r\n    ></ae-form>\r\n  </div>\r\n</ae-splitter>","css":"._CSS {\r\n  display:flex;\r\n  flex-direction: row;\r\n  width:100%;\r\n}\r\n._CSS-container {\r\n  max-width: var(--ae-page-max-width);\r\n  margin: auto;\r\n  width:100%;\r\n}\r\n\r\n._CSS-form {\r\n  height: 100%;\r\n}\r\n\r\n._CSS-tree-header {\r\n  padding: 4px;\r\n  font-size:larger;\r\n  background: var(--ae-background-300);\r\n}\r\n\r\n._CSS-tree-children {\r\n  flex:1;\r\n  overflow:auto;\r\n  padding: 4px;\r\n}","controller":"class Controller {\r\n  init() {\r\n    setTimeout(() => {\r\n     startEditing()\r\n    })\r\n\r\n    Aeppic.watch(document.id, async (d) => {\r\n      locals.children = d.data.components //await Aeppic.getAll(d.data.components)\r\n    })\r\n    \r\n  }\r\n\r\n  toolbarEvent(eventType) {\r\n    if (eventType === 'save') {\r\n      save()\r\n      return\r\n    }\r\n    if (eventType === 'reset') {\r\n      resetEdits()\r\n      return\r\n    }\r\n  }\r\n\r\n  get isReadonly() {\r\n    if (typeof params.readonly === 'boolean') {\r\n      return params.readonly\r\n    }\r\n\r\n    return false\r\n  }\r\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-11-02T09:38:35+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-11-02T09:38:35+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1635845915113,"ct":1635845915101,"a_depth":4,"a":["apps","781ff5de-69db-49dc-99f0-f328b308cd7d","dbd0bd68-3479-4032-9303-9d51615c27a7","aeff79db-4983-45b8-aa9e-38a33d6fb5a5"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","86189c5a-b9f4-445a-879f-d94574960df0","15292d56-6806-4263-b6d0-9194687203e1","fb9ff523-eb89-4f66-a5a6-8171e75213a9"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2022-05-04T12:19:34+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1651666774966,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.FORMS = {\n      Meldung: '28527c6d-4f85-4881-8f5d-948021a60ad0',\n    }\n    locals.LOCATIONS = {\n      NewDocumentLocationId: '0f982a62-1c01-4eba-a857-dedba841cd2b'\n    }\n    locals.COMMANDS = {\n      NewDocumentCommandId: ''\n    }\n    locals.boardDocuments = await Aeppic.find(`a:${document.a[0]} f.id: ${locals.FORMS.Meldung}`)\n\n    Aeppic.subscribe(`a:${document.a[0]} f.id: ${locals.FORMS.Meldung}`, docs => {\n      locals.boardDocuments = docs\n    })\n  }\n}  ","css":"","description":"","name":"page","packages":[],"template":"<ae-design\n    class=\"h-full pt-2\"\n    name=\"rd:board\"\n    document-id=\"0045e457-3491-4fa9-8750-979f15016a47\"\n    :param-documents=\"locals.boardDocuments\"\n    :param-new-document-location-id=\"locals.LOCATIONS.NewDocumentLocationId\"\n    :param-new-document-command-ids=\"[]\"\n    @selected=\"Aeppic.drillInto($event, arguments[1])\"\n  ></ae-design>"},"f":{"id":"design-form","text":"Design","v":"c2d9ae57c7a46896"},"id":"c3681362-35cc-4914-9afb-6c164dbe343f","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-04-11T13:17:08+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"fb9ff523-eb89-4f66-a5a6-8171e75213a9","previous":{"v":"12f0039df1e9a3e5"},"stamps":[],"t":1744377428568,"v":"cb577aa579feeec4"},{"id":"c5d5dd88-c62d-42a0-82c3-d9c1a83ca2d3","v":"038954c9eac40502","previous":{"v":"0cc775c3430acf8c"},"p":"e6ffdfd0-88dd-429d-965b-a4634b065b3b","f":{"id":"design-form","v":"e3fe9ece11aabc5e","text":"Design"},"data":{"name":"page","applies":"","template":"<div style=\"position:absolute; top:0; bottom:0; left:0; right:0; display:flex; flex-direction:column\">\n  <div class=\"ae-row-no-gutter\">\n    <div  @drop.prevent.stop=\"controller.onDropFile($event)\" class=\"_CSS-dropzone\">\n      <strong>File: </strong>\n      <input @change=\"controller.onDropFile($event)\" type=\"file\"><span v-if=\"locals.comparison\">(Incoming)</span>\n    </div>\n    <div class=\"ae-row-no-gutter\" v-if=\"locals.selected && locals.selected.node\">\n      <button :disabled=\"!(locals.selected.node.positionComparison === 'MISSING_IN_2')\" @click=\"controller.addIncoming(locals.selected.node)\">Add Incoming</button>\n      <button :disabled=\"!(locals.selected.node.positionComparison === 'MISSING_IN_2')\" @click=\"controller.addIncoming(locals.selected.node, true)\">\n        <div>Add Incoming</div>\n        <div><small>recursive</small></div>\n      </button>\n      <button :disabled=\"!(locals.selected.node.positionComparison === 'MISSING_IN_1')\" @click=\"controller.deleteExisting(locals.selected.node)\">Delete Existing</button>\n      <button :disabled=\"!(locals.selected.node.positionComparison === 'MOVED_HERE_IN_1') && !(locals.selected.node.positionComparison === 'MOVED_HERE_IN_2')\" @click=\"controller.moveExisting(locals.selected.node)\">Move Existing</button>\n      <button :disabled=\"!(locals.selected.node.dataComparison === 'DIFFERENT')\" @click=\"controller.copyIncoming(locals.selected.node)\">Copy Incoming</button>\n      <button :disabled=\"!(locals.selected.node.dataComparison === 'DIFFERENT')\" @click=\"controller.keepExisting(locals.selected.node)\">Keep Existing</button>\n    </div>\n  </div>\n\n  <ae-splitter v-show=\"locals.comparison || locals.message\" :split=\"25\" style=\"flex:1\">\n    <div slot=\"left-pane\">\n      <div><input v-if=\"locals.comparison\" type=\"checkbox\" v-model=\"locals.selected.showAll\" style=\"margin: 0px 2px\">{{locals.message}}</div>\n      <ul v-if=\"locals.comparison\" style=\"padding-left:0;\">\n        <ae-layout layout-id=\"9ea98a1d-019e-4e16-b1bc-8119ea2030fb\" :param-node=\"locals.comparison\" :param-selected=\"locals.selected\" @selected=\"node => controller.showDocuments(node)\"></ae-layout>\n      </ul>\n    </div>\n    <div slot=\"right-pane\">\n      <ae-layout layout-id=\"973a04b9-67ba-41ce-b7c7-2e1c4cb7f428\" :param-selected=\"locals.selected\"></ae-layout>\n    </div>\n  </ae-splitter>\n</div>","css":"\n._CSS-dropzone{\n  padding: 20px;\n  color: white;\n  background: rgba(255,0,0,0.8);\n  border: 1px gray dashed;\n}","controller":"class Controller{\n\n  init(){\n      \n    locals.comparison = null\n    locals.message = ''\n    locals.comparing = false\n\n    locals.selected = {\n      node: null,\n      showAll: false,\n      getOperationText(_node){\n        const node = _node || this.node\n        const $operation = node && node.$operation\n\n        if($operation === 'ADD_INCOMING')\n          return 'added incoming'\n        else if($operation === 'DELETE_EXISTING')\n          return 'deleted existing'\n        else if($operation === 'COPY_INCOMING')\n          return 'copyied incoming'\n        else if($operation === 'KEEP_EXISTING')\n          return 'kept existing'\n        else if($operation === 'MOVE_EXISTING')\n          return 'moved existing'\n      },\n\n      getDifferenceText(_node){\n        const node = _node || this.node\n        let result = ''\n\n        if(!node)\n          return result\n\n        if(node.positionComparison === 'MISSING_IN_1')\n          result += 'only in existing tree'\n        else if(node.positionComparison === 'MISSING_IN_2')\n          result += 'only in incoming tree'\n        else if(node.positionComparison === 'MOVED_HERE_IN_2')\n          result += 'moved (here in existing tree)'\n        else if(node.positionComparison === 'MOVED_HERE_IN_1' && node.document1)\n          result += 'moved (here in incoming tree)'\n        else if(node.positionComparison === 'PARENT_MOVED')\n          result += 'parent moved'\n\n        if(node.dataComparison === 'DIFFERENT'){\n          if(result)\n            result += ', '\n\n          result += 'different data'\n        }\n\n        return result || 'same'\n      },\n\n      get resultDocument(){\n        return this.node && this.node.$resultDocument\n      },\n\n      set resultDocument(value){\n        if(this.node)\n          this.node.$resultDocument = value\n      }\n    }\n    this.documentsJsonl = null\n  }\n\n  async onDropFile(event){\n    var files = event.target.files || event.dataTransfer.files\n\n    if (!files.length || this.loading)\n      return\n\n    this.loading = true\n    locals.message = 'loading...'\n    var reader = new FileReader()\n\n    reader.onload = (e) => {\n    };\n    \n    reader.readAsText(files[0])\n\n    const fileObjectUrl = URL.createObjectURL(files[0])\n    locals.message = 'ready'\n    await this.compare(fileObjectUrl)\n    this.loading = false\n    URL.revokeObjectURL(fileObjectUrl)\n  }\n\n  async compare(documentsJsonl){\n    if(!documentsJsonl || locals.comparing){\n      return\n    } \n\n    locals.message = 'comparing...'\n    locals.comparing = true\n\n    locals.comparison = null\n    locals.selected.node = null\n\n    const otherAeppicInstance = await Aeppic.newAeppic(documentsJsonl, '#otherAeppicVue')\n    locals.comparison = await Aeppic.compareDocumentTrees(otherAeppicInstance, 'root')\n    locals.message = `${locals.comparison.differentDescendantsCount} differences.`\n    \n    otherAeppicInstance.renderLayout('55429207-71d1-431a-82c8-eeda5b55bb87', {\n      params: {\n        selected: locals.selected\n      }\n    })\n\n    locals.comparing = false;\n  }\n\n  showDocuments(node){\n    locals.selected.node = node\n  }\n\n\n  async addIncoming(node, recursive, isRecursing){\n    \n    const incoming = node.document1\n    let existing = await Aeppic.get(incoming.id)\n\n    if(existing){\n      console.error(`cannot import existing document: ${existing.id}`)\n      return\n    }\n \n    const parent = await Aeppic.get(incoming.p)\n\n    if(!parent){\n      console.error(`cannot import document, parent missing: ${incoming.p}`)\n      return\n    }\n\n    existing = await Aeppic.new(incoming.f, incoming.p, {id:incoming.id, force:true})\n\n    if(!existing){\n      console.error(`could not create document. form missing?`)\n      return\n    }\n\n    this.copyFields(incoming, existing)\n    Aeppic.save(existing)\n    node.$operation = 'ADD_INCOMING'\n    \n    if(!isRecursing){\n      locals.selected.resultDocument = existing\n    }\n    \n    if(recursive){\n      for(let childNode of node.children){\n        await this.addIncoming(childNode, true, true)\n      }\n    }\n  }\n\n\n  async deleteExisting(node){\n    const existing = await Aeppic.edit(node.document2.id)\n\n    if(!existing){\n      console.error(`cannot delete non-existing document: ${node.document2.id}`)\n      return\n    }\n\n    Aeppic.delete(existing.id)\n    locals.selected.node.$operation = 'DELETE_EXISTING'\n  }\n\n  async copyIncoming(node){\n    \n    const incoming = node.document1\n    const existing = await Aeppic.edit(node.document2.id)\n\n    if(!existing){\n      console.error(`cannot copy non-existing document: ${node.document2.id}`)\n      return\n    }\n\n    this.copyFields(incoming, existing)\n    //Aeppic.commit(existing)\n    Aeppic.save(existing)\n    locals.selected.resultDocument = existing\n    locals.selected.node.$operation = 'COPY_EXISTING'\n  }\n\n  async keepExisting(node){\n    locals.selected.node.$operation = 'KEEP_INCOMING'\n  }\n\n  async moveExisting(node){\n    const incoming = node.document1\n    const existing = await Aeppic.get(node.document2.id)\n    const newParent = await Aeppic.get(node.document1.p)\n\n    if(!existing){\n      console.error(`cannot move non-existing document: ${node.document2.id}`)\n      return\n    }\n\n    if(!newParent){\n      console.error(`cannot move to non-existing parent: ${node.document1.p}`)\n      return\n    }\n\n    Aeppic.move(existing.id, incoming.p)\n    locals.selected.node.$operation = 'MOVE_EXISTING'\n  }\n\n  copyFields(sourceDoc, targetDoc){\n    for(let fieldName in sourceDoc.data){\n      if(targetDoc.data.hasOwnProperty(fieldName)){\n        targetDoc.data[fieldName] = sourceDoc.data[fieldName]\n      }\n    }\n  }\n}","packages":[]},"locks":[],"created":{"at":"2017-12-22T10:20:01+01:00","by":"","from":"","client":"f850c977-4f2e-4f6c-8389-ad1230848f0e"},"modified":{"at":"2018-02-06T11:44:46+01:00","by":"","from":"","client":"server"},"t":1517913886210,"ct":1513934395560,"a_depth":4,"a":["apps","90340217-c9b1-46fe-9b56-163953318522","2acd7a85-e378-49d3-a959-75ea2cab13a4","e6ffdfd0-88dd-429d-965b-a4634b065b3b"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"c60588d5-6443-4d80-922f-cd06d1450516","v":"c5953a364781b1a6","previous":{"v":"4d1ceaf56a2ebb34"},"p":"d6f5f171-30fd-4ac8-b3b1-908298bdc71d","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"page","template":"<div class=\"_CSS-body-container\">\n  <div class=\"_CSS-body\" :class=\"{ '_CSS-body--print': params.printMode }\">\n    <div class=\"_CSS-body__column\">\n      <ae-list :documents=\"locals.documents\"\n                list-id=\"2e798091-303f-406b-a42a-93aa1cd8425c\"\n                :sort=\"[{ field: 'created.at', descending: true }, { field: 'id'}]\"\n                @selected=\"Aeppic.drillInto($event, arguments[1])\"\n                :param-design-params=\"{ hidePath: true }\"\n      ></ae-list> \n    </div>\n  </div>\n</div>\n ","css":"._CSS-body-container {\n  padding: var(--bp-page-content-padding);\n  padding-top: 12px;\n\n  /* full page */\n  position: absolute;\n  top: 0;\n  bottom: 0;\n  left: 0;\n  right: 0;\n}\n\n\n._CSS-body {\n  margin: auto;\n  height: 100%;\n}\n\n._CSS-body__column {\n  height: 100%;\n  min-width: 0;\n\n  display: flex;\n  flex-direction: column;\n}\n\n._CSS-dates-filter {\n  position: absolute;\n  right: 70px;\n  top: 25px;\n  z-index: 1;\n}","controller":"class Controller {\n  init() {\n    locals.ready = false\n    locals.documents = []\n\n    Aeppic.subscribe(`p:${document.id} f.id:73974d8e-7d35-4b59-acf0-84c529b194f1`, { size: 9999 }, (documents) => {\n      locals.documents = documents.filter(d => d.id !== data.evaluation.id) \n      locals.ready = true\n    })\n  }\n}  ","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-10-20T07:40:03+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-10-24T11:10:12+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1666609812567,"ct":1666251603533,"a_depth":4,"a":["apps","75c6f72a-08a2-44f4-a29c-86b58be26f96","d0e84149-815a-4c38-a801-1664583fef16","d6f5f171-30fd-4ac8-b3b1-908298bdc71d"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"c6f4586c-d203-4930-8058-4d862444a894","v":"3b5a1105835a0009","cloneOf":{"id":"9bcf6adc-e7bd-4c51-82fb-5df6724b6c30","v":"08b16d13ad1bb78a","text":"page"},"originalCloneOf":{"id":"9bcf6adc-e7bd-4c51-82fb-5df6724b6c30","v":"08b16d13ad1bb78a","text":"page"},"previous":{"v":"78153ae61c2c1489"},"p":"034b53f0-ce6a-46d6-bd0e-771f2c9ee59c","f":{"id":"design-form","v":"24435d748c76f819","text":"Design"},"data":{"name":"page","template":"<ae-list \n  style=\"xheight:800px;height:100%;\"\n  v-if=\"locals.canEdit != null\"\n  list-id=\"cda28cd1-b41b-4193-b3e2-1d590c400741\"\n  :documents=\"locals.appointments\"\n  param-title=\"Kalender\"\n  :param-calendars=\"locals.calendars\"\n  :param-document-to-calendar-mapper=\"(doc) => controller.mapDocumentToCalendar(doc)\"\n  :param-document=\"document\"\n  :param-configuration=\"locals.configuration\"\n  @calendar-remove=\"controller.removeCalendar($event)\"\n  @calendar-add=\"controller.addCalendar($event)\"\n  :param-readonly=\"!locals.canEdit\"\n  @update-dates=\"controller.subscribeAppointments($event)\"\n></ae-list>\n  <!-- xparam-popup-design=\"card\" -->\n  <!-- search=\"id:apps OR a:apps\" -->\n  <!-- :sort=\"{ field: 'modified.at', descending: true } \" -->\n\n<!-- \n{{ locals.resources.length }}\n{{ locals.resources }}  -->\n","css":"","controller":"class Controller {\n  async init() {\n    this.subscription = null\n\n    locals.appointments = []\n    locals.resources = []\n    locals.activeResources = []\n\n    const canEdit = await Aeppic.canEdit(document)\n    locals.canEdit = Aeppic.Account && Aeppic.Account.data.isGroupAccount === false && canEdit === true\n\n    locals.configuration = JSON.parse(data.configuration)\n    locals.activeResources = await this.getCalendars()\n    locals.calendars = await this.getCalendars()\n\n    await this.subscribeAppointments()\n  }\n    \n  async getCalendars() {\n    const configuration = JSON.parse(data.configuration)\n\n    if (Array.isArray(configuration)) {\n      return configuration\n    } else {\n      return configuration.calendars\n    }\n  }\n\n  async subscribeAppointments(eventWithStartEndDates) {\n    if (!locals.activeResources.length) {\n      this.subscription && this.subscription.cancel()\n\n      locals.appointments = []\n\n      return\n    } \n\n    const appointmentsQuery = locals.activeResources.map(r => {\n      const parts = []\n\n      if (r.ancestor) {\n        parts.push(`a:${r.ancestor}`)\n      }\n\n      parts.push(`f.id:${r.form}`)\n      \n      return parts.join(' ')\n    }).join(` OR `)\n    \n    const search = `${appointmentsQuery}`\n\n    console.log(search)\n\n    const findOptions = {\n      size: 9999,\n      sort: 'created.at',\n    }\n\n    this.subscription = Aeppic.updateSubscription(this.subscription, search, findOptions, async (appointments) => {\n      locals.appointments = appointments\n    })\n  }\n\n  mapDocumentToCalendar(appointment) {\n    return appointment.f.id\n  }\n\n  async removeCalendar(calendar) {\n    locals.activeResources = locals.activeResources.filter(r => r.form !== calendar.form)\n\n    this.subscribeAppointments()\n  }\n  \n  async addCalendar(calendar) {\n    locals.activeResources.push(calendar)\n    this.subscribeAppointments()\n  }\n}\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-01-17T13:48:11+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-01-17T14:08:13+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1642428493611,"ct":1642427291694,"a_depth":4,"a":["apps","d8c9a42b-e289-4c9a-97ea-801de8ab480a","db8e20d1-732c-4c6b-9cfc-b323f83fa378","034b53f0-ce6a-46d6-bd0e-771f2c9ee59c"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"c9196fa6-a305-4090-98b3-0c6223b877a5","v":"initial","p":"4c1ddccd-004a-4467-bd14-9cf590ef58eb","f":{"id":"design-form","v":"65801907e0c30697","text":"Design"},"data":{"name":"page","template":"<section class=\"_CSS-header\">\n  <ae-layout layout-id=\"c07bacfd-ec47-4105-98f1-e6d6e9b00201\" :param-company-id=\"params.companyId\"></ae-layout>\n</section>\n\n<div class=\"_CSS-toolbar\">\n  <ae-design  name=\"page-toolbar\"\n              :document=\"document\"\n              :param-hide-delete=\"true\"\n  ></ae-design>\n</div>\n\n<div class=\"_CSS-project\">\n  <h2>Meine persönlichen Aufgaben</h2>\n  <div class=\"_CSS-toolbar\">\n    <ae-design  name=\"page-toolbar\"\n                :document=\"locals.project\"\n                :param-hide-delete=\"true\"\n                @toolbar=\"controller.toolbarEvent($event)\"\n    ></ae-design>\n  </div>\n\n  <template v-if=\"locals.project\">\n    <ae-form layout-id=\"b05e50a2-7479-469a-997d-0db4ea99fbd3\"\n            :document=\"locals.project\"\n            ref=\"project\"\n    ></ae-form>\n  </template>\n\n</div>","css":"._CSS {\n  display: flex;\n  flex-flow: column;\n}\n\n._CSS-header {\n  min-height: 177px;\n}\n\n._CSS-toolbar {\n  background: var(--ae-ui-background);\n}\n\n._CSS-project {\n  padding: var(--bp-page-content-padding);\n}","controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Aufgaben: '4e338459-2110-4799-8f04-1ead4cc647d0'\n    }\n\n    locals.project = null\n\n    if (!Aeppic.Account) {\n      return\n    }\n\n    locals.project = await this.getProject()\n  }\n\n  async getProject() {\n    const existingProject = await Aeppic.findOne(`p:${Aeppic.Account.id} f.id:${this.FORMS.Aufgaben}`)\n\n    const newProject = await Aeppic.new(this.FORMS.Aufgaben, Aeppic.Account.id)\n\n    Aeppic.save(newProject)\n\n    return Aeppic.get(newProject)\n  }\n\n  toolbarEvent(eventType) {\n    if (eventType === 'save') {\n      $refs.project.save()\n      return\n    }\n    if (eventType === 'reset') {\n      $refs.project.resetEdits()\n      return\n    }\n  }\n}\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2019-09-09T09:30:33+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2019-09-09T09:30:33+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1568021433214,"ct":1568021433214,"a_depth":4,"a":["apps","18da93c8-dfa2-4c21-b0fe-7e09b2b6d6c4","bd0159cd-1362-4c50-916d-26aa2bb1ae24","4c1ddccd-004a-4467-bd14-9cf590ef58eb"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"ca012e08-1943-480e-9d2f-9fb1b74840db","v":"b0ab9f20af4d9f36","previous":{"v":"ad667ba8702c14f4"},"p":"3fcebb78-e629-4d83-9844-1694370d9685","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"page","template":" <ae-splitter :split=\"20\" :limit-expand=\"false\" style=\"flex:1;height:100%;min-height:0;\">\r\n    <!-- Navigation Tabs -->\r\n    <ae-layout\r\n      slot=\"left-pane\"\r\n      style=\"padding:8px;overflow:auto;background-color:var(--ae-background-100)\"\r\n      layout-id=\"1c56807a-e7bc-45a9-86fd-730139d82747\"\r\n      :param-root-document=\"document\"\r\n      :param-selected-page-ancestry=\"locals.selectedPageAncestry\"\r\n      :param-selected-page-id=\"locals.selectedPage && locals.selectedPage.id\"\r\n      @selected=\"document => controller.select(document)\"\r\n      @deleted-page=\"controller.deletedPage($event)\"\r\n      @add-page=\"parentPage => controller.addPage(parentPage)\"\r\n      ></ae-layout>\r\n\r\n    <!-- Dev Tabs -->\r\n    <div @ae-will-navigate=\"controller.handleNavigation({ delay: true })\" slot=\"right-pane\" ref=\"page\" style=\"position:relative;\">\r\n      <ae-design v-if=\"locals.selectedPage\"\r\n                style=\"position:absolute;left:0;right:0;top:0;bottom:0\"\r\n                :document=\"locals.selectedPage\"\r\n                :watch=\"true\"\r\n                name=\"kb-page\"\r\n                :param-kb-root=\"document.id\"\r\n                :param-child-types=\"locals.childTypes\"\r\n      ></ae-design>\r\n      <div v-else style=\"color:var(--ae-background-400)\">\r\n        Please select a page\r\n      </div>\r\n    </div>\r\n  </ae-splitter>","css":"._CSS {\r\n  flex:1;\r\n}","controller":"class Controller {\r\n  async init() {\r\n    this.FORMS = {\r\n      Page: 'cb2adf77-7636-41a7-9a16-1610b06fa91e',\r\n    }\r\n\r\n    locals.selectedPage = null\r\n    locals.selectedPageAncestry = null\r\n    locals.detail = null\r\n    locals.childTypes = [\r\n      { form: this.FORMS.Page, /* Page */ },\r\n      { form: '527f9bb3-01bd-48cc-ad5b-08b1bba3af33', /* Prozess */ },\r\n      { form: '62b0cd19-3103-4de3-a64e-b4bbfda6156a' /* Machine */, list: true, name: 'Machines' },    \r\n      // { form: '30de275d-1e3b-41aa-818d-7e3d5b2b877c', /* Secret Password */  }\r\n    ]\r\n  \r\n    this.handleNavigation({ initial: true })\r\n  } \r\n\r\n  handleNavigation(options) {\r\n    const { initial = false, delay = false, attempt = 0 } = options || {}\r\n\r\n    const detail = Aeppic.Root.params?.queryParams?.detail\r\n    \r\n    if (delay === false && (initial || detail !== locals.detail)) {\r\n      locals.detail = detail\r\n      this.select(detail)\r\n    } else if (attempt < 5) {\r\n      Aeppic.setTimeout(() => {\r\n        this.handleNavigation({ attempt: attempt + 1 })\r\n      }, 25)\r\n    }\r\n  }\r\n\r\n  async select(page) {\r\n    if (page) {\r\n      const pageDocument = await Aeppic.get(page)\r\n    \r\n      if (pageDocument) {\r\n        const detailAncestors = await Aeppic.getAll(pageDocument.a)\r\n        \r\n        let   hasDirectPathToThisKnowledgeBase = true\r\n        let   childInPathDocumentId = pageDocument.id \r\n        let   depth = 0\r\n\r\n        detailAncestors.reverse() \r\n\r\n        for (const ancestor of detailAncestors) {\r\n          if (ancestor.id === document.id) {\r\n            break\r\n          }\r\n\r\n          if (ancestor.f.id !== this.FORMS.Page) {\r\n            hasDirectPathToThisKnowledgeBase = false\r\n            break\r\n          }\r\n  \r\n          const childIsLinkedPageFromCurrentAncestor = \r\n            ancestor.data.pages.findIndex(pageRef => pageRef.id === childInPathDocumentId) >= 0\r\n\r\n          if (!childIsLinkedPageFromCurrentAncestor) {\r\n            hasDirectPathToThisKnowledgeBase = false\r\n            break \r\n          }\r\n\r\n          depth ++\r\n          childInPathDocumentId = ancestor.id\r\n        }\r\n\r\n        if  (hasDirectPathToThisKnowledgeBase) {\r\n          locals.selectedPage = pageDocument\r\n          locals.selectedPageAncestry = pageDocument.a.slice(pageDocument.a.length - depth)\r\n        } else {\r\n          locals.selectedPage = null\r\n          locals.selectedPageAncestry = null\r\n        }\r\n      }\r\n    }\r\n\r\n    if (!locals.selectedPage) {\r\n      const firstPage = await Aeppic.get(document.data.pages[0])\r\n      locals.selectedPage = firstPage\r\n      locals.selectedPageAncestry = []\r\n    }\r\n\r\n    locals.detail = locals.selectedPage?.id\r\n\r\n    Aeppic.navigateTo(document.id, { detail: locals.selectedPage.id })\r\n  } \r\n\r\n  async deletedPage(options) {\r\n    const { page, parent } = options\r\n\r\n    if (page.id === locals.selectedPage.id) {\r\n      this.select(parent)\r\n    } \r\n  } \r\n}","packages":[{"id":"10843fbf-4f0c-416b-be7d-42d6bbd0ae68","v":"04f555813a5d8926","text":"Window"}],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-07-07T11:16:56+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","from":"","client":"server"},"modified":{"at":"2021-11-03T15:47:43+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1635954463924,"ct":1625656616268,"a_depth":4,"a":["apps","cf914a7f-ff5f-4598-80f1-63c9129e0a71","d69a62e9-a61f-42bf-9ae9-7983b87bf587","3fcebb78-e629-4d83-9844-1694370d9685"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"cbab18f5-6ab1-4514-876a-aa1898e94980","v":"77021b3d773c126f","previous":{"v":"8cc42403e614504e"},"p":"5150f703-e93a-4e54-a998-a06c0e962e71","f":{"id":"design-form","v":"3385ac6766f32638","text":"Design"},"data":{"name":"page","template":"<template v-if=\"locals.ready\">\n  <ae-design v-if=\"locals.isVerwalter\" ref=\"page\" @toolbar.native=\"controller.dispatchEventChildren('page', 'toolbar', $event.detail)\" name=\"page--administator\" :document=\"document\" :params=\"params\" v-on=\"$listeners\"></ae-design>\n  <ae-design v-else name=\"page--worker\" ref=\"page\" @toolbar.native=\"controller.dispatchEventChildren('page', 'toolbar', $event.detail)\" :document=\"document\" :params=\"params\" v-on=\"$listeners\"></ae-design>\n</template> ","css":"","controller":"class Controller {\n  async init() {\n    locals.ready = false\n    \n    locals.isVerwalter = false\n    locals.isVerwalter = (await Aeppic.Commands.execute('950f35d3-95ba-4d5a-a164-0074c767d600', document, { Account: Aeppic.Account })).value\n    \n    locals.ready = true\n  }\n\n   dispatchEventChildren(refName, eventName, eventValue) { \n    if (!$refs[refName] || !$refs[refName].$el || !$refs[refName].$el.children) {\n      return\n    }\n    const children = $refs[refName].$el.children\n    for (let i = 0; i < children.length; i++) {\n      children[i].dispatchEvent(new CustomEvent(eventName, {\n        detail: eventValue\n      }))\n    }\n    $refs[refName].$emit(eventName, eventValue)\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-03-31T13:10:39+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-04-08T12:35:00+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1649421300706,"ct":1648732239934,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","5150f703-e93a-4e54-a998-a06c0e962e71"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"cd22b168-edf3-4e58-952a-026e826e8578","v":"10e3cb3c602e2888","previous":{"v":"cd4790ca5ec725a6"},"p":"320bbded-2e47-4772-b662-c54254627ac3","f":{"id":"design-form","v":"e3fe9ece11aabc5e","text":"Design"},"data":{"name":"page","applies":"","template":"<div class=\"_CSS-container\">\n  <div :style=\"Aeppic.Device === 'Phone'? '' : 'display: flex;'\">\n    <div v-if=\"Aeppic.Device !== 'Phone'\">\n      <div class=\"_CSS-newsgroups-section\">\n        <div class=\"_CSS-newsgroups\">\n          <ae-design class=\"_CSS-newsgroup\" @click.stop.native=\"Aeppic.drillInto(group)\" name=\"nav-item,title\" :document=\"group\" :key=\"group.id + '--small'\" v-for=\"group of locals.groups\"></ae-design>  \n        </div>  \n      </div>\n\n      <div class=\"_CSS-navbutton\" @click.stop=\"controller.scrollToTop()\">\n        <ae-icon class=\"fas fa-chevron-up\" style=\"color: white; width: var(--ae-size-5); height: var(--ae-size-5);\"></ae-icon>\n      </div>\n    </div>\n\n    <div v-else class=\"_CSS-newsgroups-section--mobile\">\n      <select @change=\"Aeppic.drillInto($event.target.value)\" class=\"_CSS-newsgroups--mobile\">\n        <option>Nach Kategorie filtern</option>\n        <option :value=\"group.id\" v-for=\"group of locals.groups\">{{group.data.name}}</option>\n      </select>\n    </div>\n    <!--- ## News 3.0 ##\n    <div v-else>\n      <div v-if=\"!locals.hideNewsgroup\" class=\"_CSS-newsgroups-section--mobile\" style=\"background: pink\">\n          <div class=\"_CSS-newsgroups--mobile\">\n          <ae-design class=\"_CSS-newsgroup--mobile\" @click.stop.native=\"Aeppic.drillInto(group)\" name=\"nav-item,title\" :document=\"group\" :key=\"group.id + '--small'\" v-for=\"group of locals.groups\"></ae-design>  \n        </div>  \n        </div>\n      <div  class=\"_CSS-navbutton\" :class=\"Aeppic.Device === 'Phone'? '_CSS-navbutton--mobile' : ''\" @click.stop=\"controller.showNewsgroups()\">\n        <ae-icon class=\"fas fa-newspaper\" style=\"color: white; width: var(--ae-size-5); height: var(--ae-size-5);\"></ae-icon>\n      </div>\n\n    </div> -->\n      <div class=\"_CSS-news\" :style=\"Aeppic.Device === 'Phone'? 'width: 100%' : ''\">\n        <ae-list list-id=\"661e2e14-104e-4e95-b6f7-5e83a6ac1298\" :param-root=\"document.id\" @selected=\"Aeppic.drillInto($event, arguments[1])\"></ae-list> \n      </div>\n    </div>\n</div>\n\n<div v-show=\"false\" ref=\"invisibleElement\"></div>\n  ","css":"._CSS-newsgroups-section {\r\n  width: var(--ae-size-12);\r\n  padding: var(--ae-size-3);\r\n} \r\n\r\n._CSS-newsgroups {\r\n  display: flex;\r\n  flex-wrap: wrap;  \r\n}\r\n\r\n._CSS-navbutton {\r\n  cursor: pointer;\r\n  position: absolute;\r\n  z-index: 1;\r\n  bottom: var(--ae-size-3);\r\n  right: var(--ae-size-3);\r\n  background:var(--ae-primary-600);\r\n  width: var(--ae-size-7); \r\n  height: var(--ae-size-7);\r\n  border-radius: 50%; \r\n  display: flex;\r\n  justify-content: center;\r\n  align-items: center; \r\n  box-shadow: var(--ae-shadow-2);\r\n}\r\n\r\n/*._CSS-newsgroups-section--mobile {\r\n  position: fixed;\r\n  height: var(--ae-size-12);\r\n  width: var(--ae-size-6);\r\n  z-index: 1;\r\n  bottom: var(--ae-size-8);\r\n  right: var(--ae-size-4);\r\n  overflow: scroll;\r\n  box-shadow: var(--ae-shadow-2);\r\n} */\r\n\r\n._CSS-newsgroups-section--mobile {\r\n  padding: 0 var(--ae-size-6);\r\n}\r\n\r\n\r\n/*._CSS-newsgroups--mobile {\r\n  width: 100%;\r\n  display: flex;\r\n  flex-direction: column; \r\n} */\r\n\r\n._CSS-newsgroups--mobile {\r\n  width: 100%;\r\n  background: var(--ae-background-100);\r\n  margin: var(--ae-size-3) 0;\r\n}\r\n\r\n._CSS-newsgroup--mobile {\r\n  width: var(--ae-size-11);\r\n\r\n}\r\n\r\n._CSS-navbutton--mobile {\r\n  width: var(--ae-size-7); \r\n  height: var(--ae-size-7);\r\n  bottom: var(--ae-size-4);\r\n  right: var(--ae-size-4);\r\n  \r\n}\r\n\r\n._CSS-newsgroup {\r\n  padding: var(--ae-size-1);\r\n  width: 60%;\r\n}\r\n\r\n._CSS-news {\r\n  width: 70%;\r\n  height: 100%;\r\n  flex: 3;\r\n  padding: var(--ae-size-3);\r\n  min-width: 0;\r\n}\r\n\r\n\r\n._CSS-container {\r\n  max-width: var(--ae-page-max-width);\r\n  min-width:0;\r\n  margin: auto;\r\n\r\n  position: relative;\r\n}","controller":"class controller {\r\n  init() {\r\n    locals.groups = []\r\n    locals.hideNewsgroup = true\r\n\r\n    Aeppic.subscribe(`p:${document.id} f.id:381e2c4e-9eed-42a5-b65c-ad72e25369f0`, (groups) => {\r\n      locals.groups = groups\r\n    })\r\n  }\r\n\r\n  scrollToTop() {\r\n    $emit('scroll-to', {\r\n      top: 0,\r\n      left: 0,\r\n      behavior: 'smooth'\r\n    })\r\n  }\r\n\r\n  showNewsgroups() {\r\n    locals.hideNewsgroup = !locals.hideNewsgroup\r\n  }\r\n}\r\n\r\n","packages":[]},"locks":[],"created":{"at":"2017-09-15T10:29:32+02:00","by":"","from":"","client":"import"},"modified":{"at":"2021-10-13T11:18:14+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1634123894797,"ct":1467644299701,"a_depth":4,"a":["apps","b91e3079-75ae-49cd-981b-3053bf47208c","e7a0be94-cd94-4210-875e-0cceb7e8bc6c","320bbded-2e47-4772-b662-c54254627ac3"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"ce0cfd8e-e927-4a9e-aa37-2957c36426b4","v":"088dc602456798df","previous":{"v":"8cfcf1dcbe5d3714"},"p":"d4a62ddc-8f9c-4c88-89b3-2ab43babb8b7","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"page","template":"<div class=\"_CSS-body\" v-if=\"locals.visible\">\n  <ae-layout  layout-id=\"3675ffcc-f19a-4d72-907c-c0b09bf31da7\"\n              :param-date=\"{ start: '*', end: '*' }\"\n              :param-dashboard-type=\"locals.dashboard && locals.dashboard.data.type\"\n              style=\"margin-bottom: var(--ae-size-6);\"\n              @selected=\"Aeppic.drillInto($event, { mode: 'dialog', ...arguments[1] })\"\n  ></ae-layout> \n  \n  <ae-list  list-id=\"560bc0a7-c08f-4cde-959b-87878878f453\"\n            :documents=\"locals.overdueTasks\"\n            @selected=\"Aeppic.drillInto($event, { mode: 'dialog', ...arguments[1] })\"\n            :param-disable-search-filter=\"true\"\n            :param-design-params=\"{ readonly: true }\"\n            param-filter-fields=\"data.bis\"\n  ></ae-list>\n            <!-- :param-containing-component-id=\"layout.id\" -->\n</div>\n\n ","css":"._CSS-body {\n  padding: var(--bp-page-content-padding);\n}","controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Aufgabe: '3d456c38-6282-416e-8c5e-7d20b0517a6e',\n      LeistungsAufgabe: '88b1f60e-71f6-46f5-94ea-3d7bbe972950',\n      AufgabeCore: '0deb4864-cbb6-420c-99ee-337c7444ab24',\n      Projekt: '98c77209-1245-43d6-90b5-8625183f470c',\n      MeineAufgabeBizpin: '544d11b1-a156-4568-aeb3-2a60b2b57807',\n      MeineAufgabeEnergieberater: '90877d25-bbae-421e-9ea7-0631dcbf11c2',\n      Dashboard: '7be5f2c5-206b-4ab6-9d4d-c4834baf8e32'\n    }\n\n    locals.visible = false\n    locals.dashboard = null\n\n    locals.overdueTasks = []\n    const [ overdueTasks, dashboard ] = await Promise.all([\n      this.getOverdueTasks(),\n      Aeppic.findOne(`a:${Aeppic.Account.a[0]} f.id:${this.FORMS.Dashboard}`)\n    ])\n\n    locals.overdueTasks = overdueTasks\n    locals.dashboard = dashboard\n\n    locals.visible = true\n  }\n\n  async getOverdueTasks() {\n    locals.overdueTasks = []\n    locals.tasks = []\n \n    const queryString = `a:${Aeppic.Account.a[0]} data.verantwortlich:${Aeppic.ProfilePage.id} data.erledigt:false ((f.id:${this.FORMS.Aufgabe} OR f.id:${this.FORMS.LeistungsAufgabe}) data.bis:[* TO now+3d/d]) OR (f.id:${this.FORMS.AufgabeCore} (data.bisStart:[* TO now+3d/d] OR data.bisEnde:[* TO now+3d/d]))` \n\n    const queryOptions = {\n      sort: {\n        field: 'data.bis',\n        descending: true,\n      },\n      size: 9999\n    }\n\n    return Aeppic.find(queryString, queryOptions)\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-10-26T09:53:57+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-09-20T11:55:25+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1695210925808,"ct":1635242037190,"a_depth":4,"a":["apps","77ee8815-2c3a-4bb5-abd9-90541a545a24","b42e5a69-6cf0-4b55-928a-755011005b5a","d4a62ddc-8f9c-4c88-89b3-2ab43babb8b7"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"d3c57f94-3a77-430a-abf2-6ba3ce6a40e4","v":"e86e3c27370670ff","previous":{"v":"b97d5b277e05e5f8"},"p":"1d539cd5-fc27-4c9b-bcb0-8ddc01e6363a","f":{"id":"design-form","v":"baf08f1171a94bca","text":"Design"},"data":{"name":"page","template":"<div class=\"_CSS-container\">\n  <ae-list list-id=\"2e798091-303f-406b-a42a-93aa1cd8425c\"\n          query-id=\"f812861f-68c8-4818-9972-be7b5474c9b1\"\n          :root-document-id=\"document.id\"\n          :filter=\"locals.filter\"\n          @selected=\"Aeppic.navigateTo($event)\"\n          sort=\"data.name,id\"\n          :param-design-params=\"{ minimizedInfo: true, hidePath: true }\"\n  ></ae-list>\n</div>","css":"._CSS {\n  padding: var(--bp-page-content-padding);\n}\n\n._CSS-container {\n  margin: auto;\n  max-width: var(--ae-page-max-width);\n}","controller":"init() {\n  locals.filter = 'f.id:f69da93c-1d0b-4f18-97f4-82e61073e157 OR f.id:5e447a00-40e9-4881-b4e8-06cad2c28bba OR f.id:73974d8e-7d35-4b59-acf0-84c529b194f1 OR f.id:d6f5f171-30fd-4ac8-b3b1-908298bdc71d'\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-01-05T15:11:41+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2022-10-24T11:08:53+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1666609733061,"ct":1609859501782,"a_depth":4,"a":["apps","75c6f72a-08a2-44f4-a29c-86b58be26f96","d0e84149-815a-4c38-a801-1664583fef16","1d539cd5-fc27-4c9b-bcb0-8ddc01e6363a"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"d6faf3ee-de60-470b-a54c-4a5fa4d8dc2c","v":"c8b3c315b02b2495","previous":{"v":"e5a9a1c5995c3753"},"p":"37f5737f-06e3-41db-8ce3-af2d42e5d61a","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"page","template":"<div class=\"p-2 flex flex-col h-full\">\n  <div class=\"flex flex-col h-min-[100px]\">\n    <div class=\"text-2xl\">NFC Verwaltung</div>\n    <template v-if=\"locals.available\">\n      <div v-if=\"locals.waiting\">\n        <ae-icon class=\"fa fa-spinner-third fa-spin\"></ae-icon> Warte auf NFC-Tag\n      </div>\n      <div v-else>\n        <ae-icon class=\"fa fa-info-circle\"></ae-icon> Wählen Sie einen Barcode zum Schreiben aus der Liste aus\n      \n        <div v-if=\"locals.success\" class=\"flex align-center gap-2\">\n          <ae-icon class=\"fa fa-check\"></ae-icon>\n          <div>\n          NFC-Tag erfolgreich beschrieben:\n          </div>\n          <ae-design class=\"inline font-mono\" name=\"barcode\" :document=\"locals.lastDocument\"></ae-design>\n        </div>\n        <div v-if=\"locals.error\" class=\"text-red-500 flex flex-col\">\n          <div class=\"flex gap-2\">\n            <ae-icon class=\"fa fa-times\"></ae-icon>\n            <div>Fehler beim Schreiben</div>\n          </div>\n\n          <div class=\"font-mono\">\n            {{locals.error}}\n          </div>\n        </div>\n      </div>\n    </template>\n    <div v-else class=\"flex gap-2 items-center text-red-500\">\n      <ae-icon class=\"fa fa-ban\"></ae-icon>\n      Ihr Gerät und/oder Browser unterstützt das Schreibes von NFC-Tags aus bizpin heraus nicht. (Support siehe <a href=\"https://caniuse.com/webnfc\" target=\"_blank\">caniuse.com</a>)\n    </div>\n  </div>\n\n  <div class=\"overflow-hidden overflow-y-scroll p-1 flex-1\">\n    <div v-for=\"anlage of locals.anlages\" class=\"p-2 bg-white border rounded-lg my-2 flex justify-between\">\n      <div class=\"flex flex-col\">\n        <ae-design class=\"text-lg\" name=\"title\" :document=\"anlage\"></ae-design> \n        <ae-design class=\"text-sm text-theme-500\" name=\"title\" :document-id=\"anlage.p\"></ae-design> \n      </div>\n      <ae-layout  layout-id=\"a2cd7699-9b46-494f-8f89-cb1f62151d82\"\n                  param-text=\"Codes anzeigen\"\n                  @selected=\"controller.getCodesForAnlage(anlage)\"\n                  :param-disabled=\"params.readonly\"\n      ></ae-layout>\n    </div>\n\n    <ae-list  v-if=\"locals.codes.length\"\n              list-id=\"2e798091-303f-406b-a42a-93aa1cd8425c\"\n              :documents=\"locals.codes\"\n              param-design=\"barcode-card,search-card\"\n              param-title=\"Codes der Anlagenteile\"\n              :param-design-params=\"{ usedDocumentIds: locals.usedDocumentIds, succededDocumentIds: locals.succededDocumentIds }\"\n              @selected=\"controller.write($event)\"\n    ></ae-list>  \n  </div>\n</div>","css":"","controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Wartungsplan: '522ca40d-810b-4021-835f-beeace3af7fa',\n      Anlagenteil: '816b2d0e-5158-4f0c-a5cf-6069bb76de69',\n      Anlage: '5150f703-e93a-4e54-a998-a06c0e962e71',\n    }\n\n    locals.available = typeof NDEFReader !== 'undefined' /* Scan and write NFC tags */ \n\n    locals.usedDocumentIds = []\n    locals.succededDocumentIds = []\n    locals.active = false\n    locals.success = false\n    locals.error = null\n    locals.lastDocument = null\n\n    locals.anlages = []\n    locals.codes = []\n\n    locals.anlages = await Aeppic.find(`a:${document.a[0]} a_forms:d60a5613-e046-4341-9bc9-34a241e8a28a f.id:${this.FORMS.Anlage}`, { size: 9999, sort: [{ field: 'p', }, { field: 'data.name' }, { field: 'id' }] })\n  }\n\n  async getCodesForAnlage(anlage) {\n    // const codes = await Aeppic.find(`p:${anlage.id} f.id:${this.FORMS.Anlagenteil}`, { size: 9999, sort: [{ field: 'data.name' }, { field: 'id' }] })\n    const codes = await Aeppic.getAll(anlage.data.anlagenteile)\n\n    locals.codes = codes\n  }\n\n  async write(doc) {\n    if (!locals.available) {\n      return\n    }\n\n    locals.lastDocument = doc\n    console.log(doc)\n\n    if (!doc?.data.barcode) {\n      locals.waiting = false\n      locals.success = false\n      locals.error = 'Kein Barcode hinterlegt'\n\n      return\n    }\n\n    if (!locals.usedDocumentIds.includes(doc.id)) {\n      locals.usedDocumentIds.push(doc.id)\n    }\n\n    locals.waiting = true\n    locals.error = null\n\n    try {\n      const ndef = new NDEFReader();\n      await ndef.write(doc.data.barcode)\n\n      locals.waiting = false\n      locals.success = true\n\n      locals.succededDocumentIds.push(doc.id)\n    } catch (error) {\n      const writeIsSuperseeded = error && `${error}`.includes('cancelled due to a new push request')\n\n      if (writeIsSuperseeded) {\n        return\n      }\n\n      locals.success = false\n      locals.error = `${error}`\n    }\n\n    locals.waiting = false\n  }\n} ","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-04-06T14:35:07+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-04-22T10:55:20+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1650624920612,"ct":1649255707183,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","37f5737f-06e3-41db-8ce3-af2d42e5d61a"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"d89f4164-4a2b-4fce-99b3-3a421cf7dc46","v":"initial","previous":{"v":""},"p":"f642f4b7-7263-4236-a555-e5cf87abe070","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"page","applies":"","template":"\n          <div layout=\"column\" flex layout-padding>\n              <document-children flex parent=\"{{document.id}}\" title=\"\" subTitle=\"\" style=\"padding-left:16px\"></document-children>\n  <!--             <rs-tabbed-form flex layout=\"column\" document=\"document\"></rs-tabbed-form> -->\n          </div>\n        ","css":"","controller":"","packages":[]},"locks":[],"lockRefs":[],"created":{"at":"2018-02-06T09:46:50+01:00","by":"","from":"","client":"server"},"modified":{"at":"2018-02-06T09:46:50+01:00","by":"","from":"","client":"server"},"t":1517906810182,"ct":1517906810182,"a_depth":4,"a":["apps","b791df37-6eef-4a3e-9066-1b79e0bdad31","35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f","f642f4b7-7263-4236-a555-e5cf87abe070"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"d8e6c7f4-2b4a-49e4-b2bc-db72b26ec3c4","v":"5d46f81e247136cf","previous":{"v":"5dc22f1aee1a0222"},"p":"61ccaf6b-af84-4908-aa73-785dffd83c5f","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"page","applies":"","template":"<ae-design name=\"page--intra-company\" :document=\"document\"></ae-design>\n","css":"._CSS {\n  display: flex;\n  flex: 1;\n}\n\n._CSS-content {\n  flex: 1;\n  width: 100%;\n}","controller":"","packages":[]},"locks":[],"created":{"at":"2018-05-25T10:48:21+00:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","from":"","client":"server"},"modified":{"at":"2018-10-30T12:49:35+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1540903775776,"ct":1527245301066,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","61ccaf6b-af84-4908-aa73-785dffd83c5f"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"db0f134a-c5d4-415b-aed0-d8345169ee4a","v":"initial","previous":{"v":""},"p":"ab153e6e-572f-40ae-8f1e-2419c4fdf520","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"page","applies":"","template":"\n          <div layout=\"column\" layout-padding flex>\n              <document-children flex parent=\"{{document.id}}\" title=\"\" subTitle=\"\" style=\"padding-left:16px\"></document-children>\n          </div>\n        ","css":"","controller":"","packages":[]},"locks":[],"lockRefs":[],"created":{"at":"2018-02-06T09:46:13+01:00","by":"","from":"","client":"server"},"modified":{"at":"2018-02-06T09:46:13+01:00","by":"","from":"","client":"server"},"t":1517906773709,"ct":1517906773709,"a_depth":4,"a":["apps","b791df37-6eef-4a3e-9066-1b79e0bdad31","35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f","ab153e6e-572f-40ae-8f1e-2419c4fdf520"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"db74ff60-2d75-401a-9967-6496eee59ce1","v":"54abaf53b99aabcb","p":"e17f496b-3eae-445f-a95a-93bdb58df718","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"page","template":"<div class=\"_CSS-body-container\" @toolbar=\"controller.toolbarEvent($event.detail)\">\n  <div class=\"_CSS-body\">\n      <ae-design  v-if=\"locals.view === 'list'\"\n                  name=\"table\"\n                  :document=\"document\"\n                  style=\"height:100%;\"\n      ></ae-design>\n      <ae-design  v-else-if=\"locals.view === 'board'\"\n                  name=\"board\"\n                  :document=\"document\"\n                  style=\"height:100%;\"\n      ></ae-design>\n  </div>\n</div>\n","css":"._CSS-body-container {\n  height: 100%;\n}\n\n._CSS-body {\n  height: 100%;\n}","controller":"class Controller {\n  async init() {\n    locals.view = Aeppic.LocalStorage.getValue('maus-pref-auftrag-folder-view-id') || 'board'\n  }\n\n  toolbarEvent(eventType) {\n    if (eventType === 'view_list') {\n      locals.view = 'list'\n      return\n    }\n    if (eventType === 'view_board') {\n      locals.view = 'board'\n      return\n    }\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-03-01T16:25:16+00:00","by":"427610a9-39dc-4014-9176-5f72aeb23263","from":"","client":"server"},"modified":{"at":"2023-03-01T16:31:25+00:00","by":"427610a9-39dc-4014-9176-5f72aeb23263","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1718866007162,"ct":1718866007162,"a_depth":4,"a":["apps","deeef973-ce03-4557-bf75-75a059001767","e7de598c-6f5a-4ab4-a33b-213ca86e489d","e17f496b-3eae-445f-a95a-93bdb58df718"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[],"previous":{"v":"cf137cd5eb6fdca5","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"}},"meta":{"modified":{"at":"2024-06-20T08:46:47+02:00","by":"427610a9-39dc-4014-9176-5f72aeb23263","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"dd377103-c853-43c6-9588-1f1beb90c0c4","v":"adf920b93e8f8aac","previous":{"v":"initial"},"p":"dd41c1ef-cf27-42f8-8d73-47c0512a6e5f","f":{"id":"design-form","v":"5dbbefb312ab61e2","text":"Design"},"data":{"name":"page","template":"<ae-list list-id=\"2e798091-303f-406b-a42a-93aa1cd8425c\"\n          filter=\"f.id:17f02e7d-539d-4205-84c4-19247c48634d\"\n          :size=\"9999\"\n></ae-list>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-02-21T12:10:53+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-02-21T12:11:43+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1676981503117,"ct":1676981453185,"a_depth":4,"a":["apps","bafa23ba-a0dc-406d-8854-77ea31b4ea4b","bd0803a8-829f-47b0-973c-c2d9f29cb94d","dd41c1ef-cf27-42f8-8d73-47c0512a6e5f"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"e2031366-2804-4581-aff8-b81c27f1e341","v":"4661280a3437e44c","previous":{"v":"initial"},"p":"b33c990d-c2aa-433f-b30e-c909895a4a4a","f":{"id":"design-form","v":"49954170df6a253b","text":"Design"},"data":{"name":"page","template":"<ae-form :document=\"document\" :readonly=\"true\"></ae-form>","css":"","controller":"","packages":[],"description":""},"locks":[],"created":{"at":"2018-12-05T13:00:32+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2018-12-05T13:01:12+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1544014872957,"ct":1544014832747,"a_depth":4,"a":["apps","5cff2cfd-1083-47f1-acc2-46e6440304cc","43976185-12d8-4a50-9a93-9b42e455838d","b33c990d-c2aa-433f-b30e-c909895a4a4a"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"e3d80e9d-764a-4597-9bab-35f7d93e3982","v":"44714a86f4a19af0","previous":{"v":"initial"},"p":"58f01727-f14a-4963-b573-e142ff7b8ca7","f":{"id":"design-form","v":"5910dbdd1c0b7469","text":"Design"},"data":{"name":"page","applies":"","description":"","template":"<!-- <ae-design v-for=\"container of locals.containers\"\n           :document=\"container\"\n           name=\"page\"\n           :param-page-document-id=\"document.id\"\n           :param-company-id=\"locals.companyIdOfAccount\"\n           :param-account-id=\"locals.accountId\"\n           :param-user-id=\"locals.userId\"\n           :style=\"{ 'min-height': container.data.height + 'px' }\"\n></ae-design> -->\n\n<ae-layout layout-id=\"d9add436-a425-4208-a254-052ddcabe529\"\n           :params=\"locals.params\"\n           v-if=\"locals.params\"\n           class=\"_CSS-header\"\n></ae-layout>\n\n<div class=\"_CSS-body\">\n  <div class=\"_CSS-columns--three\">\n    <div class=\"_CSS-columns__column\">\n      <ae-layout layout-id=\"26b9ced7-b6b6-48bb-9629-4f9f2248d661\"\n                :params=\"locals.params\"\n                v-if=\"locals.params\"\n      ></ae-layout>\n      <ae-layout layout-id=\"22b80283-c6fc-4237-abc1-05fa2a8b29f4\"\n                :params=\"locals.params\"\n                v-if=\"locals.params\"\n      ></ae-layout>\n    </div>\n\n    <div class=\"_CSS-columns__column\">\n      <ae-layout layout-id=\"f8cc7d89-6bdc-4099-9d33-b384996bbbcc\"\n                :params=\"locals.params\"\n                v-if=\"locals.params\"\n      ></ae-layout>\n      <ae-layout layout-id=\"a317925e-4cf8-4618-9f5e-18c740a77d3b\"\n                :params=\"locals.params\"\n                v-if=\"locals.params\"\n      ></ae-layout>\n      \n      <ae-layout layout-id=\"ab3e332f-6d0a-490f-854f-7ecab81edf6c\"\n                :params=\"locals.params\"\n                v-if=\"locals.params\"\n      ></ae-layout>\n    </div>\n    <div class=\"_CSS-columns__column\">\n      <ae-layout layout-id=\"065453cb-caaa-4120-a658-7bfdbdde4b72\"\n                :params=\"locals.params\"\n                v-if=\"locals.params\"\n      ></ae-layout>\n    </div>\n  </div>\n\n</div>\n\n ","css":"._CSS {\n  display: flex;\n  flex-flow: column;\n  overflow: hidden;\n}\n\n._CSS-header {\n  max-height: 177px;\n}\n\n._CSS-body {\n  display: flex;\n  flex-flow: column;\n  overflow-y: scroll;\n  overflow-x: hidden;\n}\n\n._CSS-columns--three {\n  display: flex;\n  flex-wrap: wrap;\n}\n\n._CSS-columns--three > ._CSS-columns__column {\n  min-width: 400px;\n  width: 33.33%;\n}\n\n._CSS-columns__column {\n  display: flex;\n  flex-flow: column;\n}","controller":"class Controller {\n  async init() {\n    const COMPANY_FORM = 'c69a0c1c-6c53-40c2-87e8-5ace866bf1df'\n    const homePage = await Aeppic.get(Aeppic.HomePage)\n\n    locals.params = null\n\n    if (homePage) {\n      if (homePage.f.id === COMPANY_FORM) {\n        locals.companyIdOfAccount = homePage.id\n      } else {\n        if (homePage.a_forms !== null) {\n          const companyAncestorIndex = homePage.a_forms.findIndex(formId => formId === COMPANY_FORM)\n          locals.companyIdOfAccount = homePage.a[companyAncestorIndex]\n        }\n      }\n    }\n\n    locals.userId = Aeppic.ProfilePage && Aeppic.ProfilePage.id\n    locals.accountId = Aeppic.Account && Aeppic.Account.id    \n\n    locals.params = {\n      companyId: locals.companyIdOfAccount,\n      accountId: locals.accountId,\n      userId: locals.userId,\n    }\n  }\n}\n","packages":[]},"locks":[],"created":{"at":"2019-09-20T08:59:31+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2020-05-08T08:51:35+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1588927895868,"ct":1568969971044,"a_depth":4,"a":["apps","8fa52498-fa07-4bad-87b3-5c8df671aca4","2540faf9-e3fd-4b52-aad8-53f43274e0a2","58f01727-f14a-4963-b573-e142ff7b8ca7"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"e42d9595-e8c8-4d77-93d6-d91022f8721b","v":"1467f773873010bd","p":"213063e5-59c0-455c-8331-43b04fff203f","f":{"id":"design-form","v":"22a757f630104010","text":"Design"},"data":{"name":"page","template":"<div class=\"flex flex-col\">\n  <ae-form :document=\"document\" :auto-save=\"true\"></ae-form>\n\n    <ae-layout  layout-id=\"a2cd7699-9b46-494f-8f89-cb1f62151d82\"\n                param-text=\"Zurück zur Wartung\"\n                @selected=\"Aeppic.navigateTo(document.a[document.a_forms.findIndex(aForm => aForm === '816b2d0e-5158-4f0c-a5cf-6069bb76de69')])\"\n                :param-disabled=\"params.readonly\"\n                class=\"self-center mt-8\"\n    ></ae-layout>\n</div>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2025-08-06T13:09:17+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2025-08-06T13:09:17+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1754485772736,"ct":1754485772736,"a_depth":4,"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","d86dc31e-ad2c-45b7-8606-a6ce35580b10","213063e5-59c0-455c-8331-43b04fff203f"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[],"previous":{"v":"initial","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"}},"meta":{"modified":{"at":"2025-08-06T13:09:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"e4bbcbb2-bc20-40f4-9cf6-5c3997625232","v":"06660e23ad8c4fd4","previous":{"v":"initial"},"p":"3230c10a-64af-48cc-8f3d-15fc16a40e5f","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"page","applies":"","template":"<ae-form\n  :document=\"document\" \n  :readonly=\"false\"\n  :auto-save=\"true\"\n></ae-form>\n","css":"","controller":"","packages":[]},"locks":[],"created":{"at":"2018-06-20T09:37:21+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2018-06-20T09:37:54+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"from":"","client":"server"},"t":1529487474545,"ct":1529487441823,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","3230c10a-64af-48cc-8f3d-15fc16a40e5f"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"e4d42061-45b2-4eae-8518-84d8b179c01e","v":"initial","previous":{"v":""},"p":"a3c6fe06-ee26-47f8-9d28-5e5a31bd2b8f","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"page","applies":"","template":"<ae-list  list-id=\"table-list\"\n          :root-document-id=\"document.id\"\n          query-id=\"f812861f-68c8-4818-9972-be7b5474c9b1\"\n          param-columns=\"name,language\"\n          param-designs=\",language-flag\"\n          >\n</ae-list>\n\n","css":"","controller":"","packages":[]},"locks":[],"created":{"at":"2018-06-12T11:32:28+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"from":"","client":"server"},"modified":{"at":"2018-06-12T11:32:28+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"from":"","client":"server"},"t":1528803148111,"ct":1528803148098,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","a3c6fe06-ee26-47f8-9d28-5e5a31bd2b8f"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"e78b019a-6457-49b1-84db-7cc3c001217a","v":"313fc92bdf442e88","previous":{"v":"bf4dc0616b8289f8"},"p":"14dd1fdf-b8a5-4885-b49e-686d43be4603","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"page","template":"<div class=\"flex flex-col\">\n  <ae-form :document=\"document\" :auto-save=\"true\"></ae-form>\n\n    <ae-layout  layout-id=\"a2cd7699-9b46-494f-8f89-cb1f62151d82\"\n                param-text=\"Zurück zur Wartung\"\n                @selected=\"Aeppic.navigateTo(document.a[document.a_forms.findIndex(aForm => aForm === '816b2d0e-5158-4f0c-a5cf-6069bb76de69')])\"\n                :param-disabled=\"params.readonly\"\n                class=\"self-center mt-8\"\n    ></ae-layout>\n</div>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-06-29T08:53:33+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-06-29T08:56:43+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1656493003427,"ct":1656492813681,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","0614d9ba-fc1d-496b-8659-0a357871ae44","14dd1fdf-b8a5-4885-b49e-686d43be4603"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"e85b2508-184b-4586-9d5f-82ba42df9ff6","v":"8d6aae8fd0316b2f","previous":{"v":"initial"},"p":"f59fae1a-c2f0-4bf6-b896-1caa8cf950ed","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"page","applies":"","template":"<ae-list\n  list-id=\"2dab232c-2c8a-4aa4-b3f9-6023a7116161\"\n  param-min-column-width=\"100%\"\n  :root-document-id=\"document.id\"\n  query-id=\"f812861f-68c8-4818-9972-be7b5474c9b1\"\n  @selected=\"Aeppic.navigateTo($event.id)\"\n  ></ae-list>\n","css":"","controller":"","packages":[]},"locks":[],"created":{"at":"2018-02-06T09:47:19+01:00","by":"","from":"","client":"server"},"modified":{"at":"2018-02-21T09:43:30+01:00","by":"","from":"","client":"server"},"t":1519202610810,"ct":1517906839411,"a_depth":4,"a":["apps","b791df37-6eef-4a3e-9066-1b79e0bdad31","35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f","f59fae1a-c2f0-4bf6-b896-1caa8cf950ed"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"e9dbf8bc-8cf5-4f16-887f-c1068b93a6a3","v":"40705fe642786364","previous":{"v":"c50981125708498c"},"p":"a48eb6dc-347a-43dd-8aef-b65213d8aa34","f":{"id":"design-form","v":"0061789efb5c5c29","text":"Design"},"data":{"name":"page","template":"<ae-list list-id=\"table-list\"\n          :root-document-id=\"document.id\"\n          query-id=\"f812861f-68c8-4818-9972-be7b5474c9b1\"\n          filter=\"f.id:5a5c8705-67dd-4bd9-b74d-a4d48aef5e07\"\n          @selected=\"Aeppic.drillInto($event)\"\n          :sort=\"{ field: 'data.startDate', descending: true }\"\n          param-columns=\"data.type,data.startDate,data.duration,data.toNumber,data.fromNumber,data.contacts,data.guessedCustomer\"\n          param-sort-fields=\"data.type,data.startDate,data.toNumber,data.fromNumber,data.contacts,data.guessedCustomer\"\n          param-filter-fields=\"data.type,data.startDate,data.toNumber,data.fromNumber,data.contacts,data.guessedCustomer\"\n          :search-options=\"{ searchAllFields: true }\"\n></ae-list>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-12-14T12:30:12+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-01-19T10:19:25+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1642587565603,"ct":1607949012802,"a_depth":4,"a":["apps","9e6696fa-9328-4499-9fcd-ff1c176d5615","23f1e515-5ea7-455e-b0a7-13649bece902","a48eb6dc-347a-43dd-8aef-b65213d8aa34"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"ea14f122-eed9-4466-9dab-2f40b4d90151","v":"882f3fcc95f0a65b","previous":{"v":"35f0189fd49e991b"},"p":"f6f822ec-eff4-4dc9-9ca6-8131004688da","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"page","template":"<div class=\"p-2\"\n    @toolbar=\"controller.onToolbar($event)\"\n>\n  <ae-design v-if=\"locals.view === 'capture'\" :document=\"document\" name=\"page--capture\"></ae-design>\n  <ae-design v-else-if=\"locals.view === 'list'\" :document=\"document\" name=\"page--list\"></ae-design>\n</div>  \n","css":"","controller":"class Controller {\n  async init() {\n    locals.view = Aeppic.LocalStorage.getValue('bp-pref-rooms-receipts-view') || 'capture'\n  }\n\n  onToolbar(event) {\n    console.log(event)\n\n    if (event.detail.startsWith('view_')) {\n      locals.view = event.detail.replace('view_', '')\n    }\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-11-23T09:58:08+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-02-02T08:51:54+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1675327914132,"ct":1669197488428,"a_depth":4,"a":["apps","85d3c028-a61c-4be8-93d0-4366bc45752f","25fda732-5296-4fab-8d4e-92c3e32ca2c0","f6f822ec-eff4-4dc9-9ca6-8131004688da"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"eb10677b-7539-4ab8-a609-bf9c9da33a8f","v":"cb83126bd886a90d","previous":{"v":"b7a588c7af7e23d1"},"p":"bf8eb298-3431-4138-a1e1-e748e05f3f37","f":{"id":"design-form","v":"e3fe9ece11aabc5e","text":"Design"},"data":{"name":"page","applies":"","template":"<div class=\"_CSS-container\">\n  \n  <div class=\"_CSS-search-container ae-form-cell\">\n    <div class=\"_CSS-search__input\">\n      <ae-icon class=\"fa fa-search _CSS-search__icon\"></ae-icon>\n      <input style=\"flex: 1;\" autofocus placeholder=\"Wonach suchen Sie ?\" class=\"_CSS-search__input\" ref=\"input\" type=\"text\" v-model=\"locals.searchScope.text\" @input=\"controller.updatedSearchScopeText()\" @keydown.esc=\"controller.closeSearch()\">\n    </div>\n\n    <div>\n      <span class=\"_CSS-search__text\" v-show=\"!locals.searchStatistics.loading && locals.searchStatistics.executed\">\n        <template v-if=\"locals.searchResults.length >= locals.searchStatistics.size\">\n        Zeige {{ locals.searchStatistics.size }} von {{locals.searchResults.length}} Ergebnissen\n        </template>\n        <template v-else>\n        {{locals.searchResults.length}} Ergebnisse\n        </template>\n      </span>\n    </div>\n\n  </div>\n\n\n  <ae-layout class=\"_CSS-search-spinner\" v-show=\"locals.searchStatistics.loading\" layout-id=\"fefa8352-0e9a-4ba8-8349-c9402ac8aefa\"></ae-layout>\n\n  <template v-if=\"locals.searchResults.length\">\n\n    <div    \n      v-if=\"locals.searchScope.text && !locals.searchStatistics.loading\"\n      class=\"_CSS-search-results\">\n      <!-- FIXME: param-design=\"search-title,title\" -->\n      <ae-list\n        class=\"_CSS-search-results__list\"\n        param-min-column-width=\"100%\"\n        param-max-column-width=\"1fr\"\n        list-id=\"2dab232c-2c8a-4aa4-b3f9-6023a7116161\"\n        :documents=\"locals.searchResults.slice(0,locals.searchStatistics.size)\"\n        @selected=\"Aeppic.navigateTo($event.id)\"\n        param-design=\"search-card,search-title\"\n        :param-hide-path=\"false\"\n        param-gap=\"small\"\n        >\n      </ae-list>\n    </div>\n\n     <div class=\"_CSS-search-results__button-more\" v-if=\"!locals.searchStatistics.loading && locals.searchStatistics.executed\">\n      <template v-if=\"locals.searchResults.length >= locals.searchStatistics.size\">\n  \n        <button class=\"ae-button ae-button--secondary\" @click=\"controller.loadMore()\">mehr laden</button>\n      </template>\n      <!-- <template v-else-if=\"locals.searchResults.length > 0 && locals.searchStatistics.maximumSizeOfAnyResult <= locals.searchStatistics.size\">\n        <span class=\"_CSS-search__text\">\n          {{locals.searchResults.length}} Ergebnisse\n        </span>\n      </template>\n      <template v-else-if=\"locals.searchResults.length > 0\"> -->\n        <!-- <span class=\"_CSS-search__text\">\n          {{locals.searchResults.length}} Ergebnisse\n        </span> -->\n      <!-- </template> -->\n    </div>\n\n   \n    <!-- <template v-for=\"(resultsByFormId, formId) in locals.searchResultsByFormId\">\n      <div class=\"_CSS-result-header\">\n        <ae-design name=\"title\" :document-id=\"formId\"></ae-design>\n      </div>\n\n      <ae-list\n        param-min-column-width=\"100%\"\n        list-id=\"2dab232c-2c8a-4aa4-b3f9-6023a7116161\"\n        :documents=\"resultsByFormId\"\n        @selected=\"$refs.searchDialog.close(); Aeppic.navigateTo($event.id)\"\n        param-design=\"search-title,title\"\n        ></ae-list>\n    </template> -->\n      <!-- :param-design-params=\"{ hideIcon: true }\" -->\n\n    <!-- <ae-list\n      v-if=\"locals.searchText\"\n      v-show=\"!locals.searchStatistics.loading\"\n      param-min-column-width=\"100%\"\n      class=\"_CSS-search__results\"\n      list-id=\"2dab232c-2c8a-4aa4-b3f9-6023a7116161\"\n      :documents=\"locals.searchResult\"\n      @selected=\"$refs.searchDialog.close(); Aeppic.navigateTo($event.id)\"\n      param-design=\"search-title,title\"\n      ></ae-list> -->\n  </template>\n\n  <span class=\"_CSS-search__text\" v-if=\"!locals.searchStatistics.loading && locals.searchStatistics.executed && !locals.searchResults.length\">\n    Leider keine Ergebnisse gefunden ...\n  </span>\n</div>\n\n<div class=\"_CSS-search-scopes\">\n  <div class=\"_CSS-search-scopes__applications\">\n    <h3>Bereiche</h3>\n    <div class=\"_CSS-search-scopes__application\" :class=\"{ '_CSS-search-scopes__application--active': locals.searchScope.a === locals.companyId }\"\n    @click=\"controller.updateSearchScopeAncestor()\">\n    Überall</div>\n    <ae-design name=\"title\" :document=\"application\" v-for=\"application of locals.applications\"\n              class=\"_CSS-search-scopes__application\"\n              :class=\"{ '_CSS-search-scopes__application--active': locals.searchScope.a === application.id }\"\n              @click.native=\"controller.updateSearchScopeAncestor(application.id);\"\n              ></ae-design>\n  </div>\n  <div class=\"_CSS-search-scopes__forms\">\n      <h3>Typen</h3>        \n      <div\n        class=\"_CSS-search-scopes__form\"\n        @click=\"controller.updateSearchScopeForm()\" :class=\"{ '_CSS-search-scopes__form--active': locals.searchScope.formId === '' }\">Alle Typen</div>\n      <div @click=\"controller.updateSearchScopeForm(formId)\" v-for=\"formId of locals.applicationsFormIds[locals.searchScope.a]\"\n      class=\"_CSS-search-scopes__form\"\n      :class=\"{ '_CSS-search-scopes__form--active': locals.searchScope.formId === formId }\">\n        <ae-design name=\"title\" :document-id=\"formId\" \n        ></ae-design>\n      </div>\n  </div>\n</div>\n\n","css":"._CSS {\n  display: grid;\n  grid-auto-flow: column;\n  grid-template-columns: 1fr 20rem;\n  grid-column-gap: 2rem;\n}\n\n._CSS-search__text {\n  display: flex;\n  padding: 0.5rem 2rem;\n}\n\n._CSS-search-size {\n  padding: 1rem 2rem;\n  display: flex;\n  flex-flow: column;\n  align-items: center;\n}\n\n._CSS-search-size > * {\n  max-width: 30rem;\n  padding: 0;\n}\n\n/* ._CSS-search-input-container {\n  padding: 0 3rem 0 3rem;\n  display: grid;\n  align-items: center;\n  grid-auto-flow: row;\n  grid-template-columns: min-content auto;\n  grid-column-gap: 1rem;\n  grid-row-gap: 1.3rem;\n  font-size: 1.2em;\n\n  margin-bottom: 2rem;\n}\n\n._CSS-search__input {\n  outline: none;\n} */\n\n._CSS-search__icon {\n  color: rgba(0,0,0,0.5);\n}\n\n._CSS-search__button-close {\n  font-size: 1.1em;\n  color: rgba(0,0,0,0.6) !important;\n\n  padding: 1rem !important;\n  margin: -1rem !important;\n}\n\n._CSS-container{\n  display: flex;\n  flex-flow: column;\n  padding: 10px;\n}\n\n._CSS-search-results {\n  flex: 1;\n  position: relative;\n}\n\n._CSS-search-results__list {\n  position: absolute;\n  top: 0;\n  bottom: 0;\n  right: 0;\n  left: 0;\n  overflow-y: scroll;\n\n  padding: 1.5rem 3rem 0 3rem;\n}\n\n._CSS-search-results__button-more {\n    margin: 10px;\n    display: flex;\n    justify-content: center;\n}\n\n._CSS-search-spinner {\n  height: 4rem;\n  width: 4rem;\n  margin: 0 auto;\n}\n\n._CSS-search-modifier {\n  display: flex;\n  align-items: center;\n}\n\n._CSS-search-modifier ._CSS-label {\n  font-size: 0.7em;\n  color: grey;\n  padding-right: 1rem;\n}\n\n._CSS-search-modifier ._CSS-button {\n  font-size: initial;\n  color: black;\n  border-radius: 2em;\n\n  border-color: rgb(216, 216, 216);\n  border-style: solid;\n  border-width: 1px;\n  padding: 2px 1.5rem;\n  margin: 1px;\n}\n\n._CSS-button._CSS-button--active {\n  border-color: rgb(216, 216, 216) rgb(216, 216, 216) var(--ae-primary-l1);\n  border-width: 1px 1px 2px 1px;\n  border-radius: var(--ae-border-radius);\n}\n\n._CSS-action-button:hover {\n  transform:scale(1.1);\n}\n\n._CSS-result-header {\n  font-size: 1.2em;\n  font-weight: bold;\n  padding-top: 2em;\n  padding-bottom: 0.5em;\n\n  display: flex;\n}\n\n._CSS-search-scopes {\n  display: flex;\n  flex-flow: column;\n\n  position: relative;\n}\n\n._CSS-search-scopes__applications {\n  top: 0;\n  height: 50%;\n  position: absolute;\n  overflow: auto;\n}\n\n._CSS-search-scopes__forms {\n  top: 50%;\n  height: 50%;\n  position: absolute;\n  overflow: auto;\n}\n\n._CSS-search-scopes__applications,\n._CSS-search-scopes__forms {\n  left: 0;\n  right: 0;\n  border-width: 0px 0;\n  border-color: rgb(216, 216, 216);\n  border-style: solid;\n  padding: 0 0.6rem ;\n  border-radius: var(--ae-border-radius);\n}\n\n\n._CSS-search-scopes__form,\n._CSS-search-scopes__application {\n  padding: 0.3rem;\n  border-width: 0 4px 0 0;\n  border-color: var(--ae-background-200);\n  border-style: solid;\n  \n  overflow: hidden;\n  white-space: normal;\n  border-radius: var(--ae-border-radius);\n}\n\n._CSS-search-scopes__form:hover,\n._CSS-search-scopes__application:hover {\n  background-color: rgba(0,0,0,0.1);\n  cursor: pointer;\n}\n\n\n._CSS-search-scopes__form--active,\n._CSS-search-scopes__application--active {\n  border-color: rgb(216, 216, 216) var(--ae-primary-l1);\n  position:relative;\n}\n\n._CSS-search-scopes__form--active::before,\n._CSS-search-scopes__application--active::before {\n  content:'';\n  position:absolute;\n  left:0;right:0;top:0;bottom:0;\n  background: var(--ae-primary);\n  opacity:0.2;\n}\n\n/* ae-phone */\n\n._CSS-search--phone ._CSS-search__body {\n  grid-auto-flow: row;\n  grid-template-columns: auto;\n}\n\n._CSS-search--phone ._CSS-search__results {\n  padding: 0;\n}\n\n\n._CSS-search--phone ._CSS-search-scopes+* > * {\n  padding: 0;\n}\n\n\n._CSS-search-container {\n  padding: 1rem;\n  display: flex;\n  flex-flow: column;\n}\n\n._CSS-search__input {\n  display: flex;\n  align-items: center;\n}\n\n._CSS-search__input {\n  outline: none;\n}\n\n._CSS-search__icon {\n  color: rgba(0,0,0,0.5);\n  margin-right: 1em;\n}","controller":"class Controller {\n  async init() {\n    locals.defaultSearchLimit = 20\n    locals.companyId = params.companyId || Aeppic.HomePage.id\n\n    this.formIdsNotToFind = [ 'account', \n                              'e5c233c9-5425-48d7-a785-d962897bc6f8', // group\n                              '67f5703f-6cf2-41b5-ac7b-60c73d0cea2b', // pw reset token\n                              '3b2afaea-f8af-43ef-88b6-87ad19764597', // API token\n                              '8bf0fb31-716d-4b76-98d8-b7349f1d7529', // file\n                              '0a8dbc2a-384e-457b-ab48-57013109ba44', // recently visited documents\n                              '6786b72e-276f-4c82-b7c5-caf5758689118', // ??\n                              'command-form', // commands\n                              'key-form',\n                              'lock-form',\n                              '3b171b7f-ea90-4a19-84a0-ae25428717a0', // SMS\n                              'b761554b-3f7f-41e2-b232-402aec31b006', // ?\n                              '3cf04f76-f463-4b98-9c73-78df68374ede', // menu-entry\n                              '14b0b4ec-f796-4510-ab95-e7c9086b6afc', // email\n                              '070334f2-45af-4214-ae97-38a1bb94d03e', // email-attachment\n                              '6786b72e-276f-4c82-b7c5-ca5758689118', // recents\n                              '81939b86-a48e-480e-afd1-cb2907568550', // security\n                            ]\n\n    locals.searchScope = {\n      text: '',\n      a: locals.companyId, \n      formId: ''\n    }\n \n    locals.topMostInstanceId = null\n    locals.searchStatistics = {\n      size: locals.defaultSearchLimit,\n      executed: false,\n      maximumSizeOfAnyResult: 0,\n      loading: false\n    }\n    locals.searchResults = []\n    locals.applicationsFormIds = {}\n\n    locals.applications = await this.getCompanyApplications()\n\n    // if (locals.applications.length) {\n    //   locals.searchScope.a = locals.applications[0].id\n    // }\n\n    if (params.queryParams.qA != null) {\n      locals.searchScope.a = params.queryParams.qA\n    }\n\n    if (params.queryParams.qF  != null) {\n      locals.searchScope.formId = params.queryParams.qF\n    }\n\n    locals.searchScope.text = params.queryParams.q\n\n    Aeppic.navigateTo(document.id, {\n      q: locals.searchScope.text,\n      qF: locals.searchScope.formId,\n      qA: locals.searchScope.a,\n    })\n\n    for (const application of locals.applications) {\n      locals.applicationsFormIds[application.id] = []\n    }\n    \n    watchParam('queryParams', (queryParams) => {\n\n      if (queryParams.qA != null) {\n        locals.searchScope.a = queryParams.qA\n      }\n\n      if (queryParams.qF  != null) {\n        locals.searchScope.formId = queryParams.qF\n      }\n\n      locals.searchScope.text = queryParams.q\n\n      const keepFormIds = !!queryParams.qF\n\n      this.updateSearchResults(keepFormIds)\n    }, {\n      deep: true,\n    })\n  }\n\n  _searchFn(keepFormIds = false) {\n    if (!locals.searchScope.text) {\n      this.resetSearch()\n      return\n    }\n\n    const searchParts = []\n    let filterWithWildCardSuffix = []\n    let filterWithWildCardPrefix = []\n\n    const rawFilter = locals.searchScope.text\n\n    if (rawFilter !== '') {\n      const filter = rawFilter.trim()\n\n      if (filter.indexOf(':') === -1) {\n        filter.split(/\\s/).map((part) => {\n\n          filterWithWildCardSuffix.push(`${part}*`)\n          filterWithWildCardPrefix.push(`*${part}*`)\n        })\n      } else {\n        searchParts.push(filter)\n      }\n    }\n\n    if (this.documentSearchScope) {\n      searchParts.push(this.documentSearchScope)\n    }\n\n    const morePreciseSearch = searchParts.concat(...filterWithWildCardSuffix).join(' AND ')\n    const lessPreciseSearch = searchParts.concat(...filterWithWildCardPrefix).join(' AND ')\n\n    // console.log(`morePreciseSearch: ${morePreciseSearch}`)\n    // console.log(`lessPreciseSearch: ${lessPreciseSearch}`)\n\n \n    const morePreciseSearchFn = async () => {\n      const docs = await Aeppic.find(morePreciseSearch, {\n        size: 100\n      })\n\n      return docs.filter(doc => this._filter(doc))\n    }\n\n    const lessPreciseSearchFn = async () => {\n      const docs = await Aeppic.find(lessPreciseSearch, {\n        size: 100\n      })\n\n      return docs.filter(doc => this._filter(doc))\n    }\n\n    const searchPromises = [morePreciseSearchFn(), lessPreciseSearchFn()]\n\n    Promise.all(searchPromises).then(async (resultSets) => {\n      const results = resultSets[0].concat(resultSets[1])\n\n      const biggestResultSize = resultSets[0].length > resultSets[1].length ? resultSets[0].length : resultSets[1].length \n      locals.searchStatistics.maximumSizeOfAnyResult = biggestResultSize\n\n      locals.searchStatistics = Object.assign({}, locals.searchStatistics, {\n        loading: false,\n        executed: true\n      })\n\n      const { resultDocuments, formIds } = await this.resultToFormCategories(results)\n\n      console.log('results, resultDocuments, formIds', results, resultDocuments, formIds)\n      // console.log('searchStatistics', locals.searchStatistics)\n\n      locals.searchResults = resultDocuments\n\n      if (!keepFormIds || !locals.applicationsFormIds[locals.searchScope.a] || !locals.applicationsFormIds[locals.searchScope.a].length) {\n        locals.applicationsFormIds[locals.searchScope.a] = formIds\n      }\n    })\n  }\n\n  _filter(doc) {\n    const hideDocumentFromSearch = this.formIdsNotToFind.includes(doc.f.id) \n\n    // if (hideDocumentFromSearch) {\n    //   console.log(`hideDocumentFromSearch`, doc)\n    // }\n    return !hideDocumentFromSearch\n  }\n\n  async getCompanyApplications() {\n    const company = await Aeppic.get(locals.companyId)\n\n    if (!company || !company.data.menuItems) {\n      return []\n    }\n\n    const menuItems = (await Aeppic.getAll(company.data.menuItems)).filter(t=>t)\n    const targets = await Aeppic.getAll(menuItems.map(item => item.data.target)) \n\n    return targets.filter(t => t != null) \n  }  \n\n  async resultToFormCategories(results) {\n    const formIds = []\n    const resultDocuments = []\n\n    for (const result of results) {\n      let resultDocument = result\n      let formId = result.f.id\n\n      if (formId === '962b8959-5d31-4343-9ffc-73acd37cc437') {\n        const sourceDocumentOfIndexedDocumentResult = await Aeppic.get(result.data.source.id)\n\n        if (!sourceDocumentOfIndexedDocumentResult) {\n          continue\n        }\n\n        formId = sourceDocumentOfIndexedDocumentResult.f.id\n        resultDocument = sourceDocumentOfIndexedDocumentResult\n      }\n \n      // if (!tempSearchResultsByFormId[formId]) {\n      //   tempSearchResultsByFormId[formId] = []\n      // }\n\n      if (resultDocuments.findIndex(d => d.id === resultDocument.id) !== -1) {\n        // console.warn('ignoring one search duplicate', resultDocument)\n        continue\n      }\n\n      if (formIds.indexOf(formId) === -1) {\n        formIds.push(formId)\n      }\n\n      resultDocuments.push(resultDocument)\n    }\n\n    return {\n      formIds,\n      resultDocuments\n    }\n  }\n\n  get documentSearchScope() {\n    if (locals.searchScope.formId) {\n      return `a: ${locals.searchScope.a} f.id:${locals.searchScope.formId}`\n    }\n\n    return `a: ${locals.searchScope.a}`\n  }\n\n  updateSearchResults(keepFormIds) {\n    if (!locals.searchScope.text) {\n      this.resetSearchResults()\n      return\n    }\n\n    locals.searchStatistics.loading = true\n\n    if (this.debouncedSearch) {\n      clearTimeout(this.debouncedSearch)\n    }\n\n    if (!keepFormIds) {\n      locals.searchScope.formId = ''\n    }\n\n    this.debouncedSearch = setTimeout(() => this._searchFn(keepFormIds), 800)\n  }\n\n  updatedSearchScopeText() {\n    Aeppic.navigateTo(document.id, {\n      q: locals.searchScope.text,\n      qF: locals.searchScope.formId,\n      qA: locals.searchScope.a,\n    })\n\n    this.updateSearchResults()\n  }\n\n  updateSearchScopeAncestor(ancestorId) {\n    if (!ancestorId) {\n      locals.searchScope.a = locals.companyId\n    } else {\n      locals.searchScope.a = ancestorId\n    }\n\n    locals.searchScope.formId = ''\n\n    Aeppic.navigateTo(document.id, {\n      q: params.queryParams.q,\n      qF: locals.searchScope.formId,\n      qA: locals.searchScope.a,\n    })\n\n    this.updateSearchResults()\n  }\n\n  updateSearchScopeForm(formId) {\n    if (!formId) {\n      locals.searchScope.formId = ''\n    } else {\n      locals.searchScope.formId = formId\n    }\n\n    Aeppic.navigateTo(document.id, {\n      q: params.queryParams.q,\n      qF: locals.searchScope.formId,\n      qA: params.queryParams.qA,\n    })\n\n    this.updateSearchResults(true)\n  }\n\n  resetSearch() {\n    this.resetSearchResults()\n\n    locals.searchScope = {\n      text: '',\n      a: locals.searchScope.a,\n      formId: ''\n    }\n\n    locals.searchScope.text = ''    \n  }\n\n  loadMore() {\n    locals.searchStatistics.size += 30\n\n    // this.updateSearchResults()\n  }\n\n  resetSearchResults() {\n    locals.searchResults = []\n\n    locals.searchStatistics.size = locals.defaultSearchLimit\n\n    locals.searchStatistics.loading = false\n    locals.searchStatistics.executed = false\n    locals.searchStatistics.maximumSizeOfAnyResult = 0\n  }\n}","packages":[]},"locks":[],"created":{"at":"2017-11-06T17:07:36+01:00","by":"","from":"","client":"7992a43e-3849-436b-8e4f-d38de6e0274b"},"modified":{"at":"2020-05-08T08:50:38+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1588927838346,"ct":1509984456768,"a_depth":4,"a":["apps","77ee8815-2c3a-4bb5-abd9-90541a545a24","ff13ca04-7a64-4d12-ab9a-edee939ca478","bf8eb298-3431-4138-a1e1-e748e05f3f37"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"eb93dc3a-1104-4559-a3c5-d6becd9b6656","v":"e7498aa05bcb9993","previous":{"v":"1653b11e68514c95"},"p":"5a191229-b708-4242-9c44-8a49376c46b7","f":{"id":"design-form","v":"2d98bf27c3108340","text":"Design"},"data":{"name":"page","applies":"","description":"","template":"\n<div class=\"dbps-body-with-actions _CSS-container\">\n  <div class=\"_CSS-actions\">\n  </div>\n\n  <div class=\"_CSS-body\">\n    <ae-list  list-id=\"table-list\"\n              query-id=\"f812861f-68c8-4818-9972-be7b5474c9b1\"\n              :root-document-id=\"document.id\"\n              param-columns=\"created.at,data.projectName,data.to,data.subject,data.firstname,data.surname\"\n              param-headers=\"Erstellungsdatum,Projektname,Empfänger,Betreff,Vorname,Nachname\"\n              param-designs=\"created-at,,,,,\"\n              :param-hide-quick-view=\"true\"\n              :sort=\"{ field: 'created.at', descending: true }\"\n              :search-options=\"{ searchAllFields: true }\"\n              :param-row-height=\"70\"\n    ></ae-list>\n  </div>\n</div>\n<div class=\"dbps-bottom-spacer\"></div> \n ","css":"._CSS {\n  display: flex;\n  flex-flow: column;\n}\n\n._CSS-container {\n  flex: 1;\n}\n\n._CSS-body {\n  flex: 1;\n  display: flex;\n  flex-flow: column;\n  margin: 8px;\n  background: rgba(255,255,255,0.6);\n}","controller":"","packages":[]},"locks":[],"created":{"at":"2018-10-30T12:56:20+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2020-10-13T10:11:31+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1602583891604,"ct":1540904180994,"a_depth":5,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","1116d922-d8df-4da5-a7c2-70191d07d929","5cdd2d20-7676-43e3-8997-e176dd3434ed","5a191229-b708-4242-9c44-8a49376c46b7"],"a_forms":["folder","application-form","folder","form-folder","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"ec14d790-fd77-4f5e-ac9a-be861cc48210","v":"1e609078d9b062bc","cloneOf":{"id":"c0141b2e-473e-42c5-a291-5717230aebb4","v":"dd03d0137190e619","text":"page"},"originalCloneOf":{"id":"c0141b2e-473e-42c5-a291-5717230aebb4","v":"dd03d0137190e619","text":"page"},"previous":{"v":"d3e7ba2f79033b48"},"p":"eccbf3d6-5fc6-473a-8b81-3049bac700e4","f":{"id":"design-form","v":"e3fe9ece11aabc5e","text":"Design"},"data":{"name":"page","template":"<!-- <ae-layout  layout-id=\"f66a2fef-e019-4cc3-a3ce-9d6e1e16a7ab\"\n            :param-list-form=\"data.contentsForm\"\n            @filter=\"locals.filter = $event\"\n            @sort=\"locals.sort = $event\"\n            :param-initial-sort=\"locals.sort\"\n            :param-initial-filters=\"params.initialFilters\"\n            :param-document=\"document\"\n></ae-layout> -->\n\n<ae-list  class=\"_CSS-list\"\n          list-id=\"table-list\"\n          :search=\"controller.filter\"\n          :root-document-id=\"document.id\" \n          :param-columns=\"data.displayTableColumns\"\n          :param-headers=\"data.displayTableHeaders\"\n          :param-designs=\"data.displayTableDesigns\"\n          :sort=\"locals.sort\"\n          :param-initial-sort-by=\"data.sortBy\"\n          :param-initial-sort-asc=\"data.sortAsc\"\n          :param-show-reset-sorting=\"data.showResetSorting\"\n          :param-row-height=\"data.rowHeight\"\n          :watch-list=\"false\"\n          :search-options=\"{ searchAllFields: true, size: 2000 }\"\n          :param-contents-form=\"data.contentsForm\"\n          :param-filter-fields=\"data.filterFields\"\n          :param-sort-fields=\"data.sortFields\"\n          >\n</ae-list>\n","css":"._CSS {\n  padding: 0 var(--bp-page-content-padding);\n  overflow: hidden;\n  /* overflow-y: scroll;\n  overflow-x: scroll;\n  overflow-y: scroll;\n  -webkit-overflow-scrolling: touch; */\n}\n\n._CSS-list {\n  height: 100%;\n}","controller":"class Controller  {\n  init() {\n    locals.filter = ''\n    // TODO: remove params.initialSortBy \n    locals.sort = { field: data.sortBy || params.initialSortBy || 'data.name', descending: typeof params.initialSortAsc === 'boolean' ? !params.initialSortAsc : '' }\n  }\n  \n  get filter() {\n    const parts = [`p:${document.id}`]\n\n    // if (locals.filter) {\n    //   parts.push(locals.filter)\n    // }\n\n    if (data.contentsForm.id) {\n      parts.push('f.id:' + data.contentsForm.id)\n    }\n\n    return parts.join(' AND ')\n  }\n}","packages":[]},"locks":[],"created":{"at":"2019-08-20T09:57:13+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2020-12-14T15:55:48+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1607961348697,"ct":1566295033441,"a_depth":4,"a":["apps","bc036ad0-6dbc-415b-b506-325fb0a44046","8ffb21f4-3d63-4824-a633-10a19d7aa7d8","eccbf3d6-5fc6-473a-8b81-3049bac700e4"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"ec25c253-a6c3-467b-ad9d-0406f2db26a2","v":"initial","p":"1bb92e44-6e23-4c0e-8cb5-163e6e75ebb7","f":{"id":"design-form","v":"2d98bf27c3108340","text":"Design"},"data":{"name":"page","applies":"","description":"","template":"<ae-list \n  list-id=\"2dab232c-2c8a-4aa4-b3f9-6023a7116161\"\n  query-id=\"f812861f-68c8-4818-9972-be7b5474c9b1\"\n  :root-document-id=\"document.id\"\n  @selected=\"Aeppic.navigateTo($event)\"\n  param-min-column-width=\"1fr\"\n  param-design=\"trash-title,title\"\n  :param-design-params=\"{ hidePath: true }\"\n  class=\"_CSS-list\"\n></ae-list>\n","css":"._CSS {\n  padding: var(--bp-page-content-padding);\n  /* max-width: 40%; */\n}\n\n._CSS-list > * > .ae-design {\n  background: var(--ae-theme-background-light);\n  padding: 0.5em 1em;\n  cursor: pointer;\n}","controller":"","packages":[]},"locks":[],"created":{"at":"2019-04-12T14:13:54+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2019-04-12T14:13:54+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1555078434802,"ct":1555078434802,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","1bb92e44-6e23-4c0e-8cb5-163e6e75ebb7"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"ed74d783-1ecd-4bdd-a230-abeadc8f8841","v":"0cdc5bea8ca00274","previous":{"v":"bb7053a2c89863e4"},"p":"cac5a1be-e187-4bb9-a900-7089078e6f25","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"page","template":"\n<ae-list  list-id=\"table-list\"\n          :filter=\"locals.filter ? 'f.id:' + locals.filter : null\"\n          :documents=\"locals.documents\"\n          :param-list-form-id=\"locals.FORMS.Mieter\"\n          :param-root-document-id=\"document.id\"\n          @selected=\"Aeppic.drillInto($event)\"\n          :params=\"{ columns: 'data.name,data.status,data.einheit,data.mieter,data.vertragsnotizen,data.mietzeit,data.beginn,data.ende,data.summe,data.kuendigungsdatum,data.auszugsdatum', designs: ',table:switch,,,,table:switch,table:date,table:date,,table:date,table:date' }\"\n          :search-options=\"{ searchAllFields: true }\"\n          param-sort-fields=\"data.name,data.summe,data.status,data.beginn,data.ende,data.kuendigungsdatum,data.auszugsdatum,data.mietzeit,data.vertragsnotizen\"\n          param-filter-fields=\"data.name,data.status,data.anrede,data.beginn,data.ende,data.kuendigungsdatum,data.auszugsdatum,data.mietzeit\"\n          class=\"_CSS-list\"\n></ae-list>\n","css":"","controller":"class Controller {\n  async init() {\n    locals.filter = ''\n\n    locals.FORMS = {\n      Vertrag: 'b4b13fc6-7d06-4832-93b0-cd27405e269d',\n    }\n\n    locals.documents = []\n\n    await this.update()\n  }\n\n  async update() {\n    const query = `a:${document.a[0]} f.id:${locals.FORMS.Vertrag}`\n    console.log(query)\n    const options = {\n      size: 3000,\n      sort: 'data.name,data.unternehmen,id'\n    }\n\n    Aeppic.subscribe(query, options, (documents) => locals.documents = documents)\n  }\n}\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-08-19T07:53:42+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-02-06T13:48:51+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1675691331610,"ct":1660895622819,"a_depth":4,"a":["apps","86189c5a-b9f4-445a-879f-d94574960df0","15292d56-6806-4263-b6d0-9194687203e1","cac5a1be-e187-4bb9-a900-7089078e6f25"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"f3d369b4-2d9d-4723-8470-5d8c6d64b4fd","v":"initial","p":"2c729a18-4c85-4b7e-8c6c-358c8b9b1b3d","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"page","applies":"","template":"<ae-list  list-id=\"2dab232c-2c8a-4aa4-b3f9-6023a7116161\"\n          query-id=\"f812861f-68c8-4818-9972-be7b5474c9b1\"\n          filter=\"f.id:a88e6030-17ca-4fe7-a1c0-128175a568ab OR f.id:4dd133fa-e12a-4ff3-a49e-9422fc4c4caf\"\n          :root-document-id=\"document.id\"\n          @selected=\"Aeppic.navigateTo($event)\"\n          param-min-column-width=\"1fr\"\n          param-design=\"search-card\"\n          :param-design-params=\"{ hidePath: true }\"\n          class=\"_CSS-list\"\n          param-gap=\"small\"\n          >\n</ae-list>\n","css":"._CSS {\n  padding: var(--bp-page-content-padding);\n}\n","controller":"","packages":[]},"locks":[],"created":{"at":"2020-05-08T08:51:41+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2020-05-08T08:51:41+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1588927901115,"ct":1588927901114,"a_depth":4,"a":["apps","49babc91-9123-4d92-b850-ce4d10f0e1b4","b6b5ad5b-124f-4b1c-8f55-74294451a2ba","2c729a18-4c85-4b7e-8c6c-358c8b9b1b3d"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","a590ce5b-28fc-4f85-9049-d006e1b8f880","169e87e0-0379-48e1-8c94-8fadac5969bb","ebb00fab-fe96-4562-a7cd-1fac9a420d50"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2018-06-26T13:24:19+00:00","by":"2695f56c-96e6-4009-8e2f-d545ea1e02aa","client":"server","from":""},"ct":1530019459245,"data":{"applies":"","controller":"class Controller {\n  async init() {\n    locals.initialSorting = { \n      field: 'data.bewerbungseingangsdatum',\n      descending:  true\n    }\n\n    locals.availableFolders = []\n\n    if (data.applicationFolders) {\n      const folders = await Aeppic.getAll(data.applicationFolders)\n      locals.availableFolders = folders.filter(f => f != null)\n    } else {\n      // FALLBACK to old app version\n      locals.availableFolders = await Aeppic.getAll('6833b1f8-def9-4f89-98ba-3b95ba2f076a', 'd3f71e18-abb5-4d57-97b6-4a449e1e35eb', '6833b1f8-def9-4f89-98ba-3b95ba2f076a')\n    }\n  }\n}","css":"._CSS {\r\n  padding: var(--bp-page-content-padding);\r\n}\r\n\r\n._CSS-buttons {\r\n  padding: var(--bp-page-content-padding) var(--bp-page-content-padding) 0 var(--bp-page-content-padding);\r\n  display: grid;\r\n  grid-template-columns: repeat(auto-fill, 10rem);\r\n  grid-auto-rows: 10rem;\r\n  grid-gap: 1rem;\r\n}\r\n\r\n._CSS-button {\r\n  cursor: pointer;\r\n  display: flex;\r\n  flex-flow: column;\r\n  justify-content: center;\r\n  align-items: center;\r\n  text-align: center;\r\n  padding: 1em;\r\n\r\n  background: white;\r\n  box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.16), 0 0 1px 0 rgba(0, 0, 0, 0.16);\r\n}\r\n\r\n._CSS-button__icon  {\r\n  color: indianred;\r\n  font-size: 3rem;\r\n}\r\n\r\n\r\n._CSS ._CSS-table-list--small {\r\n  min-height: 300px;\r\n}\r\n\r\n._CSS ._CSS-table-list--normal {\r\n  min-height: 400px;\r\n}\r\n\r\n._CSS ._CSS-table-list--big {\r\n  min-height: 600px;\r\n}","name":"page","packages":[],"template":"  <div class=\"_CSS-buttons\">\r\n    <div class=\"_CSS-button\" v-for=\"folder of locals.availableFolders\" @click=\"Aeppic.navigateTo(folder.id)\">\r\n      <ae-icon class=\"_CSS-button__icon\" :class=\"{ [folder.data.iconName]: true } \"></ae-icon>\r\n      <span>{{ folder.data.displayName || folder.data.name }} </span>\r\n    </div>\r\n  </div>\r\n\r\n\r\n<h2>Aktuelle Bewerbungen</h2>\r\n\r\n<ae-list  list-id=\"table-list\"\r\n          class=\"_CSS-table-list--big\"\r\n          :root-document-id=\"document.id\"\r\n          query-id=\"71d5633a-9dbd-4c96-b6e0-1c6ffc5ef0f1\"\r\n          filter=\"f.id:764f746e-a836-4e9d-a770-1d8d5ccad49b AND data.bewerbungsverfahrenAbgeschlossen:false AND data.bewerberpool:false\"\r\n          :params=\"{ columns: 'data.vorname,data.name,data.position,data.bewerbungseingangsdatum,', designs: ',title,,,number-comments-and-commenter,', headers: ',,,,Kommentare' }\"\r\n          :search-options=\"{ searchAllFields: true }\"\r\n          :sort=\"locals.initialSorting\"\r\n          :param-row-height=\"50\"\r\n          >\r\n</ae-list>\r\n\r\n<h2>Abgeschlossene Bewerbungen</h2>\r\n\r\n<ae-list  list-id=\"table-list\"\r\n          class=\"_CSS-table-list--small\"\r\n          :root-document-id=\"document.id\"\r\n          query-id=\"71d5633a-9dbd-4c96-b6e0-1c6ffc5ef0f1\"\r\n          filter=\"f.id:764f746e-a836-4e9d-a770-1d8d5ccad49b AND data.bewerbungsverfahrenAbgeschlossen:true\"\r\n          :params=\"{ columns: 'data.vorname,data.name,data.position,data.bewerbungseingangsdatum,data.geplanterEinstellungstermin,', designs: ',title,,,,number-comments-and-commenter,', headers: ',,,,,Kommentare' }\"\r\n          :search-options=\"{ searchAllFields: true }\"\r\n          :sort=\"locals.initialSorting\"\r\n          :param-row-height=\"50\"\r\n          >\r\n</ae-list>\r\n  \r\n<h2>Bewerberpool</h2>\r\n\r\n<ae-list  list-id=\"table-list\"\r\n          class=\"_CSS-table-list--normal\"\r\n          :root-document-id=\"document.id\"\r\n          query-id=\"71d5633a-9dbd-4c96-b6e0-1c6ffc5ef0f1\"\r\n          filter=\"f.id:764f746e-a836-4e9d-a770-1d8d5ccad49b AND data.bewerberpool:true\"\r\n          :params=\"{ columns: 'data.vorname,data.name,data.position,data.bewerbungseingangsdatum,,data.einwilligung', designs: ',title,,,number-comments-and-commenter,', headers: ',,,,Kommentare' }\"\r\n          :search-options=\"{ searchAllFields: true }\"\r\n          :sort=\"locals.initialSorting\"\r\n          :param-row-height=\"50\"\r\n          >\r\n</ae-list>\r\n"},"f":{"id":"design-form","text":"Design","v":"0736f6b8ec393e5e"},"id":"f8c0baa9-a905-477f-8f71-c6ee4a463d31","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-07-03T11:55:46+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"ebb00fab-fe96-4562-a7cd-1fac9a420d50","previous":{"v":"0599170096285dd2"},"stamps":[],"t":1751543746388,"v":"5cc40235ec73de5e"},{"a":["apps","e4a62254-c6ab-4d0d-a9ae-81934093f6e2","f6d2a869-980d-4654-ad06-0564b9aa747c","3e9738cd-4a8f-4dc1-acca-a1af19608106"],"a_depth":4,"a_forms":["folder","application-form","folder","form"],"created":{"at":"2018-04-18T15:37:55+02:00","by":"","client":"server","from":""},"ct":1524058675677,"data":{"applies":"","controller":"class Controller {\n  async init(){ \n    if (!Aeppic.Account?.data.allowDevMode) {\n      Aeppic.navigateTo('root')\n      return\n    }\n\n     locals.documentChangedBus = new Vue({\n      data: function() {\n        return {\n          documentChanged: true,\n        }\n      }\n    })\n\n    locals.mergeViewVisible = false\n    locals.uploadsCheckerVisible = false\n    \n    locals.Developer = {\n      devTabs: null,\n      navTabs: null,\n      storedSettings: {},\n      preferences: {\n        autopinTabs: Aeppic.Preferences && await Aeppic.Preferences.getSetting('aeppic:developer:autopinTabs'),\n      },\n      saveSettings: () => this.saveSettings(),\n      loadSettings: () => this.loadSettings()\n    }\n\n    locals.theme = Aeppic.Preferences && await Aeppic.Preferences.getSetting('aeppic:developer:theme') || 'ae-light';\n    \n    locals.navTreeTab = {\n      label: 'Nav',\n      layoutId: '5a9a36c5-9d49-4ec6-b62c-26e77b5da99d',\n      params: {\n        Developer: locals.Developer\n      },\n      pinned: false,\n      dynamic: false,\n    }  \n\n    locals.mergeTab = {\n      label: 'Transport',\n      layoutId: 'f9e65565-e569-463c-af90-354ff755617d',\n      pinned: false,\n      dynamic: false,\n      params: {\n        Developer: locals.Developer\n      }\n    } \n\n    locals.recentChangesTab = {\n      label: 'Recent Changes',\n      layoutId: '392eb7c0-8c74-410b-8ae3-636334077140',\n      pinned: false,\n      dynamic: false,\n    }\n\n\n    locals.uploadCheckerTab = {\n      label: 'Uploads',\n      layoutId: '2378228e-2192-4e17-9ec7-2989e693f399',\n      pinned: false,\n      dynamic: false,\n    }\n\n    await Aeppic.nextRenderPass()  \n     \n    locals.Developer.devTabs = $refs.devTabs\n    locals.Developer.navTabs = $refs.navTabs\n\n    locals.Developer.navTabs.showTab(locals.navTreeTab)\n  }\n\n  toggleAppTheme(e) {\n    if(e.shiftKey) {\n      locals.theme = locals.theme === 'ae-dark' ? 'ae-light' : 'ae-dark'\n    }\n    else {\n      $emit('toggle-app-theme')\n    }\n  }\n\n  toggleMergeView() {\n    locals.mergeViewVisible = !locals.mergeViewVisible\n\n    if(locals.mergeViewVisible){\n      locals.Developer.devTabs.closeDynamicTabs()\n      locals.Developer.devTabs.showTab(locals.mergeTab)\n    }\n    else{\n      locals.Developer.devTabs.closeTab(locals.mergeTab)\n    }\n  }\n\n\n  toggleRecentsTag() {\n    locals.recentVisible = !locals.recentVisible\n\n    if(locals.recentVisible){\n      locals.Developer.devTabs.closeDynamicTabs()\n      locals.Developer.devTabs.showTab(locals.recentChangesTab)\n    } else {\n      locals.Developer.devTabs.closeTab(locals.recentChangesTab)\n    }\n  }\n\n  toggleUploadsChecker() {\n    locals.uploadsCheckerVisible = !locals.uploadsCheckerVisible\n\n    if(locals.uploadsCheckerVisible){\n      locals.Developer.devTabs.closeDynamicTabs()\n      locals.Developer.devTabs.showTab(locals.uploadCheckerTab)\n    } else {\n      locals.Developer.devTabs.closeTab(locals.uploadCheckerTab)\n    }\n  }\n\n  saveSettings(){\n    const id = 'ae-developer'\n    locals.Developer.storedSettings.timestamp = Date.now()\n    locals.Developer.storedSettings.watchUIRevisions = Aeppic.flags.watchUIRevisions\n    Aeppic.LocalStorage.setItem(id, JSON.stringify(locals.Developer.storedSettings))\n  }\n\n  loadSettings(){\n    const id = 'ae-developer'\n    const json = Aeppic.LocalStorage.getItem(id)\n\n    if(json){\n      // const settings = JSON.parse(json)\n      // const timestamp = settings.timestamp\n      // const oneHour = 1000 * 60 * 60;\n      // if(Date.now() - timestamp < oneHour){\n      //   locals.Developer.storedSettings = settings\n      //   Aeppic.flags.watchUIRevisions = settings.watchUIRevisions\n      // }\n\n      const settings = JSON.parse(json)\n      locals.Developer.storedSettings = settings\n      Aeppic.flags.watchUIRevisions = settings.watchUIRevisions\n    }\n  }\n}\n\n\n\n","css":"\n._CSS [data-ae-list-id=\"tree-list\"] {\n    overflow: initial!important;\n}\n\n.ae-developer {\n  color-scheme: light;\n  background: var(--ae-background-100);\n  color: var(--ae-background-900);\n}\n\n.ae-developer .ae-tabs--header::-webkit-scrollbar-thumb {\n  background-color: var(--ae-background-300);\n}\n\n._CSS-developer-bar {\n  position: absolute;\n  right: 0;\n  padding:0 1px 1px 6px;\n  height: 30px;\n  display: flex;\n  flex-direction: row;\n  align-items:center;\n}\n\n._CSS-title {\n  vertical-align: middle;\n  xfont-size: 14px;\n  font-weight: 600;\n}\n\n._CSS-developer-tools {\n  font-size: 0.8em;\n  flex: 1;\n  display: flex;\n  flex-direction: row;\n  justify-content: flex-end;\n}\n\n._CSS-tools {\n  display: flex;\n  flex-flow: column;\n  padding: 2px;\n  gap: 4px;\n}\n\n._CSS-developer-tools > * {\n  margin: 3px;\n}\n","name":"page","packages":[],"template":"<div class=\"ae-developer ae-dialog-region\" :class=\"['ae-expand-region', 'ae-theme', locals.theme]\"  style=\"display:flex; flex-direction:column; height:100%\">\n  <ae-splitter :split=\"30\" :limit-expand=\"false\" style=\"flex:1;height:auto;min-height:0;\">\n    \n    <!-- Navigation Tabs -->\n    <ae-tabs slot=\"left-pane\" ref=\"navTabs\"></ae-tabs>\n\n    <!-- Dev Tabs -->\n    <ae-tabs slot=\"right-pane\" ref=\"devTabs\"></ae-tabs>\n\n  </ae-splitter>\n  \n  <div class=\"_CSS-developer-bar\">\n    <div class=\"_CSS-developer-tools\">\n      <div class=\"_CSS-title\">DEV <span v-if=\"Aeppic.Developer.remoteDeveloperMode === 'Server'\">(detached)</span></div> \n\n      <button class=\"ae-button\" title=\"Developer Tools\" @click.stop=\"$refs.tools.show($event)\">\n        <ae-icon class=\"fa fa-ellipsis-v\"></ae-icon>\n      </button>\n\n      <ae-popup ref=\"tools\">\n        <div class=\"_CSS-tools\">\n            <button class=\"ae-button\" @click=\"controller.toggleUploadsChecker()\"><ae-icon class=\"fa fa-file\"></ae-icon> Uploads</button>\n            <button class=\"ae-button\" @click=\"controller.toggleRecentsTag()\"><ae-icon class=\"fa fa-clock\"></ae-icon> Recents</button>\n            <button class=\"ae-button\" @click=\"controller.toggleMergeView()\"><ae-icon class=\"fa fa-box\"></ae-icon> Transport</button>\n            <button class=\"ae-button\" @click=\"controller.toggleAppTheme($event)\"><ae-icon class=\"fas fa-lightbulb\"></ae-icon></button>\n        </div>\n      </ae-popup>\n    </div>\n  </div>\n</div>\n\n<ae-layout layout-id=\"e5accfd9-8d33-46e5-a4d7-69a91b5f8543\"  :param-document-changed-bus=\"locals.documentChangedBus\"></ae-layout>"},"f":{"id":"design-form","text":"Design","v":"44303cec40b3e1fa"},"id":"f99b72c2-b466-4439-b5d4-c7bd6612447f","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-05-12T10:29:06+00:00","backedBy":"","by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":""},"p":"3e9738cd-4a8f-4dc1-acca-a1af19608106","previous":{"v":"f5e4b6ee85c6f0cf"},"stamps":[],"t":1778581746569,"v":"ed6942a85a0beb35"},{"id":"fb2fbea7-0564-4460-a143-9a28230dd7ff","v":"initial","cloneOf":{"id":"e78b019a-6457-49b1-84db-7cc3c001217a","v":"313fc92bdf442e88","text":"page"},"originalCloneOf":{"id":"e78b019a-6457-49b1-84db-7cc3c001217a","v":"313fc92bdf442e88","text":"page"},"p":"cf4be28e-7257-43df-b8b6-4d448559c5d9","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"page","template":"<div class=\"flex flex-col\">\n  <ae-form :document=\"document\" :auto-save=\"true\"></ae-form>\n\n    <ae-layout  layout-id=\"a2cd7699-9b46-494f-8f89-cb1f62151d82\"\n                param-text=\"Zurück zur Wartung\"\n                @selected=\"Aeppic.navigateTo(document.a[document.a_forms.findIndex(aForm => aForm === '816b2d0e-5158-4f0c-a5cf-6069bb76de69')])\"\n                :param-disabled=\"params.readonly\"\n                class=\"self-center mt-8\"\n    ></ae-layout>\n</div>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-05-23T11:14:24+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-05-23T11:14:24+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1716462864178,"ct":1716462864178,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","0614d9ba-fc1d-496b-8659-0a357871ae44","cf4be28e-7257-43df-b8b6-4d448559c5d9"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"210a1c38-7d17-499f-ae00-1779fa43e335","v":"96085b644a517b78","previous":{"v":"4ebbe3ca51dad1f6"},"p":"d2ac3563-3c3f-4f02-b923-9b67abf98d10","f":{"id":"design-form","v":"24435d748c76f819","text":"Design"},"data":{"name":"page__additional-content","template":"<ae-layout layout-id=\"1eeebe3f-56cb-4737-97e4-15adde3ab4f9\"\n          :param-document=\"document\"\n></ae-layout> \n\n<ae-layout layout-id=\"2f55f820-a5fe-4b77-8808-5dcd57067416\"\n          :param-document=\"document\"\n></ae-layout> \n\n<ae-layout layout-id=\"636104ed-aa41-4ba1-be77-928bb5de5b39\"\n          :param-document=\"document\"\n></ae-layout> ","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-05-08T08:50:47+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2022-03-17T13:21:47+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1647523307902,"ct":1588927847446,"a_depth":4,"a":["apps","144e85c0-d7f9-4b20-8928-be30f0c78bda","8e6ee7d3-9122-4a2e-8aaf-9fb3bd204b23","d2ac3563-3c3f-4f02-b923-9b67abf98d10"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"666ee41c-8eb7-45e8-8c3e-a2f0b8ef529a","v":"e0557b8b4a2cfd06","previous":{"v":"0191bbc66247548d"},"p":"3c0a7011-6a65-4ed3-98e1-06e4f5a314d8","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"page__additional-content","template":"<ae-list list-id=\"2e798091-303f-406b-a42a-93aa1cd8425c\"\n         :search=\"locals.contractSearch\"\n         @selected=\"Aeppic.drillInto($event, arguments[1])\"\n         param-title=\"Verträge\"\n         :search-options=\"{ size: 999 }\"\n></ae-list>\n\n<ae-list list-id=\"2e798091-303f-406b-a42a-93aa1cd8425c\"\n         :search=\"locals.unitSearch\"\n         @selected=\"Aeppic.drillInto($event, arguments[1])\"\n         param-title=\"Einheiten\"\n         :search-options=\"{ size: 999 }\"\n></ae-list>","css":"","controller":"class Controller {\n  init() {\n    this.FORMS = {\n      Vertrag: 'b4b13fc6-7d06-4832-93b0-cd27405e269d',\n      Einheit: '7105a939-989c-4154-96e8-44f17f556b2a',\n    }\n    locals.unitSearch = `a:${document.a[0]} f.id:${this.FORMS.Einheit} (data.mieter:${document.id} OR data.vorherigeMieter:${document.id})`\n    locals.contractSearch = `a:${document.a[0]} f.id:${this.FORMS.Vertrag} data.mieter:${document.id}`\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-08-17T09:51:27+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-08-17T09:57:03+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1660730223880,"ct":1660729887401,"a_depth":4,"a":["apps","86189c5a-b9f4-445a-879f-d94574960df0","15292d56-6806-4263-b6d0-9194687203e1","3c0a7011-6a65-4ed3-98e1-06e4f5a314d8"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"82d423e0-4c17-4762-8018-c84794d83987","v":"34b518fd2df2ae61","p":"50c3c7c5-c3d4-460c-b34d-0d61a4cb09ae","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"page__additional-content","template":"<div class=\"p-2\" v-if=\"document.a_forms.slice(-1)[0] === '71a3f943-571a-4e4f-a97c-dd809d6b10e4'\">\n  <h1>\n    Anträge\n  </h1>\n\n  <ae-list list-id=\"2e798091-303f-406b-a42a-93aa1cd8425c\"\n          :root-document-id=\"document.id\"\n          query-id=\"f812861f-68c8-4818-9972-be7b5474c9b1\"\n          @selected=\"Aeppic.drillInto($event, arguments[1])\"\n          :sort=\"[ { field: 'created.at', descending: true } ]\"\n          :param-design-params=\"{ hidePath: true }\"\n  ></ae-list> \n</div>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-11-15T12:39:18+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-04-13T12:42:40+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1681389760613,"ct":1681389760613,"a_depth":4,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","50c3c7c5-c3d4-460c-b34d-0d61a4cb09ae"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[],"previous":{"v":"8c56a6c49e36c3f0","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"}}},{"id":"d6f8e385-a474-487c-ab9d-acff5f70bee3","v":"82b54ea8d09444d6","previous":{"v":"0959243a698a5144"},"p":"06971b6e-2e82-40e0-9121-3bb78611fc4a","f":{"id":"design-form","v":"0061789efb5c5c29","text":"Design"},"data":{"name":"page__manager","template":"\n<ae-list  v-if=\"!params.showOverview\"\n          list-id=\"2dab232c-2c8a-4aa4-b3f9-6023a7116161\"\n          :root-document-id=\"document.id\"\n          filter=\"f.id:94886126-c88d-4ea0-b088-8ea5ad155b08\"\n          param-title=\"Unterweisungen\"\n          @selected=\"Aeppic.drillInto($event, arguments[1])\"\n          query-id=\"f812861f-68c8-4818-9972-be7b5474c9b1\"\n          :sort=\"{ field: 'created.at', descending: true }\"\n          param-design=\"card\"\n          param-min-column-width=\"100%\"\n          param-gap=\"small\"\n          :param-enable-filter=\"true\"\n          :param-enable-search=\"true\"\n          param-filter-fields=\"data.erledigt,data.versendet,data.empfaenger\"\n></ae-list>\n<div v-else class=\"_CSS-list\">\n  <div class=\"_CSS-entry\" v-for=\"(acks, empfaengerId) in locals.unreadAcksByEmpfaengerId\">\n    <div class=\"_CSS-entry__title\">\n      <template v-if=\"locals.empfaengerById[empfaengerId] !== 'loading'\">\n        <ae-design v-if=\"typeof locals.empfaengerById[empfaengerId] !== 'string'\"  name=\"tag-title\" :document-id=\"empfaengerId\"></ae-design>\n        <div v-else style=\"font-style:italic;\">{{ locals.empfaengerById[empfaengerId] }}</div> \n      </template>\n    </div>\n    <ae-list  list-id=\"2e798091-303f-406b-a42a-93aa1cd8425c\"\n              :documents=\"acks\"\n              param-design=\"report-card\"\n              :param-design-params=\"{ showProject: true, isManager: true }\"\n              param-title-text=\"Offene Lesebestätigungen\"\n    ></ae-list>\n  </div>\n        \n</div>\n\n<h2>Eigene Unterweisungen</h2>\n\n<ae-design name=\"page__receipient\" :document=\"document\"></ae-design> ","css":"._CSS-entry__title {\n  padding: var(--ae-space-2);\n  font-size: var(--ae-font-size-6);\n}\n\n._CSS-entry~._CSS-entry {\n  margin-bottom: var(--ae-space-4);\n}\n","controller":"class Controller {\n  init() {\n    locals.acksByParentId = {}\n    locals.unreadAcksByEmpfaengerId = {}\n    locals.showOpen = true\n    locals.empfaengerById = {}\n\n    if (params.showOverview) {\n      this.updateAcksByEmpfaengerId()\n    }\n\n    watchParam('showOverview', (value) => {\n      if (value) {\n        this.updateAcksByEmpfaengerId()\n      } else {\n        this.receiverSub?.cancel()\n      }\n    })\n  }\n\n  updateAcksByEmpfaengerId() {\n    this.receiverSub = Aeppic.updateSubscription(this.receiverSub, `a:${document.id} f.id:14931d03-c3bb-4cf7-9f62-747f94d8b01a`, {size:9999 }, (docs) => {\n      const { unreadAcksByEmpfaengerId } = docs.reduce((result, ack) => {\n        if (!ack.data.gelesen) {\n          if (!result.unreadAcksByEmpfaengerId[ack.data.empfaenger.id]) {\n            result.unreadAcksByEmpfaengerId[ack.data.empfaenger.id] = []\n          } \n\n          result.unreadAcksByEmpfaengerId[ack.data.empfaenger.id].push(ack)\n\n          this.scheduleEmpfaengerLooup(ack.data.empfaenger)\n        }\n\n        return result\n      }, { unreadAcksByEmpfaengerId: {} })\n\n      locals.unreadAcksByEmpfaengerId = unreadAcksByEmpfaengerId\n    })\n  }\n\n  async scheduleEmpfaengerLooup(empfaenger) {\n    if (locals.empfaengerById[empfaenger.id] === 'loading') {\n      return\n    }\n\n    locals.empfaengerById[empfaenger.id] = 'loading'\n    locals.empfaengerById[empfaenger.id] = await Aeppic.get(empfaenger)\n\n    if (!locals.empfaengerById[empfaenger.id]) {\n      locals.empfaengerById[empfaenger.id] = empfaenger.text\n    }\n  }\n}\n ","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-11-19T14:04:48+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-02-08T14:24:51+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1675866291094,"ct":1605794688883,"a_depth":4,"a":["apps","f416e371-07cc-4987-a6de-5934ef5ff3e4","1096c5df-2773-4914-9455-dc54e0f3e0e5","06971b6e-2e82-40e0-9121-3bb78611fc4a"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"7b391867-9ee1-4d42-90f0-ca62682210bc","v":"44f90116e3477102","previous":{"v":"6629d52c9c617f83"},"p":"06971b6e-2e82-40e0-9121-3bb78611fc4a","f":{"id":"design-form","v":"0061789efb5c5c29","text":"Design"},"data":{"name":"page__receipient","template":"<ae-list list-id=\"2e798091-303f-406b-a42a-93aa1cd8425c\"\n          :root-document-id=\"document.id\"\n          :filter=\"locals.baseFilter + 'data.gelesen:false'\"\n          param-title-text=\"Offene Unterweisungen\"\n          @selected=\"Aeppic.drillInto($event)\"\n          param-design=\"report-card\"\n          :param-design-params=\"{ showProject: true }\"\n></ae-list>\n\n<ae-list list-id=\"2e798091-303f-406b-a42a-93aa1cd8425c\"\n          :root-document-id=\"document.id\"\n          :filter=\"locals.baseFilter + 'data.gelesen:true'\"\n          param-title-text=\"Gelesene Unterweisungen\"\n          @selected=\"Aeppic.drillInto($event)\"\n            param-design=\"report-card\"\n          :param-design-params=\"{ showProject: true }\"\n></ae-list>\n","css":"","controller":"init() {\n  locals.baseFilter = `f.id:14931d03-c3bb-4cf7-9f62-747f94d8b01a data.empfaenger.id:${Aeppic.ProfilePage.id} `\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-11-19T15:05:23+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-06-14T13:08:38+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1623676118066,"ct":1605798323514,"a_depth":4,"a":["apps","f416e371-07cc-4987-a6de-5934ef5ff3e4","1096c5df-2773-4914-9455-dc54e0f3e0e5","06971b6e-2e82-40e0-9121-3bb78611fc4a"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"0bc7d7d3-cb15-44d3-8e8f-b5af75cc57af","v":"0584065f9b594ade","previous":{"v":"599c9caae2c04628"},"p":"5150f703-e93a-4e54-a998-a06c0e962e71","f":{"id":"design-form","v":"3385ac6766f32638","text":"Design"},"data":{"name":"page--administator","template":"<div class=\"grid grid-cols-2 gap-6 px-1\" @toolbar=\"controller.onToolbarEvent($event)\">\n  <div class=\"\">\n    <div class=\"text-lg bg-white p-4 my-2 border rounded-lg\">\n      Bearbeiten\n    </div>\n    <ae-form ref=\"form\" :document=\"document\" :readonly=\"!document.a_forms.includes('d60a5613-e046-4341-9bc9-34a241e8a28a')\"></ae-form>\n  </div>\n\n  <div>\n    <div class=\"text-lg bg-white p-4 my-2 border rounded-lg\">\n      Vorschau\n    </div>\n    <ae-design name=\"page--worker\"\n              :document=\"document\"\n              :params=\"{ ...params, readonly: true }\"\n              v-on=\"$listeners\"\n    ></ae-design>\n  </div>\n</div> ","css":"","controller":"class Controller {\n  onToolbarEvent(event) {\n    if (event.detail === 'reset') {\n      $refs.form.resetEdits()\n    } else if (event.detail === 'save') {\n      $refs.form.save()\n    }\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-03-31T13:19:24+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-03-31T15:05:43+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1648739143102,"ct":1648732764997,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","5150f703-e93a-4e54-a998-a06c0e962e71"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"317019bc-5d5b-4e40-9299-56e7f2c51a0c","v":"c1770329d2fd42be","cloneOf":{"id":"79ec7c74-1b08-4078-95c0-5b0ce052aeb5","v":"48f8beafa8138f92","text":"page--administator"},"originalCloneOf":{"id":"79ec7c74-1b08-4078-95c0-5b0ce052aeb5","v":"48f8beafa8138f92","text":"page--administator"},"previous":{"v":"d4b1ec7e4d3cfc89"},"p":"522ca40d-810b-4021-835f-beeace3af7fa","f":{"id":"design-form","v":"3385ac6766f32638","text":"Design"},"data":{"name":"page--administator","template":"<div class=\"grid grid-cols-2 gap-6 px-1\" @toolbar=\"controller.onToolbarEvent($event)\">\n  <div class=\"\">\n    <div class=\"text-lg bg-white p-4 my-2 border rounded-lg\">\n      Bearbeiten\n    </div>\n    <ae-form ref=\"form\" :document=\"document\" :readonly=\"!document.a_forms.includes('d60a5613-e046-4341-9bc9-34a241e8a28a')\"></ae-form>\n  </div>\n\n  <div>\n    <div class=\"mb-14\">\n      <div class=\"text-lg bg-white p-4 my-2 border rounded-lg\">\n        Vorschau (Auswahl: Wartungsplan. Keine aktive Wartung)\n      </div>\n      <ae-design name=\"card\"\n                v-on=\"$listeners\"\n                :document=\"document\"\n                :params=\"{ ...params, readonly: true }\"\n      ></ae-design>\n    </div>\n<!-- \n    <div class=\"mb-14\">\n      <div class=\"text-lg bg-white p-4 my-2 border rounded-lg\">\n        Vorschau (Auswahl: Wartungsplan. Als aktive Wartung in einer Wartung)\n      </div>\n      <ae-design name=\"active-card\"\n                v-on=\"$listeners\"\n                :document=\"document\"\n                :params=\"{ ...params, readonly: true }\"\n      ></ae-design>\n    </div> -->\n\n    <div class=\"mb-6\">\n        <div class=\"text-lg bg-white p-4 my-2 border rounded-lg\">\n        Vorschau (Ansicht: ausgewählter Wartungsplan)\n      </div>\n\n      <ae-design name=\"anlagen-list\"\n                v-on=\"$listeners\"\n                :document=\"document\"\n                :params=\"{ ...params, readonly: true }\"\n      ></ae-design> \n    </div>\n  </div>\n</div> ","css":"","controller":"class Controller {\n  onToolbarEvent(event) {\n    if (event.detail === 'reset') {\n      $refs.form.resetEdits()\n    } else if (event.detail === 'save') {\n      $refs.form.save()\n    }\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-03-31T14:31:46+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-04-06T14:31:03+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1649255463463,"ct":1648737106137,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","522ca40d-810b-4021-835f-beeace3af7fa"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"5f3a81c4-8449-49a3-a046-728a8a4808e8","v":"f76bad324ab38f5a","cloneOf":{"id":"317019bc-5d5b-4e40-9299-56e7f2c51a0c","v":"d4b1ec7e4d3cfc89","text":"page--administator"},"originalCloneOf":{"id":"317019bc-5d5b-4e40-9299-56e7f2c51a0c","v":"d4b1ec7e4d3cfc89","text":"page--administator"},"previous":{"v":"7a5a850212d77073"},"p":"3592ceee-ae9a-47a9-8488-7bad5b0d9ff5","f":{"id":"design-form","v":"3385ac6766f32638","text":"Design"},"data":{"name":"page--administator","template":"<div class=\"grid grid-cols-2 gap-6 px-1\" @toolbar=\"controller.onToolbarEvent($event)\">\n  <div class=\"\">\n    <div class=\"text-lg bg-white p-4 my-2 border rounded-lg\">\n      Bearbeiten\n    </div>\n    <ae-form ref=\"form\" :document=\"document\" :readonly=\"!document.a_forms.includes('096cfb8f-bb8e-4a6e-87c2-2d1fac5e822a')\"></ae-form>\n  </div>\n\n  <div>\n    <div class=\"mb-14\">\n      <div class=\"text-lg bg-white p-4 my-2 border rounded-lg\">\n        Vorschau (Auswahl: Firma)\n      </div>\n      <ae-design name=\"card\"\n                v-on=\"$listeners\"\n                :document=\"document\"\n                :params=\"{ ...params, readonly: true }\"\n      ></ae-design>\n    </div>\n\n    <div class=\"mb-14\">\n      <div class=\"text-lg bg-white p-4 my-2 border rounded-lg\">\n        Vorschau (Auswahl: Gewählte Firma)\n      </div>\n      <ae-design name=\"card\"\n                v-on=\"$listeners\"\n                :document=\"document\"\n                :params=\"{ ...params, readonly: true, noCommands: true }\"\n      ></ae-design>\n    </div>\n  </div>\n</div> ","css":"","controller":"class Controller {\n  onToolbarEvent(event) {\n    if (event.detail === 'reset') {\n      $refs.form.resetEdits()\n    } else if (event.detail === 'save') {\n      $refs.form.save()\n    }\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-03-31T15:00:53+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-04-26T08:36:48+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1650962208772,"ct":1648738853944,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","3592ceee-ae9a-47a9-8488-7bad5b0d9ff5"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"79ec7c74-1b08-4078-95c0-5b0ce052aeb5","v":"48f8beafa8138f92","cloneOf":{"id":"0bc7d7d3-cb15-44d3-8e8f-b5af75cc57af","v":"599c9caae2c04628","text":"page--administator"},"originalCloneOf":{"id":"0bc7d7d3-cb15-44d3-8e8f-b5af75cc57af","v":"599c9caae2c04628","text":"page--administator"},"previous":{"v":"a2224ab21d3ff59d"},"p":"816b2d0e-5158-4f0c-a5cf-6069bb76de69","f":{"id":"design-form","v":"3385ac6766f32638","text":"Design"},"data":{"name":"page--administator","template":"<div class=\"grid grid-cols-2 gap-6 px-1\" @toolbar=\"controller.onToolbarEvent($event)\">\n  <div class=\"\">\n    <div class=\"text-lg bg-white p-4 my-2 border rounded-lg\">\n      Bearbeiten\n    </div>\n    <ae-form ref=\"form\" :document=\"document\" :readonly=\"!document.a_forms.includes('d60a5613-e046-4341-9bc9-34a241e8a28a')\"></ae-form>\n  </div>\n\n  <div>\n    <div class=\"text-lg bg-white p-4 my-2 border rounded-lg\">\n      Vorschau\n    </div>\n    <ae-design name=\"page--worker\"\n              v-on=\"$listeners\"\n              :document=\"document\"\n              :params=\"{ ...params, readonly: true }\"\n    ></ae-design>\n  </div>\n</div> ","css":"","controller":"class Controller {\n  onToolbarEvent(event) {\n    if (event.detail === 'reset') {\n      $refs.form.resetEdits()\n    } else if (event.detail === 'save') {\n      $refs.form.save()\n    }\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-03-31T13:51:19+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-03-31T14:08:55+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1648735735112,"ct":1648734679941,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","816b2d0e-5158-4f0c-a5cf-6069bb76de69"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"c9007772-f883-47b5-b2ad-f19ae6bf072f","v":"3ef36667e01336a6","cloneOf":{"id":"79ec7c74-1b08-4078-95c0-5b0ce052aeb5","v":"48f8beafa8138f92","text":"page--administator"},"originalCloneOf":{"id":"79ec7c74-1b08-4078-95c0-5b0ce052aeb5","v":"48f8beafa8138f92","text":"page--administator"},"previous":{"v":"23ad977fada7c2e0"},"p":"3d678f2a-65f5-4dc1-a643-c5998fa33f32","f":{"id":"design-form","v":"3385ac6766f32638","text":"Design"},"data":{"name":"page--administator","template":"<div class=\"grid grid-cols-2 gap-6 px-1\" @toolbar=\"controller.onToolbarEvent($event)\">\n  <div class=\"\">\n    <div class=\"text-lg bg-white p-4 my-2 border rounded-lg\">\n      Bearbeiten\n    </div>\n    <ae-form ref=\"form\" :document=\"document\"></ae-form>\n  </div>\n\n  <div>\n    <div class=\"text-lg bg-white p-4 my-2 border rounded-lg\">\n      Vorschau (bei Anmeldung)\n    </div>\n    <ae-design name=\"card\"\n              v-on=\"$listeners\"\n              :document=\"document\"\n              :params=\"{ ...params, readonly: true }\"\n    ></ae-design>\n  </div>\n</div> ","css":"","controller":"class Controller {\n  onToolbarEvent(event) {\n    if (event.detail === 'reset') {\n      $refs.form.resetEdits()\n    } else if (event.detail === 'save') {\n      $refs.form.save()\n    }\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-04-01T08:14:48+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-04-05T13:02:51+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1649163771474,"ct":1648800888319,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","3d678f2a-65f5-4dc1-a643-c5998fa33f32"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"3db0b746-01c6-4b5a-ac14-34d5c1145c6a","v":"31f99ac83585ff3b","previous":{"v":"d7e1ea97f3d103a9"},"p":"275b807f-7dbb-4351-b731-669e275fa97d","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"page--application-questionnaire","applies":"","template":"<div>\n  <div>\n    <header class=\"_CSS-header\">\n      <div class=\"_CSS-header__row\">\n        <ae-layout layout-id=\"7a66c0bd-aaa4-406d-80da-0b0d5a6ee330\" @language-change=\"$emit('language-change')\"></ae-layout>\n        <div>\n          <ae-design name=\"logo\" :document-id=\"document.a.slice(-2)[0]\"></ae-design>\n          <ae-design class=\"_CSS-title\" name=\"title\" :document-id=\"document.a.slice(-2)[0]\"></ae-design>\n        </div>\n      </div>\n    </header>\n\n    <div class=\"_CSS-intro\">\n      <h1 v-translate=\"'application'\">Bewerbung</h1>\n      <div v-translate=\"'project'\">\n        Projekt:\n      </div>\n      <ae-design class=\"_CSS-text--hightlighted\" name=\"title\" :document-id=\"locals.project && locals.project.id\"></ae-design>\n\n      <div v-translate=\"'model'\">\n        Schauspieler:\n      </div>\n      <ae-design class=\"_CSS-text--hightlighted\" name=\"title\" :document=\"document\"></ae-design>\n\n      <p>\n        <ae-design style=\"display: inline;\" name=\"title\" :document=\"document\"></ae-design> hat sich gerade beworben.\n        Bitte beantworten Sie die folgenden Fragen.\n      </p>\n    </div> \n\n    <h1 v-translate=\"'questions'\">Fragen</h1>\n    <!-- <ae-control name=\"multiline\" :document=\"locals.project\" field-name=\"fee\" :readonly=\"true\"></ae-control> -->\n    <!-- <ae-control name=\"multiline\" :document=\"locals.answer\" field-name=\"fee\"></ae-control> -->\n    <ae-form :document=\"locals.answer\" :watch=\"false\"></ae-form>\n\n    <div class=\"_CSS-errors\" v-if=\"locals.errors\">\n      <h3>{{ Aeppic.translate('error:fields:required') }}</h3>\n      <span v-for=\"message of locals.errors\">{{ Aeppic.translate(message) }}<br></span>\n    </div>\n\n    <div class=\"_CSS-button-save\"  @click=\"controller.save()\" v-translate=\"'save'\">Speichern</div>\n  </div>\n</div>\n\n<div class=\"dbps-bottom-spacer\"></div>\n\n\n\n<ae-dialog ref=\"dialog\" :full-screen=\"true\">\n  <div slot=\"body\" class=\"dbps-body\">\n    <ae-design  ref=\"dialogLogo\" name=\"logo-with-title\" :document-id=\"document.a.slice(-2)[0]\"></ae-design>\n\n    Vielen Dank für die Beantwortung der Fragen. Sie können die Seite nun schließen.\n  </div>\n</ae-dialog>\n\n","css":"._CSS-button-save {\n  background: gold;\n  padding: 1em 2em;\n  border: none;\n  flex: 1;\n  text-transform: uppercase;\n  font-size: 1.1em;\n\n  display: flex;\n  justify-content: center;\n}\n\n._CSS-intro {\n  white-space: pre-line;\n  padding: 1em;\n  background: white;\n  border-radius: 4px;\n}\n\n._CSS-text--hightlighted {\n  display: inline;\n  font-weight: bold;\n}\n\n._CSS-errors {\n  background: white;\n  padding: 1em;\n  color: red;\n  border-radius: 4px;\n\n  margin: 2rem 0;\n}\n\n._CSS-header {\n  position: relative;\n  padding: 16px;\n  overflow: hidden;\n  white-space: nowrap;\n}\n\n._CSS-header__row {\n  display: flex;\n  justify-content: space-between;\n}\n\n._CSS-title {\n  font-size: 2rem;\n  font-weight: 600;\n}","controller":"class Controller {\n  async init () {\n    locals.error = {\n      required: false\n    }\n\n    locals.project = null\n    locals.answer = null\n\n    await Aeppic.nextRenderPass()\n\n    startEditing()\n\n    locals.project = await Aeppic.get(document.a.slice(-3)[0])\n\n    const existingAnswer = await Aeppic.find(`p:${document.id} f.id:13866932-346a-448d-9560-8a7e7e26be37`)\n\n    if (existingAnswer && existingAnswer.length) {\n      locals.answer = await Aeppic.edit(existingAnswer[0])\n      return\n    }\n\n    locals.answer = await Aeppic.new('13866932-346a-448d-9560-8a7e7e26be37', document.id)\n    locals.answer.data = {\n      fee: locals.project.data.fee,\n      shootingDates: locals.project.data.shootingDates,\n    }\n  }\n\n  async save() {\n    locals.errors = await this._requiredRequestFieldsFilledOut()\n\n    if (locals.errors) {\n      return \n    }\n\n    Aeppic.save(locals.answer)\n\n    $refs.dialog && $refs.dialog.show()\n\n    await this._deleteShare()\n\n    // await Aeppic.nextRenderPass()\n\n//    $refs.dialogLogo && $refs.dialogLogo.$el.scrollIntoView({behavior: \"instant\", block: \"start\"})\n  }\n\n  async _deleteShare() {\n    if (!params.share) {\n      return\n    }\n\n    Aeppic.delete(params.share)\n  }\n\n\n  async _requiredRequestFieldsFilledOut() {\n    const documentForm = await Aeppic.getFormForDocument(locals.answer)\n    const validationErrors = documentForm.validateDocumentData(locals.answer.data)\n\n    if (validationErrors === null) {\n      return null\n    }\n\n    const messages = []\n\n    for (const key in validationErrors) {\n      messages.push(validationErrors[key].required)\n    }\n\n    return messages\n  }\n}\n","packages":[]},"locks":[],"created":{"at":"2018-07-06T12:15:02+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2020-10-13T10:11:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1602583892683,"ct":1530879302297,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","275b807f-7dbb-4351-b731-669e275fa97d"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"dc31d8d5-05be-4b02-9852-cf0acab2e33a","v":"704167a75498cab2","cloneOf":{"id":"fb5183e4-18d2-41f0-8e50-ad6635675c8f","v":"9543594224fabc54","text":"page--receipts"},"originalCloneOf":{"id":"fb5183e4-18d2-41f0-8e50-ad6635675c8f","v":"9543594224fabc54","text":"page--receipts"},"previous":{"v":"b18aea8f9a09c90a"},"p":"b433eabd-abe6-4564-940f-a918f71037fb","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"page--billings","template":"<div >\n  <section class=\"flex justify-between\">\n    <header class=\"text-2xl font-bold\">\n      Nebenkosten\n    </header>\n\n    <!-- <div>\n      <a :href=\"controller.zipDownloadLink\" target=\"_blank\">\n        <button class=\"ae-button ae-button--secondary\">\n          <ae-icon class=\"fa fa-download\"></ae-icon>\n          Belege ZIP\n        </button>\n      </a>\n    </div> -->\n\n  </section>\n\n  <section>\n    <ae-list list-id=\"table-list\"\n        :root-document-id=\"document.id\"\n        query-id=\"71d5633a-9dbd-4c96-b6e0-1c6ffc5ef0f1\"\n        :filter=\"locals.filter\"\n        :search-options=\"locals.searchOptions\"\n        @selected=\"Aeppic.drillInto($event, arguments[1])\"\n        param-columns=\"data.von,data.bis,data.monate,data.nebenkosten,data.vermieteteFlaeche,data.nebenkostenProQuadratmeter\"\n        param-designs=\"table:date,table:date,,table:currency,,table:currency\"\n        xparam-fixed-column-widths=\"80,80,80,\"\n  ></ae-list>\n  </section>\n</div>  \n","css":"","controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Building: 'b433eabd-abe6-4564-940f-a918f71037fb',\n      Beleg: 'c2d9407d-9dd6-42ff-acdc-ec2e296bea99',\n      Belege: 'f6f822ec-eff4-4dc9-9ca6-8131004688da',\n      Abrechnung: 'afd2fd6f-ba35-45ce-8dbe-8d9c63f5f9d5',\n    }\n\n    locals.filter = `f.id:${this.FORMS.Abrechnung}`\n    locals.searchOptions = {\n      size: 100,\n      sort: [\n        { field: 'data.datum', descending: true },\n        'id'\n      ]\n    }\n\n    // locals.receiptsFolder = null\n\n    // locals.receiptsFolder = await Aeppic.findOne(`p:${document.id} f.id:${this.FORMS.Belege}`)\n  }\n\n  // get zipDownloadLink() {\n  //   return locals.receiptsFolder && `/api/services/41e10b87-b2e2-4534-a224-ebe1b728ff29/v1/zip?folderId=${locals.receiptsFolder.id}&folderNoDepth=true`\n  // }\n} ","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-01-03T13:44:01+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-01-03T16:01:24+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1672761684686,"ct":1672753441255,"a_depth":4,"a":["apps","86189c5a-b9f4-445a-879f-d94574960df0","15292d56-6806-4263-b6d0-9194687203e1","b433eabd-abe6-4564-940f-a918f71037fb"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"654b04ff-cfd3-4ea7-a205-127284b978c5","v":"b574781969302c41","previous":{"v":"c462bb273aeffad4"},"p":"f6f822ec-eff4-4dc9-9ca6-8131004688da","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"page--capture","template":"<div>\n  <header class=\"text-lg font-bold\">Neuer Beleg</header>\n\n\n  <div  class=\"bg-white border rounded-md p-1\">\n    <ae-form :document=\"locals.newCapture\"></ae-form>\n  \n    <div class=\"mt-4\">\n      <button class=\"ae-button ae-button--primary\" @click.stop=\"controller.save()\">\n        Beleg speichern\n      </button>\n      <button class=\"ae-button\" @click.stop=\"controller.deleteAndReset()\">\n        Zurücksetzen\n      </button>\n    </div>\n  </div>\n</div>\n\n\n<div v-if=\"locals.created.length\" class=\"mt-10\">\n  <header class=\"text-lg font-bold\">Gespeicherte Beläge</header>\n  \n  <ae-list list-id=\"208b6d2d-4198-45a7-b716-b697e8e39d39\"\n           :documents=\"locals.created\"\n           param-design=\"card\"\n  \n  ></ae-list>\n</div>","css":"","controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Building: 'b433eabd-abe6-4564-940f-a918f71037fb',\n      Beleg: 'c2d9407d-9dd6-42ff-acdc-ec2e296bea99',\n      Belege: 'f6f822ec-eff4-4dc9-9ca6-8131004688da',\n    }\n\n    locals.buildings = []\n    locals.created = []\n    locals.newCapture = null\n\n    locals.buildings = await Aeppic.find(`a:${document.a[0]} f.id:${this.FORMS.Building}`, { sort: 'data.name'})\n\n    await this.reset()\n  }\n\n  async deleteAndReset() {\n    this.deleteNewCapture()\n\n    await this.reset()\n  }  \n\n  async reset() {\n    locals.newCapture = await Aeppic.new(this.FORMS.Beleg, document)\n    locals.newCapture.hidden = true\n \n    Aeppic.save(locals.newCapture)\n  }\n\n  async save() {\n    if (!locals.newCapture.data.gebaeude?.id || locals.newCapture.data.kategorie === 'NONE') {\n      return\n    }\n\n    const belegeFolder = await Aeppic.findOne(`p:${locals.newCapture.data.gebaeude.id} f.id:${this.FORMS.Belege}`)\n\n    if (!belegeFolder) {\n      throw new Error('Missing folder to move new receipt to')\n    }\n\n    locals.newCapture.hidden = false\n    Aeppic.save(locals.newCapture)\n\n    Aeppic.move(locals.newCapture, belegeFolder)\n\n    locals.created.push(locals.newCapture)\n\n    await this.reset()\n  } \n\n  deleteNewCapture() {\n    if (locals.newCapture) {\n      Aeppic.delete(locals.newCapture)\n    }\n  }\n\n  destroy() {\n    this.deleteNewCapture()\n  }\n}\n\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-11-23T09:40:36+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-12-02T12:54:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1669985672034,"ct":1669196436324,"a_depth":4,"a":["apps","85d3c028-a61c-4be8-93d0-4366bc45752f","25fda732-5296-4fab-8d4e-92c3e32ca2c0","f6f822ec-eff4-4dc9-9ca6-8131004688da"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"6abc8755-2268-4323-bfb1-a2efbf1e5c01","v":"ccdd610ca3dcf2b3","previous":{"v":"a081e9ec3e703ba0"},"p":"b433eabd-abe6-4564-940f-a918f71037fb","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"page--codes","template":"<div class=\"\">\n  <section class=\"flex justify-between\">\n    <div class=\"text-2xl\">QR Code</div>\n    <div>\n      <a :href=\"controller.printLink\" target=\"_blank\">\n        <button class=\"ae-button ae-button--secondary\">\n          Druckansicht\n        </button>\n      </a>\n      <button class=\"ae-button ae-button--secondary\" @click.stop=\"controller.generateCodes()\">\n        QR-Codes generieren\n      </button>\n    </div>\n  </section>\n\n  <section>\n    <ae-list list-id=\"208b6d2d-4198-45a7-b716-b697e8e39d39\"\n              :root-document-id=\"document.id\"\n              query-id=\"f812861f-68c8-4818-9972-be7b5474c9b1\"\n              :filter=\"'f.id:' + locals.FORMS.Einheit\"\n              :search-options=\"{ size: 99999 }\"\n              param-design=\"exportable-code\"\n              sort=\"data.name\"\n              @selected=\"Aeppic.drillInto($event, arguments[1])\"\n    ></ae-list>\n  </section>\n</div>","css":"","controller":"class Controller {\n  init() {\n    this.FORMS = {\n      Einheit: '7105a939-989c-4154-96e8-44f17f556b2a'\n    }\n    locals.FORMS = this.FORMS\n  }\n\n  async generateCodes() {\n    const units = await Aeppic.find(`p:${document.id} f.id:${this.FORMS.Einheit}`, { size: 9999 })\n\n    // const unitsWithoutCodes = units.filter(unit => !unit.data.mangelQrCode.dataUrl)\n\n    const editableUnits = await Aeppic.editAll(units)\n\n    for (const unit of editableUnits) {\n      if (!unit.data.share?.id) {\n        console.error(`Unit ${unit.id} without share!`)\n        continue\n      }\n\n      const code = await packages.QRCode.toDataURL(`${packages.window.location.origin}/shared/${unit.data.share.id}?auto`)\n\n      unit.setFile('mangelQrCode', code)\n      // console.log(code)\n    }\n\n    Aeppic.saveAll(editableUnits)\n  }\n\n  get printLink() {\n    return `/${document.id}?print&printLayoutId=7d034c07-fde6-4f39-93c0-4caffc058bc8`\n  }\n}","packages":[{"id":"ae02fa13-66fe-4a9e-81e6-17791373fcab","v":"94adcb551a270476","text":"node-qrcode"},{"id":"10843fbf-4f0c-416b-be7d-42d6bbd0ae68","v":"d4ce6dec568c3dc1","text":"Window"}],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-05-03T12:19:18+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-05-16T08:32:35+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1652689955990,"ct":1651580358179,"a_depth":4,"a":["apps","86189c5a-b9f4-445a-879f-d94574960df0","15292d56-6806-4263-b6d0-9194687203e1","b433eabd-abe6-4564-940f-a918f71037fb"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"6da3a769-8a4d-423c-b54b-55d3467d7b55","v":"fde764f120042bfa","previous":{"v":"7776bc6786f9bec7"},"p":"c69a0c1c-6c53-40c2-87e8-5ace866bf1df","f":{"id":"design-form","v":"e37099c040ec46e9","text":"Design"},"data":{"name":"page--core","template":"<ae-layout layout-id=\"73637da4-0d5c-47d3-8524-877762c34268\" :params=\"{ companyId: controller.companyId }\"></ae-layout>\n","css":"","controller":"init() {\n  this.FORMS = {\n    Company: 'c69a0c1c-6c53-40c2-87e8-5ace866bf1df'\n  }\n}\nget companyId() {\n  if (document.f.id === this.FORMS.Company) {\n    return document.id\n  }\n\n  return document.a[document.a_forms.findIndex(a_form => a_form === this.FORMS.Company)]\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-05-28T09:58:52+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-05-28T10:15:12+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1622196912622,"ct":1622195932496,"a_depth":4,"a":["apps","8f8c9ed7-a7ed-4150-b162-92d6f19a05b0","526d9710-b2bd-4fa7-9341-d780ead102c1","c69a0c1c-6c53-40c2-87e8-5ace866bf1df"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"a51d26e7-ea29-4e24-8ef1-4aad71cbd01b","v":"dc8a5dcff1fc3193","previous":{"v":"d9f7b64dc98d5a1f"},"p":"6786b72e-276f-4c82-b7c5-ca5758689118","f":{"id":"design-form","v":"0061789efb5c5c29","text":"Design"},"data":{"name":"page--core","template":"<ae-layout layout-id=\"73637da4-0d5c-47d3-8524-877762c34268\" :params=\"{ companyId: document.a[0] }\"></ae-layout>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-08-10T15:14:48+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2020-12-11T10:32:25+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1607682745732,"ct":1597072488507,"a_depth":4,"a":["apps","77ee8815-2c3a-4bb5-abd9-90541a545a24","b42e5a69-6cf0-4b55-928a-755011005b5a","6786b72e-276f-4c82-b7c5-ca5758689118"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"82ac8f9d-fcb6-484f-9c1a-15fe6383b7fe","v":"c3b844327f9eba3c","cloneOf":{"id":"6da3a769-8a4d-423c-b54b-55d3467d7b55","v":"fde764f120042bfa","text":"page--core"},"originalCloneOf":{"id":"6da3a769-8a4d-423c-b54b-55d3467d7b55","v":"fde764f120042bfa","text":"page--core"},"previous":{"v":"00c85026f06a6208"},"p":"c69a0c1c-6c53-40c2-87e8-5ace866bf1df","f":{"id":"design-form","v":"e37099c040ec46e9","text":"Design"},"data":{"name":"page--core-with-all-release-notes","template":"<!-- <ae-layout layout-id=\"73637da4-0d5c-47d3-8524-877762c34268\" :params=\"{ companyId: controller.companyId }\"></ae-layout> -->\n\n\n<div class=\"_CSS-page\">\n  <div class=\"_CSS-page__dashboard\">\n    <ae-design name=\"page\" :document=\"locals.dashboard\" :style=\"{ 'min-width': Aeppic.ResponsiveSizes.MIN_MEDIUM_SIZE + 'px' }\"></ae-design>\n\n    <ae-design name=\"changelog\" :document-id=\"controller.companyId\" :param-show-all-apps=\"true\"></ae-design>\n  </div>\n\n  <div class=\"_CSS-page__stream\">\n    <ae-list list-id=\"ea63de1f-8ccb-41a3-8864-c21e980e18fe\" :params=\"{ companyId: controller.companyId }\"></ae-list>\n  </div>\n</div>","css":"._CSS-page {\n  display: flex;\n  flex-wrap: wrap;\n}\n\n._CSS-page__dashboard {\n  flex: 1 0 50%;\n  min-width: 900px;\n\n  display: flex;\n  flex-flow: column;\n}\n\n._CSS-page__stream {\n  flex: 1 0 50%;\n  background: var(--ae-ui-background);\n  padding: var(--ae-size-2);\n  border-radius: var(--ae-border-radius);\n  border: var(--ae-border-width) solid var(--ae-border-color);\n}\n","controller":"class Controll {\n  async init() {\n    this.FORMS = {\n      Company: 'c69a0c1c-6c53-40c2-87e8-5ace866bf1df',\n      Dashboard: '7be5f2c5-206b-4ab6-9d4d-c4834baf8e32',\n    }\n\n    locals.dashboard = null\n    locals.dashboard = await Aeppic.findOne(`p:${this.companyId} f.id:${this.FORMS.Dashboard}`)\n  }\n\n  get companyId() {\n    if (document.f.id === this.FORMS.Company) {\n      return document.id\n    }\n\n    return document.a[document.a_forms.findIndex(a_form => a_form === this.FORMS.Company)]\n  }\n} ","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-09-07T11:54:50+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-09-07T12:00:42+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1662552042534,"ct":1662551690496,"a_depth":4,"a":["apps","8f8c9ed7-a7ed-4150-b162-92d6f19a05b0","526d9710-b2bd-4fa7-9341-d780ead102c1","c69a0c1c-6c53-40c2-87e8-5ace866bf1df"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"c5cee7ca-07a1-4111-b6bc-e13558d95a8f","v":"363e850f37ab43b4","previous":{"v":"68eb7fcef5677250"},"p":"c69a0c1c-6c53-40c2-87e8-5ace866bf1df","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"page--energieberater","template":"<div class=\"_CSS-page\" v-if=\"locals.ready\">\n  <ae-design class=\"_CSS-page__dashboard\" name=\"page\" :document=\"locals.dashboard\" :style=\"{ 'min-width': Aeppic.ResponsiveSizes.MIN_MEDIUM_SIZE + 'px' }\"></ae-design>\n\n  <div class=\"_CSS-page__stream\" v-if=\"locals.projects.length\">\n    <ae-list  list-id=\"ea63de1f-8ccb-41a3-8864-c21e980e18fe\" :params=\"{ companyId: document.id, whitelistedAncestors: locals.projects, title: 'Aktivitäten (Projekte: In Bearbeitung, In Ausführung)', immediate: true }\"></ae-list>\n  </div>\n  <div class=\"_CSS-page__stream\" v-else-if=\"Aeppic.Account.data.isAdmin\">\n    <ae-list list-id=\"ea63de1f-8ccb-41a3-8864-c21e980e18fe\" :params=\"{ companyId: document.id, immediate: true }\"></ae-list>\n  </div>\n\n</div>","css":"._CSS-page {\n  display: flex;\n  flex-wrap: wrap;\n}\n\n._CSS-page__dashboard {\n  flex: 1 0 60%;\n  min-width: 900px;\n}\n\n._CSS-page__stream {\n  flex: 1 0 40%;\n  background: var(--ae-ui-background);\n  padding: var(--ae-size-2);\n  border-radius: var(--ae-border-radius);\n  border: var(--ae-border-width) solid var(--ae-border-color);\n}\n","controller":"class Controll {\n  async init() {\n    this.FORMS = {\n      Dashboard: '7be5f2c5-206b-4ab6-9d4d-c4834baf8e32',\n      EnergieProjekt: '98c77209-1245-43d6-90b5-8625183f470c'\n    }\n    this.ProfilePageId = Aeppic.ProfilePage.id\n\n    // console.log('NOTE: remove hardcoded id here')\n    // this.ProfilePageId = 'c7c33dae-79bd-48e5-a0b6-9bf87b2ca6c3' \n\n    locals.ready = false\n\n    locals.projects = []\n\n    locals.dashboard = null\n    locals.dashboard = await Aeppic.findOne(`p:${document.id} f.id:${this.FORMS.Dashboard}`)\n\n    locals.projects = await Aeppic.find(`a:${document.id} f.id:${this.FORMS.EnergieProjekt} data.projektleiter.id:${this.ProfilePageId} (data.status:PROGRESS OR data.status:ONSPOTCHECKS)`, { size: 999 })\n\n    locals.ready = true\n  }\n}\n ","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-02-11T15:18:38+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-02-16T09:42:53+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1708076573004,"ct":1644592718854,"a_depth":4,"a":["apps","8f8c9ed7-a7ed-4150-b162-92d6f19a05b0","526d9710-b2bd-4fa7-9341-d780ead102c1","c69a0c1c-6c53-40c2-87e8-5ace866bf1df"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"a6b85b83-3d1a-4af2-b5c2-d33611520389","v":"initial","p":"c6349b48-9561-4c06-9200-fe9df9b6fb3e","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"page--full-access","template":"","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-05-19T13:05:38+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2022-05-19T13:05:38+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1652965538591,"ct":1652965538591,"a_depth":4,"a":["apps","94a64d89-d204-4918-b147-d717914fb03e","f254ce25-42f1-4333-8ee7-23554bf746c1","c6349b48-9561-4c06-9200-fe9df9b6fb3e"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"c535f3d8-1be0-47fa-9e79-b6b3afe60a04","v":"8b40a475b57bc7c6","previous":{"v":"1129cb77881dd740"},"p":"b433eabd-abe6-4564-940f-a918f71037fb","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"page--groundplan","template":"<div  class=\"w-full flex flex-wrap content-stretch gap-4\">\n  <div class=\"flex flex-col max-w-[50%] min-w-[50%]\">\n    <ae-design v-for=\"grundriss of data.grundriss\" name=\"interactive-plan\" :document-id=\"grundriss.id\" :param-readonly=\"true\"></ae-design>\n  </div>\n  <ae-list class=\"flex-1\"\n            list-id=\"2e798091-303f-406b-a42a-93aa1cd8425c\"\n            :root-document-id=\"document.id\"\n            query-id=\"f812861f-68c8-4818-9972-be7b5474c9b1\"\n            filter=\"f.id:7105a939-989c-4154-96e8-44f17f556b2a\"\n            @selected=\"Aeppic.drillInto($event, arguments[1])\"\n            param-title=\"Einheiten\"\n            param-selection-id=\"b433eabd-abe6-4564-940f-a918f71037fb\"\n  ></ae-list>\n</div>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-05-04T08:34:10+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-09-26T12:10:20+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1664194220571,"ct":1651653250866,"a_depth":4,"a":["apps","86189c5a-b9f4-445a-879f-d94574960df0","15292d56-6806-4263-b6d0-9194687203e1","b433eabd-abe6-4564-940f-a918f71037fb"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"10a1136c-f8ba-494b-b776-479ad0828486","v":"4d35de678dc7d2be","previous":{"v":"60c1bd7cbe256b24"},"p":"61ccaf6b-af84-4908-aa73-785dffd83c5f","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"page--intra-company","applies":"","template":"<ae-form layout-id=\"67a27f06-6776-4f90-93dc-7321528f96c2\" :document=\"document\" :auto-save=\"true\"></ae-form>\n","css":"","controller":"","packages":[]},"locks":[],"created":{"at":"2018-06-20T14:07:03+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2018-06-20T14:12:21+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"from":"","client":"server"},"t":1529503941112,"ct":1529503623042,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","61ccaf6b-af84-4908-aa73-785dffd83c5f"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"341f26ef-4983-46b0-bcc5-aefecfc42387","v":"283c3a3b48d52192","previous":{"v":"f45d547771a22366"},"p":"275b807f-7dbb-4351-b731-669e275fa97d","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"page--intra-company","applies":"","template":"<div class=\"dbps-body-with-actions\">\n  <div class=\"dbps-body-with-actions__actions-placeholder\"></div>\n  <div class=\"dbps-body-with-actions__actions\">\n    <ae-layout layout-id=\"6273d6a2-0cf0-47da-9e45-18460c50d101\" @edit=\"controller.setEditing(true)\" @reset=\"controller.setEditing(false)\"></ae-layout>\n    <!-- <a class=\"dbps-button\" style=\"flex-flow: column;\" :href=\"'/application/' + controller.applicationListShareIdentifier\" target=\"_blank\">\n      <ae-icon class=\"fa fa-share-alt\"></ae-icon>\n      <div>Fragen an Agentur (Bewerbung)</div>\n    </a>\n    <a  v-if=\"locals.shortlist\" class=\"dbps-button\" style=\"flex-flow: column;\" :href=\"'/shortlist/' + controller.shortListShareIdentifier\" target=\"_blank\">\n      <ae-icon class=\"fa fa-share-alt\"></ae-icon>\n      <div>Fragen und Verifizierung an Agentur (Shortlist)</div>\n    </a> -->\n    <button class=\"dbps-button\" @click=\"Aeppic.navigateTo(data.model)\" title=\"Gehe zu Model in Stammdaten\">\n      <ae-icon class=\"fa fa-user-alt fa-2x\"></ae-icon>\n    </button>\n\n    <a v-if=\"locals.preselection\" title=\"Download Casting Sheet\" :href=\"'/api/docs/' + locals.preselection.id + '/_print?additionalQueryParams=' + encodeURIComponent('printLayoutId=273516ed-deb4-43ce-9fa8-ca00aae0ae6c')\" target=\"_blank\">\n      <button class=\"dbps-button\">\n        <ae-icon class=\"fa fa-file-user fa-2x\"></ae-icon>\n      </button>\n    </a>\n  </div>\n\n  <div>\n    <div class=\"dbps-tabs\">\n        <span class=\"dbps-tab\" @click.stop=\"locals.activeTab = 'files'\" :class=\"{ 'dbps-tab--active': locals.activeTab === 'files' }\">Dateien</span>\n        <span class=\"dbps-tab\" @click.stop=\"locals.activeTab = 'application'\" :class=\"{ 'dbps-tab--active': locals.activeTab === 'application' }\">Bewerbung</span>\n        <span class=\"dbps-tab\" v-if=\"locals.preselection\" @click.stop=\"locals.activeTab = 'preselection'\" :class=\"{ 'dbps-tab--active': locals.activeTab === 'preselection' }\">eCasting</span>\n        <span class=\"dbps-tab\" v-if=\"locals.shortlist\" @click.stop=\"locals.activeTab = 'shortlist'\" :class=\"{ 'dbps-tab--active': locals.activeTab === 'shortlist' }\">Shortlist</span>\n    </div>\n\n    <div class=\"dbps-tab__content\">\n      <section v-if=\"locals.activeTab === 'application'\">\n        <template v-if=\"locals.application\">\n          <ae-design name=\"hero--intra-company\" :document=\"locals.application\"></ae-design>\n          <ae-form :key=\"locals.application.id\"  ref=\"form\" :document=\"locals.application\" :auto-save=\"true\" :readonly=\"!locals.edit\"></ae-form>\n        </template>\n        <template v-else>\n          Das Model wurde hier nicht hinzugefügt.\n        </template>\n      </section>\n\n      <section v-if=\"locals.activeTab === 'preselection'\">\n        <template v-if=\"locals.preselection\">\n          <ae-design name=\"hero--intra-company\" :document=\"locals.preselection\"></ae-design>\n          <ae-form :key=\"locals.preselection.id\" ref=\"form\" :document=\"locals.preselection\" :auto-save=\"true\" :readonly=\"!locals.edit\"></ae-form>\n        </template> \n        <template v-else>\n          Das Model wurde hier nicht hinzugefügt.\n        </template>\n      </section>\n\n      <section v-if=\"locals.activeTab === 'shortlist'\">\n        <template v-if=\"locals.shortlist\">\n          <ae-design name=\"hero--intra-company\" :document=\"locals.shortlist\"></ae-design>\n          <ae-form :key=\"locals.shortlist.id\" ref=\"form\" :document=\"locals.shortlist\" :auto-save=\"true\" :readonly=\"!locals.edit\"></ae-form>\n        </template>\n        <template v-else>\n          Das Model wurde hier nicht hinzugefügt.\n        </template>\n      </section>\n\n      <section v-if=\"locals.activeTab === 'files'\">\n\n        <ae-layout\n          v-if=\"locals.application\"\n          layout-id=\"df78a07d-3d55-466b-8375-03a27019af60\"\n          :param-commands-on-clone=\"['af300cac-951d-46b2-b7b2-496a7850b1ec', 'af300cac-951d-46b2-b7b2-496a7850b1ec', 'af300cac-951d-46b2-b7b2-496a7850b1ec']\"\n          param-action-on-transition=\"clone\"\n          :param-column-root-document-ids=\"[locals.application && locals.application.id, locals.preselection && locals.preselection.id, locals.shortlist && locals.shortlist.id]\"\n          param-ref-field-name=\"files\"\n          param-compare-field-path=\"data.datei.dataUrl\"\n          :param-column-designs=\"['board-title','board-title','board-title']\"\n          :xparam-disable-remove=\"[true]\"\n          :param-column-status=\"[locals.application && locals.application.id, locals.preselection && locals.preselection.id, locals.shortlist && locals.shortlist.id]\"\n          :param-list-design-params=\"{ thumbnailBackgroundSize: 'auto' }\"\n          >\n        </ae-layout>\n        <ae-layout \n                  v-if=\"locals.application\"\n                  layout-id=\"f5a5c2a0-bf9c-4b44-b05b-8e545156df10\"\n                  :param-document=\"locals.application\"\n                  param-field-to-add-to=\"files\"\n                  param-file-form-id=\"aabed4ee-20ca-4df4-9a78-75a05e97dce9\"\n                  param-file-form-field=\"datei\"\n                  param-file-name-to-field=\"name\"\n                  :param-flatten=\"true\"\n                  :param-save-new-documents=\"true\"\n                  :param-show-ui=\"true\"\n                  @added=\"controller.addedApplicationFiles($event)\"\n        ></ae-layout>\n      </section>\n    </div>\n  </div>\n</div>\n","css":"","controller":"class Controller {\n  async init () {\n    this.WATCHERS = {\n      application: null,\n      preselection: null,\n      shortlist: null\n    }\n    locals.application = null\n    locals.preselection = null\n    locals.shortlist = null\n    locals.edit = false\n\n    const projectId = document.a[document.a.length - 2]\n\n    this.subscribeApplication(projectId)\n    this.subscribePreselection(projectId)\n    this.subscribeShortlist(projectId)\n\n    locals.activeTab = 'files'\n  }\n\n  async subscribeApplication(projectId) {\n    const folder = await this._getFolder(projectId, '9c63f632-9e40-4abb-aa1a-f4a02110a97f')\n\n    if (folder) { \n      const application = await this._getApplicationDocument(folder)\n\n      if (application) {\n        Aeppic.watch(application.id, async (application) => {\n          locals.application = await Aeppic.edit(application)\n        })\n      }\n      \n      locals.application = application\n    }\n\n    return null\n  }\n  \n  setEditing(value) {\n    $refs.form && $refs.form.save()\n\n    locals.edit = value\n  }\n\n  async subscribePreselection(projectId) {\n    const folder = await this._getFolder(projectId, '61ccaf6b-af84-4908-aa73-785dffd83c5f')\n\n    if (folder) {\n      const application = await this._getApplicationDocument(folder)\n\n      if (application) {\n        Aeppic.watch(application.id, (application) => {\n          locals.preselection = application\n        })\n      }\n\n      locals.preselection = application\n    }\n\n    return null\n  }\n\n  async subscribeShortlist(projectId) {\n    const folder = await this._getFolder(projectId, '9927c3c7-8ce4-4c25-bcec-3385cf1370db')\n\n    if (folder) {\n      const application = await this._getApplicationDocument(folder)\n\n      if (application) {\n        Aeppic.watch(application.id, async (application) => {\n          locals.shortlist = application\n        })\n      }\n\n      locals.shortlist = application\n    }\n\n    return null\n  } \n\n  async _getFolder(projectId, formId) {\n    return Aeppic.findOne(`p:${projectId} f.id:${formId}`)\n  }\n\n  async _getApplicationDocument(folder) {\n    const allPossiblyAttachedApplications = await Aeppic.find(`p:${folder.id} f.id:275b807f-7dbb-4351-b731-669e275fa97d data.requestApplication:${document.data.requestApplication.id}`)\n\n    const index = allPossiblyAttachedApplications.findIndex(application => folder.data.models.some(attachedApplication => attachedApplication.id === application.id))\n\n    if (index < 0) {\n      return null\n    }\n    return Aeppic.edit(allPossiblyAttachedApplications[index])\n  }\n\n  async addedApplicationFiles(added) {\n    Aeppic.save(locals.application)\n  }\n}\n","packages":[]},"locks":[],"created":{"at":"2018-06-14T11:36:02+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2020-10-13T10:11:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1602583892687,"ct":1528976162169,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","275b807f-7dbb-4351-b731-669e275fa97d"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"bef050fe-57a2-4f4b-989c-65ee269cf9c6","v":"6cd04d22690e56aa","previous":{"v":"d1adad13e90190a0"},"p":"4551c597-7595-4858-8b7f-207a7fb15b3e","f":{"id":"design-form","v":"bcdfee0bbf32737b","text":"Design"},"data":{"name":"page--intra-company","template":"\n<div class=\"dbps-body-with-actions\" style=\"grid-template-columns: 10rem auto 6rem;\">\n  <div class=\"dbps-body-with-actions__actions-placeholder _CSS-actions\">\n\n  <!-- <div class=\"dbps-body-with-actions__actions\" > -->\n    <div style=\"height:5rem;\"></div>\n    <!-- TODO: enable laufliste download -->\n    <!-- <ae-layout layout-id=\"5bc11b18-5c5a-49f2-a874-a755c4e90698\"></ae-layout> -->\n      <section class=\"_CSS-sidebar__item\">\n        <div class=\"_CSS-sidebar__header\">\n          Suche\n        </div>\n        <ae-layout layout-id=\"f66a2fef-e019-4cc3-a3ce-9d6e1e16a7ab\"\n                  :param-disable-sort=\"true\" \n                  :param-disable-filter=\"true\" \n                  :param-hide-search-icon=\"true\"\n                  :param-document=\"document\"\n                  @filter=\"controller.setFilterString('search', $event)\"\n                  param-list-form-id=\"275b807f-7dbb-4351-b731-669e275fa97d\"\n        ></ae-layout>\n\n      </section>\n      <section class=\"_CSS-sidebar__item\" v-if=\"locals.project\">\n        <div class=\"_CSS-sidebar__header\">\n          Filme\n        </div>\n \n        <div class=\"_CSS-filter\" :class=\"{ '_CSS-filter--active': locals.filters.movie == null }\" @click=\"controller.resetFilter('movie')\">Alle</div>\n        <template v-if=\"locals.project.data.movies.length > 1\">\n          <ae-design class=\"_CSS-filter\" name=\"title\" v-for=\"movie in locals.project.data.movies\" :document=\"movie\" @click.native=\"controller.setFilterString('movie', 'data.movie.id:' + movie.id)\" :class=\"{ '_CSS-filter--active': locals.filters.movie === 'data.movie.id:' + movie.id }\"></ae-design>\n        </template>\n      </section>\n      \n\n      <section class=\"_CSS-sidebar__item\" v-if=\"locals.movies\">\n        <div class=\"_CSS-sidebar__header\">\n          Rollen\n        </div>\n \n        <div class=\"_CSS-filter\" :class=\"{ '_CSS-filter--active': locals.filters.roles == null }\" @click=\"controller.resetFilter('roles')\">Alle</div>\n        \n        <template v-for=\"movie in locals.movies\" v-if=\"movie\">\n          <template v-if=\"movie.data.roles.length > 1\">\n            <ae-design class=\"_CSS-filter\" name=\"title\" v-for=\"role in movie.data.roles\" :document=\"role\" @click.native=\"controller.setFilterString('roles', 'data.roles:' + role.id)\" :class=\"{ '_CSS-filter--active': locals.filters.roles === 'data.roles:' + role.id }\"></ae-design>\n          </template>\n        </template>\n      </section> \n    <!-- </div> -->\n  </div>\n  <ae-layout \n    style=\"min-width:950px;\"\n    v-if=\"locals.applicationsFolder && locals.applicationsFolder.id, locals.preselectionFolder && locals.preselectionFolder.id, locals.shortlistFolder && locals.shortlistFolder.id\"\n    layout-id=\"df78a07d-3d55-466b-8375-03a27019af60\"\n    :param-column-root-document-ids=\"[locals.applicationsFolder && locals.applicationsFolder.id, locals.preselectionFolder && locals.preselectionFolder.id, locals.shortlistFolder && locals.shortlistFolder.id]\"\n    :param-documents-filters=\"[controller.filterString, controller.filterString, controller.filterString]\"\n    :param-column-designs=\"['board-title', 'board-title', 'board-title']\"\n    :param-column-design-params=\"{ showSettingsButton: true }\"\n    param-ref-field-name=\"models\"\n    param-action-on-transition=\"clone\"\n    :param-commands-on-clone=\"[null, 'a-uuid-for-vorauswahl-cloning', 'a-uuid-for-shortlist-cloning']\"\n    :param-disable-remove=\"[true, false, false]\"\n    param-compare-field-path=\"data.requestApplication.id\"\n    param-button-class-settings=\"dbps-button\"\n    :param-empty-designs=\"locals.emptyDesigns\"\n    >\n  </ae-layout>\n\n</div>\n\n","css":"._CSS {\n  display: flex;\n  flex-flow: column;\n}\n\n._CSS-button-download {\n  padding: 1rem;\n}\n\n._CSS-actions {\n  display: flex;\n  flex-flow: column;\n  flex: 1;\n\n  overflow: hidden;\n}\n\n._CSS-sidebar__item {\n  border-bottom: 1px solid #ddd;\n  margin: 0 0 1em;\n  padding: 0 0 1em;\n\n  width: 100%;\n  min-width: 0;\n}\n\n._CSS-sidebar__header {\n  font-size: 1.2em;\n  letter-spacing: 0.05em;\n  margin: 0 0 1em;\n  text-transform: uppercase;\n}\n\n._CSS-filter {\n  margin: 0 0.5em 0.5em 0;\n  user-select: none;\n  border: 1px solid #232323;\n  border-radius: 0.2em;\n  cursor: pointer;\n  display: inline-block;\n  letter-spacing: 0.05em;\n  padding: 0.1em 0.8em;\n  text-transform: uppercase;\n  word-break: break-all;\n  white-space: pre-line !important;\n  min-width: 0;\n  width: 100%;\n}\n\n._CSS-filter--active {\n  background: rgba(43,179,148,0.6);\n  color: #fff;\n  border-color: #2BB394\n}\n\n\n._CSS-search__input {\n    background: #fff;\n    border: 1px solid #fff;\n    border-radius: 0.2em;\n    color: #232323;\n    font-size: 16px;\n    padding: 0.1em 2em 0.1em 0.8em;\n    width: 100%;\n}","controller":"class Controller {\n  async init() {\n    locals.filters = {\n      'movie': null,\n      'roles': null,\n      'search': null,\n    }\n\n    locals.emptyDesigns = ['', 'board--empty-state', 'board--empty-state']\n    locals.applicationsFolder = null\n    locals.preselectionFolder = null\n    locals.shortlistFolder = null\n\n    locals.applicationsFolder = await this._getFolder('9c63f632-9e40-4abb-aa1a-f4a02110a97f')\n    locals.preselectionFolder = await this._getFolder('61ccaf6b-af84-4908-aa73-785dffd83c5f')\n    locals.shortlistFolder = await this._getFolder('9927c3c7-8ce4-4c25-bcec-3385cf1370db')\n\n    locals.project = await Aeppic.get(document.p)\n\n    locals.movies = await Aeppic.getAll(locals.project.data.movies)\n\n    this.subscribeEmptyStateConfiguration(locals.preselectionFolder, locals.shortlistFolder)\n \n    // this.updatePreselectionEmptyDesigns()\n  }\n\n  // updatePreselectionEmptyDesigns() {\n  //   Aeppic.watch(locals.preselectionFolder, (document, reason) => {\n  //     const newEmptyDesign = document.data.models.length === 0 ? 'board--empty-state' : ''\n  //     locals.emptyDesigns.splice(2, 1, newEmptyDesign)\n  //   })\n  // }\n\n  subscribeEmptyStateConfiguration(preselection, shortlist) {\n    const changeEmptyDesign = (document, indexToReplace) => {\n      if (!document) {\n        return\n      }\n\n      if (document.data.verified) {\n        locals.emptyDesigns.splice(indexToReplace, 1, '')\n      } else {\n        locals.emptyDesigns.splice(indexToReplace, 1, 'board--empty-state')\n      }\n    }\n\n    Aeppic.subscribe(`p:${preselection.id} f.id:1f08e101-d725-4d4c-af63-66cfab892ef3`, (documents) => changeEmptyDesign(documents[0], 1))\n    Aeppic.subscribe(`p:${shortlist.id} f.id:c62aefaf-0d57-4b05-94ce-e0b8c97c46e8`, (documents) => changeEmptyDesign(documents[0], 2))\n  }\n\n  async setFilterString(key, value) {\n    console.log('setting filter to: ', key, value)\n    locals.filters[key] = value\n  }\n\n  async resetFilter(key) {\n    console.log('resetFilter', key)\n\n    if (key) {\n      locals.filters[key] = null\n    } else {\n      locals.filters = {}\n    }\n  }\n\n  get filterString() {\n    let filter = ''\n\n    for (const key in locals.filters) {\n      if (locals.filters[key] == null) {\n        continue\n      }\n\n      filter += ` ${locals.filters[key]}`\n    }\n\n    return filter\n  }\n\n  // setSearchFilter(value) {\n  //   if (value == null || value === '') {\n  //     this.resetFilter('search')\n  //     return\n  //   }\n\n  //   this.setFilterString('search', 'data.name:' + value + '*')\n  // }\n\n  async _getFolder(formId) {\n    return Aeppic.findOne(`p:${document.id} f.id:${formId}`)\n  }\n}\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2018-05-25T10:46:47+00:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","from":"","client":"server"},"modified":{"at":"2020-10-13T10:11:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1602583892024,"ct":1602583892023,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","4551c597-7595-4858-8b7f-207a7fb15b3e"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"0f3c8f8a-ba55-490e-8576-af7c6f4541bf","v":"0325e828ec914c4a","previous":{"v":"b5dec080c820bea2"},"p":"c69a0c1c-6c53-40c2-87e8-5ace866bf1df","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"page--keeptrack","template":"","css":"","controller":"class Controller {\n  async init() {\n    const route = await Aeppic.get('c121fbba-e7d9-4f9b-80dc-cb6f4816d086')\n\n    if (packages.window.location.href.includes(route.data.route)) {\n      Aeppic.reload()\n    }\n\n    const isVerwalter = (await Aeppic.Commands.execute('950f35d3-95ba-4d5a-a164-0074c767d600', document, { Account: Aeppic.Account })).value\n\n    if (!isVerwalter) {\n      Aeppic.navigateTo(route.data.route)\n      Aeppic.reload()\n    }\n  }\n}","packages":[{"id":"10843fbf-4f0c-416b-be7d-42d6bbd0ae68","v":"d4ce6dec568c3dc1","text":"Window"}],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-04-08T11:53:50+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-04-14T13:27:21+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1649942841095,"ct":1649418830051,"a_depth":4,"a":["apps","8f8c9ed7-a7ed-4150-b162-92d6f19a05b0","526d9710-b2bd-4fa7-9341-d780ead102c1","c69a0c1c-6c53-40c2-87e8-5ace866bf1df"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"ad69e839-600e-440a-a9fe-88f21a110e74","v":"36752005cd428d50","cloneOf":{"id":"0f3c8f8a-ba55-490e-8576-af7c6f4541bf","v":"0325e828ec914c4a","text":"page--keeptrack"},"originalCloneOf":{"id":"0f3c8f8a-ba55-490e-8576-af7c6f4541bf","v":"0325e828ec914c4a","text":"page--keeptrack"},"previous":{"v":"d1dc13068b87b216"},"p":"c69a0c1c-6c53-40c2-87e8-5ace866bf1df","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"page--keeptrack-demo","template":"<div class=\"w-full max-w-3xl bg-white p-4 rounded-md mx-auto shadow flex flex-col\">\n  <header class=\"text-xl font-bold mb-4 mx-auto\">\n    Willkommen bei der Keep Track Testversion {{ Aeppic.ProfilePage?.data.name }}!\n  </header>\n\n  <div class=\"max-w-2xl mx-auto\">\n    <div>\n      Sie befinden sich aktuell in der Verwaltungsoberfläche von Keep Track. Hier können Sie die Wartungspläne und Stammdaten einsehen sowie ändern.\n    </div>\n  </div>\n\n  <caption class=\"text-lg font-bold mt-6 mb-4\">\n    Wartungsansicht\n  </caption>\n\n  <div class=\"flex flex-col gap-2 max-w-2xl mx-auto\">\n    <div>\n      Die Wartungsansicht ist eine für Mobilgeräte und Tablets optimierte Oberfläche, welche von den Service Mitarbeiter:innen bedient wird.\n    </div>\n    <div>\n      Für diesen Bereich gibt es sowohl eine eigene URL, als auch gesonderte Anmeldedaten. \n    </div>\n\n    <div class=\"mt-4\">\n      <div class=\"flex gap-1 mb-1\">\n        <span class=\"font-bold mr-2\">\n          <ae-icon class=\"fa fa-exclamation-triangle text-amber-500\"></ae-icon>\n        </span> \n\n        <div>\n        Zur einfachen Nutzung empfehlen wir Ihnen eine der folgenden Möglichkeiten: \n        </div>\n      </div>\n\n      \n      <ul class=\"list-inside\tlist-disc\">\n        <li>\n          ein anderes Gerät/Smartphone benutzen\n        </li>\n        <li>\n          ein Privates/Inkognito Fenster öffnen\n        </li>\n        <li>\n          oder aber sich einfach abmelden und mit den Wartungs-Anmeldedaten anmelden\n        </li>\n      </ul>\n    </div>\n  </div>\n\n  <!-- <caption class=\"font-bold mt-4 mb-2\"> -->\n\n  <div class=\"mt-4 mb-2\">\n    <table class=\"mx-auto\">\n      <caption class=\"text-slate-500 dark:text-slate-400 pt-4 text-xs caption-bottom\">\n        Tabelle: Wartungs-Anmeldedaten\n      </caption>\n      <tbody>\n        <tr>\n          <td :class=\"locals.classes.th\">\n            URL\n          </td>\n          <td :class=\"locals.classes.td\">\n            <a target=\"_blank\" :href=\"locals.maintenanceUrl\">{{locals.maintenanceUrl}}</a>\n          </td>\n        </tr>\n        <tr>\n          <td :class=\"locals.classes.th\">\n            Anmeldename\n          </td>\n          <td :class=\"locals.classes.td\" class=\"font-mono\">\n            {{ locals.maintenanceAccount?.data.name }}\n          </td>\n        </tr>\n        <tr>\n          <td :class=\"locals.classes.th\">\n            Passwort\n          </td>\n          <td :class=\"locals.classes.td\" class=\"font-mono\">\n            <button v-if=\"!locals.show\" class=\"xae-button ae-button--small text-xs\" @click.stop=\"locals.show= !locals.show\">\n              <ae-icon class=\"far fa-eye\"></ae-icon> Anzeigen\n            </button>  \n            <div v-if=\"locals.show\"> \n            ccXPM2\n            </div>\n          </td>\n        </tr>\n      </tbody>\n    </table>\n  </div>\n\n</div> \n\n","css":"","controller":"class Controller {\n  async init() {\n    locals.classes = {\n      th: 'border font-medium p-4 pl-8 pt-3 pb-3 text-slate-400 text-left',\n      td: 'border border-slate-200 p-4 pl-8 text-slate-600',\n    } \n    locals.maintenanceUrl = ''\n    locals.maintenanceAccount = null\n\n    const route = await Aeppic.get('c121fbba-e7d9-4f9b-80dc-cb6f4816d086')\n\n    if (packages.window.location.href.includes(route.data.route)) {\n      Aeppic.reload()\n      return\n    }\n\n    locals.maintenanceUrl = `${packages.window.location.origin}${route.data.route}`\n\n    const isVerwalter = (await Aeppic.Commands.execute('950f35d3-95ba-4d5a-a164-0074c767d600', document, { Account: Aeppic.Account })).value\n\n    if (!isVerwalter) {\n      Aeppic.navigateTo(route.data.route)\n      Aeppic.reload()\n      return\n    }\n\n    locals.maintenanceAccount = await Aeppic.findOne(`a:${document.id} f.id:account data.disabled:false data.name:firma*`)\n  }\n}","packages":[{"id":"10843fbf-4f0c-416b-be7d-42d6bbd0ae68","v":"d4ce6dec568c3dc1","text":"Window"}],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-04-04T13:43:47+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-04-05T10:54:41+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1680692081309,"ct":1680615827118,"a_depth":4,"a":["apps","8f8c9ed7-a7ed-4150-b162-92d6f19a05b0","526d9710-b2bd-4fa7-9341-d780ead102c1","c69a0c1c-6c53-40c2-87e8-5ace866bf1df"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"01c9bd22-204a-411d-bb20-9b7b0439d871","v":"initial","p":"34c80ca6-34a4-48e8-abdd-d9b13ff25cff","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"page--left","template":"<ae-design name=\"interactive-plan\" :document=\"document\"></ae-design>\n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-04-28T09:16:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2022-04-28T09:16:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1651137392950,"ct":1651137392950,"a_depth":4,"a":["apps","86189c5a-b9f4-445a-879f-d94574960df0","15292d56-6806-4263-b6d0-9194687203e1","34c80ca6-34a4-48e8-abdd-d9b13ff25cff"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","5acfd7a2-33e4-498a-9150-71e1ab772bfc","20c92864-6a81-4006-96f9-b78f473cd129","17c3a5d3-90ba-4592-961b-0800873ef9c1"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2018-04-18T15:39:26+02:00","by":"","client":"server","from":""},"ct":1524058766509,"data":{"applies":"","controller":"class Controller {\n  async init() {\n    locals.view = 'project'\n\n    locals.sort = {\n      field: 'data.name'\n    }\n\n    locals.showDoneProjects = false\n    locals.showDetails = false\n\n    await Aeppic.nextRenderPass()\n\n    const canEdit = await Aeppic.canEdit(document)\n\n    if (Aeppic.Account && Aeppic.Account.data.isGroupAccount === true) {\n      // a group account can only edit if it got rights assigned. Unsecured folders are not editable.\n      const editable = await Aeppic.edit(document)\n      const isLocked = editable.hasInheritedLock() || editable.hasLock()\n\n      if (isLocked) {\n        locals.canEdit = canEdit === true\n      } else {\n        locals.canEdit = false\n      }\n    } else {\n      locals.canEdit = canEdit\n    }\n\n    if (locals.canEdit) {\n      locals.tasksRequest = await this._newTasksRequest()\n\n      locals.newTask = this.newTask()\n    }\n  }\n\n  async _newTasksRequest() {\n    return Aeppic.new('7ee39da0-908a-4db7-8bdb-53f73fedb61b', document.id)\n  }\n\n  async newTask(name) {\n    const task = await Aeppic.new('3d456c38-6282-416e-8c5e-7d20b0517a6e', document.id)\n\n    const taskForm = await Aeppic.getFormForDocument(task)\n    const assigneesParams =  taskForm.getFieldControlParams('verantwortlich')\n\n    if (assigneesParams.defaultValueCommand) {\n      const result = await Aeppic.Commands.execute(assigneesParams.defaultValueCommand, document, { account: Aeppic.Account })\n\n      if (result.ok && result.value) {\n        task.addReference('verantwortlich', result.value)\n      }\n    }\n\n    if (name) {\n      task.data.name = name\n    }\n\n    return task\n  }\n\n  async createTasksBasedOnRequest() {\n    if (!locals.canEdit) {\n      return\n    }\n\n    const editableDocument = await Aeppic.edit(document)\n\n    const userinput = locals.tasksRequest.data.aufgaben\n    const taskNames = userinput.split(/\\n/).filter(n => n !== '')\n\n    for (const name of taskNames) {\n      const task = await this.newTask(name)\n      await this._saveTask(editableDocument, task)\n    }\n\n    Aeppic.save(editableDocument)\n\n    locals.tasksRequest = await this._newTasksRequest()\n  }\n\n  // async saveBulkTasks() {\n  //   const taskNames = locals.bulkTasks.split(/\\n/).filter(n => n !== '')\n\n  //   for (const name of taskNames) {\n  //     const task = await this.newTask(name)\n  //     this._saveTask(task)\n  //   }\n\n  //   Aeppic.save(document)\n\n  //   locals.bulkTasks = ''\n  // }\n\n  // async saveNewTask() {\n  //   this._saveTask(locals.newTask)\n  //   Aeppic.save(document)\n\n  //   locals.newTask = this.newTask()\n  // }\n\n  async _saveTask(editableDocument, task) {\n    Aeppic.save(task)\n\n    const form = await Aeppic.getFormForDocument(editableDocument)\n    const params = form.getFieldControlParams('aufgaben')\n\n    editableDocument.addReference('aufgaben', task, {\n      addToBeginning: params.addToBeginning\n    })\n  }\n\n  minColumnWidth(preferedWidth) {\n    if (locals.view === 'card--wide') { \n      return '1fr'\n    }\n\n    if (preferedWidth) {\n      return preferedWidth\n    }\n\n    return 'max-content'\n  }\n\n  get maxColumnWidth() {\n    if (Aeppic.Device === 'Phone' || locals.view === 'card--wide') {\n      return '1fr'\n    }\n\n    return '30rem'\n  }\n\n  toolbarEvent(eventType) {\n    if (eventType === 'save') {\n      $refs.form.save()\n      $refs.form.resetEdits()\n\n      return\n    }\n    if (eventType === 'reset') {\n      $refs.form.resetEdits()\n\n      return\n    }\n\n    if (eventType === 'view_details_true') {\n      locals.showDetails = true\n      return\n    }\n    if (eventType === 'view_details_false') {\n      locals.showDetails = false\n      return\n    }\n    if (eventType === 'view_done_true') {\n      locals.showDoneProjects = true\n      return\n    }\n    if (eventType === 'view_done_false') {\n      locals.showDoneProjects = false\n      return\n    }\n  }\n}\n","css":"._CSS {\n  overflow: hidden !important;\n}\n\n._CSS-body-container {\n  padding: var(--bp-page-content-padding);\n  overflow: scroll;\n  height: 100%;\n}\n._CSS-body {\n  max-width: var(--ae-page-max-width);\n  margin: auto;\n}\n\n._CSS-header {\n  color: gray;\n  font-size: 0.9em;\n  font-weight: bold;\n}\n\n._CSS-header ~ ._CSS-header {\n  margin-top: 3em;\n}\n\n._CSS-header ~ * {\n  margin-top: 1em;\n}\n\n._CSS-new-tasks-container {\n  max-width: 600px;\n}\n\n._CSS-new-tasks {\n  display: flex;\n  flex-wrap: wrap;\n}\n\n._CSS-new-tasks__input {\n  flex: 1;\n}\n\n._CSS-button {\n  padding: 4px 8px;\n  margin: 8px 0; \n  display: flex;\n  justify-content: center;\n  align-items: center;\n  border-radius: 2px;\n  border: 1px solid hsl(0, 0%, 76%);\n  background: white;\n  color: hsl(0, 0%, 34%);\n  height: 28px;\n  cursor: pointer;\n}\n\n","name":"page--left","packages":[],"template":"<div class=\"_CSS-body-container\" @toolbar=\"controller.toolbarEvent($event.detail)\">\n  <div class=\"_CSS-body\">\n\n<!-- TODO: enable again -->\n    <!-- <div style=\"display:flex;padding:0 var(--ae-size-2)\" v-if=\"Aeppic.Account && Aeppic.Account.data.allowDevMode\">\n      <div class=\"ae-button ae-button--secondary\" @click.stop=\"locals.view = 'report'\">\n        Bericht\n      </div>\n\n      <div class=\"ae-button ae-button--secondary\" @click.stop=\"locals.view = 'project'\">\n        Projekt\n      </div>\n    </div> -->\n\n    <template v-if=\"locals.view === 'project'\">\n      <ae-list \n        :root-document-id=\"document.id\"\n        type=\"children\"\n        filter=\"f.id:3ef82fa1-425d-4592-b120-1a6fc967802d\"\n        sort=\"data.bis\"\n        list-id=\"208b6d2d-4198-45a7-b716-b697e8e39d39\"\n        @selected=\"Aeppic.drillInto($event.id)\"\n        param-design=\"progress-circle\"\n        ></ae-list>\n \n      <ae-list \n        query-id=\"cb73486b-3c55-4cc7-b0d8-343045721940\"\n        list-id=\"2dab232c-2c8a-4aa4-b3f9-6023a7116161\"\n        :param-by=\"locals.by\"\n        :param-asc=\"locals.asc\"\n        :filter=\"controller.statusToFilter\"\n        :root-document-id=\"document.id\"\n        @selected=\"Aeppic.drillInto($event.id)\"\n        :param-min-column-width=\"controller.minColumnWidth('30rem')\"\n        :param-max-column-width=\"controller.maxColumnWidth\"\n        param-title=\"Teilprojekte\"\n        :param-hide-empty=\"true\"\n        param-design=\"card--wide,card\"\n        :param-design-params=\"{ forceShowDetails: locals.showProjectDetails }\"\n        :sort=\"locals.sort\"\n        ></ae-list>\n\n      <ae-list \n        v-if=\"locals.showDoneProjects\"\n        query-id=\"1452da1d-76cf-4b00-b110-b6915ee2ff36\"\n        list-id=\"2dab232c-2c8a-4aa4-b3f9-6023a7116161\"\n        :root-document-id=\"document.id\"\n        @selected=\"Aeppic.drillInto($event.id)\"\n        :param-min-column-width=\"controller.minColumnWidth('30rem')\"\n        :param-max-column-width=\"controller.maxColumnWidth\"\n        param-title=\"Erledigte Teilprojekte\"\n        param-design=\"card--wide,card\"\n        :param-design-params=\"{ forceShowDetails: locals.showProjectDetails }\"\n        :sort=\"locals.sort\"\n        \n        ></ae-list>\n\n      <div class=\"_CSS-new-tasks-container\">\n        <div v-if=\"locals.tasksRequest\" class=\"_CSS-new-tasks\"> \n          <ae-form  :document=\"locals.tasksRequest\"\n                    :watch=\"false\"\n                    @data-changed=\"Aeppic.commit(locals.tasksRequest)\"\n                    class=\"_CSS-new-tasks__input\"\n          ></ae-form>\n          <div class=\"ae-form-cell ae-control-container\">\n            <div class=\"ae-form-cell__label\">&nbsp;</div>\n            <button class=\"ae-button ae-button--secondary\" @click=\"controller.createTasksBasedOnRequest()\">\n              <span v-if=\"locals.tasksRequest.data.containsNewlines\">\n                Mehrere Aufgaben speichern\n              </span>\n              <span v-else>\n                Aufgabe speichern\n              </span>\n            </button>\n          </div>\n        </div>\n      </div>\n      <ae-form\n        ref=\"form\"\n        :document=\"document\"\n        layout-id=\"8974ef10-ff5f-4584-8299-59979915d2b6\"\n        :readonly=\"!locals.canEdit\"\n        :param-no-add=\"true\"\n        @data-changed=\"Aeppic.commit(document)\"\n      ></ae-form>\n    </template>\n    <ae-layout \n              v-else-if=\"locals.view === 'report'\"\n              layout-id=\"5be16a98-bdc2-4587-8f72-57cd43ca0292\"\n              :param-document=\"document\"\n              :param-options=\"{ commandId: '08a4d3e9-c2c0-44eb-a688-45f58652d1da', formId: '3d456c38-6282-416e-8c5e-7d20b0517a6e', queryString: 'data.erledigt:false' }\"\n    ></ae-layout>\n  </div>\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"44303cec40b3e1fa"},"id":"03fe10ac-a9f6-4445-8c0d-96ffef534762","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-07-03T11:57:31+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"17c3a5d3-90ba-4592-961b-0800873ef9c1","previous":{"v":"9bb8a6b160d99233"},"stamps":[],"t":1751543851168,"v":"0533509846deca6e"},{"id":"16b865fe-3540-4942-a344-b6a43323e799","v":"bf28192e972d8f4b","previous":{"v":"d447ed3a5594b408"},"p":"e3e2b913-1791-461b-9d80-be3681488a04","f":{"id":"design-form","v":"e37099c040ec46e9","text":"Design"},"data":{"name":"page--left","template":"<div class=\"_CSS-body-container\" @toolbar=\"controller.toolbarEvent($event.detail)\">\n  <div class=\"_CSS-body\">\n    <ae-list  list-id=\"2e798091-303f-406b-a42a-93aa1cd8425c\"\n              query-id=\"f812861f-68c8-4818-9972-be7b5474c9b1\"\n              filter=\"f.id:e2f6fe5a-cdab-41ed-a1b2-ad342ee670d1\"\n              sort=\"data.name\"\n              :root-document-id=\"document.id\"\n              @selected=\"Aeppic.drillInto($event, { mode: 'dialog' })\"\n              :param-design-params=\"{ hidePath: true }\" \n    ></ae-list>\n  </div>\n</div>\n ","css":"._CSS-body-container {\n  padding: var(--bp-page-content-padding);\n  xpadding-top: 12px;\n\n  /* full page */\n  position: absolute;\n  xtop: 48px;\n  top: 0;\n  bottom: 0;\n  left: 0;\n  right: 0;\n}\n\n._CSS-body {\n  xmax-width: 1000px;\n  margin: auto;\n}\n\n._CSS-body__column {\n  flex: 1;\n  min-width: 0;\n\n  display: flex;\n  flex-direction: column;\n}\n","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-05-10T13:58:46+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-10-07T08:51:52+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1633596712329,"ct":1620655126130,"a_depth":4,"a":["apps","d91078cc-874b-4410-b837-b81f47687fe9","6b513a0c-498f-4eac-804d-aa8e0e99caac","e3e2b913-1791-461b-9d80-be3681488a04"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"1d78a256-3e69-41b0-bf7f-bf0d1c998924","v":"bb089ff8f9871e17","previous":{"v":"c9e58de796f65536"},"p":"a88e6030-17ca-4fe7-a1c0-128175a568ab","f":{"id":"design-form","v":"24435d748c76f819","text":"Design"},"data":{"name":"page--left","template":"<ae-list \n  style=\"height:100%\"\n  v-if=\"locals.canEdit != null && locals.resources.array.length\"\n  list-id=\"c53687df-2cde-4630-9820-1ae540f6e11d\"\n  :documents=\"locals.appointments\"\n  param-title=\"Kalender\"\n  :param-calendars=\"locals.resources\"\n  :param-active-calendars-map=\"locals.activeResources.map\"\n  :param-document-to-calendar-mapper=\"(doc) => controller.mapDocumentToCalendar(doc)\"\n  :param-document=\"document\"\n  @calendar-remove=\"controller.removeCalendar($event)\"\n  @calendar-add=\"controller.addCalendar($event)\"\n  :param-readonly=\"!locals.canEdit\"\n></ae-list>\n","css":"","controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Termin: '941dad3f-07ee-401d-a7f5-244eba256937'\n    }\n\n    this.subscription = null\n\n    locals.appointments = []\n    locals.resources = { array: [], map: {} }\n    locals.activeResources = { array: [], map: {} }\n\n    const canEdit = await Aeppic.canEdit(document)\n    locals.canEdit = Aeppic.Account && Aeppic.Account.data.isGroupAccount === false && canEdit === true\n\n    locals.resources = await this.getResources()\n    locals.activeResources = await this.getResources()\n\n    this.subscribeResources()\n  }\n    \n  async getResources() {\n    const asArray = await Aeppic.getAll(data.resources)\n    const asMap = asArray.reduce((result, item) => {\n      result[item.id] = item\n      return result\n    }, {})\n\n    return {\n      array: asArray,\n      map: asMap,\n    }\n  }\n\n  subscribeResources() {\n    Aeppic.watch(document.id, async () => {\n\n      locals.resources = await this.getResources()\n      locals.activeResources = await this.getResources()\n      \n      await this.subscribeAppointments()\n    })\n  }\n\n  async subscribeAppointments() {\n    const search = `a:${document.id} f.id:${this.FORMS.Termin}`\n\n    const findOptions = {\n      size: 9999,\n      sort: 'data.start',\n    }\n\n    this.subscription = Aeppic.updateSubscription(this.subscription, search, findOptions, async (appointments) => {\n      locals.appointments = await Aeppic.getAll(appointments)\n    })\n  }\n\n  mapDocumentToCalendar(appointment) {\n    return appointment.p\n  }\n\n  async removeCalendar(calendar) {\n    const c = await Aeppic.get(calendar)\n    \n    console.log('remove', calendar, c)\n    \n    locals.activeResources.array = locals.activeResources.array.filter(r => r.id !== c.id)\n    locals.activeResources.map = Object.assign({}, locals.activeResources.map, { [c.id]: null })    \n  }\n  \n  async addCalendar(calendar) {\n    const c = await Aeppic.get(calendar)\n    \n    console.log('add', calendar,c )\n\n    locals.activeResources.array.push(c)\n    locals.activeResources.map = Object.assign({}, locals.activeResources.map, { [c.id]: c})    \n  }\n}\n\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-05-08T08:51:40+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2021-11-10T11:35:55+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1636544155241,"ct":1588927900758,"a_depth":4,"a":["apps","49babc91-9123-4d92-b850-ce4d10f0e1b4","b6b5ad5b-124f-4b1c-8f55-74294451a2ba","a88e6030-17ca-4fe7-a1c0-128175a568ab"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"1fdf2e9b-3413-4fde-b5da-b8328f96949d","v":"62ca22c6889cda47","previous":{"v":"c01d3068fd1d791b"},"p":"e46efc75-6f35-4c70-9bfb-d0317a53ed04","f":{"id":"design-form","v":"e37099c040ec46e9","text":"Design"},"data":{"name":"page--left","template":"<div class=\"_CSS-container\">\n  <div class=\"_CSS-list\">\n    <ae-list  list-id=\"2dab232c-2c8a-4aa4-b3f9-6023a7116161\"\n              query-id=\"f812861f-68c8-4818-9972-be7b5474c9b1\"\n              filter=\"f.id:e170bb6c-f326-446d-870a-ada9d9f67230\"\n              :root-document-id=\"document.id\"\n              @selected=\"Aeppic.drillInto($event)\"\n              :sort=\"locals.sort\"\n              :params=\"{ enableFilter: true, enableSearch: true, filterFields: 'data.closed', initialFilters: 'data.closed:false', minColumnWidth: '100%', gap: 'small' }\"\n    ></ae-list>\n  </div>\n</div>\n","css":"._CSS-container {\n  padding: var(--bp-page-content-padding);\n  height: 100%;\n}\n\n._CSS-list {\n  height: 100%;\n  margin: auto;\n  max-width: var(--ae-page-max-width);\n}","controller":"init() {\n  locals.sort = {\n    field: 'created.at',\n    descending: true\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-12-10T13:06:53+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-07-22T08:28:38+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1626942518950,"ct":1607605613384,"a_depth":4,"a":["apps","3fbe0efd-713a-457a-a34c-3a12aa19d6bb","0fb162f4-0f78-4c1e-aad2-43c27e6d98cb","e46efc75-6f35-4c70-9bfb-d0317a53ed04"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"28a528bd-ad0d-4038-8124-94274a4a3029","v":"0a76f2723a8e9dff","previous":{"v":"dbb116a41f68fc70"},"p":"8fef472f-9220-484b-99cd-bb80f208f795","f":{"id":"design-form","v":"e37099c040ec46e9","text":"Design"},"data":{"name":"page--left","template":"<div class=\"_CSS-container\">\n  <div class=\"_CSS-list\">\n    <ae-design name=\"closed-info\" :document-id=\"document.p\"></ae-design>\n    <!-- <h2>\n      Bewerbungen\n    </h2> -->\n    <!-- <ae-list  list-id=\"2dab232c-2c8a-4aa4-b3f9-6023a7116161\"\n              :documents=\"locals.applications\"\n              @selected=\"Aeppic.drillInto($event)\"\n              param-gap=\"small\"\n              :sort=\"locals.sort\"\n              :param-enable-sort=\"true\"\n              param-sort-fields=\"data.firstname,data.surname,data.agencyAbbreviation\"\n              :param-design-params=\"{ convertedFilesByApplicationId: locals.convertedFilesByApplicationId }\"\n    ></ae-list> -->\n    <ae-list  list-id=\"2dab232c-2c8a-4aa4-b3f9-6023a7116161\"\n              :documents=\"locals.applications\"\n              @selected=\"Aeppic.drillInto($event)\"\n              param-gap=\"small\"\n              :sort=\"locals.sort\"\n              :param-enable-sort=\"true\"\n              :param-enable-search=\"true\"\n              param-sort-fields=\"data.firstname,data.surname,data.agencyAbbreviation\"\n              param-design=\"selectable\"\n              param-title=\"Bewerbungen\"\n              :search-options=\"{ searchAllFields: true }\"\n              :param-selection-id=\"document.f.id\"\n              :param-design-params=\"{ designName: 'card', convertedFilesByApplicationId: locals.convertedFilesByApplicationId, selectionId: document.f.id }\"\n    ></ae-list>\n  </div>\n</div>\n\n\n","css":"._CSS-container {\n  padding: var(--bp-page-content-padding);\n}\n\n._CSS-list {\n  margin: auto;\n  max-width: var(--ae-page-max-width);\n}","controller":"async init() {\n  this.FORMS = {\n    Application: '009c0da4-718f-43d0-964a-647e30074d94',\n    File: '8bf0fb31-716d-4b76-98d8-b7349f1d7529',\n  }\n\n  locals.sort = {\n    field: 'created.at',\n    descending: true\n  }\n  locals.applications = []\n  locals.convertedFilesByApplicationId = {}\n\n  Aeppic.subscribe(`a:${document.id} f.id:${this.FORMS.File} data.name:converted`, { size: 9999 }, (convertedFiles) => {\n    const result = convertedFiles.reduce((result, item) => {\n      const applicationId = item.a[item.a_forms.findIndex(a_form => a_form === this.FORMS.Application)]\n\n      if (!result[applicationId]) {\n        result[applicationId] = []\n      }\n      result[applicationId].push(item)\n      return result\n    }, {})\n\n\n    locals.convertedFilesByApplicationId = result\n  })\n\n  Aeppic.subscribe(`p:${document.id} f.id:${this.FORMS.Application} data.done:true`, { size: 9999 }, (applications) => {\n    locals.applications = applications\n  })\n}\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-06-16T13:55:35+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-07-22T08:36:16+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1626942976229,"ct":1623851735147,"a_depth":4,"a":["apps","3fbe0efd-713a-457a-a34c-3a12aa19d6bb","0fb162f4-0f78-4c1e-aad2-43c27e6d98cb","8fef472f-9220-484b-99cd-bb80f208f795"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"2dff03d7-60f5-4944-9bc3-b3c202b04dd3","v":"initial","p":"e170bb6c-f326-446d-870a-ada9d9f67230","f":{"id":"design-form","v":"e37099c040ec46e9","text":"Design"},"data":{"name":"page--left","template":"<ae-design v-if=\"data.link === undefined\" name=\"roles\" :document=\"document\" :params=\"params\" v-on=\"$listeners\"></ae-design>\n<ae-design v-else name=\"applications\" :document=\"document\"  :params=\"params\" v-on=\"$listeners\"></ae-design>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-06-16T13:55:34+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-06-16T13:55:34+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1623851734712,"ct":1623851734712,"a_depth":4,"a":["apps","3fbe0efd-713a-457a-a34c-3a12aa19d6bb","0fb162f4-0f78-4c1e-aad2-43c27e6d98cb","e170bb6c-f326-446d-870a-ada9d9f67230"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"33a7af41-4650-4920-af27-747f01b5d42d","v":"774352d9f143861c","cloneOf":{"id":"749a568f-bf70-4336-a174-dccb891bb683","v":"6db8f493e3203793","text":"page--left"},"originalCloneOf":{"id":"749a568f-bf70-4336-a174-dccb891bb683","v":"6db8f493e3203793","text":"page--left"},"previous":{"v":"85bb63f25ee697ae"},"p":"a04c8913-db48-4e80-b20d-0f3cc17a778c","f":{"id":"design-form","v":"74db9b6ed94b41d9","text":"Design"},"data":{"name":"page--left","template":"<div class=\"_CSS-list-container\"\r\n      @drop.prevent=\"controller.drop($event)\"\r\n      @dragover.prevent=\"controller.dragover($event)\"\r\n      @toolbar.prevent=\"controller.toolbarEvent($event.detail)\"\r\n  >\r\n  <!-- DEV: listen-id wieder zurückpacken\r\n  <button @click.stop=\"controller.foo()\">\r\n    create\r\n  </button>\r\n  list-id=\"2dab232c-2c8a-4aa4-b3f9-6023a7116161\" -->\r\n\r\n  <ae-list  class=\"_CSS-list\"\r\n            list-id=\"caa6a6cc-6fd4-442d-9ca0-c7dc21180e6d\"\r\n            :root-document-id=\"document.id\"\r\n            query-id=\"8935286a-0393-4e32-a812-770ce19b095a\"\r\n            :params=\"{ fileFormIds: ['dbee6e16-d63a-493c-bba6-505f79918f9f', 'cb2adf77-7636-41a7-9a16-1610b06fa91e'], folderFormId: 'a04c8913-db48-4e80-b20d-0f3cc17a778c', view: params.overwriteView || locals.view, mix: locals.mixFilesAndFolders }\"\r\n            :sort=\"locals.sort\"   \r\n            :search-options=\"{ size: 999999 }\"\r\n  ></ae-list>\r\n  <template v-if=\"locals.referencedFilesQuery\">\r\n    <ae-list  class=\"_CSS-list\"\r\n              list-id=\"caa6a6cc-6fd4-442d-9ca0-c7dc21180e6d\"\r\n              :search=\"locals.referencedFilesQuery\"\r\n              :params=\"{ fileFormId: 'dbee6e16-d63a-493c-bba6-505f79918f9f', folderFormId: 'a04c8913-db48-4e80-b20d-0f3cc17a778c', view: params.overwriteView || locals.view, mix: locals.mixFilesAndFolders, hideEmpty: true, title: 'Verknüpfte Dateien', designParams: { showLocation: true }}\"\r\n              :sort=\"{ field: 'modified.at', descending: true }\"\r\n              :search-options=\"{ size: 999999 }\"\r\n    ></ae-list> \r\n  </template>\r\n</div>\r\n<!-- \r\n<ae-popup ref=\"pageMenu\" placement=\"bottom-start\">\r\n\t<div class=\"_CSS-ae-menu\" slot=\"popup\" slot-scope=\"menu\">\r\n\t\t<ul class=\"_CSS-ae-menu-list\" style=\"min-width: 10rem;\">\r\n\t\t\t<li class=\"_CSS-ae-menu-item\" @click.stop=\"$refs.selectionHandler.$emit('move-here');menu.close()\">Auswahl hierhin verschieben</li>\r\n\t\t</ul>\r\n\t</div>\r\n</ae-popup> -->\r\n\r\n\r\n<ae-layout  layout-id=\"f5a5c2a0-bf9c-4b44-b05b-8e545156df10\"\r\n            :param-show-ui=\"false\"\r\n            :param-document=\"document\"\r\n            param-file-form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\"\r\n            param-file-form-field=\"datei\"\r\n            param-file-name-to-field=\"name\"\r\n            param-directory-form-id=\"a04c8913-db48-4e80-b20d-0f3cc17a778c\"\r\n            :param-save-new-documents=\"true\"\r\n            ref=\"dropHandler\"\r\n></ae-layout> \r\n\r\n<ae-layout  layout-id=\"8c5c60ec-b7d1-4e46-a9ca-180c3c153179\"\r\n            :param-page-document-id=\"document.id\"\r\n            :param-show-ui=\"false\"\r\n            ref=\"selectionHandler\"\r\n            @selected-documents=\"locals.selectionHasDocuments = true\"\r\n            @unselected-documents=\"locals.selectionHasDocuments = false\"\r\n></ae-layout>\r\n","css":"._CSS {\r\n  flex-direction: column;\r\n  flex:1;\r\n  display: flex;\r\n}\r\n\r\n._CSS-commands-bar {\r\n  padding: 5px;\r\n  display: flex;\r\n  justify-content: space-between;\r\n  border-bottom: var(--ae-border-width) solid var(--ae-border-color);\r\n  margin-bottom: 12px;\r\n  flex-shrink: 0;\r\n  background: var(--ae-ui-background);\r\n}\r\n\r\n._CSS-commands-bar::after {\r\n  content:'';\r\n  position:absolute;\r\n  height:4px;\r\n  left:0;\r\n  bottom:-0px;\r\n  right:0;\r\n  border-top: 1px solid rgba(0,0,0,0.2);\r\n  display: block;\r\n}\r\n\r\n._CSS-commands {\r\n  display: grid;\r\n  grid-gap: var(--ae-size-3);\r\n  grid-auto-columns: auto;\r\n  grid-auto-flow:column;\r\n}\r\n\r\n\r\n._CSS-list-container {\r\n  flex:1;\r\n}\r\n\r\n._CSS-list {\r\n  overflow-x: auto;\r\n  padding: var(--bp-page-content-padding);\r\n}\r\n\r\n\r\n._CSS-ae-menu {\r\n  background: rgb(250,250,250);\r\n  font-size: 1rem;\r\n  border: 1px solid rgb(200,200,200); \r\n}\r\n._CSS-ae-menu-list {\r\n  list-style: none;\r\n  padding: 4px;\r\n  margin: 0;\r\n}\r\n._CSS-ae-menu-item {\r\n  padding:4px; \r\n  margin:0;\r\n  font-size: smaller;\r\n}\r\n._CSS-ae-menu:focus {\r\n  outline: none;\r\n}\r\n._CSS-ae-menu-item:hover {\r\n  background: #d8d8d8;\r\n  cursor: pointer;\r\n}","controller":"class Controller {\r\n  async init() {\r\n    locals.selectionHasDocuments = false\r\n    locals.mixFilesAndFolders = false\r\n    locals.view = 'grid'\r\n    locals.referencedFilesQuery = ''\r\n    locals.sort = this.getSorting()\r\n\r\n    if (Aeppic.LocalStorage.isAvailable) {\r\n      locals.mixFilesAndFolders = Aeppic.LocalStorage.getValue('bp-pref-ordner-page-mix') || locals.mixFilesAndFolders\r\n      locals.view = Aeppic.LocalStorage.getValue('bp-pref-ordner-page-view') || locals.view\r\n    }\r\n\r\n    const canEdit = await Aeppic.canEdit(document)\r\n    locals.canEdit = Aeppic.Account && Aeppic.Account.data.isGroupAccount === false && canEdit === true\r\n\r\n    if (data.project && data.project.id || data.client && data.client.id) {\r\n      const parts = ['(f.id:dbee6e16-d63a-493c-bba6-505f79918f9f OR f.id:a04c8913-db48-4e80-b20d-0f3cc17a778c)']\r\n      const orParts = []\r\n      if (data.project && data.project.id) {\r\n        orParts.push(`a:${data.project.id}`)\r\n      }\r\n\r\n      if (data.client && data.client.id) {\r\n        orParts.push(`a:${data.client.id}`)\r\n      }\r\n\r\n      locals.referencedFilesQuery = `(${orParts.join(' OR ')}) ${parts.join(' ')}`\r\n    }\r\n  }\r\n\r\n  getSorting() {\r\n    if (data.sortierungFelder?.length) {\r\n      return data.sortierungFelder.map(name => ({ field: name, descending: typeof data.sortierungAbsteigend === 'boolean' ? data.sortierungAbsteigend : false }))\r\n    }\r\n\r\n    return ['data.name', 'id']\r\n  }\r\n\r\n  // async foo() {\r\n  //   const projectRootId = params.projectRootId\r\n\r\n  //   const project = await Aeppic.get(params.projectRootId)\r\n\r\n  //   const query = `f.id:dbee6e16-d63a-493c-bba6-505f79918f9f a:${project.id}`\r\n  //   const files = await Aeppic.find(query, { sort: 'a_depth' })\r\n\r\n  //   // const subQuery = `f.id:dbee6e16-d63a-493c-bba6-505f79918f9f a:${project.id} AND (a_depth:${project.a_depth + 2} OR  a_depth:${project.a_depth + 3})`\r\n  //   // const subFiles = await Aeppic.find(subQuery)\r\n\r\n  //   console.log(await Aeppic.find(``))\r\n\r\n  //   const uniqueParentsSet = new Set([...files.map(file => file.p)])\r\n  //   const parents = await Aeppic.getAll([...uniqueParentsSet])\r\n \r\n  //   console.log({\r\n  //     query,\r\n  //     files,\r\n  //     parents\r\n  //   })\r\n\r\n  //   locals.result = parents\r\n  // }\r\n\r\n  async dragover(event) {\r\n    if (!locals.canEdit) {\r\n      event.dataTransfer.dropEffect = \"none\"\r\n    } else {\r\n      event.dataTransfer.dropEffect = \"copy\"\r\n    }\r\n  }\r\n\r\n  async drop(event) {\r\n    if (!locals.canEdit) {\r\n      return\r\n    }\r\n\r\n    $refs.dropHandler.$emit('drop', event)\r\n  }\r\n\r\n  // async openContextMenu(event) {\r\n  //   if (!locals.selectionHasDocuments) {\r\n  //     return\r\n  //   }\r\n\r\n  //   $refs.pageMenu.showAtPosition(event)\r\n  // }\r\n\r\n\r\n  toolbarEvent(eventType) {\r\n    if (eventType === 'view_mix-files-and-folders_true') {\r\n      locals.mixFilesAndFolders = true\r\n      return\r\n    }\r\n    if (eventType === 'view_mix-files-and-folders_false') {\r\n      locals.mixFilesAndFolders = false\r\n      return\r\n    }\r\n    if (eventType === 'view_grid') {\r\n      locals.view = 'grid'\r\n      return\r\n    }\r\n    if (eventType === 'view_table') {\r\n      locals.view = 'table'\r\n      return\r\n    }\r\n    if (eventType === 'view_two-column') {\r\n      locals.view = 'two-column'\r\n      return\r\n    }\r\n  }\r\n\r\n\r\nasync foo() {\r\n  const file = await Aeppic.new('dbee6e16-d63a-493c-bba6-505f79918f9f', document.id)\r\n  file.data.name = `_${Date.now()}`\r\n  Aeppic.save(file)\r\n}\r\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-06-23T14:54:59+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2022-07-20T11:58:33+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1658318313233,"ct":1592924099023,"a_depth":4,"a":["apps","45ada186-e9fd-451d-9dbd-2defc0b4f86f","4ec6a0e5-cf2d-4095-9b70-2e31a64d5679","a04c8913-db48-4e80-b20d-0f3cc17a778c"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"3cb0618a-06f0-4aa2-877c-541e3062eac2","v":"e9c1455b8d863ded","cloneOf":{"id":"bae491ef-2c4c-4cd0-bcc3-207ced01893e","v":"99bc47bbb72f239c","text":"page--left"},"originalCloneOf":{"id":"bae491ef-2c4c-4cd0-bcc3-207ced01893e","v":"99bc47bbb72f239c","text":"page--left"},"previous":{"v":"e75847c558f68cfa"},"p":"3f5de83a-40e4-4662-b436-3ed4879edb10","f":{"id":"design-form","v":"e3fe9ece11aabc5e","text":"Design"},"data":{"name":"page--left","applies":" ","template":"<h1 style=\"display:none\">{{JSON.stringify(controller.showLoadingSpinner)}}</h1>\n\n<ae-layout\n  @toolbar.native=\"controller.toolbarEvent($event.detail)\"\n  class=\"_CSS-spinner\"\n  v-if=\"controller.showLoadingSpinner\"\n  layout-id=\"fefa8352-0e9a-4ba8-8349-c9402ac8aefa\"></ae-layout>\n<ae-control\n  @toolbar.native=\"controller.toolbarEvent($event.detail)\"\n  ref=\"viewer\"\n  :key=\"document && document.id && document.v\"\n  v-else-if=\"document\"\n  :document=\"document\"\n  :form=\"form\"\n  field-name=\"stallkarte\"\n  name=\"file-viewer\"\n  style=\"flex: 1\"\n  :style=\"{ cursor: locals.zoom ? 'zoom-out' : 'zoom-in' }\"\n  :param-zoom=\"locals.zoom\"\n  @click.native=\"locals.zoom = !locals.zoom\"\n  :param-bus=\"locals.bus\"\n  >\n</ae-control>\n","css":" ._CSS {\n   display: flex;\n   justify-content: center;\n   align-items: stretch;\n   flex-flow: column;\n }\n\n._CSS-spinner {\n  height: 5rem;\n  width: 5rem;\n  margin: auto;\n}","controller":"class Controller {\n  async init() {\n    locals.zoom = false\n  }    \n\n  toolbarEvent(eventType) {\n    if (eventType === 'print') {\n      $refs.viewer && $refs.viewer.$emit('print')\n      return\n    }\n\n    if (eventType === 'downloadPreview') {\n      console.warn('event downloadPreview not implemented')\n    }\n  }\n\n  get showLoadingSpinner() {\n    const fileType = data.stallkarte.type\n    if (typeof fileType === 'string' && (fileType === 'application/pdf' || fileType.startsWith('image/'))) {\n      return false\n    }\n    return Aeppic.Uploads.getUploadStatusForDocument(document)\n  }\n}\n","packages":[]},"locks":[],"created":{"at":"2021-09-29T12:29:41+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-09-29T12:31:25+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1632918685162,"ct":1632918581300,"a_depth":4,"a":["apps","5ec4fefb-1235-484e-8d6f-4fd645bae372","75920050-07b1-4e79-9742-54abcc235e91","3f5de83a-40e4-4662-b436-3ed4879edb10"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"3fbdf0bf-062f-4077-afa9-1c6d31e48b14","v":"d2f68b5c17078305","previous":{"v":"b4ddd0985e6616a4"},"p":"6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2","f":{"id":"design-form","v":"e3fe9ece11aabc5e","text":"Design"},"data":{"name":"page--left","applies":" ","template":"<h1 style=\"display:none\">{{JSON.stringify(controller.showLoadingSpinner)}}</h1>\n\n<ae-control v-if=\"document\" name=\"image-rotate\" :document=\"document\" field-name=\"datei\" :param-no-ui=\"true\" ref=\"imageRotate\"  @toolbar.native=\"controller.toolbarEvent($event.detail)\"></ae-control>\n\n<!-- <template v-if=\"Aeppic.Device === 'Desktop'\"> -->\n  <ae-layout\n    @toolbar.native=\"controller.toolbarEvent($event.detail)\"\n    class=\"_CSS-spinner\"\n    v-if=\"controller.showLoadingSpinner\"\n    layout-id=\"fefa8352-0e9a-4ba8-8349-c9402ac8aefa\"></ae-layout>\n  <ae-control\n    @toolbar.native=\"controller.toolbarEvent($event.detail)\"\n    ref=\"viewer\"\n    :key=\"document && document.id && document.v\"\n    v-else\n    :document=\"document\"\n    :form=\"form\"\n    field-name=\"datei\"\n    name=\"file-viewer\"\n    style=\"flex: 1\"\n    :style=\"{ cursor: locals.zoom ? 'zoom-out' : 'zoom-in' }\"\n    :param-zoom=\"locals.zoom\"\n    @click.native=\"locals.zoom = !locals.zoom\"\n    :param-bus=\"locals.bus\"\n    >\n  </ae-control>\n<!-- </template> -->\n\n<!-- <div class=\"_CSS-static\" v-else>\n  <div class=\"_CSS-static__body\">\n    <ae-design name=\"property-listing\" :document=\"document\"></ae-design>\n\n    <div class=\"_CSS-static__actions\">\n      <a :href=\"Aeppic.Content.getSrc(document, 'datei')\" target=\"_blank\" :download=\"data.name\">\n        <button class=\"bp-button\">\n          <ae-icon class=\"fa fa-download\"></ae-icon>\n          Download\n        </button>\n      </a>\n    </div>\n  </div>\n\n  <div class=\"_CSS-static__thumbnail\" :style=\"{ 'background-image': 'url('+Aeppic.Content.getThumbnailSrc(document, 'datei') +')'}\"></div>\n</div> -->","css":" ._CSS {\n   display: flex;\n   justify-content: center;\n   align-items: stretch;\n   flex-flow: column;\n }\n\n /*\n ._CSS-static {\n   width: 100%;\n   flex: 1;\n   display: flex;\n   flex-flow: column;\n   padding: var(--bp-page-content-padding);\n }\n\n ._CSS-static__thumbnail {\n   flex: 1;\n   background-size: contain;\n   background-repeat: no-repeat;\n }\n\n._CSS-static__actions {\n  margin-top: 3rem;\n  display: flex;\n}\n\n._CSS-static__actions > * {\n  font-size: 1.5rem;\n}\n*/\n\n._CSS-spinner {\n  height: 5rem;\n  width: 5rem;\n  margin: auto;\n}","controller":"class Controller {\n  async init() {\n    locals.zoom = false\n\n    await Aeppic.waitForNextTick()\n\n    startEditing()\n  } \n\n  toolbarEvent(eventType) {\n    console.log(eventType)\n    if (eventType === 'print') {\n      $refs.viewer && $refs.viewer.$emit('print')\n      return\n    }\n\n    if (eventType === 'downloadPreview') {\n      console.warn('event downloadPreview not implemented')\n    }\n\n    if (eventType === 'save') {\n      save()\n      return\n    }\n\n    if (eventType === 'reset') {\n      resetEdits()\n      return\n    }\n\n    if (eventType === 'rotate') {\n      $refs.imageRotate.$emit('rotate')\n      return\n    }\n  }\n\n  get showLoadingSpinner() {\n    const fileType = data.datei.type\n    if (typeof fileType === 'string' && (fileType === 'application/pdf' || fileType.startsWith('image/'))) {\n      return false\n    }\n    return Aeppic.Uploads.getUploadStatusForDocument(document)\n  }\n}\n","packages":[]},"locks":[],"created":{"at":"2017-09-15T10:29:32+02:00","by":"","from":"","client":"import"},"modified":{"at":"2020-09-28T13:09:51+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1601298591381,"ct":1467644299228,"a_depth":4,"a":["apps","3d43a3f5-fea4-488d-9fc1-9dee5e694623","7c30f282-2b84-4976-8735-ba78662ea5e6","6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"46969926-3c96-4d3d-a0ab-799633f6f120","v":"dbf290c75e1f7411","p":"fallback-designs","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"page--left","template":"<div  class=\"_CSS-container\"\n      ref=\"container\"\n      @toolbar=\"controller.toolbarEvent($event.detail)\">\n  <ae-form  ref=\"form\"\n            :document=\"document\" \n            :readonly=\"controller.isReadonly\"\n            :auto-save=\"params.autoSave || false\"\n            class=\"_CSS-form\"\n  ></ae-form>\n  <ae-design  name=\"page__additional-content\"\n              :document=\"document\"\n              :param-readonly=\"controller.isReadonly\"\n  ></ae-design>\n</div>","css":"._CSS-container {\n  max-width: var(--ae-page-max-width);\n  margin: auto;\n  padding: 0.5rem;\n}\n\n._CSS-form {\n  height: 100%;\n}\n","controller":"class Controller {\n  toolbarEvent(eventType) {\n    if (eventType === 'save') {\n      $refs.form.save()\n      $refs.form.resetEdits()\n\n      return\n    }\n    if (eventType === 'reset') {\n      $refs.form.resetEdits()\n\n      return\n    }\n  }\n\n  get isReadonly() {\n    if (document.readonly === true) {\n      return true\n    }\n\n    if (typeof params.readonly === 'boolean') {\n      return params.readonly\n    }\n\n    if (document.readonly) {\n      return document.readonly\n    }\n\n    return false\n  }\n}\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-05-14T14:43:52+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2024-07-08T12:59:53+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720684627133,"ct":1720684627133,"a_depth":2,"a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"],"inheritedLocks":[null,null,null],"stamps":[],"previous":{"v":"960e20194226dd6c","f":{"id":"design-form","v":"9bfe8e0cd909c1f0","text":"Design"}},"meta":{"modified":{"at":"2024-07-11T09:57:07+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"49757cf2-246d-47c0-a917-52a092a6a487","v":"1f79a0cf6cbe9ce9","cloneOf":{"id":"4ada2895-c62c-4fe4-9b90-a61c447ba659","v":"0c6a076e22689f4b","text":"page"},"originalCloneOf":{"id":"4ada2895-c62c-4fe4-9b90-a61c447ba659","v":"0c6a076e22689f4b","text":"page"},"previous":{"v":"a6b9475375bad0b9"},"p":"42e3adf4-96eb-4eaa-8e80-4bdd671540a3","f":{"id":"design-form","v":"24435d748c76f819","text":"Design"},"data":{"name":"page--left","template":"<div class=\"_CSS-container\">\n  <ae-list  list-id=\"2dab232c-2c8a-4aa4-b3f9-6023a7116161\"\n            query-id=\"f812861f-68c8-4818-9972-be7b5474c9b1\"\n            :root-document-id=\"document.id\"\n            sort=\"data.name\"\n            @selected=\"Aeppic.navigateTo($event)\"\n  ></ae-list>\n</div>\n","css":"._CSS {\n  padding: var(--bp-page-content-padding);\n}\n\n._CSS-container {\n  max-width: var(--ae-page-max-width);\n  margin: auto;\n}\n","controller":"\n\n\n\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2019-07-08T09:21:37+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2021-12-08T10:53:12+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1638960792486,"ct":1562577697017,"a_depth":4,"a":["apps","bd4df555-2c56-4a5f-82f0-7e4745372f51","b42c9135-e564-4d50-abd1-4d753921120f","42e3adf4-96eb-4eaa-8e80-4bdd671540a3"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"4ada2895-c62c-4fe4-9b90-a61c447ba659","v":"1a92a46929b910c3","previous":{"v":"ad790034e9a3ede2"},"p":"007be343-6ea4-4ff7-b189-ad4bb4cf1c5a","f":{"id":"design-form","v":"24435d748c76f819","text":"Design"},"data":{"name":"page--left","template":"<div class=\"_CSS-container\">\n  <ae-list list-id=\"2dab232c-2c8a-4aa4-b3f9-6023a7116161\" query-id=\"c160b6da-5238-4f1e-b0ef-1e9a6d940989\" :root-document-id=\"document.id\" sort=\"data.name\" param-min-column-width=\"400px\"></ae-list>\n</div>\n\n","css":"._CSS {\n  padding: var(--bp-page-content-padding);\n}\n\n._CSS-container {\n  max-width: var(--ae-page-max-width);\n  margin: auto;\n}\n","controller":"\n\n\n\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2019-06-05T12:31:53+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2021-11-10T11:28:39+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1636543719764,"ct":1559737913398,"a_depth":4,"a":["apps","91a90288-37bc-4f86-be38-4283833717d2","cb7a4c1b-703a-4b16-9190-aa2a26532688","007be343-6ea4-4ff7-b189-ad4bb4cf1c5a"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"706a8ce9-7beb-4d9d-a624-5bf51a1681e9","v":"f75105b140099846","previous":{"v":"39ac6b548861e61d"},"p":"24523534-125d-4ebe-9a83-bd7fed39ff92","f":{"id":"design-form","v":"0061789efb5c5c29","text":"Design"},"data":{"name":"page--left","template":"<ae-list  list-id=\"2dab232c-2c8a-4aa4-b3f9-6023a7116161\"\n          :root-document-id=\"document.id\"\n          query-id=\"f812861f-68c8-4818-9972-be7b5474c9b1\"\n          filter=\"f.id:d6f1cc99-f34e-4cb8-99b3-11f917485c25 OR f.id:24523534-125d-4ebe-9a83-bd7fed39ff92\"\n          @selected=\"Aeppic.drillInto($event)\"\n></ae-list>","css":"._CSS {\n  padding: var(--bp-page-content-padding);\n}","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-09-02T09:19:31+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2020-09-02T09:30:43+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1599039043726,"ct":1599038371167,"a_depth":4,"a":["apps","b0eb4a71-010b-4d65-b79b-bb984a57c10f","a6c009e7-a2c9-4e84-a992-4ad09134d39d","24523534-125d-4ebe-9a83-bd7fed39ff92"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"7076fb3f-b810-4c1f-bc6f-45f33f2f20da","v":"bdddbff08fa17b3d","previous":{"v":"47d2f527d18363ed"},"p":"f0cf1b33-f840-4d4b-9335-c10daa7a335e","f":{"id":"design-form","v":"3385ac6766f32638","text":"Design"},"data":{"name":"page--left","template":"<ae-list\n  param-title=\"Prozesse\"\n  list-id=\"2dab232c-2c8a-4aa4-b3f9-6023a7116161\"\n  :root-document-id=\"document.id\"\n  query-id=\"f812861f-68c8-4818-9972-be7b5474c9b1\"\n></ae-list>\n\n","css":"._CSS {\n  padding: var(--bp-page-content-padding);\n}","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2018-01-17T13:54:19+01:00","by":"","from":"","client":"server"},"modified":{"at":"2022-02-22T10:11:15+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1645524675651,"ct":1645457171453,"a_depth":4,"a":["apps","bd4df555-2c56-4a5f-82f0-7e4745372f51","b42c9135-e564-4d50-abd1-4d753921120f","f0cf1b33-f840-4d4b-9335-c10daa7a335e"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"749a568f-bf70-4336-a174-dccb891bb683","v":"24b3bf5e4c6be6b6","previous":{"v":"d2c1c5915a330a25"},"p":"c0574720-6967-4293-94a8-e7b32a40fc6f","f":{"id":"design-form","v":"74db9b6ed94b41d9","text":"Design"},"data":{"name":"page--left","template":"<div class=\"_CSS-list-container\"\r\n      @contextmenu.stop.prevent=\"controller.openContextMenu($event)\"\r\n      @drop.prevent=\"controller.drop($event)\"\r\n      @dragover.prevent=\"controller.dragover($event)\"\r\n      @toolbar.prevent=\"controller.toolbarEvent($event.detail)\"\r\n  >\r\n  <ae-list  class=\"_CSS-list\"\r\n            list-id=\"7e0d7a6d-6ded-4790-93ec-793eaa23047b\"\r\n            :root-document-id=\"document.id\"\r\n            query-id=\"773936e6-4eea-4e14-a40e-46baf183168d\"\r\n            :params=\"{ fileFormIds: ['6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2', 'cb2adf77-7636-41a7-9a16-1610b06fa91e'], folderFormId: 'c0574720-6967-4293-94a8-e7b32a40fc6f', view: locals.view, mix: locals.mixFilesAndFolders }\"\r\n            :sort=\"locals.sort\"\r\n            :search-options=\"{ size:9999 }\"\r\n  ></ae-list>\r\n</div>\r\n\r\n<ae-popup ref=\"pageMenu\" placement=\"bottom-start\">\r\n\t<div class=\"_CSS-ae-menu\" slot=\"popup\" slot-scope=\"menu\">\r\n\t\t<ul class=\"_CSS-ae-menu-list\" style=\"min-width: 10rem;\">\r\n\t\t\t<li class=\"_CSS-ae-menu-item\" @click.stop=\"$refs.selectionHandler.$emit('move-here');menu.close()\">Auswahl hierhin verschieben</li>\r\n      <!-- <li class=\"_CSS-ae-menu-item\" @click.stop=\"$refs.selectionHandler.$emit('copy-here');menu.close()\">Auswahl hierhin kopieren</li> -->\r\n\t\t</ul>\r\n\t</div>\r\n</ae-popup>\r\n\r\n<!-- <ae-popup ref=\"menu\">\r\n\t<div class=\"ae-menu\" slot=\"popup\" slot-scope=\"menu\">\r\n\t\t<ul class=\"ae-menu-list\" @click=\"menu.close()\" style=\"min-width: 10rem;\">\r\n\t\t\t<li class=\"ae-menu-item\" @click.stop=\"controller.showMoveToDialog(menu.data.baseElement)\">Verschieben</li>\r\n\t\t</ul>\r\n\t</div>\r\n</ae-popup> -->\r\n\r\n<ae-layout  layout-id=\"f5a5c2a0-bf9c-4b44-b05b-8e545156df10\"\r\n            :param-show-ui=\"Aeppic.Device !== 'Desktop'\"\r\n            :param-document=\"document\"\r\n            param-file-form-id=\"6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2\"\r\n            param-file-form-field=\"datei\"\r\n            param-file-name-to-field=\"name\"\r\n            param-directory-form-id=\"c0574720-6967-4293-94a8-e7b32a40fc6f\"\r\n            :param-save-new-documents=\"true\"\r\n            ref=\"dropHandler\"\r\n></ae-layout> \r\n\r\n<ae-layout  layout-id=\"8c5c60ec-b7d1-4e46-a9ca-180c3c153179\"\r\n            :param-page-document-id=\"document.id\"\r\n            :param-show-ui=\"false\"\r\n            ref=\"selectionHandler\"\r\n            @selected-documents=\"locals.selectionHasDocuments = true\"\r\n            @unselected-documents=\"locals.selectionHasDocuments = false\"\r\n></ae-layout>\r\n","css":"._CSS {\r\n  flex-direction: column;\r\n  flex:1;\r\n  display: flex;\r\n}\r\n\r\n._CSS-commands-bar {\r\n  padding: 5px;\r\n  display: flex;\r\n  justify-content: space-between;\r\n  border-bottom: var(--ae-border-width) solid var(--ae-border-color);\r\n  margin-bottom: 12px;\r\n  flex-shrink: 0;\r\n  background: var(--ae-ui-background);\r\n}\r\n\r\n._CSS-commands-bar::after {\r\n  content:'';\r\n  position:absolute;\r\n  height:4px;\r\n  left:0;\r\n  bottom:-0px;\r\n  right:0;\r\n  border-top: 1px solid rgba(0,0,0,0.2);\r\n  display: block;\r\n}\r\n\r\n._CSS-commands {\r\n  display: grid;\r\n  grid-gap: var(--ae-size-3);\r\n  grid-auto-columns: auto;\r\n  grid-auto-flow:column;\r\n}\r\n\r\n\r\n._CSS-list-container {\r\n  flex:1;\r\n}\r\n\r\n._CSS-list {\r\n  overflow-x: auto;\r\n  padding: 0 var(--bp-page-content-padding, 8px);\r\n}\r\n\r\n\r\n._CSS-ae-menu {\r\n  background: rgb(250,250,250);\r\n  font-size: 1rem;\r\n  border: 1px solid rgb(200,200,200); \r\n}\r\n._CSS-ae-menu-list {\r\n  list-style: none;\r\n  padding: 4px;\r\n  margin: 0;\r\n}\r\n._CSS-ae-menu-item {\r\n  padding:4px; \r\n  margin:0;\r\n  font-size: smaller;\r\n}\r\n._CSS-ae-menu:focus {\r\n  outline: none;\r\n}\r\n._CSS-ae-menu-item:hover {\r\n  background: #d8d8d8;\r\n  cursor: pointer;\r\n}","controller":"class Controller {\r\n  async init() {\r\n    locals.selectionHasDocuments = false\r\n\r\n    locals.mixFilesAndFolders = false\r\n    locals.view = 'grid'\r\n    locals.sort = this.getSorting()\r\n\r\n    if (Aeppic.LocalStorage.isAvailable) {\r\n      locals.mixFilesAndFolders = Aeppic.LocalStorage.getValue('bp-pref-ordner-page-mix') || locals.mixFilesAndFolders\r\n      locals.view = Aeppic.LocalStorage.getValue('bp-pref-ordner-page-view') || locals.view\r\n    }\r\n\r\n    const canEdit = await Aeppic.canEdit(document)\r\n    locals.canEdit = Aeppic.Account && Aeppic.Account.data.isGroupAccount === false && canEdit === true\r\n  }\r\n  \r\n  getSorting() {\r\n    if (data.sortierungFelder?.length) {\r\n      return data.sortierungFelder.map(name => ({ field: name, descending: typeof data.sortierungAbsteigend === 'boolean' ? data.sortierungAbsteigend : false }))\r\n    }\r\n\r\n    return ['data.name', 'id']\r\n  }\r\n\r\n  async dragover(event) {\r\n    if (!locals.canEdit) {\r\n      event.dataTransfer.dropEffect = \"none\"\r\n    } else {\r\n      event.dataTransfer.dropEffect = \"copy\"\r\n    }\r\n  }\r\n\r\n  async drop(event) {\r\n    if (!locals.canEdit) {\r\n      return\r\n    }\r\n\r\n    $refs.dropHandler.$emit('drop', event)\r\n  }\r\n\r\n  async openContextMenu(event) {\r\n    if (!locals.selectionHasDocuments) {\r\n      return\r\n    }\r\n\r\n    $refs.pageMenu.showAtPosition(event)\r\n  }\r\n\r\n\r\n  toolbarEvent(eventType) {\r\n    if (eventType === 'view_mix-files-and-folders_true') {\r\n      locals.mixFilesAndFolders = true\r\n      return\r\n    }\r\n    if (eventType === 'view_mix-files-and-folders_false') {\r\n      locals.mixFilesAndFolders = false\r\n      return\r\n    }\r\n    if (eventType === 'view_grid') {\r\n      locals.view = 'grid'\r\n      return\r\n    }\r\n    if (eventType === 'view_table') {\r\n      locals.view = 'table'\r\n      return\r\n    }\r\n    if (eventType === 'view_two-column') {\r\n      locals.view = 'two-column'\r\n      return\r\n    }\r\n  }\r\n\r\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2017-09-15T10:29:32+02:00","by":"","from":"","client":"import"},"modified":{"at":"2021-12-21T13:12:47+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1640092367465,"ct":1590764773059,"a_depth":4,"a":["apps","3d43a3f5-fea4-488d-9fc1-9dee5e694623","7c30f282-2b84-4976-8735-ba78662ea5e6","c0574720-6967-4293-94a8-e7b32a40fc6f"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"79d79933-3f9f-470c-a381-7ea61e787865","v":"ab83b2382e7b4c48","previous":{"v":"initial"},"p":"59b7188e-1296-4466-a9c2-d6255496e7d6","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"page--left","template":"<ae-form :document=\"document\" :readonly=\"true\"></ae-form>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-11-25T12:30:02+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-11-25T12:30:27+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1637843427069,"ct":1637843402529,"a_depth":4,"a":["apps","b9df606f-b33a-48ad-ba91-a82fa7868fa4","f0010376-2737-42c5-aaf8-f8b8e1cd0449","59b7188e-1296-4466-a9c2-d6255496e7d6"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"7f3fd319-f256-45f9-be10-6c6e52e589ae","v":"bd3c010c811f8b53","previous":{"v":"604d67adee441fee"},"p":"43f2603c-e6b0-4a91-9087-4f103c96a2b4","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"page--left","template":"<ae-list \r\n  style=\"flex:1\"\r\n  v-if=\"locals.canEdit != null\"\r\n  list-id=\"d2399ce5-5828-4571-803d-7f8c53a179ed\"\r\n  param-title=\"Schmiedekalender\"\r\n  :param-readonly=\"!locals.canEdit\"\r\n  :param-query=\"locals.query\"\r\n  :param-views=\"['week', 'month', 'day']\"\r\n  :param-root-document-id=\"document.id\"\r\n  :param-appointment-form-id=\"locals.FORMS.Termin\"\r\n  :param-document-to-calendar-mapper=\"(doc) => controller.mapDocumentToCalendar(doc)\" \r\n  :param-default-appointment-length=\"locals.defaultAppointmentLength\"\r\n></ae-list>","css":"","controller":"class Controller {\r\n  async init() {\r\n    locals.FORMS = {\r\n      Termin: '0aedd37c-75c9-4724-ab7e-a3de888870b5'\r\n    }\r\n\r\n    // locals.defaultAppointmentLength = await Aeppic.Preferences.getSettingForDocument('apps:b3191869-9bcf-440c-92be-7b013944b450:standardTerminLaenge', document)\r\n    locals.defaultAppointmentLength = await Aeppic.Preferences.getSetting('apps:b3191869-9bcf-440c-92be-7b013944b450:standardTerminLaenge')\r\n\r\n    if (locals.defaultAppointmentLength == null) {\r\n      locals.defaultAppointmentLength = 0\r\n    } \r\n \r\n    locals.query = Aeppic.Query.children().form(locals.FORMS.Termin)\r\n\r\n    const canEdit = await Aeppic.canEdit(document)\r\n    locals.canEdit = Aeppic.Account && Aeppic.Account.data.isGroupAccount === false && canEdit === true\r\n  }\r\n\r\n  mapDocumentToCalendar(entryDocument) {\r\n    return {}\r\n  }\r\n}\r\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-11-08T16:32:27+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","from":"","client":"server"},"modified":{"at":"2021-12-06T16:25:25+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1638807925475,"ct":1636389147643,"a_depth":4,"a":["apps","b3191869-9bcf-440c-92be-7b013944b450","3555bef3-1cf0-4f7d-b3ce-5346fb8cbff4","43f2603c-e6b0-4a91-9087-4f103c96a2b4"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"86406b29-4e0a-4d4d-943d-49ce6cce9c14","v":"60091092912ca256","previous":{"v":"533d2ae41215d39c"},"p":"07661490-5918-4db7-848e-6fbbb87be0a4","f":{"id":"design-form","v":"0061789efb5c5c29","text":"Design"},"data":{"name":"page--left","template":"","css":"","controller":"class Controller {\n  init() {\n    locals.maschines = [\n      'advance-leasing.bizpin.de',\n      'arcenergie-dev.bizpin.de',\n      'arcenergie.bizpin.de',\n      'bfine.bizpin.de',\n      'bizpin-master.exapris.de',\n      'blendivet.bizpin.de',\n      'dbps.bizpin.de',\n      'dbps.exapris.de',\n      'demo.bizpin.de',\n      'droxit.bizpin.de',\n      'dsgvo.bizpin.de',\n      'edil-color.bizpin.de',\n      'familie-goetzke.bizpin.de',\n      'gilbrin.exapris.de',\n      'grone.bizpin.de',\n      'homa.exapris.de',\n      'k2b.bizpin.de',\n      'kleintierklinik-wasbek.bizpin.de',\n      'kreativrudel-dsgvo.exapris.de',\n      'kundk.bizpin.de',\n      'maus-gmbh',\n      'office.curasystems.com',\n      'office.exapris.de',\n      'pferdeklinik-rennbahn-dsgvo',\n      'pferdeklinik-rennbahn.bizpin.de',\n      'prilatec.bizpin.de',\n      'pro-n-sales.bizpin.de',\n      'projektbar.bizpin.de',\n      'reiling.bizpin.de',\n      'release.bizpin.de',\n      'rpg.bizpin.de',\n      'schmidtsteinfeld.bizpin.de',\n      'streit.curasystems.com',\n      'test.bizpin.de',\n      'tierklinik-betzdorf-dsgvo',\n      'tierklinik-betzdorf.bizpin.de',\n      'tierklinik-dkb.bizpin.de',\n      'tierklinik-fuberlin.bizpin.de',\n      'tierklinik-hofheim-dsgvo',\n      'tierklinik-hofheim.bizpin.de',\n      'tierklinik-norderstedt.exapris.de',\n      'vetwerkstatt.bizpin.de',\n      'wandel-schmid.exapris.de',\n      'weihnachten.bizpin.de',\n      'special.bizpin.de',\n      'arcenergie-test.bizpin.de',\n      'msg.bizpin.de',\n      'www.vnk-koenigshofen.de',\n      'psilon-consulting.bizpin.de',\n      'bizpin-dev.bizpin.de',\n      'ffw.bizpin.de',\n      'fishershouse.bizpin.de',\n      'ihre-tieraerzte.bizpin.de',\n      'demo-energie.bizpin.de',\n      'nwe3.bizpin.de',\n      'immowert.bizpin.de',\n      'tierarztpraxis-horrem.bizpin.de',\n      'energie-dev.bizpin.de',\n    ]\n\n    for (const maschine of locals.maschines) {\n      this.check(maschine)\n    }\n  }\n\n  // async check(maschine) {\n  //   console.log(maschine)\n  //   const result = await fetch('https://' + maschine)\n  //   console.log(result.status, result.ok, result)\n  // }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-01-12T10:54:40+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-01-12T10:59:22+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1610449162910,"ct":1610448880037,"a_depth":4,"a":["apps","7ba1fc90-8094-44ce-8f5a-54a0da3999ed","710a1fcc-d225-4fb3-a1aa-64684f397ee6","07661490-5918-4db7-848e-6fbbb87be0a4"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"9e147f66-0541-44cb-a002-55d11f15f7ef","v":"b45659219f989d8b","previous":{"v":"5746383314bb41a4"},"p":"51138ce9-66f4-44dd-9254-b8b744e88999","f":{"id":"design-form","v":"0061789efb5c5c29","text":"Design"},"data":{"name":"page--left","template":"<!-- \n<div class=\"_CSS-filters\">\n  <button class=\"ae-button\"\n          :class=\"{ 'ae-button--primary': locals.filter === '' }\"\n          @click.stop=\"locals.filter = ''\"\n  > Alle </button>\n  <button class=\"ae-button\"\n          :class=\"{ 'ae-button--primary': locals.filter === locals.FORMS.Kunde }\"\n          @click.stop=\"locals.filter = locals.FORMS.Kunde\"\n  > Kunden </button>\n  <button class=\"ae-button\"\n          :class=\"{ 'ae-button--primary': locals.filter === locals.FORMS.Kontakt }\"\n          @click.stop=\"locals.filter = locals.FORMS.Kontakt\"\n  > Kontakte </button>\n</div> -->\n\n\n\n<ae-list  list-id=\"table-list\"\n          :filter=\"locals.filter ? 'f.id:' + locals.filter : null\"\n          :documents=\"locals.documents\"\n          :param-list-form-id=\"locals.FORMS.Kontakt\"\n          :param-root-document-id=\"document.id\"\n          @selected=\"Aeppic.drillInto($event)\"\n          :params=\"{ columns: 'data.unternehmen,data.ansprechpartner,data.position,data.telefon1,data.email1' }\"\n          :search-options=\"{ searchAllFields: true }\"\n          param-sort-fields=\"data.name,data.unternehmen,data.anrede\"\n          param-filter-fields=\"data.name,data.anrede\"\n          class=\"_CSS-list\"\n></ae-list>\n ","css":"","controller":"class Controller {\n  async init() {\n    locals.filter = ''\n\n    locals.FORMS = {\n      Kontakt: '6f641574-7cb6-424a-9657-4b8d652a2cf7',\n      Kunde: '8fc08287-dbcc-4e41-9d5d-28e4cd828943',\n    }\n\n    locals.documents = []\n\n    await this.update()\n  }\n\n  async update() {\n    // const query = `(p:${document.id} f.id:${locals.FORMS.Kontakt}) OR (a:${document.a[0]} f.id:${locals.FORMS.Kunde})`\n    const query = `p:${document.id} f.id:${locals.FORMS.Kontakt}`\n    console.log(query)\n    const options = {\n      size: 9999,\n      sort: 'data.unternehmen,data.nachname'\n    }\n\n    Aeppic.subscribe(query, options, (documents) => locals.documents = documents)\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-08-07T13:50:07+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2021-07-30T12:57:25+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1627649845055,"ct":1596808207753,"a_depth":4,"a":["apps","37fafb3d-18da-4182-af74-082971d50956","c27d5f5f-22ff-4341-935c-02bfdc3e1ee0","51138ce9-66f4-44dd-9254-b8b744e88999"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"acdce818-7bb5-46b9-8746-89851ddae10d","v":"deaa582322988d72","previous":{"v":"558399bdaf929a81"},"p":"94886126-c88d-4ea0-b088-8ea5ad155b08","f":{"id":"design-form","v":"0061789efb5c5c29","text":"Design"},"data":{"name":"page--left","template":"<div class=\"_CSS-container\">\n  <div v-if=\"data.versendet\">\n    <h2>Lesebestätigungen</h2>\n\n    <div class=\"_CSS-statistics bp-card bp-card--bordered\">\n      <canvas ref=\"chart\" width=\"200\" height=\"200\"></canvas>\n      {{ data.lesebestaetigungenUngelesen }} ungelesen / {{ data.lesebestaetigungenGelesen }} gelesen / {{ data.lesebestaetigungenUngelesen + data.lesebestaetigungenGelesen }} gesamt\n    </div>\n\n    <ae-list  list-id=\"2e798091-303f-406b-a42a-93aa1cd8425c\"\n              :documents=\"locals.acks\"\n              :param-title-text=\"'Liste (' + locals.acks.length + ')'\"\n              param-design=\"report-card\"\n              :param-design-params=\"{ isManager: locals.isManager }\"\n    ></ae-list>\n  </div>\n\n  <ae-design v-if=\"!data.versendet\" class=\"_CSS-toolbar\" name=\"page-toolbar\" :document=\"locals.folder\" :params=\"{ hideSecurity: true, hideExports: true, hideSendNotifications: true, hideDelete: true }\"></ae-design>\n\n  <h2>Unterlagen</h2>\n  <ae-design name=\"page--left\" :document=\"locals.folder\"></ae-design>\n  \n</div>\n","css":"._CSS {\n  padding: var(--bp-page-content-padding);\n}\n\n._CSS-toolbar {\n  background: var(--ae-ui-background);\n}\n\n._CSS-statistics {\n  display: flex;\n  align-items: center;\n  padding: var(--ae-space-3);\n}\n\n._CSS-container {\n  max-width: var(--ae-page-max-width);\n  margin: auto;\n}","controller":"class Controller {\n  async init() {\n    this._chart = null\n    this.FORMS = {\n      Ordner: 'c0574720-6967-4293-94a8-e7b32a40fc6f',\n      Lesebestätigung: '14931d03-c3bb-4cf7-9f62-747f94d8b01a',\n    }\n\n    locals.acks = [] \n    locals.isManager = false\n\n    locals.isManager = (await Aeppic.Actions.run(['7c4c6268-b24a-43c4-b876-a2a07f13942c'], { Account: Aeppic.Account, target: document }))[0].value\n\n    if (!locals.isManager) {\n      Aeppic.navigateTo(document.p)\n      return\n    }\n\n    locals.folder = await Aeppic.findOne(`p:${document.id} f.id:${this.FORMS.Ordner}`)\n    Aeppic.subscribe(`p:${document.id} f.id:${this.FORMS.Lesebestätigung}`, { size: 99999, sort: [ { field: 'data.gelesen', descending: false }, 'data.empfaenger.text' ]}, (documents) => {\n      locals.acks = documents\n    })\n\n\n    await Aeppic.nextRenderPass()\n\n    Aeppic.watch(document, (doc) => {\n      this.createDiagram(doc)\n    })\n\n    this.createDiagram(document)\n\n    locals.loaded = true\n  }\n\n  updateAcks(documents) {\n    locals.acks = documents\n    this.createDiagram(document)\n  }\n\n  createDiagram(doc) {\n    const unread = doc.data.lesebestaetigungenUngelesen\n    const read = doc.data.lesebestaetigungenGelesen\n\n    if (this._chart) {\n      this._chart.destroy()\n    }\n\n    if (!data.versendet) {\n      return\n    }\n\n    const labels = []\n    const chartData = [] \n    const backgroundColor = []\n    const borderColor = []\n\n    if (read > 0) {\n      labels.push('Gelesen')\n      chartData.push(read)\n      backgroundColor.push('hsl(120, 60%, 60%)')\n      borderColor.push('hsl(120, 60%, 60%)')\n    }\n\n    if (unread > 0) {\n      labels.push('Ungelesen')\n      chartData.push(unread)\n      backgroundColor.push('hsl(7, 80%, 60%)')\n      borderColor.push('hsl(7, 80%, 60%)')\n    }\n \n    this._chart = new Chart($refs.chart, { \n      options: {\n        responsive: false,\n      },\n      type: 'pie',\n      data: {\n        labels,\n        datasets: [{\n          data: chartData,\n          backgroundColor,\n          borderColor,\n          borderWidth: 1\n        }]\n      } \n    })\n  }\n\n  destroy() {\n    if (this._chart) {\n      this._chart.destroy()\n    }\n  }\n}","packages":[{"id":"4a6e27ae-e4a0-4e22-9997-b352899f86f5","v":"f9636ca9470e9f81","text":"Chart.js"}],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-11-19T15:31:36+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-02-22T11:30:38+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1677065438719,"ct":1605799896309,"a_depth":4,"a":["apps","f416e371-07cc-4987-a6de-5934ef5ff3e4","1096c5df-2773-4914-9455-dc54e0f3e0e5","94886126-c88d-4ea0-b088-8ea5ad155b08"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"b10b6c0a-d947-42c0-b2e3-84ff990ad29f","v":"0a965658b5844341","previous":{"v":"1cd17ffdab1d2699"},"p":"4b1bce8a-884e-44de-a2cd-352a7f89baa7","f":{"id":"design-form","v":"49954170df6a253b","text":"Design"},"data":{"name":"page--left","template":"<!-- <div class=\"_CSS-container\" @toolbar=\"controller.toolbarEvent($event.detail)\"> -->\n  <!-- <ae-form  ref=\"form\"\n            :document=\"document\" \n            :readonly=\"controller.isReadonly\"\n            :auto-save=\"params.autoSave || false\"\n  ></ae-form> -->\n<div class=\"_CSS-container\">\n  <div class=\"_CSS-list\">\n    <ae-list list-id=\"table-list\"\n            :search=\"'p:'+ document.id + ' f.id:3f5de83a-40e4-4662-b436-3ed4879edb10'\"\n            style=\"height: 100%;\"\n            :param-columns=\"locals.columns\"\n             param-designs=\"table:date,\"\n    ></ae-list>\n  </div>\n</div>\n  ","css":"._CSS {\n  overflow: hidden;\n}\n\n._CSS-container {\n  max-width: var(--ae-page-max-width);\n  margin: auto;\n  overflow: hidden;\n  height: 100%;\n}\n\n._CSS-list {\n  overflow: hidden;\n  padding: 0 var(--bp-page-content-padding);\n  height: 100%;\n}\n","controller":"class Controller {\n  init() {\n    locals.columns = 'data.behandlungsdatum,data.stallkarte'\n\n    // setTimeout(() => {\n    //  startEditing()\n    // })\n  }\n\n  // toolbarEvent(eventType) {\n  //   if (eventType === 'save') {\n  //     save()\n  //     return\n  //   }\n  //   if (eventType === 'reset') {\n  //     resetEdits()\n  //     return\n  //   }\n  // }\n\n  // get isReadonly() {\n  //   if (typeof params.readonly === 'boolean') {\n  //     return params.readonly\n  //   }\n\n  //   return false\n  // }\n}","packages":[],"description":""},"locks":[],"created":{"at":"2019-03-08T14:03:54+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2021-09-29T13:56:14+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1632923774228,"ct":1552053834481,"a_depth":4,"a":["apps","5ec4fefb-1235-484e-8d6f-4fd645bae372","75920050-07b1-4e79-9742-54abcc235e91","4b1bce8a-884e-44de-a2cd-352a7f89baa7"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"bae491ef-2c4c-4cd0-bcc3-207ced01893e","v":"f1f87e01b9cb62d5","cloneOf":{"id":"3fbdf0bf-062f-4077-afa9-1c6d31e48b14","v":"ffb42273c7505a81","text":"page--left"},"originalCloneOf":{"id":"3fbdf0bf-062f-4077-afa9-1c6d31e48b14","v":"ffb42273c7505a81","text":"page--left"},"previous":{"v":"802e88bddcf7fde2"},"p":"dbee6e16-d63a-493c-bba6-505f79918f9f","f":{"id":"design-form","v":"e3fe9ece11aabc5e","text":"Design"},"data":{"name":"page--left","applies":" ","template":"<!-- <h1 style=\"display:none\">{{JSON.stringify(controller.showLoadingSpinner)}}</h1> -->\n\n<!-- <ae-layout\n  @toolbar.native=\"controller.toolbarEvent($event.detail)\"\n  class=\"_CSS-spinner\"\n  v-if=\"controller.showLoadingSpinner\"\n  layout-id=\"fefa8352-0e9a-4ba8-8349-c9402ac8aefa\"></ae-layout> -->\n<ae-control\n  @toolbar.native=\"controller.toolbarEvent($event.detail)\"\n  ref=\"viewer\"\n  :key=\"document && document.id && document.v\"\n  :document=\"document\"\n  :form=\"form\"\n  field-name=\"datei\"\n  name=\"file-viewer\"\n  style=\"flex: 1\"\n  :style=\"{ cursor: locals.zoom ? 'zoom-out' : 'zoom-in' }\"\n  :param-zoom=\"locals.zoom\"\n  @click.native=\"locals.zoom = !locals.zoom\"\n  :param-bus=\"locals.bus\"\n  :param-use-builtin-viewer=\"params.useBuiltinViewer\"\n></ae-control>\n","css":" ._CSS {\n   display: flex;\n   justify-content: center;\n   align-items: stretch;\n   flex-flow: column;\n }\n\n._CSS-spinner {\n  height: 5rem;\n  width: 5rem;\n  margin: auto;\n}","controller":"class Controller {\n  async init() {\n    locals.zoom = false\n\n    $on('toolbar', event => this.toolbarEvent(event))\n  }    \n\n  toolbarEvent(eventType) {\n    if (eventType === 'print') {\n      $refs.viewer && $refs.viewer.$emit('print')\n      return\n    }\n\n    if (eventType === 'downloadPreview') {\n      console.warn('event downloadPreview not implemented')\n    }\n  }\n\n  get showLoadingSpinner() {\n    const fileType = data.datei.type\n    if (typeof fileType === 'string' && (fileType === 'application/pdf' || fileType.startsWith('image/'))) {\n      return false\n    }\n    return Aeppic.Uploads.getUploadStatusForDocument(document)\n  }\n}\n","packages":[]},"locks":[],"created":{"at":"2020-06-24T12:54:35+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2023-03-10T12:48:25+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1678452505927,"ct":1593003275153,"a_depth":4,"a":["apps","45ada186-e9fd-451d-9dbd-2defc0b4f86f","4ec6a0e5-cf2d-4095-9b70-2e31a64d5679","dbee6e16-d63a-493c-bba6-505f79918f9f"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"bc34d31d-32be-45f5-ae46-8c044558c339","v":"e58e7e37db480a01","previous":{"v":"76cd7c22ea70d518"},"p":"b433eabd-abe6-4564-940f-a918f71037fb","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"page--left","template":"<div class=\"p-2\"\n    @toolbar=\"controller.onToolbar($event)\"\n>\n  <ae-design v-if=\"locals.view\" :document=\"document\" :name=\"'page--' + locals.view\"></ae-design>\n</div>  \n","css":"","controller":"class Controller {\n  async init() {\n    locals.view = Aeppic.LocalStorage.getValue('bp-pref-rooms-building-view') || 'groundplan'\n  }\n\n  onToolbar(event) {\n    if (event.detail.startsWith('view_')) {\n      locals.view = event.detail.replace('view_', '')\n    }\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-04-21T12:57:37+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-01-03T13:43:46+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1672753426555,"ct":1650545857399,"a_depth":4,"a":["apps","86189c5a-b9f4-445a-879f-d94574960df0","15292d56-6806-4263-b6d0-9194687203e1","b433eabd-abe6-4564-940f-a918f71037fb"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"c27446f1-7a4b-4cae-89bd-bb679a0f4c38","v":"f2a81eeb4f4e5d37","cloneOf":{"id":"3f05245d-21a1-4cf6-80be-954371fc8bdb","v":"fd4a3b924ec58338","text":"page"},"originalCloneOf":{"id":"3f05245d-21a1-4cf6-80be-954371fc8bdb","v":"fd4a3b924ec58338","text":"page"},"previous":{"v":"7be3471eefa7bd72"},"p":"cb2adf77-7636-41a7-9a16-1610b06fa91e","f":{"id":"design-form","v":"0061789efb5c5c29","text":"Design"},"data":{"name":"page--left","template":"<ae-expandable class=\"_CSS-expandable\"  ref=\"expander\" style=\"flex:1;display:flex\">\r\n  <div style=\"display:flex;flex-direction:column;flex:1\"\r\n      :key=\"locals.rerender\"\r\n      v-if=\"locals.selected\" \r\n  >\r\n    <ae-design \r\n      xclass=\"bp-page__toolbar\"\r\n      :document=\"locals.selected\"\r\n      name=\"page-toolbar--inlined\"\r\n      :param-readonly=\"!locals.canEdit\"\r\n      style=\"background:var(--ae-background-100)\"\r\n      @toolbar=\"controller.handleToolbarEvent($event)\"\r\n    ></ae-design>\r\n    <ae-design\r\n      ref=\"page\"\r\n      style=\"flex:1\"\r\n      :document=\"locals.selected\"\r\n      :key=\"'_CSS-editor'+ locals.selected.v + locals.rerenderKey\"\r\n      name=\"editor\"\r\n      :param-kb-root=\"params.kbRoot\"\r\n      :param-child-types=\"locals.childTypes\"\r\n      :param-readonly=\"!locals.canEdit\" \r\n      @toggle-expand=\"$refs.expander.toggle()\"\r\n      >\r\n    </ae-design>\r\n  </div>\r\n</ae-expandable>","css":"._CSS {\r\n  display:flex;\r\n  flex-direction:column;\r\n}\r\n\r\n._CSS-expandable > .ae-expandable__header {\r\n  display: none !important;\r\n} ","controller":"class Controller {\r\n  async init() {\r\n    locals.rerenderKey = 1\r\n    locals.canEdit = false\r\n    locals.childTypes = params.childTypes\r\n    locals.selected = null\r\n\r\n    if (!locals.childTypes) {\r\n      const childTypes = await Aeppic.Preferences.getSettingForDocument('apps:cf914a7f-ff5f-4598-80f1-63c9129e0a71:childTypes', document)\r\n      const parsedChildTypes = childTypes && JSON.parse(childTypes)\r\n\r\n      if (parsedChildTypes?.length) {\r\n        locals.childTypes = parsedChildTypes\r\n      }\r\n    }\r\n\r\n    watchParam('childTypes', newParam => locals.childTypes = newParam)\r\n\r\n    const [ editable, canEdit ] = await Promise.all([\r\n      Aeppic.edit(document),\r\n      Aeppic.canEdit(document)\r\n    ])\r\n\r\n    locals.canEdit = Aeppic.Account?.data.isGroupAccount === false && canEdit === true\r\n    locals.selected = editable\r\n \r\n    // Aeppic.watch(locals.selected, (newVersion) => {\r\n    //   console.log('watch triggered', locals.selected.v, newVersion.v)\r\n    //   if (locals.selected.v !== newVersion.v) {        \r\n    //     this.reset(newVersion)\r\n    //   }\r\n    // })\r\n\r\n  }\r\n\r\n  handleToolbarEvent(event) {\r\n    console.log('toolbar')\r\n    \r\n    const pageElement = $refs.page.$el.children[0]\r\n    pageElement.dispatchEvent(new CustomEvent('toolbar', {\r\n      detail: event\r\n    }))\r\n\r\n    if (event === 'reset') {\r\n      this.reset()\r\n    }\r\n  }\r\n\r\n  async reset() {\r\n    await Aeppic.nextRenderPass()\r\n    locals.selected = await Aeppic.edit(document)\r\n\r\n    locals.rerenderKey += 1\r\n  }\r\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-11-03T15:46:51+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-11-05T13:20:13+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1636118413590,"ct":1635954411239,"a_depth":4,"a":["apps","cf914a7f-ff5f-4598-80f1-63c9129e0a71","d69a62e9-a61f-42bf-9ae9-7983b87bf587","cb2adf77-7636-41a7-9a16-1610b06fa91e"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"c7ca9f72-402e-452a-b9a5-910fa9be2a21","v":"28ea1f66123e460b","cloneOf":{"id":"450b4f70-2fb8-4896-8c09-8ca7b83fafdb","v":"3af21ff93b5d40f0","text":"page--left"},"originalCloneOf":{"id":"450b4f70-2fb8-4896-8c09-8ca7b83fafdb","v":"3af21ff93b5d40f0","text":"page--left"},"previous":{"v":"7edc55bb3cc3f24a"},"p":"86966584-6ee3-4351-8e6e-ff6e695b970a","f":{"id":"design-form","v":"e3fe9ece11aabc5e","text":"Design"},"data":{"name":"page--left","applies":"","template":"<div class=\"_CSS-container\" \n     @toolbar=\"controller.toolbarEvent($event.detail)\"\n>\n\n  \n  <div class=\"_CSS-infos\">\n    <ae-design class=\"_CSS-who\" :document-id=\"document.modified.by\" name=\"avatar--tiny\"></ae-design>\n    <span class=\"_CSS-who\" v-if=\"!document.modified.by\">Admin</span>\n    <span>in</span>\n  \n    <button class=\"ae-button ae-button--small\">\n    <ae-design class=\"_CSS-infos__group\" @click.native.stop=\"Aeppic.drillInto(locals.group)\" :document=\"locals.group\" name=\"title\" :style=\"{ 'background-color': controller.groupColor }\" ></ae-design>\n    </button>\n\n    <div class=\"_CSS-infos__modifier\" v-if=\"document.created.by !== document.modified.by\">\n      <ae-icon style=\"margin-right:var(--ae-space-1);\" class=\"far fa-pen\"></ae-icon>\n      <span :title=\"Aeppic.DateTime.fromISO(document.modified.at).toLocaleString(Aeppic.DateTime.DATETIME_SHORT)\">\n        Bearbeitet von\n      </span>\n      <ae-design class=\"_CSS-who\" v-if=\"document.modified.by\" :document-id=\"document.modified.by\" name=\"avatar--tiny\"></ae-design>\n      <span v-else class=\"_CSS-who\">Admin</span>\n    </div>\n\n    <span style=\"flex:1\"></span>\n\n    <div class=\"_CSS-infos__dates\" title=\"Publikationsdatum\">\n      <span>{{data.publikationsdatum ? Aeppic.DateTime.fromISO(data.publikationsdatum).toLocaleString() : Aeppic.DateTime.fromISO(document.created.at).toLocaleString() }}</span>&nbsp;\n    </div>\n  </div>\n\n  <div class=\"_CSS-editor\">\n    <div class=\"_CSS-editor__actions\" v-if=\"locals.canEdit\">\n      <button class=\"ae-button ae-button--secondary\" @click.stop=\"controller.toggleEditing()\">\n        <ae-icon v-if=\"locals.editing\" class=\"fad fa-save\"></ae-icon>\n        <ae-icon v-else class=\"fa fa-edit\"></ae-icon>\n      </button> \n    </div>\n\n    <ae-form class=\"_CSS-editor__form\"\n            :document=\"document\"\n            :readonly=\"!locals.editing\"\n            ref=\"form\"\n            :key=\"id(locals.renderCounter)\"\n    ></ae-form>\n  </div>\n\n  <ae-control name=\"comments\" :document=\"document\"></ae-control>\n  </div>\n</div>","css":"._CSS-container  {\r\n  display:flex;\r\n  flex-direction: column;\r\n  padding: var(--bp-page-content-padding);\r\n}\r\n\r\n\r\n._CSS-who {\r\n  margin: 0 var(--ae-space-1);\r\n}\r\n\r\n._CSS-infos {\r\n  display: flex;\r\n  align-items: center;\r\n  margin-bottom: 8px;\r\n}\r\n\r\n._CSS-infos__modifier {\r\n  margin-left: var(--ae-space-2);\r\n  display: flex;\r\n  align-items: center;\r\n}\r\n\r\n._CSS-infos__group {\r\n  xmargin: 0 var(--ae-space-2);\r\n  border-radius: var(--ae-border-radius);\r\n  color: var(--ae-ui-background);\r\n  padding: var(--ae-space-1);\r\n}\r\n\r\n._CSS-infos__dates {\r\n  display: flex;\r\n  align-items: center;\r\n}\r\n\r\n._CSS-editor {\r\n  position: relative;\r\n}\r\n\r\n._CSS-editor__actions {\r\n  position: absolute;\r\n  right: 0;\r\n  top: 0;\r\n  z-index: 1;\r\n}\r\n\r\n._CSS-editor__form {\r\n  border: var(--ae-border-width) solid var(--ae-border-color);\r\n  border-radius: var(--ae-border-radius);\r\n  background: var(--ae-ui-background);\r\n  padding: var(--ae-space-2);\r\n}","controller":"class Controller {\n  async init() {\n    locals.canEdit = false\n    locals.editing = false\n    \n    locals.group = await Aeppic.get(document.p)\n    locals.profile = await Aeppic.getProfilePageForAccount(document.modified.by)\n\n    locals.canEdit = await Aeppic.canEdit(document)\n\n  }\n\n  toolbarEvent(eventType) {\n    if (eventType === 'save') {\n      $refs.form.save()\n      $refs.form.resetEdits()\n      locals.editing = false\n\n      return\n    }\n    if (eventType === 'reset') {\n      $refs.form.resetEdits()\n      locals.editing = false\n\n      return\n    }\n  }\n\n  get groupColor() {\n    if (!locals.group || !locals.group.data.color) {\n      return 'var(--ae-primary)'\n    } else {\n      return locals.group.data.color\n    }\n  }\n\n  toggleEditing() {\n    const wasEditing = locals.editing\n\n    if (wasEditing) {\n      this.toolbarEvent('save')\n    }\n\n    locals.editing = !wasEditing\n  }\n}","packages":[]},"locks":[],"created":{"at":"2021-10-12T14:17:24+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-11-03T14:50:13+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1635951013205,"ct":1634048244944,"a_depth":4,"a":["apps","b91e3079-75ae-49cd-981b-3053bf47208c","e7a0be94-cd94-4210-875e-0cceb7e8bc6c","86966584-6ee3-4351-8e6e-ff6e695b970a"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"d506f8b5-8343-475e-b586-4be5348a162c","v":"e3fc6753f00d8727","previous":{"v":"a3d0bbd86ac17bea"},"p":"group","f":{"id":"design-form","v":"74db9b6ed94b41d9","text":"Design"},"data":{"name":"page--left","template":"<div class=\"_CSS-container\">\n  <!-- <h3>Keys</h3>\n  <div class=\"_CSS-list\">\n    <ae-list  :search=\"'f.id:key-form AND data.groups:' + document.id\"\n              list-id=\"2dab232c-2c8a-4aa4-b3f9-6023a7116161\"\n              @selected=\"Aeppic.navigateTo($event)\"\n              param-design=\"accessible-documents,search-card\"\n    ></ae-list>\n  </div> -->\n\n<h3 v-if=\"locals.indirectGroupsMap && Object.keys(locals.indirectGroupsMap).length > 0\">Indirect group memberships</h3>\n<div  class=\"_CSS-list\">\n  <div v-for=\"(groupIdsIncludingIndirect, groupId) in locals.indirectGroupsMap\">\n    <ae-design  name=\"indirect-group,title\"\n                :document-id=\"groupId\"\n                :param-indirect-references=\"groupIdsIncludingIndirect\"\n                @click.native=\"Aeppic.navigateTo(groupId)\"\n    ></ae-design>\n  </div>\n</div>\n\n\n<h3>Alle Zugriffsrechte der Gruppe\n</h3>\n  <ae-layout v-if=\"locals.allGroupsIds\" layout-id=\"d5255c05-8040-47e5-a2e3-0e499be8579d\" :param-groups-ids=\"locals.allGroupsIds\" :param-document=\"document\"></ae-layout>\n</div>\n","css":"._CSS-container {\n  padding: var(--bp-page-content-padding);\n}\n._CSS-list {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(600px, 1fr));\n  grid-gap: 8px;\n}\n\n._CSS-list > * {\n  background: var(--ae-ui-card-background);\n  padding: 8px;\n}","controller":"class Controller {\n  async init() {\n    locals.isSystemManagedGroup = true\n\n    await Aeppic.nextRenderPass()\n    startEditing()\n\n    locals.indirectGroupsMap = {}\n\n    const groups = [document]\n    const indirectGroupsMap = await this._indirectGroupMemberships(groups)\n\n    for (const groupId in indirectGroupsMap) {\n      indirectGroupsMap[groupId] = [... new Set(indirectGroupsMap[groupId])]\n    }\n\n    locals.indirectGroupsMap = indirectGroupsMap\n\n    locals.allGroupsIds = [...groups.map(ref => ref.id), ...Object.keys(indirectGroupsMap)]\n    \n\n    const canEdit = await Aeppic.canEdit(document)\n    locals.canEdit = Aeppic.Account && Aeppic.Account.data.isGroupAccount === false && canEdit === true\n\n    const systemFolder = await this._getSecurityFolder()\n\n    if (systemFolder.data.securityGroup && systemFolder.data.securityGroup.id === document.id) {\n      locals.isSystemManagedGroup = true\n    } else if (systemFolder.data.trackedTimeGroup && systemFolder.data.trackedTimeGroup.id === document.id) {\n      locals.isSystemManagedGroup = true\n    } else {\n      locals.isSystemManagedGroup = false\n    }\n  }\n\n  async _getSecurityFolder() {\n    if (!document.a) {\n      return null\n    }\n\n    const securityFolder = await Aeppic.findOne(`a:${document.a[0]} AND f.id:81939b86-a48e-480e-afd1-cb2907568550`)\n    return securityFolder\n  }\n\n  toolbarEvent(eventType) {\n    if (eventType === 'save') {\n      save()\n      return\n    }\n    if (eventType === 'reset') {\n      resetEdits()\n      return\n    }\n  }\n\n  get isReadonly() {\n    if (typeof params.readonly === 'boolean') {\n      return params.readonly\n    }\n\n    return false\n  }\n\n  async _indirectGroupMemberships(groups) {\n    const indirects = {}\n    \n    for (const group of groups) {\n      const containingGroup = group.data.group.id ? await Aeppic.get(group.data.group.id) : null\n\n      if (containingGroup) {\n        if (!indirects[containingGroup.id]) {\n          indirects[containingGroup.id] = []\n        }\n\n        indirects[containingGroup.id].push(group.id)\n\n        const upperIndirectMemberships = await this._indirectGroupMemberships([containingGroup])\n\n        if (upperIndirectMemberships) {\n          for (const key in upperIndirectMemberships) {\n            if (!indirects[key]) {\n              indirects[key] = []\n            }\n\n            indirects[key].push(...upperIndirectMemberships[key])\n          }\n        }\n      }\n    }\n\n    return indirects\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-06-12T14:16:57+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2022-05-12T07:48:11+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1652341691391,"ct":1591971417421,"a_depth":5,"a":["system","b2533f7b-ea85-4680-99ed-d8e11be641b9","0e6939d6-9b93-4165-b6bd-977e4da881f3","627f5b74-3baf-45f8-a1d3-a5936839b844","group"],"a_forms":["system-folder-form","folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"d8192b0f-8e9b-44ce-bda5-ad79ed0db408","v":"7de3337dc8c95d46","previous":{"v":"d578193bc7fc0ee4"},"p":"381e2c4e-9eed-42a5-b65c-ad72e25369f0","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"page--left","applies":"","template":"<div v-show=\"false\" ref=\"invisibleElement\"></div>\n<div ref=\"container\"  class=\"_CSS-container\" style=\"\" :style=\"Aeppic.Device === 'Phone'? '' : 'display: flex;'\">\n\n  <div v-if=\"Aeppic.Device !== 'Phone'\">\n    <div class=\"_CSS-newsgroups-section\">\n      <div class=\"_CSS-newsgroups\">\n        <ae-design class=\"_CSS-newsgroup\" @click.stop.native=\"Aeppic.drillInto(group)\" name=\"nav-item,title\" :document=\"group\" :key=\"group.id + '--small'\" v-for=\"group of locals.groups\"></ae-design>  \n      </div>  \n    </div>\n\n    <div class=\"_CSS-navbutton\" @click.stop=\"controller.scrollToTop()\">\n      <ae-icon class=\"fas fa-chevron-up\" style=\"color: white; width: var(--ae-size-5); height: var(--ae-size-5);\"></ae-icon>\n    </div>\n  </div>\n\n  <div v-else class=\"_CSS-newsgroups-section--mobile\">\n    <select @change=\"Aeppic.drillInto($event.target.value)\" class=\"_CSS-newsgroups--mobile\">\n      <option>Nach Kategorie filtern</option>\n      <option :value=\"group.id\" v-for=\"group of locals.groups\">{{group.data.name}}</option>\n    </select>\n  </div>\n\n\n\n  <!--- ## News 3.0 ##\n  <div v-else>\n    <div v-if=\"!locals.hideNewsgroup\" class=\"_CSS-newsgroups-section--mobile\" style=\"background: pink\">\n        <div class=\"_CSS-newsgroups--mobile\">\n        <ae-design class=\"_CSS-newsgroup--mobile\" @click.stop.native=\"Aeppic.drillInto(group)\" name=\"nav-item,title\" :document=\"group\" :key=\"group.id + '--small'\" v-for=\"group of locals.groups\"></ae-design>  \n      </div>  \n      </div>\n    <div  class=\"_CSS-navbutton\" :class=\"Aeppic.Device === 'Phone'? '_CSS-navbutton--mobile' : ''\" @click.stop=\"controller.showNewsgroups()\">\n      <ae-icon class=\"fas fa-newspaper\" style=\"color: white; width: var(--ae-size-5); height: var(--ae-size-5);\"></ae-icon>\n    </div>\n\n  </div> -->\n    <div class=\"_CSS-news\" :style=\"Aeppic.Device === 'Phone'? 'width: 100%min-width: 0;' : 'width: 70%; min-width: 0;'\">\n      <ae-list list-id=\"661e2e14-104e-4e95-b6f7-5e83a6ac1298\" :param-root=\"document.id\" @selected=\"Aeppic.drillInto($event, arguments[1])\"></ae-list> \n    </div>\n  </div>\n  ","css":"._CSS-container {\r\n  position: relative;\r\n  height: 100%;\r\n}\r\n\r\n._CSS-newsgroups-section {\r\n  width: var(--ae-size-12);\r\n  padding: var(--ae-size-3);\r\n} \r\n\r\n._CSS-newsgroups {\r\n  display: flex;\r\n  flex-wrap: wrap;  \r\n}\r\n\r\n._CSS-navbutton {\r\n  cursor: pointer;\r\n  position: absolute;\r\n  z-index: 1;\r\n  bottom: var(--ae-size-3);\r\n  right: var(--ae-size-3);\r\n  background:var(--ae-primary-600);\r\n  width: var(--ae-size-7); \r\n  height: var(--ae-size-7);\r\n  border-radius: 50%; \r\n  display: flex;\r\n  justify-content: center;\r\n  align-items: center; \r\n  box-shadow: var(--ae-shadow-2);\r\n}\r\n\r\n/*._CSS-newsgroups-section--mobile {\r\n  position: fixed;\r\n  height: var(--ae-size-12);\r\n  width: var(--ae-size-6);\r\n  z-index: 1;\r\n  bottom: var(--ae-size-8);\r\n  right: var(--ae-size-4);\r\n  overflow: scroll;\r\n  box-shadow: var(--ae-shadow-2);\r\n} */\r\n\r\n._CSS-newsgroups-section--mobile {\r\n  padding: 0 var(--ae-size-6);\r\n}\r\n\r\n\r\n/*._CSS-newsgroups--mobile {\r\n  width: 100%;\r\n  display: flex;\r\n  flex-direction: column; \r\n} */\r\n\r\n._CSS-newsgroups--mobile {\r\n  width: 100%;\r\n  background: var(--ae-background-100);\r\n  margin: var(--ae-size-3) 0;\r\n}\r\n\r\n._CSS-newsgroup--mobile {\r\n  width: var(--ae-size-11);\r\n\r\n}\r\n\r\n._CSS-navbutton--mobile {\r\n  width: var(--ae-size-7); \r\n  height: var(--ae-size-7);\r\n  bottom: var(--ae-size-4);\r\n  right: var(--ae-size-4);\r\n  \r\n}\r\n\r\n._CSS-newsgroup {\r\n  padding: var(--ae-size-1);\r\n  width: 60%;\r\n}\r\n\r\n._CSS-news {\r\n  height: 100%;\r\n  flex: 3;\r\n  padding: var(--ae-size-3);\r\n}\r\n\r\n","controller":"class controller {\n  init() {\n    locals.groups = []\n\n    Aeppic.subscribe(`p:${document.p} f.id:381e2c4e-9eed-42a5-b65c-ad72e25369f0`, (groups) => {\n      \n      locals.groups = groups.filter(newsgroup => newsgroup.id !== document.id)\n    })\n  }\n\n  scrollToTop() {\n    $emit('scroll-to', {\n      top: 0,\n      left: 0,\n      behavior: 'smooth'\n    })\n  }\n}","packages":[]},"locks":[],"created":{"at":"2018-04-19T14:27:06+02:00","by":"","from":"","client":"server"},"modified":{"at":"2021-10-13T11:19:40+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1634123980985,"ct":1524140826555,"a_depth":4,"a":["apps","b91e3079-75ae-49cd-981b-3053bf47208c","e7a0be94-cd94-4210-875e-0cceb7e8bc6c","381e2c4e-9eed-42a5-b65c-ad72e25369f0"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"f17af0f9-cc18-42e6-bec0-558fb7c93335","v":"f9b8ea9adc0d01f5","previous":{"v":"1eb002117c701bb7"},"p":"954212d9-9cc7-4356-82e3-a80cf745da4d","f":{"id":"design-form","v":"24435d748c76f819","text":"Design"},"data":{"name":"page--left","template":"<div class=\"_CSS-container\">\n  <ae-list :root-document-id=\"document.id\"\n          class=\"_CSS-list\"\n          query-id=\"2cc53ecb-aa99-4ccd-ad57-a083a66262d1\"\n          list-id=\"2e798091-303f-406b-a42a-93aa1cd8425c\"\n          @selected=\"Aeppic.drillInto($event)\"\n          :sort=\"locals.sort\"\n          param-design=\"ref-card,card\"\n  ></ae-list>\n</div>","css":"._CSS {\n  padding: var(--bp-page-content-padding);\n}\n\n._CSS-container {\n  max-width: var(--ae-page-max-width);\n  margin: auto;\n}\n","controller":"init() {\n  locals.sort = [{\n    field: 'data.date',\n    descending: true\n  }, {\n    field: 'created.at',\n    descending: true\n  }]\n}\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2019-06-05T12:56:32+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2020-06-16T08:51:33+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1592297493579,"ct":1559739392783,"a_depth":4,"a":["apps","91a90288-37bc-4f86-be38-4283833717d2","cb7a4c1b-703a-4b16-9190-aa2a26532688","954212d9-9cc7-4356-82e3-a80cf745da4d"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"f96de8b5-2afb-4b9a-8ab4-0ceb480204d8","v":"36396119ab40524f","previous":{"v":"f53f13acc6325d64"},"p":"929d4384-92b3-4450-aa3b-0e7f20e2103c","f":{"id":"design-form","v":"49954170df6a253b","text":"Design"},"data":{"name":"page--left","template":"<div class=\"_CSS-container\" @toolbar=\"controller.toolbarEvent($event.detail)\">\n  <!-- <ae-form  ref=\"form\"\n            :document=\"document\" \n            :readonly=\"controller.isReadonly\"\n            :auto-save=\"params.autoSave || false\"\n  ></ae-form> -->\n\n  <div class=\"_CSS-list\">\n    <ae-list list-id=\"table-list\"\n            :search=\"'p:'+ document.id + ' f.id:4b1bce8a-884e-44de-a2cd-352a7f89baa7'\"\n            style=\"height: 100%;\"\n    ></ae-list>\n  </div>\n</div>\n","css":"._CSS {\n  overflow: hidden;\n}\n\n._CSS-container {\n  max-width: var(--ae-page-max-width);\n  margin: auto;\n  overflow: hidden;\n  height: 100%;\n}\n\n._CSS-list {\n  overflow: hidden;\n  padding: 0 var(--bp-page-content-padding);\n  height: 100%;\n}\n","controller":"class Controller {\n  init() {\n    setTimeout(() => {\n     startEditing()\n    })\n  }\n\n  toolbarEvent(eventType) {\n    if (eventType === 'save') {\n      save()\n      return\n    }\n    if (eventType === 'reset') {\n      resetEdits()\n      return\n    }\n  }\n\n  get isReadonly() {\n    if (typeof params.readonly === 'boolean') {\n      return params.readonly\n    }\n\n    return false\n  }\n}","packages":[],"description":""},"locks":[],"created":{"at":"2019-03-08T14:03:53+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2021-09-29T12:21:27+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1632918087320,"ct":1552053833987,"a_depth":4,"a":["apps","5ec4fefb-1235-484e-8d6f-4fd645bae372","75920050-07b1-4e79-9742-54abcc235e91","929d4384-92b3-4450-aa3b-0e7f20e2103c"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"450b4f70-2fb8-4896-8c09-8ca7b83fafdb","v":"a36defd0a4dc3d59","previous":{"v":"3af21ff93b5d40f0"},"p":"86966584-6ee3-4351-8e6e-ff6e695b970a","f":{"id":"design-form","v":"e3fe9ece11aabc5e","text":"Design"},"data":{"name":"page--left.OLD","applies":"","template":"<!-- <div class=\"_CSS-toolbar\">\n</div> -->\n<div class=\"_CSS-content\">\n  <div class=\"_CSS-card-infos--prefix\">\n    <ae-design class=\"_CSS-card__user\" :document=\"locals.profile\" name=\"avatar--small\"></ae-design>\n    <ae-design class=\"_CSS-card__user-name\" :document=\"locals.profile\" name=\"title\"></ae-design>\n    <span class=\"_CSS-card__user-name\" v-if=\"!locals.profile\">Admin</span>\n    <span>in Gruppe</span>\n    <ae-design class=\"_CSS-card__group\" @click.native.stop=\"Aeppic.drillInto(locals.group)\" :document=\"locals.group\" name=\"title\" :style=\"{ 'background-color': controller.groupColor }\" ></ae-design>\n    <span style=\"flex:1\"></span>\n    <!-- <span class=\"_CSS-card__date\">{{data.publikationsdatum && Aeppic.DateTime.fromISO(data.publikationsdatum).toLocaleString() }}</span> -->\n\n    <div class=\"_CSS-date-modified-at\" title=\"Änderungsdatum\">\n      <span>{{data.publikationsdatum ? Aeppic.DateTime.fromISO(data.publikationsdatum).toLocaleString() : Aeppic.DateTime.fromISO(document.created.at).toLocaleString() }}</span>&nbsp;\n      <span v-if=\"document.created.at !== document.modified.at\" :title=\"Aeppic.DateTime.fromISO(document.modified.at).toLocaleString(Aeppic.DateTime.DATETIME_SHORT)\"> (Bearbeitet)</span>\n    </div>\n  </div>\n  <!-- <ae-design v-if=\"document.modified.by\" name=\"avatar--small,text\" :document-id=\"document.modified.by\" style=\"display: inline-block;\"></ae-design>\n  <span v-else>Admin</span>\n  <span v-if=\"data.publikationsdatum\">{{Aeppic.DateTime.fromISO(data.publikationsdatum).toLocaleString()}}</span> -->\n\n  <ae-control class=\"_CSS-editor\" xv-if=\"!data.beitragHtml && data.beitrag\" :document=\"document\" name=\"editor\" field-name=\"beitrag\" :readonly=\"true\" :param-no-expand=\"true\"></ae-control>\n  <!-- <div class=\"_CSS-editor _CSS-editor--html ql-editor\" v-else v-html=\"data.beitragHtml\"></div> -->\n\n  <ae-control name=\"comments\" :document=\"document\"></ae-control>\n</div>","css":"._CSS  {\r\n  display:flex;\r\n  flex-direction: column;\r\n  margin-top:1em;\r\n  padding: var(--bp-page-content-padding);\r\n}\r\n\r\n._CSS-card-infos--prefix {\r\n  display: flex;\r\n  align-items: center;\r\n  margin-bottom: 8px;\r\n}\r\n\r\n._CSS-card__group {\r\n  color:white;\r\n  padding: 0 4px;\r\n}\r\n\r\n._CSS-card-infos--prefix > *+* {\r\n  margin-left: 8px;\r\n}\r\n._CSS-card-infos--prefix > span {\r\n  color: var(--ae-foreground-l2);\r\n}\r\n\r\n._CSS-editor {\r\n  margin-top: 0px;\r\n  border: var(--ae-border-width) solid var(--ae-border-color);\r\n  border-radius: var(--ae-border-radius);\r\n  background: var(--ae-ui-background);\r\n  padding: 8px;\r\n}\r\n\r\n/* ._CSS-toolbar {\r\n  display: block;\r\n  min-height: 8px;\r\n}\r\n\r\n._CSS-toolbar::after {\r\n  content:'';\r\n  position:relative;\r\n  background: linear-gradient(to bottom, rgba(0,0,0,0.15) 0%,rgba(0,0,0,0) 100%); \r\n  height: 8px;\r\n  display:block;\r\n} */\r\n","controller":"class Controller {\n  async init() {\n    locals.newComment = null\n    locals.group = await Aeppic.get(document.p)\n    locals.profile = Aeppic.getProfilePageForAccount(document.modified.by)\n  }\n\n  get groupColor() {\n    if (!locals.group || !locals.group.data.color) {\n      return 'var(--ae-primary)'\n    } else {\n      return locals.group.data.color\n    }\n  }\n}","packages":[]},"locks":[],"created":{"at":"2017-10-24T14:33:00+02:00","by":"","from":"","client":"e63ff5df-0326-4506-ac23-21df67b984e2"},"modified":{"at":"2021-10-12T15:08:27+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1634051307715,"ct":1508848380279,"a_depth":4,"a":["apps","b91e3079-75ae-49cd-981b-3053bf47208c","e7a0be94-cd94-4210-875e-0cceb7e8bc6c","86966584-6ee3-4351-8e6e-ff6e695b970a"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"debf8265-8ea4-4eda-a8c0-d801374404bf","v":"6a193fa22ddec7e4","previous":{"v":"c6eb9d0ef9c0f871"},"p":"c6349b48-9561-4c06-9200-fe9df9b6fb3e","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"page--limited-access","template":"<div       @toolbar=\"controller.toolbarEvent($event.detail)\">\n  <ae-form layout-id=\"bb8ff784-7b41-4853-93b1-82f40d5b7dc7\" :document=\"document\" ref=\"form\"></ae-form>\n  <!-- <ae-form layout-id=\"6c39f2cc-6059-42b2-8796-5c803899367c\"\n          :document=\"document\"\n          :view=\"locals.view\"\n          ref=\"form\"\n  ></ae-form> -->\n</div>","css":"","controller":"class Controller {\n  init() {\n    locals.view = {\n      only: {\n        fields: ['dateienBerechnung']\n      }\n    }\n  }\n\n    toolbarEvent(eventType) {\n    if (eventType === 'save') {\n      $refs.form.save()\n      $refs.form.resetEdits()\n\n      return\n    }\n    if (eventType === 'reset') {\n      $refs.form.resetEdits()\n\n      return\n    }\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-05-19T13:05:30+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-05-19T13:25:05+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1652966705983,"ct":1652965530480,"a_depth":4,"a":["apps","94a64d89-d204-4918-b147-d717914fb03e","f254ce25-42f1-4333-8ee7-23554bf746c1","c6349b48-9561-4c06-9200-fe9df9b6fb3e"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"165cb892-2e4f-4796-9af4-aad719f41985","v":"a96ed7402e4762ad","previous":{"v":"23ea629f8cdc71f6"},"p":"f6f822ec-eff4-4dc9-9ca6-8131004688da","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"page--list","template":"\n<div>\n  <section class=\"flex gap-4 items-center\">\n    <header class=\"text-lg font-bold\">\n      Beläge (zuletzt erstellt) \n    </header>\n\n    <div class=\"flex-1\"></div>\n\n    <div class=\"flex gap-2\">\n      <!-- <button class=\"ae-button ae-button--secondary\">\n        Sortieren (Datum, created.at)\n      </button> -->\n\n      <button class=\"ae-button ae-button--secondary\" @click.stop=\"locals.categorize = !locals.categorize\">\n        <ae-icon v-if=\"locals.categorize\" class=\"fa fa-toggle-on\"></ae-icon>\n        <ae-icon v-if=\"!locals.categorize\" class=\"fa fa-toggle-off\"></ae-icon>\n        Ka­te­go­ri­sie­ren nach Gebäude\n      </button>\n    </div>\n  </section>\n\n  <section>\n\n    <div v-if=\"locals.categorize\" class=\"flex flex-col gap-2 \">\n      <div v-for=\"building of locals.buildings\" class=\"p-4 border border-md bg-white\">\n        <ae-design name=\"title\" \n                  :document-id=\"building.id\"\n                  class=\"text-xl bold\"\n        ></ae-design>\n\n<!-- FIXME: sort must be set, because searchOptions is buggy (2023-02-02) -->\n        <ae-list list-id=\"208b6d2d-4198-45a7-b716-b697e8e39d39\"\n                :root-document-id=\"building.id\"\n                query-id=\"71d5633a-9dbd-4c96-b6e0-1c6ffc5ef0f1\"\n                :filter=\"locals.filter\"  \n                :search-options=\"locals.searchOptions\"\n                :sort=\"locals.searchOptions.sort\"\n                param-design=\"card\" \n                @selected=\"Aeppic.drillInto($event, arguments[1])\"\n        ></ae-list>\n      </div>\n    </div>\n\n    <div v-else>\n      <!-- FIXME: sort must be set, because searchOptions is buggy (2023-02-02) -->\n      <ae-list list-id=\"208b6d2d-4198-45a7-b716-b697e8e39d39\"\n              :root-document-id=\"document.a[0]\"\n              query-id=\"71d5633a-9dbd-4c96-b6e0-1c6ffc5ef0f1\"\n              :filter=\"locals.filter\"\n              :search-options=\"locals.searchOptions\"\n              :sort=\"locals.searchOptions.sort\"\n              param-design=\"card\"\n              @selected=\"Aeppic.drillInto($event, arguments[1])\"\n      ></ae-list>\n    </div>\n  </section>\n</div>\n","css":"","controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Building: 'b433eabd-abe6-4564-940f-a918f71037fb',\n      Beleg: 'c2d9407d-9dd6-42ff-acdc-ec2e296bea99'\n    }\n\n    locals.buildings = []\n    locals.categorize = true\n\n    locals.filter = `f.id:${this.FORMS.Beleg}`\n    locals.searchOptions = {\n      size: 16,\n      sort: [ \n        { field: 'data.datum', descending: true },\n        { field: 'created.at', descending: true },\n        'id'\n      ]\n    }\n\n    locals.buildings = await Aeppic.find(`a:${document.a[0]} f.id:${this.FORMS.Building}`, { sort: 'data.name'})\n  }\n} ","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-11-23T10:02:54+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-02-02T10:43:44+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1675334624900,"ct":1669197774390,"a_depth":4,"a":["apps","85d3c028-a61c-4be8-93d0-4366bc45752f","25fda732-5296-4fab-8d4e-92c3e32ca2c0","f6f822ec-eff4-4dc9-9ca6-8131004688da"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"241cdd09-ab91-4ac0-942b-fd3af13729b7","v":"5dbfd59e1b406918","previous":{"v":"ff209ea57d29efe5"},"p":"275b807f-7dbb-4351-b731-669e275fa97d","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"page--model","applies":"","template":"<ae-form layout-id=\"89d4a09b-9490-4c71-ad30-0c04c5fbf6d4\" :document=\"document\" :auto-save=\"true\"></ae-form>","css":"","controller":"","packages":[]},"locks":[],"created":{"at":"2018-06-14T11:36:30+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2018-10-30T12:51:00+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1540903860811,"ct":1528976190747,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","275b807f-7dbb-4351-b731-669e275fa97d"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"43b1a747-cc0a-4231-9996-73542198bf70","v":"4e5551f84d0b81ed","previous":{"v":"af953e15880ee93f"},"p":"459069ef-d793-4f8c-967b-a49d150c6176","f":{"id":"design-form","v":"3a761d06f59c46c1","text":"Design"},"data":{"name":"page--model","template":"<div v-show=\"false\" ref=\"invisibleElement\"></div>\n\n<header class=\"_CSS-header\">\n  <div class=\"_CSS-header__row\">\n    <ae-layout layout-id=\"b2b99ee1-c14c-4186-a2f3-e1316f765f94\" @language-change=\"$emit('language-change')\"></ae-layout>\n  \n    <div>\n      <ae-design name=\"logo\" :document=\"data.casting\"></ae-design>\n      <ae-design class=\"_CSS-title\" name=\"title\" :document=\"data.casting\"></ae-design>\n    </div>\n  </div>\n\n  <ae-design class=\"_CSS-header__project\" name=\"title\" :document=\"data.project\"></ae-design>\n  <ae-design class=\"_CSS-header__movie\" name=\"title\" :document=\"data.movie\"></ae-design>\n</header>\n\n<template v-if=\"!locals.document\">\n  <ae-layout class=\"_CSS-spinner\" layout-id=\"fefa8352-0e9a-4ba8-8349-c9402ac8aefa\"></ae-layout>\n</template>\n<template v-else>\n  <div class=\"_CSS-login\" v-if=\"controller.isOwnCompanyUser\">\n    <div>\n      Hallo <ae-design name=\"title\" :document=\"Aeppic.ProfilePage\" style=\"display: inline;\"></ae-design>!<br>\n      Du führst gerade eine Bewerbung im Namen des folgend eingegebenen Bewerbers durch. E-Mails werden wie in einer normalen Bewerbung versendet.<br>\n      Einziger Unterschied: Du wirst dabei nicht automatisch mit dem Bewerber-Account angemeldet.\n    </div>\n  </div>\n  <div class=\"_CSS-login\" v-else-if=\"!locals.accountSelected\">\n    <div class=\"_CSS-login__info\">\n      Du hast bereits einmal an einem unserer E-Castings teilgenommen?<br><br>\n      Dann melde dich an und wir laden deine Daten. Du kannst danach alles noch einmal anpassen.\n    </div>\n    <input type=\"text\" v-model=\"locals.username\" required v-translate.placeholder=\"'username'\" placeholder=\"E-Mail\" @input=\"locals.errors.login = null\">\n    <input ref=\"password\" type=\"password\" v-model=\"locals.password\" v-translate.placeholder=\"'password'\" placeholder=\"Passwort\" @input=\"locals.errors.login = null\">\n    <div class=\"_CSS-error\" v-if=\"locals.errors.login\" v-translate=\"'error:unkown-user-or-password'\">\n      Unbekannte E-Mail oder Passwort.\n    </div>\n    <button class=\"_CSS-button-action\" @click.stop=\"controller.login()\" v-translate=\"'login'\" :disabled=\"locals.processing\">Anmelden</button>\n  </div>\n  <div v-else class=\"_CSS-login\">\n    <span class=\"_CSS-login__info\">Willkommen zurück!<br>Wir haben deine vormals eingegebenen Daten unten eingefügt.</span>\n  </div>\n\n  <form @submit.prevent novalidate>\n    <ae-form :document=\"locals.document\" :watch=\"false\"></ae-form>\n  </form>\n\n  <div class=\"_CSS-footer\">\n    <template v-if=\"locals.errors.save\">\n      <h2 v-translate=\"'error:user:input'\">Fehler bei der Eingabe</h2>\n\n      <div v-for=\"errorMessages in locals.errors.save\" v-if=\"errorMessages\">\n        <div class=\"_CSS-error\">\n          {{ Aeppic.translate(errorMessages) }}\n        </div>\n      </div>\n    </template>\n\n    <button class=\"_CSS-button-action\" @click=\"controller.save()\" v-translate=\"'application:save-and-goto-upload'\" :disabled=\"locals.processing\">Bewerbung speichern und Dateien hochladen</button>\n  </div>\n    \n  <div class=\"dbps-bottom-spacer\"></div>\n\n\n  <ae-dialog ref=\"loadingDialog\" :full-screen=\"true\" :dialog-classes=\"{'_CSS-dialog': true}\">\n    <div slot=\"body\" class=\"_CSS_dialog__body\">\n      <ae-design name=\"logo\" :document=\"locals.document.data.casting\"></ae-design>\n\n      <div class=\"_CSS-loading-text\">\n        <template v-if=\"locals.loadingMessageKey === locals.LOADING_MESSAGE_KEYS.save\">\n        Hey {{ locals.document.data.firstname }},\n        wir speichern deine Bewerbung gerade.<br><br>\n        Gleich kannst die Dateien hochladen, welche wir von dir für das Casting benötigen.<br>\n        </template>\n        <template v-else-if=\"locals.loadingMessageKey === locals.LOADING_MESSAGE_KEYS.login\">\n          Hey,\n          wir melden gerade dich gerade mit {{ locals.username }} an und laden deine Daten aus deinem Profil.<br><br>\n          Gleich kannst du deine Bewerbung vervollständigen.\n        </template>\n      </div>\n      <progress style=\"width: 50%;\"></progress>\n      <!-- <ae-layout class=\"_CSS-spinner\" layout-id=\"fefa8352-0e9a-4ba8-8349-c9402ac8aefa\"></ae-layout> -->\n    </div>\n  </ae-dialog>\n\n</template>\n","css":"._CSS {\n  --ae-theme-text-secondary-on-background: black;\n}\n\n._CSS-header {\n  position: relative;\n  padding: 16px;\n  overflow: hidden;\n  white-space: nowrap;\n  display: flex;\n  flex-flow: column;\n}\n\n._CSS-header__row {\n  display: flex;\n  justify-content: space-between;\n}\n\n._CSS-title {\n  font-size: 2rem;\n  font-weight: 600;\n}\n\n._CSS-footer {\n  padding: 0 8px;\n  display: flex;\n  flex-flow: column;\n}\n\n._CSS-termsofuse {\n  font-size: 1.1rem;\n  display: flex;\n  align-items: center;\n  margin: 1rem 0;\n}\n\n._CSS-header__project {\n  font-size: 2rem;\n  white-space: normal;\n}\n\n._CSS-header__movie {\n  font-size: 1.5rem;\n  white-space: normal;\n}\n\n._CSS-login {\n  margin: 0 5%;\n  padding: 8px;\n  display: flex;\n  flex-flow: column;\n  justify-content: center;\n  margin-bottom: 1rem;\n\n  background: white;\n  border-radius: 8px;\n}\n\n._CSS-login > input {\n  margin: 0.7rem 0;\n  border: none;\n  border-bottom: 1px solid black;\n  background: white;\n}\n\n\n._CSS-login__info {\n  display: flex;\n  font-size: 1.1rem;\n  justify-content: center;\n}\n\n._CSS-button-action {\n  background: gold;\n  padding: 1em 2em;\n  border: none;\n  flex: 1;\n  text-transform: uppercase;\n  font-size: 1.1rem;\n}\n\n\n/* loading dialog */\n._CSS-dialog {\n  xbackground-color: transparent !important;\n}\n\n._CSS-dialog .ae-dialog__body {\n  justify-content: center;\n  align-items: center;\n  background-color: rgba(255,255,255,0.7);\n}\n\n._CSS_dialog__body {\n  height: 100%;\n  width: 100%;\n  position: relative;\n  display: flex;\n  flex-flow: column;\n  justify-content: center;\n  align-items: center;\n  padding: var(--ae-size-6);\n}\n\n._CSS-loading-text {\n  display: flex;\n  justify-content: center;\n  margin: var(--ae-size-5) 0;\n}\n\n._CSS-spinner {\n  position: absolute;\n  top: 25%;\n  left: 25%;\n  width: 10rem;\n  height: 10rem;\n}\n\n._CSS-error {\n  background: white;\n  padding: 8px;\n  margin-bottom: 1rem;\n}","controller":"class Controller {\n  async init() {\n    this.modelInBaseData = null\n\n    locals.processing = false\n    locals.username = ''\n    locals.password = ''\n    locals.loadingMessageKey = 'save'\n    locals.LOADING_MESSAGE_KEYS = {\n      save: 'save',\n      login: 'login'\n    }\n    locals.document = null\n    locals.accountSelected = null\n    locals.errors = {\n      save: false,\n      login: false\n    }\n\n    locals.document = await Aeppic.edit(document)\n    await this._createFilloutDocuments()\n  }\n\n  get isOwnCompanyUser() {\n    return Aeppic.Account && Aeppic.Account.a_forms.includes('1ec5237d-463a-417f-8dac-5bbbbc2e35b7')\n  }\n\n  showLoading(key) {\n    locals.loadingMessageKey = key || ''\n    \n    if ($refs.loadingDialog) {\n      $refs.loadingDialog.show()\n    }\n  }\n\n  hideLoading() {\n    if ($refs.loadingDialog) {\n      $refs.loadingDialog.close()\n    }\n  }\n\n   async _isDocumentValid() {\n    const form = await Aeppic.getFormForDocument(locals.document)\n    const validationErrors = form.validateDocumentData(locals.document.data)\n\n    if (validationErrors === null) {\n      return false\n    }\n\n    const messages = []\n\n    for (const key in validationErrors) {\n      messages.push(validationErrors[key].required)\n    }\n\n    console.log(messages)\n\n    return messages\n  }\n\n \n  async login() {\n    if (locals.processing) {\n      return\n    }\n\n    locals.processing = true\n\n    this.showLoading(locals.LOADING_MESSAGE_KEYS.login)\n\n    const loginResult = await Aeppic.login(locals.username, locals.password, true)\n\n    if (!loginResult.ok) {\n      if (loginResult.status === 404) {\n        locals.errors.login = ['error:login:user']\n      } else {\n        locals.errors.login = ['error:login:password']\n      }\n    } else {\n      await this._createFilloutDocuments()\n      locals.accountSelected = true\n    }\n\n    this.hideLoading()\n\n    locals.processing = false\n  }\n\n  async _getModelInBaseData() {\n    if (!Aeppic.ProfilePage || Aeppic.ProfilePage.f.id !== '44e0edf9-6515-4e4b-ad48-98a04d28df11') {\n      return null\n    }\n\n    const result = await Aeppic.find(`p:c9a08844-ee22-4c17-8419-02a081719533 id:${Aeppic.ProfilePage.id}`)\n    if (!result || !result[0]) {\n      return null\n    }\n\n    if (result.length > 1) {\n      console.error('Found more than 1 model in core data')\n    }\n\n    return result[0]\n  }\n\n  async _createFilloutDocuments() {\n    let alreadyHasAccount = false\n\n    const model = await this._getModelInBaseData()\n\n    if (model) {\n      alreadyHasAccount = true\n\n      this.modelInBaseData = model\n    }\n\n    if (alreadyHasAccount) {\n      const reducedModel = await Aeppic.clone(model, null, {\n        fieldsNotToClone: ['agencyName', 'agencyEmail', 'placeOfDeparture']\n      })\n\n      const changes = Aeppic.Model.mergeFields(reducedModel, locals.document, reducedModel)\n\n      if (changes) {\n        locals.document.data = changes.data\n      }\n    }\n\n    if (model) {\n      locals.document.addReference('model', this.modelInBaseData)\n    }\n  }\n\n  async save() {\n    if (locals.processing) {\n      return\n    }\n\n    locals.processing = true\n\n    await this._save()\n\n    locals.processing = false\n  }\n\n  async _save() {\n    if (await this._isDocumentValid()) {\n      locals.errors.save = ['error:fields:required']\n      return\n    }\n\n    this.showLoading(locals.LOADING_MESSAGE_KEYS.save)\n\n    let accountId = Aeppic.Account && Aeppic.Account.id ? Aeppic.Account.id : ''\n    let token = ''\n\n    if (!locals.accountSelected) {\n      const { ok, message, value } = await this._createAccountAndToken(locals.document, this.modelInBaseData, !this.isOwnCompanyUser)\n\n      await new Promise((resolve) => {\n        setTimeout(() => resolve(), 1000)\n      })\n      \n      if (!ok) {\n        locals.errors.save = [message]\n        this.hideLoading()\n        return\n      }\n      \n      accountId = value.accountId\n      token = value.token\n    }\n\n    const saveCommand = await Aeppic.Commands.execute('af378ea2-9f08-4821-a12f-34dcdf246c3b', locals.document, {\n      modelInBaseData: this.modelInBaseData,\n      applicationRequest: locals.document.cloneAsDocument(),\n      accountId\n    })\n\n    if (!saveCommand.ok || !saveCommand.value.ok) {\n      const message = saveCommand.value ? saveCommand.value.message : 'error:execution'\n      locals.errors.save = [message]\n      \n      this.hideLoading()\n\n      if (saveCommand.error) {\n        console.error(saveCommand.error)\n      }\n\n      return\n    }\n\n    const createdModelInBaseData = saveCommand.value.modelInBaseData\n\n    const updateProfileCommand = await Aeppic.Commands.execute('04870b2d-44c5-4504-a152-c1cc99809676', accountId, {\n      defaultPage: createdModelInBaseData,\n      profilePage: createdModelInBaseData,\n    })\n\n    if (!updateProfileCommand.ok || !updateProfileCommand.value.ok) {\n      const message = updateProfileCommand.value ? updateProfileCommand.value.message : 'error:execution'\n\n      locals.errors.save = [message]\n      this.hideLoading()\n\n      if (saveCommand.error) {\n        console.error(saveCommand.error)\n      }\n\n      return\n    }\n\n    Aeppic.move(accountId, createdModelInBaseData)\n\n    this.modelInBaseData = createdModelInBaseData\n    \n    // update account defaultPage/profilePage with generated modelInBaseData\n\n    const applicationAtBaseData = saveCommand.value.application\n\n    const cloneToEcastingResult = await Aeppic.Commands.execute('eecd22a4-5b81-4ed8-add0-5cc38bfb6bca', applicationAtBaseData)\n\n    if (!cloneToEcastingResult.ok || !cloneToEcastingResult.value.ok) {\n      const message = cloneToEcastingResult.value ? cloneToEcastingResult.value.message : 'error:execution'\n      locals.errors.save = [message]\n      \n      this.hideLoading()\n\n      if (saveCommand.error) {\n        console.error(saveCommand.error)\n      }\n\n      return\n    }\n\n    const applicationAtECasting = cloneToEcastingResult.value.application\n\n    \n    const shareCreationResult = await this._createShareAndMails(applicationAtECasting, accountId, token)\n\n    if (!shareCreationResult.ok || (shareCreationResult.value && !shareCreationResult.value.ok)) {\n      locals.errors.save = [shareCreationResult.message]\n      \n      this.hideLoading()\n\n      if (saveCommand.error) {\n        console.error(saveCommand.error)\n      }\n\n      return\n    }\n\n    // NOTE: get document, created by server-side commands, from persistence layer (server)\n    await Aeppic.get(applicationAtBaseData.id)\n\n    Aeppic.navigateTo(applicationAtBaseData.id)\n  }\n\n  async _createShareAndMails(application, accountId, token) {\n    const { ok, value, error } = await Aeppic.Commands.execute('222d0a9b-25bf-44d9-a0f1-6bf513a75ac1', application)\n    \n    if (!ok || !value.ok) {\n      if (error) {\n        console.error(error)\n      }\n\n      return {\n        ok,\n        message: 'error:execution'\n      }\n    }\n    \n    const share = value.share\n    \n    const {\n      email,\n      firstname,\n      surname,\n      agencyName,\n      agencyEmail,\n      project,\n    } = application.data\n\n    const ensuredProject = await Aeppic.get(project)\n\n    const baseUrl = params.baseUrl\n    const shareUrl = params.shareUrl\n    const applicationDetailQuestionsLink = `${baseUrl}/application/${share.data.identifier}`\n    \n    const mailsCommand = await Aeppic.Commands.execute('9bc3b0c7-7df6-40ab-a414-e4e0285a0bd1', accountId, {\n      email,\n      firstname,\n      surname,\n      agencyName,\n      agencyEmail,\n      projectName: ensuredProject.data.name,\n      applicationDetailQuestionsLink,\n      shareUrl,\n      baseUrl,\n      token,\n      sendRegistrationMail: !locals.accountSelected\n    })\n    \n    if (!mailsCommand.ok || !mailsCommand.value.ok) {\n      if (mailsCommand.error) {\n        console.error(mailsCommand.error)\n      }\n\n      return {\n        ok: false,\n        message: 'error:execution'\n      }\n    }\n    \n    return {\n      ok: true\n    }\n  }\n\n  async _createAccountAndToken(applicationRequest, modelInBaseData, loginAccount = true) {\n    const accountCommand = await Aeppic.Commands.execute('bef3f588-2770-4270-a061-553a303b21f7', '1d21a70e-45a4-4b4f-8481-8bc9b2d10662', {\n      email: applicationRequest.data.email,\n      defaultPage: modelInBaseData,\n      profilePage: modelInBaseData,\n    })\n\n    if (!accountCommand.ok) {\n      if (accountCommand.error) {\n        console.error(accountCommand.error)\n      }\n\n      return {\n        ok: false,\n        message: 'error:execution'\n      }\n    }\n\n    if (!accountCommand.value.ok) {\n      return {\n        ok: false,\n        message: 'error:email:existing'\n      }\n    }\n\n    const { id: accountId, password: accountPassword, name: accountName } = accountCommand.value.account\n\n    const tokenCommand = await Aeppic.Commands.execute('5c82f673-65be-4e39-8bfd-f4d10745daf0', accountId, {\n      onlyCreate: true\n    })\n\n    if (!tokenCommand.ok || !tokenCommand.value.ok) {\n      if (tokenCommand.error) {\n        console.error(tokenCommand.error)\n      }\n\n      return {\n        ok: false,\n        message: 'error:execution'\n      }\n    }\n    \n    if (loginAccount) {\n      const loginResult = await Aeppic.login(accountName, accountPassword, true)\n\n      if (!loginResult.ok) {\n        console.error('Could not execute automatic login')\n\n        return {\n          ok: false,\n          message: 'error:execution'\n        }\n      }\n    }\n    \n    return {\n      ok: true,\n      value: {\n        accountId,\n        token: tokenCommand.value.token\n      }\n    }\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2018-06-13T14:06:23+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2020-10-13T10:11:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1602583892874,"ct":1602583892874,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","459069ef-d793-4f8c-967b-a49d150c6176"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"e32dc4df-0f5e-4d3e-b1f8-2496a2906a85","v":"ac005a508f269b22","previous":{"v":"c63379558bdd9daf"},"p":"4551c597-7595-4858-8b7f-207a7fb15b3e","f":{"id":"design-form","v":"bcdfee0bbf32737b","text":"Design"},"data":{"name":"page--model","template":"<header class=\"_CSS-header\">\r\n  <div class=\"_CSS-header__row\">\r\n    <ae-layout  layout-id=\"b2b99ee1-c14c-4186-a2f3-e1316f765f94\"\r\n                @language-change=\"$emit('language-change')\"\r\n    ></ae-layout>\r\n    <div>\r\n      <ae-design\r\n                  name=\"logo\"\r\n                  :document=\"document\"\r\n      ></ae-design>\r\n      <ae-design\r\n                  class=\"_CSS-title\"\r\n                  name=\"title\"\r\n                  :document=\"document\"\r\n      ></ae-design>\r\n    </div>\r\n  </div>\r\n</header>\r\n\r\n<section class=\"_CSS__project-intro\">\r\n  <ae-design \r\n            :document-id=\"document.p\"\r\n            name=\"intro--shared,intro\"\r\n            :param-casting-id=\"document.id\"\r\n            :param-share-filters=\"params.shareFilters\"\r\n  ></ae-design> \r\n</section>\r\n\r\n<div class=\"dbps-bottom-spacer\"></div>\r\n","css":"._CSS-header {\r\n  position: relative;\r\n  padding: 16px;\r\n  overflow: hidden;\r\n  white-space: nowrap;\r\n}\r\n\r\n._CSS-header__row {\r\n  display: flex;\r\n  justify-content: space-between;\r\n}\r\n\r\n._CSS-title {\r\n  font-size: 2rem;\r\n  font-weight: 600;\r\n}\r\n\r\n\r\n._CSS-header::before {\r\n  content:'';\r\n  position: absolute;\r\n  left:0;\r\n  right:0;\r\n  bottom:0;\r\n  top:0;\r\n  background: rgba(255,255,255,0.3);\r\n  border-bottom: 1px solid rgba(0,0,0,0.2);\r\n  /* filter: blur(20px); */\r\n  z-index: 0;\r\n  display: none;  \r\n}\r\n\r\n._CSS__project-intro {\r\n  padding: 0 16px;\r\n}\r\n\r\n","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2018-06-04T14:11:40+00:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","from":"","client":"server"},"modified":{"at":"2020-10-13T10:11:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1602583892044,"ct":1602583892043,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","4551c597-7595-4858-8b7f-207a7fb15b3e"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"fb5183e4-18d2-41f0-8e50-ad6635675c8f","v":"a54326e2eb39992c","previous":{"v":"9543594224fabc54"},"p":"b433eabd-abe6-4564-940f-a918f71037fb","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"page--receipts","template":"<div >\n  <section class=\"flex justify-between\">\n    <header class=\"text-2xl font-bold\">\n      Beläge\n    </header>\n\n    <div>\n      <a :href=\"controller.zipDownloadLink\" target=\"_blank\">\n        <button class=\"ae-button ae-button--secondary\">\n          <ae-icon class=\"fa fa-download\"></ae-icon>\n          Belege ZIP\n        </button>\n      </a>\n    </div>\n\n  </section>\n\n  <section>\n    <ae-list list-id=\"table-list\"\n        :root-document-id=\"document.id\"\n        query-id=\"71d5633a-9dbd-4c96-b6e0-1c6ffc5ef0f1\"\n        :filter=\"locals.filter\"\n        :search-options=\"locals.searchOptions\"\n        @selected=\"Aeppic.drillInto($event, arguments[1])\"\n        param-designs=\",icon,table:date,table:currency,table:attachments-as-buttons-with-preview\"\n        param-fixed-column-widths=\",30,\"\n  ></ae-list>\n  </section>\n</div> ","css":"","controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Building: 'b433eabd-abe6-4564-940f-a918f71037fb',\n      Beleg: 'c2d9407d-9dd6-42ff-acdc-ec2e296bea99',\n      Belege: 'f6f822ec-eff4-4dc9-9ca6-8131004688da',\n    }\n\n    locals.filter = `a_forms:${this.FORMS.Belege} f.id:${this.FORMS.Beleg}`\n    locals.searchOptions = {\n      size: 100,\n      sort: [\n        { field: 'data.datum', descending: true },\n        'id'\n      ]\n    }\n\n    locals.receiptsFolder = null\n\n    locals.receiptsFolder = await Aeppic.findOne(`p:${document.id} f.id:${this.FORMS.Belege}`)\n  }\n\n  get zipDownloadLink() {\n    return locals.receiptsFolder && `/api/services/41e10b87-b2e2-4534-a224-ebe1b728ff29/v1/zip?folderId=${locals.receiptsFolder.id}&folderNoDepth=true`\n  }\n} ","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-11-23T15:52:35+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-01-04T10:58:02+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1672829882618,"ct":1669218755788,"a_depth":4,"a":["apps","86189c5a-b9f4-445a-879f-d94574960df0","15292d56-6806-4263-b6d0-9194687203e1","b433eabd-abe6-4564-940f-a918f71037fb"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"a3ab60ee-5015-4465-b382-ed8fdbdb7b47","v":"747877811f2245df","p":"fallback-designs","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"page--right","template":"<div class=\"_CSS-actions\">\n  <template v-if=\"params.hasCustomPage\">\n    <template v-if=\"locals.canEdit\">\n      <button v-if=\"!locals.edit\" class=\"ae-button\" title=\"Bearbeiten\" @click.stop=\"locals.edit = true\">\n        <ae-icon class=\"fad fa-edit\"></ae-icon>\n      </button>\n\n      <ae-layout  layout-id=\"dc8cdcfb-177c-4e53-b41e-f5a3d0038425\"\n                  :param-pause=\"locals.dialogOpen\"\n                  :param-document-id=\"document.id\"\n                  @save=\"controller.save()\"\n                  @document-revision=\"() => { $emit('document-changed', true) }\"\n                  @document-save=\"() => { $emit('document-changed', false) }\"\n                  @reset=\"() => { controller.abort() }\"\n                  ref=\"confirmDialogReffer\"\n                  v-show=\"locals.edit || params.documentChangedBus && params.documentChangedBus.documentChanged\"\n      ></ae-layout>\n    </template>\n    <button v-else class=\"ae-button\" disabled title=\"Nur Lese-Zugriff\">\n      <ae-icon class=\"fa fa-lock\"></ae-icon>\n    </button>\n  </template>\n  \n  <template v-if=\"!locals.edit\">\n    <ae-design :document=\"document\" v-if=\"locals.canEdit && !params.hideSecurity\" name=\"security-access\" :watch=\"false\"></ae-design>\n    <ae-design :document=\"document\" v-if=\"locals.canEdit && !params.hideHistory\" name=\"history-button\" :watch=\"false\"></ae-design>\n    <button class=\"ae-button\" v-if=\"Aeppic.Account && Aeppic.Account.data.allowDevMode\" title=\"Dokument auf neuste Formular-Version upgraden\" @click.stop=\"Aeppic.upgrade(document)\">\n      <ae-icon class=\"fa fa-arrow-alt-square-up\"></ae-icon>\n    </button>\n    <div style=\"flex: 1;\"> </div>\n    <ae-layout  layout-id=\"0ded34c5-1221-4511-af93-d897a79f1369\"\n                :param-document=\"document\"\n                v-if=\"locals.canEdit\"\n                v-show=\"locals.showDelete && !params.hideDelete\"\n                @visible=\"locals.showDelete = true\"\n                @invisible=\"locals.showDelete = false\"\n                :param-no-navigate=\"true\"\n                @delete=\"$emit('delete', $event)\"\n    ></ae-layout>\n  </template>\n</div>\n\n<ae-design name=\"page-details__meta\" :document=\"document\" :params=\"params\"></ae-design>\n\n<ae-design class=\"_CSS-content\" v-if=\"!params.pageDocumentIsStructualDocument && (params.hasCustomPage || params.hasDetails)\" name=\"page-details__content\" :document=\"document\" :param-readonly=\"!locals.edit\" :param-bus=\"locals.bus\"></ae-design>\n<ae-list class=\"_CSS-acitivies\" list-id=\"ea63de1f-8ccb-41a3-8864-c21e980e18fe\" :param-company-id=\"document.a[0]\" :param-target-document-id=\"document.id\"></ae-list>\n ","css":"._CSS {\n  flex: 1;\n  overflow: hidden;\n  display: flex;\n  flex-flow: column;\n}\n\n._CSS-actions {\n  display: flex;\n  flex-wrap: wrap;\n}\n\n._CSS-actions-placeholder {\n  display: flex;\n}\n\n._CSS-form {\n  overflow: auto;\n  min-height: 0;\n  height: 100%;\n}\n\n._CSS-content {\n  overflow: auto;\n}\n\n._CSS-acitivies {\n  flex: 1;\n  xmin-height: 200px;\n}","controller":"class Controller {\n  async init() {\n    locals.bus = new Vue()\n    locals.edit = false\n    locals.canEdit = false\n    locals.anfrage = null\n\n    const canEdit = !document.readonly && await Aeppic.canEdit(document)\n \n    if (Aeppic.Account && Aeppic.Account.data.isGroupAccount === true) {\n      // a group account can only edit if it got rights assigned. Unsecured folders are not editable.\n      const editable = await Aeppic.edit(document)\n      const isLocked = editable.hasLock() || editable.hasInheritedLock()\n\n      if (isLocked) {\n        locals.canEdit = canEdit === true\n      } else {\n        locals.canEdit = false\n      }\n    } else {\n      locals.canEdit = canEdit\n    }\n }\n\n\n\n  save() {\n    console.log('save')\n\n    locals.bus.$emit('save')\n    locals.bus.$emit('reset-edits')\n\n    // $refs.form.save()\n    // $refs.form.resetEdits()\n\n    locals.edit = false\n\n    $emit('document-changed', false)\n  }\n\n  abort() {\n    locals.bus.$emit('reset-edits')\n    // $refs.form.resetEdits()\n    locals.edit = false\n\n    $emit('document-changed', false)\n  }\n\n  toolbarEvent(eventType) {\n    console.log('toolbarevent', eventType)\n    if (eventType === 'save') {\n      locals.bus.$emit('save')\n      locals.bus.$emit('reset-edits')\n      // $refs.form.save()\n      // $refs.form.resetEdits()\n\n      return\n    }\n    if (eventType === 'reset') {\n      locals.bus.$emit('reset-edits')\n      // $refs.form.resetEdits()\n\n      return\n    }\n  }\n\n  beforeDestroy() {\n    if (locals.bus) {\n      locals.bus.$destroy()\n      locals.bus = null\n    }\n  }\n}","packages":[{"id":"10843fbf-4f0c-416b-be7d-42d6bbd0ae68","v":"150e1aeee6052825","text":"Window"}],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-05-14T12:33:56+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2024-07-08T07:51:50+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720684627133,"ct":1720684627133,"a_depth":2,"a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"],"inheritedLocks":[null,null,null],"stamps":[],"previous":{"v":"83ec5fb7b0cab197","f":{"id":"design-form","v":"9bfe8e0cd909c1f0","text":"Design"}},"meta":{"modified":{"at":"2024-07-11T09:57:07+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"221f3084-f7c0-4ada-a71a-ae6e1eb61945","v":"34835ec39c3543e3","previous":{"v":"154c59977f93eb44"},"p":"5152f88f-3006-46f9-959a-423139accf79","f":{"id":"design-form","v":"24435d748c76f819","text":"Design"},"data":{"name":"page--shared","template":"<div class=\"_CSS-body-container\">\n  <div class=\"_CSS-body\">\n    <div class=\"_CSS-logo-container\">\n      <img v-if=\"locals.logoSrc\" :src=\"locals.logoSrc\" style=\"max-height:100px;\">\n    </div>\n\n    <h1>Vielen Dank für Ihr Vertrauen!</h1>\n    \n    <h3>\n      Nun ist noch Folgendes zu tun:\n    </h3>\n\n    <ol >\n      <li>Laden Sie unten stehende Datei(en) herunter.</li>\n\n      <ae-layout  layout-id=\"d9ac7381-bec7-498d-ab29-7f24b5a30fe9\"\n                  :param-document=\"document\"\n                  :param-readonly=\"true\"\n                  :param-fields-to-display=\"['anhaenge']\"\n                  :param-design-params=\"{ showDownload: true }\"\n      ></ae-layout>\n                  <!-- :param-force-tab-index=\"0\" -->\n\n\n      <li style=\"padding-bottom: var(--ae-size-3);\">Unterschreiben Sie diese.</li>\n      <li>Wählen Sie die unterschriebene Datei aus.</li>\n\n      <ae-control name=\"attachment\" :params=\"form.getFieldControlParams('uploads')\" :document=\"document\" field-name=\"uploads\" style=\"padding: var(--bp-page-content-padding);\"></ae-control>\n\n      <li style=\"padding-bottom: var(--ae-size-3);\">\n        <button class=\"ae-button ae-button--primary\" @click=\"controller.save()\" :disabled=\"!data.uploads.length\">\n          Uploads speichern\n        </button>\n      </li>\n    </ol>\n\n  </div>\n</div>\n\n<ae-dialog ref=\"dialog\" :full-screen=\"true\" :dialog-classes=\"{ '_CSS-dialog': true }\">\n  <div slot=\"header\" class=\"_CSS-popup__uploading-bar\" v-show=\"locals.showDialog && Aeppic.Uploads.isUploading\">\n    <div>Uploading...</div>\n    <ae-layout class=\"_CSS-spinner\"  layout-id=\"fefa8352-0e9a-4ba8-8349-c9402ac8aefa\" title=\"Uploading...\" param-color=\"rgb(42, 71, 171)\" :param-show-text=\"true\"></ae-layout>\n  </div>\n  <div slot=\"body\" v-if=\"locals.showDialog\">\n    <div class=\"_CSS-body-container\">\n      <div class=\"_CSS-body\">\n        <div class=\"_CSS-logo-container\">\n          <img v-if=\"locals.logoSrc\" :src=\"locals.logoSrc\"  style=\"max-height:100px;\">\n        </div>\n\n\n        <p v-if=\"Aeppic.Uploads.isUploading\" style=\"font-weight: strong; color: red;\">\n          Bitte warten Sie bis alle Uploads abgeschlossen sind!\n          <ae-layout layout-id=\"fefa8352-0e9a-4ba8-8349-c9402ac8aefa\" title=\"Uploading...\" param-color=\"rgb(42, 71, 171)\"></ae-layout>\n        </p>\n        <template v-else>\n          <p>\n            Vielen Dank für das Hochladen der Dateien. \n          </p>\n          <p>\n            Wir erhalten automatisch eine Benachrichtigung. Sie müssen nichts mehr tun.\n          </p>\n\n          <p>\n            Sie können die Seite nun schließen.\n          </p>\n        </template>\n\n        <h2>Hochgeladene Dateien</h2>\n\n        <ae-list  list-id=\"2dab232c-2c8a-4aa4-b3f9-6023a7116161\"\n                  :documents=\"document.data.uploads\"\n                  param-design=\"ref-card\"\n                  :param-design-params=\"{readonly: true, noRemove: true }\"\n                  :watch-documents=\"true\"\n        ></ae-list>\n      </div>\n    </div>\n  </div>\n</ae-dialog>\n","css":"._CSS-body-container {\n  padding: var(--bp-page-content-padding);\n  padding-top: 12px;\n\n  /* full page */\n  position: absolute;\n  top: 0;\n  bottom: 0;\n  left: 0;\n  right: 0;\n}\n\n._CSS-logo-container {\n  display: flex;\n  justify-content: flex-end;\n}\n\n._CSS-body {\n  max-width: 1000px;\n  margin: auto;\n}\n\n._CSS-dialog .ae-dialog__header {\n  padding: 0;\n}\n\n._CSS-spinner {\n  width: 24px;\n  height: 24px;\n  display: flex;\n  align-items: center;  \n}","controller":"class Controller {\n  async init() {\n    locals.designParams = {\n      preview: true\n    }\n\n    locals.logoSrc = await this.getLogo()\n\n    await Aeppic.nextRenderPass()\n\n    startEditing()\n  }\n\n  async getLogo() {\n    const company = await Aeppic.get(document.a[0])\n\n    if (!company || company.f.id !== 'c69a0c1c-6c53-40c2-87e8-5ace866bf1df') {\n      return\n    }\n\n    return Aeppic.Content.getSrc(company, 'logo')\n  }\n\n  async save() {\n    save()\n\n    locals.showDialog = true;\n    $refs.dialog.show()\n\n    await this._deleteShare()\n  }\n\n\n  async _deleteShare() {\n    Aeppic.delete(params.share)\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2019-04-17T14:20:14+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2021-06-28T14:02:04+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1624888924998,"ct":1555510814958,"a_depth":4,"a":["apps","94a64d89-d204-4918-b147-d717914fb03e","f254ce25-42f1-4333-8ee7-23554bf746c1","5152f88f-3006-46f9-959a-423139accf79"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"374b5d50-f255-4679-91c2-4ed9a33779d6","v":"7d3cf401ceb3dc29","previous":{"v":"b8b8bf95c41f74a9"},"p":"8d8f6fdb-6f78-4e2a-b585-bd80f4dbaa1d","f":{"id":"design-form","v":"24435d748c76f819","text":"Design"},"data":{"name":"page--shared","template":"<div class=\"_CSS-body-container\">\n\n  <div class=\"_CSS-body\">\n    <div class=\"_CSS-logo-container\">\n      <img v-if=\"locals.logoSrc\" :src=\"locals.logoSrc\" style=\"max-height:100px;\">\n    </div>\n\n    <h1>Gesprächsnotiz zwischen <ae-design name=\"title\" :document-id=\"document.a[0]\" style=\"display: inline;\"></ae-design> und Ihnen</h1>\n    \n    <ae-layout  layout-id=\"acd83791-970f-4b6e-bebd-d7f3bca52014\"\n                :param-fields-to-display=\"['notiz', 'anhaenge']\"\n                :param-force-tab-index=\"0\"\n                :param-document=\"document\"\n                :param-readonly=\"true\"\n    ></ae-layout>\n\n    <p>\n      <input :id=\"id('kenntnis')\" type=\"checkbox\" v-model=\"locals.acknowledge\">\n      <label :for=\"id('kenntnis')\">Ich nehme die Gesprächsnotiz zur Kenntnis</label>\n    </p>\n\n    <button class=\"ae-button ae-button--primary\" @click=\"controller.save()\">\n      Annehmen\n    </button>\n\n    <p v-if=\"locals.errorAcknowledge\">\n      Bitte bestätigen Sie die Kenntnisnahme.\n    </p>\n\n    <p v-if=\"locals.error\">\n      Es ist ein unerwarteter Fehler aufgetreten. Bitte versuchen Sie es erneut.\n    </p>\n  </div>\n</div>\n\n<ae-dialog ref=\"dialog\" :full-screen=\"true\" :dialog-classes=\"{ '_CSS-dialog': true }\">\n  <div slot=\"body\" v-if=\"locals.showDialog\">\n    <div class=\"_CSS-body-container\">\n      <div class=\"_CSS-body\">\n        <div class=\"_CSS-logo-container\">\n          <img v-if=\"locals.logoSrc\" :src=\"locals.logoSrc\" style=\"max-height:100px;\">\n        </div> \n        \n        <p>\n          Vielen Dank für Ihre Kenntnisnahme. \n        </p>\n\n        <p>\n          Wir haben eine Benachrichtigung erhalten.\n        </p>\n\n        <p>\n          Sie können die Seite nun schließen.\n        </p>\n      </div>\n    </div>\n\n  </div>\n</ae-dialog>\n","css":"._CSS-body-container {\n  padding: var(--bp-page-content-padding);\n  padding-top: 12px;\n\n  /* full page */\n  position: absolute;\n  top: 0;\n  bottom: 0;\n  left: 0;\n  right: 0;\n}\n\n._CSS-logo-container {\n  display: flex;\n  justify-content: flex-end;\n}\n\n._CSS-body {\n  max-width: 1000px;\n  margin: auto;\n}\n\n._CSS-dialog .ae-dialog__header {\n  padding: 0;\n}\n\n._CSS-spinner {\n  width: 24px;\n  height: 24px;\n  display: flex;\n  align-items: center;  \n}","controller":"class Controller {\n  async init() {\n    locals.logoSrc = await this.getLogo()\n  }\n\n async getLogo() {\n    const company = await Aeppic.get(document.a[0])\n\n    if (!company || company.f.id !== 'c69a0c1c-6c53-40c2-87e8-5ace866bf1df') {\n      return\n    }\n\n    return Aeppic.Content.getSrc(company, 'logo')\n  }\n\n  async save() {\n    if (!locals.acknowledge) {\n      locals.errorAcknowledge = true\n      return\n    }\n\n    locals.errorAcknowledge = false\n\n    await Aeppic.stamp(document, '59cda385-cabd-4f16-9e5a-0e26aabc4419')\n\n    // const commandResult = await Aeppic.Commands.execute('c3f64a13-8623-460d-8f4a-368da69ac5b0', document)\n\n    // if (!commandResult.ok) {\n    //   locals.error = true\n    //   return\n    // }\n\n    locals.showDialog = true;\n    $refs.dialog.show()\n\n    await this._deleteShare()\n  }\n\n\n  async _deleteShare() {\n    if (!params.share) {\n      return\n    }\n\n    Aeppic.delete(params.share)\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2019-08-22T12:20:28+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2021-07-02T12:46:47+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1625230007904,"ct":1566476428695,"a_depth":4,"a":["apps","94a64d89-d204-4918-b147-d717914fb03e","f254ce25-42f1-4333-8ee7-23554bf746c1","8d8f6fdb-6f78-4e2a-b585-bd80f4dbaa1d"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","61ccaf6b-af84-4908-aa73-785dffd83c5f"],"a_depth":4,"a_forms":["folder","application-form","folder","form"],"created":{"at":"2018-05-25T10:48:23+00:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","client":"server","from":""},"ct":1527245303081,"data":{"applies":"","controller":"class Controller {\n  async init() {\n    locals.project = await Aeppic.get(document.a[document.a.length - 2])\n    locals.casting = await Aeppic.get(document.a[document.a.length - 1])\n\n    // locals.showProjectRelatedModelData = this.showProjectRelatedModelData()\n    // console.log('showProjectRelatedModelData', locals.showProjectRelatedModelData)\n  }\n\n  // showProjectRelatedModelData() {\n  //   const config = params.shareConfiguration\n\n  //   if (!config) {\n  //     return\n  //   }\n\n  //   if (config.data.identifier !== 'projectRelatedModelData') {\n  //     return\n  //   }\n\n  //   return config.data.value === 'true'\n  // }\n\n\n  // get showModelsOfSomeRole() {\n  //   return params.queryParams && 'role' in params.queryParams\n  // }\n}\n","css":"\n._CSS-informations {\n  font-size: 2rem;\n  display: flex;\n  justify-content: space-between;\n}\n\n._CSS-informations > * {\n  display: inline;\n}\n\n._CSS-value {\n  display: inline;\n  font-weight: bold;\n}\n\n._CSS-actions {\n  font-size: 2rem;\n}\n\n/* SIDEBAR */\n\n._CSS {\n  display: flex;\n  flex-flow: column;\n  width: 100%;\n}\n\n._CSS-container {\n  margin-top: 2rem;\n  display: flex;\n  width: 100%;\n  flex-direction: row;\n  flex: 1;\n  overflow: hidden;\n}\n\n._CSS-body {\n  flex: 1;\n  padding: 8px;\n}\n\n._CSS-actions-container {\n  display: flex;\n  width: 6rem;\n}\n\n._CSS-actions-container--expanded {\n  width: 320px;\n}\n\n._CSS-right-spacer {\n  width: 6rem;\n}\n\n._CSS-sidebar {\n  padding: 1em 1.5em 2em;;\n  margin-right: 1em;\n  background: rgba(74,74,74,0.8);\n  color: white;\n\n  display: flex;\n  flex-flow: column;\n  flex: 1;\n}\n\n._CSS-sidebar__item {\n  border-bottom: 1px solid #ddd;\n  margin: 0 0 1em;\n  padding: 0 0 1em;\n}\n\n._CSS-sidebar__header {\n  font-size: 1.2em;\n  letter-spacing: 0.05em;\n  margin: 0 0 1em;\n  text-transform: uppercase;\n}\n\n._CSS-filter {\n  margin: 0 0.5em 0.5em 0;\n  user-select: none;\n  border: 1px solid #232323;\n  border-radius: 0.2em;\n  cursor: pointer;\n  display: inline-block;\n  letter-spacing: 0.05em;\n  padding: 0.1em 0.8em;\n  text-transform: uppercase;\n  overflow: hidden;\n  /* white-space: normal !important; */\n}\n\n._CSS-filter--active {\n  background: rgba(43,179,148,0.6);\n  color: #fff;\n  border-color: #2BB394\n}\n\n\n._CSS-search__input {\n    background: #fff;\n    border: 1px solid #fff;\n    border-radius: 0.2em;\n    color: #232323;\n    font-size: 16px;\n    padding: 0.1em 2em 0.1em 0.8em;\n    width: 100%;\n}\n\n/* DIALOG */\n\n._CSS-dialog-header {\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n}\n\n","name":"page--shared","packages":[],"template":"<ae-design name=\"page-header--shared\" :document=\"document\" @role-id=\"locals.roleId = $event\"></ae-design>\n<ae-design  name=\"page--shared__models\"\n            :document=\"document\"\n            :param-role-id=\"locals.roleId\"\n></ae-design>\n<!-- <ae-design  v-else\n            name=\"page--shared__roles\"\n            :document=\"document\" \n></ae-design> -->\n<!-- <template v-else-if=\"locals.project && locals.casting\">\n\n  <div class=\"_CSS-all-roles\" style=\"padding: 0.3rem;\">\n    <div class=\"_CSS-all-roles-card\" @click=\"Aeppic.navigateTo(document.id, { role: '' })\">\n\n    <div class=\"_CSS-all-roles-title-container\">\n      <div class=\"_CSS-all-roles-icon\">\n        <ae-icon class=\"fa fa-users fa-2x\"></ae-icon>\n      </div>\n      <span class=\"_CSS-all-roles-title\">{{ Aeppic.translate('translate:all-roles|Alle Rollen') }}</span>\n    </div>\n    <ae-layout layout-id=\"7be86ea7-1897-4343-8dd3-56ba86e8f14e\"\n                class=\"_CSS-all-roles-download-button\"\n                :param-project-id=\"locals.projectId\"\n                :param-zip-name=\"Aeppic.translate('translate:all-roles|Alle Rollen')\"\n                :param-application-folder-id=\"document.id\"\n    ></ae-layout>\n    </div>\n  </div>\n  <ae-list  list-id=\"2dab232c-2c8a-4aa4-b3f9-6023a7116161\"\n            :root-document-id=\"locals.project.id\"\n            query-id=\"71d5633a-9dbd-4c96-b6e0-1c6ffc5ef0f1\"\n            filter=\"f.id:3230c10a-64af-48cc-8f3d-15fc16a40e5f\"\n            @selected=\"Aeppic.navigateTo(document.id, { role: $event.id } )\"\n            param-empty-text=\"translate:no-roles|Keine Rollen vorhanden\"\n            param-design=\"card-with-download,card\"\n            :param-design-params=\"{ applicationFolderId: document.id }\"\n  ></ae-list>\n</template> -->\n"},"f":{"id":"design-form","text":"Design","v":"0736f6b8ec393e5e"},"id":"7984c9d5-d19d-4ff8-9421-ecb73c817f35","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-07-03T11:57:45+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"61ccaf6b-af84-4908-aa73-785dffd83c5f","previous":{"v":"7f33f7be9b08488c"},"stamps":[],"t":1751543865261,"v":"f33ecc6463a76377"},{"id":"c597d107-e2ab-4930-9443-0d1e37e71858","v":"deb5a940b18a591e","cloneOf":{"id":"374b5d50-f255-4679-91c2-4ed9a33779d6","v":"b8b8bf95c41f74a9","text":"page--shared"},"originalCloneOf":{"id":"374b5d50-f255-4679-91c2-4ed9a33779d6","v":"b8b8bf95c41f74a9","text":"page--shared"},"previous":{"v":"6eb903395ff02aad"},"p":"c5cf96a1-40bb-44d5-a3f7-ea30706caf58","f":{"id":"design-form","v":"24435d748c76f819","text":"Design"},"data":{"name":"page--shared","template":"<div class=\"_CSS-body-container\">\n\n  <div class=\"_CSS-body\">\n    <div class=\"_CSS-logo-container\">\n      <img v-if=\"locals.logoSrc\" :src=\"locals.logoSrc\" height=\"200px\">\n    </div>\n\n    <h1>Gesprächsnotiz zwischen <ae-design name=\"title\" :document-id=\"document.a[0]\" style=\"display: inline;\"></ae-design> und Ihnen</h1>\n    \n    <ae-layout  layout-id=\"acd83791-970f-4b6e-bebd-d7f3bca52014\"\n                :param-fields-to-display=\"['notiz', 'anhaenge']\"\n                :param-force-tab-index=\"0\"\n                :param-document=\"document\"\n                :param-readonly=\"true\"\n    ></ae-layout>\n\n    <p v-if=\"locals.stamp\">\n      Zur Kenntnis genommen am {{ Aeppic.DateTime.fromISO(locals.stamp.added).toLocaleString(Aeppic.DateTime.DATETIME_MED) }}.\n    </p>\n    <template v-else>\n\n      <p>\n        <input :id=\"id('kenntnis')\" type=\"checkbox\" v-model=\"locals.acknowledge\">\n        <label :for=\"id('kenntnis')\">Ich nehme die Gesprächsnotiz zur Kenntnis</label>\n      </p>\n\n      <button class=\"ae-button ae-button--primary\" @click=\"controller.save()\">\n        Annehmen\n      </button>\n\n      <p v-if=\"locals.errorAcknowledge\">\n        Bitte bestätigen Sie die Kenntnisnahme.\n      </p>\n\n      <p v-if=\"locals.error\">\n        Es ist ein unerwarteter Fehler aufgetreten. Bitte versuchen Sie es erneut.\n      </p>\n    </template>\n  </div>\n</div>\n\n<ae-dialog ref=\"dialog\" :full-screen=\"true\" :dialog-classes=\"{ '_CSS-dialog': true }\">\n  <div slot=\"body\" v-if=\"locals.showDialog\">\n    <div class=\"_CSS-body-container\">\n      <div class=\"_CSS-body\">\n        <div class=\"_CSS-logo-container\">\n          <img v-if=\"locals.logoSrc\" :src=\"locals.logoSrc\" height=\"200px\">\n        </div> \n        \n        <p>\n          Vielen Dank für Ihre Kenntnisnahme. \n        </p>\n\n        <p>\n          Wir haben eine Benachrichtigung erhalten.\n        </p>\n\n        <p>\n          Sie können die Seite nun schließen.\n        </p>\n      </div>\n    </div>\n\n  </div>\n</ae-dialog>\n","css":"._CSS-body-container {\n  padding: var(--bp-page-content-padding);\n  padding-top: 12px;\n\n  /* full page */\n  position: absolute;\n  top: 0;\n  bottom: 0;\n  left: 0;\n  right: 0;\n}\n\n._CSS-logo-container {\n  display: flex;\n  justify-content: flex-end;\n}\n\n._CSS-body {\n  max-width: 1000px;\n  margin: auto;\n}\n\n._CSS-dialog .ae-dialog__header {\n  padding: 0;\n}\n\n._CSS-spinner {\n  width: 24px;\n  height: 24px;\n  display: flex;\n  align-items: center;  \n}","controller":"class Controller {\n  async init() {\n    locals.stamp = document.stamps && document.stamps.find(stamp => stamp.type.id === '59cda385-cabd-4f16-9e5a-0e26aabc4419')\n    locals.logoSrc = await this.getLogo()\n  }\n\n async getLogo() {\n    const company = await Aeppic.get(document.a[0])\n\n    if (!company || company.f.id !== 'c69a0c1c-6c53-40c2-87e8-5ace866bf1df') {\n      return\n    }\n\n    return Aeppic.Content.getSrc(company, 'logo')\n  }\n\n  async save() {\n    if (!locals.acknowledge || locals.stamp) {\n      locals.errorAcknowledge = true\n      return\n    }\n\n    locals.errorAcknowledge = false\n\n    await Aeppic.stamp(document, '59cda385-cabd-4f16-9e5a-0e26aabc4419')\n\n    locals.showDialog = true;\n    $refs.dialog.show()\n\n    // await this._deleteShare()\n  }\n\n\n  // async _deleteShare() {\n  //   if (!params.share) {\n  //     return\n  //   }\n\n  //   Aeppic.delete(params.share)\n  // }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-02-01T08:39:40+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-03-08T14:47:57+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1615214877803,"ct":1612168780280,"a_depth":4,"a":["apps","d91078cc-874b-4410-b837-b81f47687fe9","6b513a0c-498f-4eac-804d-aa8e0e99caac","c5cf96a1-40bb-44d5-a3f7-ea30706caf58"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"fda06a57-f249-4ba9-987e-d2445c874277","v":"c400b3894f9ed844","previous":{"v":"26fda91c77dc07d9"},"p":"61ccaf6b-af84-4908-aa73-785dffd83c5f","f":{"id":"design-form","v":"3a761d06f59c46c1","text":"Design"},"data":{"name":"page--shared__models","template":"<!-- <div class=\"_CSS-actions--phone\" v-if=\"Aeppic.Device === 'Phone'\">\n  <div class=\"_CSS-actions__left\">\n      <div @click=\"controller.nextView()\" class=\"ae-noselect dbps-button\">\n        <ae-icon v-show=\"locals.view === 'list'\" class=\"fa fa-list\"></ae-icon>\n        <ae-icon v-show=\"locals.view === 'category'\" class=\"fa fa-th\"></ae-icon>\n      </div>\n        <ae-layout layout-id=\"7be86ea7-1897-4343-8dd3-56ba86e8f14e\"\n              :param-project-id=\"locals.project && locals.project.id\"\n              param-zip-name=\"all\"\n              param-button-text=\"Alle\"\n              :param-application-folder-id=\"document.id\"\n        ></ae-layout>\n        <ae-layout  layout-id=\"5e83dff9-c5cc-4e02-aa8f-4d8760d5189c\"\n                    :param-application-folder-id=\"document.id\"\n                    :param-project-id=\"locals.project && locals.project.id\"\n        ></ae-layout>\n  </div>\n  <div class=\"dbps-button ae-noselect\">\n    |\n  </div>\n  <div class=\"_CSS-actions__right\">\n      <button class=\"dbps-button ae-noselect\" @click=\"controller.nextBy()\" :title=\"'Sortierung: ' + locals.by\">\n        <ae-icon v-show=\"locals.by === 'created.at'\" class=\"fa fa-calendar\"></ae-icon>\n        <ae-icon v-show=\"locals.by === 'data.name'\" class=\"fa fa-font\"></ae-icon>\n        <ae-icon v-show=\"locals.by === 'manual'\" class=\"fa fa-trophy\"></ae-icon>\n      </button>\n  \n       \n      <button class=\"dbps-button ae-noselect\" @click=\"controller.invertSortOrder()\" :title=\"locals.asc ? 'aufsteigend' : 'absteigend'\" :disabled=\"locals.by === 'manual'\">\n        <ae-icon v-show=\"locals.asc\" class=\"fa fa-sort-amount-up\"></ae-icon>\n        <ae-icon v-show=\"!locals.asc\" class=\"fa fa-sort-amount-down\"></ae-icon>\n      </button>\n\n      <div class=\"dbps-button\" @click=\"$refs.searchAndFilters.$emit('show')\">\n      <span class=\"fa-layers fa-fw\">\n        <ae-icon class=\"fas fa-search\"></ae-icon>\n        <span v-if=\"controller.numberOfActiveFilters > 0\" class=\"fa-layers-counter\" style=\"background:Tomato;font-size:1.3em;\">{{ controller.numberOfActiveFilters }}</span>\n      </span>\n      </div>\n  </div>\n\n</div> -->\n<div class=\"_CSS-container\">\n  <div class=\"_CSS-actions-container\" v-if=\"Aeppic.Device !== 'Phone'\">\n    <div class=\"_CSS-actions\">\n        <div @click=\"controller.nextView()\" class=\"ae-noselect dbps-button\" title=\"Ansicht ändern\">\n          <ae-icon v-show=\"locals.view === 'list'\" class=\"fa fa-list\"></ae-icon>\n          <ae-icon v-show=\"locals.view === 'category'\" class=\"fa fa-th\"></ae-icon>\n        </div>\n          <ae-layout layout-id=\"7be86ea7-1897-4343-8dd3-56ba86e8f14e\"\n                :param-project-id=\"locals.project && locals.project.id\"\n                param-button-text=\"Alle\"\n                :param-application-folder-id=\"document.id\"\n          ></ae-layout>\n          <ae-layout  layout-id=\"5e83dff9-c5cc-4e02-aa8f-4d8760d5189c\"\n                      :param-application-folder-id=\"document.id\"\n                      :param-project-id=\"locals.project && locals.project.id\"\n          ></ae-layout>\n    </div>\n\n  </div>\n\n  <div class=\"_CSS-body\">\n    <div class=\"_CSS-informations\">\n        <!-- Projekt <ae-design class=\"_CSS-value\" name=\"title\" :document=\"locals.project\"></ae-design>(<ae-design class=\"_CSS-value\" name=\"title\" :document=\"locals.casting\"></ae-design>) -->\n    </div>\n    <div class=\"_CSS-actions-top\">\n      <div>\n        <div class=\"dbps-button\" @click=\"$refs.searchAndFilters.$emit('show')\">\n          <!-- <ae-icon class=\"fa fa-search\"></ae-icon> -->\n        <span class=\"fa-layers fa-fw\">\n          <ae-icon class=\"fas fa-search\"></ae-icon>\n          <span v-if=\"controller.numberOfActiveFilters > 0\" class=\"fa-layers-counter\" style=\"background:Tomato;font-size:1.3em;\">{{ controller.numberOfActiveFilters }}</span>\n        </span>\n        </div>\n      </div>\n\n      <div class=\"_CSS-sorting\">\n        <div class=\"_CSS-sorting__label\">\n          <label>\n            Sortierung\n          </label>\n          <select v-model=\"locals.by\">\n            <option value=\"manual\">Manuelles Ranking</option>\n            <option value=\"created.at\">Erstellungsdatum</option>\n            <option value=\"data.name\">Namen</option>\n          </select>\n        </div>\n        <!-- <button class=\"dbps-button ae-noselect\" @click=\"controller.nextBy()\" :title=\"'Sortierung: ' + locals.by\">\n          <ae-icon v-show=\"locals.by === 'created.at'\" class=\"fa fa-calendar\"></ae-icon>\n          <ae-icon v-show=\"locals.by === 'data.name'\" class=\"fa fa-font\"></ae-icon>\n          <ae-icon v-show=\"locals.by === 'manual'\" class=\"fa fa-trophy\"></ae-icon>\n        </button> -->\n    \n        \n        <button class=\"_CSS-sorting__icon dbps-button ae-noselect\" @click=\"controller.invertSortOrder()\" :title=\"locals.asc ? 'aufsteigend' : 'absteigend'\" :disabled=\"locals.by === 'manual'\">\n          <ae-icon v-show=\"locals.asc\" class=\"fa fa-sort-amount-up\"></ae-icon>\n          <ae-icon v-show=\"!locals.asc\" class=\"fa fa-sort-amount-down\"></ae-icon>\n        </button>\n      </div>\n\n    </div>\n\n    <ae-list\n      v-if=\"locals.view === 'category'\"\n      list-id=\"176fd50d-0463-425d-b0f1-74e7206fa8a1\"\n      :documents=\"locals.models\"\n      param-design=\"card-preselection--interactive\"\n      param-min-column-width=\"220px\"\n      param-max-column-width=\"220px\"\n      param-row-height=\"394px\"\n      param-empty-text=\"translate:no-application|Keine Bewerbungen\"\n      :params=\"locals.designParams\"\n    ></ae-list>\n    <ae-list\n      v-else-if=\"locals.view === 'list'\"\n      list-id=\"2dab232c-2c8a-4aa4-b3f9-6023a7116161\"\n      :documents=\"locals.models\"\n      param-design=\"card-preselection--interactive\"\n      param-min-column-width=\"220px\"\n      param-max-column-width=\"220px\"\n      param-row-height=\"394px\"\n      param-empty-text=\"translate:no-application|Keine Bewerbungen\"\n      :design-params=\"locals.designParams\"\n    ></ae-list> \n  </div>\n\n  <!-- <div class=\"_CSS-right-spacer\" v-if=\"Aeppic.Device !== 'Phone'\">\n    <div class=\"_CSS-actions\">\n      <button class=\"dbps-button ae-noselect\" @click=\"controller.nextBy()\" :title=\"'Sortierung: ' + locals.by\">\n        <ae-icon v-show=\"locals.by === 'created.at'\" class=\"fa fa-calendar\"></ae-icon>\n        <ae-icon v-show=\"locals.by === 'data.name'\" class=\"fa fa-font\"></ae-icon>\n        <ae-icon v-show=\"locals.by === 'manual'\" class=\"fa fa-trophy\"></ae-icon>\n      </button>\n  \n       \n      <button class=\"dbps-button ae-noselect\" @click=\"controller.invertSortOrder()\" :title=\"locals.asc ? 'aufsteigend' : 'absteigend'\" :disabled=\"locals.by === 'manual'\">\n        <ae-icon v-show=\"locals.asc\" class=\"fa fa-sort-amount-up\"></ae-icon>\n        <ae-icon v-show=\"!locals.asc\" class=\"fa fa-sort-amount-down\"></ae-icon>\n      </button>\n\n      <div>\n        <div class=\"dbps-button\" @click=\"$refs.searchAndFilters.$emit('show')\">\n        <span class=\"fa-layers fa-fw\">\n          <ae-icon class=\"fas fa-search\"></ae-icon>\n          <span v-if=\"controller.numberOfActiveFilters > 0\" class=\"fa-layers-counter\" style=\"background:Tomato;font-size:1.3em;\">{{ controller.numberOfActiveFilters }}</span>\n        </span>\n        </div>\n      </div>\n    </div>\n  </div> -->\n</div>\n  \n<ae-layout layout-id=\"65cc5e22-ba1c-4f75-a5fd-d71a391e558f\"\n           ref=\"searchAndFilters\"\n           :param-project=\"locals.project\"\n           :param-movies=\"locals.movies\"\n           @reset=\"controller.resetFilter()\"\n           @filter=\"controller.onFilter($event)\"\n></ae-layout>","css":"\n._CSS {\n  display: flex;\n  flex-flow: column;\n  width: 100%;\n      min-height: 0;\n    height: 100%;\n}\n\n._CSS-actions {\n      padding-top: 2.3em;\n  font-size: 2rem;\n  display: flex;\n  flex-flow: column;\n  align-items: center;\n  margin-top: 0.6rem;\n}\n\n._CSS-container {\n  margin-top: 2rem;\n  display: flex;\n  min-height: 0;\n  height: 100%;\n  width: 100%;\n  flex-direction: row;\n  flex: 1;\n  overflow: hidden;\n}\n\n._CSS-body {\n  overflow-y: scroll;\n  flex: 1;\n  padding: 8px;\n}\n\n._CSS-actions-container {\n  display: flex;\n  width: 6rem;\n}\n\n._CSS-actions-container--expanded {\n  width: 320px;\n}\n\n._CSS-right-spacer {\n  width: 6rem;\n}\n\n._CSS-actions--phone {\n  font-size: 2rem;\n  display: flex;\n  justify-content: space-between;\n}\n\n._CSS-actions__left {\n  flex: 1;\n  display: flex;\n  justify-content: flex-start;\n  align-items: center;\n}\n\n._CSS-actions__right {\n  flex: 1;\n  display: flex;\n  justify-content: flex-end;\n  align-items: center;\n}\n\n._CSS-actions-top {\n  margin-bottom: 1.5rem;\n  font-size: 2rem;\n\n  display: flex;\n  align-items: center;\n}\n\n._CSS-sorting {\n  margin-left: 1rem;\n  font-size: 1rem;\n  display: flex;\n}\n\n._CSS-sorting__label {\n  display: flex;\n  flex-flow: column;\n  justify-content: space-evenly;\n}\n\n._CSS-sorting__icon {\n  font-size: 2rem;\n}","controller":"class Controller {\n  async init() {\n    locals.models = []\n    locals.bys = ['manual', 'created.at', 'data.name']\n    locals.by = locals.bys.shift()\n\n    locals.filters = null\n    locals.asc = false\n\n    locals.views = ['category', 'list']\n    locals.view = locals.views.shift()\n\n    await this.updateModels()\n\n    locals.project = await Aeppic.get(document.a[document.a.length - 2])\n    locals.casting = await Aeppic.get(document.a[document.a.length - 1])\n    \n    locals.movies = await Aeppic.getAll(locals.project.data.movies)\n\n    locals.designParams = {\n      projectId: locals.project.id,\n      applicationFolderId: document.id,\n      highlightStartingDate: data.highlightStartingDate,\n    }\n\n    watchParam('roleId',  () => this.updateModels())\n  }\n \n  nextView() {\n    locals.views.push(locals.view)\n    locals.view = locals.views.shift(locals.view)\n  }\n\n  async nextBy() {\n    locals.bys.push(locals.by)\n    locals.by = locals.bys.shift(locals.by)\n\n    await this.updateModels()\n  }\n\n  async invertSortOrder() {\n    locals.asc = !locals.asc\n\n    await this.updateModels()\n  }\n\n  async onFilter(filters) {\n    locals.filters = filters\n\n    await this.updateModels()\n  }\n\n  async resetFilter() {\n    locals.filters = null\n\n    await this.updateModels()\n  }\n\n  get numberOfActiveFilters() {\n    if (!locals.filters) {\n      return 0\n    }\n    return Object.keys(locals.filters).filter(key => locals.filters[key] !== null).length\n  }\n\n\n  async updateModels() {\n    const options = {}\n\n    const sortField = this._byToFieldName()\n\n    if (sortField) {\n      options.sort = {\n        field: sortField,\n        descending: locals.asc\n      }\n    }\n\n    const queryString = `p:${document.id} f.id:275b807f-7dbb-4351-b731-669e275fa97d data.removed:false ${this._roleFilter} ${locals.filters ? this.getModelIdsAndFiltersAsQuery() : this.getModelsAsIdQuery()}`\n    console.log('query with options', queryString, options)\n\n    locals.models = await Aeppic.find(queryString, options)\n    console.log(locals.models)\n    await Aeppic.nextRenderPass()\n  }\n\n  get _roleFilter() {\n    // const hasRole = params.queryParams && 'role' in params.queryParams \n\n    const role = params.roleId\n\n    if (role === '' || role == null) {\n      return ''\n    }\n\n    return `data.roles:${role}`\n  }\n\n  _byToFieldName() {\n    if (locals.by === 'data.name' || locals.by === 'created.at') {\n      return locals.by\n    }\n\n    return null\n  }\n\n\n\n  getModelIdsAndFiltersAsQuery() {\n    let filter = `(${this.getModelsAsIdQuery()})`\n\n    for (const key in locals.filters) {\n      if (locals.filters[key] == null) {\n        continue\n      }\n\n      filter += ` ${locals.filters[key]}`\n    }\n\n    return filter\n  }\n\n  getModelsAsIdQuery() {\n    return data.models.map(model => `id:${model.id}`).join(' OR ')\n  }\n}\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2019-04-12T14:13:53+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2020-10-13T10:11:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1602583892127,"ct":1602583892127,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","61ccaf6b-af84-4908-aa73-785dffd83c5f"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","61ccaf6b-af84-4908-aa73-785dffd83c5f"],"a_depth":4,"a_forms":["folder","application-form","folder","form"],"created":{"at":"2019-04-12T14:13:53+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","client":"server","from":""},"ct":1602583892140,"data":{"aliases":[],"controller":"  async init() {\n    locals.project = await Aeppic.get(document.a[document.a.length - 2])\n    locals.casting = await Aeppic.get(document.a[document.a.length - 1])\n  }\n","css":"/* ALL ROLES CARD */\n\n._CSS-all-roles {\n  display: flex;\n}\n\n._CSS-all-roles-title-container {\n  display: flex;\n  align-items: center;\n}\n\n._CSS-all-roles-card {\n  flex: 1;\n  background: white;\n\n  padding: 8px;\n\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n}\n\n._CSS-all-roles-icon {\n  display: flex;\n  justify-content: center;\n  align-items: center;\n}\n\n._CSS-all-roles-title {\n  margin-left: 1rem;\n  display: flex;\n  justify-content: center;\n  align-items: flex-end;\n}\n\n._CSS-all-roles-download-button {\n  margin-left: 1rem;\n  font-size: 1.5em;\n}","description":"","name":"page--shared__roles","packages":[],"template":"\n<template v-if=\"locals.project && locals.casting\">\n\n  <div class=\"_CSS-all-roles\" style=\"padding: 0.3rem;\">\n    <div class=\"_CSS-all-roles-card\" @click=\"Aeppic.navigateTo(document.id, { role: '' })\">\n\n    <div class=\"_CSS-all-roles-title-container\">\n      <div class=\"_CSS-all-roles-icon\">\n        <ae-icon class=\"fa fa-users fa-2x\"></ae-icon>\n      </div>\n      <span class=\"_CSS-all-roles-title\">{{ Aeppic.translate('translate:all-roles|Alle Rollen') }}</span>\n    </div>\n    <ae-layout layout-id=\"7be86ea7-1897-4343-8dd3-56ba86e8f14e\"\n                class=\"_CSS-all-roles-download-button\"\n                :param-project-id=\"locals.project.id\"\n                :param-zip-name=\"Aeppic.translate('translate:all-roles|Alle Rollen')\"\n                :param-application-folder-id=\"document.id\"\n    ></ae-layout>\n    </div>\n  </div>\n  <ae-list  list-id=\"2dab232c-2c8a-4aa4-b3f9-6023a7116161\"\n            :root-document-id=\"locals.project.id\"\n            query-id=\"71d5633a-9dbd-4c96-b6e0-1c6ffc5ef0f1\"\n            filter=\"f.id:3230c10a-64af-48cc-8f3d-15fc16a40e5f\"\n            @selected=\"Aeppic.navigateTo(document.id, { role: $event.id } )\"\n            param-empty-text=\"translate:no-roles|Keine Rollen vorhanden\"\n            param-design=\"card-with-download,card\"\n            param-min-column-width=\"15rem\"\n            :param-design-params=\"{ applicationFolderId: document.id }\"\n  ></ae-list>\n\n</template>"},"f":{"id":"design-form","text":"Design","v":"3a761d06f59c46c1"},"id":"5cb7008f-6b48-4a8c-ad29-81f7a1ca386d","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-07-03T11:58:02+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"61ccaf6b-af84-4908-aa73-785dffd83c5f","previous":{"v":"7bd5f27bad5dae06"},"stamps":[],"t":1751543882680,"v":"6d31e9f952617a9c"},{"id":"064fa4dc-f41f-4dfb-9540-42111de53d1f","v":"336644bf86318afb","previous":{"v":"86c526d5cd06d16a"},"p":"275b807f-7dbb-4351-b731-669e275fa97d","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"page--shortlist-questionnaire","applies":"","template":"<!-- <ae-layout layout-id=\"e8f8cc49-0118-43ba-ac25-0c016d6dea1d\"></ae-layout> -->\n<div>\n  <div>\n    <ae-design name=\"logo-with-title\" :document-id=\"document.a.slice(-2)[0]\"></ae-design>\n\n    <div class=\"_CSS-intro\">\n      <div>\n        <h1>Aufnahme in die Shortlist</h1>\n        <div>\n          Projekt:\n        </div>\n        <ae-design class=\"_CSS-text--hightlighted\" name=\"title\" :document-id=\"document.a.slice(-3)[0]\"></ae-design>\n\n        <div>\n          Schauspieler:\n        </div>\n        <ae-design class=\"_CSS-text--hightlighted\" name=\"title\" :document=\"document\"></ae-design>\n\n        <p>\n          <ae-design style=\"display: inline;\" name=\"title\" :document=\"document\"></ae-design> wurde der Shortlist hinzugefügt.\n          <span v-if=\"locals.answers && locals.answers.length\">\n            Bitte beantworten Sie die folgenden Fragen und ergänzen/ändern Sie ggf. Angaben aus der Bewerbung.\n          </span>\n          <span v-else>\n            Bitte ergänzen/ändern Sie ggf. Angaben aus der Bewerbung.\n          </span>\n        </p>\n        <p class=\"_CSS-errors\">\n        {{ Aeppic.translate('shortlist:legal:disclamer') }}\n        </p>\n\n      </div>\n      <ae-design class=\"_CSS-picture\" name=\"index-picture-thumbnail\" :document=\"document\"></ae-design>\n    </div>\n\n\n    <template v-if=\"locals.answers && locals.answers.length\">\n      <h1>Fragen</h1>\n\n      <div v-for=\"answer of locals.answers\">\n        <!-- <ae-form :document=\"answer\" :watch=\"false\" :watch-form-revisions=\"false\" :watch-layout-revisions=\"false\"></ae-form> -->\n        <ae-layout class=\"ae-form\" :param-document=\"answer\" layout-id=\"acd83791-970f-4b6e-bebd-d7f3bca52014\" ></ae-layout>\n      </div>\n    </template>\n\n\n    <h1>Zu verifizierende Angaben</h1>\n    <ae-layout class=\"ae-form\" :param-document=\"document\" layout-id=\"acd83791-970f-4b6e-bebd-d7f3bca52014\" :param-fields-to-display=\"locals.fieldsToVerify\" :param-form=\"form\"></ae-layout>\n\n    <div class=\"_CSS-errors\" v-if=\"locals.errors.length\">\n      <h3>{{ Aeppic.translate('error:fields:required') }}</h3>\n      <span v-for=\"message of locals.errors\">{{ Aeppic.translate(message) }}<br></span>\n    </div>\n\n    <p class=\"_CSS-errors\">\n      {{ Aeppic.translate('shortlist:legal:disclamer') }}\n    </p>\n\n\n    <div class=\"_CSS-button-save\"  @click=\"controller.save()\">Speichern</div>\n  </div>\n</div>\n\n<div class=\"dbps-bottom-spacer\"></div>\n\n\n\n<ae-dialog ref=\"dialog\" :full-screen=\"true\">\n  <div slot=\"body\" class=\"dbps-body\">\n    <ae-design ref=\"dialogLogo\" name=\"logo-with-title\" :document-id=\"document.a.slice(-2)[0]\"></ae-design>\n\n    Vielen Dank für die Beantwortung der Fragen. Sie können die Seite nun schließen.\n  </div>\n</ae-dialog>","css":"._CSS-button-save {\n  background: gold;\n  padding: 1em 2em;\n  border: none;\n  flex: 1;\n  text-transform: uppercase;\n  font-size: 1.1em;\n\n  display: flex;\n  justify-content: center;\n}\n\n._CSS-intro {\n  white-space: pre-line;\n  padding: 1em;\n  background: white;\n  border-radius: 4px;\n\n  display: flex;\n  justify-content: space-between;\n  flex-wrap: wrap;\n}\n\n._CSS-text--hightlighted {\n  display: inline;\n  font-weight: bold;\n}\n\n._CSS-picture {\n  width: 256px;\n  min-height: 340px;\n\n  display: flex;\n}\n\n._CSS-errors {\n  background: white;\n  padding: 1em;\n  color: red;\n  border-radius: 4px;\n\n  margin: 2rem 0;\n}","controller":"class Controller {\n  async init () {\n    locals.errors = []\n\n    await Aeppic.nextRenderPass()\n\n    startEditing()\n\n    const shortlistDocument = await Aeppic.get(document.p)\n    const fieldsToVerifyDocument = await Aeppic.get(shortlistDocument.data.fieldsToVerify)\n\n    locals.fieldsToVerify = fieldsToVerifyDocument.data.fields\n    console.log(locals.fieldsToVerify)\n\n    const questionnaire = await Aeppic.get(shortlistDocument.data.questionnaire)  \n\n    locals.answers = []\n\n    const existingAnswers = await Aeppic.find(`p:${document.id} f.id:84043618-903e-4666-83b5-9cf5449ba8f4`)\n\n    if (existingAnswers && existingAnswers.length) {\n      locals.answers = await Aeppic.editAll(existingAnswers)\n      return\n    }\n\n    const questions = await Aeppic.editAll(questionnaire.data.questions)\n\n    for (const question of questions) {\n      const answer = await Aeppic.new('84043618-903e-4666-83b5-9cf5449ba8f4', document.id)\n      answer.addReference('question', question)\n      locals.answers.push(answer)\n    }\n  }\n\n\n  async save() {\n    locals.errors = []\n\n    const verification = this._verifyInputs()\n\n    if (!verification.ok) {\n      locals.errors = verification.errors\n      return\n    }\n\n    Aeppic.save(document)\n    Aeppic.saveAll(locals.answers)\n\n    await this._updateModelInBaseData()\n\n    $refs.dialog && $refs.dialog.show()\n\n    await this._deleteShare()\n  }\n\n  _verifyInputs() {\n    const allAnwsersFilledOut = locals.answers.every((answer) => !!answer.data.answer)\n    const allFieldsToVerifyFilledOut = locals.fieldsToVerify.every((fieldName) => {\n      const value = document.data[fieldName]\n\n      if (typeof value === 'boolean') {\n        return value != null\n      }\n\n      if (typeof value === 'string') {\n        return value !== ''\n      }\n\n      if (Array.isArray(value)) {\n        return value.length > 0\n      }\n\n      if (typeof value === 'object' && 'id' in value) {\n        return value.id !== ''\n      }\n\n      // TODO: improve \"just say OK for everything else\"\n      return true\n    })\n\n    const errors = []\n\n    if (!allAnwsersFilledOut) {\n      errors.push('error:shortlist:verify-answers:required')\n    }\n\n    if (!allFieldsToVerifyFilledOut) {\n      errors.push('error:shortlist:verify-fields:required')\n    }\n\n    if (errors.length) {\n      return { ok: false, errors }\n    }\n\n    return { ok: true }\n  }\n\n  async _updateModelInBaseData() {\n    const model = await Aeppic.edit(data.model.id)\n    \n    const changeToModelInBaseData = Aeppic.Model.mergeFields(document, model, document)\n\n    if (changeToModelInBaseData) {\n      console.log('apply request data to modelInBaseData:',changeToModelInBaseData.data)\n      for (const key in changeToModelInBaseData.data) {\n        model.data[key] = changeToModelInBaseData.data[key]\n      }\n      Aeppic.save(model)\n    } else {\n      console.warn('could not save any changes from application to modelInBaseData')\n    }\n  }\n\n  async _deleteShare() {\n    if (!params.share) {\n      return\n    }\n\n    Aeppic.delete(params.share)\n  }\n\n} ","packages":[]},"locks":[],"created":{"at":"2018-07-06T12:15:04+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2020-10-13T10:11:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1602583892692,"ct":1530879304632,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","275b807f-7dbb-4351-b731-669e275fa97d"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"9ed53522-2f36-4696-a142-80af2fa7b930","v":"initial","p":"6786b72e-276f-4c82-b7c5-ca5758689118","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"page--with-arc-projects-and-protocolls","applies":"","template":"<!-- <ae-list class=\"_CSS-files\" :documents=\"data.files\" list-id=\"663edb5e-9f78-4fc0-a8bc-b894d8d01246\"></ae-list> -->\r\n\r\n<!-- <ae-list class=\"_CSS-news\" :documents=\"data.news\" list-id=\"f94fac30-56a6-4aac-bd7c-1881bd752b13\"></ae-list> -->\r\n\r\n<div class=\"_CSS-content\">\r\n  <h3 style=\"font-size:smaller;\">Neue Teambesprechungen</h3>\r\n\r\n  <ae-list :root-document-id=\"document.p\"\r\n          :documents=\"locals.protocols\"\r\n          list-id=\"2e798091-303f-406b-a42a-93aa1cd8425c\"\r\n          @selected=\"Aeppic.navigateTo($event)\"\r\n          param-design=\"ref-card,card\"\r\n          :param-design-params=\"{ readonly: true }\"\r\n  ></ae-list>\r\n</div>\r\n<!-- <ae-list class=\"_CSS-employees\" :documents=\"data.employees\" list-id=\"a6ba3102-6e70-4085-893c-cc01f7994fd4\"></ae-list> -->\r\n","css":"._CSS {\r\n}\r\n\r\n._CSS-content {\r\n  margin: auto;\r\n  max-width: var(--ae-page-max-width);\r\n}\r\n\r\n\r\n/* ._CSS > * {\r\n  padding-left:8px;\r\n}\r\n\r\n._CSS > *+* {\r\n  margin-top:28px;\r\n}\r\n\r\n._CSS {\r\n  display: grid;\r\n  grid-template-columns: 1fr 1fr;\r\n  grid-auto-rows: min-content;\r\n  grid-gap: 3em;\r\n}\r\n \r\n._CSS-files {\r\n  grid-column: 1/3;\r\n  grid-row: 1/2;\r\n  max-height:210px;\r\n  overflow:hidden;\r\n}\r\n\r\n._CSS-news {\r\n  grid-column: 1/2;\r\n  grid-row: 2/3;\r\n}\r\n\r\n._CSS-employees {\r\n  grid-column: 2/3;\r\n  grid-row: 2/3;\r\n}\r\n */","controller":"async init() {\n  this.FORMS = {\n    jourfix: 'd16936c1-7ccc-40f1-b526-d2d9ce37ebd2'\n  }\n  locals.protocols = []\n\n  const protocolsSearch = {\n    search: `a:${document.p} f.id:${this.FORMS.jourfix} data.date:[* TO *]`,\n    sort: {\n      field: 'data.date',\n      descending: true\n    }\n  }\n\n   Aeppic.subscribe(protocolsSearch.search, { sort: protocolsSearch.sort }, (docs) => locals.protocols = docs.slice(0, 15))\n}","packages":[]},"locks":[],"created":{"at":"2020-05-08T08:50:38+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2020-05-08T08:50:38+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1588927838015,"ct":1588927838002,"a_depth":4,"a":["apps","77ee8815-2c3a-4bb5-abd9-90541a545a24","b42e5a69-6cf0-4b55-928a-755011005b5a","6786b72e-276f-4c82-b7c5-ca5758689118"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"95298930-59fb-465e-8655-79f87d549029","v":"d18f6ce49aebb36e","previous":{"v":"initial"},"p":"6786b72e-276f-4c82-b7c5-ca5758689118","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"page--with-dms-news-employees-protocol-groups","applies":"","template":"<ae-list \r\n  class=\"_CSS-files\" \r\n  :documents=\"data.files\" \r\n  list-id=\"663edb5e-9f78-4fc0-a8bc-b894d8d01246\"\r\n></ae-list>\r\n\r\n<ae-list \r\n  class=\"_CSS-news\" \r\n  :documents=\"data.news\" \r\n  list-id=\"f94fac30-56a6-4aac-bd7c-1881bd752b13\"\r\n></ae-list>\r\n\r\n<div>\r\n  <div class=\"_CSS-protocols\">\r\n    <h3   style=\"font-size:smaller;\" \r\n            v-if=\"locals.protocolGroups.length != 0\"\r\n    >\r\n      Protokoll-Gruppen\r\n    </h3>\r\n      \r\n    <ae-list \r\n      @selected=\"Aeppic.navigateTo($event)\" \r\n      :root-document-id=\"document.p\"\r\n      :documents=\"locals.protocolGroups\" \r\n      list-id=\"2e798091-303f-406b-a42a-93aa1cd8425c\" \r\n      param-design=\"card\"\r\n    ></ae-list>\r\n  </div>\r\n\r\n  <ae-list \r\n    class=\"_CSS-employees\" \r\n    :documents=\"data.employees\" \r\n    list-id=\"a6ba3102-6e70-4085-893c-cc01f7994fd4\"\r\n  ></ae-list>\r\n</div>","css":"/* ._CSS > * {\r\n  padding-left:8px;\r\n}\r\n\r\n._CSS > *+* {\r\n  margin-top:28px;\r\n} */\r\n\r\n._CSS {\r\n  display: grid;\r\n  grid-template-columns: 1fr 1fr;\r\n  grid-auto-rows: min-content;\r\n  grid-gap: 3em;\r\n}\r\n \r\n._CSS-files {\r\n  grid-column: 1/3;\r\n  grid-row: 1/2;\r\n  max-height:290px;\r\n  overflow:hidden;\r\n}\r\n\r\n._CSS-news {\r\n  grid-column: 1/2;\r\n  grid-row: 2/3;\r\n}\r\n\r\n._CSS-protocols {\r\n  grid-column: 2/3;\r\n  grid-row: 2/3;\r\n}\r\n\r\n._CSS-employees {\r\n  grid-column: 2/3;\r\n  grid-row: 2/3;\r\n}","controller":"async init() {\n  locals.protocols = []\n  locals.protocolGroups = []\n\n  const protocolsSearch = {\n    search: `a:${document.p} f.id:8dbe21a7-7642-4884-986b-a119c6498bd3 data.date:[* TO *]`,\n    sort:{\n      field: 'data.date',\n      descending: true\n    }\n  }\n\n  Aeppic.subscribe(protocolsSearch.search, { sort: protocolsSearch.sort }, (docs) => locals.protocols = docs.slice(0,5))\n\n   const protocolGroupsSearch = {\n    search: `a:${document.p} f.id:954212d9-9cc7-4356-82e3-a80cf745da4d`\n  }\n\n  Aeppic.subscribe(protocolGroupsSearch.search, (docs) => locals.protocolGroups = docs)\n\n}\n\n","packages":[]},"locks":[],"created":{"at":"2020-05-08T08:50:38+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2022-03-28T13:09:58+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1648472998591,"ct":1588927838103,"a_depth":4,"a":["apps","77ee8815-2c3a-4bb5-abd9-90541a545a24","b42e5a69-6cf0-4b55-928a-755011005b5a","6786b72e-276f-4c82-b7c5-ca5758689118"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"5d1f284d-3aa2-4c82-a9f1-567957375d71","v":"602684042244172c","cloneOf":{"id":"9647c9d6-c4ba-4ee0-b6b4-e2f54adf0354","v":"01f953ad761101aa","text":"page"},"originalCloneOf":{"id":"9647c9d6-c4ba-4ee0-b6b4-e2f54adf0354","v":"01f953ad761101aa","text":"page"},"previous":{"v":"77e37be036ca4816"},"p":"6786b72e-276f-4c82-b7c5-ca5758689118","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"page--with-dms-news-protocols","applies":"","template":"<ae-list class=\"_CSS-files\" :documents=\"data.files\" list-id=\"663edb5e-9f78-4fc0-a8bc-b894d8d01246\"></ae-list>\r\n\r\n<ae-list class=\"_CSS-news\" :documents=\"data.news\" list-id=\"f94fac30-56a6-4aac-bd7c-1881bd752b13\"></ae-list>\r\n\r\n<div class=\"_CSS-employees\">\r\n  <h3 style=\"font-size:smaller;\">Neue Protokolle</h3>\r\n\r\n  <ae-list :documents=\"locals.protocols\"\r\n          list-id=\"2e798091-303f-406b-a42a-93aa1cd8425c\"\r\n          @selected=\"Aeppic.drillInto($event)\"\r\n          param-design=\"ref-card,card\"\r\n  ></ae-list>\r\n</div>\r\n\r\n<!-- <ae-list class=\"_CSS-employees\" :documents=\"data.employees\" list-id=\"a6ba3102-6e70-4085-893c-cc01f7994fd4\"></ae-list>  -->\r\n","css":"/* ._CSS > * {\r\n  padding-left:8px;\r\n}\r\n\r\n._CSS > *+* {\r\n  margin-top:28px;\r\n} */\r\n\r\n._CSS {\r\n  display: grid;\r\n  grid-template-columns: 1fr 1fr;\r\n  grid-auto-rows: min-content;\r\n  grid-gap: 3em;\r\n}\r\n \r\n._CSS-files {\r\n  grid-column: 1/3;\r\n  grid-row: 1/2;\r\n    max-height:290px;\r\n\r\n  overflow:hidden;\r\n}\r\n\r\n._CSS-news {\r\n  grid-column: 1/2;\r\n  grid-row: 2/3;\r\n}\r\n\r\n._CSS-employees {\r\n  grid-column: 2/3;\r\n  grid-row: 2/3;\r\n}","controller":"async init() {\n  locals.protocols = []\n\n  const protocolsSearch = {\n    search: `a:${document.p} f.id:8dbe21a7-7642-4884-986b-a119c6498bd3 data.date:[* TO *]`,\n    sort:{\n      field: 'data.date',\n      descending: true\n    }\n  }\n\n   Aeppic.subscribe(protocolsSearch.search, { sort: protocolsSearch.sort }, (docs) => locals.protocols = docs.slice(0,5))\n}\n\n","packages":[]},"locks":[],"created":{"at":"2019-06-05T13:52:51+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2022-03-28T13:09:47+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1648472987716,"ct":1559742771100,"a_depth":4,"a":["apps","77ee8815-2c3a-4bb5-abd9-90541a545a24","b42e5a69-6cf0-4b55-928a-755011005b5a","6786b72e-276f-4c82-b7c5-ca5758689118"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"47c172ec-0564-462e-b0b2-36df7b72707c","v":"c367a2e7b551331b","previous":{"v":"bc66fcad5600f92c"},"p":"6786b72e-276f-4c82-b7c5-ca5758689118","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"page--with-dms-news-protocols-employees","applies":"","template":"<div class=\"_CSS-overview \"> \r\n  <ae-list class=\"_CSS-files\" :documents=\"data.files\" list-id=\"663edb5e-9f78-4fc0-a8bc-b894d8d01246\"></ae-list>\r\n\r\n  <div class=\"_CSS-overview-container\" :style=\"Aeppic.Device === 'Phone'? 'flex-direction: column' : ''\">\r\n    <div class=\"_CSS-list\">\r\n      <ae-list class=\"_CSS-list-news\" :class=\"Aeppic.Device === 'Phone'? '_CSS-list-news--mobile' : ''\" :documents=\"data.news\" list-id=\"f94fac30-56a6-4aac-bd7c-1881bd752b13\"></ae-list>\r\n    </div>\r\n      <div class=\"_CSS-employees\">\r\n        <h3 style=\"font-size:smaller;\">Neue Protokolle</h3>\r\n\r\n        <ae-list :documents=\"locals.protocols\"\r\n                list-id=\"2e798091-303f-406b-a42a-93aa1cd8425c\"\r\n                @selected=\"Aeppic.drillInto($event)\"\r\n                param-design=\"ref-card,card\"\r\n        ></ae-list>\r\n        \r\n        <ae-list :documents=\"data.employees\" list-id=\"a6ba3102-6e70-4085-893c-cc01f7994fd4\"></ae-list>\r\n      </div>\r\n  </div>\r\n</div>\r\n","css":"._CSS-overview {\r\n  display: flex; \r\n  flex-direction: column; \r\n  width: 100%; \r\n}\r\n\r\n._CSS-overview-container {\r\n  display:flex;\r\n}\r\n\r\n._CSS-list {\r\n  display:flex;\r\n}\r\n \r\n._CSS-files {\r\n  max-height:290px;\r\n  overflow:hidden;\r\n}\r\n\r\n._CSS-list-news,._CSS-list-news--mobile {\r\n  display: flex;\r\n  flex: 1; \r\n  width: 100%; \r\n  flex-direction: column;\r\n  padding: 0 var(--ae-size-5) 0 0;\r\n}\r\n\r\n._CSS-list-news--mobile {\r\n  padding: 0;\r\n}\r\n\r\n._CSS-employees {\r\n  flex: 1;\r\n}","controller":"class Controller {\n  async init() {\n  locals.protocols = []\n\n  const protocolsSearch = {\n    search: `a:${document.p} f.id:8dbe21a7-7642-4884-986b-a119c6498bd3 data.date:[* TO *]`,\n    sort:{\n      field: 'data.date',\n      descending: true\n    }\n  }\n\n   Aeppic.subscribe(protocolsSearch.search, { sort: protocolsSearch.sort }, (docs) => locals.protocols = docs.slice(0,15))\n  }\n}\n\n","packages":[]},"locks":[],"created":{"at":"2020-05-08T08:50:38+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2022-03-28T13:10:13+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1648473013611,"ct":1588927838330,"a_depth":4,"a":["apps","77ee8815-2c3a-4bb5-abd9-90541a545a24","b42e5a69-6cf0-4b55-928a-755011005b5a","6786b72e-276f-4c82-b7c5-ca5758689118"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"208671f9-5785-4976-8b27-298509a33c33","v":"08863e7e1e2c25cd","cloneOf":{"id":"47c172ec-0564-462e-b0b2-36df7b72707c","v":"84434ec181c39014","text":"page--with-dms-news-protocols-employees"},"originalCloneOf":{"id":"47c172ec-0564-462e-b0b2-36df7b72707c","v":"84434ec181c39014","text":"page--with-dms-news-protocols-employees"},"previous":{"v":"3f8f9e63d04b86b6"},"p":"6786b72e-276f-4c82-b7c5-ca5758689118","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"page--with-news-protocols","applies":"","template":"<div class=\"_CSS-overview \"> \r\n  <div class=\"_CSS-overview-container\" :style=\"Aeppic.Device === 'Phone'? 'flex-direction: column' : ''\">\r\n    <div class=\"_CSS-list\">\r\n      <ae-list class=\"_CSS-list-news\" :class=\"Aeppic.Device === 'Phone'? '_CSS-list-news--mobile' : ''\" :documents=\"data.news\" list-id=\"f94fac30-56a6-4aac-bd7c-1881bd752b13\"></ae-list>\r\n    </div>\r\n      <div class=\"_CSS-protocols\">\r\n        <h3 style=\"font-size:smaller;\">Neue Protokolle</h3>\r\n        <ae-list :documents=\"locals.protocols\"\r\n                list-id=\"2e798091-303f-406b-a42a-93aa1cd8425c\"\r\n                @selected=\"Aeppic.drillInto($event)\"\r\n                param-design=\"ref-card,card\"\r\n        ></ae-list>\r\n      </div>\r\n  </div>\r\n</div>\r\n","css":"._CSS-overview {\r\n  display: flex; \r\n  flex-direction: column; \r\n  width: 100%; \r\n}\r\n\r\n._CSS-overview-container {\r\n  display:flex;\r\n}\r\n\r\n._CSS-list {\r\n  display:flex;\r\n}\r\n\r\n._CSS-list-news,._CSS-list-news--mobile {\r\n  display: flex;\r\n  flex: 1; \r\n  width: 100%; \r\n  flex-direction: column;\r\n  padding: 0 var(--ae-size-5) 0 0;\r\n}\r\n\r\n._CSS-list-news--mobile {\r\n  padding: 0;\r\n}\r\n\r\n._CSS-protocols {\r\n  width: 100%; \r\n}\r\n","controller":"class Controller {\n  async init() {\n  locals.protocols = []\n\n  const protocolsSearch = {\n    search: `a:${document.p} f.id:8dbe21a7-7642-4884-986b-a119c6498bd3 data.date:[* TO *]`,\n    sort:{\n      field: 'data.date',\n      descending: true\n    }\n  }\n\n   Aeppic.subscribe(protocolsSearch.search, { sort: protocolsSearch.sort }, (docs) => locals.protocols = docs.slice(0,15))\n  }\n}\n\n","packages":[]},"locks":[],"created":{"at":"2020-09-30T09:14:13+00:00","by":"77031fd1-c20d-4484-b4b4-46c01bdab986","from":"","client":"server"},"modified":{"at":"2020-10-30T09:53:09+00:00","by":"77031fd1-c20d-4484-b4b4-46c01bdab986","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1604051589472,"ct":1601457253960,"a_depth":4,"a":["apps","77ee8815-2c3a-4bb5-abd9-90541a545a24","b42e5a69-6cf0-4b55-928a-755011005b5a","6786b72e-276f-4c82-b7c5-ca5758689118"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[],"hidden":false,"readonly":false},{"id":"49bcd0eb-b553-4cb8-a1f6-f004fdd5ef49","v":"1f91b5835db8a56f","cloneOf":{"id":"5d1f284d-3aa2-4c82-a9f1-567957375d71","v":"77e37be036ca4816","text":"page--with-dms-news-protocols"},"originalCloneOf":{"id":"5d1f284d-3aa2-4c82-a9f1-567957375d71","v":"77e37be036ca4816","text":"page--with-dms-news-protocols"},"previous":{"v":"6912e58e4154f02d"},"p":"6786b72e-276f-4c82-b7c5-ca5758689118","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"page--with-news-protocols-employees","applies":"","template":"<ae-list class=\"_CSS-news\" :documents=\"data.news\" list-id=\"f94fac30-56a6-4aac-bd7c-1881bd752b13\"></ae-list>\r\n\r\n<div class=\"_CSS-protocols\">\r\n  <h3 style=\"font-size:smaller;\">Neue Protokolle</h3>\r\n\r\n  <ae-list :documents=\"locals.protocols\"\r\n          list-id=\"2e798091-303f-406b-a42a-93aa1cd8425c\"\r\n          @selected=\"Aeppic.drillInto($event)\"\r\n          param-design=\"ref-card,card\"\r\n  ></ae-list>\r\n</div>\r\n\r\n<ae-list class=\"_CSS-employees\" :documents=\"data.employees\" list-id=\"a6ba3102-6e70-4085-893c-cc01f7994fd4\"></ae-list> \r\n","css":"._CSS {\r\n  display: grid;\r\n  grid-template-columns: 1fr 1fr;\r\n  grid-auto-rows: min-content;\r\n  grid-gap: 3em;\r\n}\r\n \r\n._CSS-news {\r\n  grid-column: 1/2;\r\n  grid-row: 1/3;\r\n}\r\n\r\n._CSS-protocols {\r\n  grid-column: 2/3;\r\n  grid-row: 1/2;\r\n}\r\n\r\n._CSS-employees {\r\n  grid-column: 2/3;\r\n  grid-row: 2/3;\r\n}","controller":"async init() {\n  locals.protocols = []\n\n  const protocolsSearch = {\n    search: `a:${document.p} f.id:8dbe21a7-7642-4884-986b-a119c6498bd3 data.date:[* TO *]`,\n    sort: {\n      field: 'data.date',\n      descending: true\n    },\n    size: 5\n  }\n\n   Aeppic.subscribe(protocolsSearch.search, { sort: protocolsSearch.sort, size: protocolsSearch.size }, (docs) => locals.protocols = docs)\n}\n\n","packages":[]},"locks":[],"created":{"at":"2022-02-28T09:09:08+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-02-28T12:38:15+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1646051895915,"ct":1646039348080,"a_depth":4,"a":["apps","77ee8815-2c3a-4bb5-abd9-90541a545a24","b42e5a69-6cf0-4b55-928a-755011005b5a","6786b72e-276f-4c82-b7c5-ca5758689118"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","816b2d0e-5158-4f0c-a5cf-6069bb76de69"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2022-03-04T11:05:46+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1646391946324,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    const WORK_RESET_AFTER_SECONDS = 60 * 60 * 3\n    this.timeoutAt = Aeppic.DateTime.local().plus({ seconds: WORK_RESET_AFTER_SECONDS })\n\n    Aeppic.setTimeout(() => this.resetWork(), WORK_RESET_AFTER_SECONDS * 1000)\n \n    locals.timeUntilTimeout = ''\n    locals.minutesUntilTimeout = null\n    locals.canSign = false\n    locals.mustSign = false\n    locals.tasks = [] \n\n    locals.signingView = {\n      only: {\n        fields: ['unterschrift']\n      }\n    }\n\n    locals.anlage = null\n    locals.anlage = await Aeppic.get(document.p)\n\n    const readerMode =  await Aeppic.Preferences.getSettingForDocument('keeptrack:settings:signatureMode', document)\n    locals.mustSign = readerMode === 'WARTUNGSPUNKT'\n\n    Aeppic.setInterval(() => {\n      this._updateMinutesUntilTimeout()\n    }, 1000 * 60 * 3)\n\n    this._updateMinutesUntilTimeout()\n \n    Aeppic.watchAll(data.arbeiten, (tasks) => {\n      locals.tasks = tasks.filter(Boolean)\n      this._updateCanSign()\n    })\n  }\n\n  _updateMinutesUntilTimeout() {\n    // TODO: return human readable\n    const timeLeft = this.timeoutAt.diffNow('minutes')\n    const minutesLeft = timeLeft.toObject().minutes \n\n    locals.minutesUntilTimeout = minutesLeft\n\n    if (minutesLeft < 60) {\n      locals.timeUntilTimeout = `${minutesLeft} Minuten`\n    } else {\n      locals.timeUntilTimeout = `${Math.floor(timeLeft.as('hours'))} Stunden`\n    }\n  }\n\n  async resetWork() {\n    if (!params.readonly) {\n      console.log('skipping resetWork because readonly')\n      return\n    }\n\n    const editables = await Aeppic.editAll(data.arbeiten)\n\n    editables.forEach(e => e.data.io = 0)\n\n    Aeppic.saveAll(editables)\n\n    Aeppic.navigateTo(document.p)\n  }\n\n  get isSigned() {\n    return !!data.unterschrift.dataUrl\n  }\n\n  _updateCanSign() {\n    if (!locals.mustSign) {\n      return false\n    }\n\n    if (this.isSigned) {\n      locals.canSign = false\n      return\n    }\n\n    locals.canSign = this.allTasksDone\n  }\n\n  get isComplete() { \n    if (locals.mustSign) {\n      return this.isSigned\n    }\n\n    return this.allTasksDone\n  }\n\n  get allTasksDone() {\n    const allTasksDone = locals.tasks.every(task => { \n      const taskNotBegunYet = task.data.io <= 0\n\n      if (taskNotBegunYet) {\n        return false\n      }\n\n      if ((task.data.io === 1 || task.data.bemerkungenPflicht) && !task.data.bemerkungen) {\n        return false\n      }\n\n      return true      \n    })\n\n    return allTasksDone\n  }\n\n  async executeCommand(commandId) {\n    const result = await Aeppic.Commands.execute(commandId, document, {}, { navigation: true })\n\n    console.log(result)\n\n    if (Aeppic.Account?.data.isAdmin) {\n      packages.window.confirm(`Ergebnis der Wartungs-Beendung: ${result.value?.checkResultReadable}`)\n    }\n\n    Aeppic.navigateTo(document.p)\n  }\n}\n","css":"","description":"","name":"page--worker","packages":[{"id":"10843fbf-4f0c-416b-be7d-42d6bbd0ae68","text":"Window","v":"d4ce6dec568c3dc1"}],"template":"<div class=\"p-4\">\n  <section class=\"mb-2\">\n    <div class=\"text-3xl\">\n      <ae-design name=\"styled-title\" :document-id=\"data.eintrag.id\"></ae-design>\n    </div>\n  </section>\n\n  <section class=\"mb-6\" v-if=\"data.fabrikat || data.typ\">\n      <span class=\"text-1xl font-bold\">\n        {{ data.typ }}\n      </span>\n      <span class=\"text-sm\">{{ data.fabrikat }}</span>\n  </section>\n\n  <section class=\"mb-6\">\n    <div v-if=\"locals.anlage\">\n      <span class=\"text-1xl font-bold\">\n        Anlage\n        {{ locals.anlage.data.nummer }}\n        {{ locals.anlage.data.name }}\n      </span>\n      <span class=\"text-sm\">{{ locals.anlage.data.fabrikat }}</span>\n    </div>\n  </section>\n\n  <section class=\"mb-6\" v-if=\"data.kommentar\">\n      <div class=\"border rounded-lg bg-white p-4\">\n        {{ data.kommentar }}\n      </div>\n  </section>\n\n\n  <section class=\"mb-8\">\n    <ae-list  v-if=\"locals.anlage\"\n              list-id=\"2e798091-303f-406b-a42a-93aa1cd8425c\"\n              :documents=\"data.arbeiten\"\n              param-design=\"work\"\n              :param-design-params=\"{ readonly: controller.isSigned || params.readonly }\"\n    ></ae-list>\n  </section>\n\n  <section v-if=\"!controller.isSigned && locals.canSign\" class=\"my-12\">\n    <ae-form :document=\"document\" :view=\"locals.signingView\" layout-id=\"6c39f2cc-6059-42b2-8796-5c803899367c\" :auto-save=\"true\"></ae-form>\n  </section>\n\n  <section v-if=\"controller.isSigned\" class=\"my-12\">\n    <div class=\"mb-2 font-bold\">\n      Ihre Unterschrift\n    </div>\n\n    <img class=\"w-[200px]\" v-if=\"data.unterschrift.dataUrl\" :src=\"Aeppic.Content.getSrc(document, 'unterschrift')\">\n  </section>\n\n  <section v-if=\"!locals.isComplete && !controller.isSigned\" class=\"mb-6\">\n    <div class=\"flex flex-col gap-6\">\n      <span>\n        Es müssen <strong>alle</strong> Arbeiten durchgeführt werden.\n      </span>\n      <span>\n        Sollte ein <strong>Mangel</strong> festgestellt werden dann von <span class=\"italic text-success\">In Ordnung</span> auf <span class=\"italic text-error\">Mangel</span> stellen und diesen <strong>dokumentieren</strong>.\n      </span>\n    </div>\n  </section>\n\n  <section class=\"my-4 flex gap-2 items-center\">\n    <ae-icon class=\"far fa-info-circle text-2xl\"></ae-icon>\n    <div>\n      <span>\n        In \n      </span>\n      <span :class=\"{ 'font-bold text-error': locals.minutesUntilTimeout <= 15 }\">\n        {{ locals.timeUntilTimeout }}\n      </span>\n      <span>\n        werden alle Arbeitsschritte zurückgesetzt, sollten die Arbeiten nicht bis dahin durchgeführt worden sein\n      </span>\n    </div>\n  </section>\n  \n  <ae-layout  layout-id=\"a2cd7699-9b46-494f-8f89-cb1f62151d82\"\n              :param-text=\"controller.isComplete ? 'Wartung beenden' : 'Wartung abbrechen'\"\n              :param-icon=\"controller.isComplete ? 'fa fa-check' : 'fa fa-times'\"\n              @selected=\"controller.executeCommand('80d31801-01df-4977-b96a-4ea2543fbea0')\"\n              class=\"w-full\"\n              param-classes=\"w-full\"\n              :param-disabled=\"params.readonly\"\n  ></ae-layout>\n\n  <section v-if=\"Aeppic.Account && Aeppic.Account.data.isAdmin\" class=\"mt-6 flex\">\n    <ae-layout  layout-id=\"a2cd7699-9b46-494f-8f89-cb1f62151d82\"\n                param-text=\"[ADMIN only] Recheck durchführen\"\n                @selected=\"controller.executeCommand('80d31801-01df-4977-b96a-4ea2543fbea0')\"\n                :param-disabled=\"params.readonly\"\n    ></ae-layout>\n  </section>\n</div>\n\n"},"f":{"id":"design-form","text":"Design","v":"3385ac6766f32638"},"id":"04825ee7-59bd-454e-98ef-8c88c88d9a43","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-07-17T06:02:58+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"816b2d0e-5158-4f0c-a5cf-6069bb76de69","previous":{"v":"b89a75c8587c18c1"},"stamps":[],"t":1752732178004,"v":"843f191a74f55907"},{"id":"515cb999-dd42-4358-9368-8c972bd04882","v":"274a1fb75be46aae","previous":{"v":"0547ec13998e2b06"},"p":"5150f703-e93a-4e54-a998-a06c0e962e71","f":{"id":"design-form","v":"3385ac6766f32638","text":"Design"},"data":{"name":"page--worker","template":"<div class=\"p-4\">\n  <section class=\"flex flex-wrap items-center justify-between mb-2\">\n    <div>\n      <div class=\"text-3xl\">{{ data.name }}</div>\n    </div>\n\n    <div class=\"ml-auto flex flex-col items-end\"> \n      <span>{{ document.data.nummer }} {{ document.data.raum }}</span>\n      \n      <span class=\"font-mono\">{{ document.data.fabrikat }}</span>\n    </div>\n  </section>\n  \n  <section v-if=\"locals.offeneAnlagenteile.length\" class=\"mb-6\" > \n    <div class=\"ml-1 text-2xl mb-4 underline decoration-solid decoration-theme-400\">Nächster Wartungspunkt</div>\n    <div xclass=\"ml-4\">\n      <ae-design name=\"next,list,title\" :document=\"locals.offeneAnlagenteile[0]\" :param-readonly=\"params.readonly\"></ae-design>\n    </div>\n  </section>\n\n  <section xv-if=\"!data.unterschrift.dataUrl\" class=\"mb-6\">\n    <div class=\"ml-1 text-2xl mb-4 underline decoration-solid decoration-theme-400\">Übersicht aller Wartungspunkte</div>\n    <ae-list  class=\"ml-4\" \n              list-id=\"2e798091-303f-406b-a42a-93aa1cd8425c\" \n              :documents=\"locals.anlagenteile\"\n              param-design=\"list,title\" \n              xparam-title-text=\"Übersicht aller Wartungspunkte\"\n              :param-design-params=\"{ activeDocument: locals.offeneAnlagenteile[0] }\"\n    ></ae-list>\n  </section>\n\n  <section v-if=\"!controller.isSigned && controller.canSign\" class=\"my-12\">\n      <ae-form :document=\"document\" :view=\"locals.signingView\" layout-id=\"6c39f2cc-6059-42b2-8796-5c803899367c\" :auto-save=\"true\"></ae-form>\n  </section>\n\n  <section class=\"my-12\" v-if=\"controller.isSigned\">\n    <div class=\"mb-2 font-bold\">\n      Ihre Unterschrift\n    </div>\n\n    <img class=\"w-[200px]\" v-if=\"data.unterschrift.dataUrl\" :src=\"Aeppic.Content.getSrc(document, 'unterschrift')\">\n  </section>\n\n  <section class=\"mt-12\">\n    <ae-layout  layout-id=\"a2cd7699-9b46-494f-8f89-cb1f62151d82\"\n                :param-text=\"controller.isComplete && controller.signatureMissing ? 'Unterschrift erforderlich' : 'Zurück zur Anlagenübersicht'\"\n                @selected=\"Aeppic.navigateTo(document.a[document.a_forms.findIndex(aForm => aForm === 'c211ffaa-14f8-4439-9126-f42f65ac4424')])\"\n                param-classes=\"w-full\"\n                :param-disabled=\"params.readonly || (controller.isComplete && controller.signatureMissing)\"\n    ></ae-layout> \n  </section>\n</div>\n","css":"","controller":"class Controller {\n  async init() {\n    locals.signingView = {\n      only: {\n        fields: ['unterschrift']\n      }\n    }\n    \n    locals.mustSign = false\n\n    locals.anlagenteile = []\n    locals.offeneAnlagenteile = []\n\n    // locals.offeneAnlagenteile = await Aeppic.query('0445a735-8ad3-45f8-a951-f07aaca2964a', document)\n\n    Aeppic.watch(document, async (doc) => await this.updateAnlagenteile(doc))\n\n    await this.updateAnlagenteile(document)\n    \n    const readerMode =  await Aeppic.Preferences.getSettingForDocument('keeptrack:settings:signatureMode', document)\n    locals.mustSign = readerMode === 'ANLAGE'\n  }\n\n  async updateAnlagenteile(doc) {\n     locals.anlagenteile = Aeppic.sort(\n        await Aeppic.getAll(doc.data.anlagenteile),\n        { field: 'data.LfNr' }\n      ) \n\n\n      locals.offeneAnlagenteile = locals.anlagenteile.filter(teil => teil.data.ergebnis <= 1 || teil.data.ergebnis === 4)\n  }\n\n  get isComplete() {\n    return locals.offeneAnlagenteile.length === 0\n  }\n\n  get canSign() {\n    return locals.mustSign && this.isComplete\n  }\n\n  get isSigned() {\n    return data.unterschrift.dataUrl\n  }\n\n  get signatureMissing() {\n    return locals.mustSign && !this.isSigned\n  }\n} \n  ","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-03-03T15:00:18+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-06-23T13:42:04+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1655991724262,"ct":1646319618325,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","5150f703-e93a-4e54-a998-a06c0e962e71"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"6a802cd1-36b0-4212-84a8-498ea64f7f5e","v":"0c0d3afa9b371606","cloneOf":{"id":"4c274ddd-0154-46a4-aefb-5f2d33875749","v":"ef9c971e4ccd05a4","text":"page--worker"},"originalCloneOf":{"id":"4c274ddd-0154-46a4-aefb-5f2d33875749","v":"ef9c971e4ccd05a4","text":"page--worker"},"previous":{"v":"34a85048aad6758d"},"p":"3592ceee-ae9a-47a9-8488-7bad5b0d9ff5","f":{"id":"design-form","v":"3385ac6766f32638","text":"Design"},"data":{"name":"page--worker","template":"<div class=\"p-4\">\n  <section class=\"flex justify-between align-end gap-4 mb-6\">\n      <label class=\"text-4xl\">\n        {{data.name}}\n      </label>\n      <ae-design name=\"anschrift\" :document=\"document\"></ae-design>\n  </section>\n\n  <section>\n      <ae-list list-id=\"2e798091-303f-406b-a42a-93aa1cd8425c\"\n              :documents=\"locals.objects\"\n              param-design=\"card\"\n              param-title=\"Objekte\"\n              @selected=\"Aeppic.drillInto($event, arguments[1])\"\n      ></ae-list>\n  </section>\n\n</div> ","css":"","controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Objekt: '3d678f2a-65f5-4dc1-a643-c5998fa33f32',\n      Wartungsplan: '522ca40d-810b-4021-835f-beeace3af7fa',\n      Wartung: 'c211ffaa-14f8-4439-9126-f42f65ac4424',\n    }\n\n    locals.objects = []\n\n    // const location = await Aeppic.get(document.a[document.a_forms.findIndex(aForm => aForm === this.FORMS.Objekt)])\n\n    // const [servicesFolders, plansFolders] = await Promise.all([\n    //   Aeppic.query('b41dd25d-922e-4e07-a14e-75245d846707', location),\n    //   Aeppic.query('72117ae9-9c31-402b-abd2-1f5ee2a7519a', location)\n    // ])\n \n    Aeppic.subscribe(\n      `a:${document.a[0]} f.id:${this.FORMS.Objekt} data.firma:${document.id}`,\n      {\n        sort: {\n          field: 'data.name',\n        }\n      },\n      docs => locals.objects = docs\n    )\n  }\n} \n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-04-01T10:29:30+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-04-01T11:58:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1648814312052,"ct":1648808970573,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","3592ceee-ae9a-47a9-8488-7bad5b0d9ff5"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"b0b29978-6e8c-4e6c-8053-422608d5ec7b","v":"9a92e119da43d840","previous":{"v":"initial"},"p":"522ca40d-810b-4021-835f-beeace3af7fa","f":{"id":"design-form","v":"3385ac6766f32638","text":"Design"},"data":{"name":"page--worker","template":"","css":"","controller":"init() {\n  Aeppic.navigateTo(document.p)\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-03-31T14:31:25+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-03-31T14:31:42+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1648737102463,"ct":1648737085955,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","522ca40d-810b-4021-835f-beeace3af7fa"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"4c274ddd-0154-46a4-aefb-5f2d33875749","v":"a1d210ded87c0122","previous":{"v":"6f1a72ae4c805306"},"p":"3592ceee-ae9a-47a9-8488-7bad5b0d9ff5","f":{"id":"design-form","v":"3385ac6766f32638","text":"Design"},"data":{"name":"page--worker.old","template":"<!-- FIXME: the ae-lists do not re-render correctly when actives were 1 and are set to 0 -->\n<!-- Looks like locals.active is rendered with the ae-list of plan's 😨 -->\n<div class=\"p-4\"\n  :key=\"'_CSS' + locals.plans.length + locals.active.length\"\n  >\n\n  <section class=\"flex justify-between align-end gap-4 mb-6\">\n      <label class=\"text-4xl\">\n        {{data.name}}\n      </label>\n      <ae-design name=\"anschrift\" :document=\"document\"></ae-design>\n  </section>\n\n  <section v-if=\"locals.active.length\">\n      <ae-list list-id=\"2e798091-303f-406b-a42a-93aa1cd8425c\"\n              :documents=\"locals.active\"\n              param-design=\"active-card\"\n              param-title=\"Wartungen (In Bearbeitung)\"\n              xparam-subtitle=\"In Bearbeitung\"\n      ></ae-list>\n  </section>\n\n  <section v-if=\"locals.active.length === 0 && locals.plans.length\">\n    <ae-list    list-id=\"2e798091-303f-406b-a42a-93aa1cd8425c\"\n                :documents=\"locals.plans\"\n                param-design=\"card\"\n                param-title=\"Wartungen (Neu beginnen)\"\n                xoption-subtitle=\"Neu beginnen\"\n    ></ae-list>\n  </section>\n\n</div> ","css":"","controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Objekt: '3d678f2a-65f5-4dc1-a643-c5998fa33f32',\n      Wartungsplan: '522ca40d-810b-4021-835f-beeace3af7fa',\n      Wartung: 'c211ffaa-14f8-4439-9126-f42f65ac4424',\n    }\n\n    locals.active = []\n    locals.plans = []\n\n    const location = await Aeppic.get(document.a[document.a_forms.findIndex(aForm => aForm === this.FORMS.Objekt)])\n\n    const [servicesFolders, plansFolders] = await Promise.all([\n      Aeppic.query('b41dd25d-922e-4e07-a14e-75245d846707', location),\n      Aeppic.query('72117ae9-9c31-402b-abd2-1f5ee2a7519a', location)\n    ])\n \n    Aeppic.subscribe(\n      `p:${servicesFolders[0].id} f.id:${this.FORMS.Wartung} data.firma.id:${document.id} created.at:[now/d-7d TO *] AND NOT data.status:3`,\n      {\n        sort: {\n          field: 'created.at',\n          descending: true\n        }\n      },\n      docs => locals.active = docs\n    )\n\n    Aeppic.subscribe(\n      `p:${plansFolders[0].id} f.id:${this.FORMS.Wartungsplan} data.wartungsfirma.id:${document.id}`,\n      {\n        sort: {\n          field: 'data.name',\n        }\n      },\n      docs => locals.plans = docs\n    )\n  }\n} \n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-03-03T09:21:26+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-04-01T11:53:57+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1648814037887,"ct":1646299286542,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","3592ceee-ae9a-47a9-8488-7bad5b0d9ff5"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"e62c834d-d635-4303-90dd-d2c857e97db9","v":"a99a0e276f7f60f9","previous":{"v":"bf553be9d652537a"},"p":"3d678f2a-65f5-4dc1-a643-c5998fa33f32","f":{"id":"design-form","v":"3385ac6766f32638","text":"Design"},"data":{"name":"page--worker.old","template":"<template v-if=\"locals.ready\">\n    <section class=\"p-4 flex items-center gap-4\">\n      <img class=\"rounded-full h-10 w-10\" v-if=\"data.bild.dataUrl\" :src=\"Aeppic.Content.getSrc(document, 'bild')\">\n\n      <div class=\"flex flex-col\">\n        <span>\n          {{data.name}}\n        </span>\n        <span class=\"text-theme-500\">\n          {{data.adresse.street}} {{data.adresse.streetNumber}}, {{data.adresse.postalCode}} {{data.adresse.city}}\n        </span>\n      </div>\n    </section>\n\n    <section>\n      <div v-if=\"data.kartenbild.dataUrl\" \n          :style=\"{ 'background-image': 'url(' + Aeppic.Content.getSrc(document, 'kartenbild') + ')' }\"\n          style=\"min-height:200px;background-position:center;background-size:cover\"\n      ></div>\n    </section>\n\n     <section class=\"p-4\">\n    <!--  <div v-if=\"locals.isVerwalter\" class=\"p-4 flex items-center\">\n        <div class=\"flex items-center align-center gap-2 text-lg text-red-500\">\n          <ae-icon class=\"fa fa-exclamation-triangle animate-pulse\"></ae-icon>\n          <div>\n            Sie sind als Verwalter angemeldet.\n            Bitte nutzten Sie einen Account für die Wartungs-Ausführung.\n          </div>\n        </div>\n      </div> -->\n\n      <h1>Wartungsfirmen</h1>\n\n      <div class=\"my-4 flex gap-2 items-center\">\n        <ae-icon class=\"far fa-info-circle text-2xl\"></ae-icon>\n        <span>\n          Wählen Sie Ihre Firma aus, für die Sie Wartungen vornehmen wollen\n        </span>\n      </div>\n\n      <ae-list  list-id=\"2e798091-303f-406b-a42a-93aa1cd8425c\"\n                :root-document-id=\"document.a[0]\"\n                query-id=\"71d5633a-9dbd-4c96-b6e0-1c6ffc5ef0f1\"\n                filter=\"f.id:3592ceee-ae9a-47a9-8488-7bad5b0d9ff5\"\n                @selected=\"Aeppic.drillInto($event, arguments[1])\"\n                param-design=\"card\"\n                :param-design-params=\"{ readonly: locals.isVerwalter }\"\n      ></ae-list> \n  </section>\n</template>\n ","css":"","controller":"class Controller {\n  async init() {\n    locals.ready = false\n    \n    locals.isVerwalter = false\n    locals.isVerwalter = (await Aeppic.Commands.execute('950f35d3-95ba-4d5a-a164-0074c767d600', document, { Account: Aeppic.Account })).value\n    \n    locals.ready = true\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-03-02T15:36:35+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-04-01T11:58:51+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1648814331018,"ct":1646235395099,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","3d678f2a-65f5-4dc1-a643-c5998fa33f32"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"0c10d1d2-07e2-4660-8c7b-beda83750a64","v":"fb8a0a8d532cdad1","p":"fallback-designs","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"page-details__content","template":"<!-- <ae-design name=\"page-details__meta\" :document=\"document\" :params=\"params\"></ae-design> -->\n\n<ae-form class=\"_CSS-form\"\n        :document=\"document\"\n        :readonly=\"params.readonly\"\n        ref=\"form\"\n></ae-form>\n<!-- TODO: use new forms and enable hide empty -->\n<!-- xlayout-id=\"c9438122-73f2-41aa-b414-a0ea0491ef21\"  -->\n","css":"","controller":"class Controller {\n  init() {\n    params.bus.$on('save', function () {\n      $refs.form.save()\n    })\n\n    params.bus.$on('reset-edits', async function () {\n      $refs.form.resetEdits()\n    })\n  }\n}   \n\n  ","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-08-07T09:45:05+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2022-04-21T13:10:44+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720684627133,"ct":1720684627133,"a_depth":2,"a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"],"inheritedLocks":[null,null,null],"stamps":[],"previous":{"v":"61680c9a18fc80ef","f":{"id":"design-form","v":"0061789efb5c5c29","text":"Design"}},"meta":{"modified":{"at":"2024-07-11T09:57:07+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"28b91773-eab7-43fb-ad18-d8e8062a7c7b","v":"45c96ddf6a8269aa","previous":{"v":"1f181d2b45758480"},"p":"8fc08287-dbcc-4e41-9d5d-28e4cd828943","f":{"id":"design-form","v":"0061789efb5c5c29","text":"Design"},"data":{"name":"page-details__content","template":"<div class=\"ae-form-section\" style=\"padding: 0px 8px;\">\n  <div class=\"ae-row\">\n    <div class=\"ae-col ae-control-container ae-form-cell ae-form-cell--readonly\" v-if=\"data.project.id\">\n      <label class=\"ae-form-cell__label\">\n        Verknüpftes Projekt\n      </label>\n      <ae-control class=\"ae-form-cell__control  ae-form-cell__control--readonly\" name=\"ref\" :document=\"document\" field-name=\"project\" :readonly=\"true\"></ae-control>\n    </div>\n  </div>\n  <div class=\"ae-row\">\n    <div class=\"ae-col ae-control-container ae-form-cell ae-form-cell--readonly\" v-if=\"data.dmsFolder.id\">\n      <label class=\"ae-form-cell__label\">\n        Verknüpfte Dokumente\n      </label>\n      <ae-control class=\"ae-form-cell__control  ae-form-cell__control--readonly\" name=\"ref\" :document=\"document\" field-name=\"dmsFolder\" :readonly=\"true\"></ae-control>\n    </div>\n  </div>\n</div>\n","css":"._CSS {\n  width: 100%;\n}","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-08-07T11:40:39+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2021-11-12T09:56:28+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1636710988004,"ct":1596800439020,"a_depth":4,"a":["apps","9d6ee173-26fe-4472-a271-7667f717094e","53b70eca-0cef-448b-9674-22a70a937eb1","8fc08287-dbcc-4e41-9d5d-28e4cd828943"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"2b4dad73-fef9-4224-858a-c87626f90922","v":"6f85c25ede02e391","cloneOf":{"id":"668493e9-895d-471c-a27f-42ada22ca2a8","v":"feb4135259f2f91b","text":"page-details__content"},"originalCloneOf":{"id":"668493e9-895d-471c-a27f-42ada22ca2a8","v":"feb4135259f2f91b","text":"page-details__content"},"previous":{"v":"7c4c6127e49cdd9e"},"p":"fbb5234f-66e1-4545-b087-ff1961f9ceab","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"page-details__content","template":"<div class=\"p-1 flex flex-col gap-2\">\n  <ae-design v-if=\"locals.angebot\"\n    title=\"Angebot\"\n    name=\"card\"\n    @selected=\"controller.drillInto(locals.angebot, $event)\"\n    :document=\"locals.angebot\"\n    ></ae-design> \n\n  <ae-design name=\"sidebar-info,title\" :document=\"document\"></ae-design> \n  <ae-design v-if=\"locals.angebot\" name=\"sidebar-info,title\" :document=\"locals.angebot\"\n    ></ae-design> \n</div>\n","css":"","controller":"async init() {\n  locals.angebot = null\n\n  locals.angebot = await Aeppic.resolve(document, 'data.vertrieb -> data.anfrage')\n}\n\ndrillInto(target, $event) {\n  Aeppic.drillInto(locals.angebot, $event.target)\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-07-05T13:58:59+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-07-08T08:27:40+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720420060703,"ct":1720180739532,"a_depth":4,"a":["apps","deeef973-ce03-4557-bf75-75a059001767","e7de598c-6f5a-4ab4-a33b-213ca86e489d","fbb5234f-66e1-4545-b087-ff1961f9ceab"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"2dceaba7-f218-44c4-88b8-a1d32f0d0101","v":"08f5e1b2e136079d","previous":{"v":"d54a5353d64762cd"},"p":"204787ca-59c2-4b11-b866-aa05fa9c9891","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"page-details__content","template":"<div class=\"ae-form-section\" style=\"padding: 0px 8px;\">\n  <div class=\"ae-row\">\n    <div class=\"ae-col ae-control-container ae-form-cell ae-form-cell--readonly\">\n      <label class=\"ae-form-cell__label\">\n        Verknüpfte Arbeiten in Wartungsplänen\n      </label>\n      <div class=\"ae-form-cell__control  ae-form-cell__control--readonly\">\n        <ae-list  list-id=\"2e798091-303f-406b-a42a-93aa1cd8425c\"\n                  :documents=\"locals.references\"\n                  @selected=\"Aeppic.drillInto($event, arguments[1])\"\n                  xparam-design=\"tag\" \n                  param-empty-text=\"Keine Arbeiten verknüpft\"\n        ></ae-list>\n    </div> \n    </div> \n  </div>\n</div>\n\n","css":"","controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Arbeit: 'd7f0c56d-8e0e-4607-911b-b0789c557d40',\n      Wartungsplaene: 'd60a5613-e046-4341-9bc9-34a241e8a28a'\n    }\n\n    locals.references = []\n\n    const query = `a:${document.a[0]} a_forms:${this.FORMS.Wartungsplaene} f.id:${this.FORMS.Arbeit} data.eintrag:${document.id}`\n     \n    locals.references = await Aeppic.find(query, { sort: ['p', 'data.name'] })\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-04-14T08:45:53+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-04-19T13:25:51+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1650374751449,"ct":1649925953442,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","204787ca-59c2-4b11-b866-aa05fa9c9891"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"6281c3ac-b852-4804-9cf4-ce3556a5d339","v":"a8cef85b6b07f30c","cloneOf":{"id":"2dceaba7-f218-44c4-88b8-a1d32f0d0101","v":"d54a5353d64762cd","text":"page-details__content"},"originalCloneOf":{"id":"2dceaba7-f218-44c4-88b8-a1d32f0d0101","v":"d54a5353d64762cd","text":"page-details__content"},"previous":{"v":"c302e8862fb8943a"},"p":"0dfd4afd-f2ec-4ff0-9a79-811badf4fed5","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"page-details__content","template":"<div class=\"ae-form-section\" style=\"padding: 0px 8px;\">\n  <div class=\"ae-row\">\n    <div class=\"ae-col ae-control-container ae-form-cell ae-form-cell--readonly\">\n      <label class=\"ae-form-cell__label\">\n        Verknüpfte Anlagenteile in Wartungsplänen\n      </label>\n      <div class=\"ae-form-cell__control  ae-form-cell__control--readonly\">\n        <ae-list  list-id=\"2e798091-303f-406b-a42a-93aa1cd8425c\"\n                  :documents=\"locals.references\"\n                  @selected=\"Aeppic.drillInto($event, arguments[1])\"\n                  xparam-design=\"tag\" \n                  param-empty-text=\"Keine Anlagenteile verknüpft\"\n        ></ae-list>\n    </div> \n    </div> \n  </div>\n</div>\n\n","css":"","controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      AnlagenTeil: '816b2d0e-5158-4f0c-a5cf-6069bb76de69',\n      Wartungsplaene: 'd60a5613-e046-4341-9bc9-34a241e8a28a'\n    }\n\n    locals.references = []\n\n    const query = `a:${document.a[0]} a_forms:${this.FORMS.Wartungsplaene} f.id:${this.FORMS.AnlagenTeil} data.eintrag:${document.id}`\n     \n    locals.references = await Aeppic.find(query, { sort: ['p', 'data.name'] })\n  } \n} ","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-04-14T09:22:38+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-04-14T09:37:02+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1649929022056,"ct":1649928158730,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","0dfd4afd-f2ec-4ff0-9a79-811badf4fed5"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"668493e9-895d-471c-a27f-42ada22ca2a8","v":"46d20fc01db82d2c","p":"9ae84206-e0bb-4d39-9200-066c2eaf0fe3","f":{"id":"design-form","v":"22a757f630104010","text":"Design"},"data":{"name":"page-details__content","template":"<ae-design\n    title=\"Angebot\"\n    name=\"card\"\n    @selected=\"controller.drillInto(document.data.auftrag, $event)\"\n    :document=\"document\"\n    ></ae-design> \n\n<ae-design name=\"sidebar-info,title\" :document=\"document.data.auftrag\"></ae-design> \n<ae-design name=\"sidebar-info,title\" :document=\"document\"></ae-design> ","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-06-27T20:01:58+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-07-08T13:57:22+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1721206352361,"ct":1721206352361,"a_depth":4,"a":["apps","deeef973-ce03-4557-bf75-75a059001767","e7de598c-6f5a-4ab4-a33b-213ca86e489d","9ae84206-e0bb-4d39-9200-066c2eaf0fe3"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[],"previous":{"v":"15adc2642eee5b55","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"}},"meta":{"modified":{"at":"2024-07-17T08:52:32+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"70ae4b5c-d31f-47a0-a403-3e916d10ad23","v":"initial","p":"59b7188e-1296-4466-a9c2-d6255496e7d6","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"page-details__content","template":"","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-11-25T12:31:46+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-11-25T12:31:46+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1637843506054,"ct":1637843506054,"a_depth":4,"a":["apps","b9df606f-b33a-48ad-ba91-a82fa7868fa4","f0010376-2737-42c5-aaf8-f8b8e1cd0449","59b7188e-1296-4466-a9c2-d6255496e7d6"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"78bef108-57ca-4913-be64-ee83942d47bf","v":"initial","p":"86966584-6ee3-4351-8e6e-ff6e695b970a","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"page-details__content","template":"","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-11-03T14:51:16+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-11-03T14:51:16+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1635951076335,"ct":1635951076334,"a_depth":4,"a":["apps","b91e3079-75ae-49cd-981b-3053bf47208c","e7a0be94-cd94-4210-875e-0cceb7e8bc6c","86966584-6ee3-4351-8e6e-ff6e695b970a"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"7dd3eadc-8d0b-4598-b901-d5a7ea850f96","v":"f635bbf3a5cc59ca","previous":{"v":"07f7c6f986f6442c"},"p":"0b6a2b21-9425-466e-9e8d-57ec39cc95e1","f":{"id":"design-form","v":"e37099c040ec46e9","text":"Design"},"data":{"name":"page-details__content","template":"<div class=\"ae-form-section\" style=\"padding: 0px 8px;\">\n  <div class=\"ae-row\">\n    <div class=\"ae-col ae-control-container ae-form-cell ae-form-cell--readonly\" v-if=\"data.client.id\">\n      <label class=\"ae-form-cell__label\">\n        Verknüpfter Kunde\n      </label>\n      <ae-control class=\"ae-form-cell__control  ae-form-cell__control--readonly\" name=\"ref\" :document=\"document\" field-name=\"client\" :readonly=\"true\"></ae-control>\n    </div>\n  </div>\n  <div class=\"ae-row\">\n    <div class=\"ae-col ae-control-container ae-form-cell ae-form-cell--readonly\" v-if=\"data.dmsFolder.id\">\n      <label class=\"ae-form-cell__label\">\n        Verknüpfte Dokumente\n      </label>\n      <ae-control class=\"ae-form-cell__control  ae-form-cell__control--readonly\" name=\"ref\" :document=\"document\" field-name=\"dmsFolder\" :readonly=\"true\"></ae-control>\n    </div>\n    <div class=\"ae-col ae-control-container ae-form-cell ae-form-cell--readonly\" v-else>\n      <label class=\"ae-form-cell__label\">\n        Verknüpfte Dokumente\n      </label>\n      <ae-layout layout-id=\"c80364ed-8a1f-40fa-a169-5cc7b45d4fb4\"\n                  :param-document=\"document\"\n                  :param-commands=\"['b9f0e64b-fe26-4234-b1a7-670478062b55']\"\n                  :param-no-primary-highlight=\"true\"\n      ></ae-layout>\n    </div>\n  </div>\n  <div class=\"ae-row\">\n    <div class=\"ae-col ae-control-container ae-form-cell ae-form-cell--readonly\">\n      <label class=\"ae-form-cell__label\">\n        Bis\n      </label>\n      <ae-control class=\"ae-form-cell__control  ae-form-cell__control--readonly\" :document=\"document\" field-name=\"bis\" :readonly=\"true\"></ae-control>\n    </div>\n  </div> \n  <div class=\"ae-row\">\n    <div class=\"ae-col ae-control-container ae-form-cell ae-form-cell--readonly\">\n      <label class=\"ae-form-cell__label\">\n        Erledigt\n      </label>\n      <ae-control class=\"ae-form-cell__control  ae-form-cell__control--readonly\" :document=\"document\" field-name=\"erledigt\" :readonly=\"true\"></ae-control>\n    </div>\n  </div> \n  <div class=\"ae-row\">\n    <div class=\"ae-col ae-control-container ae-form-cell ae-form-cell--readonly\">\n      <label class=\"ae-form-cell__label\">\n        Verantwortlich\n      </label>\n      <ae-control class=\"ae-form-cell__control  ae-form-cell__control--readonly\" :document=\"document\" field-name=\"verantwortlich\" :readonly=\"true\"></ae-control>\n    </div>\n  </div>\n</div>\n ","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-06-10T12:41:28+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-12-06T15:49:31+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1638805771840,"ct":1623328888146,"a_depth":4,"a":["apps","59edbdbc-2cab-426a-bb42-6e57c5158e4f","3be7e887-1bcd-4c3c-979f-b20a986c4c48","0b6a2b21-9425-466e-9e8d-57ec39cc95e1"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"8b9f8e07-469c-41f9-9853-1b1cd3c3a8ca","v":"initial","p":"3592ceee-ae9a-47a9-8488-7bad5b0d9ff5","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"page-details__content","template":"","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-04-05T15:07:06+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2022-04-05T15:07:06+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1649171226539,"ct":1649171226539,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","3592ceee-ae9a-47a9-8488-7bad5b0d9ff5"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"95488870-f455-4da4-8545-4bca2c543736","v":"initial","cloneOf":{"id":"28b91773-eab7-43fb-ad18-d8e8062a7c7b","v":"72aff19647f33060","text":"page-details__content"},"originalCloneOf":{"id":"28b91773-eab7-43fb-ad18-d8e8062a7c7b","v":"72aff19647f33060","text":"page-details__content"},"p":"3e134a66-4611-456c-88e9-be8ae3d75dff","f":{"id":"design-form","v":"0061789efb5c5c29","text":"Design"},"data":{"name":"page-details__content","template":"<!-- <ae-form\n  ref=\"form\"\n  :document=\"document\"\n  layout-id=\"0b61fc10-ac8c-4dd2-9803-6a381752d54d\"\n  :readonly=\"params.readonly\"\n></ae-form> -->\n\n<div class=\"ae-form-section\" style=\"padding: 0px 8px;\">\n  <div class=\"ae-row\">\n    <div class=\"ae-col ae-control-container ae-form-cell ae-form-cell--readonly\" v-if=\"data.project.id\">\n      <label class=\"ae-form-cell__label\">\n        Verknüpftes Projekt\n      </label>\n      <ae-control class=\"ae-form-cell__control  ae-form-cell__control--readonly\" name=\"ref\" :document=\"document\" field-name=\"project\" :readonly=\"true\"></ae-control>\n    </div>\n  </div>\n  <div class=\"ae-row\">\n    <div class=\"ae-col ae-control-container ae-form-cell ae-form-cell--readonly\" v-if=\"data.dmsFolder.id\">\n      <label class=\"ae-form-cell__label\">\n        Verknüpfte Dokumente\n      </label>\n      <ae-control class=\"ae-form-cell__control  ae-form-cell__control--readonly\" name=\"ref\" :document=\"document\" field-name=\"dmsFolder\" :readonly=\"true\"></ae-control>\n    </div>\n  </div>\n</div>\n","css":"._CSS {\n  width: 100%;\n}","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-01-27T11:02:53+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-01-27T11:02:53+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1611745373583,"ct":1611745373583,"a_depth":4,"a":["apps","d91078cc-874b-4410-b837-b81f47687fe9","6b513a0c-498f-4eac-804d-aa8e0e99caac","3e134a66-4611-456c-88e9-be8ae3d75dff"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"9eca947b-950a-40be-b933-1786680017b8","v":"initial","p":"3d678f2a-65f5-4dc1-a643-c5998fa33f32","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"page-details__content","template":"","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-04-05T15:06:27+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2022-04-05T15:06:27+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1649171187864,"ct":1649171187864,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","3d678f2a-65f5-4dc1-a643-c5998fa33f32"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"b6bb79d8-d21b-4b94-93e1-44cebb932919","v":"122e583f3baacb1b","previous":{"v":"12985017a179f539"},"p":"cb2adf77-7636-41a7-9a16-1610b06fa91e","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"page-details__content","template":"","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-11-03T15:48:45+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-11-04T14:22:38+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1636035758978,"ct":1635954525730,"a_depth":4,"a":["apps","cf914a7f-ff5f-4598-80f1-63c9129e0a71","d69a62e9-a61f-42bf-9ae9-7983b87bf587","cb2adf77-7636-41a7-9a16-1610b06fa91e"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"b8ba98a2-2b52-47c4-b53d-890101a8eeb6","v":"dc7a77de85c2209f","previous":{"v":"805a7d954dd2165a"},"p":"d6f1cc99-f34e-4cb8-99b3-11f917485c25","f":{"id":"design-form","v":"0061789efb5c5c29","text":"Design"},"data":{"name":"page-details__content","template":"<!-- <ae-design name=\"page-details__meta\" :document=\"document\"></ae-design> -->\n<div class=\"ae-control-container\">\n  <ae-control name=\"comments\" :document=\"document\"></ae-control>\n</div>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-09-02T08:40:14+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2020-11-17T15:34:02+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1605627242429,"ct":1599036014969,"a_depth":4,"a":["apps","b0eb4a71-010b-4d65-b79b-bb984a57c10f","a6c009e7-a2c9-4e84-a992-4ad09134d39d","d6f1cc99-f34e-4cb8-99b3-11f917485c25"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[],"hidden":false,"readonly":false},{"id":"ca816476-6692-41bb-a336-a3416552398f","v":"2c3882e613fa1aa4","previous":{"v":"0be6618ba4f3b13a"},"p":"c134ddf8-2dff-4e27-95ec-9f5bda2ea6db","f":{"id":"design-form","v":"e37099c040ec46e9","text":"Design"},"data":{"name":"page-details__content","template":"<div class=\"ae-form-section\" style=\"padding: 0px 8px;\">\n  <div class=\"ae-row\">\n    <div class=\"ae-col ae-control-container ae-form-cell ae-form-cell--readonly\">\n      <label class=\"ae-form-cell__label\">\n        Arbeitsschritt\n      </label>\n      <ae-control class=\"ae-form-cell__control  ae-form-cell__control--readonly\" name=\"text\" :document=\"document\" field-name=\"arbeitsschrittTitel\" :readonly=\"true\"></ae-control>\n    </div>\n  </div>\n  <div class=\"ae-row\">\n    <div class=\"ae-col ae-control-container ae-form-cell ae-form-cell--readonly\">\n      <label class=\"ae-form-cell__label\">\n        Beschreibung\n      </label>\n      <ae-control class=\"ae-form-cell__control  ae-form-cell__control--readonly\" name=\"text\" :document=\"document\" field-name=\"arbeitsschrittBeschreibung\" :readonly=\"true\"></ae-control>\n    </div>\n  </div>\n</div>\n\n\n<!-- <ae-form layout-id=\"acd83791-970f-4b6e-bebd-d7f3bca52014\"\n          :readonly=\"true\" \n          :document=\"document\"\n></ae-form> -->\n          <!-- :param-fields-to-display=\"['arbeitsschrittTitel', 'arbeitsschrittBeschreibung']\" -->","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-04-15T07:40:42+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-04-15T07:58:21+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1618473501581,"ct":1618472442028,"a_depth":4,"a":["apps","41360031-739e-4d68-802b-6af6d89247a3","f00d03b9-e59a-4ccc-837a-cbd6a1fca3d3","c134ddf8-2dff-4e27-95ec-9f5bda2ea6db"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"cc3d9841-e3f4-414f-a7bc-56d7b23b6a9b","v":"067bf64798c3988f","cloneOf":{"id":"28b91773-eab7-43fb-ad18-d8e8062a7c7b","v":"f823244013072fd6","text":"page-details__content"},"originalCloneOf":{"id":"28b91773-eab7-43fb-ad18-d8e8062a7c7b","v":"f823244013072fd6","text":"page-details__content"},"previous":{"v":"76936df1534a8557"},"p":"e2f6fe5a-cdab-41ed-a1b2-ad342ee670d1","f":{"id":"design-form","v":"0061789efb5c5c29","text":"Design"},"data":{"name":"page-details__content","template":"<div class=\"ae-form-section\" style=\"padding: 0px 8px;\">\n  <div class=\"ae-row\">\n    <div class=\"ae-col ae-control-container ae-form-cell ae-form-cell--readonly\" v-if=\"data.client.id\">\n      <label class=\"ae-form-cell__label\">\n        Verknüpfter Kunde\n      </label>\n      <ae-control class=\"ae-form-cell__control  ae-form-cell__control--readonly\" name=\"ref\" :document=\"document\" field-name=\"client\" :readonly=\"true\"></ae-control>\n    </div>\n  </div>\n  <div class=\"ae-row\">\n    <div class=\"ae-col ae-control-container ae-form-cell ae-form-cell--readonly\" v-if=\"data.dmsFolder.id\">\n      <label class=\"ae-form-cell__label\">\n        Verknüpfte Dokumente\n      </label>\n      <ae-control class=\"ae-form-cell__control  ae-form-cell__control--readonly\" name=\"ref\" :document=\"document\" field-name=\"dmsFolder\" :readonly=\"true\"></ae-control>\n    </div>\n  </div>\n</div>\n","css":"._CSS {\n  width: 100%;\n}","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-02-26T14:30:13+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-02-26T14:58:23+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1614351503738,"ct":1614349813964,"a_depth":4,"a":["apps","d91078cc-874b-4410-b837-b81f47687fe9","6b513a0c-498f-4eac-804d-aa8e0e99caac","e2f6fe5a-cdab-41ed-a1b2-ad342ee670d1"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"ec54c206-f000-4d28-aab7-6699be2bbbc6","v":"initial","p":"522ca40d-810b-4021-835f-beeace3af7fa","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"page-details__content","template":"","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-04-05T15:06:56+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2022-04-05T15:06:56+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1649171216005,"ct":1649171216005,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","522ca40d-810b-4021-835f-beeace3af7fa"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"ec65f29f-1b4d-494e-ad27-76cffd32b3ef","v":"3698f131311bebeb","previous":{"v":"0b08578e5ccc131f"},"p":"98c77209-1245-43d6-90b5-8625183f470c","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"page-details__content","template":"<div class=\"ae-form-section\" style=\"padding: 0px 8px;\">\n  <div class=\"ae-row\">\n    <div class=\"ae-col ae-control-container ae-form-cell ae-form-cell--readonly\" v-if=\"data.dmsFolder && data.dmsFolder.id\">\n      <label class=\"ae-form-cell__label\">\n        Verknüpfte Dokumente\n      </label>\n      <ae-control class=\"ae-form-cell__control  ae-form-cell__control--readonly\" name=\"ref\" :document=\"document\" field-name=\"dmsFolder\" :readonly=\"true\"></ae-control>\n    </div>\n  </div>\n</div>\n","css":"._CSS {\n  width: 100%;\n}","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-02-14T10:42:01+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2022-02-14T14:41:52+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1644849712240,"ct":1644835321906,"a_depth":4,"a":["apps","94a64d89-d204-4918-b147-d717914fb03e","f254ce25-42f1-4333-8ee7-23554bf746c1","98c77209-1245-43d6-90b5-8625183f470c"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"f3e19893-9e2b-49c1-a47d-47a6dcd5a2f1","v":"89be4025155c0c42","previous":{"v":"424e750358e8ea7b"},"p":"6f641574-7cb6-424a-9657-4b8d652a2cf7","f":{"id":"design-form","v":"0061789efb5c5c29","text":"Design"},"data":{"name":"page-details__content","template":"<div class=\"ae-form-section\" style=\"padding: 0px 8px;\" v-if=\"locals.linkedCustomers.length\">\n  <div class=\"ae-row\">\n    <div class=\"ae-col ae-control-container ae-form-cell ae-form-cell--readonly\">\n      <label class=\"ae-form-cell__label\">\n        Verknüpfte Kunden\n      </label>\n      <div class=\"ae-form-cell__control  ae-form-cell__control--readonly\">\n        <ae-design name=\"tag\" :document=\"customer\" v-for=\"customer of locals.linkedCustomers\" @selected=\"Aeppic.drillInto($event)\"></ae-design>\n    </div> \n    </div> \n  </div>\n</div>\n\n","css":"","controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Kunde: '8fc08287-dbcc-4e41-9d5d-28e4cd828943'\n    }\n\n    locals.linkedCustomers = []\n    locals.linkedCustomers = await Aeppic.find(`a:${document.a[0]} f.id:${this.FORMS.Kunde} (data.kontakt:${document.id} OR data.ansprechpartner:${document.id})`)\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-09-18T11:49:22+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-03-01T10:15:34+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1614593734267,"ct":1600429762527,"a_depth":4,"a":["apps","37fafb3d-18da-4182-af74-082971d50956","c27d5f5f-22ff-4341-935c-02bfdc3e1ee0","6f641574-7cb6-424a-9657-4b8d652a2cf7"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"981f672f-c91e-48cf-beba-4edbf0a08b50","v":"eaab42974c6aae0a","previous":{"v":"ca07765afbe6aa43"},"p":"fbb5234f-66e1-4545-b087-ff1961f9ceab","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"page-details__content-bak","template":"<ae-design name=\"sidebar-info,title\" :document=\"document.data.vertrieb\"></ae-design> ","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-07-19T08:59:45+00:00","by":"427610a9-39dc-4014-9176-5f72aeb23263","client":"server","from":""},"modified":{"at":"2024-07-05T13:59:37+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720180777780,"ct":1689757185636,"a_depth":4,"a":["apps","deeef973-ce03-4557-bf75-75a059001767","e7de598c-6f5a-4ab4-a33b-213ca86e489d","fbb5234f-66e1-4545-b087-ff1961f9ceab"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"91e14903-f9c7-458a-82de-a57cd6ce5625","v":"bf060e3a620fd93e","p":"fallback-designs","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"page-details__meta","template":"<div class=\"ae-control-container\">\n  <div class=\"_CSS-header\">Erstellt & Geändert</div>\n  <div class=\"_CSS-meta\">\n    <ae-icon style=\"margin-right: var(--ae-size-1);\" class=\"fa fa-star-of-life\"></ae-icon>\n    <ae-design style=\"margin-right: var(--ae-size-1);\" name=\"avatar--resizes-with-font\" :document-id=\"document.created.by\"></ae-design>\n    <div class=\"_CSS-when\" style=\"margin-right: var(--ae-size-4);\">\n      {{Aeppic.DateTime.fromISO(document.created.at).toLocaleString(Aeppic.DateTime.DATETIME_SHORT)}}\n    </div>\n\n    <ae-icon  style=\"margin-right: var(--ae-size-1);\" class=\"fa fa-pencil\"></ae-icon>\n    <ae-design style=\"margin-right: var(--ae-size-1);\" name=\"avatar--resizes-with-font\" :document-id=\"document.modified.by\"></ae-design>\n    <div class=\"_CSS-when\">\n      {{Aeppic.DateTime.fromISO(document.modified.at).toLocaleString(Aeppic.DateTime.DATETIME_SHORT)}}\n    </div>\n  </div>\n</div>\n","css":"._CSS-meta {\n  display: flex;\n  flex-wrap: wrap;\n  flex-direction: row;\n  align-items: center;\n\n  color: var(--ae-background-600);\n  font-size: var(--ae-font-size-3);\n}\n\n._CSS-header {\n  color: var(--ae-background-600);\n  font-size: var(--ae-font-size-3);\n  margin-bottom: var(--ae-size-2);\n}","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-09-02T08:44:35+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2020-09-02T08:45:29+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720684627133,"ct":1720684627133,"a_depth":2,"a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"],"inheritedLocks":[null,null,null],"stamps":[],"previous":{"v":"361b4767bb474b2b","f":{"id":"design-form","v":"0061789efb5c5c29","text":"Design"}},"meta":{"modified":{"at":"2024-07-11T09:57:07+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"1483308e-45db-4626-bfa9-c2909abad200","v":"8f72a8422a4391dd","p":"fallback-designs","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"page-header","template":"<div class=\"_CSS-title\">\n  <h1 class=\"_CSS-title__text\">\n    <ae-design :document=\"document\" name=\"title\" class=\"_CSS-title-ae-design\"></ae-design> \n    <span class=\"_CSS-nav-up\" v-if=\"document.a && document.a[1]\" @click=\"Aeppic.navigateTo(document.p)\">\n      <ae-icon class=\"fa fa-arrow-circle-up fa-1x\"></ae-icon>\n    </span>\n  </h1>\n  <nav v-if=\"locals.ancestors\">\n    <button class=\"bp-button bp-button--transparent _CSS-title__nav-link\" v-for=\"ancestor of locals.ancestors\" v-if=\"ancestor\" @click=\"Aeppic.navigateTo(ancestor.id)\">\n      <ae-design name=\"title\" :document=\"ancestor\" :watch=\"false\"></ae-design>\n    </button>\n  </nav>\n</div>","css":"._CSS-title {\n  font-size: 1.5em;\n  padding-left: var(--bp-page-content-padding, 8px);\n}\n\n._CSS-title > h1 {\n  margin-top:0;\n  margin-bottom:2px;\n  padding:0;\n}\n\n._CSS-title > nav {\n  margin-top:0;\n  margin-bottom:8px;\n  font-size: 0.6em;\n  display: grid;\n  grid-auto-columns: auto;\n  grid-auto-flow: column;\n  color: var(--ae-text-secondary, #666);\n  justify-content: flex-start;\n  height: 0.8em;\n}\n\n._CSS-title > nav button._CSS-title__nav-link {\n  white-space: nowrap;\n  display: flex;\n  flex-direction: row;\n  cursor: pointer;\n  text-transform: none;\n  padding: 0;\n  margin: 0;\n}\n\n._CSS-title__nav-link:hover {\n  background: gray !important;\n  color:white;\n}\n\n._CSS-title > nav button + button::before {\n  content:'/';\n  display: inline;\n  margin: 0 4px;\n}\n\n\n._CSS-title h1:hover ._CSS-nav-up{\n  opacity: 1;\n}\n\n._CSS-nav-up {\n  font-size: 0.5em;\n  color: #888;\n  opacity: 0;\n  min-width: 3px;\n  transition: all 0.1s ease;\n  cursor: pointer;\n  position:absolute;\n  left: 0;\n  bottom:0;\n  top:0; \n  background: rgba(255,255,255,0.7);\n  background: linear-gradient(to right, var(--ae-background-d1) 0%,var(--ae-background-d1) 50%,rgba(255,255,255,0.0)  100%);\n  padding: 0px 20px 0px 0;\n  padding-right:60px;\n  display:flex;\n  flex-direction:column;\n  justify-content:center;\n}\n\n._CSS-nav-up > * {\n  position:relative;\n  top:5px;\n  background: var(--ae-background-d1);\n  xtransform: scale(0.6);\n  transform-origin: left center;\n}\n\n._CSS-title-ae-design {\n  display: initial;\n}\n\n._CSS-title__text {\n  display: flex;\n  justify-content: start;\n  align-items: center;\n  position:relative;\n}","controller":"class Controller {\n  async init() {\n    locals.searchOpen = false\n    locals.searchString = ''\n    locals.ancestors = await Aeppic.getAll(document.a)\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2018-04-18T15:37:03+02:00","by":"","from":"","client":"server"},"modified":{"at":"2020-06-30T09:30:13+00:00","by":"8e6c22aa-8c69-4ff8-919a-7032841cf636","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720684627134,"ct":1720684627134,"a_depth":2,"a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"],"inheritedLocks":[null,null,null],"stamps":[],"previous":{"v":"4665161a6bfd863c","f":{"id":"design-form","v":"9bfe8e0cd909c1f0","text":"Design"}},"meta":{"modified":{"at":"2024-07-11T09:57:07+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"2c41c51c-f7c3-45d4-89bb-f2eaec87bea4","v":"initial","previous":{"v":""},"p":"c69a0c1c-6c53-40c2-87e8-5ace866bf1df","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"page-header","applies":"","template":"","css":"","controller":"","packages":[]},"locks":[],"created":{"at":"2018-04-18T15:49:14+02:00","by":"","backedBy":"","from":"","client":"server"},"modified":{"at":"2018-04-18T15:49:14+02:00","by":"","backedBy":"","from":"","client":"server"},"t":1524059354190,"ct":1524059354190,"a_depth":4,"a":["apps","8f8c9ed7-a7ed-4150-b162-92d6f19a05b0","526d9710-b2bd-4fa7-9341-d780ead102c1","c69a0c1c-6c53-40c2-87e8-5ace866bf1df"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"649df7b0-79c5-4918-8fcc-0136440a32b4","v":"initial","previous":{"v":""},"p":"44e0edf9-6515-4e4b-ad48-98a04d28df11","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"page-header","applies":"","template":"","css":"","controller":"","packages":[]},"locks":[],"created":{"at":"2018-05-25T10:47:27+00:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","backedBy":null,"from":"","client":"server"},"modified":{"at":"2018-05-25T10:47:27+00:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","backedBy":null,"from":"","client":"server"},"t":1527245247428,"ct":1527245247428,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","44e0edf9-6515-4e4b-ad48-98a04d28df11"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","61ccaf6b-af84-4908-aa73-785dffd83c5f"],"a_depth":4,"a_forms":["folder","application-form","folder","form"],"created":{"at":"2019-04-12T14:13:53+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","client":"server","from":""},"ct":1602583892141,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.roles = []\n    locals.role = ''\n    // locals.allRoles = false\n    // locals.role = null\n    locals.project = await Aeppic.get(document.a[document.a.length - 2])\n    locals.casting = await Aeppic.get(document.a[document.a.length - 1])\n\n    // await this._updateRole()\n\n    // watchParam('role', () => this._updateRole())\n    locals.roles = await Aeppic.find(`a:${locals.project.id} f.id:3230c10a-64af-48cc-8f3d-15fc16a40e5f`)\n  }\n\n  get isEmployee() {\n    return Aeppic.Account && Aeppic.Account.a_forms.includes('1ec5237d-463a-417f-8dac-5bbbbc2e35b7')\n  }\n\n  // async _updateRole() {\n  //   locals.allRoles = false\n  //   locals.role = null\n\n  //   const hasRole = typeof params.role === 'string'\n\n  //   if (!hasRole) {\n  //     return\n  //   }\n\n  //   const roleId = params.role\n\n  //   if (roleId === '') {\n  //     locals.allRoles = true\n  //     return\n  //   }\n\n  //   const role = await Aeppic.get(roleId)\n\n  //   locals.role = role\n  // }\n}","css":"\n._CSS-informations {\n  xfont-size: 2rem;\n  display: flex;\n  justify-content: space-between;\n}\n\n._CSS-informations > * {\n  display: inline;\n}\n\n._CSS-value {\n  display: inline;\n  font-weight: bold;\n}\n\n._CSS-actions {\n  font-size: 2rem;\n}\n\n\n/* DIALOG */\n\n._CSS-dialog-header {\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n}","description":"","name":"page-header--shared","packages":[],"template":"<!-- NOTE: Do not remove translation here to load translations -->\n<ae-layout  layout-id=\"b2b99ee1-c14c-4186-a2f3-e1316f765f94\"\n          @language-change=\"$emit('language-change')\"\n          v-show=\"false\"\n></ae-layout>\n\n<div class=\"_CSS-informations\" style=\"padding: 0 1rem;\"> \n  <div style=\"overflow: hidden;\">\n    <div style=\"display: flex; align-items: center;font-size:2rem;\">\n      <div style=\"font-size: 56px; font-weight: bold;\">eCasting<span v-if=\"controller.isEmployee\"> Vorschau</span></div>\n      <div style=\"display: inline;\" v-if=\"controller.isEmployee\" class=\"dbps-button\" @click=\"$refs.settingsDialog.show()\">\n        <ae-icon class=\"fa fa-share\" style=\"margin-right: 0.5rem;\"></ae-icon>\n        eCasting Client Share \n      </div>\n    </div>\n    <div style=\"margin-top: 25px;\">\n      <span style=\"width: 80px;display: inline-block;\">Projekt</span>\n      <ae-design class=\"_CSS-value\" name=\"title\" :document=\"locals.project\"></ae-design>\n    </div>\n    <div>\n      <span style=\"width: 80px;display: inline-block;\">Rolle</span>\n      \n      <select v-model=\"locals.role\" @change=\"$emit('role-id', locals.role.id || '')\">\n        <option value=\"\">{{ Aeppic.translate('translate:all-roles|Alle Rollen') }}</option>\n        <option v-for=\"role in locals.roles\" :value=\"role\">\n          <ae-design name=\"title\" :document=\"role\"></ae-design>\n        </option>\n      </select>\n        <!-- <ae-list  list-id=\"2dab232c-2c8a-4aa4-b3f9-6023a7116161\"\n            :root-document-id=\"locals.project.id\"\n            query-id=\"71d5633a-9dbd-4c96-b6e0-1c6ffc5ef0f1\"\n            filter=\"f.id:3230c10a-64af-48cc-8f3d-15fc16a40e5f\"\n            @selected=\"Aeppic.navigateTo(document.id, { role: $event.id } )\"\n            param-empty-text=\"translate:no-roles|Keine Rollen vorhanden\"\n            param-design=\"card-with-download,card\"\n            param-min-column-width=\"15rem\"\n            :param-design-params=\"{ applicationFolderId: document.id }\"\n  ></ae-list> -->\n\n    </div>\n    <!-- <div>\n      <span class=\"_CSS-value\" v-if=\"locals.allRoles\">{{ Aeppic.translate('translate:all-roles|Alle Rollen') }}</span>\n      <ae-design v-else class=\"_CSS-value\" name=\"title\" :document=\"locals.role\"></ae-design>\n    </div> -->\n  </div>\n  <ae-design name=\"logo\" :document=\"locals.casting\"></ae-design>\n</div>\n\n<ae-dialog ref=\"settingsDialog\">\n \t<div slot=\"header\" class=\"_CSS-dialog-header\" slot-scope=\"scope\">\n    <span>eCasting Client Share</span>\n\t\t<div class=\"bp-button\" @click=\"scope.close()\">\n\t\t\t<ae-icon class=\"fa fa-2x fa-window-close\"></ae-icon>\n\t\t</div>\n\t</div>\n\n  <div slot=\"body\" class=\"dbps-body-with-actions\">\n    <ae-layout layout-id=\"6273d6a2-0cf0-47da-9e45-18460c50d101\" @edit=\"locals.edit = true\" @reset=\"locals.edit = false\"></ae-layout>\n\n    <ae-form :document=\"document\" layout-id=\"c3424a35-f9cc-4244-9d47-82a5b8a95b52\" :readonly=\"!locals.edit\" :auto-save=\"true\"></ae-form>\n  </div>\n</ae-dialog>\n"},"f":{"id":"design-form","text":"Design","v":"3a761d06f59c46c1"},"id":"b989b1e2-b712-43a2-a905-d2a18c8dc806","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-07-03T11:58:17+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"61ccaf6b-af84-4908-aa73-785dffd83c5f","previous":{"v":"94b7a2e6d6e9fbd6"},"stamps":[],"t":1751543897635,"v":"4cc4e90bfb2d9a92"},{"id":"25968c78-fe52-4639-9dba-dea4acfe0755","v":"initial","p":"c818d93b-446d-494f-8120-a39db2bdf484","f":{"id":"design-form","v":"49954170df6a253b","text":"Design"},"data":{"name":"page-title","template":"","css":"","controller":"","packages":[],"description":""},"locks":[],"created":{"at":"2018-11-30T14:34:01+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2018-11-30T14:34:01+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1543588441748,"ct":1543588441689,"a_depth":4,"a":["apps","43f84041-0fd7-4ccb-b7b5-7a38f89ada37","5d6fa6d3-7580-4c6f-9487-fff961f9c751","c818d93b-446d-494f-8120-a39db2bdf484"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"25f0b154-4c0f-4026-9d39-b6f2c31fa6eb","v":"e43306671686a509","p":"fallback-designs","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"page-title","template":"<div v-if=\"document.a && document.a.length\" class=\"_CSS-title\" :class=\"{ '_CSS-color--phone': Aeppic.Device === 'Phone', '_CSS-color--desktop': Aeppic.Device !== 'Phone' }\" @click.right.stop.prevent=\"$refs.contextmenu.show($event)\">\n  <div class=\"_CSS-title__text\">\n    <ae-design :document=\"document\" name=\"icon\" class=\"_CSS-title-form-title\" v-if=\"document.a.length > 1\"></ae-design> \n    <ae-design :document=\"document\" name=\"title\" class=\"_CSS-title-ae-design\"></ae-design> \n    <!-- <span class=\"_CSS-nav-up\" title=\"Link zur aktuellen Seite in Zwischenablage kopieren\" @click=\"controller.copyUrlToClipboard()\">\n      <ae-icon class=\"fa fa-clipboard\"></ae-icon>\n    </span> -->\n   <!-- <span class=\"_CSS-nav-up\" v-if=\"document.a && document.a[1]\" @click=\"controller.goUp(document)\">\n      <ae-icon class=\"fa fa-level-up fa-1x\"></ae-icon>\n    </span> -->\n  </div>\n\n  <ae-design  class=\"_CSS-nav\"\n              name=\"path\"\n              :document=\"document\"\n              @selected=\"Aeppic.navigateTo($event)\"\n              v-if=\"!params.hidePath\"\n  ></ae-design> \n              <!-- :param-move-on-drop=\"true\" -->\n</div>\n\n<ae-popup ref=\"contextmenu\" placement=\"bottom-start\">\n\t<div class=\"_CSS-ae-menu\" slot=\"popup\" slot-scope=\"menu\">\n\t\t<ul class=\"_CSS-ae-menu-list\" style=\"min-width: 10rem;\">\n\t\t\t<li class=\"_CSS-ae-menu-item\" @click.stop=\"controller.copyUrlToClipboard();menu.close()\">\n        <ae-icon class=\"fa fa-clipboard\"></ae-icon>\n        Aktuelle URL in Zwischenablage kopieren\n        </li>\n\t\t</ul>\n\t</div>\n</ae-popup>","css":"._CSS {\n  position:relative;\n  min-width: 0;\n}\n\n._CSS-color--phone {\n  --nav-color: var(--ae-theme-text-secondary-on-primary);\n  --nav-color__hover-background: gray;\n  --nav-color__hover-color: white;\n\n  --nav-up-background: var(--ae-primary);\n}\n\n._CSS-color--desktop {\n  --nav-color: var(--ae-foreground-l2);\n  --nav-color__hover-background: gray;\n  --nav-color__hover-color: white;\n\n  --nav-up-background: var(--ae-background);\n}\n\n._CSS-title {\n  padding-left: var(--bp-page-content-padding, 8px);\n  cursor: pointer;\n}\n\n._CSS-nav {\n  font-size: var(--ae-font-size-3);\n  color: var(--nav-color);\n  height: 1em;\n}\n\n._CSS-title > nav {\n  font-size: 0.8em;\n  display: grid;\n  grid-auto-columns: auto;\n  grid-auto-flow: column;\n  color: var(--nav-color);\n  justify-content: flex-start;\n  height: 1em;\n}\n\n._CSS-title > nav button._CSS-title__nav-link {\n  color: var(--nav-color);\n  white-space: nowrap;\n  display: flex;\n  flex-direction: row;\n  cursor: pointer;\n  text-transform: none;\n  padding: 0;\n  margin: 0;\n}\n\n._CSS-title__nav-link--hover,\n._CSS-title__nav-link:hover {\n  background: var(--nav-color__hover-background) !important;\n  color: var(--nav-color__hover-color) !important;\n}\n\n._CSS-title > nav button + button::before {\n  content:'/';\n  display: inline;\n  margin: 0 4px;\n}\n\n._CSS-title ._CSS-title__text:hover ._CSS-nav-up{\n  opacity: 1;\n}\n\n._CSS-nav-up {\n  font-size: 0.7em;\n  color: #888;\n  opacity: 0;\n  min-width: 3px;\n  transition: all 0.1s ease;\n  cursor: pointer;\n  position:absolute;\n  left: 0;\n  bottom:0;\n  top:0; \n  background: rgba(255,255,255,0.1);\n  background: linear-gradient(to right, var(--nav-up-background) 0%,var(--nav-up-background) 30%,rgba(255,255,255,0.0)  40%);\n  padding: 20px 230px 20px 0;\n  display:flex;\n  flex-direction:column;\n  justify-content:center;\n}\n\n._CSS-nav-up > * {\n  position:relative;\n  top:5px;\n  background: var(--nav-up-background);\n  transform: translateY(-16px);\n  transform-origin: left center;\n}\n\n._CSS-title-ae-design {\n  display: initial;\n}\n\n._CSS-title-form-title {\n  display: initial;\n  margin-right: 0.5em;\n  color: var(--ae-background-600);\n}\n\n._CSS-title__text {\n  display: flex;\n  justify-content: start;\n  align-items: center;\n  position:relative;\n\n  font-weight: bold;\n  font-size: var(--ae-font-size-7);\n}\n\n._CSS-popup__body {\n  font-size: 1rem;\n  padding: 0.5rem;\n  background: white;\n  box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.16), 0 0 1px 0 rgba(0, 0, 0, 0.16);\n\n  display: flex;\n  align-items: center;\n}\n\n._CSS ._CSS-popup__button {\n  font-size: 1.1em;\n  margin-left: 1em;\n}\n\n._CSS-ae-menu {\n  background: var(--ae-ui-card-background);\n  font-size: 1rem;\n  border: var(--ae-border-width) solid var(--ae-border-color);\n  border-radius: var(--ae-border-radius);\n  padding: var(--ae-size-2) 0;\n  box-shadow: var(--ae-shadow-2);\n  transition: opacity .15s, visibility 1s;\n}\n\n._CSS-ae-menu-list {\n  list-style: none;\n  padding: var(--ae-size-1) 0;\n  margin: 0;\n}\n._CSS-ae-menu-item {\n  padding:var(--ae-size-1); \n  margin:0;\n  font-size: var(--ae-font-size-3);\n}\n._CSS-ae-menu:focus {\n  outline: none;\n}\n._CSS-ae-menu-item:hover {\n  background: var(--ae-background-200);\n  cursor: pointer;\n}\n","controller":"class Controller {\n  async init() {\n    this.formIdsNotToNavigate = [ 'account', \n                              'e5c233c9-5425-48d7-a785-d962897bc6f8', // group\n                              '67f5703f-6cf2-41b5-ac7b-60c73d0cea2b', // pw reset token\n                              '3b2afaea-f8af-43ef-88b6-87ad19764597', // API token\n                              '8bf0fb31-716d-4b76-98d8-b7349f1d7529', // file\n                              '0a8dbc2a-384e-457b-ab48-57013109ba44', // recently visited documents\n                              '6786b72e-276f-4c82-b7c5-caf5758689118', // ??\n                              'command-form', // commands\n                              'key-form',\n                              'lock-form',\n                              '3b171b7f-ea90-4a19-84a0-ae25428717a0', // SMS\n                              'b761554b-3f7f-41e2-b232-402aec31b006', // ?\n                              '3cf04f76-f463-4b98-9c73-78df68374ede', // menu-entry\n                              '14b0b4ec-f796-4510-ab95-e7c9086b6afc', // email\n                              '070334f2-45af-4214-ae97-38a1bb94d03e', // email-attachment\n                              '6786b72e-276f-4c82-b7c5-ca5758689118', // recents\n                              '4e338459-2110-4799-8f04-1ead4cc647d0', // Profilseite -> Aufgaben\n                              '9f8071fd-6f25-489e-8562-4399701546b0', // blower door test\n                              '281c6bd6-2e24-42ba-868e-b63cbba4254f', // brandschutz\n                              '34d811a8-9de0-4b20-bc24-c55826a06748', // brandschutzleitung\n                              '11a327ee-c8e6-453a-bcdd-f585877f2fd8', // energieausweis\n                              'fa3777b5-bfff-43ac-a5c5-ea15486dd334', // ENEV\n                              '4862401e-e182-451c-a855-ef2e9b9441c5', // KFW + EnEV\n                              '03c16e2b-302e-4c2c-93c1-931679919e0b', // Schallschutz\n                              '2c01a15d-c14d-44c6-adc5-d9b3fdc692b7', // Schallschutz Kontrollen\n                              '328998fb-7e67-4fca-b40b-377d9a07776d', // Schallschutzmessung\n                              '5ff471b3-1769-408b-825a-69d6416757c3', // Simulation (jeweils separat)\n                            ]\n\n    locals.searchOpen = false\n    locals.searchString = ''\n    locals.ancestors = []\n    \n    locals.ancestors = await this.getNavigateableAncestors()\n  }\n\n  async getNavigateableAncestors() {\n    if (!document.a || !document.a.length) {\n      return []\n    }\n\n    const ancestors = await Aeppic.getAll(document.a)\n\n    const filteredAncestors =  ancestors.filter((_, i) => this.formIdsNotToNavigate.includes(document.a_forms[i]) === false)\n    \n    filteredAncestors.shift()\n    \n    return  filteredAncestors\n  }\n\n  copyUrlToClipboard() {\n    let url = document.id\n\n    if (packages && packages.window) {\n      url = packages.window.location.href\n    }\n\n    Aeppic.copyToClipboard(url)\n\n    $refs.popup.show(event)\n  }\n\n  async goUp(fromDocument) {\n    const parentId = fromDocument.p\n\n    if (locals.ancestors.find(a => a.id === parentId)) {\n      Aeppic.navigateTo(parentId)\n      return\n    }\n\n    const parent = await Aeppic.get(parentId)\n\n    await this.goUp(parent)\n  }\n}","packages":[{"id":"10843fbf-4f0c-416b-be7d-42d6bbd0ae68","v":"5f748569e59edddc","text":"Window"}],"aliases":[],"description":""},"locks":[],"created":{"at":"2018-04-18T16:57:01+02:00","by":"","from":"","client":"server"},"modified":{"at":"2023-01-18T08:48:53+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720684627134,"ct":1720684627134,"a_depth":2,"a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"],"inheritedLocks":[null,null,null],"stamps":[],"previous":{"v":"2478a77d2fe83e8c","f":{"id":"design-form","v":"9bfe8e0cd909c1f0","text":"Design"}},"meta":{"modified":{"at":"2024-07-11T09:57:07+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"2ee88d63-22ae-4785-a8c9-0e5a8e5c3e52","v":"initial","p":"500095d4-c6b7-4efe-bfa0-b22b35331547","f":{"id":"design-form","v":"65801907e0c30697","text":"Design"},"data":{"name":"page-title","template":"","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2019-09-09T09:30:32+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2019-09-09T09:30:32+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1568021432598,"ct":1568021432598,"a_depth":4,"a":["apps","18da93c8-dfa2-4c21-b0fe-7e09b2b6d6c4","bd0159cd-1362-4c50-916d-26aa2bb1ae24","500095d4-c6b7-4efe-bfa0-b22b35331547"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"697674f9-a75d-4c5c-ae46-39385fb78f94","v":"initial","p":"58f01727-f14a-4963-b573-e142ff7b8ca7","f":{"id":"design-form","v":"49954170df6a253b","text":"Design"},"data":{"name":"page-title","template":"","css":"","controller":"","packages":[],"description":""},"locks":[],"created":{"at":"2019-09-20T08:59:31+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2019-09-20T08:59:31+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1568969971066,"ct":1568969971050,"a_depth":4,"a":["apps","8fa52498-fa07-4bad-87b3-5c8df671aca4","2540faf9-e3fd-4b52-aad8-53f43274e0a2","58f01727-f14a-4963-b573-e142ff7b8ca7"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"69b4fc98-f304-462d-bd1c-be61c393147b","v":"initial","previous":{"v":""},"p":"c69a0c1c-6c53-40c2-87e8-5ace866bf1df","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"page-title","applies":"","template":"","css":"","controller":"","packages":[]},"locks":[],"created":{"at":"2018-04-19T09:23:28+02:00","by":"","backedBy":"","from":"","client":"server"},"modified":{"at":"2018-04-19T09:23:28+02:00","by":"","backedBy":"","from":"","client":"server"},"t":1524122608398,"ct":1524122608397,"a_depth":4,"a":["apps","8f8c9ed7-a7ed-4150-b162-92d6f19a05b0","526d9710-b2bd-4fa7-9341-d780ead102c1","c69a0c1c-6c53-40c2-87e8-5ace866bf1df"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"e78e7724-8afb-4cb9-86ff-2278ab8d8d5c","v":"initial","p":"4c1ddccd-004a-4467-bd14-9cf590ef58eb","f":{"id":"design-form","v":"65801907e0c30697","text":"Design"},"data":{"name":"page-title","template":"","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2019-09-09T09:30:33+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2019-09-09T09:30:33+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1568021433448,"ct":1568021433448,"a_depth":4,"a":["apps","18da93c8-dfa2-4c21-b0fe-7e09b2b6d6c4","bd0159cd-1362-4c50-916d-26aa2bb1ae24","4c1ddccd-004a-4467-bd14-9cf590ef58eb"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"0297ec05-3f0f-47f7-b4df-1e8e319e5201","v":"39736274901850d9","p":"11b48436-fdf2-487e-883c-0de21afd3817","f":{"id":"design-form","v":"24435d748c76f819","text":"Design","client":"server"},"data":{"name":"page-toolbar","template":"","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2019-04-04T10:01:15+00:00","by":"2695f56c-96e6-4009-8e2f-d545ea1e02aa","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2019-04-04T10:01:15+00:00","by":"2695f56c-96e6-4009-8e2f-d545ea1e02aa","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1554372075641,"ct":1554372075641,"a_depth":4,"a":["apps","9c1db9f8-e61a-46ef-9fb2-ca409e980f45","83e0eafe-40b0-4a4d-a4bf-88940f2d098b","11b48436-fdf2-487e-883c-0de21afd3817"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[],"previous":{"v":"initial","f":{"id":"design-form","v":"49954170df6a253b","text":"Design"}}},{"id":"0adf9207-2328-4404-9c9c-73d53f80c507","v":"initial","previous":{"v":""},"p":"f5f395b4-dc48-4827-9774-5d4937cfbc45","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"page-toolbar","applies":"","template":"","css":"","controller":"","packages":[]},"locks":[],"created":{"at":"2018-02-20T16:54:21+01:00","by":"","from":"","client":"server"},"modified":{"at":"2018-02-20T16:54:21+01:00","by":"","from":"","client":"server"},"t":1519142061266,"ct":1519142061265,"a_depth":4,"a":["apps","b791df37-6eef-4a3e-9066-1b79e0bdad31","35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f","f5f395b4-dc48-4827-9774-5d4937cfbc45"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"116ad7b4-a30e-4da1-bb89-7337faf36e21","v":"initial","p":"61ccaf6b-af84-4908-aa73-785dffd83c5f","f":{"id":"design-form","v":"2d98bf27c3108340","text":"Design"},"data":{"name":"page-toolbar","applies":"","description":"","template":"","css":"","controller":"","packages":[]},"locks":[],"created":{"at":"2019-04-12T14:13:53+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2019-04-12T14:13:53+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1555078433923,"ct":1555078433923,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","61ccaf6b-af84-4908-aa73-785dffd83c5f"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"13e2bc37-3815-464d-93a8-a97bb7a1b212","v":"initial","p":"9927c3c7-8ce4-4c25-bcec-3385cf1370db","f":{"id":"design-form","v":"2d98bf27c3108340","text":"Design"},"data":{"name":"page-toolbar","applies":"","description":"","template":"","css":"","controller":"","packages":[]},"locks":[],"created":{"at":"2019-04-12T14:13:54+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2019-04-12T14:13:54+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1555078434697,"ct":1555078434697,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","9927c3c7-8ce4-4c25-bcec-3385cf1370db"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"13f42cbb-3227-4746-be4e-5e6785aa88b9","v":"initial","previous":{"v":""},"p":"bf8eb298-3431-4138-a1e1-e748e05f3f37","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"page-toolbar","applies":"","template":"","css":"","controller":"","packages":[]},"locks":[],"created":{"at":"2018-10-11T13:56:04+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2018-10-11T13:56:04+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1539266164267,"ct":1539266164266,"a_depth":4,"a":["apps","77ee8815-2c3a-4bb5-abd9-90541a545a24","ff13ca04-7a64-4d12-ab9a-edee939ca478","bf8eb298-3431-4138-a1e1-e748e05f3f37"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"23975a89-e5fa-4601-bdd2-cf19561fca5c","v":"initial","p":"4c1ddccd-004a-4467-bd14-9cf590ef58eb","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"page-toolbar","applies":"","template":"<div  class=\"_CSS-commands-bar\"\n      :class=\"{ '_CSS-commands-bar--edit': locals.documentChanged, 'ae-light': locals.documentChanged }\"\n>\n  <ae-layout  layout-id=\"73fd81e5-c901-4c56-9b38-cd04a7d17f8a\"\n              :param-pause=\"locals.dialogOpen\"\n              :param-document-id=\"document.id\"\n              @update=\"locals.documentChanged = true\"\n              @save=\"$emit('toolbar', 'save')\"\n              @reset=\"() => { locals.documentChanged = false; $emit('toolbar', 'reset') }\"\n              ref=\"confirmDialogReffer\"\n              style=\"flex: 1;\"\n              v-show=\"locals.documentChanged\"\n              v-if=\"locals.canEdit\"\n  ></ae-layout>\n\n  <template v-if=\"!locals.documentChanged\">\n    <div class=\"_CSS-commands\">\n      <!-- <ae-layout  layout-id=\"c80364ed-8a1f-40fa-a169-5cc7b45d4fb4\"\n                  :param-document=\"document\"\n                  v-if=\"locals.canEdit\"\n      ></ae-layout>\n      <ae-layout  layout-id=\"99d33d30-e81e-4ff5-a79f-407fc564d2f0\"\n                  :param-document=\"document\"\n                  @show=\"() => locals.dialogOpen = true\"\n                  @close=\"() => locals.dialogOpen = false\"\n                  :param-form=\"form\"\n                  v-if=\"locals.canEdit\"\n      ></ae-layout>\n      <ae-layout  layout-id=\"aea9f60c-e5c4-4d96-8f81-8f0dda80e442\" :param-document-id=\"document.id\"></ae-layout>\n      <ae-design :document=\"document\" v-if=\"locals.canEdit\" name=\"security-access\" :watch=\"false\"></ae-design>\n      <ae-design :document=\"document\" v-if=\"locals.canEdit\" name=\"history-button\" :watch=\"false\"></ae-design> -->\n      <ae-design :document=\"document\" name=\"additional-toolbar-informations\" :watch=\"false\" style=\"overflow: hidden;\"></ae-design>\n    </div>                \n    <!-- <div class=\"_CSS-commands\">\n      <div v-for=\"stamp of document.stamps\">\n        <ae-design name=\"icon\" :document=\"stamp\"></ae-design>\n      </div>\n    </div> -->\n    <!-- <div class=\"_CSS-commands\">\n      <ae-design name=\"additional-toolbar-buttons\" :document=\"document\" @toolbar=\"$emit('toolbar', $event)\" :watch=\"false\"></ae-design>\n      <ae-layout  layout-id=\"0ded34c5-1221-4511-af93-d897a79f1369\"\n                  @show=\"() => locals.dialogOpen = true\"\n                  @close=\"() => locals.dialogOpen = false\"\n                  :param-document=\"document\"\n                  :param-form=\"form\"\n                  v-show=\"locals.showDelete\"\n                  @visible=\"locals.showDelete = true\"\n                  @invisible=\"locals.showDelete = false\"\n      ></ae-layout>\n    </div> -->\n  </template>\n  <div class=\"_CSS-commands\">\n      <ae-design name=\"additional-toolbar-buttons\" :document=\"document\" @toolbar=\"$emit('toolbar', $event)\" :watch=\"false\"></ae-design>\n      <ae-layout  layout-id=\"0ded34c5-1221-4511-af93-d897a79f1369\"\n                  @show=\"() => locals.dialogOpen = true\"\n                  @close=\"() => locals.dialogOpen = false\"\n                  :param-document=\"document\"\n                  :param-form=\"form\"\n                  v-if=\"locals.canEdit\"\n                  v-show=\"locals.showDelete && !params.hideDelete\"\n                  @visible=\"locals.showDelete = true\"\n                  @invisible=\"locals.showDelete = false\"\n      ></ae-layout>\n    </div>\n</div>\n","css":"._CSS {\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n}\n\n._CSS-commands-bar {\n  flex: 1;\n  flex-shrink: 0;\n  padding-left: var(--bp-page-content-padding, 8px); \n  padding-right: var(--bp-page-content-padding, 8px); \n  min-height: 49px;\n  max-height: 49px;\n  border-bottom: var(--ae-border-width) solid var(--ae-border-color);\n  xbackground: var(--ae-ui-background);\n\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n}\n\n._CSS-commands-bar--edit {\n  background: var(--ae-primary-100);\n}\n\n._CSS {\n}\n\n._CSS-commands {\n  xbackground: var(--ae-background-200);\n  display: grid;\n  grid-gap: 1px;\n  grid-auto-columns: auto;\n  grid-auto-flow:column;\n}\n\n/*\n\n._CSS-commands > * {\n  padding: 0 var(--ae-size-2);\n  background: var(--ae-background-200);\n}\n\n._CSS-commands > *:first-child {\n  padding: 0 var(--ae-size-2) 0 0;\n}\n\n._CSS-commands > *:last-child {\n  padding: 0 0 0 var(--ae-size-2) ;\n}\n\n*/\n","controller":"class Controller {\n  async init() {\n    const canEdit = await Aeppic.canEdit(document)\n\n    if (Aeppic.Account && Aeppic.Account.data.isGroupAccount === true) {\n      // a group account can only edit if it got rights assigned. Unsecured folders are not editable.\n      const editable = await Aeppic.edit(document)\n      const isLocked = editable.hasInheritedLock() || editable.hasLock()\n\n      if (isLocked) {\n        locals.canEdit = canEdit === true\n      } else {\n        locals.canEdit = false\n      }\n    } else {\n      locals.canEdit = canEdit\n    }\n\n    await Aeppic.nextRenderPass()\n\n    this._willNavigateHandler = (event) => this.handleWillNavigate(event)\n\n    if ($refs.confirmDialogReffer && $refs.confirmDialogReffer.$root && $refs.confirmDialogReffer.$root.$el) {\n      $refs.confirmDialogReffer.$root.$el.addEventListener('ae-will-navigate', this._willNavigateHandler)\n    }\n\n    packages.window.addEventListener('popstate', this._willNavigateHandler)\n    packages.window.addEventListener('beforeunload', this._willNavigateHandler)\n  }\n\n  handleWillNavigate(event) {\n    if (!locals.documentChanged) {\n      return true\n    }\n\n    const leave = packages.window.confirm('Sie haben ungespeicherte Änderungen. Seite trotzdem verlassen?')\n\n    if (leave) {\n      return true\n    }\n\n    if (event.preventDefault) {\n      event.preventDefault()\n    }\n  }\n\n  destroy() {\n    if ($refs.confirmDialogReffer && $refs.confirmDialogReffer.$root && $refs.confirmDialogReffer.$root.$el) {\n      $refs.confirmDialogReffer.$root.$el.removeEventListener('ae-will-navigate', this._willNavigateHandler)\n    }\n\n    packages.window.removeEventListener('popstate', this._willNavigateHandler)\n    packages.window.removeEventListener('beforeunload', this._willNavigateHandler)\n  }\n}\n","packages":[{"id":"10843fbf-4f0c-416b-be7d-42d6bbd0ae68","v":"3f4732b442f74974","text":"Window"}]},"locks":[],"created":{"at":"2019-09-09T09:30:33+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2019-09-09T09:30:33+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1568021433595,"ct":1568021433595,"a_depth":4,"a":["apps","18da93c8-dfa2-4c21-b0fe-7e09b2b6d6c4","bd0159cd-1362-4c50-916d-26aa2bb1ae24","4c1ddccd-004a-4467-bd14-9cf590ef58eb"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"2474ed5d-beaf-4f2d-ad53-c58a5bada741","v":"initial","p":"a3c6fe06-ee26-47f8-9d28-5e5a31bd2b8f","f":{"id":"design-form","v":"2d98bf27c3108340","text":"Design"},"data":{"name":"page-toolbar","applies":"","description":"","template":"","css":"","controller":"","packages":[]},"locks":[],"created":{"at":"2019-04-12T14:13:54+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2019-04-12T14:13:54+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1555078434205,"ct":1555078434205,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","a3c6fe06-ee26-47f8-9d28-5e5a31bd2b8f"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"2adf3c17-4d18-48fb-ae45-31469ccc4749","v":"855b29bfdb7485ac","p":"1fb60157-8ac6-4a44-bc91-e47166b92284","f":{"id":"design-form","v":"0061789efb5c5c29","text":"Design"},"data":{"name":"page-toolbar","template":"","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2019-03-14T09:53:54+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2021-01-29T13:46:33+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1611927993348,"ct":1611927993348,"a_depth":4,"a":["apps","e83af4c0-db7e-438f-bf78-60a14245d6d9","5358044d-ffd1-4e97-887d-c18c22120229","1fb60157-8ac6-4a44-bc91-e47166b92284"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[],"previous":{"v":"1b872292731ac5f3","f":{"id":"design-form","v":"24435d748c76f819","text":"Design"}}},{"id":"2f51ef57-3d65-44dc-85af-e41ce9d72360","v":"d41c7fd2273389ee","previous":{"v":"64e6c94616e53ae6"},"p":"fallback-designs","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"page-toolbar","template":"<!-- TOOD: remove this? is old, before @details -->\n<!-- :param-show-delete=\"!controller.currentDrill.hasDetails && !controller.currentDrill.hasCustomPage\" -->\n\n<div  class=\"_CSS-commands-bar\"\n      :class=\"{ '_CSS-commands-bar--edit': locals.documentChanged, 'ae-light': locals.documentChanged }\"\n>\n  <ae-layout  layout-id=\"73fd81e5-c901-4c56-9b38-cd04a7d17f8a\"\n              :param-pause=\"locals.dialogOpen\"\n              :param-document-id=\"document.id\"\n              @save=\"$emit('toolbar', 'save')\"\n              @document-revision=\"controller.revision()\"\n              @document-save=\"controller.save()\"\n              @reset=\"controller.reset()\"\n              ref=\"confirmDialogReffer\"\n              style=\"flex: 1;\"\n              v-show=\"locals.documentChanged\"\n              v-if=\"!locals.pageDocumentHasCustomPage && locals.canEdit\"\n              :param-debug=\"false\"\n  ></ae-layout>\n\n  <template v-if=\"!locals.documentChanged\">\n    <div class=\"_CSS-commands\">\n      <ae-layout  layout-id=\"c80364ed-8a1f-40fa-a169-5cc7b45d4fb4\"\n                  :param-document=\"document\"\n                  v-if=\"locals.showCommandButtons\"\n      ></ae-layout>\n      <!-- TODO: @details -->\n      <ae-layout  layout-id=\"21e13528-924d-4eaf-b3cc-99cc7c5bfbed\"\n                  :param-document=\"document\"\n                  @show=\"() => params.documentChangedBus && params.documentChangedBus.changed()\"\n                  @close=\"() => params.documentChangedBus && params.documentChangedBus.reset()\"\n                  v-if=\"locals.canEdit\"\n      ></ae-layout>\n      <ae-design name=\"additional-toolbar-actions\" :document=\"document\" @toolbar=\"$emit('toolbar', $event)\" :param-readonly=\"!locals.canEdit\"></ae-design>\n      <!-- <ae-layout  layout-id=\"99d33d30-e81e-4ff5-a79f-407fc564d2f0\"\n                  :param-document=\"document\"\n                  @show=\"() => locals.dialogOpen = true\"\n                  @close=\"() => locals.dialogOpen = false\"\n                  v-if=\"locals.canEdit\"\n      ></ae-layout> -->\n      <ae-design :document=\"document\" v-if=\"locals.canEdit && !params.hideSecurity && document.a_depth <= 1\" name=\"security-access\"></ae-design> \n      <!-- <ae-design :document=\"document\" v-if=\"locals.canEdit && !params.hideHistory\" name=\"history-button\"></ae-design> -->\n      <ae-layout layout-id=\"aea9f60c-e5c4-4d96-8f81-8f0dda80e442\" v-if=\"!params.hideExports\" :param-document-id=\"document.id\"></ae-layout>\n      <ae-design name=\"send-notification-buttons\" :document=\"document\" v-if=\"!params.hideSendNotifications\"></ae-design>\n      <ae-layout v-if=\"locals.activitiesEnabled\" layout-id=\"4bee8e2b-7373-4a26-ab7a-d3197e3c1177\" :param-document=\"document\"></ae-layout>\n      <ae-design :document=\"document\" name=\"additional-toolbar-informations\" style=\"overflow: hidden;\"></ae-design>\n    </div>                \n    <!-- <div class=\"_CSS-commands\">\n      <div v-for=\"stamp of document.stamps\">\n        <ae-design name=\"icon\" :document=\"stamp\"></ae-design>\n      </div>\n    </div> -->\n    <!-- <div class=\"_CSS-commands\"> -->\n      <!-- <ae-design name=\"additional-toolbar-buttons\" :document=\"document\" @toolbar=\"$emit('toolbar', $event)\"></ae-design> -->\n      <!-- <ae-layout  layout-id=\"0ded34c5-1221-4511-af93-d897a79f1369\"\n                  @show=\"() => locals.dialogOpen = true\"\n                  @close=\"() => locals.dialogOpen = false\"\n                  :param-document=\"document\"\n                  :param-form=\"form\"\n                  v-show=\"locals.showDelete\"\n                  @visible=\"locals.showDelete = true\"\n                  @invisible=\"locals.showDelete = false\"\n      ></ae-layout> -->\n    <!-- </div> -->\n  </template>\n  <div class=\"_CSS-commands\">\n      <ae-design name=\"additional-toolbar-buttons\" :document=\"document\" @toolbar=\"$emit('toolbar', $event)\" :param-readonly=\"!locals.canEdit\"></ae-design>\n      <!-- TODO: @details - remove ?? -->\n      <!-- <ae-layout  layout-id=\"0ded34c5-1221-4511-af93-d897a79f1369\"\n                  @show=\"() => locals.dialogOpen = true\"\n                  @close=\"() => locals.dialogOpen = false\"\n                  :param-document=\"document\"\n                  v-if=\"params.showDelete && locals.canEdit\"\n                  v-show=\"locals.showDelete && !params.hideDelete\"\n                  @visible=\"locals.showDelete = true\"\n                  @invisible=\"locals.showDelete = false\"\n      ></ae-layout> -->\n    <ae-layout layout-id=\"072c0d3c-68f4-4b7c-9803-d6513f60e507\" :param-selection-id=\"document.f.id\" :param-document=\"document\"></ae-layout>\n\n    </div>\n\n<!-- <div style=\"position:absolute;right:50%;\" v-show=\"Aeppic.Account && Aeppic.Account.data.allowDevMode\">\n[DEV] selections\n{{ (controller.selections() && controller.selections().result()) || [] }}\n</div> -->\n</div>","css":"._CSS {\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n}\n\n._CSS-commands-bar {\n  flex: 1;\n  flex-shrink: 0;\n  padding-left: var(--bp-page-content-padding, 8px); \n  padding-right: var(--bp-page-content-padding, 8px); \n  min-height: 49px;\n  max-height: 49px;\n  border-bottom: var(--ae-border-width) solid var(--ae-border-color);\n  xbackground: var(--ae-ui-background);\n\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n}\n\n._CSS-commands-bar--edit {\n  background: var(--ae-primary-100);\n}\n\n._CSS {\n}\n\n._CSS-commands {\n  xbackground: var(--ae-background-200);\n  display: grid;\n  grid-gap: 1px;\n  grid-auto-columns: auto;\n  grid-auto-flow:column;\n}\n\n/*\n\n._CSS-commands > * {\n  padding: 0 var(--ae-size-2);\n  background: var(--ae-background-200);\n}\n\n._CSS-commands > *:first-child {\n  padding: 0 var(--ae-size-2) 0 0;\n}\n\n._CSS-commands > *:last-child {\n  padding: 0 0 0 var(--ae-size-2) ;\n}\n\n*/\n","controller":"class Controller {\n  async init() {\n    this.alwaysShowCommandForms = [\n      '98c77209-1245-43d6-90b5-8625183f470c', // Arc.Projekt\n      '94886126-c88d-4ea0-b088-8ea5ad155b08', // Apps.Unterweisungen.Unterweisung\n    ]\n\n    locals.documentChanged = false\n    locals.showDelete = false\n    locals.showCommandButtons = false\n    locals.pageDocumentHasDetails = false\n    locals.pageDocumentHasCustomPage = false\n    locals.canEdit = false\n    locals.activitiesEnabled = false\n\n    watchParam('readonly', async () => {\n      await this.updateShowLocals()\n    })\n\n    await this.updateShowLocals()\n    await this.updatePageDocumentInfo()\n\n    locals.activitiesEnabled = await Aeppic.findOne(`p:${document.a[0]} f.id:eadfef5b-1856-40d2-9ed2-6a78e02ad497`)\n    \n    await Aeppic.nextRenderPass()\n\n    // this._willNavigateHandler = (event) => this.handleWillNavigate(event)\n\n    // if ($refs.confirmDialogReffer && $refs.confirmDialogReffer.$root && $refs.confirmDialogReffer.$root.$el) {\n    //   $refs.confirmDialogReffer.$root.$el.addEventListener('ae-will-navigate', this._willNavigateHandler, { capture: true })\n    // }\n\n    // packages.window && packages.window.addEventListener('popstate', this._willNavigateHandler)\n    // packages.window && packages.window.addEventListener('beforeunload', this._willNavigateHandler)\n\n    this._setupKeydownListener()\n  }\n\n  async updateShowLocals() {\n    if (typeof params.readonly === 'boolean') {\n      locals.canEdit = !params.readonly\n    } else {\n      // NOTE: this is a fallback if page-toolbar is not provided with a params.readonly\n      console.warn('[page-toolbar]: please provide params.readonly, if possible')\n\n      const canEdit = await Aeppic.canEdit(document)\n      if (Aeppic.Account && Aeppic.Account.data.isGroupAccount === true) {\n        locals.canEdit = false\n      } else {\n        locals.canEdit = canEdit\n      }\n    }\n\n    const forceShowCommandButtons = !!this.alwaysShowCommandForms.find(formId => formId === document.f.id)\n\n    if (locals.canEdit || forceShowCommandButtons) {\n      locals.showCommandButtons = true\n    }\n  }\n\n   async updatePageDocumentInfo() {\n    const isStructuralDocument = document.a_depth <= 1 || document.f.id === 'repository-folder-form' || document.f.id === 'folder'\n\n    if (isStructuralDocument) {\n      locals.pageDocumentHasCustomPage = false\n      locals.pageDocumentHasDetails = false\n    } else {\n      const pageDesigns = await Aeppic.find(`p:${document.f.id} f.id:design-form (data.name:page--left OR (data.name:page--right OR data.name:page-details__content))`)\n      if (!pageDesigns.length) {\n        locals.pageDocumentHasCustomPage = false\n        locals.pageDocumentHasDetails = false\n      } else if (pageDesigns.length >= 2) {\n        locals.pageDocumentHasCustomPage = true\n        locals.pageDocumentHasDetails = true\n      } else {\n        const pageDesign = pageDesigns[0]\n        locals.pageDocumentHasCustomPage = pageDesign.data.name === 'page--left'\n        locals.pageDocumentHasDetails = pageDesign.data.name === 'page--right' || pageDesign.data.name === 'page-details__content'\n      }\n    }\n  }\n\n  revision() {\n    console.log('[page-toolbar]: document-revision')\n    locals.documentChanged = true\n    $emit('document-revision')\n\n    params.documentChangedBus && params.documentChangedBus.changed()\n  }\n\n  save() {\n    console.log('[page-toolbar]: save')\n\n    locals.documentChanged = false\n    $emit('document-save')\n\n    params.documentChangedBus && params.documentChangedBus.reset()\n  }\n\n  reset() {\n    console.log('[page-toolbar]: reset')\n\n    locals.documentChanged = false\n    $emit('toolbar', 'reset')\n\n    params.documentChangedBus && params.documentChangedBus.reset()\n  }\n\n  // handleWillNavigate(event) {\n  //   console.log('page-toolbar:handleWillNavigate', document.id, locals.documentChanged)\n  //   if (!locals.documentChanged) {\n  //     return true\n  //   }\n\n  //   const leave = packages.window.confirm('Sie haben ungespeicherte Änderungen. Seite trotzdem verlassen?')\n\n  //   if (leave) {\n  //     locals.documentChanged = false\n\n  //     return true\n  //   }\n\n  //   if ('returnValue' in event) {\n  //     event.returnValue = ''\n  //   }\n\n  //   if ('preventDefault' in event) {\n  //     event.preventDefault()\n  //   }\n  //   if ('stopPropagation' in event) {\n  //     event.stopPropagation()\n  //   }\n  // }\n\n  _setupKeydownListener() {\n    if (packages.window) {\n      this._keydownHandler = (event) => {\n        if ((event.ctrlKey || event.metaKey) && event.key) {\n          let handled = true\n \n          if (event.key === 's') {\n            $emit('toolbar', 'save')\n          } else {\n            handled = false\n          }\n\n          if (handled) {\n            event.preventDefault()\n            event.stopPropagation()\n          }\n        }\n      }\n\n\n      packages.window.addEventListener('keydown', this._keydownHandler)\n    }\n  }\n\n  _teardownKeydownListener() {\n    if (packages.window) {\n      packages.window.removeEventListener('keydown', this._keydownHandler)\n    } \n  }\n\n  destroy() {\n    this._teardownKeydownListener()\n\n    // if ($refs.confirmDialogReffer && $refs.confirmDialogReffer.$root && $refs.confirmDialogReffer.$root.$el) {\n    //   $refs.confirmDialogReffer.$root.$el.removeEventListener('ae-will-navigate', this._willNavigateHandler, { capture: true })\n    // }\n\n    // packages.window && packages.window.removeEventListener('popstate', this._willNavigateHandler)\n    // packages.window && packages.window.removeEventListener('beforeunload', this._willNavigateHandler)\n  }\n\n  selections() {\n    return packages.Selections.all[document.id] || null\n  }\n\n \n}\n ","packages":[{"id":"10843fbf-4f0c-416b-be7d-42d6bbd0ae68","v":"3f4732b442f74974","text":"Window"},{"id":"d648078c-4579-4023-a4ec-b7b9cf639b70","v":"edaf4554f804e32c","text":"Selection Manager v2"}],"aliases":[],"description":""},"locks":[],"created":{"at":"2018-04-19T14:24:22+02:00","by":"","from":"","client":"server"},"modified":{"at":"2024-08-27T10:27:56+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1724754476967,"ct":1720684627134,"a_depth":2,"a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"],"inheritedLocks":[null,null,null],"stamps":[]},{"id":"3017f822-8fd2-47db-bdfe-6fff6d2244e3","v":"initial","p":"13866932-346a-448d-9560-8a7e7e26be37","f":{"id":"design-form","v":"3a761d06f59c46c1","text":"Design"},"data":{"name":"page-toolbar","template":"<ae-layout layout-id=\"6273d6a2-0cf0-47da-9e45-18460c50d101\" ref=\"domNode\"\n          @edit=\"$emit('toolbar', 'edit')\"\n          @reset=\"$emit('toolbar', 'reset')\"\n></ae-layout>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-10-13T10:11:33+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2020-10-13T10:11:33+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1602583893487,"ct":1602583893486,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","13866932-346a-448d-9560-8a7e7e26be37"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"350ddd7a-6abb-4106-8695-c278c13d6728","v":"initial","p":"133d6aab-1f5b-447f-a513-e6d468388476","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"page-toolbar","template":"","css":"._CSS {\r\n  border-bottom: 1px solid var(--ae-ui-element-border-color);\r\n}","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-11-02T09:38:37+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-11-02T09:38:37+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1635845917453,"ct":1635845917453,"a_depth":4,"a":["apps","781ff5de-69db-49dc-99f0-f328b308cd7d","dbd0bd68-3479-4032-9303-9d51615c27a7","133d6aab-1f5b-447f-a513-e6d468388476"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"3a07541e-c11f-496b-942e-1a7c54130729","v":"initial","p":"3fcebb78-e629-4d83-9844-1694370d9685","f":{"id":"design-form","v":"0061789efb5c5c29","text":"Design"},"data":{"name":"page-toolbar","template":"","css":"._CSS {\r\n  border-bottom: 1px solid var(--ae-background-300);\r\n}","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-07-07T11:16:56+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-07-07T11:16:56+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1625656616332,"ct":1625656616332,"a_depth":4,"a":["apps","cf914a7f-ff5f-4598-80f1-63c9129e0a71","d69a62e9-a61f-42bf-9ae9-7983b87bf587","3fcebb78-e629-4d83-9844-1694370d9685"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"46947f0e-0807-4009-bb21-7243c4fda85d","v":"initial","p":"37f5737f-06e3-41db-8ce3-af2d42e5d61a","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"page-toolbar","template":"","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-04-07T14:19:23+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2022-04-07T14:19:23+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1649341163055,"ct":1649341163055,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","37f5737f-06e3-41db-8ce3-af2d42e5d61a"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"4a69327a-2ef5-41a8-abda-b55cc74c826c","v":"initial","p":"4aad33d2-1b89-404a-836f-89ff24051170","f":{"id":"design-form","v":"2d98bf27c3108340","text":"Design"},"data":{"name":"page-toolbar","applies":"","description":"","template":"","css":"","controller":"","packages":[]},"locks":[],"created":{"at":"2019-04-12T14:13:54+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2019-04-12T14:13:54+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1555078434478,"ct":1555078434478,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","4aad33d2-1b89-404a-836f-89ff24051170"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"60d56f48-965c-4c41-a958-6501d25d3206","v":"initial","p":"1850b225-79c2-4ae4-9160-c0e719f0c2fd","f":{"id":"design-form","v":"2d98bf27c3108340","text":"Design"},"data":{"name":"page-toolbar","applies":"","description":"","template":"","css":"","controller":"","packages":[]},"locks":[],"created":{"at":"2019-04-12T14:13:54+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2019-04-12T14:13:54+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1555078434582,"ct":1555078434582,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","1850b225-79c2-4ae4-9160-c0e719f0c2fd"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"6b9a9d0a-1600-40f5-a6da-2d825ad85e55","v":"initial","p":"f5463bba-ca34-45a9-992a-73297b1f529d","f":{"id":"design-form","v":"2d98bf27c3108340","text":"Design"},"data":{"name":"page-toolbar","applies":"","description":"","template":"","css":"","controller":"","packages":[]},"locks":[],"created":{"at":"2019-04-12T14:13:54+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2019-04-12T14:13:54+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1555078434201,"ct":1555078434200,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","f5463bba-ca34-45a9-992a-73297b1f529d"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"7d35bec3-e046-4d7c-826c-002c995ea396","v":"initial","p":"cb2adf77-7636-41a7-9a16-1610b06fa91e","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"page-toolbar","template":"","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-11-03T14:59:44+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-11-03T14:59:44+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1635951584258,"ct":1635951584258,"a_depth":4,"a":["apps","cf914a7f-ff5f-4598-80f1-63c9129e0a71","d69a62e9-a61f-42bf-9ae9-7983b87bf587","cb2adf77-7636-41a7-9a16-1610b06fa91e"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"7e2b0ef8-d833-45fd-b597-aae996d5df72","v":"initial","p":"5d0ac040-1428-48bc-9b4f-28c69e098b3c","f":{"id":"design-form","v":"e37099c040ec46e9","text":"Design"},"data":{"name":"page-toolbar","template":"","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-05-12T15:34:02+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-05-12T15:34:02+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1620833642596,"ct":1620833642595,"a_depth":4,"a":["apps","9302d29e-bf32-4350-a5fd-18b542d1b5db","97851ae4-ed6d-45fa-b1a0-4cab2145f189","5d0ac040-1428-48bc-9b4f-28c69e098b3c"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"7fe297c1-f471-4e84-b02f-a4a418f2dfc4","v":"initial","p":"58f01727-f14a-4963-b573-e142ff7b8ca7","f":{"id":"design-form","v":"5910dbdd1c0b7469","text":"Design"},"data":{"name":"page-toolbar","applies":"","description":"","template":"","css":"","controller":"","packages":[]},"locks":[],"created":{"at":"2019-09-20T08:59:31+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2019-09-20T08:59:31+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1568969971111,"ct":1568969971111,"a_depth":4,"a":["apps","8fa52498-fa07-4bad-87b3-5c8df671aca4","2540faf9-e3fd-4b52-aad8-53f43274e0a2","58f01727-f14a-4963-b573-e142ff7b8ca7"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"8ad1a665-6b0e-4599-8df4-83d456612c29","v":"initial","p":"7715cc20-f7b2-43df-bc47-8792f168b137","f":{"id":"design-form","v":"2d98bf27c3108340","text":"Design"},"data":{"name":"page-toolbar","applies":"","description":"","template":"","css":"","controller":"","packages":[]},"locks":[],"created":{"at":"2019-04-12T14:13:53+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2019-04-12T14:13:53+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1555078433516,"ct":1555078433516,"a_depth":5,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","1116d922-d8df-4da5-a7c2-70191d07d929","5cdd2d20-7676-43e3-8997-e176dd3434ed","7715cc20-f7b2-43df-bc47-8792f168b137"],"a_forms":["folder","application-form","folder","form-folder","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"9becd5aa-110a-4eab-b612-848e856a3b3e","v":"initial","p":"275b807f-7dbb-4351-b731-669e275fa97d","f":{"id":"design-form","v":"2d98bf27c3108340","text":"Design"},"data":{"name":"page-toolbar","applies":"","description":"","template":"","css":"","controller":"","packages":[]},"locks":[],"created":{"at":"2019-04-12T14:13:54+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2019-04-12T14:13:54+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1555078434458,"ct":1555078434458,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","275b807f-7dbb-4351-b731-669e275fa97d"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"9d10ff7d-022a-447f-b107-c6aa4c055a18","v":"initial","p":"8b64a4e4-bcc0-4080-9913-bc973143abd9","f":{"id":"design-form","v":"3a761d06f59c46c1","text":"Design"},"data":{"name":"page-toolbar","template":"","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-10-13T10:11:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2020-10-13T10:11:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1602583892204,"ct":1602583892204,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","8b64a4e4-bcc0-4080-9913-bc973143abd9"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"ac4d6a76-7861-499d-9829-b5b2f5769161","v":"initial","p":"686d22ba-414e-452f-9795-f6f7bcab37d5","f":{"id":"design-form","v":"2d98bf27c3108340","text":"Design"},"data":{"name":"page-toolbar","applies":"","description":"","template":"","css":"","controller":"","packages":[]},"locks":[],"created":{"at":"2019-04-12T14:13:54+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2019-04-12T14:13:54+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1555078434502,"ct":1555078434502,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","686d22ba-414e-452f-9795-f6f7bcab37d5"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"b097378a-d6d3-48ac-a144-c5e83d0a02dd","v":"initial","p":"9c63f632-9e40-4abb-aa1a-f4a02110a97f","f":{"id":"design-form","v":"2d98bf27c3108340","text":"Design"},"data":{"name":"page-toolbar","applies":"","description":"","template":"","css":"","controller":"","packages":[]},"locks":[],"created":{"at":"2019-04-12T14:13:53+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2019-04-12T14:13:53+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1555078433655,"ct":1555078433654,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","9c63f632-9e40-4abb-aa1a-f4a02110a97f"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"b0a08cf6-401c-4036-87f7-7fdc4ad9c201","v":"initial","p":"24730991-d920-4a1e-8041-6a9dc6c0ffc1","f":{"id":"design-form","v":"2d98bf27c3108340","text":"Design"},"data":{"name":"page-toolbar","applies":"","description":"","template":"","css":"","controller":"","packages":[]},"locks":[],"created":{"at":"2019-04-12T14:13:54+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2019-04-12T14:13:54+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1555078434196,"ct":1555078434196,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","24730991-d920-4a1e-8041-6a9dc6c0ffc1"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"b4b8693e-85bf-4bb1-b077-ce305366d2f1","v":"initial","previous":{"v":""},"p":"44e0edf9-6515-4e4b-ad48-98a04d28df11","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"page-toolbar","applies":"","template":"","css":"","controller":"","packages":[]},"locks":[],"created":{"at":"2018-05-25T10:47:29+00:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","backedBy":null,"from":"","client":"server"},"modified":{"at":"2018-05-25T10:47:29+00:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","backedBy":null,"from":"","client":"server"},"t":1527245249159,"ct":1527245249159,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","44e0edf9-6515-4e4b-ad48-98a04d28df11"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"b4e21f1f-536d-429f-bcc2-aae194fd0f98","v":"initial","p":"500095d4-c6b7-4efe-bfa0-b22b35331547","f":{"id":"design-form","v":"65801907e0c30697","text":"Design"},"data":{"name":"page-toolbar","template":"","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2019-09-09T09:30:32+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2019-09-09T09:30:32+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1568021432724,"ct":1568021432723,"a_depth":4,"a":["apps","18da93c8-dfa2-4c21-b0fe-7e09b2b6d6c4","bd0159cd-1362-4c50-916d-26aa2bb1ae24","500095d4-c6b7-4efe-bfa0-b22b35331547"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"b9aef76b-ac5b-46fe-9326-e8436e8f5e39","v":"initial","p":"3230c10a-64af-48cc-8f3d-15fc16a40e5f","f":{"id":"design-form","v":"2d98bf27c3108340","text":"Design"},"data":{"name":"page-toolbar","applies":"","description":"","template":"","css":"","controller":"","packages":[]},"locks":[],"created":{"at":"2019-04-12T14:13:54+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2019-04-12T14:13:54+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1555078434592,"ct":1555078434592,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","3230c10a-64af-48cc-8f3d-15fc16a40e5f"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"bcd080a4-63e6-40c5-b42f-a88e660d6b85","v":"initial","p":"84043618-903e-4666-83b5-9cf5449ba8f4","f":{"id":"design-form","v":"2d98bf27c3108340","text":"Design"},"data":{"name":"page-toolbar","applies":"","description":"","template":"","css":"","controller":"","packages":[]},"locks":[],"created":{"at":"2019-04-12T14:13:53+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2019-04-12T14:13:53+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1555078433650,"ct":1555078433650,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","84043618-903e-4666-83b5-9cf5449ba8f4"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"bffaa9bb-6000-4be1-8cd5-0d759c8be89b","v":"initial","p":"aabed4ee-20ca-4df4-9a78-75a05e97dce9","f":{"id":"design-form","v":"2d98bf27c3108340","text":"Design"},"data":{"name":"page-toolbar","applies":"","description":"","template":"","css":"","controller":"","packages":[]},"locks":[],"created":{"at":"2019-04-12T14:13:53+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2019-04-12T14:13:53+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1555078433678,"ct":1555078433678,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","aabed4ee-20ca-4df4-9a78-75a05e97dce9"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"c4cf286e-f5de-49f7-8d1c-81d4cc57af19","v":"initial","p":"d990fd22-7ffc-4395-86a7-804da25f908b","f":{"id":"design-form","v":"24435d748c76f819","text":"Design"},"data":{"name":"page-toolbar","template":"","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2019-04-02T11:07:50+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2019-04-02T11:07:50+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1554203270010,"ct":1554203270010,"a_depth":4,"a":["apps","b791df37-6eef-4a3e-9066-1b79e0bdad31","35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f","d990fd22-7ffc-4395-86a7-804da25f908b"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"c7405533-bf93-429e-bf1b-9b33317f4766","v":"initial","p":"3dc78392-be3d-4804-996e-df4bcd1c5ce4","f":{"id":"design-form","v":"49954170df6a253b","text":"Design"},"data":{"name":"page-toolbar","template":"","css":"","controller":"","packages":[],"description":""},"locks":[],"created":{"at":"2019-01-08T16:26:02+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2019-01-08T16:26:02+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1546964762233,"ct":1546964762233,"a_depth":5,"a":["apps","83c76376-420e-4231-9275-d0fe2ab47c32","ba440134-1703-495e-b869-0f0c8d447f75","91352b74-c5e5-4c05-aa68-f13b0b723f35","3dc78392-be3d-4804-996e-df4bcd1c5ce4"],"a_forms":["folder","application-form","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"c89cbb97-29fd-4ed3-889b-804a7c45fbca","v":"60b58e01372c6ccc","p":"4551c597-7595-4858-8b7f-207a7fb15b3e","f":{"id":"design-form","v":"bcdfee0bbf32737b","text":"Design"},"data":{"name":"page-toolbar","template":"","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2019-04-12T14:13:53+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2020-10-13T10:11:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1602583892051,"ct":1602583892051,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","4551c597-7595-4858-8b7f-207a7fb15b3e"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[],"previous":{"v":"initial","f":{"id":"design-form","v":"2d98bf27c3108340","text":"Design"}}},{"id":"cafba2f8-35d3-40e1-af87-9f2957c54d24","v":"initial","p":"188cc647-d375-48c4-baff-2e738787da33","f":{"id":"design-form","v":"2d98bf27c3108340","text":"Design"},"data":{"name":"page-toolbar","applies":"","description":"","template":"","css":"","controller":"","packages":[]},"locks":[],"created":{"at":"2019-04-12T14:13:53+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2019-04-12T14:13:53+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1555078433657,"ct":1555078433657,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","188cc647-d375-48c4-baff-2e738787da33"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"cd229d5e-2361-442e-818f-00e46bbba92c","v":"initial","p":"7be5f2c5-206b-4ab6-9d4d-c4834baf8e32","f":{"id":"design-form","v":"65801907e0c30697","text":"Design"},"data":{"name":"page-toolbar","template":"","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-05-08T08:51:34+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2020-05-08T08:51:34+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1588927894248,"ct":1588927894247,"a_depth":4,"a":["apps","599db2de-4e07-4722-98bd-7f42d498b352","79718664-ed22-4b52-9c10-037881df3578","7be5f2c5-206b-4ab6-9d4d-c4834baf8e32"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"d11a92f8-111a-4a78-bc03-a6df401b9c92","v":"initial","previous":{"v":""},"p":"6770bab9-4e15-45ae-bf22-7fe4ef2a0848","f":{"id":"design-form","v":"e3fe9ece11aabc5e","text":"Design"},"data":{"name":"page-toolbar","applies":"","template":"","css":"","controller":"","packages":[]},"locks":[],"lockRefs":[],"created":{"at":"2018-01-02T22:09:10+01:00","by":"","from":"","client":"41009159-943a-4b09-b902-e8e5e8151f0c"},"modified":{"at":"2018-01-02T22:09:10+01:00","by":"","from":"","client":"41009159-943a-4b09-b902-e8e5e8151f0c"},"t":1514927350549,"ct":1514927348177,"a_depth":4,"a":["apps","aed1ba1c-9095-4aca-8176-74a37325f0e5","58cc45fb-3fb3-45e8-b61d-4b89899e357a","6770bab9-4e15-45ae-bf22-7fe4ef2a0848"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"daac22ba-6d71-4111-bd44-5fcd37b76e89","v":"initial","p":"c818d93b-446d-494f-8120-a39db2bdf484","f":{"id":"design-form","v":"5910dbdd1c0b7469","text":"Design"},"data":{"name":"page-toolbar","applies":"","description":"","template":"","css":"","controller":"","packages":[]},"locks":[],"created":{"at":"2018-11-29T16:10:37+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2018-11-29T16:10:37+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1543507837365,"ct":1543507837364,"a_depth":4,"a":["apps","43f84041-0fd7-4ccb-b7b5-7a38f89ada37","5d6fa6d3-7580-4c6f-9487-fff961f9c751","c818d93b-446d-494f-8120-a39db2bdf484"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"dd3c4174-1d20-41e5-8b66-9a79aa2871c1","v":"0fd8613cd9113262","previous":{"v":"initial"},"p":"b9d0a2e5-4aac-4927-ac39-a1f532e6c20e","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"page-toolbar","applies":"","template":"<div class=\"_CSS-commands-bar\">\n    <div class=\"_CSS-commands\">\n      <button class=\"bp-button bp-button--raised\" @click=\"controller.newFall()\">Neuer Fall</button>\n    </div>\n</div>","css":"._CSS {\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n  color: var(--mdc-theme-text-primary-on-primary);\n}\n\n._CSS-commands-bar {\n  flex: 1;\n  margin: 0;\n  padding: 4px 0 8px 0;\n  padding-left: var(--bp-page-content-padding, 8px); \n  padding-right: var(--bp-page-content-padding, 8px); \n  display: flex;\n  justify-content: space-between;\n  xborder: 1px solid lightgray;\n  xbackground: #f0f0f0;\n  border-top: 1px solid transparent;\n  \n}\n\n._CSS-commands-bar--edit {\n  border-top: 1px solid rgba(0,0,0,0.1);\n  background: lightyellow;\n}\n\n._CSS-commands-bar::after {\n  content:'';\n  position:absolute;\n  height:4px;\n  left:0;\n  bottom:-0px;\n  right:0;\n  border-top: 1px solid rgba(0,0,0,0.2);\n  background: linear-gradient(to bottom, rgba(0,0,0,0.1) 0%,rgba(0,0,0,0) 100%);\n  display:block;\n}\n\n._CSS-commands {\n  display: flex;\n}\n\n._CSS-commands > .bp-button._CSS-command--primary {\n  padding: 8px 16px; \n}\n\n._CSS-commands .bp-button {\n  padding: 8px;\n}\n","controller":"class Controller {\n  async newFall() {\n    const newDocument = await Aeppic.new('010e3640-1897-4840-bec0-7d0c0f1fc642', document.id)\n    Aeppic.save(newDocument)\n    Aeppic.navigateTo(newDocument.id)\n  }\n}","packages":[]},"locks":[],"created":{"at":"2018-02-20T16:54:06+01:00","by":"","from":"","client":"server"},"modified":{"at":"2018-04-20T12:30:32+02:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"from":"","client":"f8312258-bdc9-438a-a510-de77a69e61e9"},"t":null,"ct":1519142046981,"a_depth":4,"a":["apps","b791df37-6eef-4a3e-9066-1b79e0bdad31","35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f","b9d0a2e5-4aac-4927-ac39-a1f532e6c20e"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"de6bfd4a-e405-4053-8ed3-0c1b17ef0f35","v":"initial","p":"a85202bb-7177-4d76-9e1e-d92aec8ef4b4","f":{"id":"design-form","v":"49954170df6a253b","text":"Design"},"data":{"name":"page-toolbar","template":"<div v-if=\"locals.canEdit\" class=\"_CSS-commands-bar\" :class=\"{ '_CSS-commands-bar--edit': locals.documentChanged, 'ae-light': locals.documentChanged }\">\n  <div class=\"_CSS-commands _CSS-commands--space-between\"  v-show=\"!locals.documentChanged\">\n    <div class=\"_CSS-commands\">\n      <button class=\"bp-button bp-button--raised\" @click=\"controller.newDocument()\">Neu</button>\n      <button class=\"bp-button bp-button--transparent\" @click=\"controller.showList()\">Liste</button>\n    </div>\n   </div>\n</div>\n\n<ae-dialog ref=\"dialogNew\" title=\"Neu\" @close=\"$emit('close')\" :backdrop-close=\"false\">\n  <div slot=\"header\" slot-scope=\"scope\" class=\"_CSS-dialog__header\">\n    <span>Neu</span>\n    <ae-icon class=\"_CSS-button fal fa-times\" @click.native=\"scope.close()\"></ae-icon>\n  </div>\n\t<ae-design name=\"editable-document\" slot=\"body\" :document=\"locals.newDocument\" :edit=\"true\" :watch=\"false\" ref=\"editDesign\" class=\"ae-stacking-context\"></ae-design>\n\t<div slot=\"commands\" slot-scope=\"scope\" class=\"_CSS-dialog__commands\">\n    <button class=\"bp-button bp-button--transparent\" @click=\"controller.cancel()\">Abbrechen</button>\n\t\t<button class=\"bp-button bp-button--raised\" @click=\"controller.saveEditedDocument()\">Anlegen</button>\n\t</div>\n</ae-dialog> \n\n","css":"._CSS {\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n}\n\n._CSS-commands-bar {\n  flex: 1;\n  margin: 0;\n  padding: 4px 0 8px 0;\n  padding-left: var(--bp-page-content-padding, 8px); \n  padding-right: var(--bp-page-content-padding, 8px); \n  display: flex;\n  justify-content: space-between;\n  xborder: 1px solid lightgray;\n  xbackground: #f0f0f0;\n  border-top: 1px solid transparent;\n}\n\n._CSS-commands-bar--edit {\n  border-top: 1px solid rgba(0,0,0,0.1);\n  background: lightyellow;\n}\n\n._CSS-commands-bar::after {\n  content:'';\n  position:absolute;\n  height:4px;\n  left:0;\n  bottom:-0px;\n  right:0;\n  border-top: 1px solid var(--ae-separator-color);\n  background: linear-gradient(to bottom, rgba(0,0,0,0.1) 0%,rgba(0,0,0,0) 100%);\n  display:block;\n}\n\n._CSS-button--danger:hover > * {\n  color: var(--ae-theme-warning);\n}\n\n._CSS-commands {\n  display: flex;\n  flex: 1;\n}\n\n._CSS-commands--space-between {\n  justify-content: space-between;\n}\n\n._CSS-commands > .bp-button._CSS-command--primary {\n  padding: 8px 16px; \n}\n\n._CSS-commands .bp-button {\n  padding: 8px;\n}\n","controller":"class Controller {\n  async init() {\n    const canEdit = await Aeppic.canEdit(document)\n    locals.canEdit = Aeppic.Account && Aeppic.Account.data.isGroupAccount === false && canEdit === true\n\n    locals.newDocument = null \n  }\n\n  async newDocument() {\n    const formId = '9715b20a-382c-4a81-b854-caf0e6656f74'\n    const parent = 'e2e55d2d-fb6b-4183-9147-0065ef26bffc'\n\n    locals.newDocument = await Aeppic.new(formId, parent)\n    $refs.dialogNew.show()\n  }\n\n  cancel() {\n    $refs.dialogNew.close()\n  }\n\n  saveEditedDocument() {\n    if (locals.newDocument) {\n      Aeppic.save(locals.newDocument)\n      locals.newDocument = null\n    }\n    $refs.dialogNew.close()\n  \n  }\n\n  showList() {\n    Aeppic.navigateTo('e2e55d2d-fb6b-4183-9147-0065ef26bffc')\n  }\n}","packages":[],"description":""},"locks":[],"created":{"at":"2019-01-31T15:06:57+00:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2019-01-31T15:06:57+00:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1548947217476,"ct":1548947217476,"a_depth":4,"a":["apps","d10eebac-6285-4412-8451-55d1bf2fc849","f5966f1d-7108-4be4-801e-8f957c6f4150","a85202bb-7177-4d76-9e1e-d92aec8ef4b4"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"e8606409-66a5-478c-82e6-8fd71adc0170","v":"65642a7a8439164d","previous":{"v":"initial"},"p":"c69a0c1c-6c53-40c2-87e8-5ace866bf1df","f":{"id":"design-form","v":"e3fe9ece11aabc5e","text":"Design"},"data":{"name":"page-toolbar","applies":"","template":"","css":"","controller":"","packages":[]},"locks":[],"lockRefs":[],"created":{"at":"2018-01-02T19:21:20+01:00","by":"","from":"","client":"ea7c157a-caf0-4668-8792-049e016b07f5"},"modified":{"at":"2018-01-02T19:21:31+01:00","by":"","from":"","client":"ea7c157a-caf0-4668-8792-049e016b07f5"},"t":1514917291890,"ct":1514917276506,"a_depth":4,"a":["apps","8f8c9ed7-a7ed-4150-b162-92d6f19a05b0","526d9710-b2bd-4fa7-9341-d780ead102c1","c69a0c1c-6c53-40c2-87e8-5ace866bf1df"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"e9ef7e84-c013-406f-8f32-5ddb49e760dc","v":"510e2e2635a15d3a","previous":{"v":"43acc4b2c62a20fc"},"p":"089eb68f-d2ec-4e30-a3bb-6549d72932ec","f":{"id":"design-form","v":"24435d748c76f819","text":"Design"},"data":{"name":"page-toolbar","template":"","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2019-05-03T14:14:37+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2019-07-18T13:02:59+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1563454979066,"ct":1556885677301,"a_depth":4,"a":["apps","94a64d89-d204-4918-b147-d717914fb03e","f254ce25-42f1-4333-8ee7-23554bf746c1","089eb68f-d2ec-4e30-a3bb-6549d72932ec"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"f6449eec-7401-4db0-a594-9570a4abe31c","v":"initial","p":"5a191229-b708-4242-9c44-8a49376c46b7","f":{"id":"design-form","v":"2d98bf27c3108340","text":"Design"},"data":{"name":"page-toolbar","applies":"","description":"","template":"","css":"","controller":"","packages":[]},"locks":[],"created":{"at":"2019-04-12T14:13:53+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2019-04-12T14:13:53+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1555078433303,"ct":1555078433303,"a_depth":5,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","1116d922-d8df-4da5-a7c2-70191d07d929","5cdd2d20-7676-43e3-8997-e176dd3434ed","5a191229-b708-4242-9c44-8a49376c46b7"],"a_forms":["folder","application-form","folder","form-folder","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"fe3ab723-158e-4507-af92-0f5e9b5003d7","v":"initial","p":"1bb92e44-6e23-4c0e-8cb5-163e6e75ebb7","f":{"id":"design-form","v":"2d98bf27c3108340","text":"Design"},"data":{"name":"page-toolbar","applies":"","description":"","template":"","css":"","controller":"","packages":[]},"locks":[],"created":{"at":"2019-04-12T14:13:54+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2019-04-12T14:13:54+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1555078434807,"ct":1555078434807,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","1bb92e44-6e23-4c0e-8cb5-163e6e75ebb7"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"d33608ae-f244-4950-8f79-84e80db73001","v":"83444d43694a8a10","previous":{"v":"6750177a79b9d650"},"p":"cb2adf77-7636-41a7-9a16-1610b06fa91e","f":{"id":"design-form","v":"0061789efb5c5c29","text":"Design"},"data":{"name":"page-toolbar--inlined","template":"<div class=\"_CSS-container\">\r\n  <div style=\"display:flex;align-items:center\">\r\n    <ae-design name=\"additional-toolbar-actions\" :document=\"document\" @toolbar=\"$emit('toolbar', $event)\" :watch=\"false\" :param-readonly=\"!locals.canEdit\"></ae-design>\r\n    <ae-design :document=\"document\" name=\"security-access\" :watch=\"false\"></ae-design> \r\n    <ae-design :document=\"document\" name=\"history-button\" :watch=\"false\"></ae-design>\r\n\r\n    <ae-layout  layout-id=\"c80364ed-8a1f-40fa-a169-5cc7b45d4fb4\"\r\n                :param-document=\"document\"\r\n    ></ae-layout>\r\n  </div> \r\n  <ae-layout \r\n    v-show=\"locals.documentChanged\"\r\n    layout-id=\"73fd81e5-c901-4c56-9b38-cd04a7d17f8a\"\r\n    :param-document-id=\"document.id\"\r\n    @save=\"$emit('toolbar', 'save')\"\r\n    @document-revision=\"controller.revision()\"\r\n    @document-save=\"controller.save()\"\r\n    @reset=\"controller.reset()\"\r\n  >\r\n  </ae-layout>\r\n</div> ","css":"._CSS {\r\n  display: flex;\r\n}\r\n\r\n._CSS-container {\r\n  position: relative;\r\n  width:100%;\r\n\r\n  padding-left: var(--bp-page-content-padding, 8px); \r\n  padding-right: var(--bp-page-content-padding, 8px); \r\n  min-height: 49px;\r\n  max-height: 49px;\r\n  border-bottom: var(--ae-border-width) solid var(--ae-border-color);\r\n\r\n  display: flex;\r\n  align-items: center;\r\n  justify-content: space-between;\r\n}\r\n\r\n._CSS-container > * {\r\n  position: absolute;\r\n  inset: 0px;\r\n}","controller":"init() {\r\n  locals.documentChanged = false\r\n}\r\n\r\nrevision() {\r\n  locals.documentChanged = true\r\n  $emit('document-revision')\r\n}\r\n\r\nsave() {\r\n  locals.documentChanged = false\r\n  $emit('document-save')\r\n}\r\n\r\nreset() {\r\n  locals.documentChanged = false\r\n  $emit('toolbar', 'reset')\r\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-07-07T11:16:56+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","from":"","client":"server"},"modified":{"at":"2021-11-03T15:03:54+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1635951834446,"ct":1625656616889,"a_depth":4,"a":["apps","cf914a7f-ff5f-4598-80f1-63c9129e0a71","d69a62e9-a61f-42bf-9ae9-7983b87bf587","cb2adf77-7636-41a7-9a16-1610b06fa91e"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"49e3a50c-ff2b-419c-bf27-8652839ae174","v":"070d8645b3e2ae91","cloneOf":{"id":"2f51ef57-3d65-44dc-85af-e41ce9d72360","v":"36a3dbdf392f299c","text":"page-toolbar"},"originalCloneOf":{"id":"2f51ef57-3d65-44dc-85af-e41ce9d72360","v":"36a3dbdf392f299c","text":"page-toolbar"},"previous":{"v":"4cd75362517233c3"},"p":"98c77209-1245-43d6-90b5-8625183f470c","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"page-toolbar.old","template":"<div  class=\"_CSS-commands-bar\"\n      :class=\"{ '_CSS-commands-bar--edit': locals.documentChanged, 'ae-light': locals.documentChanged }\"\n>\n  <ae-layout  layout-id=\"73fd81e5-c901-4c56-9b38-cd04a7d17f8a\"\n              :param-pause=\"locals.dialogOpen\"\n              :param-document-id=\"document.id\"\n              @update=\"locals.documentChanged = true\"\n              @save=\"$emit('toolbar', 'save')\"\n              @reset=\"() => { locals.documentChanged = false; $emit('toolbar', 'reset') }\"\n              ref=\"confirmDialogReffer\"\n              style=\"flex: 1;\"\n              v-show=\"locals.documentChanged\"\n              v-if=\"locals.canEdit\"\n  ></ae-layout>\n\n  <template v-if=\"!locals.documentChanged\">\n    <div class=\"_CSS-commands\">\n      <ae-layout  layout-id=\"c80364ed-8a1f-40fa-a169-5cc7b45d4fb4\"\n                  :param-document=\"document\"\n      ></ae-layout>\n                  <!-- v-if=\"locals.canEdit\" -->\n      <ae-layout  layout-id=\"99d33d30-e81e-4ff5-a79f-407fc564d2f0\"\n                  :param-document=\"document\"\n                  @show=\"() => locals.dialogOpen = true\"\n                  @close=\"() => locals.dialogOpen = false\"\n                  :param-form=\"form\"\n                  v-if=\"locals.canEdit\"\n      ></ae-layout>\n      <ae-layout  layout-id=\"aea9f60c-e5c4-4d96-8f81-8f0dda80e442\" :param-document-id=\"document.id\"></ae-layout>\n      <ae-design :document=\"document\" v-if=\"locals.canEdit\" name=\"security-access\" :watch=\"false\"></ae-design>\n      <ae-design :document=\"document\" v-if=\"locals.canEdit\" name=\"history-button\" :watch=\"false\"></ae-design>\n      <ae-design :document=\"document\" name=\"additional-toolbar-informations\" :watch=\"false\" style=\"overflow: hidden;\"></ae-design>\n    </div>                \n    <!-- <div class=\"_CSS-commands\">\n      <div v-for=\"stamp of document.stamps\">\n        <ae-design name=\"icon\" :document=\"stamp\"></ae-design>\n      </div>\n    </div> -->\n    <!-- <div class=\"_CSS-commands\">\n      <ae-design name=\"additional-toolbar-buttons\" :document=\"document\" @toolbar=\"$emit('toolbar', $event)\" :watch=\"false\"></ae-design>\n      <ae-layout  layout-id=\"0ded34c5-1221-4511-af93-d897a79f1369\"\n                  @show=\"() => locals.dialogOpen = true\"\n                  @close=\"() => locals.dialogOpen = false\"\n                  :param-document=\"document\"\n                  :param-form=\"form\"\n                  v-show=\"locals.showDelete\"\n                  @visible=\"locals.showDelete = true\"\n                  @invisible=\"locals.showDelete = false\"\n      ></ae-layout>\n    </div> -->\n  </template>\n  <div class=\"_CSS-commands\">\n      <ae-design name=\"additional-toolbar-buttons\" :document=\"document\" @toolbar=\"$emit('toolbar', $event)\" :watch=\"false\"></ae-design>\n      <ae-layout  layout-id=\"0ded34c5-1221-4511-af93-d897a79f1369\"\n                  @show=\"() => locals.dialogOpen = true\"\n                  @close=\"() => locals.dialogOpen = false\"\n                  :param-document=\"document\"\n                  :param-form=\"form\"\n                  v-if=\"locals.canEdit\"\n                  v-show=\"locals.showDelete && !params.hideDelete\"\n                  @visible=\"locals.showDelete = true\"\n                  @invisible=\"locals.showDelete = false\"\n      ></ae-layout>\n    </div>\n</div>\n","css":"._CSS {\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n}\n\n._CSS-commands-bar {\n  flex: 1;\n  flex-shrink: 0;\n  padding-left: var(--bp-page-content-padding, 8px); \n  padding-right: var(--bp-page-content-padding, 8px); \n  min-height: 49px;\n  max-height: 49px;\n  border-bottom: var(--ae-border-width) solid var(--ae-border-color);\n  xbackground: var(--ae-ui-background);\n\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n}\n\n._CSS-commands-bar--edit {\n  background: var(--ae-primary-100);\n}\n\n._CSS {\n}\n\n._CSS-commands {\n  xbackground: var(--ae-background-200);\n  display: grid;\n  grid-gap: 1px;\n  grid-auto-columns: auto;\n  grid-auto-flow:column;\n}\n\n/*\n\n._CSS-commands > * {\n  padding: 0 var(--ae-size-2);\n  background: var(--ae-background-200);\n}\n\n._CSS-commands > *:first-child {\n  padding: 0 var(--ae-size-2) 0 0;\n}\n\n._CSS-commands > *:last-child {\n  padding: 0 0 0 var(--ae-size-2) ;\n}\n\n*/\n","controller":"class Controller {\n  async init() {\n    const canEdit = await Aeppic.canEdit(document)\n\n    if (Aeppic.Account && Aeppic.Account.data.isGroupAccount === true) {\n      // a group account can only edit if it got rights assigned. Unsecured folders are not editable.\n      const editable = await Aeppic.edit(document)\n      const isLocked = editable.hasInheritedLock() || editable.hasLock()\n\n      if (isLocked) {\n        locals.canEdit = canEdit === true\n      } else {\n        locals.canEdit = false\n      }\n    } else {\n      locals.canEdit = canEdit\n    }\n\n    await Aeppic.nextRenderPass()\n\n    this._willNavigateHandler = (event) => this.handleWillNavigate(event)\n\n    if ($refs.confirmDialogReffer && $refs.confirmDialogReffer.$root && $refs.confirmDialogReffer.$root.$el) {\n      $refs.confirmDialogReffer.$root.$el.addEventListener('ae-will-navigate', this._willNavigateHandler)\n    }\n\n    packages.window.addEventListener('popstate', this._willNavigateHandler)\n    packages.window.addEventListener('beforeunload', this._willNavigateHandler)\n\n    this._setupKeydownListener()\n  }\n\n  handleWillNavigate(event) {\n    if (!locals.documentChanged) {\n      return true\n    }\n\n    const leave = packages.window.confirm('Sie haben ungespeicherte Änderungen. Seite trotzdem verlassen?')\n\n    if (leave) {\n      return true\n    }\n\n    if (event.preventDefault) {\n      event.preventDefault()\n    }\n  }\n\n  _setupKeydownListener() {\n    if (packages.window) {\n      this._keydownHandler = (event) => {\n        if ((event.ctrlKey || event.metaKey) && event.key) {\n          let handled = true\n \n          if (event.key === 's') {\n            $emit('toolbar', 'save')\n          } else {\n            handled = false\n          }\n\n          if (handled) {\n            event.preventDefault()\n            event.stopPropagation()\n          }\n        }\n      }\n\n\n      packages.window.addEventListener('keydown', this._keydownHandler)\n    }\n  }\n\n  _teardownKeydownListener() {\n    if (packages.window) {\n      packages.window.removeEventListener('keydown', this._keydownHandler)\n    } \n  }\n\n  destroy() {\n    this._teardownKeydownListener()\n\n    if ($refs.confirmDialogReffer && $refs.confirmDialogReffer.$root && $refs.confirmDialogReffer.$root.$el) {\n      $refs.confirmDialogReffer.$root.$el.removeEventListener('ae-will-navigate', this._willNavigateHandler)\n    }\n\n    packages.window.removeEventListener('popstate', this._willNavigateHandler)\n    packages.window.removeEventListener('beforeunload', this._willNavigateHandler)\n  }\n}\n","packages":[{"id":"10843fbf-4f0c-416b-be7d-42d6bbd0ae68","v":"3f4732b442f74974","text":"Window"}]},"locks":[],"created":{"at":"2019-08-05T12:06:31+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2020-12-14T15:55:49+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1607961349294,"ct":1565006791150,"a_depth":4,"a":["apps","94a64d89-d204-4918-b147-d717914fb03e","f254ce25-42f1-4333-8ee7-23554bf746c1","98c77209-1245-43d6-90b5-8625183f470c"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"c4af57d6-cd00-47c2-a1ea-6aa7e8eec4e3","v":"b0189485a1c50567","previous":{"v":"0e0634548cb2ba0e"},"p":"account","f":{"id":"design-form","v":"49954170df6a253b","text":"Design"},"data":{"name":"page-toolbar.old","template":"<div v-if=\"locals.canEdit\" class=\"_CSS-commands-bar\" :class=\"{ '_CSS-commands-bar--edit': locals.documentChanged, 'ae-light': locals.documentChanged }\">\n  <!-- <ae-layout  layout-id=\"73fd81e5-c901-4c56-9b38-cd04a7d17f8a\"\n              :param-pause=\"locals.dialogOpen\"\n              :param-document-id=\"document.id\"\n              @update=\"() => locals.documentChanged = true\"\n              @save=\"$emit('toolbar', 'save')\"\n              @reset=\"() => { locals.documentChanged = false; $emit('toolbar', 'reset') }\"\n  ></ae-layout> -->\n\n  <div class=\"_CSS-commands _CSS-commands--space-between\"  v-show=\"!locals.documentChanged\">\n    <div class=\"_CSS-commands\">\n    <!-- <ae-layout  layout-id=\"99d33d30-e81e-4ff5-a79f-407fc564d2f0\"\n                :param-document=\"document\"\n                @show=\"() => locals.dialogOpen = true\"\n                @close=\"() => locals.dialogOpen = false\"\n                :param-form=\"form\"></ae-layout> -->\n    <ae-layout  layout-id=\"c80364ed-8a1f-40fa-a169-5cc7b45d4fb4\"\n                :param-document=\"document\"\n                @show=\"() => locals.dialogOpen = true\"\n                @close=\"() => locals.dialogOpen = false\"\n                :param-commands=\"locals.commands\"\n    ></ae-layout>\n      <ae-layout  layout-id=\"aea9f60c-e5c4-4d96-8f81-8f0dda80e442\"\n                  :param-document-id=\"document.id\"></ae-layout>\n      <ae-design name=\"additional-toolbar-buttons\" :document=\"document\"></ae-design>\n    </div>                \n      <!-- <ae-layout  layout-id=\"0ded34c5-1221-4511-af93-d897a79f1369\"\n                  @show=\"() => locals.dialogOpen = true\"\n                  @close=\"() => locals.dialogOpen = false\"\n                  :param-document=\"document\"\n                  :param-form=\"form\"></ae-layout> -->\n  </div>\n</div>\n","css":"._CSS {\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n}\n\n._CSS-commands-bar {\n  flex: 1;\n  margin: 0;\n  padding: 4px 0 8px 0;\n  padding-left: var(--bp-page-content-padding, 8px); \n  padding-right: var(--bp-page-content-padding, 8px); \n  display: flex;\n  justify-content: space-between;\n  xborder: 1px solid lightgray;\n  xbackground: #f0f0f0;\n  border-top: 1px solid transparent;\n}\n\n._CSS-commands-bar--edit {\n  border-top: 1px solid rgba(0,0,0,0.1);\n  background: lightyellow;\n}\n\n._CSS-commands-bar::after {\n  content:'';\n  position:absolute;\n  height:4px;\n  left:0;\n  bottom:-0px;\n  right:0;\n  border-top: 1px solid var(--ae-separator-color);\n  background: linear-gradient(to bottom, rgba(0,0,0,0.1) 0%,rgba(0,0,0,0) 100%);\n  display:block;\n}\n\n._CSS-button--danger:hover > * {\n  color: var(--ae-theme-warning);\n}\n\n._CSS-commands {\n  display: flex;\n  flex: 1;\n}\n\n._CSS-commands--space-between {\n  justify-content: space-between;\n}\n\n._CSS-commands > .bp-button._CSS-command--primary {\n  padding: 8px 16px; \n}\n\n._CSS-commands .bp-button {\n  padding: 8px;\n}\n","controller":"async init() {\n  locals.commands = [\n    '630b5b77-6bed-4768-b59c-1501045ae9a3',\n    '630b5b77-6bed-4768-b59c-1501045ae9a3'\n  ]\n\n  const canEdit = await Aeppic.canEdit(document)\n  locals.canEdit = Aeppic.Account && Aeppic.Account.data.isGroupAccount === false && canEdit === true\n}\n","packages":[],"description":""},"locks":[],"created":{"at":"2019-01-24T15:39:10+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2020-10-16T09:52:59+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1602841979673,"ct":1548344350492,"a_depth":5,"a":["system","b2533f7b-ea85-4680-99ed-d8e11be641b9","0e6939d6-9b93-4165-b6bd-977e4da881f3","627f5b74-3baf-45f8-a1d3-a5936839b844","account"],"a_forms":["system-folder-form","folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"e56a79b2-7ce7-4749-bfcf-ca6f47d085e4","v":"b5fe8bedcb24c6f8","cloneOf":{"id":"2f51ef57-3d65-44dc-85af-e41ce9d72360","v":"906eaaf0dd14351d","text":"page-toolbar"},"originalCloneOf":{"id":"2f51ef57-3d65-44dc-85af-e41ce9d72360","v":"906eaaf0dd14351d","text":"page-toolbar"},"previous":{"v":"5e6eae94185c7578"},"p":"group","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"page-toolbar.old","applies":"","template":"<div v-if=\"locals.canEdit\" class=\"_CSS-commands-bar\" :class=\"{ '_CSS-commands-bar--edit': locals.documentChanged, 'ae-light': locals.documentChanged }\">\n    <ae-layout  layout-id=\"73fd81e5-c901-4c56-9b38-cd04a7d17f8a\"\n              :param-pause=\"locals.dialogOpen\"\n              :param-document-id=\"document.id\"\n              @update=\"locals.documentChanged = true\"\n              @save=\"$emit('toolbar', 'save')\"\n              @reset=\"() => { locals.documentChanged = false; $emit('toolbar', 'reset') }\"\n              ref=\"confirmDialogReffer\"\n              style=\"flex: 1;\"\n              v-show=\"locals.documentChanged\"\n              v-if=\"locals.canEdit\"\n  ></ae-layout>\n\n  <template v-if=\"!locals.documentChanged\">\n    <div class=\"_CSS-commands\">\n      <ae-layout  layout-id=\"c80364ed-8a1f-40fa-a169-5cc7b45d4fb4\"\n                  :param-document=\"document\"\n                  v-if=\"locals.canEdit\"\n      ></ae-layout>\n      <!-- <ae-layout  layout-id=\"99d33d30-e81e-4ff5-a79f-407fc564d2f0\"\n                  :param-document=\"document\"\n                  @show=\"() => locals.dialogOpen = true\"\n                  @close=\"() => locals.dialogOpen = false\"\n                  :param-form=\"form\"\n                  v-if=\"locals.canEdit\"\n      ></ae-layout> -->\n      <ae-layout  layout-id=\"aea9f60c-e5c4-4d96-8f81-8f0dda80e442\" :param-document-id=\"document.id\"></ae-layout>\n      <ae-design :document=\"document\" v-if=\"locals.canEdit\" name=\"security-access\" :watch=\"false\"></ae-design>\n      <ae-design :document=\"document\" v-if=\"locals.canEdit\" name=\"history-button\" :watch=\"false\"></ae-design>\n      <ae-design :document=\"document\" name=\"additional-toolbar-informations\" :watch=\"false\" style=\"overflow: hidden;\"></ae-design>\n    </div>                \n  </template>\n  <div class=\"_CSS-commands\">\n    <ae-design name=\"additional-toolbar-buttons\" :document=\"document\" @toolbar=\"$emit('toolbar', $event)\" :watch=\"false\"></ae-design>\n    <ae-layout  layout-id=\"0ded34c5-1221-4511-af93-d897a79f1369\"\n                @show=\"() => locals.dialogOpen = true\"\n                @close=\"() => locals.dialogOpen = false\"\n                :param-document=\"document\"\n                v-if=\"!locals.isSystemManagedGroup && locals.canEdit\"\n                v-show=\"locals.showDelete && !params.hideDelete\"\n                @visible=\"locals.showDelete = true\"\n                @invisible=\"locals.showDelete = false\"\n    ></ae-layout>\n  </div>\n</div>\n\n \n","css":"._CSS {\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n}\n\n._CSS-commands-bar {\n  flex: 1;\n  flex-shrink: 0;\n  padding-left: var(--bp-page-content-padding, 8px); \n  padding-right: var(--bp-page-content-padding, 8px); \n  min-height: 49px;\n  max-height: 49px;\n  border-bottom: var(--ae-border-width) solid var(--ae-border-color);\n  xbackground: var(--ae-ui-background);\n\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n}\n\n._CSS-commands-bar--edit {\n  background: var(--ae-primary-100);\n}\n\n._CSS {\n}\n\n._CSS-commands {\n  xbackground: var(--ae-background-200);\n  display: grid;\n  grid-gap: 1px;\n  grid-auto-columns: auto;\n  grid-auto-flow:column;\n}\n\n/*\n\n._CSS-commands > * {\n  padding: 0 var(--ae-size-2);\n  background: var(--ae-background-200);\n}\n\n._CSS-commands > *:first-child {\n  padding: 0 var(--ae-size-2) 0 0;\n}\n\n._CSS-commands > *:last-child {\n  padding: 0 0 0 var(--ae-size-2) ;\n}\n\n*/\n","controller":"class Controller {\n  async init() {\n    locals.isSystemManagedGroup = data.systemManaged\n\n    const canEdit = await Aeppic.canEdit(document)\n    locals.canEdit = Aeppic.Account && Aeppic.Account.data.isGroupAccount === false && canEdit === true\n\n    // const systemFolder = await this._getSecurityFolder()\n\n    // if (systemFolder.data.securityGroup && systemFolder.data.securityGroup.id === document.id) {\n    //   locals.isSystemManagedGroup = true\n    // } else if (systemFolder.data.trackedTimeGroup && systemFolder.data.trackedTimeGroup.id === document.id) {\n    // } else {\n    //   locals.isSystemManagedGroup = false\n    // }\n  }\n\n  // async _getSecurityFolder() {\n  //   if (!document.a) {\n  //     return null\n  //   }\n\n  //   const securityFolder = await Aeppic.findOne(`a:${document.a[0]} AND f.id:81939b86-a48e-480e-afd1-cb2907568550`)\n  //   return securityFolder\n  // }\n}\n","packages":[]},"locks":[],"created":{"at":"2019-01-29T09:53:14+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2020-06-12T14:00:57+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1591970457390,"ct":1548755594642,"a_depth":5,"a":["system","b2533f7b-ea85-4680-99ed-d8e11be641b9","0e6939d6-9b93-4165-b6bd-977e4da881f3","627f5b74-3baf-45f8-a1d3-a5936839b844","group"],"a_forms":["system-folder-form","folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"fb80d44b-5760-4512-b473-ade9941a77f7","v":"3b0aa58b3a2d2ca1","p":"fallback-designs","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"page-with-toolbar","template":"<div class=\"_CSS-container\">\n  <ae-design  name=\"page-toolbar\"\n              :document=\"document\"\n              xclass=\"_CSS-page-toolbar bp-page__toolbar\"\n              @toolbar=\"controller.dispatchEventChildren('body', 'toolbar', $event)\"\n              :params=\"params\"\n  ></ae-design>\n  <ae-design  class=\"ae-stacking-context _CSS-page-body\"\n              :document=\"document\"\n              name=\"page\"\n              ref=\"body\"\n              :param-readonly=\"!locals.canEditPageDocument\"\n              :params=\"params\"\n  ></ae-design>\n</div>","css":"._CSS-container {\n  height: 100%;\n  display: flex;\n  flex-flow: column;\n}\n\n._CSS-page-toolbar {\n  min-height: 0;\n  min-width: 0;\n}\n\n._CSS-page-body {\n  min-height: 0;\n  min-width: 0;\n\n  overflow: auto;\n  -webkit-overflow-scrolling: touch;\n\n  /* display: flex; */\n  /* flex-flow: column;  */\n  height: 100%;\n  width: 100%;\n}\n","controller":"class Controller {\n  async init() {\n    locals.canEditPageDocument = false\n    locals.canEditPageDocument = await Aeppic.canEdit(document)\n  }\n\n\n  dispatchEventChildren(refName, eventName, eventValue) { \n    if (!$refs[refName] || !$refs[refName].$el || !$refs[refName].$el.children) {\n      return\n    }\n    const children = $refs[refName].$el.children\n    for (let i = 0; i < children.length; i++) {\n      children[i].dispatchEvent(new CustomEvent(eventName, {\n        detail: eventValue\n      }))\n    }\n    $refs[refName].$emit(eventName, eventValue)\n  }\n\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-09-24T12:36:11+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-12-16T11:07:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720684627134,"ct":1720684627134,"a_depth":2,"a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"],"inheritedLocks":[null,null,null],"stamps":[],"previous":{"v":"594909bf521c0c82","f":{"id":"design-form","v":"baf08f1171a94bca","text":"Design"}},"meta":{"modified":{"at":"2024-07-11T09:57:07+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"11fec04d-1bb4-4b99-aad4-48bf7bc278ad","v":"initial","p":"320bbded-2e47-4772-b662-c54254627ac3","f":{"id":"design-form","v":"e3fe9ece11aabc5e","text":"Design"},"data":{"name":"page.old","applies":"","template":"<div class=\"_CSS-newsgroups _CSS-newsgroups--shown-in-small\">\n  <h3 class=\"_CSS-title\">Newsgroups</h3>\n  <div class=\"_CSS-groups\">\n    <ae-design @click.native=\"Aeppic.navigateTo(group)\" class=\"_CSS-groups__group\" name=\"nav-item,title\" :document=\"group\" :key=\"group.id + '--small'\" v-for=\"group of locals.groups\"></ae-design>\n  </div>  \n</div>\n<div class=\"_CSS-newsgroup--shown-in-wide\" style=\"position: relative;opacity: 0;\">\n  <!-- hidden placeholder for correct width -->\n  <h3 class=\"_CSS-title\">Newsgroups</h3>\n  <ae-design  class=\"_CSS-groups__group\" name=\"title\" :document=\"group\" :key=\"group.id + '--hidden-wide'\" v-for=\"group of locals.groups\"></ae-design>\n</div>\n<div class=\"_CSS-newsgroup--shown-in-wide\">\n  <h3 class=\"_CSS-title\">Newsgroups</h3>\n  <div class=\"_CSS-groups\">\n    <ae-design @click.native=\"Aeppic.navigateTo(group)\" class=\"_CSS-groups__group\" name=\"nav-item,title\" :document=\"group\" :key=\"group.id + '--wide'\" v-for=\"group of locals.groups\"></ae-design>\n  </div>  \n</div>\n<div style=\"justify-self:stretch;flex:1;display:flex;flex-direction:column\">\n  <h3 class=\"_CSS-title\">News</h3>\n  <div class=\"_CSS-news\">\n    <ae-list style=\"min-height:min-content;height:auto;align-items:start\" list-id=\"661e2e14-104e-4e95-b6f7-5e83a6ac1298\" :param-root=\"document.id\" ></ae-list> \n  </div>\n</div>\n<div style=\"flex:1\"></div>","css":"._CSS {\r\n  margin-left: var(--bp-page-content-padding, 8px); \r\n  margin-right: var(--bp-page-content-padding, 8px); \r\n  display:grid;\r\n  grid-template-columns: 1fr auto 1fr;\r\n  grid-gap: 3em;\r\n  padding-top:1em;\r\n  flex:1;\r\n}\r\n\r\n.ae-small ._CSS {\r\n  grid-template-columns: 1fr;\r\n  grid-gap: 1em;\r\n  \r\n}\r\n\r\n._CSS-newsgroups {\r\n  flex:1;\r\n}\r\n\r\n._CSS-newsgroups--shown-in-small {\r\n  display: none;\r\n}\r\n\r\n.ae-small ._CSS-newsgroups--shown-in-small {\r\n  display: initial;\r\n}\r\n\r\n._CSS-newsgroup--shown-in-wide {\r\n  justify-self:flex-end;\r\n  opacity: 1;\r\n  position: fixed;\r\n}\r\n\r\n.ae-small ._CSS-newsgroup--shown-in-wide {\r\n  display: none;\r\n}\r\n\r\n._CSS-groups {\r\n  xbackground: white;\r\n  padding: 5px;\r\n  xborder: 1px solid #AAA;\r\n  display: flex;\r\n  flex-flow:column;\r\n}\r\n\r\n._CSS-groups__group {\r\n  padding: 2px 0;\r\n  cursor: pointer;\r\n  flex: 1;\r\n  display: flex;\r\n}\r\n\r\n._CSS-groups__group > * {\r\n  flex: 1;\r\n}\r\n\r\n._CSS-title {\r\n  font-weight: bolder;\r\n  color:#555;\r\n  font-size:smaller;\r\n  margin-bottom: 24px;\r\n}\r\n._CSS-news {\r\n  flex:1;\r\n  overflow-y:auto;\r\n  overflow-x:hidden;\r\n  /* border-bottom:10px solid red; */\r\n  padding:20px;\r\n  display:flex;\r\n}\r\n","controller":"init() {\r\n  locals.groups = []\r\n\r\n  Aeppic.subscribe(`p:${document.id} f.id:381e2c4e-9eed-42a5-b65c-ad72e25369f0`, (groups) => {\r\n    locals.groups = groups\r\n  })\r\n}\r\n","packages":[]},"locks":[],"created":{"at":"2020-05-08T08:50:57+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2020-05-08T08:50:57+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1588927857457,"ct":1588927857457,"a_depth":4,"a":["apps","b91e3079-75ae-49cd-981b-3053bf47208c","e7a0be94-cd94-4210-875e-0cceb7e8bc6c","320bbded-2e47-4772-b662-c54254627ac3"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","5acfd7a2-33e4-498a-9150-71e1ab772bfc","20c92864-6a81-4006-96f9-b78f473cd129","17c3a5d3-90ba-4592-961b-0800873ef9c1"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2020-05-08T08:50:54+00:00","backedBy":null,"by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":null},"ct":1588927854622,"data":{"applies":"","controller":"class Controller {\n  async init() {\n    locals.sort = {\n      field: 'data.name'\n    }\n\n    locals.showDoneProjects = false\n    locals.showDetails = false\n\n    await Aeppic.nextRenderPass()\n\n    const canEdit = await Aeppic.canEdit(document)\n\n    if (Aeppic.Account && Aeppic.Account.data.isGroupAccount === true) {\n      // a group account can only edit if it got rights assigned. Unsecured folders are not editable.\n      const editable = await Aeppic.edit(document)\n      const isLocked = editable.hasInheritedLock() || editable.hasLock()\n\n      if (isLocked) {\n        locals.canEdit = canEdit === true\n      } else {\n        locals.canEdit = false\n      }\n    } else {\n      locals.canEdit = canEdit\n    }\n\n    if (locals.canEdit) {\n      locals.tasksRequest = await this._newTasksRequest()\n\n      locals.newTask = this.newTask()\n    }\n  }\n\n  async _newTasksRequest() {\n    return Aeppic.new('7ee39da0-908a-4db7-8bdb-53f73fedb61b', document.id)\n  }\n\n  async newTask(name) {\n    const task = await Aeppic.new('3d456c38-6282-416e-8c5e-7d20b0517a6e', document.id)\n\n    const taskForm = await Aeppic.getFormForDocument(task)\n    const assigneesParams =  taskForm.getFieldControlParams('verantwortlich')\n\n    if (assigneesParams.defaultValueCommand) {\n      const result = await Aeppic.Commands.execute(assigneesParams.defaultValueCommand, document, { account: Aeppic.Account })\n\n      if (result.ok && result.value) {\n        task.addReference('verantwortlich', result.value)\n      }\n    }\n\n    if (name) {\n      task.data.name = name\n    }\n\n    return task\n  }\n\n  async createTasksBasedOnRequest() {\n    if (!locals.canEdit) {\n      return\n    }\n\n    const editableDocument = await Aeppic.edit(document)\n\n    const userinput = locals.tasksRequest.data.aufgaben\n    const taskNames = userinput.split(/\\n/).filter(n => n !== '')\n\n    for (const name of taskNames) {\n      const task = await this.newTask(name)\n      await this._saveTask(editableDocument, task)\n    }\n\n    Aeppic.save(editableDocument)\n\n    locals.tasksRequest = await this._newTasksRequest()\n  }\n\n  // async saveBulkTasks() {\n  //   const taskNames = locals.bulkTasks.split(/\\n/).filter(n => n !== '')\n\n  //   for (const name of taskNames) {\n  //     const task = await this.newTask(name)\n  //     this._saveTask(task)\n  //   }\n\n  //   Aeppic.save(document)\n\n  //   locals.bulkTasks = ''\n  // }\n\n  // async saveNewTask() {\n  //   this._saveTask(locals.newTask)\n  //   Aeppic.save(document)\n\n  //   locals.newTask = this.newTask()\n  // }\n\n  async _saveTask(editableDocument, task) {\n    Aeppic.save(task)\n\n    const form = await Aeppic.getFormForDocument(editableDocument)\n    const params = form.getFieldControlParams('aufgaben')\n\n    editableDocument.addReference('aufgaben', task, {\n      addToBeginning: params.addToBeginning\n    })\n  }\n\n  minColumnWidth(preferedWidth) {\n    if (locals.view === 'card--wide') { \n      return '1fr'\n    }\n\n    if (preferedWidth) {\n      return preferedWidth\n    }\n\n    return 'max-content'\n  }\n\n  get maxColumnWidth() {\n    if (Aeppic.Device === 'Phone' || locals.view === 'card--wide') {\n      return '1fr'\n    }\n\n    return '30rem'\n  }\n\n  toolbarEvent(eventType) {\n    if (eventType === 'save') {\n      $refs.form.save()\n      $refs.form.resetEdits()\n\n      return\n    }\n    if (eventType === 'reset') {\n      $refs.form.resetEdits()\n\n      return\n    }\n\n    if (eventType === 'view_details_true') {\n      locals.showDetails = true\n      return\n    }\n    if (eventType === 'view_details_false') {\n      locals.showDetails = false\n      return\n    }\n    if (eventType === 'view_done_true') {\n      locals.showDoneProjects = true\n      return\n    }\n    if (eventType === 'view_done_false') {\n      locals.showDoneProjects = false\n      return\n    }\n  }\n}\n","css":"._CSS {\n  overflow: hidden !important;\n}\n\n._CSS-body-container {\n  padding: var(--bp-page-content-padding);\n  overflow: scroll;\n  height: 100%;\n}\n._CSS-body {\n  max-width: var(--ae-page-max-width);\n  margin: auto;\n}\n\n._CSS-header {\n  color: gray;\n  font-size: 0.9em;\n  font-weight: bold;\n}\n\n._CSS-header ~ ._CSS-header {\n  margin-top: 3em;\n}\n\n._CSS-header ~ * {\n  margin-top: 1em;\n}\n\n._CSS-new-tasks-container {\n  max-width: 600px;\n}\n\n._CSS-new-tasks {\n  display: flex;\n  flex-wrap: wrap;\n}\n\n._CSS-new-tasks__input {\n  flex: 1;\n}\n\n._CSS-button {\n  padding: 4px 8px;\n  margin: 8px 0; \n  display: flex;\n  justify-content: center;\n  align-items: center;\n  border-radius: 2px;\n  border: 1px solid hsl(0, 0%, 76%);\n  background: white;\n  color: hsl(0, 0%, 34%);\n  height: 28px;\n  cursor: pointer;\n}\n\n","name":"page.old","packages":[],"template":"<div class=\"_CSS-body-container\" @toolbar=\"controller.toolbarEvent($event.detail)\">\n  <div class=\"_CSS-body\">\n      <ae-list \n        query-id=\"cb73486b-3c55-4cc7-b0d8-343045721940\"\n        list-id=\"2dab232c-2c8a-4aa4-b3f9-6023a7116161\"\n        :param-by=\"locals.by\"\n        :param-asc=\"locals.asc\"\n        :filter=\"controller.statusToFilter\"\n        :root-document-id=\"document.id\"\n        @selected=\"Aeppic.navigateTo($event.id)\"\n        :param-min-column-width=\"controller.minColumnWidth('30rem')\"\n        :param-max-column-width=\"controller.maxColumnWidth\"\n        param-title=\"Teilprojekte\"\n        :param-hide-empty=\"true\"\n        param-design=\"card--wide,card\"\n        :param-design-params=\"{ forceShowDetails: locals.showProjectDetails }\"\n        :sort=\"locals.sort\"\n        ></ae-list>\n\n      <ae-list \n        v-if=\"locals.showDoneProjects\"\n        query-id=\"1452da1d-76cf-4b00-b110-b6915ee2ff36\"\n        list-id=\"2dab232c-2c8a-4aa4-b3f9-6023a7116161\"\n        :root-document-id=\"document.id\"\n        @selected=\"Aeppic.navigateTo($event.id)\"\n        :param-min-column-width=\"controller.minColumnWidth('30rem')\"\n        :param-max-column-width=\"controller.maxColumnWidth\"\n        param-title=\"Erledigte Teilprojekte\"\n        param-design=\"card--wide,card\"\n        :param-design-params=\"{ forceShowDetails: locals.showProjectDetails }\"\n        :sort=\"locals.sort\"\n        ></ae-list>\n\n\n  <div class=\"_CSS-new-tasks-container\">\n    <div v-if=\"locals.tasksRequest\" class=\"_CSS-new-tasks\"> \n      <ae-form  :document=\"locals.tasksRequest\"\n                :watch=\"false\"\n                @data-changed=\"Aeppic.commit(locals.tasksRequest)\"\n                class=\"_CSS-new-tasks__input\"\n      ></ae-form>\n      <div class=\"ae-form-cell ae-control-container\">\n        <div class=\"ae-form-cell__label\">&nbsp;</div>\n        <button class=\"ae-button ae-button--secondary\" @click=\"controller.createTasksBasedOnRequest()\">\n          <span v-if=\"locals.tasksRequest.data.containsNewlines\">\n            Mehrere Aufgaben speichern\n          </span>\n          <span v-else>\n            Aufgabe speichern\n          </span>\n        </button>\n      </div>\n    </div>\n  </div>\n\n\n  <ae-form\n    ref=\"form\"\n    :document=\"document\"\n    layout-id=\"8974ef10-ff5f-4584-8299-59979915d2b6\"\n    :readonly=\"!locals.canEdit\"\n    @data-changed=\"Aeppic.commit(document)\"\n  ></ae-form>\n  </div>\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"44303cec40b3e1fa"},"id":"4e2c1df7-e887-4166-8341-a8dfd17450eb","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-07-03T11:58:41+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"17c3a5d3-90ba-4592-961b-0800873ef9c1","previous":{"v":"initial"},"stamps":[],"t":1751543921212,"v":"6b849f823254c4a8"},{"id":"abae5a7c-27c2-4b59-ab83-79d0b86abb46","v":"4995a8a351f08946","previous":{"v":"fcb38b438b834e03"},"p":"group","f":{"id":"design-form","v":"49954170df6a253b","text":"Design"},"data":{"name":"page.old","template":"<ae-form  ref=\"form\"\n          :document=\"document\" \n          :readonly=\"controller.isReadonly\"\n          :auto-save=\"params.autoSave || false\"\n          @toolbar.native=\"controller.toolbarEvent($event.detail)\"\n></ae-form>\n\n<div class=\"_CSS-container\">\n  <!-- <h3>Keys</h3>\n  <div class=\"_CSS-list\">\n    <ae-list  :search=\"'f.id:key-form AND data.groups:' + document.id\"\n              list-id=\"2dab232c-2c8a-4aa4-b3f9-6023a7116161\"\n              @selected=\"Aeppic.navigateTo($event)\"\n              param-design=\"accessible-documents,search-card\"\n    ></ae-list>\n  </div> -->\n\n<h3 v-if=\"locals.indirectGroupsMap && Object.keys(locals.indirectGroupsMap).length > 0\">Indirect group memberships</h3>\n<div  class=\"_CSS-list\">\n  <div v-for=\"(groupIdsIncludingIndirect, groupId) in locals.indirectGroupsMap\">\n    <ae-design  name=\"indirect-group,title\"\n                :document-id=\"groupId\"\n                :param-indirect-references=\"groupIdsIncludingIndirect\"\n                @click.native=\"Aeppic.navigateTo(groupId)\"\n    ></ae-design>\n  </div>\n</div>\n\n\n<h3>Alle Zugriffsrechte der Gruppe\n</h3>\n  <ae-layout v-if=\"locals.allGroupsIds\" layout-id=\"d5255c05-8040-47e5-a2e3-0e499be8579d\" :param-groups-ids=\"locals.allGroupsIds\" :param-document=\"document\"></ae-layout>\n</div>\n\n","css":"._CSS-container {\n  padding: var(--bp-page-content-padding);\n}\n._CSS-list {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(600px, 1fr));\n  grid-gap: 8px;\n}\n\n._CSS-list > * {\n  background: var(--ae-ui-card-background);\n  padding: 8px;\n}","controller":"class Controller {\n  async init() {\n    locals.isSystemManagedGroup = true\n\n    await Aeppic.nextRenderPass()\n    startEditing()\n\n    locals.indirectGroupsMap = {}\n\n    const groups = [document]\n    const indirectGroupsMap = await this._indirectGroupMemberships(groups)\n\n    for (const groupId in indirectGroupsMap) {\n      indirectGroupsMap[groupId] = [... new Set(indirectGroupsMap[groupId])]\n    }\n\n    locals.indirectGroupsMap = indirectGroupsMap\n\n    locals.allGroupsIds = [...groups.map(ref => ref.id), ...Object.keys(indirectGroupsMap)]\n    \n\n    const canEdit = await Aeppic.canEdit(document)\n    locals.canEdit = Aeppic.Account && Aeppic.Account.data.isGroupAccount === false && canEdit === true\n\n    const systemFolder = await this._getSecurityFolder()\n\n    if (systemFolder.data.securityGroup && systemFolder.data.securityGroup.id === document.id) {\n      locals.isSystemManagedGroup = true\n    } else if (systemFolder.data.trackedTimeGroup && systemFolder.data.trackedTimeGroup.id === document.id) {\n      locals.isSystemManagedGroup = true\n    } else {\n      locals.isSystemManagedGroup = false\n    }\n  }\n\n  async _getSecurityFolder() {\n    if (!document.a) {\n      return null\n    }\n\n    const securityFolder = await Aeppic.findOne(`a:${document.a[0]} AND f.id:81939b86-a48e-480e-afd1-cb2907568550`)\n    return securityFolder\n  }\n\n  toolbarEvent(eventType) {\n    if (eventType === 'save') {\n      save()\n      return\n    }\n    if (eventType === 'reset') {\n      resetEdits()\n      return\n    }\n  }\n\n  get isReadonly() {\n    if (typeof params.readonly === 'boolean') {\n      return params.readonly\n    }\n\n    return false\n  }\n\n  async _indirectGroupMemberships(groups) {\n    const indirects = {}\n    \n    for (const group of groups) {\n      const containingGroup = group.data.group.id ? await Aeppic.get(group.data.group.id) : null\n\n      if (containingGroup) {\n        if (!indirects[containingGroup.id]) {\n          indirects[containingGroup.id] = []\n        }\n\n        indirects[containingGroup.id].push(group.id)\n\n        const upperIndirectMemberships = await this._indirectGroupMemberships([containingGroup])\n\n        if (upperIndirectMemberships) {\n          for (const key in upperIndirectMemberships) {\n            if (!indirects[key]) {\n              indirects[key] = []\n            }\n\n            indirects[key].push(...upperIndirectMemberships[key])\n          }\n        }\n      }\n    }\n\n    return indirects\n  }\n}","packages":[],"description":""},"locks":[],"created":{"at":"2019-01-15T15:37:49+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2020-06-12T14:14:18+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1591971258144,"ct":1547566669333,"a_depth":5,"a":["system","b2533f7b-ea85-4680-99ed-d8e11be641b9","0e6939d6-9b93-4165-b6bd-977e4da881f3","627f5b74-3baf-45f8-a1d3-a5936839b844","group"],"a_forms":["system-folder-form","folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"d87b052b-8f8e-4ea5-b4d8-773c47fc04fe","v":"08ef12a8d3c47012","previous":{"v":"511ff206a8fda4f2"},"p":"d2ac3563-3c3f-4f02-b923-9b67abf98d10","f":{"id":"design-form","v":"49954170df6a253b","text":"Design"},"data":{"name":"page.old","template":"<div class=\"_CSS-container\" @toolbar=\"controller.toolbarEvent($event.detail)\">\n  <ae-form  ref=\"form\"\n            :document=\"document\" \n            :readonly=\"controller.isReadonly\"\n            :auto-save=\"params.autoSave || false\"\n            class=\"_CSS-form\"\n  ></ae-form>\n  \n  <ae-layout layout-id=\"2f55f820-a5fe-4b77-8808-5dcd57067416\"\n            :param-document=\"document\"\n  ></ae-layout> \n</div>\n","css":"._CSS {\n  overflow-y: scroll;\n}\n\n._CSS-container {\n  max-width: var(--ae-page-max-width);\n  margin: auto;\n  // height: 100%;\n}\n\n._CSS-form {\n  height: 100%;\n}","controller":"class Controller {\n  async init() {\n    await Aeppic.nextRenderPass()\n    await Aeppic.nextRenderPass()\n    await Aeppic.nextRenderPass()\n    startEditing()\n  }\n\n  toolbarEvent(eventType) {\n    if (eventType === 'save') {\n      save()\n      return\n    }\n    if (eventType === 'reset') {\n      resetEdits()\n      return\n    }\n  }\n\n  get isReadonly() {\n    if (typeof params.readonly === 'boolean') {\n      return params.readonly\n    }\n\n    return false\n  }\n}","packages":[{"id":"10843fbf-4f0c-416b-be7d-42d6bbd0ae68","v":"5f748569e59edddc","text":"Window"}],"description":""},"locks":[],"created":{"at":"2019-09-13T09:19:37+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2020-05-08T08:50:47+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1588927847451,"ct":1568366377779,"a_depth":4,"a":["apps","144e85c0-d7f9-4b20-8928-be30f0c78bda","8e6ee7d3-9122-4a2e-8aaf-9fb3bd204b23","d2ac3563-3c3f-4f02-b923-9b67abf98d10"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"76e9bc0a-64e0-40d8-b3b0-6e6297fdfc07","v":"45054beaa41b5190","cloneOf":{"id":"46969926-3c96-4d3d-a0ab-799633f6f120","v":"073b80784add0cd7","text":"page--left"},"originalCloneOf":{"id":"46969926-3c96-4d3d-a0ab-799633f6f120","v":"073b80784add0cd7","text":"page--left"},"previous":{"v":"4023bcf7f6cf7994"},"p":"98c77209-1245-43d6-90b5-8625183f470c","f":{"id":"design-form","v":"9bfe8e0cd909c1f0","text":"Design"},"data":{"name":"page.WIP","template":"<div class=\"_CSS-container\" ref=\"container\" @toolbar=\"controller.toolbarEvent($event.detail)\">\n  <ae-form  ref=\"form\"\n            :document=\"document\" \n            :readonly=\"controller.isReadonly\"\n            :auto-save=\"params.autoSave || false\"\n            class=\"_CSS-form\"\n            xlayout-id=\"acd83791-970f-4b6e-bebd-d7f3bca52014\"\n  ></ae-form>\n  <ae-design name=\"page__additional-content\" :document=\"document\" :param-readonly=\"controller.isReadonly\"></ae-design>\n</div>","css":"._CSS-container {\n  max-width: var(--ae-page-max-width);\n  margin: auto;\n}\n\n._CSS-form {\n  height: 100%;\n}\n","controller":"class Controller {\n  init() {\n    console.log('init')\n  }\n  toolbarEvent(eventType) {\n    console.log('toolbarevent', eventType)\n    if (eventType === 'save') {\n      $refs.form.save()\n      $refs.form.resetEdits()\n\n      return\n    }\n    if (eventType === 'reset') {\n      $refs.form.resetEdits()\n\n      return\n    }\n  }\n\n  get isReadonly() {\n    if (document.readonly === true) {\n      return true\n    }\n\n    if (typeof params.readonly === 'boolean') {\n      return params.readonly\n    }\n\n    if (document.readonly) {\n      return document.readonly\n    }\n\n    return false\n  }\n}\n\n// class Controller {\n//   async init() {\n//     // locals.ready = false\n\n//     await Aeppic.nextRenderPass()\n//     await startEditing()\n\n//     // locals.ready = true\n//     // this.restoreScrollposition()\n//   }\n\n//   toolbarEvent(eventType) {\n//     console.log('toolbar', eventType, Aeppic.isEditableDocument(document), document.hasRevisions)\n//     if (eventType === 'save') {\n//       if (Aeppic.isEditableDocument(document) && document.hasRevisions) {\n//         save()\n//         resetEdits()\n//       }\n\n//       return\n//     }\n//     if (eventType === 'reset') {\n//       if (Aeppic.isEditableDocument(document) && document.hasRevisions) {\n//         resetEdits()\n//       }\n\n//       return\n//     }\n//   }\n\n//   get isReadonly() {\n//     if (typeof params.readonly === 'boolean') {\n//       return params.readonly\n//     }\n\n//     return false\n//   }\n// }","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-07-05T14:21:38+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2021-07-05T14:25:01+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1625495101211,"ct":1625494898462,"a_depth":4,"a":["apps","94a64d89-d204-4918-b147-d717914fb03e","f254ce25-42f1-4333-8ee7-23554bf746c1","98c77209-1245-43d6-90b5-8625183f470c"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"2a515cdd-e302-448d-a6fb-94ccfa6263c8","v":"f5762495e3f5b1d5","previous":{"v":"5bc1ec148e24d6b3"},"p":"2e3b1651-047d-47c3-841b-6f098b7bf0ff","f":{"id":"design-form","v":"e3fe9ece11aabc5e","text":"Design"},"data":{"name":"paperclip","applies":"","template":"<div style=\"margin-right:10px;position:relative\">\n  <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M13.514 2.444l-10.815 10.785c-.449.449-.678 1.074-.625 1.707l.393 4.696c.041.479.422.86.9.9l4.697.394c.633.053 1.258-.177 1.707-.626l11.875-11.844c.196-.196.195-.512 0-.707l-3.536-3.536c-.195-.195-.511-.196-.707 0l-8.878 8.848c-.162.162-.253.382-.253.611v.725c0 .184.148.332.332.332h.725c.229 0 .448-.092.61-.254l7.11-7.08 1.415 1.415-7.386 7.354c-.375.375-.885.586-1.414.586h-2.414c-.555 0-1-.448-1-1v-2.414c0-.53.211-1.039.586-1.414l9.506-9.477c.781-.781 2.049-.781 2.829-.001l4.243 4.243c.391.391.586.902.586 1.414 0 .512-.196 1.025-.587 1.416l-12.35 12.319c-.748.747-1.76 1.164-2.81 1.164-.257 0-6.243-.467-6.499-.487-.664-.052-1.212-.574-1.268-1.267-.019-.242-.486-6.246-.486-6.499 0-1.05.416-2.062 1.164-2.811l10.936-10.936 1.414 1.444z\"/></svg>\n  <span class=\"_CSS__circle\">{{params.numberOfDocuments || 0}}</span>\n</div>","css":"._CSS__circle {\n    border-radius: 50%;\n    behavior: url(PIE.htc); /* remove if you don't care about IE8 */\n\n    width: 16px;\n    height: 16px;\n    padding: 2px;\n\n    background: #fff;\n    border: 2px solid #666;\n    color: #666;\n    text-align: center;\n    position:absolute;\n    right:-4px;\n    bottom:-4px;\n\n    font: 8px Arial, sans-serif;\n}","controller":"","packages":[]},"locks":[],"lockRefs":[],"created":{"at":"2017-12-01T13:26:19+01:00","by":"","from":"","client":"3491fa68-c1c3-4c5a-ad75-8e06d68192fd"},"modified":{"at":"2017-12-01T13:40:07+01:00","by":"","from":"","client":"3491fa68-c1c3-4c5a-ad75-8e06d68192fd"},"t":1512132007419,"ct":1512131169790,"a_depth":4,"a":["apps","5acfd7a2-33e4-498a-9150-71e1ab772bfc","20c92864-6a81-4006-96f9-b78f473cd129","2e3b1651-047d-47c3-841b-6f098b7bf0ff"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"ab7c4a14-9a6a-4edf-acf0-f446d879aa71","v":"7dee50e39bb00159","previous":{"v":"24456a5794b25b97"},"p":"6157a32a-a989-4798-94d5-2674b1675919","f":{"id":"design-form","v":"e3fe9ece11aabc5e","text":"Design"},"data":{"name":"paperclip--small","applies":"","template":"<div class=\"_CSS-clip\">\n  <svg :class=\"{ '_CSS-clip--none': data.anhaenge.length === 0}\" xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\"><path d=\"M13.514 2.444l-10.815 10.785c-.449.449-.678 1.074-.625 1.707l.393 4.696c.041.479.422.86.9.9l4.697.394c.633.053 1.258-.177 1.707-.626l11.875-11.844c.196-.196.195-.512 0-.707l-3.536-3.536c-.195-.195-.511-.196-.707 0l-8.878 8.848c-.162.162-.253.382-.253.611v.725c0 .184.148.332.332.332h.725c.229 0 .448-.092.61-.254l7.11-7.08 1.415 1.415-7.386 7.354c-.375.375-.885.586-1.414.586h-2.414c-.555 0-1-.448-1-1v-2.414c0-.53.211-1.039.586-1.414l9.506-9.477c.781-.781 2.049-.781 2.829-.001l4.243 4.243c.391.391.586.902.586 1.414 0 .512-.196 1.025-.587 1.416l-12.35 12.319c-.748.747-1.76 1.164-2.81 1.164-.257 0-6.243-.467-6.499-.487-.664-.052-1.212-.574-1.268-1.267-.019-.242-.486-6.246-.486-6.499 0-1.05.416-2.062 1.164-2.811l10.936-10.936 1.414 1.444z\"/></svg>\n  <span class=\"_CSS-circle\">{{ data.anhaenge.length || 0 }}</span>\n</div>","css":"._CSS-clip {\n  width: 26px;\n  height: 26px;\n  /* margin-right: 6px */\n  position:relative;\n}\n\n._CSS-clip--none {\n  opacity: 0.5;\n}\n\n._CSS-circle {\n    border-radius: 50%;\n    behavior: url(PIE.htc); /* remove if you don't care about IE8 */\n\n    width: 16px;\n    height: 16px;\n    padding: 2px;\n\n    background: #fff;\n    border: 2px solid #666;\n    color: #666;\n    text-align: center;\n    position:absolute;\n    right:0px;\n    bottom:0px;\n\n    font: 8px Arial, sans-serif;\n}\n\n","controller":"","packages":[]},"locks":[],"lockRefs":[],"created":{"at":"2018-01-02T16:54:11+01:00","by":"","from":"","client":"10aec5d0-ab44-4919-bcac-e689ab165dae"},"modified":{"at":"2018-01-10T15:50:53+01:00","by":"","from":"","client":"server"},"t":1515595853274,"ct":1514908446308,"a_depth":4,"a":["apps","aed1ba1c-9095-4aca-8176-74a37325f0e5","58cc45fb-3fb3-45e8-b61d-4b89899e357a","6157a32a-a989-4798-94d5-2674b1675919"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"43d177fd-e206-4b23-8d34-5c816ca10a5f","v":"initial","p":"544d11b1-a156-4568-aeb3-2a60b2b57807","f":{"id":"design-form","v":"0061789efb5c5c29","text":"Design"},"data":{"name":"path","template":"","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-01-14T15:08:01+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-01-14T15:08:01+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1610636881240,"ct":1610636881239,"a_depth":4,"a":["apps","599db2de-4e07-4722-98bd-7f42d498b352","79718664-ed22-4b52-9c10-037881df3578","544d11b1-a156-4568-aeb3-2a60b2b57807"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"7d9b6c2f-37b1-401c-9e3e-3a55ddb23b0b","v":"initial","p":"65abdd36-c20f-4742-8744-3995211cdd2f","f":{"id":"design-form","v":"0061789efb5c5c29","text":"Design"},"data":{"name":"path","template":"","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-01-14T15:07:44+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-01-14T15:07:44+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1610636864423,"ct":1610636864422,"a_depth":4,"a":["apps","599db2de-4e07-4722-98bd-7f42d498b352","79718664-ed22-4b52-9c10-037881df3578","65abdd36-c20f-4742-8744-3995211cdd2f"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"ae25f6e7-b739-4ba4-9b6f-98f922f72a98","v":"c0a9cd2fed87d750","p":"fallback-designs","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"path","template":"<template v-for=\"(ancestor, index) in document.a\"\n          v-if=\"(index !== 0 || params.fullPath) && document.a_forms[index] !== 'account'\"\n>\n  <a v-if=\"!!$listeners.selected\" class=\"ae-navigatable\" @click.stop=\"$emit('selected', ancestor)\">\n    <span v-if=\"index === 1 && params.fullPath\">&nbsp;/&nbsp;</span>\n    <span v-if=\"index >= 2\">&nbsp;/&nbsp;</span>\n    <ae-design :document-id=\"ancestor\" name=\"title\" style=\"display: inline-block; height: 100%;\" :param-prefer-name=\"params.preferName\"></ae-design>\n  </a>\n  <a v-else>\n    <span v-if=\"index === 1 && params.fullPath\">&nbsp;/&nbsp;</span>\n    <span v-if=\"index >= 2\">&nbsp;/&nbsp;</span>\n    <ae-design :document-id=\"ancestor\" name=\"title\" style=\"display: inline-block; height: 100%;\" :param-prefer-name=\"params.preferName\"></ae-design>\n  </a>\n</template>\n\n\n\n<!-- <nav v-if=\"!params.hidePath && locals.ancestors\">\n    <button class=\"bp-button bp-button--transparent _CSS-title__nav-link\"\n            :class=\"{ '_CSS-title__nav-link--hover': locals.hovering === ancestor.id }\"\n            v-for=\"ancestor of locals.ancestors\"\n            v-if=\"ancestor\"\n            @click.stop=\"Aeppic.navigateTo(ancestor.id)\">\n      <ae-design  v-if=\"ancestor.a.length\"\n                  name=\"title\"\n                  :document=\"ancestor\"\n                  :watch=\"false\"\n                  v-dragover\n                  @dnd-dragover--before.native=\"locals.hovering = ancestor.id\"\n                  @dnd-dragover--after.native=\"locals.hovering = ancestor.id\"\n                  v-drag-group-acceptable=\"['file', 'folder']\"\n                  v-dragleave\n                  @dnd-dragleave.native=\"locals.hovering = ''\"\n                  v-on-drop=\"(documentId) => Aeppic.move(documentId, ancestor.id)\">\n      </ae-design>\n      <ae-design v-else name=\"title\" :document=\"ancestor\" :watch=\"false\"></ae-design>\n    </button>\n  </nav> -->","css":"._CSS {\n  display: flex;\n  align-items: flex-start;\n}\n\n._CSS > a {\n  display: flex;\n}","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2017-11-15T17:14:07+01:00","by":"","from":"","client":"e5395b1c-23e6-44a7-9348-089b9c1820ef"},"modified":{"at":"2023-10-11T07:23:05+00:00","by":"anonymous","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720684627134,"ct":1720684627134,"a_depth":2,"a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"],"inheritedLocks":[null,null,null],"stamps":[],"previous":{"v":"5b2acb1af64cf6ef","f":{"id":"design-form","v":"9bfe8e0cd909c1f0","text":"Design"}},"meta":{"modified":{"at":"2024-07-11T09:57:07+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"c5c78e38-5abb-473d-8c26-0c2fb4e1c1de","v":"initial","p":"4aed43d5-124f-47e7-9600-8a6e70ed59ab","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"path","template":"","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-10-26T11:33:52+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-10-26T11:33:52+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1635248032881,"ct":1635248032881,"a_depth":4,"a":["apps","77ee8815-2c3a-4bb5-abd9-90541a545a24","b42e5a69-6cf0-4b55-928a-755011005b5a","4aed43d5-124f-47e7-9600-8a6e70ed59ab"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"e07f6054-3528-4691-8fcd-b253652be064","v":"initial","p":"d4a62ddc-8f9c-4c88-89b3-2ab43babb8b7","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"path","template":"","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-10-26T11:33:43+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-10-26T11:33:43+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1635248023957,"ct":1635248023956,"a_depth":4,"a":["apps","77ee8815-2c3a-4bb5-abd9-90541a545a24","b42e5a69-6cf0-4b55-928a-755011005b5a","d4a62ddc-8f9c-4c88-89b3-2ab43babb8b7"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","c211ffaa-14f8-4439-9126-f42f65ac4424"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2022-03-08T12:54:58+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1649233215574,"data":{"aliases":[],"controller":"","css":"","description":"","name":"performance-review","packages":[],"template":"<div class=\"min-h-screen\">\n  <section class=\"flex flex-col gap-2\">\n    <div class=\"flex justify-end\">\n      <ae-layout layout-id=\"aac11114-46bb-4f29-a280-51d889a8aaca\"\n                  :param-document=\"document\"></ae-layout>\n\n    </div>\n    <div class=\"bg-white p-2 border rounded-lg\">\n      Beginn der Wartung: {{ Aeppic.DateTime.fromISO(document.created.at).toLocaleString(Aeppic.DateTime.DATETIME_SHORT) }}\n    </div>\n    <ae-design name=\"card\" :document-id=\"data.firma.id\" :param-no-commands=\"true\"></ae-design>\n    <ae-design name=\"card\" :document-id=\"data.objekt.id\" :param-no-commands=\"true\"></ae-design>\n    \n  </section>\n\n  <section class=\"mt-6 bg-white p-2 border rounded-lg flex gap-2 items-center\">\n    <ae-icon class=\"fa fa-info-circle\"></ae-icon>\n    <div>\n      Die Kenntnisnahme einer Wartung ändert den Status auf <span class=\"font-bold\">beendet</span>.\n      Anschließend kann eine erneute Wartung durch diese Firma durchgeführt werden. \n    </div>\n  </section>\n\n  <section class=\"mt-6 bg-white p-2 border rounded-lg\">\n    <ae-design name=\"anlagen-review\" :document=\"document\"></ae-design>\n  </section>\n</div> "},"f":{"id":"design-form","text":"Design","v":"c2d9ae57c7a46896"},"id":"7b60760b-6e80-4617-826a-597e7473e41f","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-08-07T14:06:21+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"c211ffaa-14f8-4439-9126-f42f65ac4424","previous":{"v":"3ba235446a9e987b"},"stamps":[],"t":1754575581574,"v":"c5a549d96cec411a"},{"id":"b1de2866-87aa-4b8a-91bd-840823fa368a","v":"8539d55bef56711a","p":"fallback-designs","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"personalverwaltung:files-as-buttons-with-preview","template":"<div class=\"_CSS-attachments\">\n  <template v-for=\"attachment of controller.attachments\">\n    <button :title=\"attachment.text\" class=\"ae-button\" @click.stop=\"controller.showAttachment(attachment.id)\">\n      <ae-icon class=\"fa fa-file-alt\" aria-hidden=\"true\"></ae-icon>\n    </button>\n  </template>\n\n  <template v-if=\"locals.previewDocument\">\n      <ae-layout\n    ref=\"preview\"\n    layout-id=\"bbd6d99f-571d-422f-a2bc-15d3f8ecfae8\"\n    :param-field-name=\"controller.fieldName\"\n    :param-document=\"locals.previewDocument\"></ae-layout>\n  </template>\n</div>\n\n","css":"._CSS-dialog-header {\n  flex: 1;\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n\n  overflow: hidden;\n}\n\n._CSS-dialog__body {\n  outline: none;\n  margin: 0 !important;\n  flex: 1;\n  display: flex;\n}\n\n._CSS-attachments {\n  display: flex;\n  overflow: hidden;\n}\n","controller":"get fieldName() {\n  return 'datei'\n}\n\nget attachments () {\n  const field = data[this.fieldName]\n\n  if (!field) {\n    return []\n  }\n\n  if (Array.isArray(field)) {\n    return field\n  }\n\n  return [document]\n}\n\nasync showAttachment(attachmentId) {\n  locals.previewDocument = await Aeppic.get(attachmentId)\n\n  await Aeppic.waitForNextAnimationFrame()\n  await Aeppic.waitForNextAnimationFrame()\n\n  $refs.preview.$emit('show')\n}","packages":[],"aliases":[],"description":"(should be) same as Apps/Medikamentenverzeichnis/fullscreen-button"},"locks":[],"created":{"at":"2020-05-08T09:00:44+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2020-06-30T09:30:13+00:00","by":"8e6c22aa-8c69-4ff8-919a-7032841cf636","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720684627134,"ct":1720684627134,"a_depth":2,"a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"],"inheritedLocks":[null,null,null],"stamps":[],"previous":{"v":"ebbe147672d15c74","f":{"id":"design-form","v":"9bfe8e0cd909c1f0","text":"Design"}},"meta":{"modified":{"at":"2024-07-11T09:57:07+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"9d2c5667-362b-4644-ab23-4fd3e6f929da","v":"initial","p":"33b4d43f-ca46-46f7-98b6-0a077372188c","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"photos","template":"<img v-if=\"locals.photo\" @mouseover=\"locals.preview = true\" class=\"_CSS-preview\" height=\"48px\" :src=\"Aeppic.Content.getThumbnailSrc(locals.photo, locals.photoField || 'picture')\">\r\n<!-- <ae-icon v-else style=\"opacity:0.25\" class=\"fa fa-2x fa-image\"></ae-icon> -->\r\n<img v-if=\"locals.photo && locals.preview\"  @mouseleave=\"locals.preview = false\" class=\"_CSS-preview-hover\" height=\"256px\" :src=\"Aeppic.Content.getThumbnailSrc(locals.photo, locals.photoField || 'picture')\">\r\n<template v-if=\"document.data.isSingleItemComponent\">\r\n</template> ","css":"._CSS {\r\n  text-align: center;\r\n}\r\n\r\n._CSS-preview-hover {\r\n  position:absolute;\r\n  z-index:100;\r\n  border: 1px solid var(--ae-border-color);\r\n  border-radius: 4px;\r\n  box-shadow: 2px 2px 12px rgba(0,0,0,0.2)\r\n}","controller":"async init() {\r\n  locals.preview = false\r\n\r\n  const componentPhoto = await Aeppic.get(document.data.photos[0])\r\n\r\n  if (componentPhoto) {\r\n    locals.photo = componentPhoto\r\n    locals.item = componentPhoto\r\n    locals.photoField = 'picture'\r\n  } else if (document.data.isSingleItemComponent) {\r\n    const itemRef = document.data.item.id ? document.data.item : document.data.items[0]\r\n    const item = await Aeppic.get(itemRef)\r\n    locals.photo = item  \r\n    locals.photoField = 'photo'  \r\n  }\r\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-11-02T09:38:40+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-11-02T09:38:40+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1635845920039,"ct":1635845920039,"a_depth":4,"a":["apps","781ff5de-69db-49dc-99f0-f328b308cd7d","dbd0bd68-3479-4032-9303-9d51615c27a7","33b4d43f-ca46-46f7-98b6-0a077372188c"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"135bf89f-e3d4-4ac8-8251-e4b53e7561f7","v":"37018e2d3f355997","cloneOf":{"id":"3b89f76d-4929-41b5-8bfe-ae18baa6539e","v":"db099da1e8729201","text":"ping"},"originalCloneOf":{"id":"3b89f76d-4929-41b5-8bfe-ae18baa6539e","v":"db099da1e8729201","text":"ping"},"previous":{"v":"5be9624994f81f2b"},"p":"ddaa6921-770e-4a73-b8a4-b4a99abed24b","f":{"id":"design-form","v":"0061789efb5c5c29","text":"Design"},"data":{"name":"ping","template":"<div class=\"bp-card bp-card--bordered _CSS-card\">\n  <div class=\"_CSS-card__content\">\n    <template v-if=\"!data.content.startsWith('translate:')\">\n    {{ data.content }}\n    </template>\n    <i v-else>\n      Kein Text\n    </i>\n  </div>\n  <div class=\"_CSS-card__date\">\n    {{ Aeppic.DateTime.fromISO(document.created.at).toLocaleString(Aeppic.DateTime.DATETIME_SHORT) }}\n  </div>\n      \n</div>\n","css":"._CSS {\n  width: 100%;\n}\n\n._CSS-card {\n  margin-left: auto;\n  width: 80%;\n  display: flex;\n  justify-content: space-between;\n  flex-wrap: wrap;\n}","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-08-28T08:12:12+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-01-11T09:49:51+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1610358591931,"ct":1598602332916,"a_depth":4,"a":["apps","c9b12874-99d0-40e8-86cc-c3fe0477a15a","9b5518e5-c3ea-4446-9dc8-8628d8e8fabe","ddaa6921-770e-4a73-b8a4-b4a99abed24b"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"3b89f76d-4929-41b5-8bfe-ae18baa6539e","v":"0a085bdda5a70ddb","previous":{"v":"08653a24cb90900c"},"p":"6d164aff-df9b-470d-9632-cfb6f5892509","f":{"id":"design-form","v":"0061789efb5c5c29","text":"Design"},"data":{"name":"ping","template":"<div class=\"bp-card bp-card--bordered _CSS-card\">\n  <div class=\"_CSS-card__content\">\n    <template v-if=\"!data.content.startsWith('translate:')\">\n    {{ data.content }}\n    </template>\n    <i v-else>\n      Kein Text\n    </i>\n  </div>\n  <div class=\"_CSS-card__date\">\n    {{ Aeppic.DateTime.fromISO(document.created.at).toLocaleString(Aeppic.DateTime.DATETIME_SHORT) }}\n  </div>\n      \n</div>\n","css":"._CSS {\n  width: 100%;\n}\n\n._CSS-card {\n  background: var(--ae-background-100);\n  width: 80%;\n  display: flex;\n  justify-content: space-between;\n  flex-wrap: wrap;\n}","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-08-27T14:42:46+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-01-11T09:49:56+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1610358596387,"ct":1598539366237,"a_depth":4,"a":["apps","c9b12874-99d0-40e8-86cc-c3fe0477a15a","9b5518e5-c3ea-4446-9dc8-8628d8e8fabe","6d164aff-df9b-470d-9632-cfb6f5892509"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"4b2ee98f-629d-412a-b702-51a1fbe08782","v":"89730f5c490f2b43","cloneOf":{"id":"cd366f29-4b76-4e9d-aef2-b0370e7a1ce6","v":"0c3b531523e3804e","text":"wartung"},"originalCloneOf":{"id":"cd366f29-4b76-4e9d-aef2-b0370e7a1ce6","v":"0c3b531523e3804e","text":"wartung"},"previous":{"v":"initial"},"p":"d7f0c56d-8e0e-4607-911b-b0789c557d40","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"plan","template":"<ae-design v-if=\"locals.plan\" :name=\"params.design || 'title'\" :document=\"locals.plan\"></ae-design>","css":"","controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Wartungsplan: '522ca40d-810b-4021-835f-beeace3af7fa'\n    }\n\n    locals.plan = null\n    locals.plan = await Aeppic.get(document.a[document.a_forms.findIndex(aForm => aForm === this.FORMS.Wartungsplan)])\n  }\n} ","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-09-05T13:40:38+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-09-05T13:41:10+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1662385270564,"ct":1662385238280,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","d7f0c56d-8e0e-4607-911b-b0789c557d40"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"b222494b-f630-46d0-991a-8b3f127cc969","v":"ac5eb78312b2892e","previous":{"v":"initial"},"p":"c211ffaa-14f8-4439-9126-f42f65ac4424","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"plan","template":"<ae-design v-if=\"locals.plan\" :name=\"params.design || 'title'\" :document=\"locals.plan\"></ae-design>","css":"","controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Wartungsplan: '522ca40d-810b-4021-835f-beeace3af7fa'\n    }\n\n    locals.plan = null\n\n    locals.plan = await Aeppic.findOne(`p:${document.id} f.id:${this.FORMS.Wartungsplan}`)\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-09-05T13:30:46+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-09-05T13:31:52+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1662384712295,"ct":1662384646060,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","c211ffaa-14f8-4439-9126-f42f65ac4424"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"7d75460f-0505-4432-87ff-4ef3de03f4df","v":"e3d446637fdf6e67","previous":{"v":"initial"},"p":"aabed4ee-20ca-4df4-9a78-75a05e97dce9","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"playback","applies":"","template":"<ae-control name=\"file-viewer\"\n            class=\"_CSS-file-viewer\"\n            :document=\"document\"\n            field-name=\"datei\"\n            :readonly=\"!controller.isCompanyUser\"\n            :param-show-rotate=\"true\"\n            :param-preview-format=\"params.previewFormat\"\n></ae-control>","css":"._CSS {\n  flex: 1;\n  display: flex;\n}\n\n._CSS-file-viewer {\n  flex: 1;\n}","controller":"class Controller {\n  init() {\n    setTimeout(() => startEditing(), 0)\n\n    this.watchChangesAndSaveThem()\n  }\n\n  watchChangesAndSaveThem() {\n    if (!this.isCompanyUser) {\n      return\n    }\n\n\n    Aeppic.watchRevisions(document.id, (changedDocument, reason) => {\n      if (!reason.updated) {\n        return\n      }\n\n      Aeppic.save(changedDocument)\n    })\n  }\n\n  get isCompanyUser() {\n    return Aeppic.Account && Aeppic.Account.a_forms.includes('1ec5237d-463a-417f-8dac-5bbbbc2e35b7')\n  }\n}","packages":[]},"locks":[],"created":{"at":"2018-05-25T10:46:53+00:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","from":"","client":"server"},"modified":{"at":"2020-10-13T10:11:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1602583892070,"ct":1527245213637,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","aabed4ee-20ca-4df4-9a78-75a05e97dce9"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"6122fa5f-58f1-406a-842b-0b73e198ee78","v":"initial","p":"9715b20a-382c-4a81-b854-caf0e6656f74","f":{"id":"design-form","v":"49954170df6a253b","text":"Design"},"data":{"name":"popup","template":"<div>{{data.label}}</div>\r\n\r\n<div v-if=\"data.statAufnahme\">\r\n  <ae-icon class=\"fa fa-calendar-alt\"></ae-icon>\r\n  <span>{{DateTime.fromISO(data.statAufnahme).toLocaleString(DateTime.DATETIME_MED)}}</span>\r\n</div>\r\n\r\n<div v-if=\"data.patientBestaetigt\">\r\n  <ae-icon class=\"fa fa-check\"></ae-icon>\r\n  <span>Patient hat Termin bestätigt</span>\r\n</div>\r\n\r\n\r\n<div v-if=\"data.bestaetigt\">\r\n  <ae-icon class=\"fa fa-check\"></ae-icon>\r\n  <span>Team hat Termin bestätigt</span>\r\n</div>","css":"._CSS {\r\n  padding: 4px;\r\n}","controller":"","packages":[],"description":""},"locks":[],"created":{"at":"2019-01-31T15:37:38+00:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2019-01-31T15:37:38+00:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1548949058672,"ct":1548949058593,"a_depth":4,"a":["apps","d10eebac-6285-4412-8451-55d1bf2fc849","df40153d-10cf-4b01-b94f-589eabd75696","9715b20a-382c-4a81-b854-caf0e6656f74"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"0721560b-ac41-4bed-ac5e-626cc1ea5cc1","v":"4e928c21996bac0a","previous":{"v":"681bf1bd9b1b5e36"},"p":"3d456c38-6282-416e-8c5e-7d20b0517a6e","f":{"id":"design-form","v":"49954170df6a253b","text":"Design"},"data":{"name":"popup-info","template":"<div class=\"_CSS-container bp-card\">\n  <ae-design name=\"ref-card\" :document=\"document\" :param-hide-overdue=\"true\" :param-readonly=\"true\"></ae-design>\n  <div class=\"_CSS-path\" v-if=\"!params.hidePath || !params.hidePath && (params.searchParent !== document.p)\">\n    <ae-design :document=\"document\" name=\"path\" :param-full-path=\"params.fullPath\"></ae-design>\n  </div>\n</div>","css":"._CSS ._CSS-container {\n  display: flex;\n  flex-flow: column;\n  padding: 4px;\n  align-items: stretch;\n}\n\n._CSS-path {\n  font-size: var(--ae-font-size-2);\n  color: var(--ae-background-700);\n}","controller":"","packages":[],"description":""},"locks":[],"created":{"at":"2019-02-08T12:36:34+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2021-09-01T13:11:33+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1630501893242,"ct":1549629394144,"a_depth":4,"a":["apps","5acfd7a2-33e4-498a-9150-71e1ab772bfc","20c92864-6a81-4006-96f9-b78f473cd129","3d456c38-6282-416e-8c5e-7d20b0517a6e"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"b3df8fb8-e508-480f-b487-41480f899545","v":"d19a73c4df7cb44b","previous":{"v":"e7d6643a50cbadfc"},"p":"9d799d7e-fac8-40dc-aab4-bce2055c3c0c","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"preview","applies":"","template":"<div class=\"_CSS-modes\" v-if=\"!params.fieldName\">\n  <button @click=\"locals.mode = 'html'\" class=\"bp-button bp-button--raised\" :class=\"{ '_CSS-button--active': locals.mode === 'html' }\">\n    <ae-icon class=\"fab fa-html5\"></ae-icon> HTML\n  </button>\n  <button @click=\"locals.mode = 'text'\" class=\"bp-button bp-button--raised\" :class=\"{ '_CSS-button--active': locals.mode === 'text' }\">\n    <ae-icon class=\"fa fa-font\"></ae-icon> Text\n  </button>\n</div>\n<iframe v-if=\"locals.mode === 'html'\" class=\"_CSS-html\" :srcdoc=\"controller.emailAsHtml\"></iframe>\n<div v-else class=\"_CSS-text\">\n  {{ controller.emailAsText }}\n</div>","css":"._CSS {\n  flex: 1;\n  display: flex;\n  flex-flow: column;\n}\n\n._CSS-html {\n  flex: 1;\n  border: none;\n}\n\n._CSS-text {\n  background: white;\n  white-space: pre-line;\n  flex: 1;\n}\n\n._CSS-modes {\n  display: flex;\n  padding: 0.5rem 1rem;\n}\n\n._CSS-button--active {\n  background: blue;\n}","controller":"class Controller {\n  init() {\n    locals.mode = params.fieldName || 'html'\n\n    Aeppic.nextRenderPass(() => {\n      startEditing()\n    })\n  }\n\n  get viewDataWithWarnings () {\n    const target = params.viewData || {}\n\n    if(!params.warn) {\n      return target\n    }\n\n    const handler = {\n      get: (obj, key) => {\n        if (typeof obj[key] !== 'undefined') {\n          return obj[key]\n        }\n        return `{{ ${key} }}`\n      }\n    }\n    return new Proxy(target, handler) \n  }\n\n  get emailAsHtml() {\n    return packages.Mustache.render(data.html, this.viewDataWithWarnings)\n  }\n\n  get emailAsText() {\n    return packages.Mustache.render(data.text, this.viewDataWithWarnings)\n  }\n}\n ","packages":[{"id":"69e255be-64e3-4699-80e0-9eb71c16226f","v":"12f02f16aef7785d","text":"Mustache"}]},"locks":[],"created":{"at":"2018-06-07T11:23:35+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2019-04-12T14:13:53+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1555078433290,"ct":1528370615200,"a_depth":5,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","1116d922-d8df-4da5-a7c2-70191d07d929","5cdd2d20-7676-43e3-8997-e176dd3434ed","9d799d7e-fac8-40dc-aab4-bce2055c3c0c"],"a_forms":["folder","application-form","folder","form-folder","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"ad859be0-b3f3-4355-974e-18864904254b","v":"initial","p":"5931d734-987a-483f-b948-b1b31dedae74","f":{"id":"design-form","v":"3385ac6766f32638","text":"Design"},"data":{"name":"price","template":"<div  v-if=\"data.initialPrice\">\r\n{{controller.price}}\r\n</div>\r\n<span class=\"_CSS-unknown\"  v-else>\r\n  ~\r\n</span>","css":"._CSS {\r\n  max-width:6em;\r\n  text-align:right;\r\n  padding-right:1em\r\n}\r\n\r\n._CSS-unknown {\r\n  opacity: 0.4;\r\n}","controller":"init() {\r\n  this.numberFormat = new Intl.NumberFormat('de-DE', {\r\n    style: 'currency',\r\n    currency: 'EUR',\r\n    minimumIntegerDigits: 1,\r\n  }) \r\n}\r\n\r\nget price() {\r\n  return this.numberFormat.format(data.initialPrice / 100)\r\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-11-02T09:38:37+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-11-02T09:38:37+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1635845917678,"ct":1635845917677,"a_depth":4,"a":["apps","781ff5de-69db-49dc-99f0-f328b308cd7d","dbd0bd68-3479-4032-9303-9d51615c27a7","5931d734-987a-483f-b948-b1b31dedae74"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"152fb1e6-2ca9-4a46-9ab2-517538d8dcf8","v":"096a3b77e547a8fb","previous":{"v":"d001ed5e4d2a8efc"},"p":"7105a939-989c-4154-96e8-44f17f556b2a","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"printable-code","template":"<div class=\"flex flex-col items-center justify-center h-[99vh] relative\" style=\"page-break-after:always\">\n  <div class=\"absolute top-0 bottom-0 left-0 right-0 h-full flex flex-col items-center justify-center\">\n    <div class=\"text-lg\">\n      Mängelmeldung<br> \"<ae-design class=\"inline-flex\" name=\"title\" :document=\"document\"></ae-design>\"\n    </div>\n\n    <div v-if=\"data.mangelQrCode.dataUrl\" class=\"\">\n      <img class=\"h-[150px] w-[150px]\" :src=\"Aeppic.Content.getSrc(document, 'mangelQrCode')\">\n    </div>\n    <div v-else class=\"\">\n      <!-- <ae-icon class=\"fa fa-empty-set\"></ae-icon> -->\n      Kein QR-Code gefunden\n    </div>\n  </div>\n</div> \n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-05-04T09:24:54+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-08-23T09:10:36+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1661245836536,"ct":1651656294379,"a_depth":4,"a":["apps","86189c5a-b9f4-445a-879f-d94574960df0","15292d56-6806-4263-b6d0-9194687203e1","7105a939-989c-4154-96e8-44f17f556b2a"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"522226da-ec48-473b-8208-56fee60c58c0","v":"3c4bac3b8691e92c","previous":{"v":"e94c3a393db7927d"},"p":"account","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"profile-avatar","applies":"","template":"<ae-design :document=\"locals.profile\" name=\"avatar--tiny\"></ae-design>\n","css":"","controller":"async init() {\r\n  locals.profile = await Aeppic.getProfilePageForAccount(document)\r\n}","packages":[]},"locks":[],"created":{"at":"2018-05-23T11:46:21+02:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","from":"","client":"server"},"modified":{"at":"2018-11-23T13:11:57+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1542978717152,"ct":1527068781659,"a_depth":5,"a":["system","b2533f7b-ea85-4680-99ed-d8e11be641b9","0e6939d6-9b93-4165-b6bd-977e4da881f3","627f5b74-3baf-45f8-a1d3-a5936839b844","account"],"a_forms":["system-folder-form","folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"07b324fe-728c-4677-b114-c913b40ea933","v":"38274d1caf5a4e86","previous":{"v":"0828d3b3dc31d7a0"},"p":"account","f":{"id":"design-form","v":"5910dbdd1c0b7469","text":"Design"},"data":{"name":"profile-title","applies":"","description":"","template":"<template v-if=\"locals.profile\">\r\n  <div v-if=\"locals.profile.a.includes('apps') || locals.profile.a.includes('system')\"\r\n    class=\"italic\"\r\n  >\r\n    Bizpin\r\n  </div>\r\n  <ae-design v-else name=\"title\" :document=\"locals.profile\"></ae-design>\r\n</template>\r\n<div v-else-if=\"document.a.includes('apps') || document.a.includes('system')\" \r\nclass=\"italic\">\r\n  Bizpin\r\n</div>\r\n<template v-else>\r\n  <span v-if=\"data.label\" v-translate=\"data.label\"></span>\r\n  <span v-else>{{data.name}}</span>\r\n</template>  \r\n","css":"","controller":"async init() {\r\n  locals.profile = await Aeppic.getProfilePageForAccount(document)\r\n}","packages":[]},"locks":[],"created":{"at":"2018-11-30T10:26:11+00:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","from":"","client":"server"},"modified":{"at":"2024-03-12T10:55:55+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1710240955506,"ct":1543573571403,"a_depth":5,"a":["system","b2533f7b-ea85-4680-99ed-d8e11be641b9","0e6939d6-9b93-4165-b6bd-977e4da881f3","627f5b74-3baf-45f8-a1d3-a5936839b844","account"],"a_forms":["system-folder-form","folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"76c0979f-d126-4363-bd11-7f6d6bb8f766","v":"6805eea61ef79c57","cloneOf":{"id":"b37cc1d9-e15b-4978-b152-828d0797d9ff","v":"initial","text":"progress-line"},"originalCloneOf":{"id":"b37cc1d9-e15b-4978-b152-828d0797d9ff","v":"initial","text":"progress-line"},"previous":{"v":"ae77695018380ab0"},"p":"766c24c5-542c-4887-bf65-43ad85e6c476","f":{"id":"design-form","v":"24435d748c76f819","text":"Design"},"data":{"name":"progress-card","template":"<div class=\"bp-card bp-card--bordered _CSS-card\" @click.stop=\"$emit('selected', document)\">\r\n\t<div class=\"_CSS-card__title\">\r\n\t\t{{data.name || 'Unbenannt'}}\r\n\r\n\t\t<span class=\"_CSS-card__title-date\">\r\n      <template v-if=\"controller.date\">\r\n        {{ controller.date}}\r\n      </template>\r\n      <ae-icon v-else class=\"fa fa-infinity\"></ae-icon>\r\n    </span>\r\n\t</div>\r\n\r\n\t<div class=\"_CSS-card__progress\">\r\n    <div v-if=\"!locals.counters.all\" class=\"_CSS-progress__value\" style=\"font-style:italic;\">\r\n      Keine Aufgaben hinzugfügt\r\n    </div>\r\n\t\t<div v-else class=\"_CSS-progress\">\r\n\t\t\t<div v-if=\"locals.counters.closed\" title=\"Erledigte\" class=\"_CSS-progress__value _CSS-progress__closed\" :style=\"{ width: locals.progress.closed + '%' }\">\r\n\t\t\t\t<span>\r\n          {{ locals.counters.closed }}\r\n          </span>\r\n\t\t\t</div>\r\n\t\t\t<div v-if=\"locals.counters.open\" title=\"Offene\" class=\"_CSS-progress__value _CSS-progress__open\" :style=\"{ width: locals.progress.open + '%' }\">\r\n\t\t\t\t<span>\r\n          {{ locals.counters.open }}\r\n          </span>\r\n\t\t\t</div>\r\n\t\t\t<div v-if=\"locals.counters.overdue\" title=\"Überfällige\" class=\"_CSS-progress__value _CSS-progress__overdue\" :style=\"{ width: locals.progress.overdue + '%' }\">\r\n\t\t\t\t<span>\r\n          {{ locals.counters.overdue }}\r\n          </span>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\r\n    <ae-list v-if=\"locals.counters.all\" class=\"_CSS-tasks\" list-id=\"2e798091-303f-406b-a42a-93aa1cd8425c\" :documents=\"data.aufgaben\" :param-design-params=\"{ hidePath: true }\" sort=\"data.erledigt\" @selected=\"$emit('selected', $event)\"></ae-list>\r\n\t</div>\r\n\r\n</div>","css":"._CSS-card {\r\n  display: flex;\r\n  flex-flow: column;\r\n  align-items: stretch;\r\n}\r\n\r\n._CSS-card__title {\r\n  margin: var(--ae-size-1);\r\n  display: flex;\r\n  justify-content: space-between;\r\n}\r\n\r\n._CSS-card__title-date {\r\n  color: var(--ae-background-600);\r\n}\r\n\r\n._CSS-card:hover {\r\n  cursor: pointer;\r\n  background-color: var(--ae-background-200);\r\n}\r\n\r\n._CSS-card__progress {\r\n  flex: 1;\r\n  padding: var(--ae-size-1);\r\n\r\n  margin: var(--ae-space-3);\r\n  position:relative;\r\n  display:flex;\r\n  flex-flow: column;\r\n}\r\n\r\n\r\n._CSS-progress {\r\n  flex: 1;\r\n\r\n  display: flex;\r\n  position: relative;\r\n  border-radius: var(--ae-border-radius);\r\n  margin-bottom: 18px; /* absolutely positioned numbers need some space */\r\n}\r\n\r\n._CSS-progress__value {\r\n  height: 8px;\r\n\r\n  display: flex;\r\n  justify-content: center;\r\n}\r\n\r\n._CSS-progress__value:first-child {\r\n  border-top-left-radius: var(--ae-border-radius);\r\n  border-bottom-left-radius: var(--ae-border-radius);\r\n}\r\n._CSS-progress__value:last-child {\r\n  border-top-right-radius: var(--ae-border-radius);\r\n  border-bottom-right-radius: var(--ae-border-radius);\r\n}\r\n\r\n._CSS-progress__value > * {\r\n  padding: 7px;\r\n}\r\n\r\n._CSS-progress__overdue {\r\n  background: var(--ae-accent-red-400);\r\n}\r\n\r\n\r\n._CSS-progress__open {\r\n  background: var(--ae-background-300);\r\n  xbackground: transparent;\r\n}\r\n\r\n._CSS-progress__closed {\r\n  background: var(--ae-primary-500);\r\n  xbackground: var(--ae-accent-green-700);\r\n}\r\n\r\n._CSS-tasks {\r\n  margin: var(--ae-space-3) 0;\r\n}","controller":"class Controller {\r\n  async init() {\r\n    locals.openTasks = []\r\n    locals.closedTasks = []\r\n    locals.overdueTasks = []\r\n    locals.counters = {}\r\n    locals.progress = {}\r\n\r\n    const tasks = await Aeppic.getAll(document.data.aufgaben)\r\n \r\n    for (const task of tasks) {\r\n      if (task.data.erledigt) {\r\n        locals.closedTasks.push(task)\r\n        continue\r\n      }\r\n\r\n      if (task.data.bis) {\r\n        const isOverdue = Aeppic.DateTime.fromISO(data.bis).diffNow().as('days') <= 0\r\n\r\n        if (isOverdue) {\r\n          locals.overdueTasks.push(task)\r\n          continue\r\n        }\r\n      }\r\n\r\n      locals.openTasks.push(task)\r\n    }\r\n\r\n    locals.counters = this.getCounters()\r\n    locals.progress = this.getProgress(locals.counters)\r\n  }\r\n\r\n  getProgress(counters) {\r\n    if (!counters.all) {\r\n      return {}\r\n    }\r\n\r\n    const percentile = 100 / counters.all\r\n\r\n    const open = counters.open * percentile\r\n    const overdue = counters.overdue * percentile\r\n    const closed = counters.closed * percentile\r\n\r\n    return {\r\n      open,\r\n      closed,\r\n      overdue\r\n    }\r\n  }\r\n\r\n  getCounters() {\r\n    const all = locals.openTasks.length + locals.closedTasks.length + locals.overdueTasks.length\r\n\r\n    if (all === 0) {\r\n      return {}\r\n    }\r\n\r\n    const open = locals.openTasks.length\r\n    const overdue = locals.overdueTasks.length\r\n    const closed = locals.closedTasks.length\r\n\r\n    return {\r\n      open,\r\n      closed,\r\n      overdue,\r\n      all\r\n    }\r\n  }\r\n\r\n  get date() {\r\n    if (document.data.bis) {\r\n      return Aeppic.DateTime.fromISO(document.data.bis).toLocaleString(Aeppic.DateTime.DATE_SHORT)\r\n    }\r\n\r\n    return\r\n  }\r\n\r\n  get progressTitle() {\r\n    return ''\r\n    // return `Offen: ${locals.counters.open}. Erledigt: ${locals.counters.done} / ${locals.percentage}%`\r\n  }\r\n}\r\n\r\n\r\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-07-01T14:40:04+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2020-11-18T14:22:02+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1605709322470,"ct":1593614404787,"a_depth":4,"a":["apps","59edbdbc-2cab-426a-bb42-6e57c5158e4f","3be7e887-1bcd-4c3c-979f-b20a986c4c48","766c24c5-542c-4887-bf65-43ad85e6c476"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"8b2b9047-1fb4-4d1a-b957-f6673df58708","v":"0c31b1b01ad11159","cloneOf":{"id":"bdec7d75-f50b-4245-839e-c4121192932e","v":"129ee7719f9e9984","text":"progress-circle"},"originalCloneOf":{"id":"bdec7d75-f50b-4245-839e-c4121192932e","v":"129ee7719f9e9984","text":"progress-circle"},"previous":{"v":"d02d12a0ba32657e"},"p":"766c24c5-542c-4887-bf65-43ad85e6c476","f":{"id":"design-form","v":"24435d748c76f819","text":"Design"},"data":{"name":"progress-circle","template":"<div class=\"_CSS-milestone ae-navigatable\" @click.stop=\"$emit('selected', document)\">\r\n    <div class=\"_CSS-milestone-details\">\r\n      <div class=\"_CSS-milestone-details-title\">\r\n        <ae-design v-if=\"data.name\" name=\"title\" :document=\"document\"></ae-design> \r\n        <div v-else>Unbenannt</div>\r\n      </div>\r\n      <div class=\"_CSS-milestone-details-date\">\r\n        {{controller.date || 'Unbefristet'}}\r\n      </div>\r\n    </div>\r\n    <div\r\n    class=\"_CSS-milestone-circle\"\r\n    :class=\"['_CSS-milestone-progressionbar--'+locals.progress]\" \r\n    >\r\n      <div v-if=\"locals.allTasks.length !== locals.doneTasks.length || locals.allTasks.length === 0\" class=\"_CSS-milestone-percentage\">{{locals.percentage}}</div>\r\n      <div v-else class=\"_CSS-milestone-percentage\">\r\n        <ae-icon class=\"fal fa-check\" style=\"font-size: var(--ae-size-5);\"/>\r\n      </div>\r\n    </div>\r\n    <div class=\"_CSS-milestone-details\">\r\n      <div class=\"_CSS-milestone-details-tasks\">\r\n        {{locals.totalTasks}}\r\n      </div>\r\n    </div>\r\n  <!-- <div> {{locals.endDate}} </div> -->\r\n</div>\r\n","css":"._CSS-milestone {\r\n  display: flex;\r\n  flex-direction: column;\r\n  justify-content: flex-start;\r\n  background-color: var(--ae-ui-background);\r\n  border-color: var(--ae-border-color);\r\n  border-radius: var(--ae-border-radius);\r\n  border-style: solid;\r\n  border-width: var(--ae-border-width);    \r\n  height: 150px;\r\n  width: 150px;\r\n} \r\n\r\n._CSS-milestone-details {\r\n  width: 100%;\r\n  align-self: center;\r\n  max-height: var(--ae-size-8);\r\n  padding: var(--ae-space-1);\r\n\r\n  display: flex;\r\n  align-items: center;\r\n  flex-flow: column;\r\n}\r\n\r\n._CSS-milestone-details-tasks {\r\n  padding: 0 var(--ae-size-2) 0 var(--ae-size-2);\r\n  font-size: var(--ae-font-size-3);\r\n\r\n}\r\n\r\n._CSS-milestone-details-title {\r\n  font-size: var(--ae-size-4);\r\n  color: var(--ae-primary-800); \r\n  white-space: nowrap;\r\n  max-width: 100%;\r\n  overflow: hidden;\r\n  text-overflow: ellipsis;\r\n}\r\n\r\n._CSS-milestone-details-date {\r\n  font-size: var(--ae-size-3);\r\n}\r\n \r\n._CSS-milestone-circle {\r\n  border-radius: 50%;\r\n  -webkit-transform: translate(50%, 50%);\r\n          transform: translate(50%, 50%);\r\n  width: 50px;\r\n  height: 50px;\r\n  display: flex;\r\n  background: var(--ae-background-300);\r\n  margin-left: 15%;\r\n  margin-top: -10%;  \r\n  margin-bottom: 30px;\r\n}\r\n\r\n._CSS-milestone-circle ._CSS-milestone-percentage {\r\n  border-radius: 50%;\r\n  width: 35px;\r\n  height: 35px;\r\n  margin: auto;\r\n  background: var(--ae-background-100);\r\n  text-align: center;\r\n  padding-top: 8px;\r\n  font-size: var(--ae-font-size-3);\r\n}\r\n\r\n._CSS-milestone-progressionbar--0 {\r\n  background-color: var(--ae-background-300);\r\n}\r\n\r\n._CSS-milestone-progressionbar--10 {\r\n  background-image: linear-gradient(306deg, var(--ae-background-300) 50%, transparent 50%), linear-gradient(270deg, var(--ae-primary-800) 50%, var(--ae-background-300) 50%);\r\n}\r\n\r\n._CSS-milestone-progressionbar--20 {\r\n  background-image: linear-gradient(342deg, var(--ae-background-300) 50%, transparent 50%), linear-gradient(270deg, var(--ae-primary-800) 50%, var(--ae-background-300) 50%);\r\n}\r\n\r\n._CSS-milestone-progressionbar--25 {\r\n  background-image: linear-gradient(360deg, var(--ae-background-300) 50%, transparent 50%), linear-gradient(270deg, var(--ae-primary-800) 50%, var(--ae-background-300) 50%);\r\n}\r\n\r\n._CSS-milestone-progressionbar--30 {\r\n  background-image: linear-gradient(378deg, var(--ae-background-300) 50%, transparent 50%), linear-gradient(270deg, var(--ae-primary-800) 50%, var(--ae-background-300) 50%);\r\n}\r\n\r\n._CSS-milestone-progressionbar--40 {\r\n  background-image: linear-gradient(414deg, var(--ae-background-300) 50%, transparent 50%), linear-gradient(270deg, var(--ae-primary-800) 50%, var(--ae-background-300) 50%);\r\n}\r\n\r\n._CSS-milestone-progressionbar--50 {\r\n  background-image: linear-gradient(90deg, var(--ae-background-300) 50%, transparent 50%), linear-gradient(270deg, var(--ae-primary-800) 50%, var(--ae-background-300) 50%);\r\n}\r\n\r\n._CSS-milestone-progressionbar--60 {\r\n  background-image: linear-gradient(306deg, var(--ae-primary-800) 50%, transparent 50%), linear-gradient(270deg, var(--ae-primary-800) 50%, var(--ae-background-300) 50%);\r\n}\r\n\r\n._CSS-milestone-progressionbar--70 {\r\n  background-image: linear-gradient(342deg, var(--ae-primary-800) 50%, transparent 50%), linear-gradient(270deg, var(--ae-primary-800) 50%, var(--ae-background-300) 50%);\r\n}\r\n\r\n._CSS-milestone-progressionbar--75 {\r\n  background-image: linear-gradient(360deg, var(--ae-primary-800) 50%, transparent 50%), linear-gradient(270deg, var(--ae-primary-800) 50%, var(--ae-background-300) 50%);\r\n}\r\n\r\n._CSS-milestone-progressionbar--80 {\r\n  background-image: linear-gradient(378deg, var(--ae-primary-800) 50%, transparent 50%), linear-gradient(270deg, var(--ae-primary-800) 50%, var(--ae-background-300) 50%);\r\n}\r\n\r\n._CSS-milestone-progressionbar--90 {\r\n  background-image: linear-gradient(414deg, var(--ae-primary-800) 50%, transparent 50%), linear-gradient(270deg, var(--ae-primary-800) 50%, var(--ae-background-300) 50%);\r\n}\r\n\r\n._CSS-milestone-progressionbar--100 {\r\n  background-color: var(--ae-primary-800);\r\n}","controller":"class Controller {\r\n  async init() {\r\n    this.tasksSubcription = null\r\n    locals.allTasks = []\r\n    locals.doneTasks = []\r\n    locals.endDate = ''\r\n    locals.progress = 0\r\n    locals.percentage = ''\r\n    locals.totalTasks = '' \r\n\r\n    Aeppic.watch(document, async (doc) => await this.update(doc))\r\n\r\n    // TODO: subsribe tasks\r\n    await this.update()\r\n  }\r\n\r\n  async update(doc) {\r\n    const d = doc || document\r\n    locals.allTasks = await Aeppic.getAll(d.data.aufgaben)    \r\n    locals.doneTasks = locals.allTasks.filter(e => e && e.data.erledigt === true)\r\n\r\n    this.calcProgress()\r\n\r\n    if (this.tasksSubcription) {\r\n      this.tasksSubcription.stop()\r\n    }\r\n\r\n    this.tasksSubcription = Aeppic.watchAll(locals.allTasks, (updatedTasks) => {\r\n      locals.doneTasks = updatedTasks.filter(e => e && e.data.erledigt === true)\r\n      this.calcProgress()\r\n    })\r\n  }\r\n\r\n  calcProgress() { \r\n    locals.totalTasks = this.totalTasks()\r\n\r\n    if (locals.doneTasks.length === 0 && locals.allTasks.length > 0) {\r\n      locals.progress = 0\r\n      locals.percentage = '0%'\r\n      return \r\n    }\r\n\r\n    if(locals.doneTasks.length === 0 || locals.allTasks.length === 0) {\r\n      locals.progress = 0\r\n      locals.percentage = '--'\r\n      return \r\n    }\r\n\r\n    locals.percentage = (locals.doneTasks.length / locals.allTasks.length) * 100 \r\n    if (locals.percentage % 10 === 0 || locals.percentage % 25 === 0) {\r\n      locals.progress = locals.percentage  \r\n    } else {\r\n      locals.progress = this.getNormalizedProgress(locals.percentage)\r\n    }\r\n  \r\n    locals.percentage = `${Math.round(locals.percentage)}%`         \r\n  }\r\n\r\n  getNormalizedProgress(percentage) {\r\n    const rest = percentage % 10\r\n\r\n    return  (percentage - rest)\r\n  }  \r\n\r\n  get date() {\r\n    if(document.data.bis) {\r\n      return Aeppic.DateTime.fromISO(document.data.bis).toLocaleString(Aeppic.DateTime.DATE_MED)\r\n    }\r\n\r\n    return  \r\n  }\r\n\r\n  /*endDate() {\r\n    const TasksSortedByEndDate = Aeppic.sort(locals.allTasks, {\r\n      field: 'data.bis',\r\n      descending: false\r\n    }) \r\n\r\n    const latestTask = TasksSortedByEndDate[TasksSortedByEndDate.length -1]\r\n\r\n    if(latestTask) {\r\n      return Aeppic.DateTime.fromISO(latestTask.data.bis).toLocaleString(Aeppic.DateTime.DATE_SHORT)\r\n    }\r\n\r\n    return ''\r\n  }*/ \r\n\r\n  totalTasks (){\r\n    if (locals.allTasks.length === 0 && locals.doneTasks.length === 0) {\r\n      return '' \r\n    }\r\n\r\n    return locals.doneTasks.length + '/' + locals.allTasks.length + ' Aufgaben'\r\n  }\r\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-07-01T14:40:04+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2021-06-09T12:57:56+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1623243476072,"ct":1593614404791,"a_depth":4,"a":["apps","59edbdbc-2cab-426a-bb42-6e57c5158e4f","3be7e887-1bcd-4c3c-979f-b20a986c4c48","766c24c5-542c-4887-bf65-43ad85e6c476"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"bdec7d75-f50b-4245-839e-c4121192932e","v":"f485dedac9b2e7e4","previous":{"v":"129ee7719f9e9984"},"p":"3ef82fa1-425d-4592-b120-1a6fc967802d","f":{"id":"design-form","v":"24435d748c76f819","text":"Design"},"data":{"name":"progress-circle","template":"<div class=\"_CSS-milestone ae-navigatable\" @click.stop=\"$emit('selected', document)\">\r\n    <div class=\"_CSS-milestone-details\">\r\n      <div class=\"_CSS-milestone-details-title\">\r\n        <ae-design v-if=\"data.name\" name=\"title\" :document=\"document\"></ae-design> \r\n        <div v-else>Unbenannt</div>\r\n      </div>\r\n      <div class=\"_CSS-milestone-details-date\">\r\n        {{controller.date || 'Unbefristet'}}\r\n      </div>\r\n    </div>\r\n    <div\r\n    class=\"_CSS-milestone-circle\"\r\n    :class=\"['_CSS-milestone-progressionbar--'+locals.progress]\" \r\n    >\r\n      <div v-if=\"locals.allTasks.length !== locals.doneTasks.length || locals.allTasks.length === 0\" class=\"_CSS-milestone-percentage\">{{locals.percentage}}</div>\r\n      <div v-else class=\"_CSS-milestone-percentage\">\r\n        <ae-icon class=\"fal fa-check\" style=\"font-size: var(--ae-size-5);\"/>\r\n      </div>\r\n    </div>\r\n    <div class=\"_CSS-milestone-details\">\r\n      <div class=\"_CSS-milestone-details-tasks\">\r\n        {{locals.totalTasks}}\r\n      </div>\r\n    </div>\r\n  <!-- <div> {{locals.endDate}} </div> -->\r\n</div>\r\n\r\n","css":"._CSS-milestone {\r\n  display: flex;\r\n  flex-direction: column;\r\n  justify-content: flex-start;\r\n  background-color: var(--ae-ui-background);\r\n  border-color: var(--ae-border-color);\r\n  border-radius: var(--ae-border-radius);\r\n  border-style: solid;\r\n  border-width: var(--ae-border-width);    \r\n  height: var(--ae-size-12);\r\n  width: var(--ae-size-11);\r\n} \r\n\r\n._CSS-milestone-details {\r\n  align-self: center;\r\n  margin-top: var(--ae-size-1);\r\n  max-height: var(--ae-size-8);\r\n}\r\n\r\n._CSS-milestone-details-tasks {\r\n  padding: 0 var(--ae-size-2) 0 var(--ae-size-2);\r\n}\r\n\r\n._CSS-milestone-details-title {\r\n  font-size: var(--ae-size-5);\r\n  color: var(--ae-primary-800); \r\n  white-space: nowrap;\r\n  max-width: var(--ae-size-11);\r\n  overflow: hidden;\r\n  text-overflow: ellipsis;\r\n  padding: 0 var(--ae-size-2) 0 var(--ae-size-2);\r\n}\r\n\r\n._CSS-milestone-details-date {\r\n  font-size: var(--ae-size-3);\r\n  padding: 0 var(--ae-size-2) 0 var(--ae-size-2);\r\n}\r\n \r\n._CSS-milestone-circle {\r\n  border-radius: 50%;\r\n  -webkit-transform: translate(50%, 50%);\r\n          transform: translate(50%, 50%);\r\n  width: 100px;\r\n  height: 100px;\r\n  display: flex;\r\n  background: var(--ae-background-300);\r\n  margin-top: -10%;  \r\n  margin-bottom: var(--ae-size-8);\r\n  margin-right: var(--ae-size-8);    \r\n}\r\n\r\n._CSS-milestone-circle ._CSS-milestone-percentage {\r\n  border-radius: 50%;\r\n  width: 80px;\r\n  height: 80px;\r\n  margin: auto;\r\n  background: var(--ae-background-100);\r\n  text-align: center;\r\n  padding-top: 30%;\r\n}\r\n\r\n._CSS-milestone-progressionbar--0 {\r\n  background-color: var(--ae-background-300);\r\n}\r\n\r\n._CSS-milestone-progressionbar--10 {\r\n  background-image: linear-gradient(306deg, var(--ae-background-300) 50%, transparent 50%), linear-gradient(270deg, var(--ae-primary-800) 50%, var(--ae-background-300) 50%);\r\n}\r\n\r\n._CSS-milestone-progressionbar--20 {\r\n  background-image: linear-gradient(342deg, var(--ae-background-300) 50%, transparent 50%), linear-gradient(270deg, var(--ae-primary-800) 50%, var(--ae-background-300) 50%);\r\n}\r\n\r\n._CSS-milestone-progressionbar--25 {\r\n  background-image: linear-gradient(360deg, var(--ae-background-300) 50%, transparent 50%), linear-gradient(270deg, var(--ae-primary-800) 50%, var(--ae-background-300) 50%);\r\n}\r\n\r\n._CSS-milestone-progressionbar--30 {\r\n  background-image: linear-gradient(378deg, var(--ae-background-300) 50%, transparent 50%), linear-gradient(270deg, var(--ae-primary-800) 50%, var(--ae-background-300) 50%);\r\n}\r\n\r\n._CSS-milestone-progressionbar--40 {\r\n  background-image: linear-gradient(414deg, var(--ae-background-300) 50%, transparent 50%), linear-gradient(270deg, var(--ae-primary-800) 50%, var(--ae-background-300) 50%);\r\n}\r\n\r\n._CSS-milestone-progressionbar--50 {\r\n  background-image: linear-gradient(90deg, var(--ae-background-300) 50%, transparent 50%), linear-gradient(270deg, var(--ae-primary-800) 50%, var(--ae-background-300) 50%);\r\n}\r\n\r\n._CSS-milestone-progressionbar--60 {\r\n  background-image: linear-gradient(306deg, var(--ae-primary-800) 50%, transparent 50%), linear-gradient(270deg, var(--ae-primary-800) 50%, var(--ae-background-300) 50%);\r\n}\r\n\r\n._CSS-milestone-progressionbar--70 {\r\n  background-image: linear-gradient(342deg, var(--ae-primary-800) 50%, transparent 50%), linear-gradient(270deg, var(--ae-primary-800) 50%, var(--ae-background-300) 50%);\r\n}\r\n\r\n._CSS-milestone-progressionbar--75 {\r\n  background-image: linear-gradient(360deg, var(--ae-primary-800) 50%, transparent 50%), linear-gradient(270deg, var(--ae-primary-800) 50%, var(--ae-background-300) 50%);\r\n}\r\n\r\n._CSS-milestone-progressionbar--80 {\r\n  background-image: linear-gradient(378deg, var(--ae-primary-800) 50%, transparent 50%), linear-gradient(270deg, var(--ae-primary-800) 50%, var(--ae-background-300) 50%);\r\n}\r\n\r\n._CSS-milestone-progressionbar--90 {\r\n  background-image: linear-gradient(414deg, var(--ae-primary-800) 50%, transparent 50%), linear-gradient(270deg, var(--ae-primary-800) 50%, var(--ae-background-300) 50%);\r\n}\r\n\r\n._CSS-milestone-progressionbar--100 {\r\n  background-color: var(--ae-primary-800);\r\n}","controller":"class Controller {\r\n  async init() {\r\n    locals.allTasks = []\r\n    locals.doneTasks = []\r\n    locals.endDate = ''\r\n    locals.progress = 0\r\n    locals.percentage = ''\r\n    locals.totalTasks = '' \r\n\r\n    locals.allTasks = await Aeppic.getAll(document.data.aufgaben)    \r\n\r\n    locals.doneTasks = locals.allTasks.filter(e => e && e.data.erledigt === true)\r\n\r\n    //this.endDate()\r\n    this.calcProgress()\r\n\r\n    locals.totalTasks = this.totalTasks()\r\n  }\r\n\r\n  calcProgress() { \r\n    if (locals.doneTasks.length === 0 && locals.allTasks.length > 0) {\r\n      locals.percentage = '0%'\r\n      return \r\n    }\r\n\r\n    if(locals.doneTasks.length === 0 || locals.allTasks.length === 0) {\r\n      locals.percentage = '--'\r\n      return \r\n    }\r\n\r\n    locals.percentage = (locals.doneTasks.length / locals.allTasks.length) * 100 \r\n    \r\n    if (locals.percentage % 10 === 0 || locals.percentage % 25 === 0) {\r\n      locals.progress = locals.percentage  \r\n    } else {\r\n      locals.progress = this.getNormalizedProgress(locals.percentage)\r\n    }\r\n  \r\n    locals.percentage = `${Math.round(locals.percentage)}%`         \r\n  }\r\n\r\n  getNormalizedProgress(percentage) {\r\n    const rest = percentage % 10\r\n\r\n    return  (percentage - rest)\r\n  }  \r\n\r\n  get date() {\r\n    if(document.data.bis) {\r\n      return Aeppic.DateTime.fromISO(document.data.bis).toLocaleString(Aeppic.DateTime.DATE_MED)\r\n    }\r\n\r\n    return  \r\n  }\r\n\r\n  /*endDate() {\r\n    const TasksSortedByEndDate = Aeppic.sort(locals.allTasks, {\r\n      field: 'data.bis',\r\n      descending: false\r\n    }) \r\n\r\n    const latestTask = TasksSortedByEndDate[TasksSortedByEndDate.length -1]\r\n\r\n    if(latestTask) {\r\n      return Aeppic.DateTime.fromISO(latestTask.data.bis).toLocaleString(Aeppic.DateTime.DATE_SHORT)\r\n    }\r\n\r\n    return ''\r\n  }*/ \r\n\r\n  totalTasks (){\r\n    if (locals.allTasks.length === 0 && locals.doneTasks.length === 0) {\r\n      return '' \r\n    }\r\n\r\n    return locals.doneTasks.length + '/' + locals.allTasks.length + ' Aufgaben'\r\n  }\r\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-05-08T08:50:54+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2021-10-12T09:43:27+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1634031807207,"ct":1588927854527,"a_depth":4,"a":["apps","5acfd7a2-33e4-498a-9150-71e1ab772bfc","20c92864-6a81-4006-96f9-b78f473cd129","3ef82fa1-425d-4592-b120-1a6fc967802d"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"b37cc1d9-e15b-4978-b152-828d0797d9ff","v":"97d0e9a37aa9076e","previous":{"v":"25e275199f94c5c2"},"p":"3ef82fa1-425d-4592-b120-1a6fc967802d","f":{"id":"design-form","v":"24435d748c76f819","text":"Design"},"data":{"name":"progress-line","template":"<div class=\"_CSS-line\" @click.stop=\"$emit('selected', document)\">\r\n  <div class=\"_CSS-line__title\">\r\n    {{data.name || 'Unbenannt'}}\r\n\r\n    <span class=\"_CSS-line__title-date\">\r\n      <template v-if=\"controller.date\">\r\n        {{ controller.date}}\r\n      </template>\r\n      <ae-icon v-else class=\"fa fa-infinity\"></ae-icon>\r\n    </span>\r\n  </div>\r\n\r\n  <div class=\"_CSS-line__progress\" style=\"flex: 1;\"\">\r\n      <div class=\"_CSS-progress\" style=\"position:relative; display:flex;\">\r\n        <div v-if=\"!locals.counters.all\" class=\"_CSS-progress__value\" >\r\n          Keine Aufgaben hinzugfügt\r\n        </div>\r\n        <div v-if=\"locals.counters.closed\" title=\"Erledigte\" class=\"_CSS-progress__value _CSS-progress__closed\" :style=\"{ width: locals.progress.closed + '%' }\">\r\n          <span>\r\n          {{ locals.counters.closed }}\r\n          </span>\r\n        </div>\r\n        <div v-if=\"locals.counters.open\" title=\"Offene\" class=\"_CSS-progress__value _CSS-progress__open\" :style=\"{ width: locals.progress.open + '%' }\">\r\n          <span>\r\n          {{ locals.counters.open }}\r\n          </span>\r\n        </div>\r\n        <div v-if=\"locals.counters.overdue\" title=\"Überfällige\" class=\"_CSS-progress__value _CSS-progress__overdue\" :style=\"{ width: locals.progress.overdue + '%' }\">\r\n          <span>\r\n          {{ locals.counters.overdue }}\r\n          </span>\r\n      </div>\r\n    </div>\r\n  </div>\r\n\r\n</div>\r\n\r\n\r\n","css":"._CSS-line {\r\n  display: flex;\r\n  flex-direction: column;\r\n  justify-content: flex-start;\r\n  background-color: var(--ae-ui-background);\r\n  border-color: var(--ae-border-color);\r\n  border-radius: var(--ae-border-radius);\r\n  border-style: solid;\r\n  border-width: var(--ae-border-width);    \r\n}\r\n\r\n._CSS-line__title {\r\n  margin: var(--ae-size-1);\r\n  display: flex;\r\n  justify-content: space-between;\r\n}\r\n\r\n._CSS-line__title-date {\r\n  color: var(--ae-background-600);\r\n}\r\n\r\n._CSS-line:hover {\r\n  cursor: pointer;\r\n  background-color: var(--ae-background-200);\r\n}\r\n\r\n._CSS-line__progress {\r\n  flex: 1;\r\n  padding: var(--ae-size-1);\r\n\r\n  margin-bottom: 16px;\r\n}\r\n\r\n\r\n._CSS-progress {\r\n  display: flex;\r\n  position: relative;\r\n  border-radius: var(--ae-border-radius);\r\n}\r\n\r\n// ._CSS-progress__title {\r\n//   display: flex;\r\n//   justify-content: center;\r\n//   font-size: 14px;\r\n//   height: 20px;\r\n//   color: var(--ae-foreground-l2);\r\n// }\r\n\r\n._CSS-progress__value {\r\n  height: 8px;\r\n\r\n  display: flex;\r\n  justify-content: center;\r\n}\r\n\r\n._CSS-progress__value:first-child {\r\n  border-top-left-radius: var(--ae-border-radius);\r\n  border-bottom-left-radius: var(--ae-border-radius);\r\n}\r\n._CSS-progress__value:last-child {\r\n  border-top-right-radius: var(--ae-border-radius);\r\n  border-bottom-right-radius: var(--ae-border-radius);\r\n}\r\n\r\n._CSS-progress__value > * {\r\n  padding: 7px;\r\n}\r\n\r\n._CSS-progress__overdue {\r\n  background: var(--ae-accent-red-400);\r\n}\r\n\r\n\r\n._CSS-progress__open {\r\n  background: var(--ae-background-300);\r\n  xbackground: transparent;\r\n}\r\n\r\n._CSS-progress__closed {\r\n  background: var(--ae-primary-500);\r\n  xbackground: var(--ae-accent-green-700);\r\n}","controller":"class Controller {\r\n  async init() {\r\n    locals.openTasks = []\r\n    locals.closedTasks = []\r\n    locals.overdueTasks = []\r\n    locals.counters = {}\r\n    locals.progress = {}\r\n\r\n    const tasks = await Aeppic.getAll(document.data.aufgaben)\r\n \r\n    for (const task of tasks) {\r\n      if (task.data.erledigt) {\r\n        locals.closedTasks.push(task)\r\n        continue\r\n      }\r\n\r\n      if (task.data.bis) {\r\n        const isOverdue = Aeppic.DateTime.fromISO(data.bis).diffNow().as('days') <= 0\r\n\r\n        if (isOverdue) {\r\n          locals.overdueTasks.push(task)\r\n          continue\r\n        }\r\n      }\r\n\r\n      locals.openTasks.push(task)\r\n    }\r\n\r\n    locals.counters = this.getCounters()\r\n    locals.progress = this.getProgress(locals.counters)\r\n  }\r\n\r\n  getProgress(counters) {\r\n    if (!counters.all) {\r\n      return {}\r\n    }\r\n\r\n    const percentile = 100 / counters.all\r\n\r\n    const open = counters.open * percentile\r\n    const overdue = counters.overdue * percentile\r\n    const closed = counters.closed * percentile\r\n\r\n    return {\r\n      open,\r\n      closed,\r\n      overdue\r\n    }\r\n  }\r\n\r\n  getCounters() {\r\n    const all = locals.openTasks.length + locals.closedTasks.length + locals.overdueTasks.length\r\n\r\n    if (all === 0) {\r\n      return {}\r\n    }\r\n\r\n    const open = locals.openTasks.length\r\n    const overdue = locals.overdueTasks.length\r\n    const closed = locals.closedTasks.length\r\n\r\n    return {\r\n      open,\r\n      closed,\r\n      overdue,\r\n      all\r\n    }\r\n  }\r\n\r\n  get date() {\r\n    if (document.data.bis) {\r\n      return Aeppic.DateTime.fromISO(document.data.bis).toLocaleString(Aeppic.DateTime.DATE_SHORT)\r\n    }\r\n\r\n    return\r\n  }\r\n\r\n  get progressTitle() {\r\n    return ''\r\n    // return `Offen: ${locals.counters.open}. Erledigt: ${locals.counters.done} / ${locals.percentage}%`\r\n  }\r\n}\r\n\r\n\r\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-05-08T08:50:54+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2020-08-26T07:41:09+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1598427669650,"ct":1588927854531,"a_depth":4,"a":["apps","5acfd7a2-33e4-498a-9150-71e1ab772bfc","20c92864-6a81-4006-96f9-b78f473cd129","3ef82fa1-425d-4592-b120-1a6fc967802d"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"cb247d5e-9edf-44aa-b8f9-3537bcb31262","v":"initial","p":"98c77209-1245-43d6-90b5-8625183f470c","f":{"id":"design-form","v":"baf08f1171a94bca","text":"Design"},"data":{"name":"project-manager","template":"<ae-design name=\"avatar--tiny\" :document=\"data.projektleiter\"></ae-design>\n<ae-design style=\"margin-left: 1ch;\" name=\"title\" :document=\"data.projektleiter\"></ae-design>","css":"._CSS {\n  display: flex;\n  align-items: center;\n}","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-09-17T11:55:22+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2020-09-17T11:55:22+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1600343722592,"ct":1600343722592,"a_depth":4,"a":["apps","94a64d89-d204-4918-b147-d717914fb03e","f254ce25-42f1-4333-8ee7-23554bf746c1","98c77209-1245-43d6-90b5-8625183f470c"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"11dd0b18-b74f-4022-aa0a-adde1d3770c8","v":"c842bd17b76efc5a","cloneOf":{"id":"2db8b8f8-27aa-463d-b4f3-cc3cf5ed4840","v":"235567e7d1bc90ee","text":"projects"},"originalCloneOf":{"id":"2db8b8f8-27aa-463d-b4f3-cc3cf5ed4840","v":"235567e7d1bc90ee","text":"projects"},"previous":{"v":"8fc1aea25eedc595"},"p":"0b4fe19c-a550-46b7-ada0-6813a60e14bc","f":{"id":"design-form","v":"24435d748c76f819","text":"Design"},"data":{"name":"projects","template":"<ae-list\n  list-id=\"2dab232c-2c8a-4aa4-b3f9-6023a7116161\" \n  :documents=\"locals.projects\"\n  :param-by=\"locals.by\"\n  :param-asc=\"locals.asc\"\n  @selected=\"Aeppic.drillInto($event.id)\"\n  param-min-column-width=\"25rem\"\n  :param-max-column-width=\"Aeppic.Device === 'Phone' ? '1fr' : 'max-content'\"\n  :param-title=\"params.showDone ? 'Erledigte Projekte' :''\"\n  param-design=\"selectable\"\n  :param-design-params=\"{ name: 'card', forceShowDetails: params.showDetails }\"\n  :sort=\"locals.sort\"\n></ae-list>\n","css":"._CSS-body-container {\n  padding: var(--bp-page-content-padding);\n  padding-top: 12px;\n\n  /* full page */\n  position: absolute;\n  top: 48px;\n  bottom: 0;\n  left: 0;\n  right: 0;\n}\n\n._CSS-body {\n  max-width: 1000px;\n  margin: auto;\n}\n\n._CSS-body__column {\n  flex: 1;\n  min-width: 0;\n\n  display: flex;\n  flex-direction: column;\n}\n\n._CSS-header {\n  color: gray;\n  font-size: 0.9em;\n  font-weight: bold;\n}\n\n._CSS-header ~ * {\n  margin-top: 1em;\n}\n\n._CSS-header ~ ._CSS-header {\n  margin-top: 3em;\n}\n\n.bp-button:disabled {\n  opacity: 0.5;\n}\n\n._CSS-commands-bar {\n  padding: 5px;\n  display: flex;\n  justify-content: space-between;\n  border-bottom: var(--ae-border-width) solid var(--ae-border-color);\n  position: relative;\n\n  background: var(--ae-ui-background);\n}\n\n/* ._CSS-commands-bar::after {\n  content:'';\n  position:absolute;\n  height:4px;\n  left:0;\n  bottom:-0px;\n  right:0;\n  border-top: 1px solid rgba(0,0,0,0.2);\n  background: linear-gradient(to bottom, rgba(0,0,0,0.1) 0%,rgba(0,0,0,0) 100%);\n  display: block;\n} */\n\n._CSS-button--danger {\n  margin-left: 8px;\n}\n\n._CSS-button--danger:hover > * {\n  color: var(--ae-theme-warning);\n}\n\n._CSS-commands {\n  display: grid;\n  grid-gap: 2px;\n  grid-auto-columns: auto;\n  grid-auto-flow:column;\n}\n\n._CSS-commands > .bp-button._CSS-command--primary {\n  padding: 8px 16px; \n}\n\n._CSS-commands .bp-button {\n  padding: 8px;\n}\n \n/* ._CSS-button-more {\n  border: none;\n  margin: 20px 0;\n  background: white;\n  padding: 4px 10px;\n  width: 400px;\n  border-radius: 2px;\n  outline: none;\n\n  color: hsl(0, 0%, 38%);\n  font-size: 14px;\n\n  box-shadow: 0 2px 5px 0 rgba(70, 70, 70, 0.2);\n} */\n\n._CSS-calendar{\n  flex:1;\n}","controller":"class Controller {\n  async init() {\n    this.subscription = null\n    this.initial = true\n\n    locals.sort = [{\n      field: 'data.bis',\n      descending: true\n    }, {\n      field: 'data.name',\n      descending: false\n    }]\n    locals.searchOptions = {\n      size: 9999\n    }\n\n    locals.projects = []\n\n    this.updateTimeout = null\n\n    this.subscription = Aeppic.updateSubscription(this.subscription, `p:${document.id} f.id:0b6a2b21-9425-466e-9e8d-57ec39cc95e1 AND data.erledigt:${params.showDone}`, { sort: locals.sort, size: locals.searchOptions.size }, async (documents) => {\n      if (this.initial) {\n        // delay initial update by 100ms to allow updated (=fetched from server?) subscription to superseed the initial call \n        this.updateTimeout = setTimeout(async () => {\n          await this.update(documents)\n        }, 100)\n\n        this.initial = false\n        return \n      }\n\n      this.updateTimeout && clearTimeout(this.updateTimeout)\n\n      await this.update(documents)\n    })\n       \n    watchParam('showDone', (newParam) => {\n      this.subscription = Aeppic.updateSubscription(this.subscription, `p:${document.id} f.id:0b6a2b21-9425-466e-9e8d-57ec39cc95e1 AND data.erledigt:${newParam}`, { sort: locals.sort, size: locals.searchOptions.size }, async (documents) => await this.update(documents))\n    })\n  }\n\n  async update(docs) {\n    console.log('update', docs.length)\n    const projects = []\n\n    await Promise.all(docs.map(async (doc) => {\n      if (doc.data.client && doc.data.client.id) {\n        const hasTasksOrProjects = await Aeppic.findOne(`p:${doc.id} (f.id:0deb4864-cbb6-420c-99ee-337c7444ab24 OR f.id:0b6a2b21-9425-466e-9e8d-57ec39cc95e1)`)\n\n        if (hasTasksOrProjects) {\n          projects.push(doc)\n        }\n      } else {\n        projects.push(doc)\n      }\n    }))\n\n    locals.projects = projects\n  }\n}\n\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-07-01T14:40:04+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2021-09-08T15:22:41+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1631114561210,"ct":1593614404650,"a_depth":4,"a":["apps","59edbdbc-2cab-426a-bb42-6e57c5158e4f","3be7e887-1bcd-4c3c-979f-b20a986c4c48","0b4fe19c-a550-46b7-ada0-6813a60e14bc"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"2db8b8f8-27aa-463d-b4f3-cc3cf5ed4840","v":"235567e7d1bc90ee","previous":{"v":"initial"},"p":"4df0ebf7-c439-48d3-8a57-eef59bcfa250","f":{"id":"design-form","v":"24435d748c76f819","text":"Design"},"data":{"name":"projects","template":" <ae-list\n      query-id=\"cb73486b-3c55-4cc7-b0d8-343045721940\"\n      list-id=\"2dab232c-2c8a-4aa4-b3f9-6023a7116161\" \n      :param-by=\"locals.by\"\n      :param-asc=\"locals.asc\"\n      :root-document-id=\"document.id\"\n      @selected=\"Aeppic.drillInto($event.id)\"\n      param-min-column-width=\"25rem\"\n      :param-max-column-width=\"Aeppic.Device === 'Phone' ? '1fr' : '30rem'\"\n      param-title=\"\"\n      param-design=\"card--wide,card\"\n      :param-design-params=\"{ forceShowDetails: params.showDetails }\"\n      :sort=\"locals.sort\"\n      ></ae-list>\n\n      <!-- <div style=\"display:flex;justify-content:center;\">\n        <button class=\"_CSS-button-more\" @click=\"params.showDone = !params.showDone\">\n          <div>Erledigte Projekte</div>\n          <ae-icon v-show=\"!params.showDone\" class=\"fa fa-chevron-down\"></ae-icon>\n          <ae-icon v-show=\"params.showDone\" class=\"fa fa-chevron-up\"></ae-icon>\n        </button>\n      </div> -->\n\n      <ae-list\n        v-if=\"params.showDone\"\n        query-id=\"1452da1d-76cf-4b00-b110-b6915ee2ff36\"\n        list-id=\"2dab232c-2c8a-4aa4-b3f9-6023a7116161\" \n        :param-by=\"locals.by\"\n        :param-asc=\"locals.asc\"\n        :root-document-id=\"document.id\"\n        @selected=\"Aeppic.drillInto($event.id)\"\n        param-min-column-width=\"25rem\"\n        :param-max-column-width=\"Aeppic.Device === 'Phone' ? '1fr' : 'max-content'\"\n        param-title=\"Erledigte Projekte\"\n        param-design=\"card--wide,card\"\n        :param-design-params=\"{ forceShowDetails: params.showDetails }\"\n        :sort=\"locals.sort\"\n      ></ae-list>\n  ","css":"._CSS-body-container {\n  padding: var(--bp-page-content-padding);\n  padding-top: 12px;\n\n  /* full page */\n  position: absolute;\n  top: 48px;\n  bottom: 0;\n  left: 0;\n  right: 0;\n}\n\n._CSS-body {\n  max-width: 1000px;\n  margin: auto;\n}\n\n._CSS-body__column {\n  flex: 1;\n  min-width: 0;\n\n  display: flex;\n  flex-direction: column;\n}\n\n._CSS-header {\n  color: gray;\n  font-size: 0.9em;\n  font-weight: bold;\n}\n\n._CSS-header ~ * {\n  margin-top: 1em;\n}\n\n._CSS-header ~ ._CSS-header {\n  margin-top: 3em;\n}\n\n.bp-button:disabled {\n  opacity: 0.5;\n}\n\n._CSS-commands-bar {\n  padding: 5px;\n  display: flex;\n  justify-content: space-between;\n  border-bottom: var(--ae-border-width) solid var(--ae-border-color);\n  position: relative;\n\n  background: var(--ae-ui-background);\n}\n\n/* ._CSS-commands-bar::after {\n  content:'';\n  position:absolute;\n  height:4px;\n  left:0;\n  bottom:-0px;\n  right:0;\n  border-top: 1px solid rgba(0,0,0,0.2);\n  background: linear-gradient(to bottom, rgba(0,0,0,0.1) 0%,rgba(0,0,0,0) 100%);\n  display: block;\n} */\n\n._CSS-button--danger {\n  margin-left: 8px;\n}\n\n._CSS-button--danger:hover > * {\n  color: var(--ae-theme-warning);\n}\n\n._CSS-commands {\n  display: grid;\n  grid-gap: 2px;\n  grid-auto-columns: auto;\n  grid-auto-flow:column;\n}\n\n._CSS-commands > .bp-button._CSS-command--primary {\n  padding: 8px 16px; \n}\n\n._CSS-commands .bp-button {\n  padding: 8px;\n}\n \n/* ._CSS-button-more {\n  border: none;\n  margin: 20px 0;\n  background: white;\n  padding: 4px 10px;\n  width: 400px;\n  border-radius: 2px;\n  outline: none;\n\n  color: hsl(0, 0%, 38%);\n  font-size: 14px;\n\n  box-shadow: 0 2px 5px 0 rgba(70, 70, 70, 0.2);\n} */\n\n._CSS-calendar{\n  flex:1;\n}","controller":"init() {\n    locals.sort = [{\n      field: 'data.bis',\n      descending: true\n    }, {\n      field: 'data.name',\n      descending: false\n    }]\n    locals.searchOptions = {\n      size: 9999\n    }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-05-08T08:50:55+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2020-06-16T08:57:26+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1592297846973,"ct":1588927855461,"a_depth":4,"a":["apps","5acfd7a2-33e4-498a-9150-71e1ab772bfc","20c92864-6a81-4006-96f9-b78f473cd129","4df0ebf7-c439-48d3-8a57-eef59bcfa250"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"129bdf87-cebb-462c-9099-fe7a4b7cf516","v":"3f8a1777ffb0a0e0","previous":{"v":"d30ea4a5313861df"},"p":"6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2","f":{"id":"design-form","v":"e3fe9ece11aabc5e","text":"Design"},"data":{"name":"property-listing","applies":"","template":"<div class=\"_CSS-listing\" v-if=\"data.datei\">\n  <span><strong>Document</strong></span><span></span>\n  <span>Created</span><span>{{Aeppic.DateTime.fromISO(document.modified.at).toLocaleString(Aeppic.DateTime.DATE_SHORT)}}</span>\n  <span>Modified</span><span>{{Aeppic.DateTime.fromISO(document.created.at).toLocaleString(Aeppic.DateTime.DATE_SHORT)}}</span>\n  <span>&nbsp;</span><span></span>\n  <span><strong>File</strong></span><span></span>\n  <span>Size</span><span>{{Number(document.data.datei.size / 1024).toFixed() }} KB</span>\n  <span>Type</span><span>{{data.datei.type}}</span>\n  <template v-if=\"data.datei.fileInfo.modified\"><span>Created</span><span>{{Aeppic.DateTime.fromMillis(data.datei.fileInfo.modified).toLocaleString(Aeppic.DateTime.DATE_SHORT)}}</span></template>\n  <template v-if=\"data.datei.fileInfo.created\"><span>Modified</span><span>{{Aeppic.DateTime.fromMillis(data.datei.fileInfo.created).toLocaleString(Aeppic.DateTime.DATE_SHORT)}}</span></template>\n</div>\n","css":"._CSS-listing {\n  display: grid;\n  grid-template-columns: 1fr 1fr;\n}\n","controller":"","packages":[]},"locks":[],"created":{"at":"2017-12-22T15:06:33+01:00","by":"","from":"","client":"6dd5e827-8328-4cca-bb5f-8c08a3b3b540"},"modified":{"at":"2018-04-18T15:40:35+02:00","by":"","backedBy":"","from":"","client":"server"},"t":1524058835942,"ct":1513951554052,"a_depth":4,"a":["apps","3d43a3f5-fea4-488d-9fc1-9dee5e694623","7c30f282-2b84-4976-8735-ba78662ea5e6","6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"2277080b-82ae-4130-aeda-c996cd298dcf","v":"initial","cloneOf":{"id":"129bdf87-cebb-462c-9099-fe7a4b7cf516","v":"3f8a1777ffb0a0e0","text":"property-listing"},"originalCloneOf":{"id":"129bdf87-cebb-462c-9099-fe7a4b7cf516","v":"3f8a1777ffb0a0e0","text":"property-listing"},"p":"dbee6e16-d63a-493c-bba6-505f79918f9f","f":{"id":"design-form","v":"e3fe9ece11aabc5e","text":"Design"},"data":{"name":"property-listing","applies":"","template":"<div class=\"_CSS-listing\" v-if=\"data.datei\">\n  <span><strong>Document</strong></span><span></span>\n  <span>Created</span><span>{{Aeppic.DateTime.fromISO(document.modified.at).toLocaleString(Aeppic.DateTime.DATE_SHORT)}}</span>\n  <span>Modified</span><span>{{Aeppic.DateTime.fromISO(document.created.at).toLocaleString(Aeppic.DateTime.DATE_SHORT)}}</span>\n  <span>&nbsp;</span><span></span>\n  <span><strong>File</strong></span><span></span>\n  <span>Size</span><span>{{Number(document.data.datei.size / 1024).toFixed() }} KB</span>\n  <span>Type</span><span>{{data.datei.type}}</span>\n  <template v-if=\"data.datei.fileInfo.modified\"><span>Created</span><span>{{Aeppic.DateTime.fromMillis(data.datei.fileInfo.modified).toLocaleString(Aeppic.DateTime.DATE_SHORT)}}</span></template>\n  <template v-if=\"data.datei.fileInfo.created\"><span>Modified</span><span>{{Aeppic.DateTime.fromMillis(data.datei.fileInfo.created).toLocaleString(Aeppic.DateTime.DATE_SHORT)}}</span></template>\n</div>\n","css":"._CSS-listing {\n  display: grid;\n  grid-template-columns: 1fr 1fr;\n}\n","controller":"","packages":[]},"locks":[],"created":{"at":"2020-06-24T12:54:35+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2020-06-24T12:54:35+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1593003275158,"ct":1593003275157,"a_depth":4,"a":["apps","45ada186-e9fd-451d-9dbd-2defc0b4f86f","4ec6a0e5-cf2d-4095-9b70-2e31a64d5679","dbee6e16-d63a-493c-bba6-505f79918f9f"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"c2089887-2ac0-49d8-b3f0-0188910f6fc4","v":"c346e7bce5b0e421","p":"fallback-designs","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"prototype:command-buttons","template":"<button v-for=\"button of locals.buttons\"\n        class=\"ae-button\"\n        :class=\"{ 'ae-button--primary': button.data.buttonType === 'PRIMARY', 'ae-button--secondary': button.data.buttonType === 'SECONDARY' }\"\n        @click.stop=\"controller.executeButton(button)\"\n>\n  <ae-design v-if=\"button.data.namedIcon || button.data.icon.dataUrl\" style=\"display: inline-block;\" name=\"icon\" :document=\"button\"></ae-design>\n  <span>{{ button.data.label || button.data.name }}</span>\n</button>\n","css":"._CSS {\n  display: flex;\n}","controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      PrototypeButton: 'd5d4b87b-7dbe-4779-880b-d3fed4f2b725',\n      PrototypeNotification: 'ddaa6921-770e-4a73-b8a4-b4a99abed24b',\n      Account: 'account'\n    }\n\n    locals.buttons = await Aeppic.find(`p:${form.id} f.id:${this.FORMS.PrototypeButton}`)\n  }\n\n  async executeButton(button) {\n    console.log(button)\n\n    const target = await this.cloneTarget(button.data.cloneDocument, button.data.cloneTarget)\n    \n    await this.executeCommands(button.data.commands, target, document)\n\n    await this.createNotifications(button.data.notifications, target)\n\n    if (button.data.navigateToTarget) {\n      this.navigateToTarget(target)\n    }\n  }\n\n  async cloneTarget(documentRef, optionalTargetRef) {\n    if (!documentRef.id) {\n      return null\n    }\n\n    const target = optionalTargetRef.id ? optionalTargetRef : document\n    const cloneResult = await Aeppic.cloneDeep(documentRef, target, { save: true })\n\n    return cloneResult.root\n  }\n\n  async executeCommands(commandRefs, target, current) {\n    for (const command of commandRefs) {\n      const commandResult = await Aeppic.Commands.execute(command, target, { current }, { verbose: true })\n      console.log(commandResult)\n\n      if (!commandResult.ok) {\n        throw new Error('Error executing command:', commandResult)\n      }\n    }\n  }\n\n  async createNotifications(notificationRefs, target) {\n    const notifications = await Aeppic.getAll(notificationRefs)\n\n    for (const notification of notifications) {\n      const groupQuery = notification.data.groups.map(g => `(data.groups.id: ${g.id})`).join(' OR ')\n\n      const groupAccounts = await Aeppic.find(`f.id:${this.FORMS.Account} ${groupQuery}`)\n      const clone = await Aeppic.clone(notification.data.notificationRequest, target)\n\n      for(const account of [...notification.data.accounts, ...groupAccounts]) {\n        clone.addReference('accounts', account)\n      }\n\n      clone.addReference('document', target)\n\n      Aeppic.save(clone)\n    }\n  }\n\n  navigateToTarget(target) {\n    if (target) {\n      Aeppic.navigateTo(target)\n    }\n  }\n}\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2019-10-02T14:50:43+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2020-06-30T09:30:13+00:00","by":"8e6c22aa-8c69-4ff8-919a-7032841cf636","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720684627134,"ct":1720684627134,"a_depth":2,"a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"],"inheritedLocks":[null,null,null],"stamps":[],"previous":{"v":"6349ceb7eeacf8ae","f":{"id":"design-form","v":"9bfe8e0cd909c1f0","text":"Design"}},"meta":{"modified":{"at":"2024-07-11T09:57:07+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"b626cfc0-bddc-4f45-acd3-4f768542b6dd","v":"f2fb00adae39ac45","previous":{"v":"0ed58d2044353106"},"p":"0bb3d600-faf0-4a5c-b49f-7994d234ae76","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"protoype.page","template":"<div v-if=\"locals.ready\" class=\"p-2 h-full flex \">\n  <!-- {{locals.accessibleRequest}} -->\n  <section v-if=\"locals.accessibleRequest\" class=\"flex-1 max-w-3xl mx-auto\">\n    <h1>{{ locals.accessibleRequest.f.text }}</h1>\n    <ae-design name=\"page--left,page\"\n              :document=\"locals.accessibleRequest\"\n              :param-auto-save=\"true\"\n    ></ae-design>\n\n    <h1>\n      <ae-design name=\"form-title\"\n              :document=\"locals.accessibleRequest.data.inventoryEntry\">\n      </ae-design>\n    </h1>\n\n    <ae-design name=\"page--left,page\"\n              :document=\"locals.accessibleRequest.data.inventoryEntry\"\n              :param-auto-save=\"true\"\n    ></ae-design>\n  </section> \n\n  <section v-else class=\"flex flex-col gap-2 items-center max-w-3xl mx-auto\">\n    <ae-icon class=\"fa fa-traffic-light-stop text-4xl text-red-500\"></ae-icon>\n    <div>\n    In diesem Prozessschritt ist von Ihnen keine Beteiligung notwendig.\n    </div>\n  </section>\n</div> ","css":"","controller":"class Controller {\n  async init() {\n    this.accessibleRequestWatcher = null\n\n    locals.ready = false\n\n    // FIXME: there will be multiple accessible requests in the future.\n    //        Develop UI for that case and code 'what is my primary request'-logic\n    locals.accessibleRequest = null\n\n    await this._update(document)\n\n    Aeppic.watch(document, async (doc) => {\n      await this._update(doc)\n    })\n\n    locals.ready = true\n  }\n\n  async _update(doc) {\n    if (this.accessibleRequestWatcher) {\n      this.accessibleRequestWatcher.stop()\n      this.accessibleRequestWatcher = null\n    }\n\n    locals.accessibleRequest = (await Aeppic.getAll(doc.data.activeRequests)).filter(d => !!d)[0]\n\n    this.accessibleRequestWatcher = await Aeppic.watch(locals.accessibleRequest.id, async (newDoc, reason) => {\n      console.log(newDoc, reason)\n      if (reason.deleted) {\n        locals.accessibleRequest = null\n        // FIXME: REMOVE!! once addLock evicts this document correctly\n        Aeppic.reload()\n      } else {\n        locals.accessibleRequest = (await Aeppic.getAll(doc.data.activeRequests)).filter(d => !!d)[0]\n      }\n    })\n  }\n}  ","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-11-16T09:06:27+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-04-25T12:50:20+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1682427020053,"ct":1681389760613,"a_depth":4,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","0bb3d600-faf0-4a5c-b49f-7994d234ae76"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"ebf0bf50-77e4-4728-9ae0-7070162d683e","v":"0fe5099c212408d1","previous":{"v":"1da7f4388b2eec73"},"p":"86966584-6ee3-4351-8e6e-ff6e695b970a","f":{"id":"design-form","v":"e3fe9ece11aabc5e","text":"Design"},"data":{"name":"quill-editor","applies":"","template":"<div style=\"border:solid 1px; padding: 5px;\">{{data.name}}</div>","css":"","controller":"","packages":[]},"locks":[],"lockRefs":[],"created":{"at":"2017-10-20T14:54:47+02:00","by":"","from":"","client":"70ee4e2e-d960-4d6e-b446-c186e91a1e2f"},"modified":{"at":"2017-10-20T14:58:01+02:00","by":"","from":"","client":"70ee4e2e-d960-4d6e-b446-c186e91a1e2f"},"t":1508504087064,"ct":1508504087064,"a_depth":4,"a":["apps","b91e3079-75ae-49cd-981b-3053bf47208c","e7a0be94-cd94-4210-875e-0cceb7e8bc6c","86966584-6ee3-4351-8e6e-ff6e695b970a"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"1cd0fc77-e981-4aea-8b4c-e50dfbc44428","v":"8145406e1e734266","previous":{"v":"ce161c57e902c91c"},"p":"d2ac3563-3c3f-4f02-b923-9b67abf98d10","f":{"id":"design-form","v":"e3fe9ece11aabc5e","text":"Design"},"data":{"name":"quill-embed","applies":"","template":"<div class=\"_CSS-embed\" @click.stop=\"Aeppic.navigateTo(document.id)\">\n  <span>@</span>\n  <ae-design class=\"_CSS-name\" name=\"title\" :document=\"document\"></ae-design>\n  <ae-design class=\"_CSS-avatar\" name=\"avatar--resizes-with-font\" :document=\"document\"></ae-design>\n</div>","css":"._CSS {\r\n  display: flex;\r\n  background: var(--ae-primary-200);\r\n  color: var(--ae-primary-900);\r\n  border-radius: var(--ae-border-radius);\r\n  margin: var(--ae-size-1) 0; \r\n  padding: var(--ae-size-1);\r\n}\r\n\r\n._CSS-embed {\r\n  display:flex;\r\n  cursor: pointer;\r\n}\r\n\r\n._CSS-avatar {\r\n  margin: 0 var(--ae-size-1);\r\n}\r\n\r\n._CSS-name {\r\n  flex: 1;\r\n  display:inline;\r\n}","controller":"","packages":[]},"locks":[],"created":{"at":"2017-12-12T18:37:52+01:00","by":"","from":"","client":"2d8b76fe-b98a-470e-b16a-3f6691ac5c7a"},"modified":{"at":"2020-05-08T08:50:47+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1588927847458,"ct":1513100265923,"a_depth":4,"a":["apps","144e85c0-d7f9-4b20-8928-be30f0c78bda","8e6ee7d3-9122-4a2e-8aaf-9fb3bd204b23","d2ac3563-3c3f-4f02-b923-9b67abf98d10"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"a2d40969-a559-493f-b661-2438ac3404b7","v":"edcd94e95d11d0a3","p":"fallback-designs","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"quill-embed","template":"<div class=\"_CSS-name\" @click.stop=\"Aeppic.navigateTo(document.id)\">\n  <ae-design  name=\"title\" :document=\"document\"></ae-design>\n</div>\n","css":"._CSS {\n  display:flex;\n}\n\n._CSS-name {\n  flex: 1;\n  display:inline;\n  background: var(--ae-primary-200);\n  color: var(--ae-primary-900);\n  border-radius: var(--ae-border-radius);\n  margin: var(--ae-size-1) 0; \n  padding: var(--ae-size-1);\n\n  cursor: pointer;\n}","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2017-10-26T16:35:44+02:00","by":"","from":"","client":"ba0486b9-62eb-4b1a-a37e-c00f4e1d641d"},"modified":{"at":"2020-06-30T09:30:13+00:00","by":"8e6c22aa-8c69-4ff8-919a-7032841cf636","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720684627134,"ct":1720684627134,"a_depth":2,"a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"],"inheritedLocks":[null,null,null],"stamps":[],"previous":{"v":"c6b2eefb81fb7d31","f":{"id":"design-form","v":"9bfe8e0cd909c1f0","text":"Design"}},"meta":{"modified":{"at":"2024-07-11T09:57:07+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"d38e7948-7b50-4095-a1fc-84a27873ee1e","v":"123f7b88b7e203c6","previous":{"v":"07234bab979d79e8"},"p":"6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2","f":{"id":"design-form","v":"e3fe9ece11aabc5e","text":"Design"},"data":{"name":"quill-embed","applies":"","template":"<div v-if=\"locals.isImage\" class=\"_CSS-image\" :style=\"{'background-image': 'url(' + Aeppic.Content.getSrc(document, 'datei') + ')' }\">\r\n</div>\r\n<ae-design v-else name=\"title\" :document=\"document\"></ae-design>","css":"._CSS {\r\n  position:relative;\r\n}\r\n\r\n._CSS-image {\r\n  display: block;\r\n  min-height: 200px;\r\n  min-width: 200px;\r\n  background-repeat: no-repeat;\r\n  background-size:cover;\r\n  border-radius: 2px;\r\n  box-shadow: 0 0 15px rgba(0,0,0,0.3);\r\n}","controller":"init() {\r\n  locals.isImage = data.datei.type && data.datei.type.indexOf('image/') === 0\r\n}","packages":[]},"locks":[],"created":{"at":"2017-12-12T17:00:39+01:00","by":"","from":"","client":"900058a2-7787-49c6-b411-d8721dcad81d"},"modified":{"at":"2018-02-27T18:05:51+01:00","by":"","from":"","client":"server"},"t":1519751151256,"ct":1513094438720,"a_depth":4,"a":["apps","3d43a3f5-fea4-488d-9fc1-9dee5e694623","7c30f282-2b84-4976-8735-ba78662ea5e6","6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"e4e6a738-fcd2-4742-bcd8-a0fa21babaee","v":"initial","cloneOf":{"id":"d38e7948-7b50-4095-a1fc-84a27873ee1e","v":"123f7b88b7e203c6","text":"quill-embed"},"originalCloneOf":{"id":"d38e7948-7b50-4095-a1fc-84a27873ee1e","v":"123f7b88b7e203c6","text":"quill-embed"},"p":"dbee6e16-d63a-493c-bba6-505f79918f9f","f":{"id":"design-form","v":"e3fe9ece11aabc5e","text":"Design"},"data":{"name":"quill-embed","applies":"","template":"<div v-if=\"locals.isImage\" class=\"_CSS-image\" :style=\"{'background-image': 'url(' + Aeppic.Content.getSrc(document, 'datei') + ')' }\">\r\n</div>\r\n<ae-design v-else name=\"title\" :document=\"document\"></ae-design>","css":"._CSS {\r\n  position:relative;\r\n}\r\n\r\n._CSS-image {\r\n  display: block;\r\n  min-height: 200px;\r\n  min-width: 200px;\r\n  background-repeat: no-repeat;\r\n  background-size:cover;\r\n  border-radius: 2px;\r\n  box-shadow: 0 0 15px rgba(0,0,0,0.3);\r\n}","controller":"init() {\r\n  locals.isImage = data.datei.type && data.datei.type.indexOf('image/') === 0\r\n}","packages":[]},"locks":[],"created":{"at":"2020-06-24T12:54:35+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2020-06-24T12:54:35+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1593003275162,"ct":1593003275162,"a_depth":4,"a":["apps","45ada186-e9fd-451d-9dbd-2defc0b4f86f","4ec6a0e5-cf2d-4095-9b70-2e31a64d5679","dbee6e16-d63a-493c-bba6-505f79918f9f"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","bc036ad0-6dbc-415b-b506-325fb0a44046","8ffb21f4-3d63-4824-a633-10a19d7aa7d8","f8fd3176-4995-455f-a8a8-d2742a836816"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"3e753979-b5c3-4918-b81e-61f51057d6d2","text":"abstract","v":"1129734e80cca08f"},"created":{"at":"2025-05-08T14:46:00+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1746715560969,"data":{"aliases":[],"controller":"class Controller {\n\n  get address() {\n    const address = [\n      document.data.adresse.street,\n      document.data.adresse.street && ' ',\n      document.data.adresse.streetNumber,\n      document.data.adresse.supplement,\n      (document.data.adresse.street || document.data.adresse.streetNumber || document.data.adresse.supplement) && ', ',\n      document.data.adresse.postalCode,\n      document.data.adresse.postalCode && ' ',\n      document.data.adresse.city,\n    ]\n\n    return address.filter(p => !!p).join('').trim()\n  }\n\n}","css":"","description":"","name":"rd:abstract","packages":[],"template":"<div class=\"break-all\">\n\n  <div class=\"pb-2\" v-if=\"data.firma\">\n    <ae-icon class=\"far fa-building\"></ae-icon>\n    {{ data.firma }}\n  </div>\n  <div class=\"pb-2\" v-if=\"data.geburtsdatum\">\n    <ae-icon class=\"far fa-birthday-cake\"></ae-icon>\n    {{ Aeppic.DateTime.fromISO(data.geburtsdatum).toLocaleString(Aeppic.DateTime.DATE_SHORT) }}\n  </div>\n\n  <div class=\"pb-2\" v-if=\"data.festnetz\">\n    <ae-icon class=\"far fa-phone\"></ae-icon>\n    <a class=\"ae-link\" :href=\"'tel:' + data.festnetz\">{{data.festnetz}}</a>\n  </div>\n  <div class=\"pb-2\" v-if=\"data.mobil\">\n    <ae-icon class=\"far fa-phone\"></ae-icon>\n    <a class=\"ae-link\" :href=\"'tel:' + data.mobil\">{{data.mobil}}</a>\n  </div>\n  <div class=\"pb-2\" v-if=\"data.telefon3\">\n    <ae-icon class=\"far fa-phone\"></ae-icon>\n    <a class=\"ae-link\" :href=\"'tel:' + data.telefon3\">{{data.telefon3}}</a>\n  </div>\n\n  <div class=\"pb-2\" v-if=\"data.email\">\n    <ae-icon class=\"far fa-at\"></ae-icon>\n    <a class=\"ae-link\" :href=\"'mailto:' + data.email\">{{data.email}}</a>\n  </div>\n  <div class=\"pb-2\" v-if=\"data.email2\">\n    <ae-icon class=\"far fa-at\"></ae-icon>\n    <a class=\"ae-link\" :href=\"'mailto:' + data.email2\">{{data.email2}}</a>\n  </div>\n  <div class=\"pb-2\" v-if=\"data.email3\">\n    <ae-icon class=\"far fa-at\"></ae-icon>\n    <a class=\"ae-link\" :href=\"'mailto:' + data.email3\">{{data.email3}}</a>\n  </div>\n\n  <div class=\"pb-2\" v-if=\"data.url\">\n    <ae-icon class=\"far fa-link\"></ae-icon>\n    <a class=\"ae-link\" target=\"_blank\" :href=\"data.url.startsWith('http') ? data.url : 'http://' + data.url\">{{data.url}}</a>\n  </div>\n\n  <div class=\"pb-2\" v-if=\"controller.address\">\n    <ae-icon class=\"far fa-location-arrow\"></ae-icon>\n    {{ controller.address }}\n  </div>\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"0061789efb5c5c29"},"id":"31775515-98e3-4770-a0e4-ef6295e8bf57","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-05-08T14:47:43+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"3e753979-b5c3-4918-b81e-61f51057d6d2","text":"abstract","v":"1129734e80cca08f"},"p":"f8fd3176-4995-455f-a8a8-d2742a836816","previous":{"v":"3cb8fe6aeb152120"},"stamps":[],"t":1746715663325,"v":"0436d499dd097b5c"},{"id":"4a08774e-ba0c-457a-9cbd-d7b551dbd9c3","v":"cfad14d47a10c0a3","cloneOf":{"id":"387912e2-9e5c-4e8d-8bc6-aa440eefadcb","v":"a37205094068df6d","text":"abstract"},"originalCloneOf":{"id":"387912e2-9e5c-4e8d-8bc6-aa440eefadcb","v":"a37205094068df6d","text":"abstract"},"previous":{"v":"da5881513eb6aad4"},"p":"6f641574-7cb6-424a-9657-4b8d652a2cf7","f":{"id":"design-form","v":"0061789efb5c5c29","text":"Design"},"data":{"name":"rd:abstract","template":"<div class=\"break-all flex flex-col gap-1\">\n\n  <div v-if=\"data.position\">\n    {{ data.position }}\n  </div>\n  <div v-if=\"data.abteilung\">\n    {{ data.abteilung }}\n  </div>\n\n  <div v-for=\"phone of data.telefon\">\n    <ae-icon class=\"far fa-phone\"></ae-icon>\n    <a class=\"ae-link\" :href=\"'tel:' + phone\">{{phone}}</a>\n  </div>\n\n  <div v-for=\"email of data.email\">\n    <ae-icon class=\"far fa-at\"></ae-icon>\n    <a class=\"ae-link\" :href=\"'mailto:' + email\">{{email}}</a>\n  </div>\n\n  <div v-for=\"url of data.url\">\n    <ae-icon class=\"far fa-globe\"></ae-icon>\n    <a class=\"ae-link\" target=\"_blank\" :href=\"url\">{{url}}</a>\n  </div>\n\n\n  <div v-if=\"controller.address\">\n    <ae-icon class=\"fa fa-location-arrow\"></ae-icon>\n    {{ controller.address }}\n  </div>\n\n</div>\n \n ","css":"","controller":"class Controller {\n\n  get address() {\n    const address = [\n      document.data.adresse.street,\n      document.data.adresse.streetNumber,\n      (document.data.adresse.street || document.data.adresse.streetNumber) && ', ',\n      document.data.adresse.postalCode,\n      document.data.adresse.city,\n    ]\n\n    return address.join(' ').trim()\n  }\n\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-10-30T15:28:36+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-10-30T15:46:43+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1698680803393,"ct":1698679716562,"a_depth":4,"a":["apps","37fafb3d-18da-4182-af74-082971d50956","c27d5f5f-22ff-4341-935c-02bfdc3e1ee0","6f641574-7cb6-424a-9657-4b8d652a2cf7"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"b5383d23-0726-4d8e-85f1-7615b728fab6","v":"7277d396bb3f74ce","cloneOf":{"id":"7c4b87e6-a7c7-4a1a-82ac-e0705daab84c","v":"21e8c5af76b03691","text":"abstract"},"originalCloneOf":{"id":"7c4b87e6-a7c7-4a1a-82ac-e0705daab84c","v":"21e8c5af76b03691","text":"abstract"},"previous":{"v":"f2fb0d04acf689f6"},"p":"d2ac3563-3c3f-4f02-b923-9b67abf98d10","f":{"id":"design-form","v":"74db9b6ed94b41d9","text":"Design"},"data":{"name":"rd:abstract","template":"<div class=\"break-words flex flex-col gap-1\">\n  <div class=\"text-neutral-700\" v-if=\"data.position\">\n  {{ data.position }}\n  </div>\n\n  <div class=\"text-neutral-500\" v-if=\"data.kuerzel\">\n  Kürzel: {{ data.kuerzel }}\n  </div>\n\n  <div v-if=\"data.beschreibung.slice(0, 400)\" class=\"whitespace-pre-line text-ellipsis overflow-hidden\">\n  {{ data.beschreibung.slice(0, 400) }}<template v-if=\"data.beschreibung.length > 400\">...</template>\n  </div>\n</div> ","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-10-31T11:35:22+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2024-02-29T10:48:55+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1709203735884,"ct":1698752122751,"a_depth":4,"a":["apps","144e85c0-d7f9-4b20-8928-be30f0c78bda","8e6ee7d3-9122-4a2e-8aaf-9fb3bd204b23","d2ac3563-3c3f-4f02-b923-9b67abf98d10"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","77ee8815-2c3a-4bb5-abd9-90541a545a24","1cc4b977-c14d-4587-af47-d6ac230f60b3"],"a_depth":3,"a_forms":["folder","application-form","design-folder"],"created":{"at":"2024-04-26T13:47:48+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1720684627135,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    if (!params.fieldName) {\n      throw new Error('provide params.fieldName')\n    }\n    \n    locals.original = null\n    locals.converted = null\n\n    locals.isIosDevice = false\n\n    this.displayableTypes = [\n      'application/pdf'\n    ]\n\n    this.displayableTypesStartingWith = [\n      'image/',\n      'video/',\n      'application/vnd.oasis.opendocument'\n    ]\n\n    this.displayableTypesIncluding = [\n      'word',\n      'spreadsheet',\n      'powerpoint',\n      'presentation',\n      'mspublisher',\n    ]\n\n    this.subscribeConverted()\n    this.subscribeOriginal()\n\n    locals.isIosDevice = /iPad|iPhone|iPod/.test(Aeppic.navigator?.userAgent || '')\n  }\n\n  fileNameWithUploadedExtension(fileDocument, fieldName) {\n    const fileField = fileDocument.data[fieldName]\n    const name = document.data.name || fileField.name\n\n    try {\n      const parts = fileField.name.split('.')\n      const extension = parts.slice(-1)[0]\n\n      if (name.endsWith(extension)) {\n        return name\n      }\n\n      return `${name}.${extension}`\n    } catch (e) {\n      return name\n    }\n  }\n\n  get canPrint() {\n    if (params.noPrint) {\n      return false\n    }\n\n    const field = data[params.fieldName]\n    return !field.type.startsWith('video/') && !field.type.startsWith('image/') && this.isDocumentDisplayable\n  }\n\n  get hasPreview() {\n    const field = data[params.fieldName]\n    return !field.type.startsWith('video/') && !field.type.startsWith('image/') && !field.type.startsWith('application/pdf') && this.isDocumentDisplayable\n  }\n\n  get isOfficeDocument() {\n    const type = document.data[params.fieldName].type\n\n    return this.displayableTypesIncluding.some(t => type.includes(t))\n  }\n\n  get isDocumentDisplayable() {\n    const type = document.data[params.fieldName].type\n\n    if (type == null || typeof type !== 'string') {\n      return false\n    }\n\n    for (const t of this.displayableTypes) {\n      if (t === type) {\n        return true\n      }\n    }\n\n    for (const t of this.displayableTypesStartingWith) {\n      if (type.startsWith(t)) {\n        return true\n      }\n    }\n\n    for (const t of this.displayableTypesIncluding) {\n      if (type.includes(t)) {\n        return true\n      }\n    }\n\n    return false\n  }\n\n  subscribeOriginal() {\n    Aeppic.subscribe(`p:${document.id} f.id:8bf0fb31-716d-4b76-98d8-b7349f1d7529 data.name:original`, (documents) => {\n      locals.original = documents[0]\n    })\n  }\n  subscribeConverted() {\n    Aeppic.subscribe(`p:${document.id} f.id:8bf0fb31-716d-4b76-98d8-b7349f1d7529 data.name:converted`, (documents) => {\n      locals.converted = documents[0]\n    })\n  }\n\n  get hasDownloadableConverted() {\n    const hasConverted = locals.converted && locals.original\n\n    if (!hasConverted) {\n      return false\n    }\n\n    const isConvertedVideo = locals.converted.data.file.type.startsWith('video/')\n\n    return isConvertedVideo\n  }\n\n  getFileNameWithoutExtension(filename) {\n    const parts = filename.split('.')\n\n    if (parts.length === 1) {\n      return filename\n    }\n\n    const extension = parts.pop()\n    return parts.join('')\n  }\n\n// NOTE (2025-02-28, rscheinpflug): WARNING this loads the hole object into RAM. \n// Workaround for iOS not handling images well (by showing no back button in PWA)\n async downloadAsBlob(contentTypeToDownload, doc, fieldName, filename) {\n    let buffer = null\n\n    if (contentTypeToDownload === 'src') {\n      buffer = await Aeppic.Content.getBuffer(doc, fieldName)\n    } else if (contentTypeToDownload === 'pdf') {\n      const pdf = await Aeppic.download(Aeppic.Content.getPdfUrl(doc, fieldName))\n\n      buffer = await pdf.arrayBuffer()\n    }\n\n\n    const field = doc.data[fieldName]\n\n    const blob = new Blob([buffer])\n\n    Aeppic.Modules.FileSaver.saveAs(blob, filename, { type: field.type })\n  }\n}\n","css":"","description":"","name":"rd:abstract_download-and-print-buttons","packages":[],"template":"<div v-if=\"document.data[params.fieldName].dataUrl\" class=\"flex gap-1\" :class=\"{'flex-col': params.displayColumn}\">\n  <template v-if=\"controller.hasDownloadableConverted\">\n    <!-- converted video download -->\n    <template v-if=\"!params.showDownloadOriginalOnly\">\n      <ae-layout\n        v-if=\"locals.isIosDevice\"\n        layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n        param-title=\"Konvertierung herunterladen\"\n        param-text=\"Konvertierung herunterladen\"\n        param-icon=\"far fa-file-image\"\n        @selected=\"controller.downloadAsBlob('src', document, params.fieldName, document.data.name + '.mp4')\"\n      >\n      </ae-layout>\n      <a\n        v-else\n        :href=\"Aeppic.Content.getSrc(document, params.fieldName)\"\n        target=\"_blank\"\n        :download=\"document.data.name + '.mp4'\"\n      >\n        <ae-layout\n          layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n          param-title=\"Konvertierung herunterladen\"\n          param-text=\"Konvertierung herunterladen\"\n          param-icon=\"far fa-file-image\"\n        >\n        </ae-layout>\n      </a>\n    </template>\n\n    <ae-layout\n      v-if=\"locals.isIosDevice\"\n      param-icon=\"far fa-file-image\"\n      layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n      :param-title=\"params.showDownloadOriginalOnly ? 'Herunterladen' : 'Original herunterladen'\"\n      :param-text=\"params.showDownloadOriginalOnly ? 'Herunterladen' : 'Original herunterladen'\"\n      @selected=\"controller.downloadAsBlob('src', locals.original, 'file', controller.fileNameWithUploadedExtension(locals.original, 'file'))\"\n    ></ae-layout>\n    <a\n      v-else\n      :href=\"Aeppic.Content.getSrc(locals.original, 'file')\"\n      target=\"_blank\"\n      :download=\"controller.fileNameWithUploadedExtension(locals.original, 'file')\"\n    >\n      <ae-layout\n        param-icon=\"far fa-file-image\"\n        layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n        :param-title=\"params.showDownloadOriginalOnly ? 'Herunterladen' : 'Original herunterladen'\"\n        :param-text=\"params.showDownloadOriginalOnly ? 'Herunterladen' : 'Original herunterladen'\"\n      >\n      </ae-layout>\n    </a>\n  </template>\n  <template v-else>\n    <!-- no converted file found -->\n    <template v-if=\"controller.hasPreview\">\n      <template v-if=\"!params.noOriginal\">\n        <ae-layout\n          v-if=\"locals.isIosDevice\"\n          layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n          param-icon=\"far fa-file-download\"\n          :param-title=\"params.showDownloadOriginalOnly ? 'Herunterladen' : 'Original herunterladen'\"\n          :param-text=\"params.showDownloadOriginalOnly ? 'Herunterladen' : 'Original herunterladen'\"\n          @selected=\"controller.downloadAsBlob('src', document, params.fieldName, controller.fileNameWithUploadedExtension(document, params.fieldName))\"\n        >\n        </ae-layout>\n        <a\n          v-else\n          :href=\"Aeppic.Content.getSrc(document, params.fieldName)\"\n          target=\"_blank\"\n          :download=\"controller.fileNameWithUploadedExtension(document, params.fieldName)\"\n        >\n          <ae-layout\n            layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n            param-icon=\"far fa-file-download\"\n            :param-title=\"params.showDownloadOriginalOnly ? 'Herunterladen' : 'Original herunterladen'\"\n            :param-text=\"params.showDownloadOriginalOnly ? 'Herunterladen' : 'Original herunterladen'\"\n          >\n          </ae-layout>\n        </a>\n      </template>\n    </template>\n    <template v-else>\n      <ae-layout\n        v-if=\"locals.isIosDevice\"\n        layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n        param-icon=\"far fa-file-download\"\n        param-title=\"Dokument herunterladen\"\n        param-text=\"Herunterladen\"\n        @selected=\"controller.downloadAsBlob('src', document, params.fieldName, controller.fileNameWithUploadedExtension(document, params.fieldName))\"\n      >\n      </ae-layout>\n      <a\n        v-else\n        :href=\"Aeppic.Content.getSrc(document, params.fieldName)\"\n        target=\"_blank\"\n        :download=\"controller.fileNameWithUploadedExtension(document, params.fieldName)\"\n      >\n        <ae-layout\n          layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n          param-icon=\"far fa-file-download\"\n          param-title=\"Dokument herunterladen\"\n          param-text=\"Herunterladen\"\n        >\n        </ae-layout>\n      </a>\n    </template>\n  </template>\n\n  <ae-layout\n    v-if=\"controller.canPrint\"\n    layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n    param-icon=\"far fa-print\"\n    param-title=\"Dokument drucken\"\n    param-text=\"Drucken\"\n    @selected=\"$emit('toolbar', 'print')\"\n  >\n  </ae-layout>\n\n  <!-- as converted pdf file download -->\n  <template v-if=\"controller.hasPreview && !params.showDownloadOriginalOnly\">\n    <ae-layout\n      v-if=\"locals.isIosDevice\"\n      param-icon=\"far fa-file-pdf\"\n      layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n      param-title=\"Aktuelle Ansicht/PDF herunterladen\"\n      param-text=\"PDF herunterladen\"\n      @selected=\"controller.downloadAsBlob('pdf', document, params.fieldName, controller.getFileNameWithoutExtension(document.data.name) + '.pdf')\"\n    >\n    </ae-layout>\n    <a\n      v-else\n      :href=\"Aeppic.Content.getPdfUrl(document, params.fieldName)\"\n      target=\"_blank\"\n      :download=\"controller.getFileNameWithoutExtension(document.data.name) + '.pdf'\"\n    >\n      <ae-layout\n        param-icon=\"far fa-file-pdf\"\n        layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n        param-title=\"Aktuelle Ansicht/PDF herunterladen\"\n        param-text=\"PDF herunterladen\"\n      >\n      </ae-layout>\n    </a>\n  </template>\n\n  <!-- <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\" class=\"ae-ae-layout\" v-if=\"controller.hasPreview && controller.isOfficeDocument\" title=\"\">\n    <ae-icon class=\"far fa-info-circle\"></ae-icon>\n  </ae-layout> -->\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"3324826a-e9ba-4088-940b-bad113183616","inheritedLocks":[null,null,null,null],"locks":[],"meta":{},"modified":{"at":"2026-01-23T09:27:10+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"p":"1cc4b977-c14d-4587-af47-d6ac230f60b3","previous":{"v":"78d4d005f81bd4be"},"stamps":[],"t":1769160430732,"v":"0912d9e7863d8919"},{"a":["apps","77ee8815-2c3a-4bb5-abd9-90541a545a24","1cc4b977-c14d-4587-af47-d6ac230f60b3"],"a_depth":3,"a_forms":["folder","application-form","design-folder"],"created":{"at":"2024-05-15T11:49:10+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1715773750691,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      SharedDocument: '804bed89-803a-4090-8b1b-857cab8ec6dd',\n    }\n    this.SHARE_PREFIX = 'shared'\n    this.STAMMDATEN_FORM = '089eb68f-d2ec-4e30-a3bb-6549d72932ec'\n\n    locals.active = null\n\n    if (!params.buttons) {\n      throw new Error(`Provide buttons like [{ identifier: 'customer', text: 'Kunde', icon: 'far fa-user', passwordFieldName: 'passwortKunde', tokenTemplateFormId: 'aba69172-0a71-41ed-8d72-8ef7a3cb016e' }]`)\n    }\n\n    const checkOk = params.buttons.every(b => b.identifier && b.text && b.tokenTemplateFormId)\n\n    if (!checkOk) {\n      throw new Error('Invalid button config')\n    }\n\n    locals.buttons = params.buttons || []\n    locals.href = ''\n\n    if (params.lastActive) {\n      const tab = locals.buttons.find(tab => tab.identifier === params.lastActive)\n\n      if (tab) {\n        locals.active = tab\n      }\n    }\n\n    if (!locals.active) {\n      const firstTab = locals.buttons[0]\n      locals.active = firstTab \n\n      $emit('selected', firstTab.identifier) \n    }\n  }\n\n  async onButton(tab) {\n    locals.active = tab\n\n    $emit('selected', tab)\n\n    if (!tab?.identifier) {\n      return\n    }\n\n    locals.href = await this.mailto(tab.identifier, tab.tokenTemplateFormId, params.passwordFieldName)\n\n    await Aeppic.nextRenderPass()\n\n    $refs.link.click()\n\n  }\n\n  async mailto(nameOfShare, tokenTemplateFormId, passwordFieldName) {\n    const parts = []\n\n    const recipients = (await Aeppic.getAll(data.empfaenger)).filter(d => d != null)\n\n    const recipientEmails = recipients.filter(r => r && r.data.email).map(r => r.data.email)\n\n    if (recipientEmails.length) {\n      parts.push(recipientEmails.join(','))\n    }\n\n    // if (!parts.length) {\n    //   parts.push('%20')\n    // }\n\n    const hasSubject = !!data.name?.trim()\n\n    if (hasSubject) {\n      parts.push(`?subject=${encodeURIComponent(data.name.trim())}`)\n    }\n \n    const share = await Aeppic.findOne(`p:${document.id} f.id:${this.FORMS.SharedDocument} data.identifier:\"${nameOfShare}\"`)\n\n    if (!share) {\n      throw new Error('No share found for name ' + nameOfShare)\n    }\n\n    const baseUrl = packages.window.location.origin \n    const urlSuffix = !data[passwordFieldName] ? '?auto' : ''\n    const url = `${baseUrl}/${this.SHARE_PREFIX}/${share.id}${urlSuffix}`\n\n    const readableShare = await Aeppic.new('e60d2d83-e63b-4786-87c7-6f932b62f6bb', document.id)\n    readableShare.data.url = url\n\n    const body = encodeURIComponent(`${await this.buildTokenTemplate(readableShare, tokenTemplateFormId)}`)\n\n    if (hasSubject) {\n      parts.push(`&body=${body}`)\n    } else {\n      parts.push(`?body=${body}`)\n    }\n  \n    return `mailto:${parts.join('')}`\n  }\n\n  async buildTokenTemplate(share, tokenTemplateFormId) {\n    const tokenTemplateDocument = await Aeppic.findOne(`a:${document.a[0]} a_forms:${this.STAMMDATEN_FORM} f.id:${tokenTemplateFormId}`)\n    const template = tokenTemplateDocument.data.template\n\n    const parent = await Aeppic.get(document.p)\n    const empfaenger = await Aeppic.get(document.data.empfaenger[0])\n\n    const dataDocuments = [parent, empfaenger, share, document].filter(d => d != null)\n\n    const reportData = await this._generateReportData(dataDocuments)\n\n    const tokenizedTemplate = this._replaceTokensInXml(template, reportData)\n    console.log('-> token template', reportData, tokenizedTemplate)\n \n    return tokenizedTemplate\n  }\n\n  async _generateReportData(dataDocuments) {\n    const reportData = {}\n    const usedFormNames = []\n\n    for (const document of dataDocuments) {\n      const form = await Aeppic.getFormForDocument(document)\n\n      const formName = form.data.name.replace(/\\s/g, '-')\n\n      if (usedFormNames.includes(formName)) {\n        console.warn(\n          'duplicate form name \"%s\" referenced. Ignoring',\n          formName,\n          document\n        )\n\n        continue\n      }\n\n      usedFormNames.push(formName)\n\n      for (const field of form.fields) {\n        const { type, subType, name } = field\n        const value = document.data[name]\n        const fieldName = this._uniformToken(`${formName}_${name}`)\n\n        if (type === 'string' || type === 'number') {\n          reportData[fieldName] = `${value}`\n          \n          continue\n        }\n\n        if (type === 'object' && subType === 'address') {\n          for (const key of Object.keys(value)) {\n            const subFieldName = `${fieldName}_${key}`\n            const subValue = value[key]\n            \n            reportData[subFieldName] = `${subValue}`\n          }\n        }\n\n      }\n    }\n\n    return reportData\n  }\n\n  _replaceTokensInXml(template, documentData) {\n    if (!documentData) {\n      return template\n    }\n\n    for (const token in documentData) {\n      if (!(typeof token === 'string' || typeof token === 'number')) {\n        continue\n      }\n\n      const tokenExp = `$${token}$`\n      \n      const value = documentData[token] ? String(documentData[token]) : ''\n\n      template = template.replace(tokenExp, value)\n    }\n\n    return template\n  }\n\n  _uniformToken(token) {\n    let sanitized = token\n\n    // Ü, ü     \\u00dc, \\u00fc\n    // Ä, ä     \\u00c4, \\u00e4\n    // Ö, ö     \\u00d6, \\u00f6\n    // ß        \\u00df\n    sanitized = sanitized.replace(/\\u00dc/g, 'Ue')\n    sanitized = sanitized.replace(/\\u00fc/g, 'ue')\n    sanitized = sanitized.replace(/\\u00c4/g, 'Ae')\n    sanitized = sanitized.replace(/\\u00e4/g, 'ae')\n    sanitized = sanitized.replace(/\\u00d6/g, 'Oe')\n    sanitized = sanitized.replace(/\\u00f6/g, 'oe')\n    sanitized = sanitized.replace(/\\u00df/g, 'ss')\n\n    return sanitized.toLowerCase()\n  }\n}","css":"","description":"","name":"rd:abstract-share-as-mail-buttons","packages":[{"id":"10843fbf-4f0c-416b-be7d-42d6bbd0ae68","text":"Window","v":"cc146accf5ec1930"}],"template":"<div class=\"h-full flex items-center\">\n  <ae-layout layout-id=\"017828fa-4448-499d-bfaf-45ef6b470b43\"\n            :param-buttons=\"locals.buttons\"\n            :param-collapsed=\"params.showDropdown\"\n            :param-selected-identifier=\"locals.active?.identifier\"\n            @selected=\"controller.onButton($event)\"\n            param-border=\"border-slate-200\"\n  ></ae-layout>\n</div>\n\n<a style=\"display: none;\" ref=\"link\" :href=\"locals.href\" target=\"_blank\"></a>"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"81b07b8d-c7d4-4068-b2cc-7b270bd68fa4","inheritedLocks":[null,null,null,null],"locks":[],"meta":{},"modified":{"at":"2026-07-21T08:55:19+00:00","backedBy":"","by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":""},"p":"1cc4b977-c14d-4587-af47-d6ac230f60b3","previous":{"v":"367f2c487b1c6c7c"},"stamps":[],"t":1784624119636,"v":"b8ba725f2eaba2f3"},{"id":"0b7ebcf2-1381-43f1-a781-f0d56bab2773","v":"767fb96e4ccd2308","previous":{"v":"394061261d0e4eb6"},"p":"5475727b-0e0c-412a-8452-23b9c5b242f2","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"rd:accounting","template":"<ae-design name=\"rd:page-embedded\" :document-id=\"data.accountingFolder.id\"></ae-design>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-05-30T15:01:49+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-05-30T15:02:28+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1653922948022,"ct":1653922909884,"a_depth":4,"a":["apps","9d6ee173-26fe-4472-a271-7667f717094e","6743ef9a-c21b-443f-91b8-4dd86886ee8c","5475727b-0e0c-412a-8452-23b9c5b242f2"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","fdfaf800-858a-4b45-91c9-5bdad7a63672"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2025-08-07T09:43:38+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1754559818091,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.ready = false\n\n    this.FORMS = {\n      Wartungsdurchfuehrung: '1b166603-d0f3-4f16-98c4-0534afbd6f5a',\n      Board: '4ef9e83e-1aa5-4709-bbd5-24e98ea0148c',\n      OldBoard: '43420696-8097-4fc1-88e5-c69df9821470',\n    }\n    this.LOCATIONS = {\n      NewDocumentLocationId: document.id,\n      BoardLocation: document.id,\n    }\n    this.COMMANDGROUPS = {\n      New: 'c46564ae-3b31-45a4-92c9-271fbc1cae88',\n    }\n\n    locals.filter = ''\n    locals.LOCATIONS = this.LOCATIONS\n    locals.FORMS = this.FORMS\n\n    await this.setBoard()\n    locals.boardDocuments = []\n\n    Aeppic.subscribe(this.search, { size: 99999 }, (newDocuments) => {\n      locals.boardDocuments = newDocuments\n    })\n\n    locals.ready = true\n  }\n\n  async setBoard() {\n    // Find existing board\n    locals.board = await Aeppic.findOne(`p:${this.LOCATIONS.BoardLocation} f:${this.FORMS.Board} data.form:${this.FORMS.Wartungsdurchfuehrung}`)\n    if (locals.board) {\n      return\n    }\n\n    // Find old board to migrate\n    locals.oldBoard = await Aeppic.findOne(`p:${this.LOCATIONS.BoardLocation} f:${this.FORMS.OldBoard} data.form:${this.FORMS.Wartungsdurchfuehrung}`)\n    if (locals.oldBoard) {\n      await Aeppic.Commands.execute('2123d205-09aa-462e-a271-8f70624bd407', locals.oldBoard.id)\n      return\n    }\n    \n    // Clone new board from template\n    const boardAndComponents = (await Aeppic.cloneDeep(this.DOCUMENTS.NewBoardTemplate, this.LOCATIONS.BoardLocation))\n    Aeppic.saveAll(boardAndComponents.documents)\n    locals.board = boardAndComponents.root\n  }\n\n  get filter() {\n    // return [locals.filter, 'data.verantwortlich:' + Aeppic.ProfilePage.id].join(' ')\n    return [locals.filter].join(' ')\n  }\n\n  get search() {\n    const base = 'a:' + document.id + ' f.id:' + locals.FORMS.Wartungsdurchfuehrung\n\n    if (this.filter) {\n      return `${base} ${this.filter.trim()}`\n    }\n    return base\n  }\n}\n","css":"","description":"","name":"rd:active","packages":[],"template":"<!-- <ae-design\n  name=\"rd:page-list\"\n  :document=\"document\"\n  :params=\"{ ...params, formId: '1b166603-d0f3-4f16-98c4-0534afbd6f5a', initialSort: 'created.at' }\"\n></ae-design>\n -->\n<div class=\"h-full flex flex-col\">\n  <ae-design \n    name=\"rd:toolbar\"\n    class=\"mb-2 mx-2\"\n    :document=\"document\"\n    :param-list-form-id=\"controller.FORMS.Wartungsdurchfuehrung\"\n    :param-disable-new=\"true\"\n    @filter=\"locals.filter = $event\"\n    :param-disable-sort=\"true\"\n  ></ae-design>\n\n  <div v-if=\"locals.ready\" class=\"flex-1 min-h-0\">\n    <ae-layout\n      class=\"xflex-1 xmin-h-0 h-full\"\n      layout-id=\"1d3dc097-ae91-409d-99cb-43c236be89aa\"\n      :param-board=\"locals.board\"\n      :param-documents=\"locals.boardDocuments\"\n      :param-new-document-location-id=\"locals.LOCATIONS.NewDocumentLocationId\"\n      :param-new-document-command-group-id=\"controller.COMMANDGROUPS.New\"\n      :param-pre-sort=\"[{field: 'created.at', descending: true}, {field: 'modified.at', descending: true}]\"\n      :param-filter=\"locals.filter\"\n      :param-hide-filter=\"true\"\n      :param-readonly=\"true\"\n      :param-search-options=\"{searchAllFields: true}\"\n      :xparam-default-view=\"{mode: 'reference', fieldName: 'kategorie'}\"\n      @selected=\"Aeppic.drillInto($event, arguments[1])\"\n    ></ae-layout>\n  </div>\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"3b5af435-30bc-4a74-b829-87c26086355a","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-04-07T06:57:01+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"p":"fdfaf800-858a-4b45-91c9-5bdad7a63672","previous":{"v":"d644eaa5f7771f44"},"stamps":[],"t":1775545021217,"v":"7dd90950f560a4ce"},{"a":["apps","d8c9a42b-e289-4c9a-97ea-801de8ab480a","db8e20d1-732c-4c6b-9cfc-b323f83fa378","e6b7aced-aaa0-49a4-b573-cfa307595402"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"a328591a-e5be-454f-bba6-d1f3a4e23359","text":"rd:agenda","v":"821e86cb74b219f9"},"created":{"at":"2023-12-15T16:07:58+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1702656478441,"data":{"aliases":[],"controller":"class Controller {\n  init() {\n    locals.formToColor = {\n      '0deb4864-cbb6-420c-99ee-337c7444ab24': 'bg-green-600',\n      '84ede5f8-c5af-4113-8235-4b7fa528e265': 'bg-blue-600',\n      'e6b7aced-aaa0-49a4-b573-cfa307595402': 'bg-blue-600',\n    }\n  }\n}","css":"","description":"","name":"rd:agenda","packages":[],"template":"<div class=\"flex gap-2 p-1 items-center overflow-hidden\" @click.stop=\"$emit('selected', document)\">\n  <!-- :class=\"{ 'opacity-60': data.erledigt }\" -->\n\n  <div class=\"w-16 flex flex-col items-center\">\n    <ae-design\n      class=\"font-bold\"\n      :class=\"{ 'text-xl': !document.data.end || !document.data.hasTime }\"\n      name=\"rd:date\"\n      :document=\"document\"\n      param-field-name=\"start\"\n      param-field-name-has-time=\"hasTime\"\n      param-type=\"time\"\n      :param-no-min-width=\"true\"\n    ></ae-design>\n    <template v-if=\"document.data.end && document.data.hasTime\">\n      <ae-icon class=\"far fa-minus\"></ae-icon>\n      <ae-design\n        class=\"font-bold\"\n        name=\"rd:date\"\n        :document=\"document\"\n        param-field-name=\"end\"\n        param-field-name-has-time=\"hasTime\"\n        param-type=\"time\"\n        :param-no-min-width=\"true\"\n      ></ae-design>\n    </template>\n  </div>\n\n  <div\n    class=\"min-w-[4px] w-[4px] text-2xl self-stretch rounded-md\"\n    :class=\"[locals.formToColor[document.f.id] || 'bg-neutral-600']\"\n  ></div>\n  <!-- <ae-design name=\"rd:title-action\" :document=\"document\" class=\"text-xs\" :param-readonly=\"params.readonly\" :param-only-done=\"true\"></ae-design> -->\n\n  <div class=\"flex-1 flex flex-col overflow-hidden\">\n    <div class=\"flex items-center text-sm gap-1\">\n      <ae-design name=\"rd:icon\" :document-id=\"document.p\" class=\"text-neutral-600\"></ae-design>\n      <ae-design name=\"title\" :document-id=\"document.p\" class=\"text-neutral-600\"></ae-design>\n    </div>\n    <div class=\"truncate\">\n      <!-- :class=\"{ 'line-through': data.erledigt }\" -->\n      {{ data.name }}\n    </div>\n  </div>\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"9e314a7f-ea0a-4dc7-ba76-ac0bb35697a7","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-05-11T13:32:54+00:00","backedBy":"","by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"a328591a-e5be-454f-bba6-d1f3a4e23359","text":"rd:agenda","v":"821e86cb74b219f9"},"p":"e6b7aced-aaa0-49a4-b573-cfa307595402","previous":{"v":"a785077d16c31f47"},"stamps":[],"t":1778506374696,"v":"b3647f54f6827ba1"},{"id":"a328591a-e5be-454f-bba6-d1f3a4e23359","v":"821e86cb74b219f9","previous":{"v":"6eb5427c636c75f2"},"p":"0deb4864-cbb6-420c-99ee-337c7444ab24","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:agenda","template":"<div class=\"flex gap-2 p-1 items-center overflow-hidden\"\n    :class=\"{ 'opacity-60': data.erledigt }\"\n    @click.stop=\"$emit('selected', document)\"\n> \n  \n  <ae-design class=\"font-bold w-16 text-xl\" name=\"rd:date\" :document=\"document\" param-field-name=\"bisStart\" param-field-name-has-time=\"bisDateTime\" param-format=\"HH:mm\" ></ae-design>\n  \n  <div class=\"min-w-[4px] w-[4px] text-2xl self-stretch rounded-md\"\n  :class=\"[locals.formToColor[document.f.id] || 'bg-neutral-600']\"\n  ></div>\n  <!-- <ae-design name=\"rd:title-action\" :document=\"document\" class=\"text-xs\" :param-readonly=\"params.readonly\" :param-only-done=\"true\"></ae-design> -->\n\n  <div class=\"flex-1 flex flex-col overflow-hidden\">\n    <div class=\"flex items-center text-sm gap-1\">\n      <ae-design name=\"rd:icon\" :document-id=\"document.p\" class=\" text-neutral-600\"></ae-design>\n      <ae-design name=\"title\" :document-id=\"document.p\" class=\" text-neutral-600\"></ae-design>\n    </div>\n    <div class=\"truncate\" :class=\"{ 'line-through': data.erledigt }\">\n      {{ data.name }} \n    </div> \n  </div>\n</div>  ","css":"","controller":"class Controller {\n  init() {\n    locals.formToColor = {\n      '0deb4864-cbb6-420c-99ee-337c7444ab24': 'bg-green-600',\n      '84ede5f8-c5af-4113-8235-4b7fa528e265': 'bg-blue-600',\n      'e6b7aced-aaa0-49a4-b573-cfa307595402': 'bg-orange-600',\n    }\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-09-08T14:11:22+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-09-08T15:02:36+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1694185356485,"ct":1694182282793,"a_depth":4,"a":["apps","59edbdbc-2cab-426a-bb42-6e57c5158e4f","3be7e887-1bcd-4c3c-979f-b20a986c4c48","0deb4864-cbb6-420c-99ee-337c7444ab24"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"c96d7339-d547-4d4c-9a30-8ad69a6238f5","v":"c7638a8df74f8d49","cloneOf":{"id":"9e314a7f-ea0a-4dc7-ba76-ac0bb35697a7","v":"1b17e51e25ab6643","text":"rd:agenda"},"originalCloneOf":{"id":"9e314a7f-ea0a-4dc7-ba76-ac0bb35697a7","v":"1b17e51e25ab6643","text":"rd:agenda"},"previous":{"v":"initial"},"p":"84ede5f8-c5af-4113-8235-4b7fa528e265","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:agenda","template":"<div class=\"flex gap-2 p-1 items-center overflow-hidden\"\n    @click.stop=\"$emit('selected', document)\"\n> \n<!-- :class=\"{ 'opacity-60': data.erledigt }\" -->\n\n  <div class=\"w-16 flex flex-col items-center\">\n  <ae-design class=\"font-bold\" :class=\"{ 'text-xl': !document.data.ende || !document.data.wannDateTime }\" name=\"rd:date\" :document=\"document\" param-field-name=\"wann\" param-field-name-has-time=\"wannDateTime\" param-format=\"HH:mm\" ></ae-design>\n  <template v-if=\"document.data.ende && document.data.wannDateTime\">\n    <ae-icon class=\"far fa-minus\"></ae-icon>\n    <ae-design class=\"font-bold\" name=\"rd:date\" :document=\"document\" param-field-name=\"ende\" param-field-name-has-time=\"wannDateTime\" param-format=\"HH:mm\" ></ae-design>\n  </template>\n  </div>  \n\n  <div class=\"min-w-[4px] w-[4px] text-2xl self-stretch rounded-md\"\n  :class=\"[locals.formToColor[document.f.id] || 'bg-neutral-600']\"\n  ></div>\n  <!-- <ae-design name=\"rd:title-action\" :document=\"document\" class=\"text-xs\" :param-readonly=\"params.readonly\" :param-only-done=\"true\"></ae-design> -->\n\n  <div class=\"flex-1 flex flex-col overflow-hidden\">\n    <div class=\"flex items-center text-sm gap-1\">\n      <ae-design name=\"rd:icon\" :document-id=\"document.p\" class=\" text-neutral-600\"></ae-design>\n      <ae-design name=\"title\" :document-id=\"document.p\" class=\" text-neutral-600\"></ae-design>\n    </div>\n    <div class=\"truncate\" >\n      <!-- :class=\"{ 'line-through': data.erledigt }\" -->\n      {{ data.name }} \n    </div> \n  </div>\n</div>  ","css":"","controller":"class Controller {\n  init() {\n    locals.formToColor = {\n      '0deb4864-cbb6-420c-99ee-337c7444ab24': 'bg-green-600',\n      '84ede5f8-c5af-4113-8235-4b7fa528e265': 'bg-amber-600',\n      'e6b7aced-aaa0-49a4-b573-cfa307595402': 'bg-blue-600',\n    }\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-12-18T14:27:59+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-12-18T14:29:18+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1702909758398,"ct":1702909679291,"a_depth":4,"a":["apps","9d6ee173-26fe-4472-a271-7667f717094e","53b70eca-0cef-448b-9674-22a70a937eb1","84ede5f8-c5af-4113-8235-4b7fa528e265"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","31e6efab-61df-4b91-8250-3bfcfd491c6c"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"3a2359b2-3453-4c7d-8582-138e5c760562","text":"rd:facility--worker","v":"c643acf4b05d61c6"},"created":{"at":"2026-02-18T13:57:04+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"ct":1771423024163,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Wartungsduerchfuerhung: '1b166603-d0f3-4f16-98c4-0534afbd6f5a',\n      Arbeit: '8c113cd0-af90-42fa-aa05-f67809d0a9a5',\n      Reparatur: '46a28dfa-7518-4867-9519-a5f4cd9b9967',\n    }\n\n    locals.view = {\n      startWithSection: 1\n    }\n  }\n}","css":"","description":"","name":"rd:aggregate--worker","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"  <ae-form\n    :document=\"document\"\n    :auto-save=\"true\"\n    :auto-save-after=\"1000\"\n    layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\"\n    class=\"w-full\"\n    :readonly=\"params.readonly\"\n  ></ae-form>"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"f8c948c9-a9b7-4054-a9c2-24e926e1c344","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-02-18T14:01:39+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"3a2359b2-3453-4c7d-8582-138e5c760562","text":"rd:facility--worker","v":"c643acf4b05d61c6"},"p":"31e6efab-61df-4b91-8250-3bfcfd491c6c","previous":{"v":"734c3c388c4c12c3"},"stamps":[],"t":1771423299950,"v":"f89034448968df29"},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","f1899d3b-4673-4033-afa0-2d9c540c326d"],"a_depth":3,"a_forms":["folder","application-form","design-folder"],"created":{"at":"2025-03-14T15:16:03+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1741965363640,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:application-workflow-stamp","packages":[],"template":"<div class=\"flex items-center gap-2 text-sm text-primary-800 bg-primary-50 px-1 rounded-md\">\n  <ae-icon class=\"far fa-badge-check\"></ae-icon>\n  <span>{{ data.applicationWorkflowPhaseTitle }} </span>\n</div>"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"d62e8f28-62cb-40a3-9eef-30492a1070e5","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2025-03-14T15:16:47+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"f1899d3b-4673-4033-afa0-2d9c540c326d","previous":{"v":"initial"},"stamps":[],"t":1741965407936,"v":"5434f530ce310f83"},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","50c3c7c5-c3d4-460c-b34d-0d61a4cb09ae"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2023-05-02T13:16:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1683033392632,"data":{"aliases":[],"controller":"class Controller {\n  init() {\n    this.FORMS = {\n      ApplicationFolder: '0bb3d600-faf0-4a5c-b49f-7994d234ae76',\n    }\n\n    locals.search = `p:${document.id} f.id:${this.FORMS.ApplicationFolder}`\n    locals.sort = [\n      { field: 'data.applicationNumber', descending: true },\n      { field: 'data.creationTimestamp', descending: true },\n      { field: 'id', descending: false },\n    ]\n  }\n}","css":"","description":"","name":"rd:applications","packages":[],"template":"\n<div class=\"mx-auto flex flex-col gap-4 w-full bg-white overflow-visible bg-white max-w-5xl px-4 py-2 my-2 xl:shadow-md xl:rounded-md\">\n  <ae-list list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\"\n            :search=\"locals.search\"\n            :sort=\"locals.sort\"\n            @selected=\"Aeppic.drillInto($event, arguments[1])\"\n            param-design=\"rd:card\"\n            :param-divide=\"true\"\n            param-empty-text=\"Keine Anträge erstellt.\"\n  ></ae-list>  \n</div>"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"d42ce38f-0f5c-46cf-8014-9cc98eb1b267","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-05-26T09:08:07+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"50c3c7c5-c3d4-460c-b34d-0d61a4cb09ae","previous":{"v":"36297f1399864ee9"},"stamps":[],"t":1748250487469,"v":"4874f92517a424e9"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","fdfaf800-858a-4b45-91c9-5bdad7a63672"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"3b5af435-30bc-4a74-b829-87c26086355a","text":"rd:active","v":"c7a2464867e532d3"},"created":{"at":"2026-03-27T09:20:07+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"ct":1774603207044,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Archive: 'deccf007-d235-43f7-83d4-28db0e01db02',\n    }\n\n    locals.archive = null\n\n    locals.archive = await Aeppic.findOne(`p:${document.p} f.id:${this.FORMS.Archive}`)\n  }\n}","css":"","description":"","name":"rd:archive","packages":[],"template":"<ae-design\n  name=\"rd:page-inner\"\n  :document=\"locals.archive\"\n></ae-design> \n"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"9331458d-2d38-40a8-8be8-e8a079d34ec0","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-03-27T09:53:59+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"3b5af435-30bc-4a74-b829-87c26086355a","text":"rd:active","v":"c7a2464867e532d3"},"p":"fdfaf800-858a-4b45-91c9-5bdad7a63672","previous":{"v":"9093b343ebadc172"},"stamps":[],"t":1774605239429,"v":"0e89cac08f53defb"},{"a":["apps","9d6ee173-26fe-4472-a271-7667f717094e","6743ef9a-c21b-443f-91b8-4dd86886ee8c","5475727b-0e0c-412a-8452-23b9c5b242f2"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2023-03-08T15:44:06+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1678290246815,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Rechnung: '54da686f-3f74-441b-b686-ed2b71dd35cc',\n      Angebot: 'e9f42b0b-50dd-4e21-9152-02c89b73c6d7',\n      Settings: '7d3b585c-8446-4e4c-937c-98afcac1be00'\n    }\n\n    locals.views = [\n      {\n        id: 'tiles',\n        name: 'Karten',\n        icon: 'fa fa-image',\n      },\n      {\n        id: 'list',\n        name: 'Liste',\n        icon: 'fa fa-list',\n      }\n    ]\n\n    locals.view = locals.views[0].id\n \n    locals.searchDrafts = `a:${document.id} (f.id:${this.FORMS.Rechnung} OR f.id:${this.FORMS.Angebot}) data.erstellt:false data.vorlage:false AND NOT a_forms:6cfeb343-afc3-48ed-8f48-6f6262f1361b`\n    locals.searchUnpayed = `a:${document.id} (f.id:${this.FORMS.Rechnung} OR f.id:${this.FORMS.Angebot}) data.erstellt:true data.bezahlt:false AND NOT a_forms:6cfeb343-afc3-48ed-8f48-6f6262f1361b`\n    locals.searchPayed = `a:${document.id} (f.id:${this.FORMS.Rechnung} OR f.id:${this.FORMS.Angebot}) data.erstellt:true data.bezahlt:true AND NOT a_forms:6cfeb343-afc3-48ed-8f48-6f6262f1361b`\n\n    locals.documents = []\n    locals.settings = null\n\n    \n    locals.searchOptions = {\n      size: 9999,\n      sort: [\n        { field: 'data.datum' },\n        'id',\n      ]\n    }\n\n    this.updateDocuments(params.tab)\n    watchParam('tab', (tab) => this.updateDocuments(tab))\n  }\n\n  async updateDocuments(tab) {\n    locals.documents = []\n\n    if (tab === 'settings') {\n      locals.settings = await Aeppic.findOne(`p:${document.id} f.id:${this.FORMS.Settings}`)\n      return\n    }\n\n    let query = ''\n    if (tab === 'drafts') {\n      query = locals.searchDrafts\n    } else if (tab === 'unpayed') {\n      query = locals.searchUnpayed \n    } else if (tab === 'done') {\n      query = locals.searchPayed\n    }\n\n    locals.documents = await Aeppic.find(query, locals.searchOptions)\n  }\n} ","css":"","description":"","name":"rd:billing","packages":[],"template":"<div class=\"h-full\">\n  <div class=\"xh-full mx-auto flex flex-col gap-4 w-full bg-white overflow-visible bg-white max-w-5xl px-4 py-2 my-2 xl:shadow-md xl:rounded-md\">\n    <template v-if=\"params.tab === 'drafts'\">\n      <div class=\"font-bold px-2 py-1\">\n        Angebote & Rechnungen (Entwurf)\n      </div>\n\n      <ae-design name=\"rd:toolbar\" :document=\"document\"\n                @view=\"locals.view = $event\"\n                @filter=\"locals.filter = $event\"\n                :param-views=\"locals.views\"\n                @sort=\"locals.sort = $event\"\n      ></ae-design>\n\n      <ae-list  list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\"\n                :documents=\"locals.documents\"\n                param-design=\"rd:search-card\"\n                :param-design-params=\"{ showAction: true }\"\n                @selected=\"Aeppic.drillInto($event, arguments[1])\" \n                param-title=\"\"\n                :filter=\"locals.filter\"\n                :xparam-filter-by-month=\"true\"\n                xparam-filter-by-month-field-name=\"datum\"\n      ></ae-list>\n    </template>\n    <template v-else-if=\"params.tab === 'unpayed'\">\n      <div class=\"font-bold px-2 py-1\">\n        Angebote & Rechnungen (Nicht bezahlt)\n      </div>\n       <ae-design name=\"rd:toolbar\" :document=\"document\"\n                @view=\"locals.view = $event\"\n                @filter=\"locals.filter = $event\"\n                :param-views=\"locals.views\"\n                @sort=\"locals.sort = $event\"\n      ></ae-design>\n\n      <ae-list  list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\"\n                :documents=\"locals.documents\"\n                param-design=\"rd:search-card\"\n                :param-design-params=\"{ showAction: true }\"\n                @selected=\"Aeppic.drillInto($event, arguments[1])\"\n                param-title=\"\"\n                :filter=\"locals.filter\"\n\n                :xparam-filter-by-month=\"true\"\n                xparam-filter-by-month-field-name=\"data.datum\"\n      ></ae-list>\n    </template>\n    <template v-else-if=\"params.tab === 'done'\">\n       <div class=\"font-bold px-2 py-1\">\n        Angebote & Rechnungen (Bezahlt)\n      </div>\n       <ae-design name=\"rd:toolbar\" :document=\"document\"\n                @view=\"locals.view = $event\"\n                @filter=\"locals.filter = $event\"\n                :param-views=\"locals.views\"\n                @sort=\"locals.sort = $event\"\n      ></ae-design>\n\n      <ae-list  list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\"\n                :documents=\"locals.documents\"\n                param-design=\"rd:search-card\"\n                :param-design-params=\"{ showAction: true }\"\n                @selected=\"Aeppic.drillInto($event, arguments[1])\"\n                param-title=\"\"\n                :filter=\"locals.filter\"\n\n                :param-filter-by-month=\"true\"\n                param-filter-by-month-field-name=\"data.datum\"\n      ></ae-list>\n    </template>\n    <template v-else-if=\"params.tab === 'settings'\">\n       <div class=\"font-bold px-2 py-1\">\n        Einstellungen\n      </div>\n\n      <ae-design name=\"rd:form\" :document=\"locals.settings\" :param-auto-save=\"true\"></ae-design>\n    </template>\n  </div>\n</div>"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"4f42b18b-4906-4d65-9a69-b3c94735f28c","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-02-14T15:17:31+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"5475727b-0e0c-412a-8452-23b9c5b242f2","previous":{"v":"2c22d855693b0744"},"stamps":[],"t":1739546251642,"v":"7690d3f92b65fa6a"},{"id":"be9b8cee-a64f-4f11-8714-710e0c0d1eb1","v":"a4778ac437fda8da","cloneOf":{"id":"4f42b18b-4906-4d65-9a69-b3c94735f28c","v":"8c1ce2be2e2a5b63","text":"rd:billing"},"originalCloneOf":{"id":"4f42b18b-4906-4d65-9a69-b3c94735f28c","v":"8c1ce2be2e2a5b63","text":"rd:billing"},"previous":{"v":"31cb35dfedf511d1"},"p":"cfd3ce74-9fa5-46c8-a9e9-cba33a3b8e70","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:billing","template":"<div class=\"xh-full\">\n  <div class=\"mx-auto flex flex-col gap-4 w-full bg-white overflow-visible bg-white max-w-5xl px-4 py-2 my-2 xl:shadow-md xl:rounded-md\">\n    <template v-if=\"params.tab === 'drafts'\">\n      <div class=\"font-bold px-2 py-1\">\n        Angebote & Rechnungen (Entwurf)\n      </div>\n\n      <ae-design name=\"rd:toolbar\" :document=\"document\"\n                @view=\"locals.view = $event\"\n                @filter=\"locals.filter = $event\"\n                :param-views=\"locals.views\"\n                @sort=\"locals.sort = $event\"\n                :param-disable-new=\"true\"\n      ></ae-design>\n\n      <ae-list  list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\"\n                :documents=\"locals.documents\"\n                param-design=\"rd:search-card\"\n                :param-design-params=\"{ showAction: true }\"\n                @selected=\"Aeppic.drillInto($event, arguments[1])\"\n                param-title=\"\"\n                :xparam-filter-by-month=\"true\"\n                xparam-filter-by-month-field-name=\"datum\"\n      ></ae-list>\n    </template>\n    <template v-else-if=\"params.tab === 'unpayed'\">\n      <div class=\"font-bold px-2 py-1\">\n        Angebote & Rechnungen (Nicht bezahlt)\n      </div>\n       <ae-design name=\"rd:toolbar\" :document=\"document\"\n                @view=\"locals.view = $event\"\n                @filter=\"locals.filter = $event\"\n                :param-views=\"locals.views\"\n                @sort=\"locals.sort = $event\"\n                :param-disable-new=\"true\"\n      ></ae-design>\n\n      <ae-list  list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\"\n                :documents=\"locals.documents\"\n                param-design=\"rd:search-card\"\n                :param-design-params=\"{ showAction: true }\"\n                @selected=\"Aeppic.drillInto($event, arguments[1])\"\n                param-title=\"\"\n                :xparam-filter-by-month=\"true\"\n                xparam-filter-by-month-field-name=\"data.datum\"\n      ></ae-list>\n    </template>\n    <template v-else-if=\"params.tab === 'done'\">\n       <div class=\"font-bold px-2 py-1\">\n        Angebote & Rechnungen (Bezahlt)\n      </div>\n       <ae-design name=\"rd:toolbar\" :document=\"document\"\n                @view=\"locals.view = $event\"\n                @filter=\"locals.filter = $event\"\n                :param-views=\"locals.views\"\n                @sort=\"locals.sort = $event\"\n                :param-disable-new=\"true\"\n      ></ae-design>\n\n      <ae-list  list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\"\n                :documents=\"locals.documents\"\n                param-design=\"rd:search-card\"\n                :param-design-params=\"{ showAction: true }\"\n                @selected=\"Aeppic.drillInto($event, arguments[1])\"\n                param-title=\"\"\n                :param-filter-by-month=\"true\"\n                param-filter-by-month-field-name=\"data.datum\"\n      ></ae-list>\n    </template>\n    <template v-else-if=\"params.tab === 'settings'\">\n       <div class=\"font-bold px-2 py-1\">\n        Einstellungen\n      </div>\n\n      <ae-design name=\"rd:form\" :document=\"locals.settings\" :param-auto-save=\"true\"></ae-design>\n    </template>\n  </div>\n</div>","css":"","controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Rechnung: '54da686f-3f74-441b-b686-ed2b71dd35cc',\n      Angebot: 'e9f42b0b-50dd-4e21-9152-02c89b73c6d7',\n      Settings: '7d3b585c-8446-4e4c-937c-98afcac1be00'\n    }\n\n    locals.views = [\n      {\n        id: 'tiles',\n        name: 'Karten',\n        icon: 'fa fa-image',\n      },\n      {\n        id: 'list',\n        name: 'Liste',\n        icon: 'fa fa-list',\n      }\n    ]\n\n    locals.view = locals.views[0].id\n \n    locals.searchDrafts = `a:${document.id} (f.id:${this.FORMS.Rechnung} data.erstellt:false data.vorlage:false AND NOT a_forms:6cfeb343-afc3-48ed-8f48-6f6262f1361b) OR (f.id:${this.FORMS.Angebot} data.erstellt:false AND NOT a_forms:6cfeb343-afc3-48ed-8f48-6f6262f1361b)`\n    locals.searchUnpayed = `a:${document.id} (f.id:${this.FORMS.Rechnung} OR f.id:${this.FORMS.Angebot}) data.erstellt:true data.bezahlt:false AND NOT a_forms:6cfeb343-afc3-48ed-8f48-6f6262f1361b`\n    locals.searchPayed = `a:${document.id} (f.id:${this.FORMS.Rechnung} OR f.id:${this.FORMS.Angebot}) data.erstellt:true data.bezahlt:true AND NOT a_forms:6cfeb343-afc3-48ed-8f48-6f6262f1361b`\n\n    locals.documents = []\n    locals.settings = null\n\n    \n    locals.searchOptions = {\n      size: 9999,\n      sort: [\n        { field: 'data.datum' },\n        'id',\n      ]\n    }\n\n    this.updateDocuments(params.tab)\n    watchParam('tab', (tab) => this.updateDocuments(tab))\n  }\n\n  async updateDocuments(tab) {\n    locals.documents = []\n\n    if (tab === 'settings') {\n      locals.settings = await Aeppic.findOne(`p:${document.id} f.id:${this.FORMS.Settings}`)\n      return\n    }\n\n    let query = ''\n    if (tab === 'drafts') {\n      query = locals.searchDrafts\n    } else if (tab === 'unpayed') {\n      query = locals.searchUnpayed \n    } else if (tab === 'done') {\n      query = locals.searchPayed\n    }\n\n    locals.documents = await Aeppic.find(query, locals.searchOptions)\n  }\n} ","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-04-04T13:46:26+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-04-09T09:26:15+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1712654775448,"ct":1712238386159,"a_depth":4,"a":["apps","94a64d89-d204-4918-b147-d717914fb03e","f254ce25-42f1-4333-8ee7-23554bf746c1","cfd3ce74-9fa5-46c8-a9e9-cba33a3b8e70"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","599db2de-4e07-4722-98bd-7f42d498b352","79718664-ed22-4b52-9c10-037881df3578","7be5f2c5-206b-4ab6-9d4d-c4834baf8e32"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"86637196-3e3d-4913-ad5e-b138562416b1","text":"rd:BIZPIN_CORE","v":"bc4c3194fbc64ef2"},"created":{"at":"2025-09-04T08:23:20+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1756974200166,"data":{"aliases":[],"controller":"class Controller {\n  init() {\n    $on('toolbar', (event) => $refs.dashboard.$emit('toolbar', event))\n  }\n}","css":"","description":"","name":"rd:BIZPIN","packages":[{"id":"4a6e27ae-e4a0-4e22-9997-b352899f86f5","text":"Chart.js","v":"c044548d5a0892ce"},{"id":"7fd60096-e527-4f12-95db-90959b630b75","text":"V-Calendar","v":"495544bdab5b839d"},{"id":"10843fbf-4f0c-416b-be7d-42d6bbd0ae68","text":"Window","v":"d4ce6dec568c3dc1"}],"template":"<ae-design name=\"rd:GENERIC_TASK_BASED\" \n           :document=\"document\"\n           :params=\"{ ...params, additionalDesigns: ['rd:news'] }\"\n           class=\"h-full w-full\"\n           ref=\"dashboard\"\n></ae-design>"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"60d2b7e6-4817-466f-97f8-289883f35ea0","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-09-04T08:28:55+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"86637196-3e3d-4913-ad5e-b138562416b1","text":"rd:BIZPIN_CORE","v":"bc4c3194fbc64ef2"},"p":"7be5f2c5-206b-4ab6-9d4d-c4834baf8e32","previous":{"v":"8d993ccdcb5c6abd"},"stamps":[],"t":1756974535063,"v":"38bd25aca695cefa"},{"a":["apps","599db2de-4e07-4722-98bd-7f42d498b352","79718664-ed22-4b52-9c10-037881df3578","7be5f2c5-206b-4ab6-9d4d-c4834baf8e32"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2023-03-10T14:18:48+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1678457928870,"data":{"aliases":[],"controller":"class Controller {\n  init() {\n    $on('toolbar', (event) => $refs.dashboard.$emit('toolbar', event))\n  }\n}","css":"","description":"","name":"rd:BIZPIN_CORE","packages":[{"id":"4a6e27ae-e4a0-4e22-9997-b352899f86f5","text":"Chart.js","v":"c044548d5a0892ce"},{"id":"7fd60096-e527-4f12-95db-90959b630b75","text":"V-Calendar","v":"495544bdab5b839d"},{"id":"10843fbf-4f0c-416b-be7d-42d6bbd0ae68","text":"Window","v":"d4ce6dec568c3dc1"}],"template":"<!-- NOTE: this is  -->\n<ae-design name=\"rd:BIZPIN\" \n           :document=\"document\"\n           :params=\"params\"\n           class=\"h-full w-full\"\n           ref=\"dashboard\"\n></ae-design>"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"86637196-3e3d-4913-ad5e-b138562416b1","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-09-04T08:26:53+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"7be5f2c5-206b-4ab6-9d4d-c4834baf8e32","previous":{"v":"bc4c3194fbc64ef2"},"stamps":[],"t":1756974413162,"v":"7a772a9647f98dee"},{"id":"4d2ffd75-f5c1-44b3-ab83-d73dc391a01c","v":"13db4f8192614737","cloneOf":{"id":"4f230a3c-3ed6-445c-a885-8e2f566309f4","v":"638b39371e923e3c","text":"board"},"originalCloneOf":{"id":"4f230a3c-3ed6-445c-a885-8e2f566309f4","v":"638b39371e923e3c","text":"board"},"previous":{"v":"5e60bfdb2a2d7293"},"p":"5475727b-0e0c-412a-8452-23b9c5b242f2","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"rd:board","template":"<ae-list  list-id=\"04b453b5-df1b-4f5d-912a-be85edd519aa\"\n          :search=\"controller.search\"\n          @selected=\"Aeppic.drillInto($event)\"\n          :search-options=\"{ searchAllFields: true, size: 5000 }\"\n          :sort=\"['data.name', 'id']\"\n          class=\"h-full\"\n          v-if=\"locals.settings\"\n          :params=\"locals.settings.data\"\n          :param-selection-id=\"document.f.id\"\n          :param-disable-filters=\"true\"\n></ae-list>","css":"","controller":"class Controller {\n  async init() {\n    locals.FORMS = {\n      Kunde: '8fc08287-dbcc-4e41-9d5d-28e4cd828943',\n      BoardSettings: '43420696-8097-4fc1-88e5-c69df9821470'\n    }\n    locals.settings = null\n\n    Aeppic.subscribe(`p:${document.id} f.id:${locals.FORMS.BoardSettings}`, { size: 1 }, (docs) => {\n      locals.settings = docs[0]\n    })\n  }\n\n  get search() {\n    const base = 'p:' + document.id + ' f.id:' + locals.FORMS.Kunde\n\n    if (params.filter) {\n      return `${base} ${params.filter.trim()}`\n    }\n\n    return base\n  }\n}  ","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-05-04T14:36:44+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-12-21T15:31:02+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1703172662572,"ct":1651675004182,"a_depth":4,"a":["apps","9d6ee173-26fe-4472-a271-7667f717094e","6743ef9a-c21b-443f-91b8-4dd86886ee8c","5475727b-0e0c-412a-8452-23b9c5b242f2"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","59edbdbc-2cab-426a-bb42-6e57c5158e4f","3be7e887-1bcd-4c3c-979f-b20a986c4c48","0b6a2b21-9425-466e-9e8d-57ec39cc95e1"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2025-05-07T11:06:22+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"ct":1746615982236,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.ready = false\n    this.LOCATIONS = {\n      BoardLocation: document.id,\n      NewDocumentLocation: document.id\n    }\n    this.DOCUMENTS = {\n      NewBoardTemplate: '181b2813-90fb-4725-ab05-87139e01d332',\n    }\n    this.FORMS = {\n      Projekt: '0b6a2b21-9425-466e-9e8d-57ec39cc95e1',\n      Aufgabe: '0deb4864-cbb6-420c-99ee-337c7444ab24',\n      Board: '4ef9e83e-1aa5-4709-bbd5-24e98ea0148c',\n      OldBoard: '43420696-8097-4fc1-88e5-c69df9821470',\n    }\n    this.COMMANDS= {\n      NeueAufgabeCommandId: '4b05c73a-02e1-4b59-a9b4-304057dfb75b',\n      NeuesProjektCommandId: 'ffb5b198-e757-45e2-aff5-f18d6baa8139',\n    }\n    this.COMMANDGROUPS = {\n      NeueAufgabeUndProjekt: '42c266f4-8ca7-45a9-90f9-9bcbd8f39d57'\n    }\n    locals.LOCATIONS = this.LOCATIONS\n    locals.DOCUMENTS = this.DOCUMENTS\n    locals.FORMS = this.FORMS\n    locals.COMMANDS = this.COMMANDS\n    locals.COMMANDGROUPS = this.COMMANDGROUPS\n\n    locals.filter = ''\n    locals.documents = []\n    locals.localStorageKey = `user-pref@design=${design.id}@document=${document.id}`\n\n    Aeppic.subscribe(this.search, {size: 99999}, newDocuments => {\n      const hasChanged = !this.documentsAreEqual(locals.documents, newDocuments)\n      if (hasChanged) {\n        locals.documents = newDocuments\n      }\n    })\n    await this.setBoard()\n    locals.ready = true\n  }\n\n  get filter() {\n    // return [locals.filter, 'data.verantwortlich:' + Aeppic.ProfilePage.id].join(' ')\n    return [locals.filter].join(' ')\n  }\n\n  get search() {\n    const base = `(p:${document.id}) AND (f.id:${locals.FORMS.Projekt} OR f.id:${locals.FORMS.Aufgabe})`\n\n    if (this.filter) {\n      return `${base} ${this.filter.trim()}`\n    }\n    return base\n  }\n\n  async setBoard() {\n    // Find existing board\n    locals.board = await Aeppic.findOne(`p:${this.LOCATIONS.BoardLocation} f:${this.FORMS.Board} data.key:${locals.localStorageKey}`)\n    if (locals.board) {\n      return\n    }\n    // Find old board to migrate\n    locals.oldBoard = await Aeppic.findOne(`p:${this.LOCATIONS.BoardLocation} f:${this.FORMS.OldBoard} data.key:${locals.localStorageKey}`)\n    if (locals.oldBoard) {\n      await Aeppic.Commands.execute('2123d205-09aa-462e-a271-8f70624bd407', locals.oldBoard.id)\n      return\n    }\n    // Clone new board from template\n    const boardAndComponents = (await Aeppic.cloneDeep(this.DOCUMENTS.NewBoardTemplate, this.LOCATIONS.BoardLocation))\n    boardAndComponents.root.data.key = locals.localStorageKey\n    Aeppic.saveAll(boardAndComponents.documents)\n    locals.board = boardAndComponents.root\n  }\n\n  documentsAreEqual(arr1, arr2) {\n    if (!arr1 || !arr2 || arr1.length !== arr2.length) {\n      return false\n    }\n    for (let i = 0; i < arr1.length; i++) {\n      if (\n        arr1[i]?.id !== arr2[i]?.id ||\n        arr1[i]?.v?.id !== arr2[i]?.v?.id\n      ) {\n        return false\n      }\n    }\n    return true\n  }\n}","css":"","description":"","name":"rd:board","packages":[],"template":"<!-- <div \n  v-if=\"false\"\n  class=\"h-full flex flex-col overflow-x-auto overflow-y-hidden\"\n>\n  <ae-design \n    v-if=\"false\"\n    name=\"rd:toolbar\"\n    class=\"mb-2 ml-2\"\n    :document=\"document\"\n    :param-disable-sort=\"true\"\n    :param-list-form-id=\"locals.FORMS.Aufgabe\"\n    :param-commandgroup=\"controller.COMMANDGROUPS.NeueAufgabeUndProjekt\"\n    @filter=\"locals.filter = $event\"\n  ></ae-design>\n</div>\n<ae-layout\n  v-if=\"locals.ready\"\n  class=\"size-full\"\n  layout-id=\"7ee94e29-1c00-4402-9993-47c450cd8a63\"\n  :param-board=\"locals.board\"\n  :param-documents=\"locals.documents\"\n  :param-new-document-location-id=\"locals.LOCATIONS.NewDocumentLocation\"\n  :param-new-document-command-group-id=\"locals.COMMANDGROUPS.NeueAufgabeUndProjekt\"\n  :param-default-view=\"{columndsDocumentFormId: locals.FORMS.ColumnsManual}\"\n></ae-layout> -->\n<div \n  v-if=\"locals.ready\"\n  class=\"h-full flex flex-col overflow-x-auto\"\n>\n  <ae-list v-if=\"data.pins?.length\" list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\" :documents=\"data.pins\"\n          param-design=\"rd:card-with-popup\" :param-horizontal=\"true\"\n  ></ae-list>\n  <ae-design\n    name=\"rd:toolbar\"\n    class=\"mb-2 ml-2\"\n    :document=\"document\"\n    :param-disable-sort=\"true\"\n    :param-list-form-id=\"locals.FORMS.Aufgabe\"\n    :param-commandgroup=\"controller.COMMANDGROUPS.NeueAufgabeUndProjekt\"\n    @filter=\"locals.filter = $event\"\n  ></ae-design>\n  <ae-layout\n    v-if=\"locals.ready\"\n    class=\"w-full flex-1 min-h-0\"\n    layout-id=\"1d3dc097-ae91-409d-99cb-43c236be89aa\"\n    :param-board=\"locals.board\"\n    :param-documents=\"locals.documents\"\n    :param-new-document-location-id=\"locals.LOCATIONS.NewDocumentLocation\"\n    :param-new-document-command-group-id=\"locals.COMMANDGROUPS.NeueAufgabeUndProjekt\"\n    :param-default-view=\"{mode: 'manual'}\"\n    :param-filter=\"locals.filter\"\n    :param-hide-filter=\"true\"\n    :param-board-card-params=\"{showFormNameHeader: true}\"\n    @selected=\"Aeppic.drillInto($event, arguments[1])\"\n  ></ae-layout>\n</div>"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"d4735263-e2cf-4bdd-ac14-38b24444ae5b","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-03-24T11:22:13+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"p":"0b6a2b21-9425-466e-9e8d-57ec39cc95e1","previous":{"v":"147edcc63e5e5407"},"stamps":[],"t":1774351333609,"v":"006f22f109b3a99c"},{"id":"faafc900-2c47-41ab-982d-22599ed8ba34","v":"bc68e70fdb14397a","previous":{"v":"914b79b22f4cba26"},"p":"fdfaf800-858a-4b45-91c9-5bdad7a63672","f":{"id":"design-form","v":"4b1c7a4912f80103","text":"Design"},"data":{"name":"rd:board","template":"<ae-design :name=\"(!params.tab || params.tab === 'active') ? 'rd:active' : 'rd:archive'\" :document=\"document\"\n  :params=\"params\" v-on=\"$listeners\" class=\"size-full\"></ae-design>","css":"","controller":"","packages":[],"parameters":[],"parametersDescriptions":[],"parametersTypes":[],"parametersControls":[],"parametersCardinalities":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2026-03-27T08:42:06+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"modified":{"at":"2026-06-30T13:30:43+00:00","by":"09763886-6748-4a56-8e0e-54a2293ee96b","backedBy":"","impersonatedBy":"","from":"","client":"server"},"t":1782826243433,"ct":1774600926479,"a_depth":4,"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","fdfaf800-858a-4b45-91c9-5bdad7a63672"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","089481c4-a42f-4a98-9bc9-12e9f1131f4b","5fa71c32-0186-4007-92a9-f03a32b0ff33","43420696-8097-4fc1-88e5-c69df9821470"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2025-04-11T07:50:13+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"ct":1744357813267,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.ready = false\n\n    this.FORMS = {\n      Board: '43420696-8097-4fc1-88e5-c69df9821470',\n      ColumnManual: '7ffd7cb7-3f51-459f-8fa1-26de32ff095d',\n      ColumnsManual: 'd94b4c11-de6b-4f8d-8c80-d1614881236a',\n      ColumnReference: 'e7af0745-5a1d-4671-82af-0a0681e74d13',\n      ColumnsReference: 'bd1e3c2f-463f-4df2-91bb-36666a826256',\n      ColumnReferences: 'd6c394cd-7e18-4602-a222-eaf419ff9922',\n      ColumnsReferences: 'cf83727e-718b-472b-83ca-5bb793f8f30b',\n      ColumnSwitch: 'd2d60610-aa7b-4f73-9a2a-7655e8955234',\n      ColumnsSwitch: '98ba1258-42b7-4a98-adee-ca683502f4bb',\n      ColumnSelectText: '0433f3dc-f144-4f59-823e-8f0d32118ebe',\n      ColumnsSelectText: '447b3702-8242-46ea-953c-f59f50376b30',\n      ColumnSelectNumber: 'f780b382-da9e-4ba3-98ef-1b8106e1e73c',\n      ColumnsSelectNumber: 'a22a54e0-cd5d-4fcb-aae9-e31a3f238c8e',\n      Command: 'command-form',\n      CommandGroup: 'command-group-form',\n    }\n    this.TEMPLATES\n\n    if (!params.newDocumentsCommandId !== !params.newDocumentsLocationId) {\n      locals.error = 'Provide both params.newDocumentsCommandId and params.newDocumentsLocationId'\n      throw new Error(locals.error)\n    }\n\n    locals.rerenderCreateColumnPopupKey = \"\"\n\n    locals.documents = params.documents ?? []\n\n    // This document holds references in its column field to all the columns\n    locals.columnsDocument = null\n    // Every document holds information about every column\n    locals.columnDocuments = []\n    locals.backlogDocument = null\n\n    // This stores the global filter settings\n    locals.filter = ''\n    locals.parentFilter = params.filter || ''\n\n    // Used when creating a new column\n    locals.newColumn = null\n    locals.columnFilter = null\n    locals.columnFilterOptions = []\n\n    // Local Storage stores:\n    // View / columnsDocument\n    // Collapsed Columns\n    this.localStorageKey = `board-id-${document.id}`\n    // {\n    //   columnsDocumentId: ___,\n    //   showBacklog: false\n    // }\n\n    //This is for document deletion\n    locals.toDeleteDocuments = []\n\n    // This decides what you can filter by and which modes you can use. If it's null, you can only use manual mode\n    watchParam('filter', (filter) => {\n      if (locals.parentfilter === filter) {\n        return\n      }\n      locals.parentFilter = filter\n    })\n\n    watchParam('documents', (docs) => {\n      params.debug && console.log(\"Watch Param documents in rd:board\")\n      if (\n        docs.length === locals.documents.length &&\n        docs.every((doc, index) => {\n          return doc.id === locals.documents[index].id && doc.v === locals.documents[index].v\n        })\n      ) {\n        return\n      }\n      locals.documents = [...(docs ?? [])]\n    })\n\n    if (!params.newDocumentLocationId) {\n      throw new Error('Provide params.newDocumentLocationId. The pseudo document is created there.')\n    }\n\n    locals.commandIds = await this.getCommandIds()\n\n    locals.pseudoDocument = await Aeppic.new(data.form[0], params.newDocumentLocationId)\n\n    locals.columnsDocuments = await this.getColumnsDocuments()\n\n    const {columnsDocumentId, showBacklog} = Aeppic.LocalStorage.getValue(this.localStorageKey) || this.initLocalStorage()\n    locals.showBacklog = showBacklog\n    this.columnsDocumentWatcher = null\n    await this.switchView(locals.columnsDocuments.find(doc => doc.id === columnsDocumentId) || this.defaultView || locals.columnsDocuments[0] || null)\n  }\n\n  get defaultView() {\n    if (!params.defaultView) {\n      return null\n    }\n    const {columndsDocumentFormId, fieldName} = params.defaultView\n    if (!!columndsDocumentFormId && !!fieldName) {\n      return locals.columnsDocuments.find(doc => {\n        return doc.f.id === columndsDocumentFormId && doc.data.fieldName === fieldName\n      })\n    } else if (!!columndsDocumentFormId) {\n      return locals.columnsDocuments.find(doc => {\n        return doc.f.id === columndsDocumentFormId\n      })\n    }\n    return null\n  }\n\n  async getColumnsDocuments() {\n    const result = []\n    // manual\n    const listColumnsManual = Array.isArray(data.listColumnsManual) ? data.listColumnsManual : [data.listColumnsManual] // needed for older board-form-version\n    result.push(...(await Aeppic.getAll(listColumnsManual)))\n    // select text\n    result.push(...(await Aeppic.getAll(data.listColumnsSelectText)))\n    // select number\n    result.push(...(await Aeppic.getAll(data.listColumnsSelectNumber)))\n    // switch\n    result.push(...(await Aeppic.getAll(data.listColumnsSwitch)))\n    // references\n    result.push(...(await Aeppic.getAll(data.listColumnsReferences)))\n    // reference\n    result.push(...(await Aeppic.getAll(data.listColumnsReference)))\n\n    if (result.length === 0) {\n      throw new Error('Could not find any views')\n    }\n\n    return result\n  }\n\n  async switchView(columnsDocument) {\n    // debugger\n    // Watch executes the callback when initialized.\n    if (this.columnsDocumentWatcher) {\n      this.columnsDocumentWatcher.stop()\n    }\n    this.columnsDocumentWatcher = Aeppic.watch(columnsDocument, async (newColumnsDocument) => {\n      if (locals.columnsDocument?.v === newColumnsDocument.v && locals.columnsDocument?.id === newColumnsDocument.id) {\n        return\n      }\n      if (!newColumnsDocument.data.columns) {\n        throw new Error(`The columns value of document ${newColumnsDocument.id} must be an array.`)\n      }\n      if (!newColumnsDocument.data.backlog?.id && newColumnsDocument?.f.id === this.FORMS.ColumnsSwitch) {\n        console.warn(`${newColumnsDocument.id} has no backlog.`)\n      }\n      locals.ready = false\n      // debugger\n      locals.columnsDocument = newColumnsDocument\n      locals.columnDocuments = await Aeppic.getAll(newColumnsDocument.data.columns ?? [])\n      locals.backlogDocument = await Aeppic.get(columnsDocument.data.backlog?.id)\n\n      // Local storage\n      const storage = Aeppic.LocalStorage.getValue(this.localStorageKey) || this.initLocalStorage()\n      storage.columnsDocumentId = columnsDocument.id\n      Aeppic.LocalStorage.setValue(this.localStorageKey, storage)\n\n      locals.ready = true\n    })\n  }\n\n  async onDeleteColumn(column) {\n    const editColumnDocument = await Aeppic.edit(locals.columnsDocument)\n    editColumnDocument.removeReference('columns', column.id)\n    // Später über Buisinessregel Spaltendokumente löschen\n    Aeppic.save(editColumnDocument)\n    Aeppic.delete(column)\n  }\n\n  async onDeleteDocument(doc) {\n    // Received, when document is dropped into trash can. You could just delete it immediatly, but we wait for comfirmation.\n    locals.hoversTrash = false\n    params.debug && console.log('Received Delete Document Event', doc)\n  }\n\n  onTrashEnter() {\n    console.log('Entered Trash')\n    locals.hoversTrash = true\n  }\n\n  onTrashLeave() {\n    console.log('Left Delete')\n    locals.hoversTrash = false\n  }\n\n  onConfirmDelete() {\n    const ids = new Set(locals.toDeleteDocuments.map(doc => doc.id))\n    for (const id of ids) {\n      Aeppic.delete(id)\n    }\n\n    locals.toDeleteDocuments = []\n    locals.hoversTrash = false\n  }\n\n  onCancelDelete() {\n    locals.toDeleteDocuments = []\n    locals.hoversTrash = false\n  }\n\n  onTrashChange(event) {\n    console.log(\"Trash Changed\")\n    locals.toDeleteDocuments = [... new Set(locals.toDeleteDocuments)]\n  }\n\n  async onMoveColumnLeft(columnId) {\n    const editColumnsDocument = await Aeppic.edit(locals.columnsDocument)\n    const cols = editColumnsDocument.data.columns\n    const index = cols.findIndex((colRef) => colRef.id === columnId)\n    if (index === -1 || index === 0) {\n      return\n    }\n    ;[cols[index], cols[index - 1]] = [cols[index - 1], cols[index]]\n    Aeppic.save(editColumnsDocument)\n  }\n\n  async onMoveColumnRight(columnId) {\n    const editColumnsDocument = await Aeppic.edit(locals.columnsDocument)\n    const cols = editColumnsDocument.data.columns\n    const index = cols.findIndex((colRef) => colRef.id === columnId)\n    if (index === -1 || index === cols.length - 1) {\n      return\n    }\n    ;[cols[index], cols[index + 1]] = [cols[index + 1], cols[index]]\n    Aeppic.save(editColumnsDocument)\n  }\n\n  async showCreateColumnPopup(event) {\n    // debugger\n    if ($refs.createColumn.visible) {\n      $refs.createColumn.close()\n      return\n    }\n    if (!locals.columnsDocument) {\n      return\n    }\n    if (locals.columnsDocument.f.id === this.FORMS.ColumnsManual) {\n      locals.columnFilter = null\n      locals.columnFilterOptions = []\n      locals.newColumn = await Aeppic.new(this.FORMS.ColumnManual, locals.columnsDocument)\n      $refs.createColumn.show(event)\n    } else if (locals.columnsDocument.f.id === this.FORMS.ColumnsSelectNumber || locals.columnsDocument.f.id === this.FORMS.ColumnsSelectText) {\n      // rest the filter\n      locals.columnFilter = null\n      // find the field specified in the columnsDocument\n      const field = (await Aeppic.getForm(data.form[0])).fields.find(\n        (field) => field.name === locals.columnsDocument.data.fieldName\n      )\n      const existingSelectColumns = locals.columnDocuments.map((doc) => doc.data.filter)\n      locals.columnFilterOptions = field.settings.options\n        .filter((option) => !existingSelectColumns.includes(option.value))\n        .map((option) => {\n          let display = option.display\n          // If the select is of type text, use the value, since its also a string. It could still be an empty string, but that is handled in the template\n          if (locals.columnsDocument.f.id === this.FORMS.ColumnsSelectText && !display) {\n            display = option.value\n          }\n          return {\n            value: option.value,\n            display: display,\n            disabled: false,\n          }\n        })\n      if (locals.columnFilterOptions.length === 0) {\n        locals.columnFilterOptions = [\n          {\n            value: 0,\n            display: 'Alle Spalten angezeigt',\n            disabled: true,\n          },\n        ]\n      }\n      if (locals.columnsDocument.f.id === this.FORMS.ColumnsSelectNumber) {\n        locals.newColumn = await Aeppic.new(this.FORMS.ColumnSelectNumber, locals.columnsDocument)\n      } else if (locals.columnsDocument.f.id === this.FORMS.ColumnsSelectText) {\n        locals.newColumn = await Aeppic.new(this.FORMS.ColumnSelectText, locals.columnsDocument)\n      }\n      locals.newColumn.data.fieldName = locals.columnsDocument.data.fieldName\n      $refs.createColumn.show(event)\n    } else if (locals.columnsDocument.f.id === this.FORMS.ColumnsReferences || locals.columnsDocument.f.id === this.FORMS.ColumnsReference) {\n      // debugger\n      locals.columnFilter = null\n      if (locals.columnsDocument.f.id === this.FORMS.ColumnsReferences) {\n        locals.newColumn = await Aeppic.new(this.FORMS.ColumnReferences, locals.columnsDocument)\n      } else if (locals.columnsDocument.f.id === this.FORMS.ColumnsReference) {\n        locals.newColumn = await Aeppic.new(this.FORMS.ColumnReference, locals.columnsDocument)\n      }\n      locals.pseudoDocument = await Aeppic.new(data.form[0], params.newDocumentLocationId)\n      locals.newColumn.data.fieldName = locals.columnsDocument.data.fieldName\n      $refs.createColumn.show(event)\n    }\n  }\n\n  newColumnSetFilter(filter) {\n    locals.newColumn.data.filter = filter.value\n    locals.newColumn.data.name = filter.display\n    locals.columnFilter = filter\n  }\n\n  async createColumn() {\n    // debugger\n    $refs.createColumn.close()\n    locals.rerenderCreateColumnPopupKey = Aeppic.DateTime.local().toString()\n    Aeppic.save(locals.newColumn)\n\n    const editableColumns = await Aeppic.edit(locals.columnsDocument)\n    editableColumns.addReference('columns', locals.newColumn)\n    Aeppic.save(editableColumns)\n  }\n\n  disallowCreatingColumn() {\n    return locals.columnsDocument?.f.id === this.FORMS.ColumnsSwitch\n  }\n\n  async onRefSelected(event) {\n    let field = event.data[locals.columnsDocument.data.fieldName]\n    let selectedRef = null\n    if (Array.isArray(field) && field.length) {\n      selectedRef = field[0]\n    } else {\n      selectedRef = field\n    }\n    if (!selectedRef.id) {\n      return\n    }\n    const filter = await Aeppic.asReference(selectedRef.id)\n    const selectedDocument = await Aeppic.get(selectedRef.id)\n    if (!locals.newColumn.data.name) {\n      locals.newColumn.data.name = filter.text\n    }\n    if (!locals.newColumn.data.color) {\n      locals.newColumn.data.color = selectedDocument.data.color || selectedDocument.data.farbe || '#000000'\n    }\n    locals.columnFilter = filter\n    locals.newColumn.data.filter = locals.columnFilter\n    Aeppic.commit(locals.newColumn)\n  }\n\n  getFilter(childFilter, parentFilter) {\n    return !!childFilter === false ? parentFilter : childFilter\n  }\n\n  async onChangeView(columnsDocument, event) {\n    // Calculate mode and field\n    await this.switchView(columnsDocument)\n    $refs.switchView.close(event)\n  }\n\n  initLocalStorage() {\n    return {columnsDocumentId: null, showBacklog: false}\n  }\n\n  onShowBacklog() {\n    const storage = Aeppic.LocalStorage.getValue(this.localStorageKey) || this.initLocalStorage()\n    locals.showBacklog = true\n    storage.showBacklog = true\n    Aeppic.LocalStorage.setValue(this.localStorageKey, storage)\n  }\n\n  onHideBacklog() {\n    const storage = Aeppic.LocalStorage.getValue(this.localStorageKey) || this.initLocalStorage()\n    locals.showBacklog = false\n    storage.showBacklog = false\n    Aeppic.LocalStorage.setValue(this.localStorageKey, storage)\n  }\n\n  backlogDisabled(columnsDocument) {\n    if (columnsDocument?.f.id === this.FORMS.ColumnsSwitch) {\n      return true\n    }\n    return false\n  }\n\n   async getCommandIds() {\n    if (params.newDocumentCommandGroupId && params.newDocumentCommandIds) {\n      console.warn(`Both a command group and a list of commands were provided in board ${document.id}. Only the command group is used.`)\n    }\n    const commandGroup = params.newDocumentCommandGroupId && await Aeppic.get(params.newDocumentCommandGroupId)\n    return (commandGroup?.data.commands.map(ref => ref.id) ?? params.newDocumentCommandIds) || []\n  }\n}\n ","css":".board-overflow::-webkit-scrollbar {\n  height: 12px;\n}\n\n.board-overflow::-webkit-scrollbar-track {\n  background-color: oklch(96.7% 0.003 264.542); /* gray-100 */\n  border-radius: 0.375rem;\n}\n\n.board-overflow::-webkit-scrollbar-thumb {\n  background-color: oklch(87.2% 0.01 258.338); /* gray-300 */\n  border-radius: 0.375rem;\n}\n\n.ghostClass {\n  overflow: hidden;\n  width: 0px;\n  height: 0px;\n}\n\n.buttonContainer {\n  width: 60px;\n  display: flex;\n  justify-content: center;\n}","description":"","name":"rd:board DONT USE","packages":[{"id":"ed1e09cd-963e-4f7b-afce-fb70e1f84312","text":"vue-draggable","v":"33bfa1ff66dd725e"}],"template":"<!-- Check out the documentation at fdd8c78b-207a-4b2e-8f99-e8eebc7d9b3f -->\n\n<!-- Complete Board -->\n<div\n  v-show=\"locals.ready\"\n  class=\"w-full h-full flex\"\n>\n  <div \n    class=\"board-overflow overflow-x-auto flex flex-1\"\n    @mouseenter=\"locals.hoveringMenubar = false\"\n  >\n  <!-- Board Body -->\n    <ae-list\n      :key=\"locals.columnsDocument?.id\"\n      list-id=\"c1790eba-7565-4f7c-9b82-efa091f7e7c6\"\n      class=\"h-full flex-1 shrink-0 pl-2\"\n      :watchDocuments=\"true\"\n      :param-show-backlog=\"locals.showBacklog && !controller.backlogDisabled(locals.columnsDocument)\"\n      :documents=\"params.documents\"\n      :param-columns=\"locals.columnDocuments\"\n      :param-backlogDocument=\"locals.backlogDocument\"\n      :param-group=\"document.id\"\n      :param-board=\"document\"\n      :param-filter=\"controller.getFilter(locals.filter, locals.parentFilter)\"\n      :param-readonly=\"params.readonly\"\n      :param-new-document-command-ids=\"locals.commandIds\"\n      :param-new-document-location-id=\"params.newDocumentLocationId\"\n      :param-debug=\"params.debug\"\n      :param-delete-document-class-name=\"document.id + 'deleteDocument'\"\n      :param-board-card-params=\"params.boardCardParams\"\n      @delete-column=\"controller.onDeleteColumn($event)\"\n      @delete-document=\"controller.onDeleteDocument($event)\"\n      @trash-enter=\"controller.onTrashEnter()\"\n      @trash-leave=\"controller.onTrashLeave()\"\n      @move-column-left=\"controller.onMoveColumnLeft($event)\"\n      @move-column-right=\"controller.onMoveColumnRight($event)\"\n      @selected=\"Aeppic.drillInto($event)\"\n      @mouseenter=\"locals.hoveringMenubar = false\"\n    ></ae-list>\n    <div\n      class=\"w-4 shrink-0\"\n    ></div>\n  </div>\n\n  <!-- Menu bar -->\n  <!-- NOTE: @dragover.stop prevents dragover event from falling through the menu bar -->\n  <div\n    class=\"h-full shrink-0 w-[4px] bg-neutral-500 rounded-t-full\"\n  >\n  </div>\n\n  <div\n    class=\"h-full shrink-0 flex flex-col\"\n    @dragover.stop\n    @mouseenter=\"locals.hoveringMenubar = true\"\n    @touchend=\"locals.hoveringMenubar = false\"\n  >\n    <div\n      class=\"flex flex-col flex-1 gap-2 select-none [&>*]:flex [&>*]:justify-end [&>*]:w-full [&>*]:align-center [&>*]:h-[30px] [&>*>*]:flex [&>*>*]:items-center\"\n      :class=\"[\n                locals.hoveringMenubar && '',\n                !locals.hoveringMenubar && ''\n              ]\"\n    >\n      <!-- Filter Button -->\n      <div\n        v-if=\"!params.hideFilter\"\n      >\n        <ae-design\n          v-show=\"locals.hoveringMenubar\"\n          class=\"bg-transparent mr-2 text-[0.8em] flex-1 -ml-2 -mr-6\"\n          name=\"rd:toolbar\"\n          :document=\"document\"\n          param-list-form-id=\"0deb4864-cbb6-420c-99ee-337c7444ab24\"\n          @filter=\"locals.filter = $event\"\n          :params=\"{ disableNew: params.disableNew, disableSort: true }\"\n        ></ae-design>\n        <div\n          class=\"buttonContainer\"\n        >\n          <ae-icon\n            class=\"far fa-filter\"\n            :class=\"!!controller.getFilter(locals.filter, locals.parentFilter) && 'text-amber-600'\"\n          ></ae-icon>\n        </div>\n      </div>\n      <!-- New Column Button -->\n      <div>\n        <span\n          v-show=\"locals.hoveringMenubar\"\n          class=\"mr-2 flex items-center\"\n        >\n          Neue Spalte\n        </span>\n        \n        <div\n          class=\"buttonContainer\"\n        >\n          <ae-layout\n            layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n            class=\"\"\n            param-icon=\"far fa-plus\"\n            @selected=\"controller.showCreateColumnPopup($event)\"\n            :param-italic=\"false\"\n            param-classes=\"text-left bg-transparent\"\n            :param-disabled=\"controller.disallowCreatingColumn(locals.columnsDocument) || params.readonly\"\n          ></ae-layout>\n        </div>\n      </div>\n      <!-- Backlog Toggle Button -->\n      <div>\n        <span\n          v-show=\"locals.hoveringMenubar\"\n          class=\"w-[168px] mr-2 ml-2\"\n        >\n          {{ locals.showBacklog ? 'Backlog eingeblendet' : 'Backlog ausgeblendet' }}\n        </span>\n        <div\n          class=\"buttonContainer\"\n        >\n          <ae-layout\n            layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n            class=\"\"\n            :param-icon=\"locals.showBacklog ? 'far fa-toggle-on' : 'far fa-toggle-off'\"\n            @selected=\"locals.showBacklog ? controller.onHideBacklog() : controller.onShowBacklog()\"\n            :param-italic=\"false\"\n            param-classes=\"text-left bg-transparent\"\n            :param-disabled=\"controller.backlogDisabled(locals.columnsDocument)\"\n          ></ae-layout>\n        </div>\n      </div>\n      <!-- Spacer Diff -->\n      <div>\n        <span\n          class=\"h-full mr-2\"\n          v-show=\"locals.hoveringMenubar\"\n        >\n        </span>\n        <div\n          class=\"h-full buttonContainer\"\n        ></div>\n      </div>\n      <!-- Views -->\n      <div>\n        <div\n          v-if=\"1\"\n          v-show=\"locals.hoveringMenubar\"\n          class=\"buttonContainer mr-6\"\n        >\n          Ansichten\n        </div>\n      </div>\n      <div \n        v-for=\"columnsDocument of locals.columnsDocuments\"\n      >\n        <span\n          v-show=\"locals.hoveringMenubar\"\n          class=\"mr-2\"\n        >\n          {{  columnsDocument.data.name || 'Kein Name'  }}\n        </span>\n        <div\n          class=\"buttonContainer\"\n        >\n          <ae-layout\n            class=\"\"\n            layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n            :param-title=\"columnsDocument.data.name || 'Kein Name'\"\n            param-icon=\"fas fa-circle\"\n            :param-primary=\"columnsDocument === locals.columnsDocument\"\n            param-primary-colors=\"bg-transparent hover:bg-blue-200 text-primary-700\"\n            @selected=\"controller.onChangeView(columnsDocument, $event)\"\n            param-classes=\"text-left bg-transparent\"\n          ></ae-layout>\n        </div>\n      </div>\n      <!-- Spacer Diff -->\n      <div\n        class=\"flex-1\"\n      >\n        <span\n          class=\"h-full mr-2\"\n          v-show=\"locals.hoveringMenubar\"\n        >\n        </span>\n        <div\n          class=\"h-full buttonContainer\"\n        ></div>\n      </div>\n      <!-- Cancel Delete Button -->\n      <div\n        v-if=\"locals.toDeleteDocuments.length\"\n        class=\"text-secondary-400\"\n      >\n        <span\n          v-show=\"locals.hoveringMenubar\"\n          class=\"mr-2\"\n        >\n          Abbrechen\n        </span>\n        <div\n          class=\"buttonContainer\"\n        >\n          <ae-layout\n            layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n            class=\"\"\n            param-icon=\"far fa-times\"\n            @selected=\"controller.onCancelDelete()\"\n            :param-italic=\"false\"\n            param-classes=\"text-left bg-transparent\"\n            :param-disabled=\"controller.disallowCreatingColumn(locals.columnsDocument) || params.readonly\"\n          ></ae-layout>\n        </div>\n      </div>\n      <!-- Confirm Delete Button -->\n      <div\n        v-if=\"locals.toDeleteDocuments.length\"\n      >\n        <span\n          v-show=\"locals.hoveringMenubar\"\n          class=\"mr-2\"\n        >\n          {{ 'Löschen bestätigen' + ((locals.toDeleteDocuments && locals.toDeleteDocuments.length > 0) ? ' (' + locals.toDeleteDocuments.length + ')' : '') }}\n        </span>\n        <div\n          class=\"buttonContainer\"\n        >\n          <ae-layout\n            layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n            class=\"text-red-600\"\n            param-icon=\"far fa-check\"\n            @selected=\"controller.onConfirmDelete()\"\n            :param-italic=\"false\"\n            param-classes=\"text-left bg-transparent\"\n            :param-disabled=\"controller.disallowCreatingColumn(locals.columnsDocument) || params.readonly\"\n          ></ae-layout>\n        </div>\n      </div>\n      <!-- Trashcan -->\n      <div\n        v-if=\"!params.readonly && !(Aeppic.Device === 'Phone')\"\n        class=\"mb-4\"\n      >\n        <span\n          class=\"mr-2\"\n          v-show=\"locals.hoveringMenubar\"\n        >\n          Löschen\n        </span>\n        <!-- Use absolute position to overlay trashcan over draggable area -->\n        <div\n          class=\"relative buttonContainer\"\n          title=\"Karten zum löschen in den Mülleimer ziehen\"\n        >\n          <!-- Note: Ghostclass using display: none, causes repeated rerenders of the draggable. -->\n          <draggable\n            class=\"absolute -top-[10px] left-0 right-0 -bottom-[15px] xh-8 xw-8 xbg-red-500 z-5\"\n            v-model=\"locals.toDeleteDocuments\"\n            :class=\"document.id + 'deleteDocument'\"\n            :group=\"{name: document.id, pull: false}\"\n            :sort=\"false\"\n            :animation=\"50\"\n            ghostClass=\"ghostClass\"\n            :dragoverBubble=\"false\"\n            :filter=\"'.not-draggable'\"\n            @change=\"controller.onTrashChange($event)\"\n          >\n          </draggable>\n          <ae-icon\n            class=\"fas fa-trash-alt absolute\"\n            :class=\"locals.hoversTrash && 'text-red-600'\"\n          ></ae-icon>\n        </div>\n      </div>\n    </div>\n  </div>\n\n</div>\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n<ae-popup ref=\"switchView\" placement=\"bottom\">\n  <template #default>\n    <div class=\"flex flex-col gap-2 p-1\">\n      <ae-layout\n        v-for=\"columnsDocument of locals.columnsDocuments\"\n        :key=\"columnsDocument.id\"\n        layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n        :param-text=\"columnsDocument.data.name || 'Kein Name'\"\n        @selected=\"controller.onChangeView(columnsDocument, $event)\"\n        :param-italic=\"false\"\n        param-classes=\"text-left\"\n      ></ae-layout>\n    </div>\n  </template>\n</ae-popup>\n\n<ae-popup ref=\"createColumn\" placement=\"left-start\">\n  <template #default=\"scope\">\n    <div  :key=\"locals.rerenderCreateColumnPopupKey\">\n      <div v-if=\"locals.columnsDocument?.f.id === controller.FORMS.ColumnsManual\">\n        <ae-form\n          :document=\"locals.newColumn\"\n          layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\"\n          :view=\"{only: {fields: ['name', 'color']}}\"\n        ></ae-form>\n        <ae-layout\n          class=\"p-1\"\n          layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n          @selected=\"controller.createColumn()\"\n          param-icon=\"far fa-save\"\n          param-text=\"Spalte erstellen\"\n        ></ae-layout>\n      </div>\n      <div v-else-if=\"locals.columnsDocument?.f.id === controller.FORMS.ColumnsReference || locals.columnsDocument?.f.id === controller.FORMS.ColumnsReferences\"\n            class = pt-4>\n        <ae-form\n          :document=\"locals.pseudoDocument\"\n          @data-changed=\"controller.onRefSelected($event)\"\n          layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\"\n          :view=\"{only: {fields: [locals.columnsDocument.data.fieldName], standaloneControls: []}}\"\n          :watch=\"false\"\n          :readonly=\"!!locals.columnFilter\"\n        ></ae-form>\n        <ae-form\n          :document=\"locals.newColumn\"\n          layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\"\n          :view=\"{only: {fields: ['name', 'color']}}\"\n        ></ae-form>\n        <ae-layout\n          v-if=\"locals.columnFilter\"\n          class=\"p-1\"\n          layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n          @selected=\"controller.createColumn()\"\n          param-icon=\"far fa-save\"\n          param-text=\"Spalte erstellen\"\n        ></ae-layout>\n      </div>\n      <div v-else-if=\"locals.columnsDocument?.f.id === controller.FORMS.ColumnsSwitch\"></div>\n      <div v-else-if=\"locals.columnsDocument?.f.id === controller.FORMS.ColumnsSelectNumber || locals.columnsDocument?.f.id === controller.FORMS.ColumnsSelectText\">\n        <div v-if=\"!locals.columnFilter\">\n          <ae-layout\n            v-for=\"filterOption of locals.columnFilterOptions\"\n            class=\"p-1\"\n            layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n            @selected=\"controller.newColumnSetFilter(filterOption)\"\n            :param-text=\"!!filterOption.display ? filterOption.display : 'Leer'\"\n            :param-italic=\"!filterOption.display\"\n            :param-disabled=\"filterOption.disabled\"\n          ></ae-layout>\n        </div>\n        <div v-else>\n          <ae-form\n            :document=\"locals.newColumn\"\n            layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\"\n            :view=\"{only: {fields: ['name', 'color']}}\"\n          ></ae-form>\n          <ae-layout\n            class=\"p-1\"\n            layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n            @selected=\"controller.createColumn()\"\n            param-icon=\"far fa-save\"\n            param-text=\"Spalte erstellen\"\n          ></ae-layout>\n        </div>\n      </div>\n      <div v-else>Keine Ansicht um Spalte zu erzeugen</div>\n    </div>\n  </template>\n</ae-popup>\n\n\n\n\n\n<!-- Animation Test -->\n  <div\n    v-if=\"0\"\n    class=\"bg-gray-700 h-full shrink-0 flex flex-col group w-16\"\n  >\n    <div\n      class=\"bg-red-500 menuButton flex justify-end mr-2 mb-2\"\n    >\n      <div class=\"rounded-full bg-green-300 h-8 w-8 group-hover:w-16 flex justify-end items-center\">\n        <ae-icon\n          class=\"far fa-plus\"\n        ></ae-icon>\n      </div>\n    </div>\n  </div>"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"2be14fc1-38b2-4286-809b-076a23778970","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-10-24T09:13:53+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"43420696-8097-4fc1-88e5-c69df9821470","previous":{"v":"a4a976d7945f0511"},"stamps":[],"t":1761297233297,"v":"e86d1b4572c352a1"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","46a28dfa-7518-4867-9519-a5f4cd9b9967"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2025-10-27T12:51:46+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1761569506786,"data":{"aliases":[],"controller":" class Controller{\n  init() {\n\n  }\n\n  emitSelected() {\n    if (!params.innerHandlesSelected) {\n      $emit('selected', document)\n    }\n  }\n}","css":"","description":"","name":"rd:board-card","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<div  class=\"bg-white w-full group flex rounded-md select-none\">\n  <!-- Side Bar -->\n  <div class=\"w-[4px] rounded-l-md\"\n     :class=\"'bg-orange-400'\"\n     :style=\"{ flexShrink: 0 }\">\n  </div>\n  <!-- Main Card -->\n  <ae-design\n    name=\"rd:board-card-inner\"\n    :params=\"params\"\n    class=\"flex-1\"\n    :class=\"{ 'cursor-pointer': !params.innerHandlesSelected }\"\n    :document=\"document\"\n    @click.native.stop=\"controller.emitSelected()\"\n  ></ae-design>\n</div>"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"1cb6848d-910c-40c3-bee8-a3e2c8ae5c21","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-10-27T12:54:40+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"46a28dfa-7518-4867-9519-a5f4cd9b9967","previous":{"v":"41ed7bf5e396b896"},"stamps":[],"t":1761569680778,"v":"cff26be37b04734d"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","1b166603-d0f3-4f16-98c4-0534afbd6f5a"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"1cb6848d-910c-40c3-bee8-a3e2c8ae5c21","text":"rd:board-card","v":"41ed7bf5e396b896"},"created":{"at":"2025-10-27T12:53:56+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1761569636773,"data":{"aliases":[],"controller":" class Controller{\n  init() {\n\n  }\n\n  emitSelected() {\n    if (!params.innerHandlesSelected) {\n      $emit('selected', document)\n    }\n  }\n}","css":"","description":"","name":"rd:board-card","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<div  class=\"bg-white w-full group flex rounded-md select-none\">\n  <!-- Side Bar -->\n  <div class=\"w-[4px] rounded-l-md\"\n     :class=\"'bg-blue-400'\"\n     :style=\"{ flexShrink: 0 }\">\n  </div>\n  <!-- Main Card -->\n  <ae-design\n    name=\"rd:board-card-inner\"\n    :params=\"params\"\n    class=\"flex-1 w-full\"\n    :class=\"{ 'cursor-pointer': !params.innerHandlesSelected }\"\n    :document=\"document\"\n    @click.native.stop=\"controller.emitSelected()\"\n  ></ae-design>\n</div>"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"7f4ef9d8-f775-41f1-b9ed-ed49a24411e9","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-11-17T09:36:28+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"1cb6848d-910c-40c3-bee8-a3e2c8ae5c21","text":"rd:board-card","v":"41ed7bf5e396b896"},"p":"1b166603-d0f3-4f16-98c4-0534afbd6f5a","previous":{"v":"4994237a3e19c124"},"stamps":[],"t":1763372188667,"v":"b9f3f4e348e78b75"},{"a":["apps","77ee8815-2c3a-4bb5-abd9-90541a545a24","1cc4b977-c14d-4587-af47-d6ac230f60b3"],"a_depth":3,"a_forms":["folder","application-form","design-folder"],"created":{"at":"2025-10-24T06:26:45+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"ct":1761287205470,"data":{"aliases":[],"controller":"class Controller{\n  init() {\n\n  }\n\n  emitSelected() {\n    if (!params.innerHandlesSelected) {\n      $emit('selected', document)\n    }\n  }\n}","css":"","description":"","name":"rd:board-card","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<div  class=\"bg-white w-full group flex rounded-md select-none\">\n  <!-- Side Bar -->\n  <div class=\"w-[4px] rounded-l-md\"\n     :class=\"'bg-neutral-600'\"\n     :style=\"{ flexShrink: 0 }\">\n  </div>\n  <!-- Main Card -->\n  <ae-design\n    name=\"rd:board-card-inner\"\n    :params=\"params\"\n    class=\"flex-1\"\n    :class=\"{ 'cursor-pointer': !params.innerHandlesSelected }\"\n    :document=\"document\"\n    @click.native.stop=\"controller.emitSelected()\"\n  ></ae-design>\n</div>"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"c5954c73-925f-4961-bacc-f46cc17f7874","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2025-10-24T10:12:00+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"1cc4b977-c14d-4587-af47-d6ac230f60b3","previous":{"v":"218126f9a6eaf6aa"},"stamps":[],"t":1761300720758,"v":"35f6c6c99ad01f9a"},{"a":["apps","59edbdbc-2cab-426a-bb42-6e57c5158e4f","b55eaea8-e746-4fa6-85a8-514c2268f1b8"],"a_depth":3,"a_forms":["folder","application-form","design-folder"],"created":{"at":"2025-04-11T09:52:47+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"ct":1744365167902,"data":{"aliases":[],"controller":"class Controller {\n  init() {\n    locals.erledigt = data.erledigt\n  }\n\n\n  async toggle() {\n    const editable = await Aeppic.edit(document)\n\n    editable.data.erledigt = !editable.data.erledigt\n\n    Aeppic.save(editable)\n  }\n}","css":"","description":"","name":"rd:board-card-action","packages":[],"template":"<!-- Params \n  - borderColor       color of the Checkboxborder. Needs to be something like border-red-500.\n  - checkColor        changed via text. text-red-500    \n  - bgCheckColor      changes the background while checked      \n  - bgHoverColor      color changes when unchecked\n  - title             the title\n-->\n\n\n<div  class=\"items-center\"\n      :title=\"params.title\">\n  <button class=\"w-[1em] h-[1em] border rounded-full flex items-center justify-center\"\n          :class=\"[locals.erledigt && (params.bgCheckColor ? params.bgCheckColor : ''),\n                   (locals.erledigt ? params.checkedBorderColor : params.borderColor) || 'border-black',\n                   params.checkColor || 'text-black']\"\n          @click.stop=\"!params.readonly && controller.toggle()\"\n          :disabled=\"params.readonly\">\n\n    <ae-icon  v-if=\"data.erledigt\"\n              class=\"fas fa-check text-[0.7em]\">\n    </ae-icon>\n  </button>\n</div>"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"0a5cbdb1-f8e1-47ef-bd84-c11a50268a06","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2025-04-15T13:15:25+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"b55eaea8-e746-4fa6-85a8-514c2268f1b8","previous":{"v":"8abad8f0d27cab2a"},"stamps":[],"t":1744722925692,"v":"d588cca35874f2df"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","46a28dfa-7518-4867-9519-a5f4cd9b9967"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"50d5c9b4-7458-4605-b2a9-7517a183111f","text":"rd:board-card","v":"2aed12aa883a745e"},"created":{"at":"2025-10-21T09:27:42+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1761307941749,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.form = null\n    locals.typeInfo = null\n    locals.statusInfo = null\n    locals.form = await Aeppic.getFormForDocument(document)\n    \n    \n    locals.typeInfo = locals.form.getField('type').settings.options.find(option => option.value === data.type)\n    locals.statusInfo = locals.form.getField('workflowStatus').settings.options.find(option => option.value === data.workflowStatus)\n\n    locals.teams = []\n    Aeppic.watchAll(data.team, (teams) => {\n      locals.teams = teams\n    })\n    locals.facility = await Aeppic.get(data.facility)\n    Aeppic.watch(data.facility, (facility) => {\n      locals.facility = facility\n    })\n\n  }\n\n}","css":"","description":"","name":"rd:board-card-inner","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<section \n  class=\"w-full py-1\"\n  @xclick.stop=\"$emit('selected', document)\"\n  @click.stop=\"$refs.command.$emit('force-show', '27a7d4ca-cc94-4f72-85ef-8c88d5b97cda')\"\n>\n  <div class=\"flex flex-col gap-2\" :class=\"{ 'text-neutral-700 italic': !data.released}\">\n\n    <!-- Location -->\n    <section class=\"px-1 font-semibold\">\n      <ae-design title=\"Standort\" name=\"rd:card-inner, rd:card\" :document=\"data.object\"></ae-design>\n    </section>\n\n    <!-- Teams -->\n    <section\n      class=\"flex px-1\"\n    >\n      <div \n        class=\"flex flex-col items-center pr-2 py-1\"\n        title=\"Teams\"\n      >\n        <div class=\"w-px flex-1 bg-neutral-400\"></div>\n        <ae-icon\n          class=\"far fa-people-group\"\n        ></ae-icon>\n        <div class=\"w-px flex-1 bg-neutral-400\"></div>\n      </div>\n      <div\n        class=\"flex-1\"\n      >\n        <div \n          v-for=\"team of locals.teams\"\n        >\n            {{ team?.data.name }}\n        </div>\n      </div>\n    </section>\n\n    <!-- Facilities -->\n    <section\n      class=\"flex px-1\"\n    >\n      <div \n        class=\"flex flex-col items-center pr-2 py-1\"\n        title=\"Anlagen\"\n      >\n        <div class=\"w-px flex-1 bg-neutral-400\"></div>\n        <ae-icon\n          class=\"far fa-cog\"\n        ></ae-icon>\n        <div class=\"w-px flex-1 bg-neutral-400\"></div>\n      </div>\n      <div\n        class=\"flex-1\"\n      >\n        {{locals.facility?.data.name}}\n      </div>\n    </section>\n\n    \n\n    <section class=\"px-1 flex gap-1\">\n      <!-- Date -->\n      <ae-design name=\"rd:date\" :document=\"document\" param-field-name=\"created.at\" class=\"flex-1\"></ae-design>\n      <!-- Manual or Trigger -->\n      <div\n        v-if=\"locals.typeInfo\"\n        :title=\"locals.typeInfo.display\"\n      >\n        <ae-icon\n          :class=\"locals.typeInfo.tags.icon\"\n        ></ae-icon>\n      </div>\n      <!-- Status -->\n      <div\n        v-if=\"locals.statusInfo\"\n        :title=\"locals.statusInfo.display\"\n      >\n        <ae-icon\n          :class=\"[locals.statusInfo.tags.icon, locals.statusInfo.tags.iconColor]\"\n        ></ae-icon>\n      </div>\n    </section>\n  </div>\n</section>\n\n\n<ae-layout layout-id=\"262e95e6-f1f8-477c-834b-89d533027e1e\"\n          :param-document=\"document\"\n          :param-commands=\"['27a7d4ca-cc94-4f72-85ef-8c88d5b97cda']\"\n          v-show=\"false\"\n          ref=\"command\"\n></ae-layout> \n  "},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"1c2bd0f9-3eb7-42ac-9fa8-c6f4dd9097c3","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-02-02T13:34:47+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"50d5c9b4-7458-4605-b2a9-7517a183111f","text":"rd:board-card","v":"2aed12aa883a745e"},"p":"46a28dfa-7518-4867-9519-a5f4cd9b9967","previous":{"v":"ee4d53feb79409be"},"stamps":[],"t":1770039287428,"v":"3cde2fbbfb460928"},{"a":["apps","9d6ee173-26fe-4472-a271-7667f717094e","53b70eca-0cef-448b-9674-22a70a937eb1","8fc08287-dbcc-4e41-9d5d-28e4cd828943"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2025-04-11T13:21:57+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"ct":1744377717007,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      CompanyCi: '81da74f7-1abf-48c1-add1-18266cd4c30e',\n    }\n  }\n}","css":"","description":"","name":"rd:board-card-inner","packages":[],"template":"<div class=\"w-full flex\">\n  <!-- Left part -->\n  <div class=\"flex-1 min-w-0\">\n    <!-- First Part -->\n    <div class=\"pt-1 px-1\">\n      <!-- Labels -->\n      <div  \n        v-if=\"data.labels?.length\" \n        class=\"p-1 flex flex-wrap gap-1 text-[0.8] items-center\"\n        title=\"Labels\"\n      >\n        <ae-icon\n          class=\"far fa-tag size-3 text-neutral-500\"\n        ></ae-icon>\n        <ae-design v-for=\"label of data.labels\"\n                  name=\"rd:icon\"\n                  :document-id=\"label.id\"\n                  :params=\"{ fieldName: 'color', size: 3 }\"\n        ></ae-design>\n      </div>\n      <!-- Title -->\n      <div class=\"pb-1 flex items-center gap-2 font-semibold\">\n        <div class=\"\">\n          <span v-if=\"data.name\">{{ data.name }}</span>\n          <span v-else \n                class=\"italic\">\n            {{ document.f.text }}\n          </span>\n        </div>\n      </div>\n      <div \n        v-if=\"data.quelle?.length\" \n        class=\"p-1 flex flex-wrap gap-1 text-[0.8]\" \n        title=\"Quellen\"\n      >\n        <ae-icon\n          class=\"far fa-magnifying-glass size-3 text-neutral-500\"\n        ></ae-icon>\n        <ae-design v-for=\"label of data.quelle\"\n                  name=\"rd:icon\"\n                  :document-id=\"label.id\"\n                  :params=\"{ fieldName: 'color', size: 3 }\"\n        ></ae-design>\n      </div>\n    </div>\n  </div>\n  <ae-list\n        list-id=\"5a30185e-24bc-430b-b477-fa85634c26c7\"\n        class=\"text-[1em] p-1\"\n        :documents=\"data.verantwortlich\"\n        :rootDocumentId=\"document.id\"\n        :param-not-vertical=\"false\"\n        :param-noWrap=\"true\"\n        :param-showAddUserBubble=\"false\"\n        :param-readonly=\"true\"\n        :param-max-bubbles=\"5\"\n      ></ae-list>\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"3c7ad30d-dfea-4e0b-a729-58801fd91143","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-10-24T07:10:05+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"8fc08287-dbcc-4e41-9d5d-28e4cd828943","previous":{"v":"9070d966d024a676"},"stamps":[],"t":1761289805789,"v":"34082e7eaafa5b36"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","1b166603-d0f3-4f16-98c4-0534afbd6f5a"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2025-08-07T13:36:03+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1754573763829,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.form = null\n    locals.form = await Aeppic.getFormForDocument(document)\n    locals.teams = []\n    locals.maintenance = null\n    locals.typeInfo = null\n    locals.statusInfo = null\n    \n    locals.form = await Aeppic.getFormForDocument(document)\n    locals.typeInfo = locals.form.getField('type').settings.options.find(option => option.value === data.type)\n    locals.statusInfo = locals.form.getField('workflowStatus').settings.options.find(option => option.value === data.workflowStatus)\n\n    \n    locals.facility = await Aeppic.get(data.facility)\n    Aeppic.watchAll(data.team, (teams) => {\n      locals.teams = teams\n    })\n    Aeppic.watch(data.facility, (facility) => {\n      locals.facility = facility\n    })\n    // Note: Using watchAll because of the immediate callback\n    Aeppic.watchAll([data.maintenance], (maintenance) => {\n      locals.maintenance = maintenance[0]\n    })\n  }\n}","css":"","description":"","name":"rd:board-card-inner","packages":[],"template":"<section \n  class=\"w-full py-1\"\n  @click.stop=\"$refs.command.$emit('force-show', '8e3591ac-dde5-4c55-9226-ee1986f5a803')\"\n>\n  <div class=\"flex flex-col gap-2\" :class=\"{ 'text-neutral-700 italic': !data.released}\">\n\n    <!-- Maintenance Name -->\n    <section class=\"px-1 font-semibold overflow-hidden\">\n      <ae-design name=\"title\" :document=\"locals.maintenance\"></ae-design>\n    </section>\n\n    <!-- Location -->\n    <section class=\"px-1\">\n      <ae-design title=\"Standort\" name=\"rd:card-inner, rd:card\" :document=\"data.object\" @selected=\"$refs.command.$emit('force-show', '8e3591ac-dde5-4c55-9226-ee1986f5a803')\"></ae-design>\n    </section>\n\n    <!-- Teams -->\n    <section\n      v-if=\"locals.teams?.length > 0\"\n      class=\"flex px-1\"\n    >\n      <div \n        class=\"flex flex-col items-center pr-2 py-1\"\n        title=\"Teams\"\n      >\n        <div class=\"w-px flex-1 bg-neutral-400\"></div>\n        <ae-icon\n          class=\"far fa-people-group\"\n        ></ae-icon>\n        <div class=\"w-px flex-1 bg-neutral-400\"></div>\n      </div>\n      <div\n        class=\"flex-1\"\n      >\n        <div \n          v-for=\"team of locals.teams\"\n        >\n            {{ team?.data.name }}\n        </div>\n      </div>\n    </section>\n\n    <!-- Facilities -->\n    <section\n      class=\"flex px-1\"\n    >\n      <div \n        class=\"flex flex-col items-center pr-2 py-1\"\n        title=\"Anlagen\"\n      >\n        <div class=\"w-px flex-1 bg-neutral-400\"></div>\n        <ae-icon\n          class=\"far fa-cog\"\n        ></ae-icon>\n        <div class=\"w-px flex-1 bg-neutral-400\"></div>\n      </div>\n      <div\n        class=\"flex-1\"\n      >\n        {{locals.facility?.data.name}}\n        <!-- <div \n          v-if=\"0\"\n          v-for=\"facility of [locals.facility]\"\n        >\n            {{ facility?.data.name }}\n        </div> -->\n      </div>\n    </section>\n\n    \n\n    <section class=\"px-1 flex gap-1\">\n      <!-- Date -->\n      <ae-design name=\"rd:date\" :document=\"document\" param-field-name=\"created.at\" class=\"flex-1\" param-format=\"dd.MM.yyyy HH:mm\"></ae-design>\n      <!-- Manual or Trigger -->\n      <div\n        v-if=\"locals.form\"\n        :title=\"locals.typeInfo?.display\"\n      >\n        <ae-icon\n          :class=\"[locals.typeInfo?.tags.icon]\"\n        ></ae-icon>\n      </div>\n      <!-- Status -->\n      <div\n        v-if=\"locals.form\"\n        :title=\"locals.statusInfo?.display\"\n      >\n        <ae-icon\n          :class=\"[locals.statusInfo?.tags.icon, locals.statusInfo?.tags.iconcolor]\"\n        ></ae-icon>\n      </div>\n    </section>\n  </div>\n</section>\n\n<ae-layout layout-id=\"262e95e6-f1f8-477c-834b-89d533027e1e\"\n          :param-document=\"document\"\n          :param-commands=\"['8e3591ac-dde5-4c55-9226-ee1986f5a803']\"\n          v-show=\"false\"\n          ref=\"command\"\n></ae-layout> \n "},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"50d5c9b4-7458-4605-b2a9-7517a183111f","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-02-06T12:55:45+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"p":"1b166603-d0f3-4f16-98c4-0534afbd6f5a","previous":{"v":"24f299bcc16c868f"},"stamps":[],"t":1770382545252,"v":"cc3182c2fc5c245e"},{"a":["apps","77ee8815-2c3a-4bb5-abd9-90541a545a24","1cc4b977-c14d-4587-af47-d6ac230f60b3"],"a_depth":3,"a_forms":["folder","application-form","design-folder"],"cloneOf":{"id":"c5954c73-925f-4961-bacc-f46cc17f7874","text":"rd:board-card","v":"e30a0550e97ab18f"},"created":{"at":"2025-10-24T06:28:53+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"ct":1761287333074,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:board-card-inner","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<div class=\"w-full\">\n  {{ data.label || data.name }}\n</div>"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"526e0b2b-7f4d-4fc4-a325-e8268e17671e","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2025-10-24T07:02:04+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"c5954c73-925f-4961-bacc-f46cc17f7874","text":"rd:board-card","v":"e30a0550e97ab18f"},"p":"1cc4b977-c14d-4587-af47-d6ac230f60b3","previous":{"v":"809d6cde4ec40212"},"stamps":[],"t":1761289324533,"v":"4f8b8640d263d4fb"},{"a":["apps","59edbdbc-2cab-426a-bb42-6e57c5158e4f","b55eaea8-e746-4fa6-85a8-514c2268f1b8"],"a_depth":3,"a_forms":["folder","application-form","design-folder"],"created":{"at":"2025-04-11T09:51:59+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"ct":1758282501656,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Aufgabe: '0deb4864-cbb6-420c-99ee-337c7444ab24',\n      Projekt: '0b6a2b21-9425-466e-9e8d-57ec39cc95e1',\n      Unteraufgabe: '10c5491b-3aa8-452f-aa3b-230154258024'\n    }\n    params.debug && console.log(\"Card rendered\", data.name, document.v, data)\n    // debugger\n\n    locals.subTasks = []\n    locals.showSubTasks = false\n    locals.imgString = null\n\n    if (!params.hideSubTasks) {\n      await this.updateSubTasks()\n    }\n\n    if (this.isTask && !params.hidePicture) {\n      const imgDocument = await this.getFirstImage()\n      locals.imgString = imgDocument ? Aeppic.Content.getThumbnailSrc(imgDocument, 'datei', {'height': 500, 'width': 500}) : null\n    }\n  }\n\n  async addUser(event) {\n    const editable = await Aeppic.edit(document.id)\n    editable.addReference('verantwortlich', event)\n    Aeppic.save(editable)\n  }\n\n  async removeUser(event) {\n    const editable = await Aeppic.edit(document.id)\n    editable.removeReference('verantwortlich', event.id)\n    Aeppic.save(editable)\n  }\n\n  get subTaskQuery() {\n    let res\n    if (this.isProject) {\n      res = `p:${document.id} AND f.id:${this.FORMS.Aufgabe}`\n    } else if (this.isTask) {\n      res = data.unteraufgaben?.map(x => `id:${x.id}`).join(' OR ')\n    }\n    return `(${res}) data.erledigt:false`\n  }\n\n  async updateSubTasks() {\n    let allTasks = []\n    if (this.isProject) {\n      allTasks = await Aeppic.find(`(p:${document.id}) AND (f.id:${this.FORMS.Aufgabe})`)\n    } else if (this.isTask) {\n      const ids = data.unteraufgaben?.map(x => x.id)\n      allTasks = ids?.length ? await Aeppic.getAll(ids) : []\n    }\n    // locals.subTasks = [\"Hello\", \"test\"]\n    locals.subTasks = allTasks.filter(x => !x.data.erledigt)\n    locals.showSubTasks = !params.hideSubTasks && locals.subTasks.length > 0\n  }\n\n  get tasksDone() {\n    let gesamt = null\n    let erledigt = null\n\n    if (this.isProject) {\n      erledigt = data.aufgabenErledigt\n      gesamt = data.aufgabenGesamt\n    } else if (this.isTask) {\n      erledigt = data.unteraufgabenErledigt\n      gesamt = data.unteraufgabenGesamt\n    }\n\n    if ((erledigt === 0 || erledigt > 0) && (gesamt === 0 || gesamt > 0)) {\n      return {erledigt: erledigt, gesamt: gesamt}\n    }\n    return null\n  }\n\n  get dueDate() {\n    const dateString = data.bisEnde ? data.bisEnde : data.bisStart\n    if (!dateString) {\n      return ''\n    }\n    const date =  Aeppic.DateTime.fromISO(dateString)\n    \n    const now = Aeppic.DateTime.now()\n    const formatString = date.year === now.year ? 'dd.MM.' : 'dd.MM.yyyy'\n\n    return date.toFormat(formatString)\n  }\n\n  get isProject() {\n    return document.f.id === this.FORMS.Projekt\n  }\n\n  get isTask() {\n    return document.f.id === this.FORMS.Aufgabe\n  }\n\n  get isSubTask() {\n    return document.f.id === this.FORMS.Unteraufgabe\n  }\n\n  async getFirstImage() {\n    if (data.anhaenge?.length == null) {\n        return null\n    }\n    const files = await Aeppic.getAll(data.anhaenge)\n    const pictures = files.filter((file) => {\n      return file.data.datei?.type.includes('image')\n    })\n    if (pictures.length > 0) {\n      return pictures[0]\n    }\n    return null\n  }\n}","css":"","description":"description\nThis component displays a card representing a project or task, with visual markers for priority, completion, attachments, responsible users, and due date. It conditionally shows a project header, an image, labels, subtasks, and additional project information. The card is visually styled with a colored sidebar and supports user interaction for selection and managing responsible users.\n\nemitted events\n\nselected (emitted when the card or a label is clicked)\nhandled events\n\n@add-user (handled by controller.addUser)\n@remove (handled by controller.removeUser)\n@selected (handled by $emit('selected', document))\n\ninteractions\n\nClick the card to select it.\nClick a label to select it.\nAdd a responsible user.\nRemove a responsible user.","name":"rd:board-card-inner","packages":[],"parameters":["debug","hideSubTasks","hidePicture"],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[" "," "," "],"parametersTypes":["boolean","boolean","boolean"],"template":"<div class=\"flex-1 min-w-0\">\n  <!-- Project Marker -->\n  <span v-if=\"controller.isProject && params.showFormNameHeader\" \n        class=\"flex justify-center pt-1 font-semibold\">\n    Projekt\n  </span>\n  <!-- First Part -->\n  <div class=\"pt-1 px-1\">\n    <!-- Picture -->\n    <div v-if=\"locals.imgString\"\n        class=\"mb-1\">\n      <img  :src=\"locals.imgString\" \n            alt=\"Bild laedt\"\n            class=\"rounded-md w-full h-[150px] object-cover\">\n      </ae-design>\n    </div>\n    <!-- Labels -->\n    <div v-if=\"controller.isTask\"\n          class=\"-ml-[4px] text-[0.8em]\">\n      <ae-list\n        v-if=\"data.labels && data.labels.length > 0\"\n        list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\"\n        :documents=\"data.labels\"\n        param-design=\"rd:tag\"\n        :param-horizontal=\"true\"\n        :param-designParams=\"{ notPill: true, noIcon: false, icon: 'fas fa-circle', calculateBackgroundColor: true, maxWidth: '16em', readonly: true }\"\n        :param-wrap=\"true\"\n        class=\"text-[0.75em]\"\n        @selected=\"$emit('selected', document)\"\n      ></ae-list>\n    </div>\n    <!-- Title -->\n    <div class=\"pb-1 flex items-center gap-2 font-semibold break-all\">\n      <div class=\"\">\n        <span v-if=\"data.name\">{{ data.name }}</span>\n        <span v-else \n              class=\"italic\">\n          {{ document.f.text }}\n        </span>\n      </div>\n    </div>\n  </div>\n  <!-- Second Part -->\n  <div class=\"pt-0 px-1 w-full\">\n    <!-- SubTasks -->\n    <!-- TODO: asynchronity leads to flickering when switching column -->\n    <div v-if=\"locals.showSubTasks\"\n          class=\"mb-2 pt-1 grid gap-1 w-full text-[0.8em]\">\n      <ae-list\n        list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\"\n        :search=\"controller.subTaskQuery\"\n        :queryOnce=\"true\"\n        :watchDocuments=\"true\"\n        :searchOptions=\"{size: 8}\"\n        param-design=\"rd:line-item\"\n        :param-design-params=\"{readonly: params.readonly, checkBorderColor: 'border-green-300', bordercolor: 'border-gray-300', checkColor: 'text-green-400', title: 'Erledigt'}\"\n      ></ae-list>\n    </div>\n    <!-- Priority and Files -->\n    <div class=\"flex gap-2 text-sm text-[0.8em]\">\n      <!-- Priority -->\n      <div v-if=\"data.prioritaet\" class=\"\">\n        <div\n          class=\"text-red-500\"\n          title=\"Hohe Priorität\"\n          v-if=\"data.prioritaet === 3\"\n        >\n          <ae-icon class=\"fal fa-arrow-circle-up\"></ae-icon>\n        </div>\n        <div title=\"Mittlere Priorität\" v-else-if=\"data.prioritaet === 2\">\n          <ae-icon class=\"fal fa-arrow-circle-right\"></ae-icon>\n        </div>\n        <div title=\"Niedrige Priorität\" v-else-if=\"data.prioritaet === 1\">\n          <ae-icon class=\"fal fa-arrow-circle-down\"></ae-icon>\n        </div>\n      </div>\n      <!-- Tasks Done -->\n      <div  v-if=\"controller.tasksDone\"\n            title=\"Erledigte Aufgaben\">\n        <ae-icon class=\"fal fa-check-circle\"></ae-icon>\n        <span class=\"text-xs -ml-[3px]\">{{ controller.tasksDone.erledigt + '/' + controller.tasksDone.gesamt }}</span>\n      </div>\n      <!-- Files -->\n      <div  v-if=\"data.anhaenge?.length\" \n            class=\"\"\n            title=\"Anhänge\">\n        <ae-icon class=\"fal fa-paperclip\"></ae-icon>\n        <span class=\"text-xs -ml-[3px]\">{{ data.anhaenge.length }}</span>\n      </div>\n    </div>\n  </div>\n  \n  <!-- Third Part -->\n  <div class=\"flex justify-between border-t border-secondary-200 px-1 pt-1 mb-1 text-[0.8em]\"\n        @click.stop>\n    <div class=\"flex flex-nowrap items-center gap-1\">\n      <!-- Erledigt -->\n      <ae-design  class=\"\"\n                  name=\"rd:board-card-action\"\n                  param-title=\"Erledigt\"\n                  :document=\"document\"\n                  :param-readonly=\"params.readonly\"\n                  param-borderColor=\"border-gray-400\"\n                  param-checkedBorderColor=\"border-green-500\"\n                  param-checkColor=\"text-green-600\"\n      ></ae-design>\n      <!-- Due Date -->\n      <div  class=\"flex items-center flex-grow-0 gap-x-1 mr-2\"\n            :title=\"controller.dueDate ? 'Fälligkeit' : 'Fortlaufend (keine Fälligkeit)'\">\n        <ae-icon class=\"far fa-calendar-alt\">\n        </ae-icon>\n        <span v-if=\"controller.dueDate\">{{ controller.dueDate }}</span>\n        <ae-icon \n          v-else\n          class=\"far fa-infinity\"\n        ></ae-icon>\n      </div>\n    </div>\n    <!-- Responsible -->\n    <div class=\"text-sm flex items-center flex-nowrap ml-auto\">\n      <!-- Liste Verantwortliche -->\n      <ae-list\n        list-id=\"5a30185e-24bc-430b-b477-fa85634c26c7\"\n        :documents=\"data.verantwortlich\"\n        :rootDocumentId=\"document.id\"\n        :param-max-bubbles=\"4\"\n        :param-not-vertical=\"true\"\n        :param-no-overlap=\"false\"\n        :param-noWrap=\"true\"\n        :param-showAddUserBubble=\"true\"\n        :param-readonly=\"params.readonly\"\n        param-addUserTitle=\"Weitere Verantwortliche hinzufügen\" \n        @add-user=\"controller.addUser($event)\"\n        @remove=\"controller.removeUser($event)\"\n        class=\"text-xl\"\n      ></ae-list>\n    </div>\n  </div>\n  <!-- Fourth Part -->\n  <div \n    v-if=\"controller.isProject\"\n    class=\"text-neutral-600 w-full flex justify-between px-2 py-1 text-[0.8em]\">\n    <ae-design name=\"rd:path\" :document=\"document\"></ae-design>\n  </div>\n</div>"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"7f6a181d-379c-49d3-831d-cdc7b5264ac7","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2026-05-07T13:21:55+00:00","backedBy":"","by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":""},"p":"b55eaea8-e746-4fa6-85a8-514c2268f1b8","previous":{"v":"c26f454cf3d090d2"},"stamps":[],"t":1778160115446,"v":"50be55834176c09b"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","46a28dfa-7518-4867-9519-a5f4cd9b9967"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"b467cfcc-aca0-4a8d-b3d7-76498bfba2d5","text":"rd:board-dialog","v":"e89a547148739ad6"},"created":{"at":"2025-10-21T09:40:12+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1761039612481,"data":{"aliases":[],"controller":"class Controller {\n  init() {\n    locals.design = this.identifierTodesign('overview')\n  }\n\n  updateDesign(identifier) {\n    locals.design = this.identifierTodesign(identifier)\n  }\n\n  identifierTodesign(identifier) {\n    return `rd:tab-${identifier}`\n  }\n}\n// class Controller {\n//   async init() {\n//     locals.document = null\n//     locals.document = await Aeppic.get(document)\n//   }\n// }\n","css":"","description":"","name":"rd:board-dialog","packages":[],"template":"<div class=\"w-[60vw]\"></div>\n<!-- <template v-if=\"data.workflowStatus === 'PLANNED'\">\n  <ae-design name=\"rd:page-inner\" :document=\"document\" :params=\"{...params, tab: 'repair'}\"></ae-design>\n</template>\n<template v-else> -->\n  <ae-design\n    name=\"rd:tabs\"\n    :document=\"document\"\n    :params=\"{ ...params, identifierBlocklist: [], isDialog: true}\"\n    @selected=\"controller.updateDesign($event)\"\n  ></ae-design>\n  <ae-design\n    class=\"mt-2\"\n    :name=\"locals.design\" \n    :document=\"document\" \n    :params=\"{...params, isDialog: true}\"\n  ></ae-design>\n<!-- </template> -->\n\n\n<!-- <ae-design v-if=\"data.status === 'PLANNED'\" name=\"rd:page--administator\" :document=\"locals.document\" :params=\"params\"></ae-design>\n<ae-design v-else name=\"rd:dialog-performance-review\" :document=\"locals.document\" :params=\"params\"></ae-design> -->"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"38e64455-fd1b-4499-a439-b2a2f4506775","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-01-29T14:45:49+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"b467cfcc-aca0-4a8d-b3d7-76498bfba2d5","text":"rd:board-dialog","v":"e89a547148739ad6"},"p":"46a28dfa-7518-4867-9519-a5f4cd9b9967","previous":{"v":"e07ef936483a37f0"},"stamps":[],"t":1769697949755,"v":"9e37d9e7ff27165b"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","1b166603-d0f3-4f16-98c4-0534afbd6f5a"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2025-08-08T07:59:20+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1754639960273,"data":{"aliases":[],"controller":"class Controller {\n  init() {\n    locals.design = this.identifierTodesign('overview')\n  }\n\n  updateDesign(identifier) {\n    locals.design = this.identifierTodesign(identifier)\n  }\n\n  identifierTodesign(identifier) {\n    return `rd:tab-${identifier}`\n  }\n\n}","css":"","description":"","name":"rd:board-dialog","packages":[],"template":"<div class=\"w-[60vw]\"></div>\n<template v-if=\"data.workflowStatus === 'PLANNED'\">\n  <ae-design name=\"rd:page-inner\" :document=\"document\" :params=\"{...params, tab: 'maintenance-execution'}\"></ae-design>\n</template>\n<template v-else>\n  <header class=\"flex items-center justify-between w-full\">\n    <ae-design\n      class=\"flex-1\"\n      name=\"rd:tabs\"\n      :document=\"document\"\n      :params=\"{ ...params, identifierBlocklist: ['maintenance-execution'], isDialog: true}\"\n      @selected=\"controller.updateDesign($event)\"\n    ></ae-design>\n    <!-- <ae-layout layout-id=\"20a6dabd-5c89-4fb9-a12b-5bc63a48e7ca\" :param-document=\"document\"></ae-layout> -->\n  </header>\n  <ae-design\n    class=\"mt-2 w-full\"\n    :name=\"locals.design\" \n    :document=\"document\" \n    :params=\"{...params, isDialog: true}\"\n  ></ae-design>\n</template>"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"b467cfcc-aca0-4a8d-b3d7-76498bfba2d5","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-03-31T08:02:51+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"p":"1b166603-d0f3-4f16-98c4-0534afbd6f5a","previous":{"v":"390068d6f4b77a9a"},"stamps":[],"t":1774944171320,"v":"13981aad4716e4dd"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","093f533e-9758-479c-97bc-8e4ba7dc3c2d"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2025-11-17T08:52:46+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1763369566323,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:building","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<ae-design :name=\"params.design || 'title'\" :document-id=\"document.a[document.a_forms.findIndex(aForm => aForm === '5a4fafb4-3c2b-4826-8a85-7c804ee4ac52')]\"></ae-design> "},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"1918712a-981b-4e78-9571-31c5e6834a09","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-02-06T12:19:03+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"p":"093f533e-9758-479c-97bc-8e4ba7dc3c2d","previous":{"v":"1003d5277a641586"},"stamps":[],"t":1770380343150,"v":"14408fe96474f738"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","093f533e-9758-479c-97bc-8e4ba7dc3c2d"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"1918712a-981b-4e78-9571-31c5e6834a09","text":"rd:building","v":"14408fe96474f738"},"created":{"at":"2026-02-06T12:19:41+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"ct":1770380381393,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:building-part","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<ae-design :name=\"params.design || 'title'\" :document-id=\"document.a[document.a_forms.findIndex(aForm => aForm === '1e3214b4-b81e-4ac2-a788-c2051af016ab')]\"></ae-design> "},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"51511a94-3339-470e-9326-b8725f565882","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-02-06T12:20:29+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"1918712a-981b-4e78-9571-31c5e6834a09","text":"rd:building","v":"14408fe96474f738"},"p":"093f533e-9758-479c-97bc-8e4ba7dc3c2d","previous":{"v":"3ab41ba573f7a68d"},"stamps":[],"t":1770380429489,"v":"0ce07b67d3f0a9a1"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","02132d06-c73b-4101-bde0-2fe98224a35a"],"a_depth":3,"a_forms":["folder","application-form","design-folder"],"created":{"at":"2026-02-18T13:01:15+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"ct":1771419675998,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      anmeldung: 'c6931d87-a1f3-4b34-bc1b-3f0bfe7398f8'\n    }\n\n    locals.anmeldungDocument = await Aeppic.findOne(Aeppic.Query.descendants(document.a[0]).form(this.FORMS.anmeldung))\n  }\n\n  handleClick () {\n    Aeppic.navigateTo(locals.anmeldungDocument)\n  }\n}","css":"","description":"","name":"rd:button-navigate-to-aufnahme","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<ae-layout\n  layout-id=\"f6bdd129-3852-4bac-9375-559b929486bc\"\n  :param-disabled=\"!locals.anmeldungDocument\"\n  @selected=\"controller.handleClick()\"\n  param-title=\"Zur Startseite\"\n  param-icon=\"far fa-home\"\n></ae-layout>"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"0f9778dc-edb4-4529-8696-16cee304664e","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2026-02-27T15:45:28+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"p":"02132d06-c73b-4101-bde0-2fe98224a35a","previous":{"v":"e46e97a09a6cbb75"},"stamps":[],"t":1772207128369,"v":"ba8bc710443d38da"},{"id":"471e2b8b-f208-4e7d-9fc7-d019b54243e6","v":"347ba7c8bd1c10a7","cloneOf":{"id":"7f3fd319-f256-45f9-be10-6c6e52e589ae","v":"bd3c010c811f8b53","text":"page--left"},"originalCloneOf":{"id":"7f3fd319-f256-45f9-be10-6c6e52e589ae","v":"bd3c010c811f8b53","text":"page--left"},"previous":{"v":"3f40069ced6a3045"},"p":"43f2603c-e6b0-4a91-9087-4f103c96a2b4","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"rd:calendar","template":"<ae-list \r\n  v-if=\"locals.canEdit != null\"\r\n  list-id=\"7951a7c9-979c-4f95-a7bf-9e3a3a738ad7\"\r\n  param-title=\"Schmiedekalender\"\r\n  :param-readonly=\"!locals.canEdit\"\r\n  :param-query=\"locals.query\"\r\n  :param-views=\"['week', 'month', 'day']\"\r\n  :param-root-document-id=\"document.id\"\r\n  :param-appointment-form-id=\"locals.FORMS.Termin\"\r\n  :param-document-to-calendar-mapper=\"(doc) => controller.mapDocumentToCalendar(doc)\" \r\n  :param-default-appointment-length=\"locals.defaultAppointmentLength\"\r\n></ae-list>","css":"","controller":"class Controller {\r\n  async init() {\r\n    locals.FORMS = {\r\n      Termin: '0aedd37c-75c9-4724-ab7e-a3de888870b5'\r\n    }\r\n\r\n    // locals.defaultAppointmentLength = await Aeppic.Preferences.getSettingForDocument('apps:b3191869-9bcf-440c-92be-7b013944b450:standardTerminLaenge', document)\r\n    locals.defaultAppointmentLength = await Aeppic.Preferences.getSetting('apps:b3191869-9bcf-440c-92be-7b013944b450:standardTerminLaenge')\r\n\r\n    if (locals.defaultAppointmentLength == null) {\r\n      locals.defaultAppointmentLength = null\r\n    } \r\n \r\n    locals.query = Aeppic.Query.children().form(locals.FORMS.Termin)\r\n\r\n    const canEdit = await Aeppic.canEdit(document)\r\n    locals.canEdit = Aeppic.Account && Aeppic.Account.data.isGroupAccount === false && canEdit === true\r\n  }\r\n\r\n  mapDocumentToCalendar(entryDocument) {\r\n    return {}\r\n  }\r\n}\r\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-10-10T12:14:31+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2024-01-08T11:00:07+01:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1704708007889,"ct":1696940071184,"a_depth":4,"a":["apps","b3191869-9bcf-440c-92be-7b013944b450","3555bef3-1cf0-4f7d-b3ce-5346fb8cbff4","43f2603c-e6b0-4a91-9087-4f103c96a2b4"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"b41b27c4-2a18-42f3-aa81-f57830c23c1c","v":"57b738e87dd66002","previous":{"v":"d6b659941a9901c2"},"p":"5475727b-0e0c-412a-8452-23b9c5b242f2","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"rd:calendar","template":"<ae-design class=\"h-full\"\n           name=\"rd:page-inner\"\n           :document=\"locals.calendar\"\n           :param-configuration=\"locals.configuration\"\n></ae-design>","css":"","controller":"class Controller {\n  async init() {\n    locals.calendar = null\n    locals.configuration = {\n      calendars: [\n    {\n      \"form\": \"84ede5f8-c5af-4113-8235-4b7fa528e265\",\n      \"fields\": {\n        \"attendees\": \"data.verantwortlich\",\n        \"start\": \"data.wann\",\n        \"end\": \"\",\n        \"label\": [\"data.name\", \"data.label\"],\n        \"description\": \"data.text\",\n        \"done\": \"data.erledigt\" \n      }\n    }\n      ]\n    }\n\n    locals.calendar = await Aeppic.findOne(`p:${document.a[0]} f.id:c6237a67-b8cf-4107-92d8-afd460497f0e`)\n  }\n} ","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-07-01T13:33:06+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-08-14T14:36:22+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1692023782060,"ct":1656682386543,"a_depth":4,"a":["apps","9d6ee173-26fe-4472-a271-7667f717094e","6743ef9a-c21b-443f-91b8-4dd86886ee8c","5475727b-0e0c-412a-8452-23b9c5b242f2"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","59edbdbc-2cab-426a-bb42-6e57c5158e4f","3be7e887-1bcd-4c3c-979f-b20a986c4c48","0b4fe19c-a550-46b7-ada0-6813a60e14bc"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2022-06-02T12:25:23+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1654172723490,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.calendar = null\n    locals.configuration = {\n      calendars: [\n        {\n          form: '0deb4864-cbb6-420c-99ee-337c7444ab24',\n          fields: {\n            attendees: 'data.verantwortlich',\n            start: 'data.bisStart',\n            end: 'data.bisEnde',\n            label: ['data.name', 'data.label'],\n            done: 'data.erledigt',\n          },\n        },\n      ],\n      filterDocuments: {\n        query: 'a_forms:1ec5237d-463a-417f-8dac-5bbbbc2e35b7 f.id:d2ac3563-3c3f-4f02-b923-9b67abf98d10',\n        matchCalendarField: 'attendees',\n        default: 'Aeppic.ProfilePage', // \"first\", \"last\"\n      },\n    }\n\n    locals.calendar = await Aeppic.findOne(`p:${document.a[0]} f.id:c6237a67-b8cf-4107-92d8-afd460497f0e`)\n  }\n}\n","css":"","description":"","name":"rd:calendar","packages":[],"template":"<ae-design class=\"h-full\"\n           name=\"rd:page-inner\"\n           :document=\"locals.calendar\"\n           :param-configuration=\"locals.configuration\"\n></ae-design>"},"f":{"id":"design-form","text":"Design","v":"c2d9ae57c7a46896"},"id":"c2f09e7a-9b5e-4773-8ab5-578eef74da99","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-12-09T10:51:03+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"p":"0b4fe19c-a550-46b7-ada0-6813a60e14bc","previous":{"v":"1ffa6332bd8a109c"},"stamps":[],"t":1765277463538,"v":"c4295a14b81586c2"},{"id":"d31677f9-e1f6-4b6c-8e7f-9714341e1db7","v":"e8cad1c76ad17ae3","previous":{"v":"e45ca9cfa611126e"},"p":"0b6a2b21-9425-466e-9e8d-57ec39cc95e1","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"rd:calendar","template":"<div class=\"flex gap-4 h-full\">\n  <ae-design  name=\"calendar\"\n              :document=\"document\"\n              class=\"flex-1\"\n  ></ae-design>\n\n  <!-- <ae-design name=\"rd:child-projects\" :document=\"document\"></ae-design> -->\n</div> \n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-05-09T08:40:33+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-05-11T10:28:53+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1652264933555,"ct":1652085633517,"a_depth":4,"a":["apps","59edbdbc-2cab-426a-bb42-6e57c5158e4f","3be7e887-1bcd-4c3c-979f-b20a986c4c48","0b6a2b21-9425-466e-9e8d-57ec39cc95e1"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","49babc91-9123-4d92-b850-ce4d10f0e1b4","b6b5ad5b-124f-4b1c-8f55-74294451a2ba","a88e6030-17ca-4fe7-a1c0-128175a568ab"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2024-01-08T11:47:03+01:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1738943917976,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.loading = true\n    this.subscription = null\n\n    locals.calendars = []\n    locals.activeCalendars = []\n\n    locals.filterDocuments = []\n    locals.activeFilterDocuments = []\n\n    locals.filters = []\n    locals.activeFilters = []\n\n    const canEdit = await Aeppic.canEdit(document)\n    locals.canEdit = Aeppic.Account && Aeppic.Account.data.isGroupAccount === false && canEdit === true\n\n    locals.configuration = {\n      overfetchEntriesFor: 'year',\n      calendars: [\n        {\n          children: 'dfd8d610-c84d-401a-b7e9-4194c5eabe3d',\n          childrenField: 'resources',\n          allowAdd: false,\n          form: '941dad3f-07ee-401d-a7f5-244eba256937',\n          fields: {\n            attendees: 'data.attendees',\n            start: 'data.start',\n            end: 'data.end',\n            label: ['data.name'],\n            description: 'data.description',\n          },\n        },\n      ],\n      filterDocuments: {\n        query: 'a_forms:1ec5237d-463a-417f-8dac-5bbbbc2e35b7 f.id:d2ac3563-3c3f-4f02-b923-9b67abf98d10',\n        matchCalendarField: 'attendees',\n        xdefault: 'Aeppic.ProfilePage', // \"first\", \"last\"\n        NOT_IMPLEMENTED_remember: true,\n      },\n    }\n\n    locals.calendars = await this.getCalendars()\n    locals.activeCalendars = locals.calendars.concat()\n\n    locals.filters = this.getFilters()\n    locals.activeFilters = locals.filters.concat()\n\n    locals.filterDocuments = await this.getFilterDocuments()\n    locals.activeFilterDocuments = this.getActiveFilterDocuments()\n\n    locals.loading = false\n  }\n\n  getFilters() {\n    return locals.configuration.filters ?? []\n  }\n\n  async getFilterDocuments() {\n    if (!locals.configuration.filterDocuments) {\n      return []\n    }\n\n    return Aeppic.find(`a:${document.a[0]} ${locals.configuration.filterDocuments.query}`)\n  }\n\n  getActiveFilterDocuments() {\n    if (!locals.filterDocuments) {\n      return []\n    }\n\n    switch (locals.configuration.filterDocuments.default) {\n      case 'Aeppic.ProfilePage':\n        return locals.filterDocuments.filter((doc) => doc.id === Aeppic.ProfilePage.id)\n      case 'first':\n        return locals.filterDocuments.length > 0 ? [locals.filterDocuments[0]] : []\n      case 'last':\n        return locals.filterDocuments.length > 0 ? [locals.filterDocuments[locals.filterDocuments.length - 1]] : []\n      default:\n        return []\n    }\n  }\n\n  async getCalendars() {\n    const configuration = locals.configuration\n\n    const calendars = []\n\n    for (const calendar of configuration.calendars) {\n      const children = await Aeppic.getAll(document.data[calendar.childrenField])\n\n      children.forEach(child => {\n        calendars.push({\n          documentId: child.id,\n          form: calendar.form,\n          color: child.data.color,\n          fields: calendar.fields,\n        })\n      })\n    }\n\n    return calendars\n    // return Aeppic.getAll(data.resources)\n  }\n\n  mapDocumentToCalendar(appointment) {\n    return appointment.p\n  }\n\n  async removeCalendar(calendar) {\n    locals.activeCalendars = locals.activeCalendars.filter((r) => r.documentId !== calendar.documentId)\n\n    // this.updateQuery()\n  }\n\n  async addCalendar(calendar) {\n    locals.activeCalendars.push(calendar)\n\n    // this.updateQuery()\n  }\n\n  addFilter(filter) {\n    locals.activeFilters.push(filter)\n  }\n  removeFilter(filter) {\n    locals.activeFilters = locals.activeFilters.filter((r) => r !== filter)\n  }\n\n  addFilterDocument(filterDocument) {\n    locals.activeFilterDocuments.push(filterDocument)\n  }\n  removeFilterDocument(filterDocument) {\n    locals.activeFilterDocuments = locals.activeFilterDocuments.filter((r) => r !== filterDocument)\n  }\n}\n\n// class Controller {\n//   async init() {\n//     this.FORMS = {\n//       Termin: '941dad3f-07ee-401d-a7f5-244eba256937'\n//     }\n\n//     this.subscription = null\n\n//     locals.appointments = []\n//     locals.resources = { array: [], map: {} }\n//     locals.activeResources = { array: [], map: {} }\n\n//     const canEdit = await Aeppic.canEdit(document)\n//     locals.canEdit = Aeppic.Account && Aeppic.Account.data.isGroupAccount === false && canEdit === true\n\n//     locals.resources = await this.getResources()\n//     locals.activeResources = await this.getResources()\n\n//     this.subscribeResources()\n//   }\n\n//   async getResources() {\n//     const asArray = await Aeppic.getAll(data.resources)\n//     const asMap = asArray.reduce((result, item) => {\n//       result[item.id] = item\n//       return result\n//     }, {})\n\n//     return {\n//       array: asArray,\n//       map: asMap,\n//     }\n//   }\n\n//   subscribeResources() {\n//     Aeppic.watch(document.id, async () => {\n\n//       locals.resources = await this.getResources()\n//       locals.activeResources = await this.getResources()\n\n//       await this.subscribeAppointments()\n//     })\n//   }\n\n//   async subscribeAppointments() {\n//     const search = `a:${document.id} f.id:${this.FORMS.Termin}`\n\n//     const findOptions = {\n//       size: 9999,\n//       sort: 'data.start',\n//     }\n\n//     this.subscription = Aeppic.updateSubscription(this.subscription, search, findOptions, async (appointments) => {\n//       locals.appointments = await Aeppic.getAll(appointments)\n//     })\n//   }\n\n//   mapDocumentToCalendar(appointment) {\n//     return appointment.p\n//   }\n\n//   async removeCalendar(calendar) {\n//     const c = await Aeppic.get(calendar)\n\n//     console.log('remove', calendar, c)\n\n//     locals.activeResources.array = locals.activeResources.array.filter(r => r.id !== c.id)\n//     locals.activeResources.map = Object.assign({}, locals.activeResources.map, { [c.id]: null })\n//   }\n\n//   async addCalendar(calendar) {\n//     const c = await Aeppic.get(calendar)\n\n//     console.log('add', calendar,c )\n\n//     locals.activeResources.array.push(c)\n//     locals.activeResources.map = Object.assign({}, locals.activeResources.map, { [c.id]: c})\n//   }\n// }\n","css":"","description":"","name":"rd:calendar","packages":[],"template":"<ae-list\n  v-if=\"locals.canEdit != null && !locals.loading\"\n  style=\"height: 100%\"\n  list-id=\"8ccba43a-bb15-4f1c-ac5e-e6967968e83a\"\n  param-title=\"Kalender\"\n  :root-document-id=\"document.id\"\n  :param-document-to-calendar-mapper=\"(doc) => controller.mapDocumentToCalendar(doc)\"\n  :param-document=\"document\"\n  :param-configuration=\"locals.configuration\"\n  :param-calendars=\"locals.calendars\"\n  :param-active-calendars=\"locals.activeCalendars\"\n  :param-filter-documents=\"locals.filterDocuments\"\n  :param-active-filter-documents=\"locals.activeFilterDocuments\"\n  :param-filters=\"locals.filter\"\n  :param-active-filters=\"locals.activeFilters\"\n  @calendar-remove=\"controller.removeCalendar($event)\"\n  @calendar-add=\"controller.addCalendar($event)\"\n  @filter-remove=\"controller.removeFilter($event)\"\n  @filter-add=\"controller.addFilter($event)\"\n  @filterdocument-remove=\"controller.removeFilterDocument($event)\"\n  @filterdocument-add=\"controller.addFilterDocument($event)\"\n  :param-readonly=\"!locals.canEdit\"\n  :param-debug=\"false\"\n></ae-list>\n\n"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"fe612468-cb19-43c1-bb6a-be7b4cbe369d","inheritedLocks":[null,null,null,null,null],"locks":[],"meta":{},"modified":{"at":"2025-12-09T11:45:04+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"p":"a88e6030-17ca-4fe7-a1c0-128175a568ab","previous":{"v":"1a8cbb062dc3ce03"},"stamps":[],"t":1765280704069,"v":"f7380d01910392a3"},{"a":["apps","77ee8815-2c3a-4bb5-abd9-90541a545a24","1cc4b977-c14d-4587-af47-d6ac230f60b3"],"a_depth":3,"a_forms":["folder","application-form","design-folder"],"created":{"at":"2023-03-01T10:33:24+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1677666804010,"data":{"aliases":[],"controller":"class Controller {\n  init() {\n    locals.innerParams = {\n      backgroundColorClass: null,\n      clickHandler: null,\n    }\n  }\n\n  mounted() {\n    const el = $refs.card\n    if (!el) return    \n\n    el.setAttribute('data-aeppic-sharedscope', this.scopeName)\n    this.shared = Aeppic.SharedContext.forElement(el)\n    locals.innerParams = this.shared.set('cardParams', locals.innerParams)\n  }\n\n  get scopeName() {\n    return `designName:${design.data.name},documentId:${document.id}`\n  }\n}","css":"","description":"","name":"rd:card","packages":[],"template":"<div\n  class=\"p-2 rounded-md size-full\"\n  :class=\"[locals.innerParams.backgroundColorClass ?? 'bg-white', !params.noBorder && 'border border-slate-200']\"\n  @click.stop=\"locals.innerParams.clickHandler ? locals.innerParams.clickHandler() : $emit('selected', document)\"\n  ref=\"card\"\n  :data-test=\"'design' + '_' + design.data.name + '_' + 'documentForm_' + document.f.text\"\n>\n  <ae-design\n    name=\"rd:card-inner\"\n    @selected=\"$emit('selected', $event)\"\n    class=\"size-full\"\n    :document=\"document\"\n    :params=\"params\"\n  ></ae-design>\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"5e7f0841-77be-4ed2-80f8-7e06831828e3","inheritedLocks":[null,null,null,null],"locks":[],"meta":{},"modified":{"at":"2026-03-09T14:40:24+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"p":"1cc4b977-c14d-4587-af47-d6ac230f60b3","previous":{"v":"7bc3dd91af008de6"},"stamps":[],"t":1773067224245,"v":"3526a64c5685418f"},{"id":"d28dec66-cda6-4d8e-98de-3181d72c5999","v":"919cfc4eb03b069c","previous":{"v":"87011902e00db6b4"},"p":"8d1804b0-c5c6-4acf-a15f-1b02872e792e","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:card-copy-to-invoice","template":"<div class=\"flex gap-1 items-center p-1\">\n  <ae-design name=\"title\" :document=\"document\"></ae-design>\n\n  <div class=\"flex-1\"></div>\n\n  <ae-layout  v-if=\"!params.readonly\"\n            layout-id=\"fde4ed81-1f72-4e27-b2bf-f1291c4ec7ea\"\n            param-command=\"063c51a9-4d61-49a0-8b0c-31e6b0388986\"\n            :param-options=\"{ position: document }\"\n            :param-target=\"params.contextDocument\"\n            class=\"text-xs\"\n  ></ae-layout>\n</div>\n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-05-07T09:35:13+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-05-07T09:46:10+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1715075170209,"ct":1715074513169,"a_depth":4,"a":["apps","0924db0f-7095-4b51-8966-bad1e45d68ec","a3b935e7-60bc-4996-9b18-668e4361067f","8d1804b0-c5c6-4acf-a15f-1b02872e792e"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","91a90288-37bc-4f86-be38-4283833717d2","cb7a4c1b-703a-4b16-9190-aa2a26532688","8dbe21a7-7642-4884-986b-a119c6498bd3"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2024-01-09T11:21:51+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1704799315150,"data":{"aliases":[],"controller":"  async init() {\n    locals.tooltipWeitereVerantwortliche = ''\n    locals.tooltipWeitereVerantwortliche = await this.updateWeitereVerantwortliche()\n  }\n  \n  async updateWeitereVerantwortliche() {\n    if (!data.attendees || data.attendees.length <= 1) {\n      return ''\n    }\n\n    const others = data.attendees.slice(4)\n    let title = '' \n     \n    for (const other of others) {\n      const va = await Aeppic.get(other)\n\n      if (title.length > 0) {\n        title += '\\n'\n      }\n\n      if (va && va.data.name) {\n        title += `${va.data.name}`\n      } else {\n        title += `Unbenannt`\n      }\n    }\n \n    return title\n  }\n\n  get date() {\n    const date = DateTime.fromISO(data.date)\n\n    // if (date.toRelativeCalendar()) {\n    //   // only chrome supports toRelativeCalendar\n    //   return date.toRelativeCalendar()\n    // }\n\n    const diff = -date.diffNow('days').days\n\n    if (diff > 365 && diff <= 730) {\n      return 'vor einem Jahr'\n    } \n\n    if (diff > 21 && diff <= 51) {\n      return 'vor einem Monat'\n    } \n\n    if (diff > 14 && diff <= 21) {\n      return 'vor zwei Wochen'\n    }\n\n    if (diff >= 2 && diff <= 7) {\n      return date.toLocaleString({weekday: 'long' })\n    }\n\n    if (diff <= 1) {\n      return 'heute'\n    }\n\n    return date.toLocaleString(DateTime.DATE_MED)\n  }","css":"","description":"","name":"rd:card-inner","packages":[],"template":"<div class=\"flex gap-1 items-center overflow-hidden\"\n@click.stop=\"$emit('selected', document)\">\n  <ae-design name=\"title\" :document=\"document\" class=\"max-w-[20rem] pr-1 mr-4\"></ae-design>\n  \n  <div class=\"flex-1\"></div>\n  <ae-layout layout-id=\"ffd34105-fa6a-44f5-aa63-64923233f178\"\n              :param-employees=\"data.attendees\"\n              class=\"text-xl mr-2 shrink-1 overflow-hidden\"   \n  ></ae-layout>  \n \n  <ae-design  name=\"rd:date\" :document=\"document\" param-field-name=\"date\" class=\"text-xs\" :param-compact=\"true\" :param-no-user-bubbles=\"true\"></ae-design>\n</div>\n\n \n<!-- <div class=\"_CSS-card ae-navigatable\" :class=\"{ '_CSS-card--selected': params.isSelected, '_CSS-card--with-border': params.noBorder !== true }\" @click.stop=\"$emit('selected', document)\">\n  <div class=\"_CSS-card__primary\">\n    <ae-design name=\"title\" :document=\"document\" style=\"flex: 1;\"></ae-design>\n\n    <div class=\"_CSS-card-assignees\" v-if=\"data.attendees && data.attendees.length\">\n      <ae-design name=\"avatar--tiny\" :document-id=\"data.attendees[0].id\"></ae-design>\n      <ae-design v-if=\"data.attendees.length >= 2\" name=\"avatar--tiny\" :document-id=\"data.attendees[1].id\"></ae-design>\n      <ae-design v-if=\"data.attendees.length >= 3\" name=\"avatar--tiny\" :document-id=\"data.attendees[2].id\"></ae-design>\n      <ae-design v-if=\"data.attendees.length >= 4\" name=\"avatar--tiny\" :document-id=\"data.attendees[3].id\"></ae-design>\n      <ae-design v-if=\"data.attendees.length > 4\" name=\"avatar--tiny\" :document-id=\"data.attendees[0].id\" :param-overwrite-display-with=\"'+' + (data.attendees.length - 4)\" :title=\"locals.tooltipWeitereVerantwortliche\"></ae-design>\n    </div>\n    <div v-if=\"data.date\" :title=\"Aeppic.DateTime.fromISO(data.date).toLocaleString(Aeppic.DateTime.DATE_SHORT)\">\n      {{ controller.date }}\n    </div>\n    <div v-else>\n      <i>Kein Datum angegeben</i>\n    </div>\n  </div>\n</div> -->"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"09745eff-72b0-4ede-97f1-4fd5fe8eb5b3","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-02-09T13:56:35+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"p":"8dbe21a7-7642-4884-986b-a119c6498bd3","previous":{"v":"3759034eb48fb9fa"},"stamps":[],"t":1770645395058,"v":"9ddd6368c334f60f"},{"a":["apps","9d6ee173-26fe-4472-a271-7667f717094e","53b70eca-0cef-448b-9674-22a70a937eb1","84ede5f8-c5af-4113-8235-4b7fa528e265"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"78e723fd-367d-41d1-b60e-3a4842ccec8e","text":"ref-card","v":"219debb6a660630d"},"created":{"at":"2022-09-09T13:27:10+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1662730030541,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.form = null\n    locals.reporter = null\n\n    locals.form = await Aeppic.getFormForDocument(document)\n    locals.ausloeserPlaceholder = locals.form.getPlaceholder('typ').field.settings.options.find(o => o.value === data.typ)\n\n    locals.reporter = await Aeppic.getProfilePageForAccount(document.created.by)\n  }\n\n  date(value) {\n    if (!value) {\n      return ''\n    } \n\n    const date = DateTime.fromISO(value)\n    const withTime = date.get('hour') !== 0 || date.get('minute') !== 0\n     \n\n    const diff = +date.diffNow('days').days.toFixed(0)\n \n    console.log({ document: document.data.name,date: date.toLocaleString(DateTime.DATETIME_MED), withTime, diff })\n\n    if (diff === 0) {\n      if (withTime) {\n        return `${date.toRelativeCalendar()}, ${date.toLocaleString(DateTime.TIME_24_SIMPLE)}`\n      }\n        return date.toRelativeCalendar()\n    }\n\n    if (diff > -7 && diff <= 0) {\n      if (withTime) {\n        return `${date.toRelativeCalendar()}, ${date.toLocaleString({ hour: '2-digit', minute: '2-digit' })}`\n      }\n\n      return date.toRelativeCalendar()\n      return date.toLocaleString({weekday: 'long', hour: '2-digit', minute: '2-digit' })\n    }\n\n    if (diff > 0 && diff <= 7) {\n      if (withTime) {\n        return date.toLocaleString({weekday: 'long', hour: '2-digit', minute: '2-digit' })\n      }\n\n      return date.toLocaleString(DateTime.DATE_MED)\n    }\n \n    return date.toRelativeCalendar()\n  }\n}\n","css":"","description":"","name":"rd:card-inner","packages":[],"template":"<div class=\"flex gap-3 relative\"\n      @click.stop=\"$emit('selected', document)\"\n    :class=\"{ 'opacity-60': data.erledigt }\"\n>\n  <ae-design name=\"rd:icon\" :document=\"document\" param-icon-field-name=\"typ\"\n            param-size=\"8\"\n  ></ae-design> \n\n\n  <div class=\"flex-1 flex flex-col gap-1\">\n    <div v-if=\"data.wann\" class=\"font-bold\" :title=\"Aeppic.DateTime.fromISO(data.wann).toLocaleString(Aeppic.DateTime.DATETIME_SHORT)\">\n      <ae-icon class=\"far fa-calendar-alt\"></ae-icon>\n      {{ controller.date(data.wann) }} \n    </div> \n\n    <div v-if=\"data.titel\" class=\"line-clamp-3\" :class=\"{ 'line-through': data.erledigt }\">\n      {{ data.titel }}\n    </div> \n\n    <div v-if=\"data.typ === 'RUECKRUF' || data.typ === 'WIEDERVORLAGE'\" class=\"flex items-center gap-1\" title=\"Verantwortlich\">\n      <ae-icon class=\"far fa-at text-neutral-500\"></ae-icon>\n      <ae-layout layout-id=\"ffd34105-fa6a-44f5-aa63-64923233f178\"\n                :params=\"{ employees: data.verantwortlich, class: 'text-2xl' }\"\n      ></ae-layout>\n    </div>\n\n    <div class=\"flex gap-2\">\n      <div class=\"text-sm text-neutral-500\" :title=\"Aeppic.DateTime.fromISO(document.created.at).toLocaleString(Aeppic.DateTime.DATETIME_SHORT)\">\n        {{ controller.date(document.created.at) }}\n      </div> \n \n      <!-- <div v-if=\"document.previous && !document.previous.hidden\" class=\"text-sm text-neutral-500\" :title=\"'Bearbeitet: ' + Aeppic.DateTime.fromISO(document.modified.at).toLocaleString(Aeppic.DateTime.DATETIME_SHORT)\">\n        <ae-icon class=\"far fa-pen\"></ae-icon>\n      </div> -->\n    </div>\n  </div> \n\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"24435d748c76f819"},"id":"0e7f4f21-916d-4cad-bdc7-3031f2fa0913","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-02-09T13:59:24+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"78e723fd-367d-41d1-b60e-3a4842ccec8e","text":"ref-card","v":"219debb6a660630d"},"p":"84ede5f8-c5af-4113-8235-4b7fa528e265","previous":{"v":"c8743e701170f2d4"},"stamps":[],"t":1770645564338,"v":"7840fac7eea818cc"},{"id":"111b607a-6bfb-410f-b04b-ef48b7a8a882","v":"ae0d8465fd955cc3","cloneOf":{"id":"b1bd8cd9-6f23-4200-8cb8-37a8e3e13095","text":"card-title","v":"initial"},"originalCloneOf":{"id":"b1bd8cd9-6f23-4200-8cb8-37a8e3e13095","text":"card-title","v":"initial"},"previous":{"v":"0aeffb01966d0ccc"},"p":"8fef472f-9220-484b-99cd-bb80f208f795","f":{"id":"design-form","v":"e37099c040ec46e9","text":"Design"},"data":{"name":"rd:card-inner","template":"<div class=\"@container w-full flex flex-wrap @md:flex-nowrap gap-4\" @click.stop=\"$emit('selected', document)\">\n  <ae-design class=\"flex-1 shrink-0 min-w-28\" :document=\"locals.document\" name=\"title\"></ae-design>\n\n  <div\n    class=\"flex items-center gap-1 justify-end min-w-10\"\n    :title=\"locals.downloadInfo ? 'Neue Bewerbungen seit ' + Aeppic.DateTime.fromISO(locals.downloadInfo.data.lastDownloadDate).toLocaleString(Aeppic.DateTime.DATETIME_SHORT_WITH_SECONDS)  : '' \"\n  >\n    <span\n    class=\"min-w-32\"\n    >\n    <ae-design\n        v-if=\"locals.document?.data.lastFinishedApplication\"\n        name=\"rd:date\"\n        :document=\"locals.document\"\n        :params=\"{\n          fieldName: 'lastFinishedApplication',\n          relative: true,\n          title: 'Neuste Bewerbung abgeschlossen am: ',\n          colorize: 'near-today',\n        }\"\n        ></ae-design>\n    </span>\n\n    <span title=\"Neue Bewerbungen\" class=\"min-w-10\">\n      <template v-if=\"locals.statistics.changed\">\n        <span>{{ locals.statistics.changed }}</span>\n        <ae-icon class=\"fa fa-user-plus text-lime-500\"></ae-icon>\n      </template>\n    </span>\n  </div>\n\n  <div title=\"Alle Bewerbungen\" class=\"min-w-10 flex items-center justify-end gap-1\">\n    <template v-if=\"locals.document?.data.finishedApplications\">\n      <span>{{ locals.document.data.finishedApplications }}</span>\n      <ae-icon class=\"far fa-user\"></ae-icon>\n    </template>\n  </div>\n\n  <div class=\"flex gap-1 items-center justify-between\" title=\"Erstellt\">\n    <span class=\"w-20 text-right\">\n      {{ Aeppic.DateTime.fromISO(locals.document.created.at).toLocaleString(Aeppic.DateTime.DATE_SHORT) }}\n    </span>\n    <ae-icon class=\"far fa-star-of-life\"></ae-icon>\n  </div>\n</div>\n","css":"","controller":"class Controller {\n  async init() {\n    console.log('init role', document.data.name)\n    this.FORMS = {\n      DownloadInfo: '81265a15-9225-4401-8ccf-c041b8502537',\n      Application: '009c0da4-718f-43d0-964a-647e30074d94',\n    }\n\n    locals.document = document\n\n// WARNING: this design has WATCH:FALSE set by the list. because of this, we need to implement watching ourself!\n    Aeppic.watch(document, (changedDocument) => {\n      locals.document = changedDocument\n    })\n\n    locals.zipDownloadUrl = `/api/services/18047369-674f-4ba5-bf5d-bba493f4f9bb/v2/zip?projectId=${document.id}`\n    locals.zipDownloadUrlNew = `/api/services/18047369-674f-4ba5-bf5d-bba493f4f9bb/v2/zip?projectId=${document.id}&onlyNew=true`\n    locals.downloadInfo = null\n    locals.statistics = {\n      changed: 0,\n    }\n\n    locals.downloadInfo = await Aeppic.findOne(`p:${document.id} f.id:${this.FORMS.DownloadInfo} data.account.id:${Aeppic.Account.id}`)\n\n    Aeppic.watch(locals.downloadInfo, (downloadInfo) => {\n      this._updateStatistics(downloadInfo)\n    })\n \n    this._updateStatistics(locals.downloadInfo)\n \n    // Aeppic.subscribe(\n    //   `p:${document.id} f.id:${this.FORMS.DownloadInfo} data.account.id:${Aeppic.Account.id}`,\n    //   { size: 1 },\n    //   async (docs) => {\n    //     locals.downloadInfo = docs[0]\n\n    //     this._updateStatistics(locals.downloadInfo)\n    //   }\n    // )\n\n    // this._updateStatistics(null)\n  }\n\n  _updateStatistics(downloadInfo) {\n    const finishedApplications = document.data.finishedApplications || 0\n    const downloadedApplications = downloadInfo?.data.downloadedApplications || 0\n\n    const changed = finishedApplications - downloadedApplications\n\n    locals.statistics.changed = changed\n  }\n}\n","packages":[{"id":"9fbc0645-b97a-4b98-8520-02670f21ac0b","v":"e1f26ccbbc55afae","text":"Aeppic Search Helpers"}],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-06-26T12:44:26+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"modified":{"at":"2026-08-06T13:27:06+00:00","by":"b7485498-f1f3-4ab1-87d1-9cb63ea890c8","backedBy":"","impersonatedBy":"","from":"","client":"server"},"t":1786022826621,"ct":1719405866633,"a_depth":4,"a":["apps","3fbe0efd-713a-457a-a34c-3a12aa19d6bb","0fb162f4-0f78-4c1e-aad2-43c27e6d98cb","8fef472f-9220-484b-99cd-bb80f208f795"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","3fbe0efd-713a-457a-a34c-3a12aa19d6bb","0fb162f4-0f78-4c1e-aad2-43c27e6d98cb","e170bb6c-f326-446d-870a-ada9d9f67230"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"7aecf846-a282-4cc6-a572-55380eb62804","text":"card-title","v":"677049e97db120fe"},"created":{"at":"2024-06-26T08:33:52+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1719390832185,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    const MINUTE_MS = 1000 * 60\n    this.FORMS = {\n      DownloadInfo: '81265a15-9225-4401-8ccf-c041b8502537',\n      Application: '009c0da4-718f-43d0-964a-647e30074d94',\n      Project: 'e170bb6c-f326-446d-870a-ada9d9f67230',\n      Role: '8fef472f-9220-484b-99cd-bb80f208f795',\n    }\n\n    locals.document = document\n\n// WARNING: this design has WATCH:FALSE set by the list. because of this, we need to implement watching ourself!\n    Aeppic.watch(document, (changedDocument) => {\n      locals.document = changedDocument\n    })\n\n    locals.zipDownloadUrl = `/api/services/18047369-674f-4ba5-bf5d-bba493f4f9bb/v2/zip?projectId=${document.id}`\n    locals.zipDownloadUrlNew = `/api/services/18047369-674f-4ba5-bf5d-bba493f4f9bb/v2/zip?projectId=${document.id}&onlyNew=true`\n    locals.downloadInfos = []\n    locals.statistics = {\n      changedTotal: 0,\n    }\n    \n    this.allRoles = await Aeppic.find(`p:${document.id} f.id:${this.FORMS.Role}`)\n    locals.downloadInfos = await Aeppic.find(this.getRoleStatisticQuery(this.allRoles))\n\n    Aeppic.watchAll(locals.downloadInfos, (downloadInfos) => {\n      this._updateStatistics(downloadInfos, this.allRoles)\n    })\n \n    this._updateStatistics(locals.downloadInfos, this.allRoles)\n  }\n\n  _updateStatistics(downloadInfos, roles) {\n    const roleInfos = []\n\n    for (const role of roles) {\n      const downloadInfo = downloadInfos ? downloadInfos.find(info => info?.p === role.id) : null\n      roleInfos.push({role, downloadInfo})\n    }\n\n    const changedTotal = roleInfos.reduce((accumulator, current) => {\n      const finished = current.role.data?.finishedApplications || 0;\n      const downloaded = current.downloadInfo?.data?.downloadedApplications || 0;\n      \n      const changed = finished - downloaded;\n      \n      return accumulator + changed;\n    }, 0)\n\n    locals.statistics.changedTotal = changedTotal\n  }\n\n  getRoleStatisticQuery(roles) {\n    if (roles.length === 0) {\n      return ''\n    }\n    const query = `(${roles.map(role => `(p:${role.id} f.id:${this.FORMS.DownloadInfo})`).join(' OR ')}) AND data.account.id:${Aeppic.Account.id}`\n    return query\n  }\n}\n ","css":"","description":"","name":"rd:card-inner","packages":[{"id":"9fbc0645-b97a-4b98-8520-02670f21ac0b","text":"Aeppic Search Helpers","v":"e1f26ccbbc55afae"}],"template":"<div \n  class=\"grid grid-cols-3 gap-4 items-center h-full\"\n  :class=\"{ 'line-through opacity-50': locals.document?.data.closed }\"\n  @click.stop=\"$emit('selected', document)\"\n>\n  <div class=\"flex flex-col justify-center xmin-h-[3rem]\">\n    <ae-design class=\"flex-1\" :document=\"document\" name=\"title\"></ae-design>\n    <div v-if=\"locals.document?.data.identifier\" class=\"text-xs text-slate-500 flex items-center gap-1\">\n      <ae-icon class=\"far fa-hashtag text-[10px]\"></ae-icon>\n      <span class=\"truncate\">{{ locals.document?.data.identifier }}</span>\n    </div>\n  </div>\n\n  <div class=\"flex flex-col justify-center gap-1\">\n    <div class=\"flex items-center gap-1 text-sm\">\n      <div \n        class=\"flex items-center gap-1 text-sm\"\n        title=\"Neue Bewerbungen\"\n      >\n        <span>{{ locals.statistics.changedTotal || 0 }}</span>\n        <ae-icon\n          :class=\"(locals.statistics.changedTotal || 0) > 0 ? 'fa fa-user-plus text-lime-500' : 'far fa-user-plus'\"\n        ></ae-icon>\n      </div> /\n      <div \n        class=\"flex items-center gap-1 text-sm\"\n        title=\"Gestartete und beendete Bewerbungen\"\n      >\n        <span>{{ locals.document?.data.finishedApplications || 0 }}</span> \n        <ae-icon class=\"far fa-user\"></ae-icon>\n      </div>\n    </div>\n    <ae-design\n      v-if=\"locals.document?.data.lastFinishedApplication\"\n      name=\"rd:date\"\n      :document=\"document\"\n      :params=\"{\n        fieldName: 'lastFinishedApplication',\n        relative: true,\n        title: 'Neuste Bewerbung abgeschlossen am: ',\n        colorize: 'near-today',\n        isTime: true\n      }\"\n    ></ae-design>\n  </div>\n\n  <div class=\"flex flex-col justify-center items-end text-sm text-neutral-700\">\n    <div \n      class=\"\"\n      title=\"Erstellt\"\n    >\n      {{ Aeppic.DateTime.fromISO(document.created.at).toLocaleString(Aeppic.DateTime.DATE_SHORT) }}\n      <ae-icon class=\"far fa-star-of-life\"></ae-icon>\n    </div>\n    <div \n      class=\"text-xs opacity-80\"\n      title=\"Geplantes Ende\"\n    > \n      {{ locals.document?.data.deadline ? Aeppic.DateTime.fromISO(locals.document?.data.deadline).toLocaleString(Aeppic.DateTime.DATE_SHORT) : \"Offenes Ende\"}}\n      <ae-icon class=\"far fa-tombstone\"></ae-icon>\n    </div>\n  </div>\n</div>"},"f":{"id":"design-form","text":"Design","v":"e37099c040ec46e9"},"id":"12426db8-166e-4be4-8726-1de4c535dfe4","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-07-30T11:11:50+00:00","backedBy":"","by":"b7485498-f1f3-4ab1-87d1-9cb63ea890c8","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"7aecf846-a282-4cc6-a572-55380eb62804","text":"card-title","v":"677049e97db120fe"},"p":"e170bb6c-f326-446d-870a-ada9d9f67230","previous":{"v":"c743950b13a89da7"},"stamps":[],"t":1785409910627,"v":"01d4f828f8b9c20a"},{"a":["apps","45ada186-e9fd-451d-9dbd-2defc0b4f86f","4ec6a0e5-cf2d-4095-9b70-2e31a64d5679","dbee6e16-d63a-493c-bba6-505f79918f9f"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"8a79fdd6-5404-4526-9753-bc3b7ac0cecc","text":"rd:ref-card","v":"e4325dfde44886b4"},"created":{"at":"2023-03-01T09:12:04+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1677661924164,"data":{"applies":"","controller":"init() {\r\n  locals.upload = null //{progressPercent:0.3,status:'started'}\r\n  locals.clicked = false\r\n}\r\n\r\nget isUploading() {\r\n  const status = Aeppic.Uploads.getUploadStatusForDocument(document)\r\n\r\n  if (status) {\r\n    locals.upload = status[0]\r\n  } else {\r\n    locals.upload = null\r\n  }\r\n \r\n  return !!locals.upload\r\n}\r\n","css":"","name":"rd:card-inner","packages":[],"template":"<div class=\"flex flex-col overflow-hidden\" :class=\"{ 'w-[140px]': params.square }\"\n  @click.stop=\"$emit('selected', document)\"\n  :data-test=\"'design' + '_rd-card_' + document.f.text\"\n>\n  <section class=\"flex gap-2  items-center\" :class=\"{ 'flex-col': params.square }\">\n    <ae-design name=\"rd:thumbnail\" :document=\"document\" :param-size=\"params.size\" :param-height=\"params.height\"\n      :param-width=\"params.width\"></ae-design> \n\n    <section v-if=\"!params.square\" class=\"flex-1 flex flex-col gap-1 overflow-hidden\">\n      <div class=\"flex gap-2\">\n        <ae-design  v-if=\"!params.showDownloadOriginalOnly\"\n          class=\"text-neutral-600 dark:text-neutral-200 w-full overflow-hidden flex-1\" name=\"title\"\n          :document=\"document\"   :data-test=\"'design' + '_rd-card_' + document.f.text + '_title'\"></ae-design>\n        <template v-if=\"params.showDownload && data.datei.dataUrl\">\n            <ae-design name=\"rd:abstract_download-and-print-buttons\" :document=\"document\"\n            param-field-name=\"datei\" :param-no-print=\"true\" :param-show-download-original-only=\"params.showDownloadOriginalOnly\"\n            ></ae-design> \n        </template>\n      </div>\n      <div  v-if=\"!params.showDownloadOriginalOnly\"\n            class=\"flex gap-2 text-sm text-neutral-600 dark:text-neutral-200 items-center\">\n        <ae-design v-if=\"document.stamps?.length\" name=\"rd:workflow-stamps\" :document=\"document\" :param-no-text=\"true\" param-workflow-definition-id=\"bbd555c5-a65d-484e-9fed-7564a1c21ebc\"></ae-design>\n        <ae-design v-else name=\"rd:icon\" :document=\"document\"></ae-design>\n        <ae-design name=\"rd:size\" :document=\"document\"></ae-design>\n      </div>\n    </section>\n    <section v-else class=\"flex-1 flex flex-col w-full gap-1\">\n      <!-- thumbnail default width is 128px -->\n      <!-- <ae-design name=\"rd:workflow-stamps\" :document=\"document\" :param-no-text=\"true\" param-workflow-definition-id=\"bbd555c5-a65d-484e-9fed-7564a1c21ebc\"\n                class=\"absolute top-0 right-1\"\n      ></ae-design> --> \n      <ae-design\n        class=\"-mt-5 bg-white border border-slate-200 rounded-md px-2 self-center w-[110px] text-neutral-600 dark:text-neutral-200 overflow-x-hidden text-sm\"\n        name=\"title\" :document=\"document\" :data-test=\"'design' + '_rd-card_' + document.f.text + '_title'\"></ae-design>\n\n      <div v-if=\"!params.hideMeta\" class=\"flex gap-2 text-xs text-neutral-600 dark:text-neutral-200 items-baseline overflow-hidden\">\n        <ae-design v-if=\"document.stamps?.length\" name=\"rd:workflow-stamps\" :document=\"document\" :param-no-text=\"true\" param-workflow-definition-id=\"bbd555c5-a65d-484e-9fed-7564a1c21ebc\"></ae-design>\n        <ae-design v-else name=\"rd:icon\" :document=\"document\"></ae-design>\n        <!-- <ae-design name=\"rd:size\" :document=\"document\"></ae-design> -->\n        <ae-design class=\"px-1 mb-2 text-xs\" name=\"rd:creation-info\" :document=\"document\"></ae-design>\n      </div>\n    </section>\n  </section>\n\n  <div v-if=\"locals.upload\" style=\"display:flex\">\n    <div class=\"ae-progress\" :style=\"{ 'padding-left': (locals.upload.progressPercent * 100).toString() + '%' }\"></div>\n  </div>\n</div>"},"f":{"id":"design-form","text":"Design","v":"e3fe9ece11aabc5e"},"id":"12a04075-966c-4cd8-a5ff-adc0d18300a0","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-02-09T14:18:57+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"8a79fdd6-5404-4526-9753-bc3b7ac0cecc","text":"rd:ref-card","v":"e4325dfde44886b4"},"p":"dbee6e16-d63a-493c-bba6-505f79918f9f","previous":{"v":"c4fcf902aa61deb1"},"stamps":[],"t":1770646737411,"v":"4d8e4654f3ed1d3e"},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","680a53ff-2457-41b4-aa4e-d832af3bce52","7bcd74d7-106e-4076-8d36-cdff37d162b9"],"a_depth":5,"a_forms":["folder","application-form","form-folder","folder","form"],"created":{"at":"2026-05-11T08:51:05+00:00","backedBy":"","by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":""},"ct":1778489465282,"data":{"aliases":[],"controller":"class Controller {\n  init() {\n    locals.categoryLabel = ''\n    locals.categoryClass = ''\n    locals.hasPeople = false\n\n    this.recompute(document)\n\n    Aeppic.watch(document.id, (doc) => {\n      this.recompute(doc)\n    })\n  }\n\n  recompute(doc) {\n    const d = doc.data || {}\n\n    locals.categoryLabel = this.computeCategoryLabel(d.category)\n    locals.categoryClass = this.computeCategoryClass(d.category)\n\n    locals.hasPeople =\n      (Array.isArray(d.responsible) && d.responsible.length > 0) ||\n      (Array.isArray(d.responsibleBitm) && d.responsibleBitm.length > 0)\n  }\n\n  computeCategoryLabel(category) {\n    if (!category || category === 'NONE') return ''\n\n    const fallback = {\n      ABLAUF_PILOTIERUNG: 'Ablauf Pilotierung',\n      AUFLAGENERFUELLUNG: 'Auflagenerfüllung',\n      WIEDERVORSTELLUNG: 'Wiedervorstellung',\n      ANDERES: 'Anderes'\n    }\n\n    return fallback[category]\n  }\n\n  computeCategoryClass(category) {\n    const classes = {\n      ABLAUF_PILOTIERUNG: 'bg-blue-100 text-blue-800 dark:bg-blue-900/40 dark:text-blue-200',\n      AUFLAGENERFUELLUNG: 'bg-amber-100 text-amber-800 dark:bg-amber-900/40 dark:text-amber-200',\n      WIEDERVORSTELLUNG: 'bg-purple-100 text-purple-800 dark:bg-purple-900/40 dark:text-purple-200',\n      ANDERES: 'bg-slate-100 text-slate-700 dark:bg-slate-700 dark:text-slate-200'\n    }\n    return classes[category] || 'bg-slate-100 text-slate-700 dark:bg-slate-700 dark:text-slate-200'\n  }\n}","css":"","description":"","name":"rd:card-inner","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<div class=\"flex gap-2 flex-col overflow-hidden cursor-pointer h-full\"\n     @click.stop=\"$emit('selected', document)\"\n     data-test=\"decision-card\">\n<!-- :class=\"{ '': data.completed }\" -->\n\n  <!-- Top section: main content (left) + responsible avatars (right) -->\n  <section class=\"flex gap-2 overflow-hidden flex-1\">\n    <section class=\"flex flex-col min-w-0 flex-1\">\n\n      <!-- Status + title row -->\n      <div class=\"flex gap-2 items-center min-w-0\">\n        <ae-icon v-if=\"data.completed\"\n                 class=\"fas fa-check-circle text-green-600 shrink-0\"\n                 data-test=\"completed-indicator\"></ae-icon>\n        <ae-icon v-else\n                 class=\"fal fa-circle text-neutral-400 shrink-0\"\n                 data-test=\"completed-indicator\"></ae-icon>\n\n        <div v-if=\"data.decisionName\"\n             class=\"font-bold truncate\"\n             :class=\"{ 'line-through text-neutral-500': data.completed }\"\n             data-test=\"title\">\n          {{ data.decisionName }}\n        </div>\n        <div v-else class=\"italic text-neutral-500\" data-test=\"title\">\n          Unbenannt\n        </div>\n      </div>\n\n      <!-- Optional description preview -->\n      <div v-if=\"data.description\"\n           class=\"text-xs text-neutral-500 truncate\"\n           data-test=\"description-preview\">\n        {{ data.description }}\n      </div>\n\n\n    </section>\n\n    <div class=\"flex-1\"></div>\n\n    <!-- Avatar column (responsible) -->\n    <section v-if=\"data.responsible && data.responsible.length\"\n             class=\"flex flex-col gap-1 items-center shrink-0\"\n             title=\"Verantwortlich\"\n             data-test=\"responsible-group\">\n      <ae-design\n        v-for=\"person of data.responsible\"\n        :key=\"person.id || person.p\"\n        class=\"text-2xl\"\n        name=\"avatar\"\n        :document=\"person\"\n      ></ae-design>\n    </section>\n  </section>\n\n  <!--  category badge + BITM + spacer -->\n  <div class=\"flex items-center gap-2\">\n    <span v-if=\"locals.categoryLabel\"\n          class=\"inline-flex items-center gap-1 text-xs uppercase tracking-wide px-2 py-0.5 rounded-full font-medium whitespace-nowrap\"\n          :class=\"locals.categoryClass\"\n          data-test=\"category\">\n      <!-- <ae-icon v-if=\"locals.categoryIcon\" :class=\"locals.categoryIcon\"></ae-icon> -->\n      <span>{{ locals.categoryLabel }}</span>\n    </span>\n\n    <div v-if=\"data.responsibleBitm && data.responsibleBitm.length\"\n         class=\"flex items-center gap-1.5 text-xs text-neutral-600\"\n         data-test=\"responsible-bitm-group\">\n      <span class=\"text-xs uppercase tracking-wide text-neutral-500 font-medium shrink-0\">BITM</span>\n      <ae-list list-id=\"5a30185e-24bc-430b-b477-fa85634c26c7\"\n               :documents=\"data.responsibleBitm\"\n               :watch-documents=\"false\"\n               :param-horizontal=\"true\"\n               :param-wrap=\"true\"\n               :root-document=\"document\"\n               data-test=\"responsible-bitm\"></ae-list>\n    </div>\n\n    <div class=\"flex-1\"></div>\n\n    <!-- Expiry date (with urgency color via colorize) -->\n      <section v-if=\"data.expiryDate\" class=\"flex gap-4 items-center mt-1\">\n        <div class=\"flex items-center\" title=\"Ablaufdatum\">\n          <ae-icon class=\"far fa-calendar-clock text-neutral-500\"></ae-icon>\n          <ae-design\n            class=\"ml-1\"\n            name=\"rd:date\"\n            :document=\"document\"\n            param-field-name=\"expiryDate\"\n            :param-colorize=\"!data.completed ? 'days-left' : ''\"\n            :param-no-min-width=\"true\"\n            :param-no-title=\"true\"\n          ></ae-design>\n        </div>\n      </section>\n  </div>\n</div>"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"1375f5ba-a569-4dff-abbc-cfcf66bbb4dc","inheritedLocks":[null,null,null,null,null,null],"locks":[],"modified":{"at":"2026-05-12T12:42:53+00:00","backedBy":"","by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":""},"p":"7bcd74d7-106e-4076-8d36-cdff37d162b9","previous":{"v":"37eae256ab065b86"},"stamps":[],"t":1778589773626,"v":"5cc3915db30c2c14"},{"a":["apps","59edbdbc-2cab-426a-bb42-6e57c5158e4f","3be7e887-1bcd-4c3c-979f-b20a986c4c48","0deb4864-cbb6-420c-99ee-337c7444ab24"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2023-02-27T13:18:12+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1758281578935,"data":{"aliases":[],"controller":"class Controller {\n  init() {\n    locals.daysLeft = this.daysLeft(document)\n    locals.daysLeftAsHumanReadable = this.daysLeftAsHumanReadable(locals.daysLeft)\n    locals.commentCount = null\n\n    Aeppic.watch(document.id, (doc) => locals.daysLeft = this.daysLeft(doc))\n    this.commentStatisticsWatch()\n\n\n  }\n  \n  daysLeft(doc) {\n    if (!doc.data.bisEnde && !doc.data.bisStart) {\n      return { days: null, dueDate: null }\n    }\n    const dueDate = Aeppic.DateTime.fromISO(doc.data.bisEnde || doc.data.bisStart)\n\n    return {\n      days: -Aeppic.DateTime.local().diff(dueDate).toFormat('d'),\n      dueDate: dueDate,\n    }\n  }\n\n  daysLeftAsHumanReadable(daysLeft) {\n    const { days, dueDate } = daysLeft\n\n    if (days === null) {\n      return ''\n    }\n\n    if (days < 30) {\n      return dueDate.toRelativeCalendar() \n    }\n\n    return `${days} Tage übrig`\n  }\n\n  async commentStatisticsWatch() {\n    let statistic = null\n    try {\n      statistic = await Aeppic.resolve(document, 'AppComments-StatisticsForParent')\n\n      if (!statistic) {\n        return\n      }\n      \n      Aeppic.watch(statistic, (document) => {\n        locals.commentCount = document.data.count\n      })\n    } catch (error) {\n      return\n    }\n  }\n}\n\n  \n ","css":"","description":"","name":"rd:card-inner","packages":[],"parameters":["readonly"],"parametersCardinalities":[" "],"parametersControls":[" "],"parametersDescriptions":[" "],"parametersTypes":["boolean"],"template":"<div class=\"@container cursor-pointer w-full\" \n     @click.stop=\"$emit('selected', document)\"\n      :data-test=\"'design' + '_' + design.data.name + '_' + 'documentForm_' + document.f.text\"\n>  \n  <div> \n      <!-- Labels -->\n      <ae-list\n        v-if=\"data.labels && Array.isArray(data.labels) && data.labels.length > 0\"\n        list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\"\n        :documents=\"data.labels\"\n        :watch-documents=\"false\"\n        param-design=\"rd:tag\"\n        :param-horizontal=\"true\"\n        :param-designParams=\"{ notPill: true, noIcon: false, icon: 'fas fa-circle', calculateBackgroundColor: true, maxWidth: '16em', readonly: true }\"\n        :param-wrap=\"true\"\n        class=\"text-[0.6em] ml-1\"\n        @selected=\"$emit('selected', document)\"\n      ></ae-list>\n  </div>\n  <div\n    class=\"w-full flex flex-wrap gap-x-2 gap-y-2 p-2 pt-1 items-center @3xl:flex-none @3xl:flex-nowrap\"\n    \n  >\n    <!--  -->\n    <!-- Titel -->\n    <div class=\"flex gap-2 min-w-0\">\n      <ae-design\n        name=\"rd:title-action\"\n        :document=\"document\"\n        class=\"text-xs\"\n        :param-readonly=\"params.readonly\"\n        :param-only-done=\"true\"\n        data-test=\"action-done\"\n      ></ae-design>\n      <div\n        class=\"truncate text-nowrap min-w-0\"\n        :class=\"{ 'line-through': data.erledigt, 'italic text-neutral-500': !data.name.trim() }\"\n        :title=\"data.name.trim() ? data.name : document.f.text\"\n        data-test=\"title\"\n      >\n        <template v-if=\"data.name.trim()\"> {{ data.name }} </template>\n        <template v-else> {{ document.f.text }} </template>\n      </div>\n    </div>\n    <!-- Weitere Informationen -->\n    <div\n      class=\"flex ml-auto gap-x-2 gap-y-2 p-0 items-center cursor-pointer \"\n    >\n      <div class=\"flex-1\"></div>\n\n      <!-- Liste Verantwortliche -->\n      <ae-list\n        list-id=\"5a30185e-24bc-430b-b477-fa85634c26c7\"\n        :documents=\"data.verantwortlich\"\n        :watch-documents=\"false\"\n        :param-maxBubbles=\"6\"\n        :param-horizontal=\"true\"\n        :param-noWrap=\"true\"\n        :root-document=\"document\"\n        data-test=\"list-assignees\"\n      ></ae-list>\n\n      <!-- Erledigte/uebrige Aufgaben-->\n      <div\n        v-if=\"controller.tasksDone\"\n        title=\"Checkliste (erledigt/gesamt)\"\n        class=\"text-sm items-center whitespace-nowrap hidden @sm:block\"\n        data-test=\"tasks\"\n      >\n        <ae-icon class=\"fal fa-check-circle\"></ae-icon>\n        <span class=\"text-xs -ml-[3px]\">{{ controller.tasksDone.erledigt + '/' + controller.tasksDone.gesamt }}</span>\n      </div>\n\n      <!-- Anzahl Kommentare -->\n      <div\n        :title=\"'Anzahl Kommentare: ' + (locals.commentCount ?? 'Erstellen oder löschen Sie ein Kommentar um die Anzeige zu aktualisieren.')\"\n        class=\"text-sm items-center whitespace-nowrap hidden @sm:block w-10 no-underline\"\n        :class=\"[locals.commentCount <= 0 && 'text-secondary-500']\"\n        data-test=\"comments\"\n      >\n        <ae-icon \n          v-if=\"locals.commentCount != null\"\n          class=\"fal fa-comments\">\n        </ae-icon>\n        <span \n          v-if=\"locals.commentCount != null\"\n          class=\"text-xs\">{{ locals.commentCount }}\n        </span>\n      </div>\n\n      <!-- Prioritaet-->\n      <div v-if=\"data.prioritaet\" class=\"flex items-center\" data-test=\"priority\">\n        <div\n          class=\"text-red-500\"\n          title=\"Priorität: Hoch\"\n          v-if=\"data.prioritaet === 3\"\n        >\n          <ae-icon class=\"fal fa-arrow-circle-up\"></ae-icon>\n        </div>\n        <div title=\"Priorität: Mittel\" v-else-if=\"data.prioritaet === 2\">\n          <ae-icon class=\"fal fa-arrow-circle-right\"></ae-icon>\n        </div>\n        <div title=\"Priorität: Niedrig\" v-else-if=\"data.prioritaet === 1\">\n          <ae-icon class=\"fal fa-arrow-circle-down\"></ae-icon>\n        </div>\n      </div>\n\n      <!-- Zeit uebrig -->\n      <div class=\"w-[7rem] text-right\" v-if=\"locals.daysLeft?.days != null\" data-test=\"duedate\">\n        <div\n          class=\"text-sm mr-1 whitespace-nowrap\"\n          :class=\"{ 'text-neutral-500': data.erledigt, 'text-rose-500': !data.erledigt && locals.daysLeft.days < 0, 'text-amber-500': !data.erledigt && locals.daysLeft.days <= 5 && locals.daysLeft.days >= 0 }\"\n          :title=\"Aeppic.DateTime.fromISO(data.bisEnde || data.bisStart).toLocaleString()\"\n        >\n          {{ locals.daysLeftAsHumanReadable }}\n        </div>\n      </div>\n      <div  v-else \n            class=\"text-neutral-500 mr-1 w-[5rem] text-right\" \n            title=\"Fortlaufend (keine Fälligkeit)\"\n            data-test=\"duedate\"\n      >\n        <ae-icon class=\"far fa-infinity\"></ae-icon>\n      </div>\n\n      <!-- Zeittracker -->\n      <ae-design\n        name=\"rd:timetracking-progress\"\n        :document=\"document\"\n        :params=\"{ minWidth: '100%', hideTotals: true, costEstimateFieldName: 'costEstimate', shortenCostEstimate: true, hideMinutes: true }\" \n        class=\"w-28 relative top-2\"\n      ></ae-design>\n\n      <!-- In Bearbeitung umschalten -->\n      <ae-design\n        name=\"rd:title-action\"\n        :document=\"document\"\n        class=\"text-xs\"\n        :param-readonly=\"params.readonly\"\n        :param-only-progress=\"true\"\n        data-test=\"action-progress\"\n      ></ae-design>\n\n    </div>\n  </div>\n</div>"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"14d5f0c4-8ca7-4906-91a6-96a83682390c","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-05-12T12:31:31+00:00","backedBy":"","by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":""},"p":"0deb4864-cbb6-420c-99ee-337c7444ab24","previous":{"v":"f4e20788a1282197"},"stamps":[],"t":1778589091199,"v":"99286d56968dd97f"},{"a":["apps","b0eb4a71-010b-4d65-b79b-bb984a57c10f","a6c009e7-a2c9-4e84-a992-4ad09134d39d","d6f1cc99-f34e-4cb8-99b3-11f917485c25"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"868f3925-1fcb-41f5-b249-5bac8c6217d5","text":"rd:card","v":"e8476ae6e116dadd"},"created":{"at":"2024-02-09T13:19:35+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1707484775827,"data":{"applies":"","controller":"async init() {\r\n  locals.upload = null //{progressPercent:0.3,status:'started'}\r\n}\r\n\r\nget isUploading() {\r\n  const status = Aeppic.Uploads.getUploadStatusForDocument(document)\r\n\r\n  if (status) {\r\n    locals.upload = status[0]\r\n  } else {\r\n    locals.upload = null\r\n  }\r\n \r\n  return !!locals.upload\r\n}\r\n","css":"","name":"rd:card-inner","packages":[],"template":"\n<div class=\"flex flex-col overflow-hidden\" \n    @click.stop=\"$emit('selected', document)\">\n  <div class=\"flex gap-2  items-center\"\n       :class=\"{ 'flex-col': params.square }\"\n  >\n    <div v-if=\"params.square\" class=\"relative shrink-0 px-2 h-[128px] w-[128px] border-neutral-100 border rounded-md bg-white overflow-hidden\">\n      <div class=\"absolute top-1/3 left-1/3\">\n        <ae-icon class=\"far fa-file-alt text-5xl opacity-5 \"></ae-icon>\n      </div>\n      <div class=\"break-word h-[110px] p-2 overflow-hidden\">\n        {{ data.name }}\n      </div> \n    </div>\n    <!-- <ae-design name=\"thumbnail\" class=\"rounded-md overflow-hidden shrink-0 border border-neutral-100\" :document=\"document\" :param-size=\"params.size\" :param-height=\"params.height\" :param-width=\"params.width\"></ae-design> -->\n \n    <section v-if=\"!params.square\" class=\"p-1 flex gap-2 overflow-hidden flex-1\" >\n      <ae-design class=\"text-neutral-600 w-full overflow-hidden\" name=\"title\" :document=\"document\"></ae-design>\n      <ae-design class=\"text-xs\" name=\"rd:creation-info\" :document=\"document\" :param-compact=\"true\"></ae-design>\n    </section>\n    <section v-else class=\"flex flex-col xoverflow-x-hidden gap-1\">\n      <!-- thumbnail default width is 128px -->\n      <ae-design class=\"-mt-5 bg-white border border-slate-200 rounded-md px-2 self-center w-[110px] text-neutral-600 overflow-x-hidden text-sm\" name=\"title\" :document=\"document\"></ae-design>\n\n      <div class=\"flex gap-2 text-xs text-neutral-600 items-baseline overflow-hidden\">\n        <ae-design name=\"rd:icon\" :document=\"document\"></ae-design>\n        <!-- <ae-design name=\"rd:size\" :document=\"document\"></ae-design> -->\n        <ae-design class=\"px-1 mb-2 text-xs\" name=\"rd:creation-info\" :document=\"document\"></ae-design>\n      </div>\n    </section>\n  </div>\n\n  <div v-if=\"locals.upload\" style=\"display:flex\">\n    <div class=\"ae-progress\" :style=\"{ 'padding-left': (locals.upload.progressPercent * 100).toString() + '%' }\" ></div>\n  </div>\n</div>\n   \n   "},"f":{"id":"design-form","text":"Design","v":"e3fe9ece11aabc5e"},"id":"15c36b91-2c25-4f9f-8c32-a215979a0b6a","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-02-09T14:20:39+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"868f3925-1fcb-41f5-b249-5bac8c6217d5","text":"rd:card","v":"e8476ae6e116dadd"},"p":"d6f1cc99-f34e-4cb8-99b3-11f917485c25","previous":{"v":"0ad92db72177ecf6"},"stamps":[],"t":1770646839911,"v":"83e2ab4f1d0ceb20"},{"a":["apps","59edbdbc-2cab-426a-bb42-6e57c5158e4f","3be7e887-1bcd-4c3c-979f-b20a986c4c48","0b6a2b21-9425-466e-9e8d-57ec39cc95e1"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2023-02-21T09:55:15+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1758282853601,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      project: '0b6a2b21-9425-466e-9e8d-57ec39cc95e1'\n    }\n\n    // const progress = this.progress\n    locals.parts = []\n\n    // if (data.aufgabenErledigt ||\n    //   data.aufgabenBearbeitung ||\n    //   data.aufgabenOffen ||\n    //   data.aufgabenUeberfaellig) {\n    //   locals.parts = [\n    //     { label: 'Erledigt', value: data.aufgabenErledigt, percent: progress.closed, class: 'bg-sky-500' },\n    //     { label: 'In Bearbeitung', value: data.aufgabenBearbeitung, percent: progress.inProgress, class: 'bg-yellow-400', },\n    //     { label: 'Offen', value: data.aufgabenOffen, percent: progress.open, class: 'bg-slate-300', },\n    //     { label: 'Überfällig', value: data.aufgabenUeberfaellig, percent: progress.overdue, class: 'bg-rose-500', },\n    //   ]\n    // }\n\n    locals.daysLeft = this.daysLeft(document)\n    locals.daysLeftAsHumanReadable = this.daysLeftAsHumanReadable(locals.daysLeft)\n\n    Aeppic.watch(await this.getTasksStatisic(), (statistic) => {\n      const erledigt = statistic.data.aufgabenErledigt\n      const bearbeitung = statistic.data.aufgabenBearbeitung\n      const offen = statistic.data.aufgabenOffen\n      const ueberfaellig = statistic.data.aufgabenUeberfaellig\n      const percentile = 100 / (erledigt + bearbeitung + offen + ueberfaellig)\n      \n      if (erledigt || bearbeitung || offen || ueberfaellig) {\n        locals.parts = [\n          { label: 'Erledigt', value: erledigt, percent: erledigt * percentile, class: 'bg-sky-500' },\n          { label: 'In Bearbeitung', value: bearbeitung, percent: bearbeitung * percentile, class: 'bg-yellow-400', },\n          { label: 'Offen', value: offen, percent: offen * percentile, class: 'bg-slate-300', },\n          { label: 'Überfällig', value: ueberfaellig, percent: ueberfaellig * percentile, class: 'bg-rose-500', },\n        ]\n      }\n      console.log(locals.parts)\n    })\n  }\n\n  // get progress() {\n  //   const all = data.aufgabenGesamt\n\n  //   if (all === 0) {\n  //     return {}\n  //   }\n\n  //   const percentile = 100 / all\n\n  //   const open = data.aufgabenOffen * percentile\n  //   const overdue = data.aufgabenUeberfaellig * percentile\n  //   const closed = data.aufgabenErledigt * percentile\n  //   const inProgress = data.aufgabenBearbeitung * percentile\n\n  //   return {\n  //     open,\n  //     closed,\n  //     overdue,\n  //     inProgress,\n  //   }\n  // }\n\n  daysLeft(doc) {\n    if (!doc.data.bisEnde && !doc.data.bisStart) {\n      return { days: null, dueDate: null }\n    }\n\n    const dueDate = Aeppic.DateTime.fromISO(doc.data.bisEnde || doc.data.bisStart)\n\n    return {\n      days: -Aeppic.DateTime.local().diff(dueDate).toFormat('d'),\n      dueDate: dueDate,\n    }\n  }\n\n  daysLeftAsHumanReadable(daysLeft) {\n    const { days, dueDate } = daysLeft\n\n    if (days === null) {\n      return ''\n    }\n\n    if (days < 30) {\n      return dueDate.toRelativeCalendar() \n    }\n\n    return `${days} Tage übrig`\n  }\n\n  async getTasksStatisic() {\n    let statistic = undefined\n    \n    try {\n      statistic = await Aeppic.resolve(document, 'AppBCoreProjekte-Aufgabenüberblick')\n    } catch {}\n\n    // NOTE: this can be deactivatet in the future\n    if (!statistic) {\n      Aeppic.upgrade(document)\n    }\n\n    return statistic\n  }\n}","css":"","description":"","name":"rd:card-inner","packages":[],"parameters":["readonly","showIcon"],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":["boolean","boolean"],"template":"<div class=\"@container cursor-pointer\" \n     @click.stop=\"$emit('selected', document)\">\n  <div\n    class=\"w-full flex flex-wrap gap-x-2 gap-y-2 p-2 pt-1 items-center @3xl:flex-none @3xl:flex-nowrap\"\n  >\n    <!-- Titel -->\n    <div class=\"flex gap-2 min-w-0 items-center\">\n      <ae-design\n        name=\"rd:title-action\"\n        :document=\"document\"\n        class=\"text-xs\"\n        :param-readonly=\"params.readonly\"\n        :param-only-done=\"true\"\n      ></ae-design>\n      <ae-design\n        v-if=\"params.showIcon\"\n        name=\"rd:icon\"\n        :document-id=\"document.f.id\"\n      ></ae-design>\n      <div\n        class=\"truncate text-nowrap min-w-0\"\n        :class=\"{ 'line-through': data.erledigt, 'italic text-neutral-500': !data.name.trim() }\"\n        :title=\"data.name.trim() ? data.name : document.f.text\"\n      >\n        <template v-if=\"data.name.trim()\"> {{ data.name }} </template>\n        <template v-else> {{ document.f.text }} </template>\n      </div>\n    </div>\n    <!-- Weitere Informationen -->\n    <div\n      class=\"flex ml-auto gap-x-2 gap-y-2 p-0 items-center cursor-pointer \"\n    >\n      <div class=\"flex-1\"></div>\n\n      <!-- Liste Verantwortliche -->\n      <ae-list\n        list-id=\"5a30185e-24bc-430b-b477-fa85634c26c7\"\n        :documents=\"data.verantwortlich\"\n        :param-maxBubbles=\"6\"\n        :param-horizontal=\"true\"\n        :param-noWrap=\"true\"\n        :root-document=\"document\"\n      ></ae-list>\n\n      <!-- Erledigte/uebrige Aufgaben-->\n      <!-- <ae-layout xv-if=\"locals.parts.length\"\n              layout-id=\"101e5b7e-208a-42e3-951a-ee305efd3758\"\n            :param-parts=\"locals.parts\"\n            class=\"w-32 hidden @[16rem]:block\"\n      ></ae-layout>   -->\n\n      <!-- Zeit uebrig -->\n      <div class=\"w-[5rem] text-right mr-1\">\n        <div  v-if=\"locals.daysLeft?.days\"\n              class=\"\" >\n          <div\n            class=\"text-sm whitespace-nowrap\"\n            :class=\"{ 'text-rose-500': locals.daysLeft.days < 0, 'text-amber-500': locals.daysLeft.days <= 5 && locals.daysLeft.days >= 0 }\"\n            :title=\"Aeppic.DateTime.fromISO(data.bisEnde || data.bisStart).toLocaleString()\"\n          >\n            {{ locals.daysLeftAsHumanReadable }}\n          </div>\n        </div>\n        <div  v-else \n              class=\"text-neutral-500\" \n              title=\"Fortlaufend (keine Fälligkeit)\">\n          <ae-icon class=\"far fa-infinity\"></ae-icon>\n        </div>\n      </div>\n    </div>\n  </div>\n</div>"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"17a4caa6-6867-421b-8ead-ede5d2f87c44","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-05-12T12:30:57+00:00","backedBy":"","by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":""},"p":"0b6a2b21-9425-466e-9e8d-57ec39cc95e1","previous":{"v":"c5b0d7441bf4c782"},"stamps":[],"t":1778589057915,"v":"33ccedb81575979a"},{"a":["apps","8884dd6d-4320-4de2-91fe-6777ecfebec9","b9b17d13-b861-425a-9c17-d27d18d5be06","53eecc66-c1a1-47da-b9df-67cc2b8b60f5"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2023-08-16T11:39:51+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1692186002394,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:card-inner","packages":[],"template":"<div class=\"flex flex-col gap-4\" @click.stop=\"$emit('selected', document.data.document)\">\n  <div class=\"flex gap-4\">\n    <ae-design name=\"rd:icon\" :document=\"document\"\n            param-size=\"8\"\n    ></ae-design> \n\n    <div class=\"flex flex-wrap items-center gap-1\">\n      Wiedervorlage für <ae-design class=\"font-bold\" name=\"title\" :document=\"document.data.document\"></ae-design>\n      am <span v-if=\"data.date\" class=\"font-semibold\" title=\"Datum der Wiedervorlage\">{{ Aeppic.DateTime.fromISO(data.date).toLocaleString(Aeppic.DateTime.DATE_SHORT) }}</span>\n    </div>\n  </div>\n\n  <div v-if=\"data.note\" class=\"flex gap-2 gap-4 p-4 bg-neutral-100 rounded-md\">\n    {{ data.note }}\n  </div>\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"19533bf0-6583-43fb-bf94-887ecb466077","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-02-09T14:21:46+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"p":"53eecc66-c1a1-47da-b9df-67cc2b8b60f5","previous":{"v":"5a7a615e98c10442"},"stamps":[],"t":1770646906827,"v":"bd1b7166434bbd1f"},{"a":["apps","94a64d89-d204-4918-b147-d717914fb03e","f254ce25-42f1-4333-8ee7-23554bf746c1","88b1f60e-71f6-46f5-94ea-3d7bbe972950"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2024-05-02T13:13:30+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1714655610258,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.daysLeft = this.daysLeft(document)\n    locals.daysLeftAsHumanReadable = this.daysLeftAsHumanReadable(locals.daysLeft)\n    \n    locals.canEdit = false\n    locals.canDeactivate = false\n    locals.commentCount = null\n\n    Aeppic.watch(document.id, (doc) => locals.daysLeft = this.daysLeft(doc))\n\n    this.form = await Aeppic.getFormForDocument(document)\n\n    const [ canDeactivate, canEdit ] = await Promise.all([\n      this.accountCanDeactivate(),\n      Aeppic.canEdit(document) \n    ])\n    this.commentStatisticsWatch()\n\n    locals.canDeactivate = canDeactivate\n  }\n\n  daysLeft(doc) {\n    if (!doc.data.bisEnde && !doc.data.bisStart) {\n      return { days: null, dueDate: null }\n    }\n\n    const dueDate = Aeppic.DateTime.fromISO(doc.data.bisEnde || doc.data.bisStart)\n\n    return {\n      days: -Aeppic.DateTime.local().diff(dueDate).toFormat('d'),\n      dueDate,\n    }\n  }\n\n  daysLeftAsHumanReadable(daysLeft) {\n    const { days, dueDate } = daysLeft\n\n    if (days === null) {\n      return ''\n    }\n\n    if (days < 30) {\n      return dueDate.toRelativeCalendar() \n    }\n\n    return `${days} Tage übrig`\n  }\n\n  async toggleInactive() {\n    const editable = await Aeppic.edit(document)\n    editable.data.inaktiv = !editable.data.inaktiv\n    Aeppic.save(editable)\n  }\n\n\n  async accountCanDeactivate() {\n    if (params.readonly) {\n      return false\n    }\n\n    const fieldParams = this.form.getFieldControlParams('inaktiv')\n    \n    if (!fieldParams) {\n      return true\n    }\n\n    const enabledCommandId = fieldParams.enabledCommand\n\n    if (!enabledCommandId) {\n      return true\n    }\n\n    try {\n      const enabledCommandResult = await Aeppic.Commands.execute(enabledCommandId, document, {\n        Account: Aeppic.Account\n      })\n\n      return enabledCommandResult.ok && enabledCommandResult.value && enabledCommandResult.value.ok === true\n    } catch(e) {\n      return false\n    }\n  }\n\n  async commentStatisticsWatch() {\n    let statistic = null\n    try {\n      statistic = await Aeppic.resolve(document, 'AppComments-StatisticsForParent')\n\n      if (!statistic) {\n        return\n      }\n      \n      Aeppic.watch(statistic, (document) => {\n        locals.commentCount = document.data.count\n      })\n    } catch (error) {\n      return\n    }\n  }\n}","css":"","description":"","name":"rd:card-inner","packages":[],"template":"<div class=\"group/_CSS flex xflex-wrap gap-x-2 gap-y-2 p-1 items-center justify-end @container\"\n      :class=\"{ 'opacity-50': data.inaktiv, 'xopacity-70': data.erledigt }\"\n      @click.stop=\"$emit('selected', document)\" \n      :data-test=\"'design' + '_' + design.data.name + '_' + 'documentForm_' + document.f.text\"\n>\n\n  <ae-design name=\"rd:title-action\" :document=\"document\" class=\"text-xs\" :param-readonly=\"params.readonly\" :param-only-done=\"true\"></ae-design>\n\n  <div class=\"w-64 truncate\" data-test=\"name\" :class=\"{ 'line-through': data.erledigt || data.inaktiv, 'italic text-neutral-500': !data.name.trim() }\">\n    <template v-if=\"data.name.trim()\">\n    {{ data.name }} \n    </template>\n    <template v-else>\n      {{ document.f.text }}\n    </template>\n  </div> \n\n  <div class=\"flex-1\"></div>\n\n  <ae-design\n    name=\"rd:timetracking-progress\"\n    :document=\"document\"\n    :params=\"{ minWidth: '100%', hideTotals: true, costEstimateFieldName: 'costEstimate' }\" \n    class=\"w-28 hidden @sm:block\"\n  ></ae-design> \n\n  <ae-layout layout-id=\"ffd34105-fa6a-44f5-aa63-64923233f178\"\n            :param-employees=\"data.verantwortlich\"\n            class=\"min-w-14\"\n  ></ae-layout>\n\n  <!-- Anzahl Kommentare -->\n  <div\n    :title=\"'Anzahl Kommentare: ' + (locals.commentCount ?? 'Erstellen oder löschen Sie ein Kommentar um die Anzeige zu aktualisieren.')\"\n    class=\"text-sm items-center whitespace-nowrap hidden @sm:block w-10 no-underline\"\n    :class=\"[locals.commentCount <= 0 && 'text-secondary-500']\"\n  >\n    <ae-icon \n      v-if=\"locals.commentCount != null\"\n      class=\"fal fa-comments\">\n    </ae-icon>\n    <span \n      v-if=\"locals.commentCount != null\"\n      class=\"text-xs\">{{ locals.commentCount }}\n    </span>\n  </div>\n\n  <div class=\"w-28 flex justify-end hidden @sm:block\" v-if=\"locals.daysLeft.days != null\">  \n    <div class=\"text-sm\"\n        :class=\"{ 'text-rose-500': !data.erledigt && locals.daysLeft.days < 0, 'text-amber-500': !data.erledigt && locals.daysLeft.days <= 5 && locals.daysLeft.days >= 0 }\"\n        :title=\"Aeppic.DateTime.fromISO(data.bisEnde || data.bisStart).toLocaleString()\"\n    >\n      {{ locals.daysLeftAsHumanReadable }}\n    </div>\n  </div> \n  <div v-else class=\"min-w-28 w-28 hidden @sm:block\" data-daysleft-placeholder> </div>\n\n  <ae-design name=\"rd:title-action\" :document=\"document\" class=\"text-xs hidden @sm:block\" :param-readonly=\"params.readonly\" :param-only-progress=\"true\"></ae-design>\n\n  <ae-layout class=\"invisible group-hover/_CSS:visible\"\n      layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n      :param-icon=\"data.inaktiv ? 'far fa-trash-restore' : 'far fa-trash'\" \n      :param-classes=\"[data.inBearbeitung ? 'text-lime-500' : 'text-neutral-500']\"\n      @selected=\"controller.toggleInactive()\"\n      :param-disabled=\"!locals.canDeactivate\"\n      :param-title=\"data.inaktiv ? 'Aktivieren' : 'Deaktivieren'\"\n      param-border=\"border-slate-200\"\n    ></ae-layout>   \n</div>\n"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"1994e322-3cff-4753-a738-da30aede5927","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-03-03T14:26:45+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"p":"88b1f60e-71f6-46f5-94ea-3d7bbe972950","previous":{"v":"1a5142a6fd0367dd"},"stamps":[],"t":1772548005784,"v":"420e83d68fdaa797"},{"a":["apps","9d6ee173-26fe-4472-a271-7667f717094e","53b70eca-0cef-448b-9674-22a70a937eb1","8fc08287-dbcc-4e41-9d5d-28e4cd828943"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2023-12-21T13:51:26+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1703166686029,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:card-inner","packages":[],"template":"<div @click.stop=\"$emit('selected', document)\" class=\"flex\" >\n  <section class=\"flex-1 overflow-hidden\">\n    <div v-if=\"data.labels.length\" class=\"p-1 flex flex-wrap gap-1\" title=\"Labels\">\n      <!-- <ae-icon class=\"far fa-tags text-neutral-500\"></ae-icon> -->\n      <ae-design v-for=\"label of data.labels\"\n                name=\"rd:icon\"\n                :document-id=\"label.id\"\n                :params=\"{ fieldName: 'color', size: 3 }\"\n      ></ae-design>\n    </div>\n\n    <div class=\"truncate\">\n    {{ data.name }}\n    </div>\n\n\n    <div v-if=\"data.quelle.length\" class=\"p-1 flex flex-wrap gap-1\" title=\"Quellen\">\n      <!-- <ae-icon class=\"far fa-door-open text-neutral-500\"></ae-icon> -->\n      <ae-design v-for=\"label of data.quelle\"\n                name=\"rd:icon\"\n                :document-id=\"label.id\"\n                :params=\"{ fieldName: 'color', size: 3 }\"\n      ></ae-design>\n    </div>\n  </section>\n\n  <ae-layout layout-id=\"ffd34105-fa6a-44f5-aa63-64923233f178\"\n             :param-employees=\"data.verantwortlich\"\n             :param-vertical=\"true\"\n  ></ae-layout>\n</div>    \n"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"3d69ed1c-cfdd-4b5a-81cd-6b1253ada0a7","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-02-09T14:23:07+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"p":"8fc08287-dbcc-4e41-9d5d-28e4cd828943","previous":{"v":"f2c09d66a0068f42"},"stamps":[],"t":1770646987252,"v":"f6e1be001d23e04e"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","1e3214b4-b81e-4ac2-a788-c2051af016ab"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"5e7f0841-77be-4ed2-80f8-7e06831828e3","text":"rd:card","v":"98bd5a2147efa9cf"},"created":{"at":"2026-01-28T13:09:31+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"ct":1769605771553,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.area = null\n    if (Array.isArray(data.area) && data.area.length > 0) {\n      locals.area = await Aeppic.get(data.area[0])\n    }\n    locals.icon = (await Aeppic.getFormForDocument(document))?.data.namedIcon || ''\n  }\n\n  get hiddenClasses() {\n    return \"hidden @[200px]:block\"\n  }\n\n  get reverseHiddenClasses() {\n    return \"@[200px]:hidden block\"\n  }\n}","css":"","description":"","name":"rd:card-inner","packages":[],"template":"<div \n  class=\"flex gap-1 items-center size-full @container\" \n  @click.stop=\"$emit('selected', document)\"\n>\n  <div :class=\"[controller.reverseHiddenClasses]\">\n    <ae-icon :class=\"[locals.icon]\"></ae-icon>\n  </div>\n  \n  <div :class=\"controller.hiddenClasses\">\n    <ae-design\n      class=\"size-full\"\n      :document=\"document\"\n      name=\"rd:thumbnail\"\n      :params=\"{width: '60px', height: '60px'}\"\n      :param-hide-name=\"true\"\n    ></ae-design>\n  </div>\n\n  <div class=\"flex flex-col justify-center ml-1 overflow-hidden\">\n    <ae-design\n      :document=\"document\"\n      name=\"title\"\n    ></ae-design>\n    \n    <ae-design\n      v-if=\"Array.isArray(data.area) && data.area.length > 0\"\n      class=\"text-xs text-gray-500 truncate\"\n      :document-id=\"data.area[0].id\"\n      name=\"title\"\n    ></ae-design>\n  </div>\n</div>"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"4165d5a3-3760-421f-ada5-f50cbe2468d7","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-02-04T12:31:24+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"5e7f0841-77be-4ed2-80f8-7e06831828e3","text":"rd:card","v":"98bd5a2147efa9cf"},"p":"1e3214b4-b81e-4ac2-a788-c2051af016ab","previous":{"v":"64020c37e706e945"},"stamps":[],"t":1770208284540,"v":"e1f3be2121b94f44"},{"a":["apps","77ee8815-2c3a-4bb5-abd9-90541a545a24","1cc4b977-c14d-4587-af47-d6ac230f60b3"],"a_depth":3,"a_forms":["folder","application-form","design-folder"],"cloneOf":{"id":"5e7f0841-77be-4ed2-80f8-7e06831828e3","text":"rd:card","v":"81f232547cd0ba6e"},"created":{"at":"2026-02-02T13:03:55+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"ct":1770037435810,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:card-inner","packages":[],"template":"<div class=\"flex gap-2 items-center size-full\" @click.stop=\"$emit('selected', document)\">\n  <ae-design class=\"flex-1 min-w-0\" name=\"rd:styled-title,title\" :document=\"document\"></ae-design>\n  <ae-design \n    v-if=\"params.showFormTitle && data.name\"\n    name=\"form-title\" :document=\"document\"\n    class=\"text-neutral-400\"\n  ></ae-design>\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"43351343-6274-4b3e-bc47-b0f5b9fe2f74","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2026-02-06T14:25:30+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"5e7f0841-77be-4ed2-80f8-7e06831828e3","text":"rd:card","v":"81f232547cd0ba6e"},"p":"1cc4b977-c14d-4587-af47-d6ac230f60b3","previous":{"v":"93af6a2930caafa8"},"stamps":[],"t":1770387930838,"v":"ff91017fd1215164"},{"a":["apps","cf914a7f-ff5f-4598-80f1-63c9129e0a71","d69a62e9-a61f-42bf-9ae9-7983b87bf587","cb2adf77-7636-41a7-9a16-1610b06fa91e"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"12a04075-966c-4cd8-a5ff-adc0d18300a0","text":"rd:card","v":"1ea1b8d47d5dd731"},"created":{"at":"2023-11-07T14:48:59+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1699368539698,"data":{"applies":"","controller":"async init() {\r\n  locals.upload = null //{progressPercent:0.3,status:'started'}\r\n}\r\n\r\nget isUploading() {\r\n  const status = Aeppic.Uploads.getUploadStatusForDocument(document)\r\n\r\n  if (status) {\r\n    locals.upload = status[0]\r\n  } else {\r\n    locals.upload = null\r\n  }\r\n \r\n  return !!locals.upload\r\n}\r\n","css":"","name":"rd:card-inner","packages":[],"template":"\n<div class=\"flex flex-col overflow-hidden\" \n    @click.stop=\"$emit('selected', document)\">\n  <div class=\"flex gap-2  items-center\"\n       :class=\"{ 'flex-col': params.compact }\"\n  >\n    <div class=\"relative shrink-0 px-2 h-[128px] w-[128px] border-neutral-100 border rounded-md bg-white overflow-hidden\">\n      <div class=\"absolute top-1/3 left-1/3\">\n        <ae-icon class=\"far fa-file-alt text-5xl opacity-5 \"></ae-icon>\n      </div>\n      <div class=\"break-word h-[110px] p-2 overflow-hidden\">\n        {{ data.name }}\n      </div> \n    </div> \n    <!-- <ae-design name=\"thumbnail\" class=\"rounded-md overflow-hidden shrink-0 border border-neutral-100\" :document=\"document\" :param-size=\"params.size\" :param-height=\"params.height\" :param-width=\"params.width\"></ae-design> -->\n \n    <section v-if=\"!params.compact\" class=\"flex flex-col gap-1 overflow-hidden\" >\n      <div class=\"flex gap-2\">\n        <ae-design class=\"text-neutral-600 w-full overflow-hidden\" name=\"title\" :document=\"document\"></ae-design>\n      </div>\n      <div class=\"flex gap-2 text-sm text-neutral-600 items-center\">\n        <ae-design name=\"rd:icon\" :document=\"document\"></ae-design>\n        <ae-design name=\"rd:size\" :document=\"document\"></ae-design>\n      </div>\n    </section>\n    <section v-else class=\"flex flex-col xoverflow-x-hidden gap-1\">\n      <!-- thumbnail default width is 128px -->\n      <ae-design class=\"-mt-5 bg-white border border-slate-200 rounded-md px-2 self-center w-[110px] text-neutral-600 overflow-x-hidden text-sm\" name=\"title\" :document=\"document\"></ae-design>\n\n      <div class=\"flex gap-2 text-xs text-neutral-600 items-baseline overflow-hidden\">\n        <ae-design name=\"rd:icon\" :document=\"document\"></ae-design>\n        <!-- <ae-design name=\"rd:size\" :document=\"document\"></ae-design> -->\n        <ae-design class=\"px-1 mb-2 text-xs\" name=\"rd:creation-info\" :document=\"document\"></ae-design>\n      </div>\n    </section>\n  </div>\n\n  <div v-if=\"locals.upload\" style=\"display:flex\">\n    <div class=\"ae-progress\" :style=\"{ 'padding-left': (locals.upload.progressPercent * 100).toString() + '%' }\" ></div>\n  </div>\n</div>\n   \n   "},"f":{"id":"design-form","text":"Design","v":"e3fe9ece11aabc5e"},"id":"458036a1-b171-43e3-b44e-d364199f6e10","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-02-09T14:23:37+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"12a04075-966c-4cd8-a5ff-adc0d18300a0","text":"rd:card","v":"1ea1b8d47d5dd731"},"p":"cb2adf77-7636-41a7-9a16-1610b06fa91e","previous":{"v":"7f90febf344c3835"},"stamps":[],"t":1770647017393,"v":"93e3e6136a6f8c8d"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","5f4a87a7-5557-4004-bfdc-2fb26c71e0c9"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"36a5deb8-6946-4083-8a58-1b26635bbfa9","text":"rd:card","v":"322a8fd09b874099"},"created":{"at":"2026-01-27T13:33:15+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"ct":1769520795024,"data":{"aliases":[],"controller":"class Controller{\n  async init() {\n    locals.icon = ''\n    locals.icon = (await Aeppic.getFormForDocument(document))?.data.namedIcon || ''\n  }\n\n  \n\n  get hiddenClasses() {\n    return \"hidden @[200px]:block\"\n  }\n\n  get reverseHiddenClasses() {\n    return \"@[200px]:hidden block\"\n  }\n}","css":"","description":"Standard","name":"rd:card-inner","packages":[],"template":"<div \n  class=\"flex gap-1 items-center size-full @container\"\n  @click.stop=\"$emit('selected', document)\"\n>\n  <div :class=\"[controller.reverseHiddenClasses]\"><ae-icon :class=\"[locals.icon]\"></ae-icon></div>\n  <div\n    :class=\"controller.hiddenClasses\"\n  >\n    <ae-design\n      class=\"size-full\"\n      :document=\"document\"\n      name=\"rd:thumbnail\"\n      :params=\"{width: '60px', height: '60px'}\"\n      :param-hide-name=\"true\"\n    ></ae-design>\n  </div>\n\n  <ae-design\n    :document=\"document\"\n    class=\"\"\n    name=\"title\"\n  ></ae-design>\n\n  <!-- <div\n    class=\"ml-auto\"\n    :class=\"controller.hiddenClasses\"\n  >\n    <ae-design\n      class=\"\"\n      :class=\"controller.hiddenClasses\"\n      :document=\"document\"\n      name=\"rd:open-location\"\n    ></ae-design>\n  </div> -->\n</div>"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"47658145-87ac-46f6-b77b-ea0114c55666","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-02-06T12:54:35+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"36a5deb8-6946-4083-8a58-1b26635bbfa9","text":"rd:card","v":"322a8fd09b874099"},"p":"5f4a87a7-5557-4004-bfdc-2fb26c71e0c9","previous":{"v":"8e923b444c8641ff"},"stamps":[],"t":1770382475111,"v":"e907bae1e2b9d1e2"},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","0bb3d600-faf0-4a5c-b49f-7994d234ae76"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2023-05-31T09:45:35+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1685526335356,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:card-inner","packages":[],"template":"<div class=\"flex gap-2 flex-col overflow-hidden\" @click.stop=\"$emit('selected', document)\">\n  <section class=\"flex gap-2 overflow-hidden\">\n    <section class=\"flex flex-col\">\n      <div class=\"flex gap-2 items-center\">\n        <div class=\"w-24\">{{ data.applicationNumberTitle }}</div>\n\n        <div v-if=\"data.applicationTitle\" class=\"font-bold\">{{ data.applicationTitle }}</div>\n        <div v-else class=\"italic\">Kein Antragstitel</div>\n      </div>\n\n      <div class=\"flex gap-6 items-center\"></div>\n\n      <div class=\"flex gap-6 items-center\">\n        <div class=\"flex gap-2\">\n          <ae-design v-for=\"scope of data.scope\" :document=\"scope\" name=\"title\"></ae-design>\n        </div>\n      </div>\n\n      <section v-if=\"data.itaMeetingMonthByIta?.length\" class=\"flex gap-4 item-center\">\n        <div class=\"flex items-center gap-1\" title=\"ITA Sitzungsmonat (ITA)\">\n          <ae-icon class=\"far fa-swords\"></ae-icon>\n          <ae-design\n            name=\"rd:date\"\n            :document=\"document\"\n            param-field-name=\"itaMeetingMonthByIta\"\n            :param-no-min-width=\"true\"\n            param-format=\"LLLL yyyy\"\n            :param-reverse=\"true\"\n          ></ae-design>\n        </div>\n\n        <div class=\"flex items-center text-neutral-500\" title=\"ITA Sitzungsmonat (AG Wunsch)\">\n            (<ae-icon class=\"far fa-bullseye-arrow\"></ae-icon>\n            <ae-design\n              class=\"ml-1\"\n              name=\"rd:date\"\n              :document=\"document\"\n              param-field-name=\"itaMeetingMonthByEmployer\"\n              :param-no-min-width=\"true\"\n              param-format=\"LLLL yyyy\"\n            ></ae-design\n            >)\n          </div>\n      </section>\n      <section v-else class=\"flex gap-4 item-center\">\n        <div class=\"flex items-center text-neutral-500\" title=\"ITA Sitzungsmonat (AG Wunsch)\">\n            (<ae-icon class=\"far fa-bullseye-arrow\"></ae-icon>\n            <ae-design\n              class=\"ml-1\"\n              name=\"rd:date\"\n              :document=\"document\"\n              param-field-name=\"itaMeetingMonthByEmployer\"\n              :param-no-min-width=\"true\"\n              param-format=\"LLLL yyyy\"\n            ></ae-design\n            >)\n          </div>\n      </section>\n    </section>\n\n    <div class=\"flex-1\"></div>\n\n    <!-- avatars -->\n    <section class=\"flex flex-col gap-1 items-center\" title=\"BITM\">\n      <ae-design\n        class=\"text-2xl\"\n        v-for=\"consultingItco of data.consultingItco\"\n        name=\"avatar\"\n        :document=\"consultingItco\"\n      ></ae-design>\n    </section>\n\n    <section class=\"flex flex-col gap-1 items-center\" title=\"Antragsteller\">\n      <ae-design v-for=\"applicant of data.applicant\" name=\"rd:icon\" :document=\"applicant\" class=\"text-2xl\"></ae-design>\n    </section>\n  </section>\n\n  <div class=\"flex items-center gap-2\">\n    <div class=\"flex items-center gap-2 text-sm text-primary-800 bg-primary-50 px-1 rounded-md\">\n      <ae-icon class=\"far fa-badge-check\"></ae-icon>\n      <span>{{ data.applicationWorkflowPhaseTitle }} </span>\n    </div>\n\n    <div v-if=\"data.lastDecisionTitle\" class=\"flex items-center gap-2 text-sm px-1 rounded-md\"\n        :class=\"{ \n          'bg-lime-200 text-lime-900': data.lastDecisionTitle === 'Beschluss',\n          'bg-[#ffd9dd] text-[#5f1126]': data.lastDecisionTitle === 'Beschluss als Empfehlung',\n          'bg-sky-200 text-sky-900': data.lastDecisionTitle === 'Vertagung' || data.lastDecisionTitle === 'Klärungsauftrag',\n       }\" \n    >\n      <span>{{ data.lastDecisionTitle }} </span>\n    </div>\n\n    <div class=\"flex-1\"></div>\n    <div v-if=\"data.creationTimestamp\" class=\"shrink-0 text-sm text-secondary-500\" title=\"Zeitstempel Erstellung\">\n      {{ Aeppic.DateTime.fromISO(data.creationTimestamp).toLocaleString(Aeppic.DateTime.DATETIME_SHORT) }}\n    </div>\n  </div>\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"4d7a02aa-be0e-4873-847b-16db140ee4c6","inheritedLocks":[null,null,null,null,null],"locks":[],"meta":{"modified":{"at":"2026-06-09T10:57:42+00:00","backedBy":"","by":"b7485498-f1f3-4ab1-87d1-9cb63ea890c8","client":"server","from":"","impersonatedBy":""}},"modified":{"at":"2026-02-09T14:24:07+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"p":"0bb3d600-faf0-4a5c-b49f-7994d234ae76","previous":{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","0bb3d600-faf0-4a5c-b49f-7994d234ae76","c0d5674e-44da-4546-8131-d3c5784ee670"],"a_forms":["folder","application-form","form-folder","form","folder"],"p":"c0d5674e-44da-4546-8131-d3c5784ee670","v":"78fb004d36dd366b"},"stamps":[],"t":1781002662875,"v":"0f12155d367d94d3"},{"a":["apps","91a90288-37bc-4f86-be38-4283833717d2","cb7a4c1b-703a-4b16-9190-aa2a26532688","954212d9-9cc7-4356-82e3-a80cf745da4d"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2024-02-02T15:45:34+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1706888734217,"data":{"aliases":[],"controller":"init() {\n  locals.sort = [{\n    fields: ['data.date', 'created.at'],\n    descending: true\n  }]\n}\n ","css":"","description":"","name":"rd:card-inner","packages":[],"template":"<div class=\"divide-y\" \n    @click.stop=\"$emit('selected', document)\"\n>\n  <div class=\"flex gap-2 items-center p-2\">\n    <ae-design name=\"rd:icon\" :document=\"document\"></ae-design>\n    <ae-design name=\"title\" :document=\"document\"></ae-design>\n    <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n                param-icon=\"far fa-external-link\"\n                param-border=\"border\"\n                @selected=\"Aeppic.drillInto(document)\"\n    ></ae-layout>\n\n    <div class=\"flex-1\"></div>\n  </div>\n\n  <ae-list :root-document-id=\"document.id\"\n        class=\"\"\n        query-id=\"2cc53ecb-aa99-4ccd-ad57-a083a66262d1\"\n        list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\"\n        :sort=\"locals.sort\"\n        @selected=\"Aeppic.drillInto($event, arguments[1])\"\n        param-empty-text=\"Keine Protokolle erstellt\"\n        param-design=\"rd:search-card\"\n        :param-design-params=\"{ hidePath: true }\"\n      :search-options=\"{size:10}\"\n  ></ae-list>\n</div>      \n       "},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"4f763673-ef4c-4dfe-a50a-f4d81d44a380","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-02-09T14:24:36+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"p":"954212d9-9cc7-4356-82e3-a80cf745da4d","previous":{"v":"8724573e4bda2adf"},"stamps":[],"t":1770647076390,"v":"0449b536416ba717"},{"a":["apps","5ec4fefb-1235-484e-8d6f-4fd645bae372","75920050-07b1-4e79-9742-54abcc235e91","3f5de83a-40e4-4662-b436-3ed4879edb10"],"a_depth":4,"a_forms":["folder","application-form","folder","form"],"created":{"at":"2024-01-08T14:04:03+01:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1704719043091,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:card-inner","packages":[],"template":"<div class=\"flex gap-2\">\n  <div class=\"min-w-[100px] w-[100px] truncate\">\n    <template v-if=\"data.behandlungsdatum\">\n    {{ Aeppic.DateTime.fromISO(data.behandlungsdatum).toLocaleString(Aeppic.DateTime.DATE_SHORT) }}\n    </template>\n    <div v-else class=\"italic truncate\">\n      Kein Behandlungsdatum angegebeten\n    </div>\n  </div>\n  <div class=\"flex-1 truncate\">\n    <div v-if=\"data.stallkarte.dataUrl\">\n    {{ data.stallkarte.name }}\n    </div>\n    <div v-else class=\"text-red-500\">\n      <ae-icon class=\"far fa-exclamation-circle\"></ae-icon>\n      Stallkarte fehlt\n    </div>\n  </div>\n</div> "},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"524ec57c-4620-4884-b230-ae719c136d18","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-02-09T14:25:05+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"p":"3f5de83a-40e4-4662-b436-3ed4879edb10","previous":{"v":"528ce2efde563ae9"},"stamps":[],"t":1770647105141,"v":"b685cfe053636c15"},{"a":["apps","f416e371-07cc-4987-a6de-5934ef5ff3e4","1096c5df-2773-4914-9455-dc54e0f3e0e5","14931d03-c3bb-4cf7-9f62-747f94d8b01a"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2024-02-05T13:12:46+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1707138766447,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.empfaenger = null\n    locals.empfaenger = await Aeppic.get(document.data.empfaenger)\n  }\n\n  get empfaengerName() {\n    return locals.empfaenger?.data.name || data.empfaenger.text\n  }\n}","css":"","description":"","name":"rd:card-inner","packages":[],"template":"<div class=\"flex gap-2 items-center\" @click.stop=\"$emit('selected', document)\">\n  <template v-if=\"params.showProject\">\n    <ae-design name=\"title\" :document-id=\"document.p\"></ae-design>\n  </template>\n  <div v-else class=\"flex w-80 truncate\">\n<!-- <ae-design name=\"title\" :document=\"document\"></ae-design> -->\n    <!-- <span class=\"px-1\">von</span>  -->\n    <div class=\"{ 'italic': !locals.empfaenger }\">{{ controller.empfaengerName }}</div>\n  </div>\n\n\n  <span v-if=\"data.bewertung\" :title=\"'Bewertung: ' + data.bewertung\">\n    <ae-icon class=\"far fa-smile-beam text-lime-500\"  v-if=\"data.bewertung === 'GUT'\"></ae-icon>\n    <ae-icon class=\"far fa-meh\" v-else-if=\"data.bewertung === 'OK'\"></ae-icon>\n    <ae-icon class=\"far fa-frown text-red-500\" v-else-if=\"data.bewertung === 'SCHLECHT'\"></ae-icon>\n  </span>\n\n  <ae-layout  v-if=\"data.kommentar\"\n              layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n              :param-title=\"'Kommentar von ' + controller.empfaengerName + ' anzeigen'\"\n              param-icon=\"far fa-comment\"\n              param-border=\"border\"\n              @selected=\"$refs.popupComment.show($event)\"\n  ></ae-layout>\n  <div class=\"flex-1\"></div>\n\n  <div class=\"flex gap-2\">\n\n    <span v-if=\"data.gelesen\" :title=\"'Gelesen bestätigt am: ' + Aeppic.DateTime.fromISO(data.gelesenAm).toLocaleString(Aeppic.DateTime.DATETIME_SHORT)\">\n      <ae-icon class=\"far fa-check-circle text-lime-500\"  ></ae-icon>\n      {{ Aeppic.DateTime.fromISO(data.gelesenAm).toLocaleString(Aeppic.DateTime.DATE_SHORT) }}\n    </span> \n    <span v-else title=\"Lese-Bestätigung versendet\" :title=\"'Versendet am: ' + Aeppic.DateTime.fromISO(document.created.at).toLocaleString(Aeppic.DateTime.DATETIME_SHORT)\">\n      <ae-icon class=\"far fa-paper-plane\" ></ae-icon>\n      {{ Aeppic.DateTime.fromISO(document.created.at).toLocaleString(Aeppic.DateTime.DATE_SHORT) }}\n    </span>\n  </div>\n\n  <ae-layout layout-id=\"ffd34105-fa6a-44f5-aa63-64923233f178\"\n            :param-employees=\"data.empfaenger\"\n            param-classes=\"text-2xl\"\n  ></ae-layout>\n\n  <ae-layout  v-if=\"params.isManager && !data.gelesen\"\n              layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n              param-icon=\"far fa-ellipsis-v\"\n              param-border=\"border\"\n              @selected=\"$refs.more.show($event)\"\n  ></ae-layout>\n</div>  \n\n<ae-popup ref=\"popupComment\">\n  <div class=\"flex flex-col\">\n    <div class=\"text-neutral-500 px-2\">Kommentar von {{ controller.empfaengerName }}</div>\n    <div class=\"whitespace-pre-line p-2 max-w-[400px] max-h-[40vh] overflow-auto\">{{data.kommentar}}</div>\n  </div>\n</ae-popup>\n\n<ae-popup ref=\"more\">\n  <div class=\"p-1\">\n    <ae-layout  layout-id=\"262e95e6-f1f8-477c-834b-89d533027e1e\"\n        :param-document=\"document\"\n        :param-commands=\"['9c8be65c-6c92-46fb-89a7-f072a22616c6']\"\n    ></ae-layout>\n  </div>\n</ae-popup>\n "},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"5293d6e2-1acd-48a2-9228-ca974012b7e2","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-02-09T14:25:44+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"p":"14931d03-c3bb-4cf7-9f62-747f94d8b01a","previous":{"v":"73eb55fa53cec5af"},"stamps":[],"t":1770647144641,"v":"4bdfa4eca0cc3451"},{"a":["apps","0924db0f-7095-4b51-8966-bad1e45d68ec","a3b935e7-60bc-4996-9b18-668e4361067f","651d8603-6d29-4534-be59-4449387e857c"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"de63c13a-f256-4765-b95e-56b6607022a2","text":"rd:ref-card","v":"3bb07da2a850dfc0"},"created":{"at":"2025-03-04T16:30:32+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1741105832955,"data":{"aliases":[],"controller":"class Controller {\n  get canEdit() {\n    return Aeppic.Account && document.created.by === Aeppic.Account.id\n  }\n\n  announceClickIfEditable() {\n    if (!this.canEdit) {\n      return\n    }\n\n    $emit('selected', document)\n  }\n}\n","css":"","description":"","name":"rd:card-inner","packages":[],"template":"<div class=\"group w-full flex flex-col\"\n      @click.stop=\"controller.announceClickIfEditable()\"\n    :class=\"{ 'opacity-60': data.erledigt }\"\n>\n  <div class=\"flex gap-4 items-center\">\n    <ae-design name=\"rd:icon\" :document=\"document\" param-icon-field-name=\"typ\"\n              param-size=\"8\"\n    ></ae-design> \n\n    <ae-design  name=\"rd:styled-title,title\" :document=\"document\"></ae-design>\n\n    <template v-if=\"'abgerechnet' in data\">\n      <span v-if=\"!data.abgerechnet\"\n            title=\"nicht abgerechnet\" \n            class=\"text-red-400 ml-auto\"\n      >\n        <ae-icon class=\"far fa-coins\"></ae-icon>\n      </span> \n      <span v-else\n            class=\"flex items-center text-green-500 ml-auto\"\n            title=\"abgerechnet\" \n      >\n        <ae-icon class=\"far fa-coins\"></ae-icon>\n        <ae-icon class=\"far fa-check\"></ae-icon>\n      </span> \n\n    </template>\n\n    <div class=\"flex-1\"></div>\n\n    <div v-if=\"data.datum && data.datum !== 'UNDEFINED'\" class=\"text-neutral-600\">\n      {{ Aeppic.DateTime.fromISO(data.datum).toLocaleString(Aeppic.DateTime.DATE_SHORT) }}\n    </div>\n\n    \n\n    <ae-layout v-if=\"!params.readonly\" \n              layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n              @selected=\"$refs.popup.show({ target: $refs.button.$el })\"\n              ref=\"button\"\n              param-icon=\"far fa-ellipsis-v\"\n    ></ae-layout>\n  </div>\n</div> \n\n<ae-popup ref=\"popup\">\n  <div class=\"flex flex-col items-center p-1 gap-1\">\n    <ae-layout  layout-id=\"0ded34c5-1221-4511-af93-d897a79f1369\"\n                v-if=\"controller.canEdit\" \n                :param-document=\"document\"\n                :params=\"{ buttonLayoutId: '80e59dec-29b1-45f1-8391-f5621cf9f0b2', buttonParams: { icon: 'far fa-trash', classes: 'justify-center w-full text-red-500' } }\"\n    ></ae-layout>\n  </div>\n</ae-popup>     "},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"5a580258-464d-4fa5-bced-05683aff22eb","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-02-09T14:26:06+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"de63c13a-f256-4765-b95e-56b6607022a2","text":"rd:ref-card","v":"3bb07da2a850dfc0"},"p":"651d8603-6d29-4534-be59-4449387e857c","previous":{"v":"1b12ad42fc7f21b7"},"stamps":[],"t":1770647166110,"v":"f2eec5b48d09f46d"},{"a":["apps","075a56a2-3d34-402e-82ef-bd1fc7df456a","efe6c460-ec94-41c6-994b-c27d08d74381","0c1ea2c5-516a-4b13-b6df-27cf1ebe309d"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2023-06-16T10:31:02+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1686911462425,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:card-inner","packages":[],"template":"<div class=\"flex\" @click.stop=\"$emit('selected', document)\">\n  {{ data.gefaehrdung }}\n</div>"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"5b1cf264-e557-4c57-8dde-19424a61dc62","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-02-09T14:26:30+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"p":"0c1ea2c5-516a-4b13-b6df-27cf1ebe309d","previous":{"v":"0da3aad717b7f219"},"stamps":[],"t":1770647190896,"v":"c85f80d57d1cca7b"},{"a":["apps","0c440c7a-219d-4465-9cbe-2d0eff6ec7ad","e25401a7-eca4-4c53-a20e-b30df594d3a7","f9279010-1935-4139-abbb-82d928aa09dc"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2022-08-25T14:19:44+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1740666014603,"data":{"aliases":[],"controller":"class Controller {\n  init() {\n    this.projectAncestorRelativeToParentForm = {\n      '3d456c38-6282-416e-8c5e-7d20b0517a6e': -2,\n      '90877d25-bbae-421e-9ea7-0631dcbf11c2': -4,\n      '88b1f60e-71f6-46f5-94ea-3d7bbe972950': -3,\n      '0deb4864-cbb6-420c-99ee-337c7444ab24': -2,\n    }\n  } \n\n  get projectId() {\n    const parentForm = document.a_forms.slice(-1)[0]\n    const ancestorRelative = this.projectAncestorRelativeToParentForm[parentForm]\n\n    if (ancestorRelative == null) {\n      console.error('parentForm not found:', parentForm)\n      return null\n    }\n\n    return document.a.slice(ancestorRelative)[0]\n  }\n\n  get canEdit() {\n    return Aeppic.Account && document.created.by === Aeppic.Account.id\n  }\n\n  announceClickIfEditable() {\n    if (!this.canEdit) {\n      return\n    }\n\n    $emit('selected', document)\n  }\n}\n","css":"._CSS-card {\n  border: var(--ae-border-width) solid var(--ae-border-color);\n  background-color: var(--ae-ui-background);\n  border-radius: var(--ae-border-radius);\n\n  flex: 1;\n  padding: var(--ae-size-1) var(--ae-size-2) var(--ae-size-1) var(--ae-size-2);\n\n  display: grid;\n\n  grid-template-columns: 90px 1fr 1fr 3fr 100px 60px 35px;\n}\n\n._CSS-card--no-parent-info {\n  grid-template-columns: 90px 2fr 3fr 100px 60px 35px;\n}\n\n._CSS-day,\n._CSS-project,\n._CSS-title {\n  padding-right: var(--ae-size-4);\n  overflow: hidden;\n  white-space: nowrap;\n  text-overflow: ellipsis;\n  display: flex;\n  align-items: center;\n}\n\n._CSS-duration {\n  overflow: hidden;\n  white-space: nowrap;\n  text-overflow: ellipsis;\n  display: flex;\n  align-items: center;\n}\n\n._CSS-title {\n  font-weight: bold;\n}\n\n._CSS-button-or-avatar {\n  display: flex;\n  justify-content: center;\n}","description":"","name":"rd:card-inner","packages":[],"template":"<div class=\"flex items-center gap-4 \" xclass=\"_CSS-card ae-navigatable\" :xclass=\"{ '_CSS-card--no-parent-info': params.hideParentInfo }\" @click.stop=\"controller.announceClickIfEditable()\">\n  <!-- size 32px because Abzurechnende Position uses icon with 32px size -->\n  <ae-design \n          name=\"avatar\"\n          :document-id=\"document.created.by\"\n          class=\"text-[32px]\"\n  ></ae-design> \n\n  <ae-design class=\"w-24 shrink-0\" name=\"rd:recorded-time-readable-duration\" :document=\"document\"></ae-design>\n\n  <ae-design v-if=\"params.parentId !== document.p\" class=\"_CSS-project\" name=\"title\" :document-id=\"document.p\"></ae-design>\n  <ae-design  v-if=\"params.parentId !== document.p\" class=\"_CSS-project\" name=\"title\" :document-id=\"controller.projectId\"></ae-design>\n\n  <ae-design v-if=\"data.name\" class=\"_CSS-title\" name=\"title\" :document=\"document\"></ae-design>\n  <div v-else title=\"Kein Titel angegeben\" class=\"italic text-sm text-neutral-500\">\n    Kein Titel angegeben\n    <!-- <ae-icon class=\"far fa-empty-set\"></ae-icon> -->\n  </div>\n\n  <div class=\"flex-1\"></div>\n\n  <div class=\"text-neutral-600\" xclass=\"_CSS-day\" :title=\"'Erfassungsdatum: ' +  Aeppic.DateTime.fromISO(document.created.at).toLocaleString(Aeppic.DateTime.DATETIME_SHORT)\">\n    <template v-if=\"data.tag\">\n      {{ Aeppic.DateTime.fromISO(data.tag).toLocaleString(Aeppic.DateTime.DATE_SHORT) }}\n    </template> \n    <div v-else title=\"Kein Tag angegeben\" class=\"text-red-400\">\n      <ae-icon class=\"far fa-exclamation-triangle\"></ae-icon>\n      <ae-icon class=\"far fa-calendar\"></ae-icon>\n    </div>\n  </div>\n\n  <ae-layout v-if=\"!params.readonly\" \n            layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n            @selected=\"$refs.popup.show({ target: $refs.button.$el })\"\n            ref=\"button\"\n            param-icon=\"far fa-ellipsis-v\"\n  ></ae-layout>\n</div> \n\n<ae-popup ref=\"popup\">\n  <div class=\"flex flex-col items-center p-1 gap-1\">\n    <ae-layout  layout-id=\"0ded34c5-1221-4511-af93-d897a79f1369\"\n                v-if=\"controller.canEdit\" \n                :param-document=\"document\"\n                :params=\"{ buttonLayoutId: '80e59dec-29b1-45f1-8391-f5621cf9f0b2', buttonParams: { icon: 'far fa-trash', classes: 'justify-center w-full text-red-500' } }\"\n    ></ae-layout>\n    <ae-layout\n            layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n            @selected=\"$emit('merge-up', document)\"\n            param-icon=\"far fa-arrow-up\"\n            param-title=\"In darüberliegende Zeit integrieren\"\n    ></ae-layout>\n\n    <ae-layout\n            layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n            @selected=\"$emit('merge-down', document)\"\n            param-icon=\"far fa-arrow-down\"\n            param-title=\"In darunterliegende Zeit integrieren\"\n    ></ae-layout>\n  </div>\n</ae-popup>    \n"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"6d1e3dd8-195f-4e09-8a00-fa9ddd02c804","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-03-05T15:02:51+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"p":"f9279010-1935-4139-abbb-82d928aa09dc","previous":{"v":"67d15648c9fb7af8"},"stamps":[],"t":1772722971693,"v":"3faad535cb9bc855"},{"a":["apps","bd4df555-2c56-4a5f-82f0-7e4745372f51","b42c9135-e564-4d50-abd1-4d753921120f","f0cf1b33-f840-4d4b-9335-c10daa7a335e"],"a_depth":4,"a_forms":["folder","application-form","folder","form"],"cloneOf":{"id":"4f763673-ef4c-4dfe-a50a-f4d81d44a380","text":"rd:card","v":"8724573e4bda2adf"},"created":{"at":"2024-02-09T10:43:29+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1707475409786,"data":{"aliases":[],"controller":"init() {\n  locals.sort = [{\n    fields: ['data.date', 'created.at'],\n    descending: true\n  }]\n}\n ","css":"","description":"","name":"rd:card-inner","packages":[],"template":"<div class=\"divide-y\" \n    @click.stop=\"$emit('selected', document)\"\n>\n  <div class=\"flex gap-2 items-center p-2\">\n    <ae-design name=\"rd:icon\" :document=\"document\"></ae-design>\n    <ae-design name=\"title\" :document=\"document\"></ae-design>\n    <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n                param-icon=\"far fa-external-link\"\n                param-border=\"border\"\n                @selected=\"Aeppic.drillInto(document)\"\n    ></ae-layout>\n\n    <div class=\"flex-1\"></div>\n  </div>\n\n  <ae-list :root-document-id=\"document.id\"\n        query-id=\"f812861f-68c8-4818-9972-be7b5474c9b1\"\n        filter=\"f.id:527f9bb3-01bd-48cc-ad5b-08b1bba3af33\"\n        list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\"\n        :sort=\"locals.sort\"\n        @selected=\"Aeppic.drillInto($event, arguments[1])\"\n        param-empty-text=\"Keine Prozesse erstellt\"\n        param-design=\"rd:search-card\"\n        :param-design-params=\"{ hidePath: true, showCreationInfo: true }\"\n        :search-options=\"{ size:4 }\"\n  ></ae-list>\n</div>\n "},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"6eeb291d-a90c-47ba-99b5-72fb36fdb04c","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-02-09T14:27:53+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"4f763673-ef4c-4dfe-a50a-f4d81d44a380","text":"rd:card","v":"8724573e4bda2adf"},"p":"f0cf1b33-f840-4d4b-9335-c10daa7a335e","previous":{"v":"55462bcfeb030c27"},"stamps":[],"t":1770647273835,"v":"d6c68806ad55d0fc"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","aa49f5c2-0502-4b7e-8ffd-4ac90427420e"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2025-08-07T13:40:11+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1754574011130,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:card-inner","packages":[],"template":"<div class=\"flex justify-between items-center\">\n  <section class=\"flex flex-col gap-1\">\n    <div class=\"flex gap-4 items-center\">\n      <div class=\"font-medium mb-1 truncate w-40\">{{(data.name || '[Kein Name]') }}</div>\n\n      <section v-if=\"data.type === 'INTERNAL'\">\n        <ae-layout\n          layout-id=\"ffd34105-fa6a-44f5-aa63-64923233f178\"\n          :param-employees=\"data.employee\"\n        ></ae-layout>\n      </section>\n      <section v-else>\n        <div>\n          <ae-icon class=\"fa fa-user\"></ae-icon>\n          <span>{{data.contact}}</span>\n        </div>\n      </section>\n    </div>\n  </section>\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"80ddb7ae-d3e4-4c85-bbe9-15e6735d2db9","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-02-05T08:27:29+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"p":"aa49f5c2-0502-4b7e-8ffd-4ac90427420e","previous":{"v":"027fe987b1174aec"},"stamps":[],"t":1770280049389,"v":"5e834dd2ccc387fd"},{"a":["apps","3fbe0efd-713a-457a-a34c-3a12aa19d6bb","0fb162f4-0f78-4c1e-aad2-43c27e6d98cb","009c0da4-718f-43d0-964a-647e30074d94"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2024-07-01T09:32:25+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1719826349792,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.zipDownloadUrl = `/api/services/18047369-674f-4ba5-bf5d-bba493f4f9bb/v2/zip?modelIds=${document.id}`\n    locals.convertedStatus = { ok: null }\n\n    const MINUTE_MS = 1000 * 60\n    locals.lastConvertedDate = ''\n    locals.document = document\n    locals.date = Aeppic.DateTime.fromISO(locals.document.data.doneDate || locals.document.modified.at).toRelative()\n\n    const reloadInterval = Math.random() * (MINUTE_MS * 1.2 - MINUTE_MS) + MINUTE_MS\n    this.interval = Aeppic.setInterval(async () => {\n      if (!locals.convertedStatus.ok) {\n        await this.updateConvertedStatus()\n      }\n\n      locals.date = Aeppic.DateTime.fromISO(locals.document.data.doneDate || locals.document.modified.at).toRelative()\n\n      if (locals.convertedStatus.lastConverted) {\n        this._updateLastConvertedDate(locals.convertedStatus.lastConverted)\n      }\n    }, reloadInterval)\n\n    Aeppic.watch(locals.document.id, async (doc) => {\n      locals.document = doc\n      await this.updateConvertedStatus()\n    })\n\n    await this.updateConvertedStatus()\n  }\n\n  async updateConvertedStatus() {\n    const refs = []\n\n    if (locals.document.data.introductionVideo.length) {\n      refs.push(...locals.document.data.introductionVideo)\n    }\n    if (locals.document.data.videos.length) {\n      refs.push(...locals.document.data.videos)\n    }\n\n    const videos = (await Aeppic.getAll(refs)).filter((d) => !!d)\n\n    const convertedVideos = videos.filter((v) =>\n      v.stamps?.find((s) => s.type?.id === 'c10b5c6b-823d-4eda-8e39-a56591eed4c6')\n    )\n\n    const sortedVideosByAdded = convertedVideos.sort((a,b) => {\n      const as = a.stamps?.find((s) => s.type?.id === 'c10b5c6b-823d-4eda-8e39-a56591eed4c6')\n      const bs = b.stamps?.find((s) => s.type?.id === 'c10b5c6b-823d-4eda-8e39-a56591eed4c6')\n      return as?.added > bs?.added ? 1 : -1\n    })    \n  \n    const stats = {\n      videos: videos.length,\n      convertedVideos: convertedVideos.length,\n      lastConverted: sortedVideosByAdded.slice(-1)[0],\n      ok: videos.length === convertedVideos.length,\n    }\n\n    this._updateLastConvertedDate(stats.lastConverted)\n\n    locals.convertedStatus = stats\n    return\n  }\n\n  _updateLastConvertedDate(lastConvertedVideo) {\n    if (!lastConvertedVideo) {\n      locals.lastConvertedDate = ''\n      return\n    }\n\n    const lastConvertedStamp = lastConvertedVideo.stamps?.find((s) => s.type?.id === 'c10b5c6b-823d-4eda-8e39-a56591eed4c6')\n\n    if (!lastConvertedStamp) {\n      locals.lastConvertedDate = ''\n      return\n    }\n\n    const date = Aeppic.DateTime.fromISO(lastConvertedStamp.added)\n\n    if (date.startOf('day').diffNow('days').days <= -1) {\n      locals.lastConvertedDate = date.toRelative()\n    } else {\n      locals.lastConvertedDate = date.toLocaleString(Aeppic.DateTime.TIME_24_SIMPLE)\n    }\n  }\n\n  beforeDestroy() {\n    if (this.interval) {\n      Aeppic.clearInterval(this.interval)\n    }\n  }\n}\n","css":"","description":"","name":"rd:card-inner","packages":[],"template":"<div class=\"\" @click.stop=\"$emit('selected', document)\"\n :data-test=\"'design' + '_' + design.data.name + '_' + 'documentForm_' + document.f.text\"\n>\n  <div \n    class=\"flex gap-1 border rounded-md overflow-hidden\"\n    :class=\"{ 'opacity-50': !data.done, 'bg-red-100 border-red-500 text-red-900': typeof locals.convertedStatus.ok === 'boolean' && !locals.convertedStatus.ok }\"\n  >  \n    <ae-design name=\"rd:thumbnail\" :document=\"document.data.portraitPhoto\" @response=\"locals.response = true\"></ae-design>\n    <div class=\"flex flex-col text-sm flex-1 truncate p-1\"> \n      <ae-design name=\"title\" :document=\"document\"></ae-design>\n      <span v-if=\"data.agencyAbbreviation\" :title=\"data.agencyAbbreviation\">{{ data.agencyAbbreviation }}</span>\n      <span v-else class=\"truncate\" title=\"Agenturkürzel fehlt\">\n        <ae-icon class=\"far fa-exclamation-circle\"></ae-icon>\n        Agenturkürzel fehlt\n      </span>\n      <span class=\"text-neutral-500\" title=\"Bewerbung eingereicht\"> {{ locals.date }}</span>\n      <span\n        class=\"text-neutral-500 truncate\"\n        v-if=\"typeof locals.convertedStatus.ok === 'boolean'\"\n        :title=\"locals.convertedStatus.ok === true ? 'Alle Videos konvertiert ' + locals.lastConvertedDate : 'Fortschritt Video-Konvertierung: ' + locals.convertedStatus.convertedVideos + '/' + locals.convertedStatus.videos\"\n      >\n        <span><ae-icon class=\"far fa-film\"></ae-icon></span>\n        <template v-if=\"locals.convertedStatus.ok\">\n          <template v-if=\"locals.convertedStatus.lastConverted\">\n            <ae-icon class=\"far fa-check\"></ae-icon>\n            <!-- konvertiert -->\n            ({{ locals.lastConvertedDate }})\n          </template>\n        </template>\n        <template v-else> {{ locals.convertedStatus.convertedVideos }} / {{ locals.convertedStatus.videos }} </template>\n      </span>\n    </div>\n  </div>\n\n  <div class=\"ae-link absolute right-1 bottom-1\">\n    <a class=\"text-primary-500\" :href=\"locals.zipDownloadUrl\" target=\"_blank\" @click.stop>\n      <ae-icon class=\"far fa-file-archive\"></ae-icon> ZIP\n    </a>\n  </div>\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"85cb164f-e1d9-4fc6-820f-f4f4e75a670a","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-04-24T13:33:02+00:00","backedBy":"","by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":""},"p":"009c0da4-718f-43d0-964a-647e30074d94","previous":{"v":"bb149d44df14b8e2"},"stamps":[],"t":1777037582402,"v":"f4788e4b94b554df"},{"a":["apps","45ada186-e9fd-451d-9dbd-2defc0b4f86f","4ec6a0e5-cf2d-4095-9b70-2e31a64d5679","ffa650cf-e351-462e-baef-29f7c8f22d1b"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"458036a1-b171-43e3-b44e-d364199f6e10","text":"rd:card","v":"7f90febf344c3835"},"created":{"at":"2023-12-14T11:19:45+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1702552785192,"data":{"applies":"","controller":"async init() {\r\n  locals.upload = null //{progressPercent:0.3,status:'started'}\r\n}\r\n\r\nget isUploading() {\r\n  const status = Aeppic.Uploads.getUploadStatusForDocument(document)\r\n\r\n  if (status) {\r\n    locals.upload = status[0]\r\n  } else {\r\n    locals.upload = null\r\n  }\r\n \r\n  return !!locals.upload\r\n}\r\n","css":"","name":"rd:card-inner","packages":[],"template":"\n<div class=\"flex flex-col overflow-hidden\" \n    @click.stop=\"$emit('selected', document)\">\n  <div class=\"flex gap-2  items-center\"\n       :class=\"{ 'flex-col': params.square }\"\n  >\n    <div class=\"relative shrink-0 px-2 h-[128px] w-[128px] border-neutral-100 border rounded-md bg-white overflow-hidden\">\n      <div class=\"absolute top-1/3 left-1/3\">\n        <ae-icon class=\"far fa-file-alt text-5xl opacity-5 \"></ae-icon>\n      </div>\n      <div class=\"break-word h-[110px] p-2 overflow-hidden\">\n        {{ data.name }}\n      </div> \n    </div> \n    <!-- <ae-design name=\"thumbnail\" class=\"rounded-md overflow-hidden shrink-0 border border-neutral-100\" :document=\"document\" :param-size=\"params.size\" :param-height=\"params.height\" :param-width=\"params.width\"></ae-design> -->\n \n    <section v-if=\"!params.square\" class=\"flex flex-col gap-1 overflow-hidden\" >\n      <div class=\"flex gap-2\">\n        <ae-design class=\"text-neutral-600 w-full overflow-hidden\" name=\"title\" :document=\"document\"></ae-design>\n      </div>\n      <div class=\"flex gap-2 text-sm text-neutral-600 items-center\">\n        <ae-design name=\"rd:icon\" :document=\"document\"></ae-design>\n        <ae-design name=\"rd:size\" :document=\"document\"></ae-design>\n      </div>\n    </section>\n    <section v-else class=\"flex flex-col xoverflow-x-hidden gap-1\">\n      <!-- thumbnail default width is 128px -->\n      <ae-design class=\"-mt-5 bg-white border border-slate-200 rounded-md px-2 self-center w-[110px] text-neutral-600 overflow-x-hidden text-sm\" name=\"title\" :document=\"document\"></ae-design>\n\n      <div class=\"flex gap-2 text-xs text-neutral-600 items-baseline overflow-hidden\">\n        <ae-design name=\"rd:icon\" :document=\"document\"></ae-design>\n        <!-- <ae-design name=\"rd:size\" :document=\"document\"></ae-design> -->\n        <ae-design class=\"px-1 mb-2 text-xs\" name=\"rd:creation-info\" :document=\"document\"></ae-design>\n      </div>\n    </section>\n  </div>\n\n  <div v-if=\"locals.upload\" style=\"display:flex\">\n    <div class=\"ae-progress\" :style=\"{ 'padding-left': (locals.upload.progressPercent * 100).toString() + '%' }\" ></div>\n  </div>\n</div>\n   \n   "},"f":{"id":"design-form","text":"Design","v":"e3fe9ece11aabc5e"},"id":"868f3925-1fcb-41f5-b249-5bac8c6217d5","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-02-09T14:28:47+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"458036a1-b171-43e3-b44e-d364199f6e10","text":"rd:card","v":"7f90febf344c3835"},"p":"ffa650cf-e351-462e-baef-29f7c8f22d1b","previous":{"v":"e8476ae6e116dadd"},"stamps":[],"t":1770647327909,"v":"b0ccbeb475b26633"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","46a28dfa-7518-4867-9519-a5f4cd9b9967"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"1c2bd0f9-3eb7-42ac-9fa8-c6f4dd9097c3","text":"rd:board-card-inner","v":"1631ceaf2fdf2383"},"created":{"at":"2025-10-24T14:47:48+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"ct":1761317268037,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      BCoreTask: '0deb4864-cbb6-420c-99ee-337c7444ab24',\n    }\n\n    locals.daysLeft = this.daysLeft(document)\n    locals.daysLeftAsHumanReadable = this.daysLeftAsHumanReadable(locals.daysLeft)\n    locals.form = null\n    locals.currentWorkflowStatusField = null\n    locals.administration = null\n    \n    locals.administration = await Aeppic.findOne(`p:${document.id} f.id:${this.FORMS.BCoreTask}`)\n    locals.form = await Aeppic.getFormForDocument(document)\n    locals.currentWorkflowStatusField = locals.form.getField('workflowStatus').settings.options.find(option => option.value === data.workflowStatus)\n\n  }\n\n  daysLeft(doc) {\n    if (!doc.data.dueEnd && !doc.data.dueStart) {\n      return { days: null, dueDate: null }\n    }\n\n    const dueDate = Aeppic.DateTime.fromISO(doc.data.dueEnd || doc.data.dueStart)\n\n    return {\n      days: -Aeppic.DateTime.local().diff(dueDate).toFormat('d'),\n      dueDate: dueDate,\n    }\n  }\n\n  daysLeftAsHumanReadable(daysLeft) {\n    const { days, dueDate } = daysLeft\n\n    if (days === null) {\n      return ''\n    }\n\n    if (days < 30) {\n      return dueDate.toRelativeCalendar() \n    }\n\n    return `${days} Tage übrig`\n  }\n\n}","css":"","description":"","name":"rd:card-inner","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<div class=\"@container w-full h-full flex flex-col gap-1 justify-center\" @click.stop=\"$emit('selected', document)\">\n  <div class=\"w-full flex items-center gap-1\">\n    <ae-design name=\"rd:icon\" :document=\"document\"></ae-design>\n\n    <ae-design\n      name=\"title\"\n      :document=\"document\"\n      class=\"flex-1\"\n      :param-text=\"locals.administration?.data.name\"\n    ></ae-design>\n\n    <!-- Responsible -->\n    <ae-list\n      list-id=\"5a30185e-24bc-430b-b477-fa85634c26c7\"\n      :documents=\"data.responsible\"\n      :param-maxBubbles=\"6\"\n      :param-horizontal=\"true\"\n      :param-noWrap=\"true\"\n      :root-document=\"document\"\n    ></ae-list>\n\n    <!-- Prioritaet-->\n    <div v-if=\"data.prioritaet\" class=\"flex items-center\">\n      <div class=\"text-red-500\" title=\"Hohe Priorität\" v-if=\"data.prioritaet === 3\">\n        <ae-icon class=\"fal fa-arrow-circle-up\"></ae-icon>\n      </div>\n      <div title=\"Mittlere Priorität\" v-else-if=\"data.prioritaet === 2\">\n        <ae-icon class=\"fal fa-arrow-circle-right\"></ae-icon>\n      </div>\n      <div title=\"Niedrige Priorität\" v-else-if=\"data.prioritaet === 1\">\n        <ae-icon class=\"fal fa-arrow-circle-down\"></ae-icon>\n      </div>\n    </div>\n\n    <!-- Zeit uebrig -->\n    <div class=\"w-[7rem] text-right\" v-if=\"locals.daysLeft?.days != null\">\n      <div\n        class=\"text-sm mr-1 whitespace-nowrap\"\n        :class=\"{ 'text-neutral-500': data.erledigt, 'text-rose-500': !data.erledigt && locals.daysLeft.days < 0, 'text-amber-500': !data.erledigt && locals.daysLeft.days <= 5 && locals.daysLeft.days >= 0 }\"\n        :title=\"Aeppic.DateTime.fromISO(data.dueEnd || data.dueStart).toLocaleString()\"\n      >\n        {{ locals.daysLeftAsHumanReadable }}\n      </div>\n    </div>\n    <div v-else class=\"text-neutral-500 mr-1 w-[5rem] text-right\" title=\"Fortlaufend (keine Fälligkeit)\">\n      <ae-icon class=\"far fa-infinity\"></ae-icon>\n    </div>\n\n    <!-- Status -->\n    <div v-if=\"locals.currentWorkflowStatusField\" class=\"text-right\" :title=\"locals.currentWorkflowStatusField.display\">\n      <ae-icon\n        :class=\"[locals.currentWorkflowStatusField.tags.icon, locals.currentWorkflowStatusField.tags.iconcolor]\"\n      ></ae-icon>\n    </div>\n  </div>\n\n  <div class=\"flex flex-wrap items-center gap-x-4 gap-y-1 text-sm text-neutral-600\">\n    <!-- Location -->\n    <ae-design title=\"Standort\" name=\"title\" :document=\"data.object\" class=\"truncate\"></ae-design>\n\n    <!-- Teams -->\n    <section v-if=\"data.team?.length > 0\" class=\"flex items-center gap-2 min-w-0\">\n      <ae-icon class=\"far fa-people-group text-neutral-600 text-center\"></ae-icon>\n      <div class=\"truncate\">\n        <span v-for=\"(team, index) of data.team\" :key=\"team.id\">\n          {{ team?.text }}<span v-if=\"index < data.team.length - 1\">, </span>\n        </span>\n      </div>\n    </section>\n\n    <!-- Facilities -->\n    <section v-if=\"data.facility.id\" class=\"flex items-center gap-1 min-w-0\">\n      <ae-icon class=\"far fa-cog text-neutral-600 w-4 text-center\"></ae-icon>\n      <ae-design name=\"title\" :document-id=\"data.facility.id\"></ae-design>\n    </section>\n  </div>\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"8752c19a-79e7-43a2-ac09-82e031e6ccbb","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-05-12T12:31:52+00:00","backedBy":"","by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"1c2bd0f9-3eb7-42ac-9fa8-c6f4dd9097c3","text":"rd:board-card-inner","v":"1631ceaf2fdf2383"},"p":"46a28dfa-7518-4867-9519-a5f4cd9b9967","previous":{"v":"fadf3de113853c87"},"stamps":[],"t":1778589112056,"v":"b014e802a4cbb065"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","31e6efab-61df-4b91-8250-3bfcfd491c6c"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"f4bc127c-d479-4154-b487-9f8bd4f0e29f","text":"rd:card","v":"b244b6a777fa5b9f"},"created":{"at":"2026-01-28T15:02:34+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"ct":1769612554086,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.area = null\n    locals.actions = params.actions\n    if (Array.isArray(data.area) && data.area.length > 0) {\n      locals.area = await Aeppic.get(data.area[0])\n    }\n    locals.icon = (await Aeppic.getFormForDocument(document))?.data.namedIcon || ''\n  }\n\n  get hiddenClasses() {\n    return \"hidden @[200px]:block\"\n  }\n\n  get reverseHiddenClasses() {\n    return \"@[200px]:hidden block\"\n  }\n\n  \n}","css":"","description":"","name":"rd:card-inner","packages":[],"template":"<div \n  class=\"flex gap-1 items-center size-full @container border border-slate-200 p-2 rounded-md bg-white\" \n  @click.stop=\"$emit('selected', document)\"\n>\n  <div :class=\"[controller.reverseHiddenClasses]\">\n    <ae-icon :class=\"[locals.icon]\"></ae-icon>\n  </div>\n  \n  <div :class=\"controller.hiddenClasses\">\n    <ae-design\n      class=\"size-full\"\n      :document=\"document\"\n      name=\"rd:thumbnail\"\n      :params=\"{width: '60px', height: '60px'}\"\n      :param-hide-name=\"true\"\n    ></ae-design>\n  </div>\n\n  <div class=\"flex flex-col justify-center ml-1 overflow-hidden\">\n    <ae-design\n      :document=\"document\"\n      name=\"title\"\n    ></ae-design>\n    \n    <ae-design\n      v-if=\"Array.isArray(data.area) && data.area.length > 0\"\n      class=\"text-xs text-gray-500 truncate\"\n      :document-id=\"data.area[0].id\"\n      name=\"title\"\n    ></ae-design>\n  </div>\n  <div class=\"ml-auto flex gap-1 items-center\">\n    <ae-layout\n      layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n      param-icon=\"far fa-clone\" \n      param-classes=\"\"\n      param-text=\"Duplizieren\"\n      param-border=\"border-slate-200\"\n    ></ae-layout>\n    <ae-layout\n      layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n      param-icon=\"far fa-trash\" \n      param-classes=\"\"\n      param-text=\"\"\n      param-border=\"border-slate-200\"\n    ></ae-layout>   \n  </div>\n</div>"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"8dc9b725-b8a6-4efd-92d5-d2fcef5c1170","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-02-04T13:13:11+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"f4bc127c-d479-4154-b487-9f8bd4f0e29f","text":"rd:card","v":"b244b6a777fa5b9f"},"p":"31e6efab-61df-4b91-8250-3bfcfd491c6c","previous":{"v":"initial"},"stamps":[],"t":1770210791739,"v":"a5eb5dcc61ae051e"},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","49af721d-7068-4dd7-8df4-a5f79b3804cf"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"4d7a02aa-be0e-4873-847b-16db140ee4c6","text":"rd:card","v":"d77a0ada9090d19e"},"created":{"at":"2025-07-07T12:48:40+00:00","backedBy":null,"by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":null},"ct":1751892520004,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:card-inner","packages":[],"template":"<div class=\"flex gap-2 flex-col overflow-hidden\" @click.stop=\"$emit('selected', document)\">\n  <section class=\"flex gap-2 overflow-hidden\">\n    <section class=\"flex flex-col\">\n      <div class=\"text-neutral-600\">\n        <ae-design name=\"title\" :document-id=\"document.p\"></ae-design>\n      </div>\n      <div class=\"flex gap-2 items-center\">\n        <div class=\"w-24\">{{ data.informationNumberTitle }}</div>\n\n        <div v-if=\"data.informationTitle\" class=\"font-bold\">{{ data.informationTitle }}</div>\n        <div v-else class=\"italic\">Kein Sammelinformationstitel</div>\n      </div>\n\n      <div class=\"flex gap-6 items-center\"></div>\n\n      <section class=\"flex gap-4 item-center\">\n        <div v-if=\"data.acceptanceTimestamp\" class=\"flex items-center\" title=\"Zeitstempel Annahme\">\n          <ae-icon class=\"far fa-memo-circle-check\"></ae-icon>\n          <ae-design\n            class=\"ml-1\"\n            name=\"rd:date\"\n            :document=\"document\"\n            param-field-name=\"acceptanceTimestamp\"\n            :param-no-min-width=\"true\"\n            param-format=\"dd. LLLL yyyy\"\n            :param-no-title=\"true\"\n          ></ae-design>\n        </div>\n        <div v-else-if=\"data.submissionTimestamp\" class=\"flex items-center gap-1\" title=\"Zeitstempel Einreichung\">\n          <!-- <ae-icon class=\"far fa-paper-plane\"></ae-icon> -->\n          <ae-design\n            name=\"rd:date\"\n            :document=\"document\"\n            param-field-name=\"submissionTimestamp\"\n            :param-no-min-width=\"true\"\n            param-format=\"dd. LLLL yyyy\"\n            :param-no-title=\"true\"\n            :param-reverse=\"true\"\n          ></ae-design>\n        </div>\n        <div v-else-if=\"data.creationTimestamp\" class=\"flex items-center gap-1\" title=\"Zeitstempel Erstellung\">\n          <!-- <ae-icon class=\"far fa-paper-plane\"></ae-icon> -->\n          <ae-design\n            name=\"rd:date\"\n            :document=\"document\"\n            param-field-name=\"creationTimestamp\"\n            :param-no-min-width=\"true\"\n            param-format=\"dd. LLLL yyyy\"\n            :param-no-title=\"true\"\n            :param-reverse=\"true\"\n          ></ae-design>\n        </div>\n      </section>\n    </section>\n\n    <div class=\"flex-1\"></div>\n\n    <!-- avatars -->\n    <section class=\"flex flex-col gap-1 items-center\" title=\"BITM\">\n      <ae-design class=\"text-2xl\" name=\"avatar\" :document=\"data.creator\"></ae-design>\n    </section>\n\n    <!-- <section class=\"flex flex-col gap-1 items-center\" title=\"Antragsteller\">\n      <ae-design v-for=\"applicant of data.applicant\" name=\"rd:icon\" :document=\"applicant\" class=\"text-2xl\"></ae-design>\n    </section> -->\n  </section>\n\n  <div class=\"flex items-center gap-2\">\n    <div class=\"flex items-center gap-2 text-sm text-primary-800 bg-primary-50 px-1 rounded-md\">\n      <ae-icon class=\"far fa-badge-check\"></ae-icon>\n      <span>{{ data.informationWorkflowPhaseTitle }} </span>\n    </div>\n\n    <div class=\"flex-1\"></div>\n    <div v-if=\"data.creationTimestamp\" class=\"shrink-0 text-sm text-secondary-500\" title=\"Zeitstempel Erstellung\">\n      {{ Aeppic.DateTime.fromISO(data.creationTimestamp).toLocaleString(Aeppic.DateTime.DATETIME_SHORT) }}\n    </div>\n    <!-- <div v-if=\"data.submissionTimestamp\" class=\"shrink-0 text-sm text-secondary-500\" title=\"Zeitstempel Einreichung\">\n      {{ Aeppic.DateTime.fromISO(data.submissionTimestamp).toLocaleString(Aeppic.DateTime.DATETIME_SHORT) }} -->\n  </div>\n  <!-- <div v-if=\"data.acceptanceTimestamp\" class=\"shrink-0 text-sm text-secondary-500\" title=\"Zeitstempel Annahme\">\n      {{ Aeppic.DateTime.fromISO(data.acceptanceTimestamp).toLocaleString(Aeppic.DateTime.DATETIME_SHORT) }}\n    </div> -->\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"9165d2af-12a5-4e72-b70c-23a5b668d07a","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-02-09T14:29:15+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"4d7a02aa-be0e-4873-847b-16db140ee4c6","text":"rd:card","v":"d77a0ada9090d19e"},"p":"49af721d-7068-4dd7-8df4-a5f79b3804cf","previous":{"v":"d687ed64de8605ae"},"stamps":[],"t":1770647355075,"v":"32a70c4f8500c2cb"},{"a":["apps","5ec4fefb-1235-484e-8d6f-4fd645bae372","75920050-07b1-4e79-9742-54abcc235e91","4b1bce8a-884e-44de-a2cd-352a7f89baa7"],"a_depth":4,"a_forms":["folder","application-form","folder","form"],"created":{"at":"2024-01-08T13:44:37+01:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1704717877700,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:card-inner","packages":[],"template":"<div class=\"flex gap-2\">\n  <div class=\"min-w-[100px] w-[100px] truncate\">{{ data.patientennummer }}</div>\n  <div class=\"flex-1 truncate\">{{ data.name }}</div>\n</div>"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"950cc978-d9c1-4136-a68a-17ea0b0d79a0","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-02-09T14:29:33+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"p":"4b1bce8a-884e-44de-a2cd-352a7f89baa7","previous":{"v":"a317b929aa28697f"},"stamps":[],"t":1770647373934,"v":"7dbb2d11a661915c"},{"a":["apps","144e85c0-d7f9-4b20-8928-be30f0c78bda","8e6ee7d3-9122-4a2e-8aaf-9fb3bd204b23","d2ac3563-3c3f-4f02-b923-9b67abf98d10"],"a_depth":4,"a_forms":["folder","application-form","folder","form"],"created":{"at":"2024-02-29T10:36:45+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1709203005954,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:card-inner","packages":[],"template":"<div class=\"flex flex-col gap-2\" @click.stop=\"$emit('selected', document)\">\n  <!-- <ae-design name=\"rd:icon\" :document=\"document\"></ae-design> -->\n  <ae-design name=\"title\" :document=\"document\"></ae-design>\n\n  <div v-if=\"data.beschreibung.length\" class=\"text-sm text-neutral-600 truncate\" :title=\"data.beschreibung\">\n    {{ data.beschreibung }}\n  </div>\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"955e5e88-d5f0-4698-84af-580462251548","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-02-09T14:30:00+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"p":"d2ac3563-3c3f-4f02-b923-9b67abf98d10","previous":{"v":"23e8c3d37b713270"},"stamps":[],"t":1770647400715,"v":"0f6653fb96ec4d03"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","5a4fafb4-3c2b-4826-8a85-7c804ee4ac52"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"5e7f0841-77be-4ed2-80f8-7e06831828e3","text":"rd:card","v":"98bd5a2147efa9cf"},"created":{"at":"2026-01-28T13:08:59+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"ct":1769605739290,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.area = null\n    if (Array.isArray(data.area) && data.area.length > 0) {\n      locals.area = await Aeppic.get(data.area[0])\n    }\n    locals.icon = (await Aeppic.getFormForDocument(document))?.data.namedIcon || ''\n  }\n\n  get hiddenClasses() {\n    return \"hidden @[200px]:block\"\n  }\n\n  get reverseHiddenClasses() {\n    return \"@[200px]:hidden block\"\n  }\n}","css":"","description":"","name":"rd:card-inner","packages":[],"template":"<div \n  class=\"flex gap-1 items-center size-full @container\" \n  @click.stop=\"$emit('selected', document)\"\n>\n  <div :class=\"[controller.reverseHiddenClasses]\">\n    <ae-icon :class=\"[locals.icon]\"></ae-icon>\n  </div>\n  \n  <div :class=\"controller.hiddenClasses\">\n    <ae-design\n      class=\"size-full\"\n      :document=\"document\"\n      name=\"rd:thumbnail\"\n      :params=\"{width: '60px', height: '60px'}\"\n      :param-hide-name=\"true\"\n    ></ae-design>\n  </div>\n\n  <div class=\"flex flex-col justify-center ml-1 overflow-hidden\">\n    <ae-design\n      :document=\"document\"\n      name=\"title\"\n    ></ae-design>\n    \n    <ae-design\n      v-if=\"Array.isArray(data.area) && data.area.length > 0\"\n      class=\"text-xs text-gray-500 truncate\"\n      :document-id=\"data.area[0].id\"\n      name=\"title\"\n    ></ae-design>\n  </div>\n\n  <div\n    class=\"ml-auto pl-2\"\n    :class=\"controller.hiddenClasses\"\n  >\n    <ae-design\n      :document=\"document\"\n      name=\"rd:open-location\"\n    ></ae-design>\n  </div>\n</div>"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"bcb87fab-b95b-4e46-8c38-5b3bfc495373","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-02-04T09:58:34+00:00","backedBy":"","by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"5e7f0841-77be-4ed2-80f8-7e06831828e3","text":"rd:card","v":"98bd5a2147efa9cf"},"p":"5a4fafb4-3c2b-4826-8a85-7c804ee4ac52","previous":{"v":"initial"},"stamps":[],"t":1770199114500,"v":"5a7f207b462cf8f8"},{"a":["apps","90a38bb1-5683-49d1-b519-203876cc6967","4bfbe5fd-cf64-4b07-b91f-17bade3f41f9","27a5cf6e-22f8-44d2-8107-400b27382690"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2024-01-22T14:40:26+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1705934426164,"data":{"aliases":[],"controller":"class Controller {\n  get progress() {\n    const all = [\n      data.erledigtAngebotserstellung,\n      data.erledigtPlanungsbesprechung,\n      data.erledigtKonstruktionRaumgeo,\n      data.erledigtHeizlastberechnung,\n      data.erledigtFreigabeHeizlastberechnung,\n      data.erledigtAuslegungHeizflaechen,\n      data.erledigtKonstruktionRohrnetz,\n      data.erledigtHeizlastGrundrisseLayout,\n      data.erledigtUnterlagen,\n    ]\n  \n    const done = all.filter(value => value === true)\n\n    return {\n      all: all.length,\n      done: done.length\n    }\n  }\n}","css":"","description":"","name":"rd:card-inner","packages":[],"template":"<div  class=\"flex gap-2 items-center\"\n      @click.stop=\"$emit('selected', document)\"\n      :class=\"{ 'xtext-amber-600': data.express, 'xtext-red-500 font-bold': data.sofort }\"\n>\n  <div v-if=\"data.sofort\" title=\"Sofort\">\n    <ae-icon class=\"far fa-exclamation-circle text-red-500\"></ae-icon>\n  </div>\n  <div v-if=\"data.express\" title=\"Express\">\n  <ae-icon class=\"far fa-wind text-amber-600\" ></ae-icon>\n  </div>\n  <ae-design name=\"title\" :document=\"document\"></ae-design>\n\n  <div class=\"flex-1\"></div>\n  \n  <ae-layout layout-id=\"ffd34105-fa6a-44f5-aa63-64923233f178\"\n              :param-employees=\"[data.verantwortlich]\"\n  ></ae-layout>\n\n  <div class=\"shrink-0 px-1\"\n       :class=\"{ 'text-neutral-400': controller.progress.done === 0, 'text-neutral-700': controller.progress.done > 0 && controller.progress.done !== controller.progress.all, 'text-green-600': controller.progress.done === controller.progress.all }\"\n  >\n    <template v-if=\"controller.progress.done !== controller.progress.all\">\n      {{ controller.progress.done }}/{{ controller.progress.all }}\n    </template>\n    <ae-icon v-else class=\"far fa-check-circle\"></ae-icon>\n  </div>\n  <ae-design class=\"truncate shrink-0 min-w-[100px]\" name=\"rd:date\" :document=\"document\" param-field-name=\"termin\" :param-relative=\"true\" :param-colorize=\"true\"></ae-design>\n</div>\n "},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"bd2a8926-0eaa-4bcc-917e-385bc3f8f8f5","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-02-09T14:31:11+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"p":"27a5cf6e-22f8-44d2-8107-400b27382690","previous":{"v":"a48bb5103501c7a9"},"stamps":[],"t":1770647471904,"v":"f66f7e1c57c74b85"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","1b166603-d0f3-4f16-98c4-0534afbd6f5a"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"50d5c9b4-7458-4605-b2a9-7517a183111f","text":"rd:board-card-inner","v":"b07c12825ecfcd2e"},"created":{"at":"2026-01-15T07:38:11+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"ct":1768462691963,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.form = null\n    locals.form = await Aeppic.getFormForDocument(document)\n    locals.teams = []\n    locals.maintenance = null\n    locals.typeInfo = null\n    locals.statusInfo = null\n    \n    locals.form = await Aeppic.getFormForDocument(document)\n    locals.typeInfo = locals.form.getField('type').settings.options.find(option => option.value === data.type)\n    locals.statusInfo = locals.form.getField('workflowStatus').settings.options.find(option => option.value === data.workflowStatus)\n\n    \n    locals.facility = await Aeppic.get(data.facility)\n    Aeppic.watchAll(data.team, (teams) => {\n      locals.teams = teams\n    })\n    Aeppic.watch(data.facility, (facility) => {\n      locals.facility = facility\n    })\n    // Note: Using watchAll because of the immediate callback\n    Aeppic.watchAll([data.maintenance], (maintenance) => {\n      locals.maintenance = maintenance[0]\n    })\n  }\n}","css":"","description":"","name":"rd:card-inner","packages":[],"template":"<section class=\"w-full xcursor-pointer\" @click.stop=\"$emit('selected', document)\">\n  <div class=\"flex items-start gap-4\" :class=\"{ 'text-neutral-600 italic': !data.released}\">\n    <div class=\"flex-1 min-w-0 flex flex-col gap-1\">\n      <div class=\"flex gap-1\">\n        <ae-design name=\"rd:icon\" :document=\"document\"></ae-design>\n\n        <!-- Maintenance Name -->\n        <ae-design class=\"font-semibold text-base truncate\" name=\"title\" :document=\"locals.maintenance\"></ae-design>\n      </div>\n\n      <div class=\"flex flex-wrap items-center gap-x-4 gap-y-1 text-sm text-neutral-600\">\n        <!-- Location -->\n        <ae-design title=\"Standort\" name=\"title\" :document=\"data.object\" class=\"truncate\"></ae-design>\n\n        <!-- Teams -->\n        <section v-if=\"locals.teams?.length > 0\" class=\"flex items-center gap-2 min-w-0\">\n          <ae-icon class=\"far fa-people-group text-neutral-600 text-center\"></ae-icon>\n          <div class=\"truncate\">\n            <span v-for=\"(team, index) of locals.teams\" :key=\"team.id\">\n              {{ team?.data.name }}<span v-if=\"index < locals.teams.length - 1\">, </span>\n            </span>\n          </div>\n        </section>\n\n        <!-- Facilities -->\n        <section v-if=\"locals.facility\" class=\"flex items-center gap-1 min-w-0\">\n          <ae-icon class=\"far fa-cog text-neutral-600 w-4 text-center\"></ae-icon>\n          <span class=\"truncate\" :class=\"{ 'italic': !locals.facility?.data.name }\">\n            {{ locals.facility?.data.name || 'Anlage' }}\n          </span>\n        </section>\n      </div>\n    </div>\n\n    <div class=\"flex flex-col items-end gap-1 shrink-0\">\n      <div class=\"flex gap-2\">\n        <!-- Manual or Trigger -->\n        <div v-if=\"locals.form\" :title=\"locals.typeInfo?.display\">\n          <ae-icon :class=\"[locals.typeInfo?.tags.icon]\" class=\"text-neutral-600\"></ae-icon>\n        </div>\n        <!-- Status -->\n        <div v-if=\"locals.form\" :title=\"locals.statusInfo?.display\">\n          <ae-icon :class=\"[locals.statusInfo?.tags.icon, locals.statusInfo?.tags.iconcolor]\"></ae-icon>\n        </div>\n      </div>\n\n      <!-- Date -->\n      <ae-design\n        name=\"rd:date\"\n        :document=\"document\"\n        param-field-name=\"created.at\"\n        param-format=\"dd.MM.yyyy HH:mm\"\n        class=\"text-xs text-neutral-600\"\n      ></ae-design>\n    </div>\n  </div>\n</section>\n\n<ae-layout\n  layout-id=\"262e95e6-f1f8-477c-834b-89d533027e1e\"\n  :param-document=\"document\"\n  :param-commands=\"['8e3591ac-dde5-4c55-9226-ee1986f5a803']\"\n  v-show=\"false\"\n  ref=\"command\"\n></ae-layout>\n"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"c04f03d8-7c27-41d3-8fef-b71f59e58f4b","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-02-06T15:28:34+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"50d5c9b4-7458-4605-b2a9-7517a183111f","text":"rd:board-card-inner","v":"b07c12825ecfcd2e"},"p":"1b166603-d0f3-4f16-98c4-0534afbd6f5a","previous":{"v":"07c778fcd98599db"},"stamps":[],"t":1770391714954,"v":"1ab5ba80a7eed49b"},{"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","c211ffaa-14f8-4439-9126-f42f65ac4424"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"d5fbafcd-ffc3-428c-acba-c3e1c220d3e7","text":"board-card","v":"85115ace27ca32a1"},"created":{"at":"2024-09-23T10:22:28+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1727086948147,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Wartungsplan: '522ca40d-810b-4021-835f-beeace3af7fa'\n    }\n\n    locals.plan = null\n\n    locals.plan = await Aeppic.findOne(`p:${document.id} f.id:${this.FORMS.Wartungsplan}`)\n  }\n}","css":"","description":"","name":"rd:card-inner","packages":[],"template":"<div class=\"\"\n    @click.stop=\"$refs.command.$emit('force-show', 'f22b2d20-16fe-4b71-abe1-395381606479')\"\n>\n  <section class=\"flex flex-col text-sm text-theme-500\">\n    <div class=\"flex gap-2\">\n      <span>Firma:</span> <ae-design name=\"title\" :document-id=\"data.firma.id\"></ae-design>\n    </div>\n    \n    <div class=\"flex gap-2\">\n      <span>Objekt:</span> <ae-design name=\"title\" :document-id=\"data.objekt.id\"></ae-design>\n    </div>\n  </section>\n   \n   <section class=\"flex justify-center mt-3 mb-1 font-bold\">\n    <ae-design name=\"title\" :document=\"locals.plan\"></ae-design>\n   </section>\n\n   <!-- <section class=\"my-4\">\n     <ae-list  v-if=\"locals.plan\"\n              list-id=\"2e798091-303f-406b-a42a-93aa1cd8425c\"\n              :documents=\"locals.plan.data.anlagen\"\n              param-design=\"work-status,title\"\n     ></ae-list>\n   </section> -->\n\n   <section class=\"my-3\">\n     <ae-design v-if=\"locals.plan\" name=\"work-status\" :document=\"locals.plan\"></ae-design>\n   </section>\n\n   <section class=\"flex flex-wrap justify-between text-sm text-theme-500\">\n     <div title=\"Begonnen\">\n        <ae-icon  class=\"fa fa-star-of-life\"></ae-icon>\n\n       {{ Aeppic.DateTime.fromISO(document.created.at).toLocaleString(Aeppic.DateTime.DATETIME_SHORT) }}\n     </div>\n     <!-- TODO: Wartung is not modified when some work is done. -->\n     <div v-if=\"data.status === 3\" title=\"Zur Kenntnis genommen\">\n        <ae-icon  class=\"fa fa-badge-check\"></ae-icon>\n        {{ Aeppic.DateTime.fromISO(document.modified.at).toLocaleString(Aeppic.DateTime.DATETIME_SHORT) }}\n     </div>\n   </section> \n\n   <!-- <section v-if=\"Aeppic.Account.data.allowDevMode\">\n     <ae-layout layout-id=\"aac11114-46bb-4f29-a280-51d889a8aaca\" :param-document=\"document\"></ae-layout>\n   </section> -->\n</div>\n\n<ae-layout layout-id=\"c80364ed-8a1f-40fa-a169-5cc7b45d4fb4\"\n          :param-document=\"document\"\n          :param-commands=\"['f22b2d20-16fe-4b71-abe1-395381606479']\"\n          v-show=\"false\"\n          ref=\"command\"\n></ae-layout> "},"f":{"id":"design-form","text":"Design","v":"c2d9ae57c7a46896"},"id":"c0ec34e1-1a7e-4799-8d7d-b86a5f33af67","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-02-09T14:33:31+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"d5fbafcd-ffc3-428c-acba-c3e1c220d3e7","text":"board-card","v":"85115ace27ca32a1"},"p":"c211ffaa-14f8-4439-9126-f42f65ac4424","previous":{"v":"5d32a57b34359e00"},"stamps":[],"t":1770647611633,"v":"18394412eac2af79"},{"a":["apps","14c27659-92d7-4b43-8c4f-25f4cceae591","2e759bfa-c685-48e8-81b4-cec70e93c521","42cf6e7a-e304-49a6-86e1-c94d84f1d0d9"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2022-05-25T14:54:01+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1653490441253,"data":{"aliases":[],"controller":"get date() {\n  const created = Aeppic.DateTime.fromISO(document.created.at)\n\n  if (created.diffNow('days').days > -1) {\n    return `${created.toLocaleString(Aeppic.DateTime.TIME_24_SIMPLE)} Uhr`\n  }\n\n  return created.toRelativeCalendar()\n}","css":"","description":"","name":"rd:card-inner","packages":[],"template":"<div class=\"flex gap-3 overflow-hidden\"\n      :class=\"[ params.highlightComment === document.id && 'ring ring-blue-300 bg-blue-50 ring-2']\"\n      title=\"Ein privater Ping\"\n>\n  <ae-design name=\"avatar--resizes-with-font\" :document-id=\"data.who.id\"\n              class=\"text-4xl\" \n  ></ae-design>\n\n  <div class=\"flex-1 flex flex-col overflow-hidden\">\n    <ae-design name=\"profile-title\" :document-id=\"data.who.id\" class=\"font-semibold\"></ae-design>\n\n    <template v-if=\"data.content.startsWith('{')\">\n      <ae-control name=\"rd:editor-content\"\n                :document=\"document\"\n                field-name=\"content\"\n                :readonly=\"true\"\n      ></ae-control>\n    </template>\n    <template v-else-if=\"!data.content.startsWith('translate:')\">\n    {{ data.content }}\n    </template>\n    <i v-else>\n      Kein Text\n    </i>\n\n    <div class=\"flex justify-between gap-6 items-end\">\n      <div class=\"text-sm text-neutral-500\" :title=\"Aeppic.DateTime.fromISO(document.created.at).toLocaleString(Aeppic.DateTime.DATETIME_SHORT)\">\n        {{ controller.date }}\n      </div>\n\n      <div class=\"flex gap-2 text-neutral-500 overflow-hidden overflow-y-visible\">\n        <div class=\"text-sm\" title=\"Dieser private Ping an wurde gesendet an...\">\n          <ae-icon class=\"far fa-at\"></ae-icon>\n        </div>\n        <div class=\"flex gap-1 overflow-x-auto overflow-y-hidden\"> \n          <ae-design class=\"text-xl\" v-for=\"receiver of data.receiver\" name=\"avatar--resizes-with-font\" :document-id=\"receiver.id\"></ae-design>\n        </div>\n      </div>\n    </div>\n  </div>\n\n</div>"},"f":{"id":"design-form","text":"Design","v":"c2d9ae57c7a46896"},"id":"c16dd80b-b49c-4ad5-9482-40bc5c50b45c","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-02-09T14:37:04+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"p":"42cf6e7a-e304-49a6-86e1-c94d84f1d0d9","previous":{"v":"eae60a9632e21f05"},"stamps":[],"t":1770647824098,"v":"09c56f53f8ad6416"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","8c113cd0-af90-42fa-aa05-f67809d0a9a5"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2025-11-17T09:14:20+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"ct":1763370860630,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.form = null\n    locals.statusInfo = null\n\n    locals.form = await Aeppic.getFormForDocument(document)\n    locals.statusInfo = locals.form.getField('status').settings.options.find(option => option.value === data.status)\n  }\n}","css":"","description":"","name":"rd:card-inner","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<div\n  class=\"flex @container gap-2\"\n  @click=\"$emit('selected', document)\"\n>\n  <section\n    class=\"flex-1 gap-2\"\n  >\n    <span class=\"w-full\">{{ data.name }}</span>\n  </section>\n  <section\n    class=\"flex items-center gap-2\"\n  >\n    <div\n      v-if=\"data.comment\"\n      :title=\"data.comment\"\n    >\n      <ae-icon\n        class=\"far fa-comment\"\n      ></ae-icon>\n    </div>\n    <div\n      v-if=\"locals.form\"\n      :title=\"locals.statusInfo?.display\"\n    >\n      <ae-icon\n        class=\"fas fa-circle\"\n        :class=\"{ 'text-red-700': data.status === 'FAULTY', 'text-green-700': data.status === 'OK', 'text-amber-700': data.status === 'OK_CORRECTIONS', 'text-slate-700': data.status === 'NOT_APPLICABLE'  }\"\n      ></ae-icon>\n    </div>\n  </section>\n</div>"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"c3a1a05f-34e1-4d2c-9444-4288b08f5830","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-02-09T14:37:25+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"p":"8c113cd0-af90-42fa-aa05-f67809d0a9a5","previous":{"v":"d303e4ba9b47dc6b"},"stamps":[],"t":1770647845635,"v":"ccc0e1411d86cd6a"},{"a":["apps","14c27659-92d7-4b43-8c4f-25f4cceae591","2e759bfa-c685-48e8-81b4-cec70e93c521","cf155969-ede1-43a4-9b10-3a697b19db91"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2022-05-17T14:13:42+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1652796822489,"data":{"aliases":[],"controller":"class Controller {\n  init() {\n    locals.over = false\n  }\n\n  date(value) {\n    const date = Aeppic.DateTime.fromISO(value)\n\n    if (date.diffNow('days').days > -1) {\n      return `${date.toLocaleString(Aeppic.DateTime.TIME_24_SIMPLE)} Uhr`\n    }\n\n    return date.toRelativeCalendar()\n  }\n}","css":"","description":"","name":"rd:card-inner","packages":[],"template":"<div class=\"flex gap-3 relative\"\n    :class=\"[ params.highlightComment === document.id && 'ring ring-blue-100 bg-blue-50 ring-1']\"\n    @mouseover=\"locals.over = true\"\n    @mouseleave=\"locals.over = false\"\n>\n  <ae-design name=\"avatar--resizes-with-font\" :document-id=\"document.created.by\"\n              class=\"text-4xl\" \n  ></ae-design>\n\n  <div class=\"flex-1 flex flex-col\">\n    <ae-design name=\"profile-title\" :document-id=\"document.created.by\" class=\"font-semibold\"></ae-design>\n\n    <template v-if=\"data.content.startsWith('{')\">\n      <ae-control name=\"rd:editor-content\"\n                :document=\"document\"\n                field-name=\"content\"\n                :readonly=\"true\"\n      ></ae-control>  \n    </template>\n    <template v-else-if=\"!data.content.startsWith('translate:')\">\n    {{ data.content }}\n    </template>\n    <i v-else>\n      Kein Text\n    </i>\n\n    <div class=\"flex gap-2 items-center mt-1\">\n      <div class=\"text-sm text-neutral-500\" :title=\"Aeppic.DateTime.fromISO(document.created.at).toLocaleString(Aeppic.DateTime.DATETIME_SHORT)\">\n        {{ controller.date(document.created.at) }}\n      </div>\n\n      <div v-if=\"document.created.at != document.modified.at\" class=\"text-sm text-neutral-500\" :title=\"'Bearbeitet: ' + Aeppic.DateTime.fromISO(document.modified.at).toLocaleString(Aeppic.DateTime.DATETIME_SHORT)\">\n        <ae-icon class=\"far fa-pen\"></ae-icon>\n      </div>\n\n      <div class=\"flex-1\"></div>\n\n      <div v-if=\"document.created.by === Aeppic.Account.id\" \n            class=\"flex items-end gap-1 text-sm\"\n      >\n      <!-- <ae-layout  layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n              param-icon=\"fa fa-edit\"\n              param-text=\"Bearbeiten\"\n              @selected=\"Aeppic.drillInto(document)\"\n      ></ae-layout> -->\n\n      <ae-layout layout-id=\"0ded34c5-1221-4511-af93-d897a79f1369\"\n              :param-document=\"document\"\n              :params=\"{ buttonLayoutId: '80e59dec-29b1-45f1-8391-f5621cf9f0b2', buttonParams: { icon: 'far fa-trash', text: 'Löschen', classes: 'w-full' } }\"\n      ></ae-layout>\n      </div>\n    </div>\n  </div>\n\n  <!-- <div v-if=\"document.created.by === Aeppic.Account.id\" v-show=\"locals.over\"\n      class=\"flex flex-col items-end gap-1 text-sm absolute right-0 bg-white pl-2\"\n  >\n    <ae-layout  layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n                param-icon=\"fa fa-edit\"\n                param-text=\"Bearbeiten\"\n                @selected=\"Aeppic.drillInto(document)\"\n    ></ae-layout>\n\n    <ae-layout layout-id=\"0ded34c5-1221-4511-af93-d897a79f1369\"\n                :param-document=\"document\"\n                :params=\"{ buttonLayoutId: '80e59dec-29b1-45f1-8391-f5621cf9f0b2', buttonParams: { icon: 'fa fa-trash', text: 'Löschen', classes: 'w-full' } }\"\n    ></ae-layout>\n  </div> -->\n\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"c2d9ae57c7a46896"},"id":"cd2e0cce-2779-4aec-a5e8-0c6fff0e7b82","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-02-09T14:37:54+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"p":"cf155969-ede1-43a4-9b10-3a697b19db91","previous":{"v":"9fe68e8a3be708fa"},"stamps":[],"t":1770647874602,"v":"0d9ca4be2863b6d5"},{"a":["apps","b0eb4a71-010b-4d65-b79b-bb984a57c10f","a6c009e7-a2c9-4e84-a992-4ad09134d39d","24523534-125d-4ebe-9a83-bd7fed39ff92"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"4f763673-ef4c-4dfe-a50a-f4d81d44a380","text":"rd:card","v":"8724573e4bda2adf"},"created":{"at":"2024-02-09T11:58:10+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1707479890385,"data":{"aliases":[],"controller":"init() {\n  locals.sort = [{\n    fields: ['data.date', 'created.at'],\n    descending: true\n  }]\n}\n ","css":"","description":"","name":"rd:card-inner","packages":[],"template":"<div class=\"divide-y\" \n    @click.stop=\"$emit('selected', document)\"\n>\n  <div class=\"flex gap-2 items-center p-2\">\n    <ae-design name=\"rd:icon\" :document=\"document\"></ae-design>\n    <ae-design name=\"title\" :document=\"document\"></ae-design>\n    <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n                param-icon=\"far fa-external-link\"\n                param-border=\"border\"\n                @selected=\"Aeppic.drillInto(document)\"\n    ></ae-layout>\n\n    <div class=\"flex-1\"></div>\n  </div>\n\n  <ae-list :root-document-id=\"document.id\"\n        query-id=\"f812861f-68c8-4818-9972-be7b5474c9b1\"\n        filter=\"f.id:d6f1cc99-f34e-4cb8-99b3-11f917485c25\"\n        list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\"\n        :sort=\"locals.sort\"\n        @selected=\"Aeppic.drillInto($event, arguments[1])\"\n        param-empty-text=\"Keine Seiten erstellt\"\n        param-design=\"rd:search-card\"\n        :param-design-params=\"{ hidePath: true, showCreationInfo: true }\"\n        :search-options=\"{ size:4 }\"\n  ></ae-list>\n</div>\n \n"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"e599bb7f-d926-4345-a8f8-5a302b583703","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-02-09T14:38:27+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"4f763673-ef4c-4dfe-a50a-f4d81d44a380","text":"rd:card","v":"8724573e4bda2adf"},"p":"24523534-125d-4ebe-9a83-bd7fed39ff92","previous":{"v":"0b6d897e9457dbbf"},"stamps":[],"t":1770647907516,"v":"647fce92714a3db4"},{"a":["apps","94a64d89-d204-4918-b147-d717914fb03e","f254ce25-42f1-4333-8ee7-23554bf746c1","98c77209-1245-43d6-90b5-8625183f470c"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2024-05-03T12:29:14+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1714739354764,"data":{"aliases":[],"controller":"class Controller {\n  // init() {\n  //   const progress = this.progress\n  //   locals.parts = []\n\n  //   if (data.aufgabenErledigt ||\n  //     data.aufgabenBearbeitung ||\n  //     data.aufgabenOffen ||\n  //     data.aufgabenUeberfaellig) {\n  //     locals.parts = [\n  //       { label: 'Erledigt', value: data.aufgabenErledigt, percent: progress.closed, class: 'bg-sky-500' },\n  //       { label: 'In Bearbeitung', value: data.aufgabenBearbeitung, percent: progress.inProgress, class: 'bg-yellow-400', },\n  //       { label: 'Offen', value: data.aufgabenOffen, percent: progress.open, class: 'bg-slate-300', },\n  //       { label: 'Überfällig', value: data.aufgabenUeberfaellig, percent: progress.overdue, class: 'bg-rose-500', },\n  //     ]\n  //   }\n  // }\n\n  // get progress() {\n  //   const all = data.aufgabenGesamt\n\n  //   if (all === 0) {\n  //     return {}\n  //   }\n\n  //   const percentile = 100 / all\n\n  //   const open = data.aufgabenOffen * percentile\n  //   const overdue = data.aufgabenUeberfaellig * percentile\n  //   const closed = data.aufgabenErledigt * percentile\n  //   const inProgress = data.aufgabenBearbeitung * percentile\n\n  //   return {\n  //     open,\n  //     closed,\n  //     overdue,\n  //     inProgress,\n  //   }\n  // }\n\n  get daysLeft() {\n    if (!data.fertigstellung) {\n      return null\n    }\n\n    return -Aeppic.DateTime.local().diff(Aeppic.DateTime.fromISO(data.fertigstellung)).toFormat('d')\n  }\n} ","css":"","description":"","name":"rd:card-inner","packages":[],"template":"<div class=\"flex flex-wrap gap-x-6 gap-y-2 items-center\"\n      @click.stop=\"$emit('selected', document)\"\n      :class=\"{ 'opacity-60': data.erledigt }\"\n>\n  <div class=\"flex\">\n    <ae-design name=\"rd:icon\" :document=\"document\" class=\"text-xs\"></ae-design>\n  </div> \n\n  <div class=\"w-64 flex-1\">\n    {{ data.name }}\n  </div> \n\n  <ae-control name=\"rd:select\" :document=\"document\"\n              field-name=\"status\" :readonly=\"true\"\n              class=\"w-64\"\n  ></ae-control>\n \n  <ae-layout class=\"w-16\"\n              layout-id=\"ffd34105-fa6a-44f5-aa63-64923233f178\"\n              :param-employees=\"[data.projektleiter,data.leitenderProjektleiter]\"\n  ></ae-layout> \n\n  <!-- <ae-layout xv-if=\"locals.parts.length\"\n              layout-id=\"101e5b7e-208a-42e3-951a-ee305efd3758\"\n            :param-parts=\"locals.parts\"\n            class=\"w-32\"\n  ></ae-layout>    -->\n\n  <div class=\"text-sm w-28 flex justify-end\" title=\"Fertigstellung/Abschlussordner\"> \n    <div v-if=\"controller.daysLeft != null\"\n        :class=\"{ 'text-rose-500': controller.daysLeft < 0, 'text-amber-500': controller.daysLeft <= 5 && controller.daysLeft >= 0 }\"\n    >\n      {{ controller.daysLeft }} Tage übrig\n    </div>\n\n    <div v-else class=\"text-neutral-500\" title=\"Fertigstellung/Abschlussordner: Fortlaufend (keine Fälligkeit)\">\n      <ae-icon class=\"far fa-infinity\"></ae-icon>\n    </div>\n  </div>\n  \n \n\n    <!-- <span class=\"_CSS-to__date\" v-if=\"controller.progress.overdue === 0 && controller.progress.open === 0\">\n      <div class=\"_CSS-to__title\">Erledigt!</div>\n      <ae-icon class=\"fa fa-check _CSS-to__value\"></ae-icon>\n    </span>\n    <span  class=\"_CSS-to__date\" v-else-if=\"data.bis\" :title=\"Aeppic.DateTime.fromISO(data.bis).toLocaleString()\">\n      <div class=\"_CSS-to__title\">Tage übrig</div>\n      <div class=\"_CSS-to__value\" :class=\"{ '_CSS-to__value--overdue': controller.isOverdue, '_CSS-to__value--warning': controller.daysLeft <= 5 && controller.daysLeft >= 0 }\">{{ controller.daysLeft }}</div>\n    </span>\n    <div v-else class=\"_CSS-to__placeholder\">\n      <div class=\"_CSS-to__title\">Fortlaufend</div>\n      <ae-icon class=\"fa fa-infinity _CSS-to__value\"></ae-icon>\n    </div>\n  </div> -->\n</div> "},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"ea406d84-9430-42d0-b7e2-f31ef54cd419","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-02-09T14:38:57+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"p":"98c77209-1245-43d6-90b5-8625183f470c","previous":{"v":"e13b720fe2c5ef1d"},"stamps":[],"t":1770647937022,"v":"1f0aaa81f5d7a8fe"},{"a":["apps","1887a103-bf3b-473c-8cb7-4f1afad0286b","9b02b1b6-e32b-41ec-b451-dba59bc5847b","e66eae7c-a9d5-4a59-a2f0-d1fa6eb90ea5"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2024-11-14T14:35:24+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1731594924078,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:card-inner","packages":[],"template":"<div class=\"flex gap-2 items-center\"\n:class=\"{ 'opacity-60': data.erledigt }\"  \n>\n  <div class=\"truncate\" :class=\"{ 'line-through': data.erledigt, 'italic text-neutral-500': !data.name.trim() }\">{{ data.name }}</div>\n  <div class=\"flex-1\"></div>\n  <ae-layout param-class=\"text-xl\" class=\"w-20 min-w-20\" layout-id=\"ffd34105-fa6a-44f5-aa63-64923233f178\" :param-employees=\"data.verantwortlich\"></ae-layout>\n  <ae-design class=\"w-20 min-w-20\" name=\"rd:date\" :document=\"document\" param-field-name=\"bis\"></ae-design>\n</div>\n\n"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"ee65463d-bf1c-4236-94c4-4f40ec22b1a2","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-02-09T14:39:22+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"p":"e66eae7c-a9d5-4a59-a2f0-d1fa6eb90ea5","previous":{"v":"f13412f32c1cf4b7"},"stamps":[],"t":1770647962177,"v":"3ca45b789bc08046"},{"a":["apps","f416e371-07cc-4987-a6de-5934ef5ff3e4","1096c5df-2773-4914-9455-dc54e0f3e0e5","94886126-c88d-4ea0-b088-8ea5ad155b08"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2024-02-05T15:24:16+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1707146656470,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.parts = []\n    locals.erinnerung = this.erinnerungExists ? this.getErinnerunAsFormattedStringDisplay() : ''\n    locals.erinnerungExact = this.erinnerungExists ? this.getErinnerunAsFormattedStringExact() : ''\n\n    this.updateStats(document)\n\n    Aeppic.watch(document, doc => this.updateStats(doc))\n  }\n\n  updateStats(doc) {\n    const closed = doc.data.lesebestaetigungenGelesen\n    const all  = doc.data.lesebestaetigungenGesamt\n    const open = doc.data.lesebestaetigungenUngelesen\n\n    const percentile = 100 / all\n    locals.parts = [{\n      percent: closed ? percentile * closed : 0,\n      weight: closed,\n      label: 'Gelesen',\n      value: closed,\n      color: 'lime-500',\n      textColor: 'lime-700',\n    },\n    { \n      percent: open ? 100 - (percentile * open) : 0,\n      weight: open,\n      label: 'Ungelesen',\n      value: open,\n      color: 'neutral-300',\n      textColor: 'neutral-700',\n    }] \n  }\n\n  getErinnerunAsFormattedStringDisplay() {\n    const duration = Aeppic.DateTimeDuration.fromObject(data.erinnerung).shiftTo('days', 'hours', 'minutes')\n    if (duration.days === 0) {\n      return duration.toFormat(\"hh'h':mm'h'\")\n    }\n    if (duration.hours === 0) {\n      return duration.toFormat(\"d'd'\")\n    }\n    duration.toFormat(\"d'd':hh'h'\")\n  }\n\n  getErinnerunAsFormattedStringExact() {\n    const duration = Aeppic.DateTimeDuration.fromObject(data.erinnerung).shiftTo('days', 'hours', 'minutes')\n    const formatString = duration.days > 0 ? \"dd'd':hh'h':mm'm'\" : \"hh'h':mm'm'\"\n    return duration.toFormat(formatString) \n  }\n\n  get erinnerungExists() {\n    return data.erinnerung && Object.values(data.erinnerung).length\n  }\n}","css":"","description":"","name":"rd:card-inner","packages":[],"template":"<div class=\"flex gap-2 items-center flex-wrap\" @click.stop=\"$emit('selected', document)\">\n\n  <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n             @selected=\"$refs.doneCommand.$emit('force-show', '44e1c81f-8d3d-4a09-b035-85dd85727b75')\"\n             :param-icon=\"data.erledigt ? 'far fa-check-circle text-lime-500' : 'far fa-circle'\"\n             param-title=\"Erledigt umschalten\"\n  ></ae-layout>\n\n  <ae-design class=\"w-72\"  name=\"title\" :document=\"document\"></ae-design>\n\n  <div class=\"flex-1\"></div>\n\n\n  <div v-if=\"controller.erinnerungExists\" class=\"flex items-center\" :title=\"'Erinnerung nach ' + locals.erinnerungExact\">\n    <ae-icon class=\"far fa-clock\"  style=\"margin-right: var(--ae-space-1);\"></ae-icon>\n    {{ locals.erinnerung }}\n  </div>\n\n  <ae-layout layout-id=\"101e5b7e-208a-42e3-951a-ee305efd3758\"\n              :param-parts=\"locals.parts\"\n              :param-show-value-label=\"true\"\n              :xparam-debug=\"true\"\n              class=\"w-36 min-w-36 mx-2 self-start my-1\"\n  ></ae-layout>\n\n  <div v-if=\"data.versendetAm\" class=\"mr-4 w-28 min-w-28 flex justify-end truncate\" :title=\"Aeppic.DateTime.fromISO(data.versendetAm).toLocaleString(Aeppic.DateTime.DATETIME_SHORT)\">\n    {{ Aeppic.DateTime.fromISO(data.versendetAm).toRelativeCalendar() }}\n  </div>\n\n  <div :title=\"data.versendet ? 'Versendet': 'Entwurf'\">\n    <ae-icon v-if=\"data.versendet\" class=\"far fa-paper-plane\"></ae-icon>\n    <ae-icon v-else class=\"far fa-envelope-open-text\"></ae-icon>\n  </div>\n\n  \n</div> \n\n<ae-layout layout-id=\"c80364ed-8a1f-40fa-a169-5cc7b45d4fb4\"\n          :param-document=\"document\"\n          :param-commands=\"['44e1c81f-8d3d-4a09-b035-85dd85727b75']\"\n          v-show=\"false\"\n          ref=\"doneCommand\"\n></ae-layout>"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"eef6c8fa-f531-40ec-8d6d-c573587dcf5b","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-03-31T08:24:44+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"p":"94886126-c88d-4ea0-b088-8ea5ad155b08","previous":{"v":"637e2eff81a1a804"},"stamps":[],"t":1774945484396,"v":"7bfbacf6c98ee625"},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","50c3c7c5-c3d4-460c-b34d-0d61a4cb09ae"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2023-06-15T12:50:46+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1734345968204,"data":{"aliases":[],"controller":"class Controller {\n  init() {\n    locals.numberByCategory = {\n      'ZERO': 0,\n      'ONE': 1,\n      'TWO': 2,\n      'THREE': 3,\n    }\n    locals.colorByCategory = {\n      'ZERO': 'text-gray-600',\n      'ONE': 'text-lime-600',\n      'TWO': 'text-orange-600',\n      'THREE': 'text-rose-600',\n    }\n  }\n}","css":"","description":"","name":"rd:card-inner","packages":[],"template":"<div class=\"flex gap-1 flex-col overflow-hidden\"\n    @click.stop=\"$emit('selected', document)\" \n    :data-test=\"'design_rd-card_' + document.f.text\"\n>\n  <div class=\"w-full flex gap-2 overflow-hidden\">\n    <div class=\"flex-1 flex flex-col overflow-hidden\">\n      <div class=\"flex gap-2 items-center w-full\">\n        <div class=\"relative w-[18px] h-[18px] flex items-center justify-center\" \n              :class=\"locals.colorByCategory[data.category] || 'text-neutral-400'\"\n              title=\"Kategorie nach GBV ITM\"\n        >\n          <ae-icon class=\"far fa-circle text-lg absolute\"></ae-icon>\n          <div class=\"text-xs font-bold\" >\n          {{locals.numberByCategory[data.category] != null ? locals.numberByCategory[data.category] : '-' }}\n          </div>\n        </div>\n        <div class=\"w-20\">\n          {{ data.inventoryNumberTitle }}\n        </div>\n      </div>  \n\n\n      <div class=\"flex flex-col w-full overflow-hidden\">\n        <div v-if=\"data.systemName\" class=\"font-bold truncate\">\n          {{ data.systemName }}\n        </div> \n        <div v-else class=\"italic truncate\">\n          Kein Systemname\n        </div>\n \n        <div class=\"flex gap-2 items-center overflow-hidden\">\n          <div class=\"text-xs truncate flex-1\" v-if=\"data.internalName\">\n            ({{ data.internalName }})\n          </div>\n  \n          <div v-if=\"data.manufacturer\" class=\"min-w-20 justify-end flex items-center gap-1 overflow-hidden\">\n            <ae-design name=\"title\" :document=\"mf\" v-for=\"mf of data.manufacturer\"></ae-design>\n          </div>\n          <div v-else class=\"italic\">\n            Kein Hersteller\n          </div>\n        </div>\n      </div>\n    </div>\n    \n    <!-- <div class=\"flex-1\"></div>    -->\n\n    <ae-design class=\"\" name=\"rd:workflow-stamps\" :document=\"document\" param-workflow-definition-id=\"974a8580-3e16-42f5-96aa-d73216190e89\"></ae-design>\n  </div>\n  \n  <div class=\"flex gap-2 text-sm text-neutral-600 \">\n    <div v-if=\"data.locations.length\" class=\"flex gap-1 items-center overflow-hidden\" title=\"Standorte\">\n      <ae-icon class=\"far fa-map-pin\"></ae-icon>\n      <div v-for=\"(location, locationIndex) of data.locations\" class=\"flex\"> \n        <ae-design \n                  :document-id=\"location.id\"\n                  name=\"title\"\n        ></ae-design> \n        <span v-if=\"locationIndex < data.locations.length - 1\">;</span>\n      </div> \n    </div>\n\n    <div class=\"flex-1\"></div>\n\n    <ae-design class=\"shrink-0\" name=\"rd:creation-info\" :document=\"document\"></ae-design>\n  </div>\n</div>\n "},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"f2e2f6f4-f31a-408d-ad91-c482fe2552d3","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-02-09T15:01:29+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"p":"50c3c7c5-c3d4-460c-b34d-0d61a4cb09ae","previous":{"v":"0add01e0432f1f90"},"stamps":[],"t":1770649289434,"v":"b29c919b5ddc3ac2"},{"a":["apps","45ada186-e9fd-451d-9dbd-2defc0b4f86f","4ec6a0e5-cf2d-4095-9b70-2e31a64d5679","a04c8913-db48-4e80-b20d-0f3cc17a778c"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2023-10-11T13:31:49+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1697031109075,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:card-inner","packages":[],"template":"<div class=\"flex gap-2 relative\" @click.stop=\"$emit('selected', document)\">\n  <span v-if=\"document.locks?.length > 0\" class=\"text-xs absolute left-0 top-0 z-10\" title=\"Dieser Ordner hat Zugriffsverwaltung.\">\n    <ae-icon class=\"fad fa-lock-open\"></ae-icon>\n  </span>\n\n  <ae-design name=\"rd:icon\" :document=\"document\"></ae-design>\n  <ae-design name=\"title\" :document=\"document\"></ae-design> \n</div>\n"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"f39fdb90-68f4-485c-a1a7-f68bd7faa4d1","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-02-09T15:01:58+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"p":"a04c8913-db48-4e80-b20d-0f3cc17a778c","previous":{"v":"5f26d9abffdca79e"},"stamps":[],"t":1770649318493,"v":"e92d5e1af932c9b8"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","33e3b54d-6b4b-4aa3-8f70-2b834b27bf66"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"4165d5a3-3760-421f-ada5-f50cbe2468d7","text":"rd:card","v":"64020c37e706e945"},"created":{"at":"2026-01-28T14:36:04+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"ct":1769610964873,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.area = null\n    locals.actions = params.actions\n    if (Array.isArray(data.area) && data.area.length > 0) {\n      locals.area = await Aeppic.get(data.area[0])\n    }\n    locals.icon = (await Aeppic.getFormForDocument(document))?.data.namedIcon || ''\n  }\n\n  get hiddenClasses() {\n    return \"hidden @[200px]:block\"\n  }\n\n  get reverseHiddenClasses() {\n    return \"@[200px]:hidden block\"\n  }\n\n  \n}","css":"","description":"","name":"rd:card-inner","packages":[],"template":"<div \n  class=\"flex gap-1 items-center size-full @container\" \n  @click.stop=\"$emit('selected', document)\"\n>\n  <div :class=\"[controller.reverseHiddenClasses]\">\n    <ae-icon :class=\"[locals.icon]\"></ae-icon>\n  </div>\n  \n  <div :class=\"controller.hiddenClasses\">\n    <ae-design\n      class=\"size-full\"\n      :document=\"document\"\n      name=\"rd:thumbnail\"\n      :params=\"{width: '60px', height: '60px'}\"\n      :param-hide-name=\"true\"\n    ></ae-design>\n  </div>\n\n  <div class=\"flex flex-col justify-center ml-1 overflow-hidden\">\n    <ae-design\n      :document=\"document\"\n      name=\"title\"\n    ></ae-design>\n    \n    <ae-design\n      v-if=\"Array.isArray(data.area) && data.area.length > 0\"\n      class=\"text-xs text-gray-500 truncate\"\n      :document-id=\"data.area[0].id\"\n      name=\"title\"\n    ></ae-design>\n  </div>\n  <div \n    v-if=\"params.showActions\"\n    class=\"ml-auto flex gap-1 items-center\"\n  >\n    <ae-layout\n      layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n      param-icon=\"far fa-clone\" \n      param-classes=\"\"\n      param-text=\"Duplizieren\"\n      param-border=\"border-slate-200\"\n    ></ae-layout>\n    <ae-layout\n      layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n      param-icon=\"far fa-trash\" \n      param-classes=\"\"\n      param-text=\"\"\n      param-border=\"border-slate-200\"\n    ></ae-layout>   \n  </div>\n</div>"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"f4bc127c-d479-4154-b487-9f8bd4f0e29f","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-02-09T14:30:46+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"4165d5a3-3760-421f-ada5-f50cbe2468d7","text":"rd:card","v":"64020c37e706e945"},"p":"33e3b54d-6b4b-4aa3-8f70-2b834b27bf66","previous":{"v":"ba85d08bffa669d8"},"stamps":[],"t":1770647446744,"v":"dc5cc7f2f8ffa7da"},{"a":["apps","b91e3079-75ae-49cd-981b-3053bf47208c","e7a0be94-cd94-4210-875e-0cceb7e8bc6c","86966584-6ee3-4351-8e6e-ff6e695b970a"],"a_depth":4,"a_forms":["folder","application-form","folder","form"],"cloneOf":{"id":"15eb7352-279f-4432-8633-8885faec9763","text":"news-card","v":"6449270e25e849d4"},"created":{"at":"2022-10-24T11:31:45+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1765800479407,"data":{"aliases":[],"controller":"class Controller {\r\n  async init() {\r\n    this.publishStampId = '04a939a8-6732-4f94-ad75-6f17ac417136'\r\n\r\n    locals.EMPTY_EDITOR_CONTENT_JSONSTRINGIFIED = '{\"type\":\"doc\",\"content\":[{\"type\":\"paragraph\"}],\"tiptapVersion\":\"2.x\"}'\r\n\r\n    locals.heroImageUrl = ''\r\n    locals.heroOffsetY = 0\r\n    locals.ancestors = []\r\n    // locals.heroImage = this.findHeroImage()\r\n\r\n    // TODO: reenable if needed\r\n    locals.heroImageUrl = this.findHeroImageUrl()\r\n    locals.truncate = true\r\n\r\n    locals.commentCount = 0\r\n\r\n    locals.ancestors = await Aeppic.getAll(document.a)\r\n    locals.profileCreated = await Aeppic.getProfilePageForAccount(document.created.by)\r\n    locals.profileModified = await Aeppic.getProfilePageForAccount(document.modified.by)\r\n    locals.group = await Aeppic.get(document.p)\r\n    locals.feedCreated = await Aeppic.get(document.created.by)\r\n    await this.commentStatisticsWatch()\r\n  }\r\n\r\n  mounted() {\r\n    const targetScope = `designName:rd:card,documentId:${document.id}`\r\n\r\n    SharedContext.set(targetScope, 'cardParams', {\r\n      backgroundColorClass: 'bg-neutral-50',\r\n    })\r\n  }\r\n\r\n  sortComment(a,b) {\r\n    return a.modified.at.localeCompare(b.modified.at)\r\n  }\r\n\r\n  findHeroImageUrl() {\r\n    if (data.cover?.dataUrl) {\r\n      return Aeppic.Content.getThumbnailSrc(document, 'cover', { width: 600, height: 400 })\r\n    }\r\n\r\n    try {\r\n      const beitrag = data.beitrag?.[0] === '{' && JSON.parse(data.beitrag)\r\n\r\n      if (!beitrag) {\r\n        return  \r\n      }\r\n\r\n      for (const op of beitrag.ops) {\r\n        if (op.insert && op.insert.image) {\r\n          return op.insert.image \r\n        }\r\n      }\r\n    } catch (e) {}\r\n  }\r\n\r\n  get date() {\r\n    const dateSource = data.publikationsdatum ? data.publikationsdatum : document.created.at\r\n    const date = DateTime.fromISO(dateSource)\r\n\r\n    const diff = -date.diffNow('days').days.toFixed(0)\r\n\r\n    if (diff > 14) {\r\n      return date.toRelativeCalendar()\r\n    }\r\n\r\n    if (diff > 7) {\r\n      return date.toLocaleString(DateTime.DATETIME_MED)\r\n    }\r\n\r\n    if (diff === 0) {\r\n      return `heute, ${date.toLocaleString({ hour: '2-digit', minute: '2-digit' })}`\r\n    }\r\n\r\n    return date.toLocaleString({ hour: '2-digit', minute: '2-digit', weekday: 'long' })\r\n  }\r\n\r\n  get fullDate() {\r\n    const dateSource = data.publikationsdatum ? data.publikationsdatum : document.created.at\r\n\r\n    return DateTime.fromISO(dateSource).toLocaleString(DateTime.DATETIME_FULL)\r\n  }\r\n\r\n  displayComment(comment) {\r\n    // // FIXME: this is indented for development purposes only\r\n    // const robertsAccountId = '870fac1f-b0d7-4925-b191-a43166960419'\r\n    // if (Aeppic.Account && Aeppic.Account.data.allowDevMode && comment.created.by === robertsAccountId) {\r\n    //   return true\r\n    // }\r\n    // //\r\n\r\n    const commentHasNewForm = 'attachments' in comment.data\r\n\r\n    if (commentHasNewForm) {\r\n      return comment.stamps && comment.stamps.find(s => s.type && s.type.id === this.publishStampId)\r\n      // return comment.v !== 'initial'\r\n    }\r\n\r\n    return true\r\n  }\r\n\r\n  get hasContent() {\r\n    if (data.beitrag.startsWith('{\"ops\"')) {\r\n      return true\r\n    }\r\n\r\n    return data.beitrag.length > locals.EMPTY_EDITOR_CONTENT_JSONSTRINGIFIED.length\r\n  }\r\n\r\n  async commentStatisticsWatch() {\r\n    Aeppic.upgrade(document)\r\n    let statistic = null\r\n    try {\r\n      statistic = await Aeppic.resolve(document, 'AppComments-StatisticsForParent')\r\n\r\n      if (!statistic) {\r\n        return\r\n      }\r\n      \r\n      Aeppic.watch(statistic, (document) => {\r\n        locals.commentCount = document.data.count\r\n      })\r\n    } catch (error) {\r\n      return\r\n    }\r\n  }\r\n}","css":"._CSS-card {\r\n  display: flex;\r\n  border: var(--ae-border-width) solid var(--ae-border-color);\r\n  border-radius: var(--ae-border-radius);\r\n  justify-self: center;\r\n}\r\n\r\n._CSS-card--mobile {\r\n  flex-direction: column;\r\n  border: var(--ae-border-width) solid var(--ae-border-color);\r\n  border-radius: var(--ae-border-radius);\r\n}\r\n\r\n._CSS-card-details__userImg--mobile {\r\n  font-size: var(--ae-font-size-7);\r\n  margin: 0 var(--ae-size-2) 0 0;\r\n}\r\n\r\n._CSS-card-details__user {\r\n  display: flex;\r\n}\r\n\r\n._CSS-card-details__userName--mobile {\r\n  font-size: var(--ae-font-size-5); \r\n}\r\n\r\n._CSS-card-details__edit--mobile {\r\n  display: flex;\r\n  margin-left: var(--ae-size-5);\r\n}\r\n\r\n._CSS-card-details__edit {\r\n  display: flex;\r\n  align-self: baseline;\r\n  align-items: baseline;\r\n  padding: var(--ae-size-1);\r\n}\r\n\r\n._CSS-card-details__userImg {\r\n  font-size: var(--ae-font-size-7);\r\n}\r\n\r\n._CSS-card__details  {\r\n  background: var(--ae-background-100); \r\n  min-width: 0;\r\n  display: flex;\r\n  flex-direction: column;\r\n  align-items: center;\r\n  border-radius: var(--ae-border-radius) 0 0  var(--ae-border-radius);\r\n}\r\n\r\n\r\n\r\n._CSS-card__main {\r\n  background: var(--ae-ui-background);\r\n  flex: 3;\r\n  width: 100%; \r\n  min-width: 0;\r\n  display: flex;\r\n  flex-direction: column;  \r\n  padding: var(--ae-size-2) var(--ae-size-2);\r\n  border-radius: var(--ae-border-radius);\r\n}\r\n\r\n._CSS-card-details__newsgroup {\r\n  padding: var(--ae-size-10);\r\n}\r\n\r\n._CSS-card-main__newsgroup {\r\n  width: var(--ae-size-9);\r\n  border-radius: var(--ae-border-radius);\r\n  text-align: center;\r\n  padding: var(--ae-size-1);\r\n}\r\n\r\n\r\n._CSS-card__main--empty {\r\n  height: var(--ae-size-11);\r\n  border-radius: var(--ae-border-radius);\r\n}\r\n\r\n._CSS-card__main--empty--mobile {\r\n height: var(--ae-size-12);\r\n  border-radius: var(--ae-border-radius);\r\n}\r\n\r\n._CSS-cardArea {\r\n  width: 100%;\r\n}\r\n\r\n._CSS-cardArea ._CSS-cardArea--noContentNoComments{\r\n  display: flex; \r\n  justify-content: center;\r\n  \r\n  margin-left: auto;\r\n  margin-right: auto;\r\n}\r\n\r\n._CSS-commenter__indicator {\r\n  display:flex;\r\n  justify-content:flex-end;\r\n}\r\n\r\n._CSS-card-main-details__newsgroup {\r\n  width:100%;\r\n  border-radius: var(--ae-border-radius);\r\n  padding: var(--ae-size-2);\r\n  text-align: center; \r\n  font-size: var(--ae-font-size-6); \r\n}\r\n\r\n._CSS-commenter__area {\r\n  background:var(--ae-background-100);\r\n  border-radius: var(--ae-border-radius);\r\n  border: var(--ae-border-width) solid var(--ae-border-color);\r\n  display: flex;\r\n  align-items: center;\r\n  white-space: nowrap;\r\n  padding: 0;\r\n  overflow: hidden; \r\n  position: absolute;\r\n  height: var(--ae-size-7);\r\n  right: 0.8em;\r\n}\r\n\r\n._CSS-commenter__overflowLength {\r\n  opacity: var(--ae-opacity-2); \r\n  font-size: var(--ae-font-size-3);\r\n  font-weight: bold;\r\n}\r\n\r\n._CSS-commenter__area > * {\r\n  padding: var(--ae-size-1);\r\n}\r\n\r\n._CSS-commenter__icon {\r\n  opacity: var(--ae-opacity-2);\r\n  height: 100%;\r\n  width: 48px;\r\n  display: flex;\r\n  align-items: center;\r\n  justify-content: center;\r\n}\r\n\r\n._CSS-commenter__icon::after {\r\n  content: attr(data-count);\r\n  padding: var(--ae-size-1);\r\n  font-weight: bold;\r\n}\r\n\r\n._CSS-card__details {\r\n  background: var(--ae-background-100);\r\n  min-width: 0;\r\n  display: flex;\r\n  flex: 1;\r\n  flex-direction: column;\r\n  align-items: center;\r\n  border-radius: var(--ae-border-radius) 0 0  var(--ae-border-radius);\r\n}\r\n\r\n._CSS-card-details__content {\r\n  display: flex; \r\n  flex: 1; \r\n  max-width: 100%; \r\n  padding: var(--ae-size-1); \r\n  flex-direction: column;\r\n}\r\n\r\n._CSS-card__details--mobile {\r\n  background: var(--ae-background-100);\r\n  border-radius: var(--ae-border-radius) var(--ae-border-radius) 0 0;\r\n}\r\n\r\n._CSS-card__comments {\r\n  background: var(--ae-background-100);\r\n  width: 100%;\r\n  flex: 2;\r\n  min-width: 0px;\r\n  border-radius: 0 var(--ae-border-radius) var(--ae-border-radius) 0;\r\n  max-height: 370px;\r\n  overflow: hidden;\r\n  position: relative;\r\n  display: flex;\r\n  flex-direction: column;\r\n  z-index: 0;\r\n  padding: var(--ae-size-4) var(--ae-size-2);\r\n}\r\n\r\n._CSS-card__comments:after{\r\n  content: \"\";\r\n  height: var(--ae-size-10);\r\n  position: absolute;\r\n  bottom: 0;\r\n  flex: 1;\r\n  width: 100%;\r\n  background: linear-gradient(rgba(255, 255, 255, 0), var(--ae-background-100));\r\n  border-radius: 0 0 var(--ae-border-radius) 0;; \r\n  justify-self: flex-end;\r\n  z-index: 3;\r\n}\r\n\r\n._CSS-card-details__userName {\r\n  padding: var(--ae-size-1);\r\n  white-space: nowrap;\r\n  overflow: hidden;\r\n  text-overflow: ellipsis; \r\n}\r\n\r\n._CSS-card-details__userName--editor {\r\n  white-space: nowrap;\r\n  overflow: hidden;\r\n  text-overflow: ellipsis;\r\n}\r\n\r\n._CSS-card-details__date--mobile {\r\n  width: 100%;\r\n  text-align: center;\r\n}\r\n\r\n._CSS-card-details__date {\r\n  padding: 0 0 var(--ae-size-6) 0;\r\n  justify-self: center;\r\n  align-self: center;\r\n}\r\n\r\n._CSS-card-main__details {\r\n  display: flex; \r\n  align-items: baseline;\r\n  min-height: var(--ae-size-6);\r\n}\r\n\r\n._CSS-card-main__details--mobile {\r\n  min-height: var(--ae-size-8);\r\n  flex-direction: column; \r\n}\r\n\r\n._CSS-card-main__title--empty {\r\n  color: var(--ae-background-300);\r\n}\r\n\r\n._CSS-card-main__title,._CSS-card-main__title--empty {\r\n  font-size: var(--ae-font-size-6);\r\n  font-weight: bolder;\r\n  white-space: nowrap;\r\n  overflow: hidden;\r\n  text-overflow: ellipsis;\r\n  width: 100%;\r\n}\r\n\r\n._CSS-card-main__content {\r\n  overflow: hidden; \r\n  position: relative;\r\n  padding: var(--ae-size-1) 0;  \r\n}\r\n\r\n._CSS-card-main__content--empty {\r\n  color: var(--ae-background-300);\r\n  display: flex;\r\n  flex-direction: column; \r\n  justify-content: center;\r\n  align-items: center;\r\n  height: 100%;\r\n  min-height: var(--ae-size-7);\r\n}\r\n\r\n._CSS-card-main__content:after {\r\n  width: 100%;\r\n  background: linear-gradient(rgba(255,255,255,0), var(--ae-ui-background));\r\n  content: \"\";\r\n  font-size: var(--ae-font-size-12);\r\n  position: absolute;\r\n  bottom: 0;\r\n  height: var(--ae-size-8);\r\n  text-align: center;\r\n}\r\n\r\n._CSS-card-comment+._CSS-card-comment {\r\n  margin-top: var(--ae-size-3); \r\n}\r\n\r\n._CSS-card-comment {\r\n  background: var(--ae-ui-background);\r\n  border: var(--ae-border-width) solid  var(--ae-border-color);\r\n  border-radius: var(--ae-border-radius);\r\n  padding-top: var(--ae-size-1);\r\n  width: 80%;\r\n}\r\n\r\n._CSS-card-comment--creator {\r\n  align-self: flex-end;\r\n}","description":"","name":"rd:card-inner","packages":[],"parameters":["expand"],"parametersCardinalities":[" "],"parametersControls":[" "],"parametersDescriptions":["Expands the card to display almost all of it's content"],"parametersTypes":["boolean"],"template":"<div  v-if=\"params.expand\"\r\n      @click.stop=\"$emit('selected', document)\" \r\n      class=\"flex flex-col gap-2\"\r\n>\r\n  <section class=\"flex gap-2 items-center overflow-hidden\">\r\n    <ae-layout layout-id=\"ffd34105-fa6a-44f5-aa63-64923233f178\"\r\n                :param-employees=\"[document.created.by, document.modified.by]\"\r\n                class=\"text-5xl\"\r\n    ></ae-layout>\r\n\r\n    <div class=\"flex flex-col overflow-hidden\"> \r\n      <div class=\"text-xs\">\r\n        <ae-design name=\"profile-title\" :document-id=\"document.created.by\"></ae-design>\r\n        <ae-design v-if=\"document.created.by !== document.modified.by\" name=\"profile-title\" :document-id=\"document.modified.by\"></ae-design>\r\n      </div>\r\n      <div class=\"flex gap-2 items-center\">\r\n        <ae-design name=\"rd:icon\" :document-id=\"document.p\"></ae-design>\r\n        <ae-design name=\"title\" :document-id=\"document.p\"></ae-design> \r\n      </div>\r\n    </div>\r\n\r\n    <div class=\"flex-1\"></div>\r\n\r\n    <div class=\"text-neutral-500\" :title=\"controller.fullDate\">\r\n      {{ controller.date }}\r\n    </div> \r\n  </section>\r\n\r\n  <section v-if=\"locals.heroImageUrl\" class=\"p-2 flex justify-center\"> \r\n    <div class=\"rounded-md shadow-inner h-[200px] w-[300px] bg-no-repeat bg-center bg-cover\" :style=\"{ backgroundImage: 'url(' + locals.heroImageUrl + ')' }\"></div>\r\n  </section>\r\n  \r\n  <div v-if=\"data.name.trim()\" class=\"mt-3 font-bold text-2xl\" :class=\"{ 'text-lg': !params.expand }\">\r\n    {{data.name.trim() }}\r\n  </div>\r\n\r\n \r\n  <section class=\"max-h-[600px] overflow-hidden\">  \r\n    <div v-if=\"controller.hasContent\" class=\"relative\"> \r\n      <ae-control v-if=\"controller.hasContent\" name=\"rd:editor-content\" :document=\"document\" :readonly=\"true\" field-name=\"beitrag\"></ae-control>\r\n      <div class=\"h-[600px] bg-gradient-to-b from-transparent via-transparent to-white absolute top-0 right-0 left-0 bottom-0\"\r\n      ></div>\r\n    </div>\r\n    <div v-else class=\"italic flex gap-1 items-center\">\r\n      <ae-icon class=\"far fa-empty-set\"></ae-icon>\r\n      <div>Dieser Beitrag hat keinen Inhalt</div>\r\n    </div>\r\n  </section>\r\n\r\n  <section class=\"flex items-center\">\r\n    <div :class=\"[!locals.commentCount && 'text-neutral-500']\">\r\n      <ae-icon class=\"far fa-comment\"></ae-icon>\r\n      {{ locals.commentCount }}\r\n    </div>\r\n\r\n    <div class=\"flex-1\">\r\n    </div>\r\n\r\n    <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\r\n                param-text=\"Zum Beitrag\"\r\n                @selected=\"$emit('selected', document)\"\r\n    ></ae-layout>  \r\n\r\n  </section>\r\n</div> \r\n<div v-else\r\n    @click.stop=\"$emit('selected', document)\" \r\n    class=\"flex flex-col gap-1 h-full bg-neutral-50  rounded-md dark:bg-slate-700 hover:bg-slate-100 dark:hover:bg-slate-600 cursor-pointer\"\r\n>\r\n  <section class=\"flex flex-col p-2 gap-1\">\r\n    <div class=\"flex gap-2\">\r\n      <ae-design class=\"bg-white dark:bg-slate-700 border border-slate-200 rounded-md px-3 self-center w-auto xtext-neutral-600 overflow-x-hidden\" name=\"title\" :document=\"document\"></ae-design>\r\n\r\n      <div class=\"flex-1\"></div>\r\n\r\n\r\n      <!-- <section class=\"truncate flex-1 font-bold\">\r\n        {{data.name.trim() }}\r\n      </section> -->\r\n\r\n        <ae-design name=\"avatar--resizes-with-font\" :document-id=\"document.created.by\"\r\n                  class=\"text-lg\" \r\n      ></ae-design>\r\n    </div>\r\n\r\n\r\n  </section>\r\n\r\n  <section class=\"p-2\" v-if=\"locals.heroImageUrl\">\r\n    <div class=\"rounded-md shadow-inner h-[100px] bg-no-repeat bg-center bg-cover\" :style=\"{ backgroundImage: 'url(' + locals.heroImageUrl + ')' }\"></div>\r\n  </section>\r\n\r\n  <!-- <div v-if=\"locals.heroImageUrl\" class=\"shadow-inner h-[150px] bg-no-repeat bg-center bg-cover rounded-t-md\" :style=\"{ backgroundImage: 'url(' + locals.heroImageUrl + ')' }\"></div>\r\n  <div v-else class=\"bg-gradient-to-r from-violet-50 to to-sky-50\">\r\n    <div  class=\"p-6 shadow-inner h-[150px] bg-no-repeat bg-center bg-cover rounded-t-md bg-clip-text text-transparent bg-gradient-to-r from-sky-500 to-violet-500\">\r\n      <div class=\"font-bold text-lg text-ellipsis h-full w-full\">\r\n        {{ data.name.trim() }}         \r\n      </div>\r\n    </div>\r\n  </div> -->\r\n\r\n  <!-- <div class=\"flex items-center gap-2 p-1\"> -->\r\n    <!-- <ae-design name=\"avatar--resizes-with-font\" :document-id=\"document.created.by\"\r\n                class=\"text-2xl\" \r\n    ></ae-design>\r\n\r\n    <div class=\"flex flex-col\">\r\n      <ae-design name=\"profile-title\" :document-id=\"document.created.by\" class=\"font-semibold\"></ae-design>\r\n\r\n      <div class=\"text-xs text-neutral-500\" :title=\"controller.fullDate\">\r\n          {{ controller.date }}\r\n      </div>\r\n    </div>  -->\r\n\r\n    \r\n\r\n    <!-- <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\r\n                param-title=\"Zum Beitrag\"\r\n                param-icon=\"far fa-external-link\"\r\n                @selected=\"$emit('selected', document)\"\r\n    ></ae-layout>    -->\r\n  <!-- </div> -->\r\n\r\n  <!-- <section class=\"font-bold truncate px-2\">\r\n    {{data.name.trim() }}\r\n  </section> -->\r\n  <section v-if=\"'beitragText' in data\" class=\"py-1 px-2 min-h-[50px] overflow-hidden m-1 bg-white dark:bg-slate-600 rounded-md flex-1\">\r\n    <div class=\"relative\" v-if=\"controller.hasContent\">\r\n      {{ data.beitragText.slice(0, 120).trim() }}<template v-if=\"data.beitragText.length > 120\">...</template>\r\n    </div>\r\n    <div v-else class=\"italic flex gap-1 items-center text-neutral-500 dark:text-neutral-300\">\r\n      <ae-icon class=\"far fa-empty-set\"></ae-icon>\r\n      <div>Keinen Inhalt</div>\r\n    </div>\r\n  </section>\r\n  <section v-else-if=\"'beitragHtml' in data\" class=\"py-1 px-2 min-h-[50px] overflow-hidden m-1 bg-white dark:bg-slate-600 rounded-md flex-1\">\r\n    <div class=\"relative\" v-if=\"controller.hasContent\">\r\n      <div data-html v-html=\"data.beitragHtml.slice(0, 100) + (data.beitrag.length > (locals.EMPTY_EDITOR_CONTENT_JSONSTRINGIFIED.length + 100) ? '...' : '' )\">\r\n      </div>\r\n    </div>\r\n    <div v-else class=\"italic flex gap-1 items-center text-neutral-500 dark:text-neutral-300\">\r\n      <ae-icon class=\"far fa-empty-set\"></ae-icon>\r\n      <div>Keinen Inhalt</div>\r\n    </div>\r\n  </section>\r\n  <section v-else class=\"py-1 px-2 min-h-[50px] overflow-hidden m-1 bg-white dark:bg-slate-600 rounded-md flex-1\">\r\n    <!-- document of old form with only data.beitrag -->\r\n    <div class=\"italic\">Vorschau auf Inhalt kann nicht abgerufen werden.</div>\r\n  </section>\r\n\r\n\r\n  <!-- <section class=\"flex-1\"></section> -->\r\n\r\n  <section class=\"p-1\">\r\n    <div class=\"flex gap-1 items-center\">\r\n      <ae-design name=\"rd:icon\" :document-id=\"document.p\"></ae-design>\r\n      <ae-design class=\"text-xs\" name=\"title\" :document-id=\"document.p\"></ae-design>\r\n\r\n      <div class=\"flex-1\"></div>\r\n\r\n      <div class=\"shrink-0 text-xs mr-1\" :class=\"[!locals.commentCount && 'text-neutral-500 dark:text-neutral-300']\">\r\n        <ae-icon class=\"far fa-comment\"></ae-icon>\r\n        {{ locals.commentCount }}\r\n      </div>\r\n\r\n\r\n      <div class=\"shrink-0 text-xs text-neutral-500 dark:text-neutral-300\" :title=\"controller.fullDate\">\r\n        {{ controller.date }}\r\n      </div>\r\n    </div>\r\n  </section>\r\n\r\n  <!-- <section class=\"flex justify-end absolute bottom-1 right-1\">\r\n    <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\r\n                param-title=\"Zum Beitrag\"\r\n                param-icon=\"far fa-external-link\"\r\n                @selected=\"$emit('selected', document)\"\r\n                class=\"text-sm\"\r\n    ></ae-layout>   \r\n  </section> -->\r\n\r\n  <!-- <div class=\"flex items-center gap-1\">\r\n    <ae-design name=\"rd:icon\" :document-id=\"document.p\" class=\"w-8\"></ae-design>\r\n\r\n    <div xv-if=\"data.name.trim()\" class=\"font-bold truncate\">\r\n      {{data.name.trim() }}\r\n    </div>\r\n  </div>\r\n\r\n  <div  v-if=\"data.beitragHtml\"\r\n        v-html=\"data.beitragHtml\" \r\n        class=\"line-clamp-1\">\r\n  </div>\r\n\r\n  <div class=\"flex-1\"></div>\r\n\r\n  <div class=\"flex items-center gap-1 \">\r\n    <ae-layout layout-id=\"ffd34105-fa6a-44f5-aa63-64923233f178\"\r\n                :param-employees=\"[document.created.by, document.modified.by]\"\r\n                class=\"text-lg w-8\"\r\n    ></ae-layout>\r\n\r\n    <div class=\"text-neutral-500\" :title=\"controller.fullDate\">\r\n      {{ controller.date }}\r\n    </div>\r\n  </div> -->\r\n</div>\r\n"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"fda47c11-c88b-4c02-ac2e-960e1d230a25","inheritedLocks":[null,null,null,null,null],"locks":[],"meta":{},"modified":{"at":"2026-02-10T08:51:05+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"15eb7352-279f-4432-8633-8885faec9763","text":"news-card","v":"6449270e25e849d4"},"p":"86966584-6ee3-4351-8e6e-ff6e695b970a","previous":{"v":"9489f0006a40a405"},"stamps":[],"t":1770713465328,"v":"87536c49a4b6359c"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","5011479f-3ef7-4c66-810b-3bb65f992712"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"52776936-ee0e-472b-b037-50303c68643e","text":"rd:subtitle","v":"631b5a852f46be6b"},"created":{"at":"2026-01-16T14:25:25+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"ct":1768573525989,"data":{"aliases":[],"controller":"class Controller {\n  init() {\n    locals.isActive = this.isActive() \n  }\n\n  isActive() {\n    if (!data.active) {\n      return { active: false, readable: 'Planung deaktiviert' }\n    }\n\n    if (data.interval === 'MANUAL') {\n      return { active: true, readable: 'Manuelle Planung' }\n    }\n\n    if (data.from) {\n      const fromDateTime = Aeppic.DateTime.fromISO(data.from)\n      const fromOk = fromDateTime.diffNow().milliseconds <= 0 \n      \n      if (data.to) {\n        const toDateTime = Aeppic.DateTime.fromISO(data.to)\n        const toOk = toDateTime.diffNow().milliseconds >= 0\n\n        const active = fromOk && toOk\n        return {\n          active: active,\n          inFuture: !fromOk && toOk,\n          inPast: fromOk && !toOk,\n          readable: `Aktiv (${active ? 'Ja' : 'Nein'}) von: ${fromDateTime.toLocaleString()} - ${toDateTime.toLocaleString()}`\n        }\n      }\n\n      return { active: fromOk, inFuture: true, readable: `Erst aktiv ab:${fromDateTime.toLocaleString()}` }\n    }\n\n    return { active: false, readable: '' }\n  }\n}  ","css":"","description":"","name":"rd:card-left-decorator","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<div class=\"min-h-full flex gap-2 relative flex-wrap\" :class=\"{ 'text-red-500': data.facilities.length === 0 }\">\n  <div\n    :title=\"'Status der Planung: ' + locals.isActive.readable\"\n    class=\"min-h-full w-2 rounded-md\"\n    :class=\"{ \n        'bg-lime-500': locals.isActive.active && !locals.isActive.inFuture && !locals.isActive.inPast, \n        'bg-red-500': !locals.isActive.active && !locals.isActive.inPast, \n        'bg-amber-500': !locals.isActive.active && locals.isActive.inPast, \n        'bg-teal-500': locals.isActive.inFuture,\n    }\"\n  ></div>\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"b45d2075-add0-4b4c-b508-ea8c7c1489a2","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-01-16T14:59:34+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"52776936-ee0e-472b-b037-50303c68643e","text":"rd:subtitle","v":"631b5a852f46be6b"},"p":"5011479f-3ef7-4c66-810b-3bb65f992712","previous":{"v":"ba1036da489c782c"},"stamps":[],"t":1768575574660,"v":"0d8c53a5f2e260c7"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","33e3b54d-6b4b-4aa3-8f70-2b834b27bf66"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2026-01-19T10:43:35+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"ct":1768819415675,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:card-right-decorator","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<div class=\"flex items-stretch gap-1 h-full\">\n  <ae-design name=\"rd:vertical-bar\" v-for=\"label of data.labels\" :document-id=\"label.id\"></ae-design>\n</div>  "},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"4774d0df-ded3-473c-8bce-9665b9e6a176","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-01-19T11:28:32+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"p":"33e3b54d-6b4b-4aa3-8f70-2b834b27bf66","previous":{"v":"7637316ce27468f6"},"stamps":[],"t":1768822112906,"v":"f36338797ace063f"},{"a":["apps","59edbdbc-2cab-426a-bb42-6e57c5158e4f","3be7e887-1bcd-4c3c-979f-b20a986c4c48","bafd025c-6262-4e9e-8368-345cd3ccddbc"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2025-09-15T13:49:38+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1757944178964,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:card-with-popup","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<div>\n  <ae-layout\n    layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n    param-icon=\"far fa-info\"\n    :param-text=\"data.name\"\n    @selected=\"$refs.popup.show($event)\"\n    param-border=\"border border-neutral-200\"\n  ></ae-layout>\n\n  <ae-popup ref=\"popup\" placement=\"bottom\">\n    <div class=\"overflow-auto\">\n      <ae-control name=\"rd:editor\" :document=\"document\" field-name=\"text\" :readonly=\"true\"></ae-control>\n    </div>\n  </ae-popup>\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"cc14db7d-3ead-4c77-ba17-b88fee18cd49","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-09-16T15:08:38+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"bafd025c-6262-4e9e-8368-345cd3ccddbc","previous":{"v":"5230fcd641f1e59c"},"stamps":[],"t":1758035318251,"v":"98b0cd3f2e7921ac"},{"a":["apps","599db2de-4e07-4722-98bd-7f42d498b352","79718664-ed22-4b52-9c10-037881df3578","7be5f2c5-206b-4ab6-9d4d-c4834baf8e32"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2026-04-21T11:51:24+00:00","backedBy":"","by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":""},"ct":1776772284831,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Projekte: 'e46efc75-6f35-4c70-9bfb-d0317a53ed04',\n    }\n\n    locals.projects = await Aeppic.findOne(`p:${document.a[0]} f.id:${this.FORMS.Projekte}`)\n\n    if (locals.projects) {\n      Aeppic.navigateTo(locals.projects)\n    }\n  }\n}","css":"","description":"","name":"rd:CASTING","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":""},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"61d2e976-75a6-4c26-8fd9-81e34a1b2e6c","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-04-21T11:54:01+00:00","backedBy":"","by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":""},"p":"7be5f2c5-206b-4ab6-9d4d-c4834baf8e32","previous":{"v":"baece99da71e6185"},"stamps":[],"t":1776772441523,"v":"1bc35cb4a67d7ce9"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","02132d06-c73b-4101-bde0-2fe98224a35a"],"a_depth":3,"a_forms":["folder","application-form","design-folder"],"created":{"at":"2026-02-03T12:27:54+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"ct":1770121674348,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:children","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"\n<ae-design name=\"rd:page-list\"\n          :document=\"document\"\n          :params=\"{ ...params, design: 'rd:ref-card', scrollerHeight: 70 }\"\n          @selected=\"Aeppic.navigateTo($event, { tab: 'page-inner_default' })\"\n></ae-design>\n"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"92880541-7d0c-48ce-b659-5f7bf0a716fd","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2026-02-06T13:51:26+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"p":"02132d06-c73b-4101-bde0-2fe98224a35a","previous":{"v":"80a4cba745d91ee9"},"stamps":[],"t":1770385886547,"v":"00d944c371dd83ae"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","02132d06-c73b-4101-bde0-2fe98224a35a"],"a_depth":3,"a_forms":["folder","application-form","design-folder"],"cloneOf":{"id":"92880541-7d0c-48ce-b659-5f7bf0a716fd","text":"rd:children","v":"00d944c371dd83ae"},"created":{"at":"2026-02-18T14:05:53+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"ct":1771423553047,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:children--worker","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"\n<ae-design name=\"rd:page-list\"\n          :document=\"document\"\n          :params=\"{ \n            ...params, \n            design: 'rd:maintenance-card-inner',\n            scrollerHeight: 70 \n          }\"\n          v-on=\"$listeners\"\n></ae-design>\n"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"b17a4af4-db67-4bb7-80f0-6695f7aa48bf","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2026-02-20T09:21:58+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"92880541-7d0c-48ce-b659-5f7bf0a716fd","text":"rd:children","v":"00d944c371dd83ae"},"p":"02132d06-c73b-4101-bde0-2fe98224a35a","previous":{"v":"9a35e213c3d9d399"},"stamps":[],"t":1771579318516,"v":"e11a3b1aaaa47b11"},{"id":"bbc432e2-03a2-42ca-aa38-9ecb1783b44c","v":"dad33579af0d397c","previous":{"v":"d6650efb156b5ab8"},"p":"83c74f6a-fe5c-483e-a2ef-0498bd4aeff6","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:closed","template":"<div class=\"flex-1 mx-auto flex flex-col gap-4 w-full bg-white overflow-visible bg-white max-w-5xl px-4 py-2 my-2 xl:shadow-md xl:rounded-md\">\n  <div class=\"font-bold text-lg p-2\">\n    Beschlossene Anträge\n  </div>\n\n  <ae-list  list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\"\n            :root-document-id=\"document.a[0]\"\n            :filter=\"locals.filter\"\n            :sort=\"locals.sort\"\n            param-design=\"rd:card\"\n            @selected=\"Aeppic.drillInto($event, arguments[1])\"\n            :param-divide=\"true\"\n            :param-enable-filter-bar=\"true\"\n            :param-disable-sort=\"true\"\n  ></ae-list>\n</div>  ","css":"","controller":"class Controller {\n  init() {\n    locals.filter = `f.id:0bb3d600-faf0-4a5c-b49f-7994d234ae76 (stamps.type:5d5d870e-7c5a-454e-8273-2c7e9f5f735f OR stamps.type:6ae60622-bf9f-4e59-bc31-5a240859be52)`\n    locals.sort = [\n      { field: 'data.creationTimestamp', descending: true },\n      { field: 'applicationNumber', descending: true },\n      { field: 'id' },\n    ]\n  }\n}\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-07-19T11:42:40+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-09-21T12:53:49+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1695300829089,"ct":1689766960892,"a_depth":4,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","83c74f6a-fe5c-483e-a2ef-0498bd4aeff6"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"c2b71f6a-fbe4-4fb9-89ed-122fba543a44","v":"77e61e43f8f9ca06","previous":{"v":"bcf882939091375c","p":"fallback-designs","a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"]},"p":"1cc4b977-c14d-4587-af47-d6ac230f60b3","f":{"id":"design-form","v":"22a757f630104010","text":"Design"},"data":{"name":"rd:cloud-save-watcher","template":"<ae-layout\n  layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n  :param-icon=\"locals.icon\"\n  param-border=\"border border-secondary-200\"\n  :param-title=\"locals.title\"\n  @selected=\"$refs.popup.show($event)\"\n></ae-layout>\n\n<ae-popup ref=\"popup\" placement=\"bottom\">\n  <div class=\"bg-white border rounded-md p-1\" :key=\"id(locals.icon)\">\n    <ae-design name=\"rd:creation-info\" :document=\"document\"></ae-design>\n  </div>\n</ae-popup>\n","css":"","controller":"class Controller {\n  init() {\n    // console.log('watch init', document.id)\n\n    this.icons = {\n      normal: 'far fa-check-circle text-neutral-600',\n      changed: 'far fa-circle-notch fa-spin text-red-600',\n      saved: 'far fa-check-circle text-lime-400',\n    }\n\n    this.titles = {\n      normal: 'Gespeichert',\n      changed: 'Änderungen werden gespeichert',\n      saved: 'Gespeichert',\n    }\n\n    locals.icon = this.icons.normal\n    locals.title = this.titles.normal\n\n    this.lastVersion = document.v\n    this.initialCall = true\n\n    if (!Aeppic.Account) { \n      return \n    }\n\n    this.watcher = Aeppic.watch(document, newDocument => {\n      // console.log('watch', newDocument.v, newDocument.modified.by, Aeppic.Account.id)\n\n      if (this.initialCall === true) {\n        this.initialCall = false\n        return\n      }\n \n      \n      // ignore if not modified by current user\n      if (newDocument.modified.by !== Aeppic.Account.id ) {\n        return \n      }\n      \n      const updateViaWebsocket = !!newDocument.t\n\n      // save is persisted to server if it is send back via websocket to user\n      if (updateViaWebsocket) {\n        // Aeppic.setTimeout(() => { \n        if (this.setChangedStateTimeout) {\n          Aeppic.clearTimeout(this.setChangedStateTimeout)\n        }\n\n          locals.icon = this.icons.saved\n          locals.title = this.titles.saved\n        // }, 4500)\n        return\n      }\n\n      if (this.lastVersion === newDocument.v) {\n        // not modified. skip\n        return\n      }\n\n      // console.log('watcher', 'changed')\n\n      this.setChangedStateTimeout = Aeppic.setTimeout(() => {\n        locals.icon = this.icons.changed\n        locals.title = this.titles.changed\n      }, 500)\n\n      this.lastVersion = newDocument.v\n      locals.counter += 1\n    })\n  }\n\n  destroy() {\n    this.watcher?.stop()\n    this.watcher = null\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2025-02-14T11:54:44+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2025-02-17T14:59:21+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1767870469078,"ct":1739534084281,"a_depth":3,"a":["apps","77ee8815-2c3a-4bb5-abd9-90541a545a24","1cc4b977-c14d-4587-af47-d6ac230f60b3"],"a_forms":["folder","application-form","design-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"meta":{"modified":{"at":"2026-01-08T11:07:49+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":"","impersonatedBy":"","from":"","client":"server"}}},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","fdfaf800-858a-4b45-91c9-5bdad7a63672"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2025-08-07T09:43:45+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1754559825062,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    this._chart = null\n\n    this.FORMS = {\n      Wartungsdurchfuehrung: '1b166603-d0f3-4f16-98c4-0534afbd6f5a',\n      Reparatur: '46a28dfa-7518-4867-9519-a5f4cd9b9967',\n      WartungenOrdner: 'fdfaf800-858a-4b45-91c9-5bdad7a63672',\n    }\n\n    locals.maintenancesYear = []\n    locals.repairsYear = []\n\n    locals.labels = []\n    locals.chartData = []\n    locals.backgroundColor = []\n    locals.borderColor = []\n    locals.teamStats = {\n      totalNumber: 0,\n      internalNumber: 0,\n      externalNumber: 0,\n    }\n\n    locals.documents = []\n\n\n    \n\n    const query = () => {\n      const base = 'p:' + document.id + ' f.id:' + this.FORMS.Wartungsdurchfuehrung\n\n      if (this.filter) {\n        return `${base} ${this.filter.trim()}`\n      }\n      return base\n    }\n\n    const maintenancesFolder = await Aeppic.find(`p:${document.a[0]} f.id:${this.FORMS.WartungenOrdner}`)\n    locals.queryForDashboard = Aeppic.Query.children(maintenancesFolder).form(this.FORMS.Wartungsdurchfuehrung)\n\n    Aeppic.subscribe(query(), { size: 99999 }, (newDocuments) => {\n      locals.documents = newDocuments\n      this.createDiagram(this._getStatistics(newDocuments))\n    })\n    \n    // NOTE: Semicolon must be before destructuring without declaration\n    ;[locals.maintenancesYear, locals.repairsYear] = await Promise.all([this.FORMS.Wartungsdurchfuehrung, this.FORMS.Reparatur].map(\n      form => {return Aeppic.find(this.createQueryYear(form), {size: 99999})}\n    ))\n \n    await Aeppic.nextRenderPass()\n\n    this.createDiagram(this._getStatistics(locals.documents))\n  }\n\n  createQueryYear(form) {\n    const now = DateTime.local()\n    const startDate = now.minus({ month: 12 })\n\n    return Aeppic.Query\n      .descendants(document.a[0])\n      .form(form)\n      // .where('created.at')\n      // .isInRange(startDate.toISO(), now.toISO())\n  }\n\n  _getStatistics(documents) {\n    const result = {\n      planned: 0,\n      started: 0,\n      aborted: 0,\n      done: 0,\n      acknowledged: 0,\n    }\n\n    documents.forEach(doc => {\n      if (doc) {\n        const workflowStatus = doc.data.workflowStatus\n\n        if (workflowStatus === \"PLANNED\") {\n          result.planned += 1\n        } else if (workflowStatus === \"STARTED\") {\n          result.started += 1\n        } else if (workflowStatus === \"CANCELED\") {\n          result.aborted += 1 \n        } else if (workflowStatus === \"COMPLETED\") {\n          result.done += 1\n        } else if (workflowStatus === \"ACKNOWLEDGED\") {\n          result.acknowledged += 1\n        }\n      }\n    })\n\n    return result\n  }\n\n  createDiagram(statistics) {\n    if (this._chart) {\n      this._chart.destroy()\n    }\n\n    locals.labels = []\n    locals.chartData = []\n    locals.backgroundColor = []\n    locals.borderColor = []\n\n    // fontawesome colors, border is 1 step up in palette\n    if (statistics.acknowledged > 0) {\n      locals.labels.push('Zur Kenntnis genommen')\n      locals.chartData.push(statistics.acknowledged)\n      locals.backgroundColor.push('#22c55e')\n      locals.borderColor.push('#16a34a')\n    }\n    if (statistics.done > 0) {\n      locals.labels.push('Abgeschlossen')\n      locals.chartData.push(statistics.done)\n      locals.backgroundColor.push('#93c5fd')\n      locals.borderColor.push('#3b82f6')\n    }\n    if (statistics.aborted > 0) {\n      locals.labels.push('Abgebrochen')\n      locals.chartData.push(statistics.aborted)\n      locals.backgroundColor.push('#f43f5e')\n      locals.borderColor.push('#f43f5e')\n    }\n    if (statistics.started > 0) {\n      locals.labels.push('Begonnen')\n      locals.chartData.push(statistics.started)\n      locals.backgroundColor.push('#cbd5e1')\n      locals.borderColor.push('#94a3b8')\n    }\n    if (statistics.planned > 0) {\n      locals.labels.push('Geplant')\n      locals.chartData.push(statistics.planned)\n      locals.backgroundColor.push('##d6d3d1')\n      locals.borderColor.push('#78716c')\n    }\n\n    this._chart = new Chart($refs.chartMaintenance, {\n      options: {\n        responsive: false,\n      },\n      type: 'pie',\n      data: {\n        labels: locals.labels,\n        datasets: [\n          {\n            data: locals.chartData,\n            backgroundColor: locals.backgroundColor,\n            borderColor: locals.borderColor,\n            borderWidth: 1,\n          },\n        ],\n      },\n    })\n  }\n\n  createDiagramDefs() {\n    const labels = []\n    const chartData = []\n    const backgroundColor = []\n    const borderColor = []\n\n    chartData.push(...locals.demo.wartungen.deficienciesPerMonthMaintenanceAverage)\n    labels.push('Jan', 'Feb', 'Mär', 'Apr', 'Mai', 'Jun')\n    // backgroundColor.push('#fbbf24', '#f87171', '#34d399', '#60a5fa', '#a78bfa', '#f472b6')\n    // borderColor.push('#f59e42', '#ef4444', '#059669', '#2563eb', '#7c3aed', '#be185d')\n    \n    this._chartDefs = new Chart($refs.chartDefs, {\n      options: {\n        responsive: false,\n      },\n      type: 'line',\n      data: {\n        labels: labels,\n        datasets: [\n          {\n            label: 'Durchschnittliche Mängel in Wartungen',\n            data: chartData,\n            backgroundColor: '#60a5fa',\n            borderColor: 'black',\n            borderWidth: 1,\n          },\n        ],\n      },\n    })\n  }\n\n  destroy() {\n    if (this._chart) {\n      this._chart.destroy()\n    }\n\n    if (this._chartDefs) {\n      this._chartDefs.destroy()\n    }\n  }\n}\n","css":"","description":"","name":"rd:cockpit","packages":[{"id":"4a6e27ae-e4a0-4e22-9997-b352899f86f5","text":"Chart.js","v":"c044548d5a0892ce"}],"template":"<div class=\"py-6\">\n  <div class=\"max-w-5xl mx-auto px-4 pb-4 xl:my-2 xl:shadow-md xl:rounded-md flex flex-col gap-10 p-2 bg-white\">\n    <section class=\"p-4 bg-neutral-50 rounded-md\">\n      <header class=\"font-bold text-lg truncate\">\n        <!-- Alle Wartungen von <ae-design name=\"title\" :document=\"document\" class=\"inline italic\"></ae-design> -->\n        Auswertungen\n      </header>\n\n      <div class=\"flex items-center\">\n        <canvas ref=\"chartMaintenance\" width=\"440\" height=\"200\"></canvas>\n\n        <div>\n          <div v-for=\"(label, index) of locals.labels\" class=\"flex gap-2 justify-between\">\n            <div :style=\"{ color: locals.borderColor[index] }\">{{ label}}</div>\n            <div>{{locals.chartData[index]}}</div>\n          </div>\n        </div>\n      </div>\n    </section>\n\n    <section class=\"relative my-4 flex flex-wrap gap-4\">\n\n      <section class=\"bg-neutral-50 rounded-md p-4 flex-1\">\n        <ae-layout\n          layout-id=\"54cd8d8e-5aa2-4823-8500-4db3d136b1f0\" \n          class=\"size-full\"\n          param-title=\"Wartung vs Reparatur: Monatlich\"\n          :param-months-to-show=\"12\"\n          :param-data-sets=\"[\n            {\n              documents: locals.maintenancesYear,\n              label: 'Wartungen',\n              backgroundColor: '#3b82f6', \n              borderColor: '#2563eb',\n            },\n            {\n              documents: locals.repairsYear,\n              label: 'Reparaturen',\n              backgroundColor: '#f97316',\n              borderColor: '#ea580c',\n            }\n          ]\"\n        ></ae-layout>\n      </section>\n\n      <section class=\"bg-neutral-50 rounded-md p-4 flex-1\">\n        <ae-layout \n          layout-id=\"653300e7-8af5-4ce4-964c-8c96a2c61fce\" \n          class=\"size-full\"\n          param-title=\"Wartung vs Reparatur: Wöchentlich\"\n          :param-weeks-to-show=\"12\"\n          :param-data-sets=\"[\n            {\n              documents: locals.maintenancesYear,\n              label: 'Wartungen',\n              backgroundColor: 'rgba(66, 135, 245, 0.2)',\n              borderColor: 'rgba(66, 135, 245, 0.9)',\n            },\n            {\n              documents: locals.repairsYear,\n              label: 'Reparaturen',\n              backgroundColor: 'rgba(249, 115, 22, 0.2)',\n              borderColor: 'rgba(249, 115, 22, 0.9)',\n            }\n          ]\"\n        ></ae-layout>  \n      </section>\n\n    </section>\n\n    <!-- <section class=\"bg-neutral-50 rounded-md p-4\">\n      <header class=\"font-bold text-lg\">Erfasste Zeiten</header>\n\n      <ae-layout layout-id=\"10590b76-115a-4539-a911-6994500ab02a\" :param-document=\"document\"></ae-layout>\n    </section> -->\n  </div>\n</div>"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"17c3177b-a9e2-4dc1-b653-facbd56702cd","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-03-23T08:34:35+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"p":"fdfaf800-858a-4b45-91c9-5bdad7a63672","previous":{"v":"8a3e487fbe3548b6"},"stamps":[],"t":1774254875889,"v":"ce4d01ad25315f1d"},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","50c3c7c5-c3d4-460c-b34d-0d61a4cb09ae"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"d42ce38f-0f5c-46cf-8014-9cc98eb1b267","text":"rd:applications","v":"4874f92517a424e9"},"created":{"at":"2025-07-07T12:52:22+00:00","backedBy":null,"by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":null},"ct":1751892742993,"data":{"aliases":[],"controller":"class Controller {\n  init() {\n    this.FORMS = {\n      CollectiveContainer: '49af721d-7068-4dd7-8df4-a5f79b3804cf',\n    }\n\n    locals.search = `p:${document.id} f.id:${this.FORMS.CollectiveContainer}`\n    locals.sort = [\n      { field: 'data.informationNumber', descending: true },\n      { field: 'data.creationTimestamp', descending: true },\n      { field: 'id', descending: false },\n    ]\n  }\n}","css":"","description":"","name":"rd:collective","packages":[],"template":"\n<div class=\"mx-auto flex flex-col gap-4 w-full bg-white overflow-visible bg-white max-w-5xl px-4 py-2 my-2 xl:shadow-md xl:rounded-md\">\n  <ae-list list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\"\n            :search=\"locals.search\"\n            :sort=\"locals.sort\"\n            @selected=\"Aeppic.drillInto($event, arguments[1])\"\n            param-design=\"rd:card\"\n            :param-divide=\"true\"\n            param-empty-text=\"Keine Sammelinformationen erstellt.\"\n  ></ae-list>  \n</div>"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"293b0c36-fb6c-42b2-b671-7cbf66bd8c92","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-07-07T13:00:17+00:00","backedBy":null,"by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"d42ce38f-0f5c-46cf-8014-9cc98eb1b267","text":"rd:applications","v":"4874f92517a424e9"},"p":"50c3c7c5-c3d4-460c-b34d-0d61a4cb09ae","previous":{"v":"d4855c3f4e0b6a2a"},"stamps":[],"t":1751893217046,"v":"ef5c172429e80a01"},{"a":["apps","089481c4-a42f-4a98-9bc9-12e9f1131f4b","5fa71c32-0186-4007-92a9-f03a32b0ff33","f008b3c3-3f60-4d12-b0b8-4fa95bc57936","0433f3dc-f144-4f59-823e-8f0d32118ebe"],"a_depth":5,"a_forms":["folder","application-form","form-folder","form-folder","form"],"created":{"at":"2025-04-11T08:46:15+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"ct":1744361175704,"data":{"aliases":[],"controller":"class Controller{\n  async init() {\n    locals.ready = false\n    locals.displayedDocuments = []\n    \n    locals.documents = [...(params.documents ?? [])]\n    locals.data = data\n    locals.document = document\n\n    await this.handleNewDocuments()\n\n    watchParam('documents', async (docs) => {\n      if (\n        docs.length === locals.documents.length &&\n        docs.every((doc, index) => {\n          return doc.id === locals.documents[index].id && doc.v === locals.documents[index].v\n        })\n      ) {\n        return\n      }\n      locals.documents = [...(docs ?? [])]\n      await this.handleNewDocuments()\n    })\n\n    Aeppic.watch(document.id, async (newDocument) => {\n      if (newDocument.v === locals.document.v) {\n        return\n      }\n      locals.document = newDocument\n      locals.data = newDocument.data\n      await this.handleNewDocuments()\n    })\n\n    locals.ready = true\n  }\n\n  async handleNewDocuments() {\n    const prevDisplayedDocuments = this.filterDocuments(locals.documents)\n    if (!this.sameDocuments(prevDisplayedDocuments, locals.displayedDocuments)) {\n      params.debug && console.log(\"Column has new documents to display\", locals.data.name)\n      locals.displayedDocuments = prevDisplayedDocuments\n      if (params.displayedDocuments) {\n        params.displayedDocuments.displayedDocuments = locals.displayedDocuments\n      }\n      $emit('displayed-documents-changed')\n    }\n  }\n\n  filterDocuments(documents) {\n    return documents.filter(doc => doc.data[locals.data.fieldName] === locals.data.filter)\n  }\n\n  async onChange(event) {\n    // debugger\n    if (event.added) {\n      const editableDocument = await Aeppic.edit(event.document.id)\n      editableDocument.data[locals.data.fieldName] = locals.data.filter\n      await Aeppic.save(editableDocument)\n    }\n  }\n\n  onCreateNewDocument(newDocumentCommandId) {\n    const context = { \n      Account: Aeppic.Account, \n      ProfilePage: Aeppic.ProfilePage,\n      fieldName: locals.data.fieldName,\n      fieldValue: locals.data.filter,\n    }\n    const options = {navigation: true}\n\n    Aeppic.Commands.execute(newDocumentCommandId, params.newDocumentLocationId, context, options)\n  }\n\n  sameDocuments(arr1, arr2) {\n    const arraysAreEqual = (a, b) => a.length === b.length && a.every((x, index) => x === b[index])\n    return arraysAreEqual(arr1.map(doc => doc.id), arr2.map(doc => doc.id))\n  }\n}","css":"","description":"","name":"rd:column","packages":[],"template":"<ae-layout  v-show=\"locals.ready\"\n            class=\"h-full rounded-md\"\n            layout-id=\"433bf79c-700a-41db-b7d1-c3d7ad95523a\"\n            :param-documents=\"locals.displayedDocuments\"\n            :param-name=\"locals.data.name\"\n            :param-color=\"locals.data.color\"\n            :param-group=\"params.group\"\n            :param-column-id=\"document.id\"\n            :param-document=\"document\"\n            :param-board=\"params.board\"\n            :param-filter=\"params.filter\"\n            :param-new-document-command-ids=\"params.newDocumentCommandIds\"\n            :param-left-most-column=\"params.leftMostColumn\"\n            :param-right-most-column=\"params.rightMostColumn\"\n            :param-board-card-params=\"params.boardCardParams\"\n            :param-debug=\"params.debug\"\n            :param-readonly=\"params.readonly\"\n            @change=\"controller.onChange($event)\"\n            @delete-column=\"$emit('delete-column', document)\"\n            @trash-enter=\"$emit('trash-enter')\"\n            @trash-leave=\"$emit('trash-leave')\"\n            @delete-document=\"$emit('delete-document', $event)\"\n            @move-column-left=\"$emit('move-column-left')\"\n            @move-column-right=\"$emit('move-column-right')\"\n            @selected=\"$emit('selected' ,$event, arguments[1])\"\n            @create-new-document=\"controller.onCreateNewDocument($event)\"\n></ae-layout>"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"1c651f31-6542-470c-a205-a1168d9522e1","inheritedLocks":[null,null,null,null,null,null],"locks":[],"modified":{"at":"2025-05-08T13:36:07+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"0433f3dc-f144-4f59-823e-8f0d32118ebe","previous":{"v":"30c5001d1469ad64"},"stamps":[],"t":1746711367299,"v":"dbd3b83ed8c9b135"},{"a":["apps","089481c4-a42f-4a98-9bc9-12e9f1131f4b","5fa71c32-0186-4007-92a9-f03a32b0ff33","f008b3c3-3f60-4d12-b0b8-4fa95bc57936","d6c394cd-7e18-4602-a222-eaf419ff9922"],"a_depth":5,"a_forms":["folder","application-form","form-folder","form-folder","form"],"created":{"at":"2025-04-14T14:17:34+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"ct":1744640254723,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.ready = false\n    locals.displayedDocuments = []\n\n    locals.documents = [...(params.documents ?? [])]\n    locals.data = data\n    locals.document = document\n\n    await this.handleNewDocuments()\n\n    watchParam('documents', async (docs) => {\n      if (\n        docs.length === locals.documents.length &&\n        docs.every((doc, index) => {\n          return doc.id === locals.documents[index].id && doc.v === locals.documents[index].v\n        })\n      ) {\n        return\n      }\n      console.log(\"ColumnDocs udpated\")\n      locals.documents = [...(docs ?? [])]\n      await this.handleNewDocuments()\n    })\n    \n    Aeppic.watch(document.id, async (newDocument) => {\n      if (newDocument.v === locals.document.v) {\n        return\n      }\n      locals.document = newDocument\n      locals.data = newDocument.data\n      await this.handleNewDocuments()\n    })\n\n    locals.ready = true\n  }\n\n  async handleNewDocuments() {\n    const prevDisplayedDocuments = this.filterDocuments(locals.documents)\n    if (!this.sameDocuments(prevDisplayedDocuments, locals.displayedDocuments)) {\n      params.debug && console.log(\"Column has new documents to display\", locals.data.name)\n      locals.displayedDocuments = prevDisplayedDocuments\n      if (params.displayedDocuments) {\n        params.displayedDocuments.displayedDocuments = locals.displayedDocuments\n      }\n      $emit('displayed-documents-changed')\n    }\n  }\n\n  filterDocuments(documents) {\n    const result = documents.filter((doc) => {\n      const fieldData = doc.data[locals.data.fieldName]\n      if (fieldData == null) {\n        return false\n      }\n      if (Array.isArray(fieldData)) {\n        return fieldData.some((fieldDatum) => fieldDatum.id === data.filter.id)\n      } else {\n        return fieldData.id === data.filter.id\n      }\n    })\n    return result\n  }\n\n  async onChange(event) {\n    if (event.added) {\n      const editableDocument = await Aeppic.edit(event.document.id)\n      editableDocument.addReference(locals.data.fieldName, await Aeppic.get(data.filter))\n      Aeppic.save(editableDocument)\n    }\n    if (event.removed) {\n      const editableDocument = await Aeppic.edit(event.document.id)\n      editableDocument.removeReference(locals.data.fieldName, await Aeppic.get(data.filter))\n      Aeppic.save(editableDocument)\n    }\n    console.log(\"Aeppic.save called\")\n  }\n\n  onCreateNewDocument(newDocumentCommandId) {\n    const context = { \n      Account: Aeppic.Account, \n      ProfilePage: Aeppic.ProfilePage,\n      fieldName: locals.data.fieldName,\n      fieldValue: [locals.data.filter],\n    }\n    const options = {navigation: true}\n\n    Aeppic.Commands.execute(newDocumentCommandId, params.newDocumentLocationId, context, options)\n  }\n\n  sameDocuments(arr1, arr2) {\n    const arraysAreEqual = (a, b) => a.length === b.length && a.every((x, index) => x === b[index])\n    return arraysAreEqual(arr1.map(doc => doc.id), arr2.map(doc => doc.id))\n  }\n}\n","css":"","description":"","name":"rd:column","packages":[],"template":"<ae-layout\n  v-show=\"locals.ready\"\n  class=\"h-full rounded-md\"\n  layout-id=\"433bf79c-700a-41db-b7d1-c3d7ad95523a\"\n  :param-documents=\"locals.displayedDocuments\"\n  :param-name=\"locals.data.name\"\n  :param-color=\"locals.data.color\"\n  :param-group=\"params.group\"\n  :param-column-id=\"document.id\"\n  :param-document=\"document\"\n  :param-board=\"params.board\"\n  :param-filter=\"params.filter\"\n  :param-new-document-command-ids=\"params.newDocumentCommandIds\"\n  :param-left-most-column=\"params.leftMostColumn\"\n  :param-right-most-column=\"params.rightMostColumn\"\n  :param-board-card-params=\"params.boardCardParams\"\n  :param-readonly=\"params.readonly\"\n  :param-debug=\"params.debug\"\n  @change=\"controller.onChange($event)\"\n  @delete-column=\"$emit('delete-column', document)\"\n  @trash-enter=\"$emit('trash-enter')\"\n  @trash-leave=\"$emit('trash-leave')\"\n  @delete-document=\"$emit('delete-document', $event)\"\n  @move-column-left=\"$emit('move-column-left')\"\n  @move-column-right=\"$emit('move-column-right')\"\n  @selected=\"$emit('selected' ,$event, arguments[1])\"\n  @create-new-document=\"controller.onCreateNewDocument($event)\"\n></ae-layout>"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"39c54866-21bd-4e77-b220-5e205406b1d3","inheritedLocks":[null,null,null,null,null,null],"locks":[],"modified":{"at":"2025-05-08T13:35:27+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"d6c394cd-7e18-4602-a222-eaf419ff9922","previous":{"v":"bb483e92e0d23039"},"stamps":[],"t":1746711327150,"v":"ded63b9ffece1377"},{"a":["apps","089481c4-a42f-4a98-9bc9-12e9f1131f4b","5fa71c32-0186-4007-92a9-f03a32b0ff33","f008b3c3-3f60-4d12-b0b8-4fa95bc57936","d2d60610-aa7b-4f73-9a2a-7655e8955234"],"a_depth":5,"a_forms":["folder","application-form","form-folder","form-folder","form"],"created":{"at":"2025-04-11T08:46:32+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"ct":1744361192719,"data":{"aliases":[],"controller":"class Controller{\n  async init() {\n    // debugger\n    locals.ready = false\n    locals.displayedDocuments = []\n\n    locals.documents = [...(params.documents ?? [])]\n    locals.data = data\n    locals.document = document\n\n    this.handleNewDocuments()\n\n    watchParam('documents', async (docs) => {\n      if (\n        docs.length === locals.documents.length &&\n        docs.every((doc, index) => {\n          return doc.id === locals.documents[index].id && doc.v === locals.documents[index].v\n        })\n      ) {\n        return\n      }\n      locals.documents = [...(docs ?? [])]\n      this.handleNewDocuments()\n    })\n\n    Aeppic.watch(document.id, async (newDocument) => {\n      if (newDocument.v === locals.document.v) {\n        return\n      }\n      locals.document = newDocument\n      locals.data = newDocument.data\n      this.handleNewDocuments()\n    })\n\n    locals.ready = true\n  }\n\n  handleNewDocuments() {\n    const prevDisplayedDocuments = this.filterDocuments(locals.documents)\n    if (!this.sameDocuments(prevDisplayedDocuments, locals.displayedDocuments)) {\n      params.debug && console.log(\"Column has new documents to display\", locals.data.name)\n      locals.displayedDocuments = prevDisplayedDocuments\n      if (params.displayedDocuments) {\n        params.displayedDocuments.displayedDocuments = locals.displayedDocuments\n      }\n      $emit('displayed-documents-changed')\n    }\n  }\n\n  filterDocuments(documents) {\n    return documents.filter(doc => doc.data[locals.data.fieldName] === locals.data.filter)\n  }\n\n  async onChange(event) {\n    // debugger\n    if (event.added) {\n      const editableDocument = await Aeppic.edit(event.document.id)\n      editableDocument.data[locals.data.fieldName] = locals.data.filter\n      await Aeppic.save(editableDocument)\n    }\n  }\n\n  onCreateNewDocument(newDocumentCommandId) {\n    const context = { \n      Account: Aeppic.Account, \n      ProfilePage: Aeppic.ProfilePage,\n      fieldName: locals.data.fieldName,\n      fieldValue: locals.data.filter,\n    }\n    const options = {navigation: true}\n\n    Aeppic.Commands.execute(newDocumentCommandId, params.newDocumentLocationId, context, options)\n  }\n\n  sameDocuments(arr1, arr2) {\n    const arraysAreEqual = (a, b) => a.length === b.length && a.every((x, index) => x === b[index])\n    return arraysAreEqual(arr1.map(doc => doc.id), arr2.map(doc => doc.id))\n  }\n}","css":"","description":"","name":"rd:column","packages":[],"template":"<ae-layout  v-show=\"locals.ready\"\n            class=\"h-full rounded-md\"\n            layout-id=\"433bf79c-700a-41db-b7d1-c3d7ad95523a\"\n            :param-documents=\"locals.displayedDocuments\"\n            :param-name=\"locals.data.name\"\n            :param-color=\"locals.data.color\"\n            :param-group=\"params.group\"\n            :param-column-id=\"document.id\"\n            :param-document=\"document\"\n            :param-board=\"params.board\"\n            :param-filter=\"params.filter\"\n            :param-no-delete=\"true\"\n            :param-new-document-command-ids=\"params.newDocumentCommandIds\"\n            :param-left-most-column=\"params.leftMostColumn\"\n            :param-right-most-column=\"params.rightMostColumn\"\n            :param-board-card-params=\"params.boardCardParams\"\n            :param-debug=\"params.debug\"\n            :param-readonly=\"params.readonly\"\n            @change=\"controller.onChange($event)\"\n            @trash-enter=\"$emit('trash-enter')\"\n            @trash-leave=\"$emit('trash-leave')\"\n            @delete-document=\"$emit('delete-document', $event)\"\n            @move-column-left=\"$emit('move-column-left')\"\n            @move-column-right=\"$emit('move-column-right')\"\n            @selected=\"$emit('selected' ,$event, arguments[1])\"\n            @create-new-document=\"controller.onCreateNewDocument($event)\"\n></ae-layout>"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"567eed8e-ed56-48be-8987-bfc4370eab7d","inheritedLocks":[null,null,null,null,null,null],"locks":[],"modified":{"at":"2025-05-08T13:36:35+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"d2d60610-aa7b-4f73-9a2a-7655e8955234","previous":{"v":"828750885a6f23ee"},"stamps":[],"t":1746711395411,"v":"b332b5afb3e80c4c"},{"a":["apps","089481c4-a42f-4a98-9bc9-12e9f1131f4b","5fa71c32-0186-4007-92a9-f03a32b0ff33","f008b3c3-3f60-4d12-b0b8-4fa95bc57936","7ffd7cb7-3f51-459f-8fa1-26de32ff095d"],"a_depth":5,"a_forms":["folder","application-form","form-folder","form-folder","form"],"created":{"at":"2025-04-11T08:37:27+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"ct":1744360647096,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    // debugger\n    locals.ready = false\n    locals.displayedDocuments = []\n\n    locals.documents = [...(params.documents ?? [])]\n    locals.data = {}\n    locals.data = structuredClone(data)\n    locals.document = document\n\n    params.debug && console.log(\"Rerender Column\", document.data.name, document.v)\n    await this.handleNewDocuments()\n\n    watchParam('documents', async (docs) => {\n      if (\n        docs.length === locals.documents.length &&\n        docs.every((doc, index) => {\n          return doc.id === locals.documents[index].id && doc.v === locals.documents[index].v\n        })\n      ) {\n        return\n      }\n      params.debug && console.log(\"Handling new Documents: Documents changed\", document.data.name, document.v)\n      locals.documents = [...(docs ?? [])]\n      await this.handleNewDocuments()\n    })\n\n    Aeppic.watch(document.id, async (newDocument) => {\n      if (newDocument.v === locals.document.v) {\n        return\n      }\n      locals.document = newDocument\n      const {name, color, filter} = newDocument.data\n      if (locals.data.name !== name) {\n        locals.data.name = name\n      }\n      if (locals.data.color !== color) {\n        locals.data.color = color\n      }\n      if (!this.arrayEquals(locals.data.filter.map(ref => ref.id), filter.map(ref => ref.id))) {\n        locals.data.filter = filter\n        params.debug && console.log(\"Handling updated Column\", document.data.name, document.v)\n        await this.handleNewDocuments()\n      }\n    })\n\n    locals.ready = true\n  }\n\n  async handleNewDocuments() {\n    locals.displayedDocuments = await this.filterDocuments(locals.documents)\n    if (params.displayedDocuments) {\n      params.displayedDocuments.displayedDocuments = locals.displayedDocuments\n      $emit('displayed-documents-changed')\n    }\n  }\n\n  async filterDocuments(documents) {\n    // debugger\n    const ids = locals.data.filter.map((ref) => ref.id)\n    let filteredDocuments = []\n    if (ids !== []) {\n      filteredDocuments = ids\n        .map((id) => {\n          return documents.find((doc) => doc.id === id)\n        })\n        .filter((doc) => doc != null)\n    }\n\n    return filteredDocuments\n  }\n\n  async onChange(event) {\n    // debugger\n    const newDocumentRef = await Aeppic.asReference(event.document.id)\n    const editable = await Aeppic.edit(document.id)\n    if (event.added) {\n      if (editable.data.filter.map(ref => ref.id).includes(newDocumentRef.id)) {\n        // Avoid duplicates\n        return\n      }\n      const newIndex = this.transformIndex(event.newIndex, event.newDocuments, editable.data.filter)\n      if (newIndex !== -1){\n        editable.data.filter.splice(newIndex, 0, newDocumentRef)\n      } else {\n        return\n      }\n    } else if (event.removed) {\n      editable.removeReference('filter', newDocumentRef.id)\n    } else if (event.moved) {\n      if (event.oldIndex === event.newIndex) {\n        return\n      }\n      editable.removeReference('filter', newDocumentRef.id)\n\n      const newIndex = this.transformIndex(event.newIndex, event.newDocuments, editable.data.filter)\n      if (newIndex !== -1){\n        editable.data.filter.splice(newIndex, 0, newDocumentRef)\n      } else {\n        return\n      }\n    }\n    Aeppic.save(editable)\n  }\n\n  transformIndex(oldIndex, oldArr, newArr) {\n    if (oldArr.length === 0) {\n      return newArr.length\n    }\n    if (newArr.length === 0 ) {\n      return 0\n    }\n\n    let newIndex = -1\n    if (oldIndex > 0) {\n      const prevItem = oldArr[oldIndex - 1]\n      const prevIndex = newArr.findIndex(doc => doc.id === prevItem.id)\n      if (prevIndex !== -1) {\n        newIndex = prevIndex + 1\n      }\n    } else if (oldIndex === 0) {\n      const afterItem = oldArr[oldIndex + 1] // Currently always 1\n      const afterIndex = newArr.findIndex(doc => doc.id === afterItem.id)\n      if (afterIndex !== -1) {\n        newIndex = afterIndex\n      }\n    }\n    return newIndex\n  }\n\n  async onSort(event) {\n    if (params.readonly) {\n      return\n    }\n    const editable = await Aeppic.edit(document.id)\n    let documents = await Aeppic.getAll(editable.data.filter)\n    documents = Aeppic.Functions.sort(documents, event)\n    editable.data.filter = await Promise.all(documents.map(doc => Aeppic.asReference(doc)))\n    Aeppic.save(editable)\n  }\n\n  async onCreateNewDocument(newDocumentCommandId) {\n    const options = {navigation: true}\n    const context = { \n      Account: Aeppic.Account, \n      ProfilePage: Aeppic.ProfilePage \n    }\n    const newDocument = (await Aeppic.Commands.execute(newDocumentCommandId, params.newDocumentLocationId, context, options)).document\n\n    const editable = await Aeppic.edit(document.id)\n    editable.addReference('filter', newDocument, {addToBeginning: true})\n    Aeppic.save(editable)\n  }\n\n  arrayEquals(a, b) {\n    return Array.isArray(a) &&\n        Array.isArray(b) &&\n        a.length === b.length &&\n        a.every((val, index) => val === b[index])\n  }\n}\n","css":"","description":"","name":"rd:column","packages":[],"template":"<ae-layout  v-show=\"locals.ready\" \n            class=\"h-full rounded-md\"\n            layout-id=\"433bf79c-700a-41db-b7d1-c3d7ad95523a\"\n            :param-documents=\"locals.displayedDocuments\"\n            :param-name=\"locals.data.name\"\n            :param-color=\"locals.data.color\"\n            :param-group=\"params.group\"\n            :param-column-id=\"document.id\"\n            :param-board=\"params.board\"\n            :param-filter=\"params.filter\"\n            :param-enable-column-sorting=\"true\"\n            :param-new-document-command-ids=\"params.newDocumentCommandIds\"\n            :param-left-most-column=\"params.leftMostColumn\"\n            :param-right-most-column=\"params.rightMostColumn\"\n            :param-readonly=\"params.readonly\"\n            :param-debug=\"params.debug\"\n            :param-board-card-params=\"params.boardCardParams\"\n            @change=\"controller.onChange($event)\"\n            @delete-column=\"$emit('delete-column', document)\"\n            @trash-enter=\"$emit('trash-enter')\"\n            @trash-leave=\"$emit('trash-leave')\"\n            @delete-document=\"$emit('delete-document', $event)\"\n            @move-column-left=\"$emit('move-column-left')\"\n            @move-column-right=\"$emit('move-column-right')\"\n            @sort=\"controller.onSort($event)\"\n            @selected=\"$emit('selected' ,$event, arguments[1])\"\n            @create-new-document=\"controller.onCreateNewDocument($event)\"\n></ae-layout>"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"9d19723b-0020-4b77-b27d-258d0b998fe1","inheritedLocks":[null,null,null,null,null,null],"locks":[],"modified":{"at":"2025-05-08T13:34:22+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"7ffd7cb7-3f51-459f-8fa1-26de32ff095d","previous":{"v":"029a3be248374409"},"stamps":[],"t":1746711262711,"v":"5a6740db1e250da4"},{"a":["apps","e1bc93d1-b6c6-4711-a98f-675371c40326","c5dc85a6-3516-49d2-bf7f-810f2a75a141"],"a_depth":3,"a_forms":["folder","application-form","design-folder"],"cloneOf":{"id":"9d19723b-0020-4b77-b27d-258d0b998fe1","text":"rd:column","v":"5a6740db1e250da4"},"created":{"at":"2026-03-23T13:30:09+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"ct":1774272609759,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.ready = false\n    locals.displayedDocuments = []\n\n    this.isBacklog = !!params.isBacklog\n    this.sourceDocuments = this.isBacklog ? params.filteredBacklog : params.documents\n\n    locals.documents = [...(this.sourceDocuments ?? [])]\n    locals.data = structuredClone(document.data)\n    locals.document = document\n\n    const paramToWatch = this.isBacklog ? 'filteredBacklog' : 'documents'\n    watchParam(paramToWatch, async (docs) => {\n      if (\n        docs.length === locals.documents.length &&\n        docs.every((doc, index) => doc.id === locals.documents[index].id && doc.v === locals.documents[index].v)\n      ) {\n        return\n      }\n      locals.documents = [...(docs ?? [])]\n      await this.handleNewDocuments()\n    })\n\n    this.mode = locals.data.mode || 'manual'\n\n    if (this.mode !== 'manual') {\n      const parentDoc = await Aeppic.get(document.p)\n      const fieldNameKey = this.mode === 'switch' ? 'switchFieldName' : `${this.mode}FieldName`\n      this.fieldName = parentDoc.data[fieldNameKey]\n    } else {\n      this.fieldName = null\n    }\n\n    this.behavior = this.getBehavior()\n\n    await this.handleNewDocuments()\n\n    Aeppic.watch(document.id, async (newDocument) => {\n      if (newDocument.v === locals.document.v) {\n        return\n      }\n      locals.document = newDocument\n      \n      const prevFilterStr = JSON.stringify(this.getFilterValue(locals.data))\n      const newFilterStr = JSON.stringify(this.getFilterValue(newDocument.data))\n      \n      locals.data = structuredClone(newDocument.data)\n\n      if (this.mode === 'manual' || prevFilterStr !== newFilterStr) {\n        await this.handleNewDocuments()\n      }\n    })\n\n    locals.ready = true\n  }\n\n  getFilterValue(dataObj) {\n    if (this.mode === 'manual') return dataObj.manualFilter || []\n    return dataObj[`${this.mode}Filter`]\n  }\n\n  get filterValue() {\n    return this.getFilterValue(locals.data)\n  }\n\n  getBehavior() {\n    const standardBehaviors = {\n      manual: {\n        filter: (docs) => {\n          const ids = this.filterValue.map((ref) => ref.id)\n          if (ids.length === 0) return []\n          return ids.map((id) => docs.find((doc) => doc.id === id)).filter(Boolean)\n        },\n        onChange: async (event, editable) => {\n          const newDocumentRef = await Aeppic.asReference(event.document.id)\n          const filterArray = editable.data.manualFilter || []\n          \n          if (event.added || event.moved) {\n            if (event.added && filterArray.some(ref => ref.id === newDocumentRef.id)) return\n            if (event.moved && event.oldIndex === event.newIndex) return\n            \n            editable.removeReference('manualFilter', newDocumentRef.id)\n            const newIndex = this.transformIndex(event.newIndex, event.newDocuments, filterArray)\n            \n            if (newIndex !== -1) {\n              if (!editable.data.manualFilter) editable.data.manualFilter = []\n              editable.data.manualFilter.splice(newIndex, 0, newDocumentRef)\n            }\n          } else if (event.removed) {\n            editable.removeReference('manualFilter', newDocumentRef.id)\n          }\n        },\n        getContext: () => ({}),\n        onCreatePostProcess: async (commandResult) => {\n          const editable = await Aeppic.edit(document.id)\n          if (!editable.data.manualFilter) editable.data.manualFilter = []\n          editable.addReference('manualFilter', commandResult.document, { addToBeginning: true })\n          await Aeppic.save(editable)\n        },\n        getGroup: () => params.group\n      },\n      reference: {\n        filter: (docs) => {\n          return docs.filter((doc) => {\n            const fieldData = doc.data[this.fieldName]\n            if (fieldData == null) return false\n            const targetId = Array.isArray(this.filterValue) ? this.filterValue[0]?.id : this.filterValue?.id\n            return Array.isArray(fieldData) \n              ? fieldData.some((fd) => fd.id === targetId) \n              : fieldData.id === targetId\n          })\n        },\n        onChange: async (event, editable) => {\n          const refVal = Array.isArray(this.filterValue) ? this.filterValue[0] : this.filterValue\n          if (event.added) {\n            editable.addReference(this.fieldName, await Aeppic.get(refVal))\n          } else if (event.removed && this.mode === 'references') {\n            editable.removeReference(this.fieldName, await Aeppic.get(refVal))\n          }\n        },\n        getContext: () => ({\n          fieldName: this.fieldName,\n          fieldValue: this.mode === 'references' \n            ? (Array.isArray(this.filterValue) ? this.filterValue : [this.filterValue]) \n            : this.filterValue\n        }),\n        onCreatePostProcess: async () => {},\n        getGroup: () => params.group\n      },\n      select: {\n        filter: (docs) => docs.filter((doc) => doc.data[this.fieldName] === this.filterValue),\n        onChange: async (event, editable) => {\n          if (event.added) {\n            editable.data[this.fieldName] = this.filterValue\n          }\n        },\n        getContext: () => ({\n          fieldName: this.fieldName,\n          fieldValue: this.filterValue\n        }),\n        onCreatePostProcess: async () => {},\n        getGroup: () => params.group\n      }\n    }\n\n    const backlogBehaviors = {\n      manual: {\n        filter: (docs) => docs,\n        onChange: async () => {},\n        getContext: () => ({}),\n        onCreatePostProcess: async () => {},\n        getGroup: () => params.group\n      },\n      reference: {\n        filter: (docs) => docs.filter((doc) => doc.data[this.fieldName] != null),\n        onChange: async (event, editable) => {\n          if (event.added) {\n            editable.removeReference(this.fieldName, null)\n          }\n        },\n        getContext: () => ({}),\n        onCreatePostProcess: async () => {},\n        getGroup: () => ({ name: params.group, pull: 'clone' })\n      },\n      select: {\n        filter: (docs) => docs.filter((doc) => doc.data[this.fieldName] != null),\n        onChange: async () => {},\n        getContext: () => ({}),\n        onCreatePostProcess: async () => {},\n        getGroup: () => ({ name: params.group, put: [] })\n      }\n    }\n\n    let strategyKey = this.mode\n    \n    if (['reference', 'references'].includes(this.mode)) strategyKey = 'reference'\n    if (['selectNumber', 'selectText', 'switch'].includes(this.mode)) strategyKey = 'select'\n\n    const targetBehaviors = this.isBacklog ? backlogBehaviors : standardBehaviors\n    return targetBehaviors[strategyKey] || standardBehaviors.manual\n  }\n\n  async handleNewDocuments() {\n    const prevDisplayedDocuments = this.filterDocuments(locals.documents)\n    \n    if (!this.sameDocuments(prevDisplayedDocuments, locals.displayedDocuments)) {\n      params.debug && console.log(\"Column has new documents to display\", locals.data.name)\n      locals.displayedDocuments = prevDisplayedDocuments\n      $emit('displayed-documents-changed', {\n        columnId: document.id,\n        documents: [...locals.displayedDocuments],\n      })\n    }\n  }\n\n  filterDocuments(documents) {\n    let filtered = this.behavior.filter(documents)\n\n    if (this.mode === 'manual' && !this.isBacklog) {\n      return filtered\n    }\n\n    if (locals.data.preSort) {\n      try {\n        const sortConfig = JSON.parse(locals.data.preSort)\n        filtered = Aeppic.Functions.sort(filtered, sortConfig)\n      } catch (error) {\n        params.debug && console.error(\"Failed to parse preSort JSON in column:\", locals.data.name, error)\n      }\n    }\n\n    return filtered\n  }\n\n  async onChange(event) {\n    const targetDocId = (this.mode === 'manual' && !this.isBacklog) ? document.id : event.document.id // Manual columns store the filter. So the columns document must be updated.\n    const editable = await Aeppic.edit(targetDocId)\n    \n    await this.behavior.onChange(event, editable)\n    await Aeppic.save(editable)\n  }\n\n  async onCreateNewDocument(newDocumentCommandId) {\n    const baseContext = { \n      Account: Aeppic.Account, \n      ProfilePage: Aeppic.ProfilePage \n    }\n    const context = { ...baseContext, ...this.behavior.getContext() }\n    const options = { navigation: true }\n\n    const commandResult = await Aeppic.Commands.execute(newDocumentCommandId, params.newDocumentLocationId, context, options)\n    await this.behavior.onCreatePostProcess(commandResult)\n  }\n\n  get group() {\n    return this.behavior.getGroup()\n  }\n\n  async onSort(event) {\n    if (params.readonly || this.mode !== 'manual' || this.isBacklog) {\n      return\n    }\n    const editable = await Aeppic.edit(document.id)\n    let documents = await Aeppic.getAll(editable.data.manualFilter || [])\n    documents = Aeppic.Functions.sort(documents, event)\n    editable.data.manualFilter = await Promise.all(documents.map(doc => Aeppic.asReference(doc)))\n    await Aeppic.save(editable)\n  }\n\n  transformIndex(oldIndex, oldArr, newArr) {\n    if (oldArr.length === 0) return newArr.length\n    if (newArr.length === 0) return 0\n\n    let newIndex = -1\n    if (oldIndex > 0) {\n      const prevItem = oldArr[oldIndex - 1]\n      const prevIndex = newArr.findIndex(doc => doc.id === prevItem.id)\n      if (prevIndex !== -1) newIndex = prevIndex + 1\n    } else if (oldIndex === 0) {\n      const afterItem = oldArr[oldIndex + 1]\n      if (afterItem) {\n        const afterIndex = newArr.findIndex(doc => doc.id === afterItem.id)\n        if (afterIndex !== -1) newIndex = afterIndex\n      } else {\n        newIndex = 0\n      }\n    }\n    return newIndex\n  }\n\n  sameDocuments(arr1, arr2) {\n    if (arr1.length !== arr2.length) return false\n    return arr1.every((doc, index) => doc.id === arr2[index]?.id)\n  }\n}","css":"","description":"","name":"rd:column","packages":[],"template":"<ae-layout  \n  v-show=\"locals.ready\"\n  class=\"h-full rounded-md\"\n  layout-id=\"374dea59-4216-4ab6-92b3-37a99f5b7924\"\n  :param-documents=\"locals.displayedDocuments\"\n  :param-name=\"locals.data.name\"\n  :param-color=\"locals.data.color\"\n  :param-group=\"params.group\"\n  :param-column-id=\"document.id\"\n  :param-document=\"document\"\n  :param-board=\"params.board\"\n  :param-filter=\"params.filter\"\n  :param-enable-column-sorting=\"true\"\n  :param-no-delete=\"false\"\n  :param-new-document-command-ids=\"params.newDocumentCommandIds\"\n  :param-left-most-column=\"params.leftMostColumn\"\n  :param-right-most-column=\"params.rightMostColumn\"\n  :param-board-card-params=\"params.boardCardParams\"\n  :param-debug=\"params.debug\"\n  :param-readonly=\"params.readonly\"\n  :param-search-options=\"params.searchOptions\"\n  @change=\"controller.onChange($event)\"\n  @trash-enter=\"$emit('trash-enter')\"\n  @trash-leave=\"$emit('trash-leave')\"\n  @delete-document=\"$emit('delete-document', $event)\"\n  @delete-column=\"$emit('delete-column', document)\"\n  @move-column-left=\"$emit('move-column-left')\"\n  @move-column-right=\"$emit('move-column-right')\"\n  @selected=\"$emit('selected' ,$event, arguments[1])\"\n  @create-new-document=\"controller.onCreateNewDocument($event)\"\n  @sort=\"controller.onSort($event)\"\n></ae-layout>"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"add73aa3-6087-4f70-b99c-1cd4691091a4","inheritedLocks":[null,null,null,null],"locks":[],"meta":{},"modified":{"at":"2026-06-09T13:01:49+00:00","backedBy":"","by":"09763886-6748-4a56-8e0e-54a2293ee96b","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"9d19723b-0020-4b77-b27d-258d0b998fe1","text":"rd:column","v":"5a6740db1e250da4"},"p":"c5dc85a6-3516-49d2-bf7f-810f2a75a141","previous":{"v":"b90277ffd31b8356"},"stamps":[],"t":1781010109406,"v":"73f9cf349573252c"},{"a":["apps","089481c4-a42f-4a98-9bc9-12e9f1131f4b","5fa71c32-0186-4007-92a9-f03a32b0ff33","f008b3c3-3f60-4d12-b0b8-4fa95bc57936","e7af0745-5a1d-4671-82af-0a0681e74d13"],"a_depth":5,"a_forms":["folder","application-form","form-folder","form-folder","form"],"created":{"at":"2025-04-11T08:45:26+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"ct":1744361126444,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.ready = false\n    locals.displayedDocuments = []\n\n    locals.documents = [...(params.documents ?? [])]\n    locals.data = data\n    locals.document = document\n\n    this.handleNewDocuments()\n    \n    watchParam('documents', async (docs) => { \n      if (\n        docs.length === locals.documents.length &&\n        docs.every((doc, index) => {\n          return doc.id === locals.documents[index].id && doc.v === locals.documents[index].v\n        })\n      ) {\n        return\n      }\n      locals.documents = [...(docs ?? [])]\n      this.handleNewDocuments()\n    })\n\n    Aeppic.watch(document.id, async (newDocument) => {\n      if (newDocument.v === locals.document.v) {\n        return\n      }\n      locals.document = newDocument\n      locals.data = newDocument.data\n      this.handleNewDocuments()\n    })\n\n    locals.ready = true\n  }\n\n  handleNewDocuments() {\n    const prevDisplayedDocuments = this.filterDocuments(locals.documents)\n    if (!this.sameDocuments(prevDisplayedDocuments, locals.displayedDocuments)) {\n      params.debug && console.log(\"Column has new documents to display\", locals.data.name)\n      locals.displayedDocuments = prevDisplayedDocuments\n      if (params.displayedDocuments) {\n        params.displayedDocuments.displayedDocuments = locals.displayedDocuments\n      }\n      $emit('displayed-documents-changed')\n    }\n  }\n\n  filterDocuments(documents) {\n    const result = documents.filter((doc) => {\n      const fieldData = doc.data[locals.data.fieldName]\n      if (fieldData == null) {\n        return false\n      }\n      if (Array.isArray(fieldData)) {\n        return fieldData.some((fieldDatum) => fieldDatum.id === locals.data.filter.id)\n      } else {\n        return fieldData.id === locals.data.filter.id\n      }\n    })\n    return result\n  }\n\n  async onChange(event) {\n    // added and removed could interfere, but dont, because removeRef only succeeds, if the passed document is still the ref. See editable-document.ts -> removeReference().\n    if (event.added) {\n      const editableDocument = await Aeppic.edit(event.document.id)\n      editableDocument.addReference(locals.data.fieldName, await Aeppic.get(locals.data.filter))\n      Aeppic.save(editableDocument)\n    }\n  }\n\n  onCreateNewDocument(newDocumentCommandId) {\n    const context = { \n      Account: Aeppic.Account, \n      ProfilePage: Aeppic.ProfilePage,\n      fieldName: locals.data.fieldName,\n      fieldValue: locals.data.filter,\n    }\n    const options = {navigation: true}\n\n    Aeppic.Commands.execute(newDocumentCommandId, params.newDocumentLocationId, context, options)\n  }\n\n  sameDocuments(arr1, arr2) {\n    const arraysAreEqual = (a, b) => a.length === b.length && a.every((x, index) => x === b[index])\n    return arraysAreEqual(arr1.map(doc => doc.id), arr2.map(doc => doc.id))\n  }\n}\n","css":"","description":"","name":"rd:column","packages":[],"template":"<ae-layout\n  v-show=\"locals.ready\"\n  class=\"h-full rounded-md\"\n  layout-id=\"433bf79c-700a-41db-b7d1-c3d7ad95523a\"\n  :param-documents=\"locals.displayedDocuments\"\n  :param-name=\"locals.data.name\"\n  :param-color=\"locals.data.color\"\n  :param-group=\"params.group\"\n  :param-column-id=\"document.id\"\n  :param-document=\"document\"\n  :param-board=\"params.board\"\n  :param-filter=\"params.filter\"\n  :param-new-document-command-ids=\"params.newDocumentCommandIds\"\n  :param-left-most-column=\"params.leftMostColumn\"\n  :param-right-most-column=\"params.rightMostColumn\"\n  :param-board-card-params=\"params.boardCardParams\"\n  :param-readonly=\"params.readonly\"\n  :param-debug=\"params.debug\"\n  @change=\"controller.onChange($event)\"\n  @delete-column=\"$emit('delete-column', document)\"\n  @trash-enter=\"$emit('trash-enter')\"\n  @trash-leave=\"$emit('trash-leave')\"\n  @delete-document=\"$emit('delete-document', $event)\"\n  @move-column-left=\"$emit('move-column-left')\"\n  @move-column-right=\"$emit('move-column-right')\"\n  @selected=\"$emit('selected' ,$event, arguments[1])\"\n  @create-new-document=\"controller.onCreateNewDocument($event)\"\n></ae-layout>\n"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"b1d07d7c-0841-4e8c-a590-60a635a28f9c","inheritedLocks":[null,null,null,null,null,null],"locks":[],"modified":{"at":"2025-05-08T13:35:04+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"e7af0745-5a1d-4671-82af-0a0681e74d13","previous":{"v":"48281479db6830f3"},"stamps":[],"t":1746711304694,"v":"893ff600db7a9718"},{"a":["apps","089481c4-a42f-4a98-9bc9-12e9f1131f4b","5fa71c32-0186-4007-92a9-f03a32b0ff33","f008b3c3-3f60-4d12-b0b8-4fa95bc57936","f780b382-da9e-4ba3-98ef-1b8106e1e73c"],"a_depth":5,"a_forms":["folder","application-form","form-folder","form-folder","form"],"created":{"at":"2025-04-11T08:45:55+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"ct":1744361155651,"data":{"aliases":[],"controller":"class Controller{\n  async init() {\n    locals.ready = false\n    locals.displayedDocuments = []\n    \n    locals.documents = [...(params.documents ?? [])]\n    locals.data = data\n    locals.document = document\n\n    await this.handleNewDocuments()\n\n    watchParam('documents', async (docs) => {\n      if (\n        docs.length === locals.documents.length &&\n        docs.every((doc, index) => {\n          return doc.id === locals.documents[index].id && doc.v === locals.documents[index].v\n        })\n      ) { \n        return\n      }\n      locals.documents = [...(docs ?? [])]\n      await this.handleNewDocuments()\n    })\n\n    Aeppic.watch(document.id, async (newDocument) => {\n      if (newDocument.v === locals.document.v) {\n        return\n      }\n      locals.document = newDocument\n      locals.data = newDocument.data\n      await this.handleNewDocuments()\n    })\n\n    locals.ready = true\n  }\n\n  async handleNewDocuments() {\n    const prevDisplayedDocuments = this.filterDocuments(locals.documents)\n    if (!this.sameDocuments(prevDisplayedDocuments, locals.displayedDocuments)) {\n      params.debug && console.log(\"Column has new documents to display\", locals.data.name)\n      locals.displayedDocuments = prevDisplayedDocuments\n      if (params.displayedDocuments) {\n        params.displayedDocuments.displayedDocuments = locals.displayedDocuments\n      }\n      $emit('displayed-documents-changed')\n    }\n  }\n\n  filterDocuments(documents) {\n    return documents.filter(doc => doc.data[locals.data.fieldName] === locals.data.filter)\n  }\n\n  async onChange(event) {\n    if (event.added) {\n      const editableDocument = await Aeppic.edit(event.document.id)\n      editableDocument.data[locals.data.fieldName] = locals.data.filter\n      await Aeppic.save(editableDocument)\n    }\n  }\n\n  onCreateNewDocument(newDocumentCommandId) {\n    const context = { \n      Account: Aeppic.Account, \n      ProfilePage: Aeppic.ProfilePage,\n      fieldName: locals.data.fieldName,\n      fieldValue: locals.data.filter,\n    }\n    const options = {navigation: true}\n    Aeppic.Commands.execute(newDocumentCommandId, params.newDocumentLocationId, context, options)\n  }\n\n  sameDocuments(arr1, arr2) {\n    const arraysAreEqual = (a, b) => a.length === b.length && a.every((x, index) => x === b[index])\n    return arraysAreEqual(arr1.map(doc => doc.id), arr2.map(doc => doc.id))\n  }\n}","css":"","description":"","name":"rd:column","packages":[],"template":"<ae-layout  v-show=\"locals.ready\"\n            class=\"h-full rounded-md\"\n            layout-id=\"433bf79c-700a-41db-b7d1-c3d7ad95523a\"\n            :param-documents=\"locals.displayedDocuments\"\n            :param-name=\"locals.data.name\"\n            :param-color=\"locals.data.color\"\n            :param-group=\"params.group\"\n            :param-column-id=\"document.id\"\n            :param-document=\"document\"\n            :param-board=\"params.board\"\n            :param-filter=\"params.filter\"\n            :param-new-document-command-ids=\"params.newDocumentCommandIds\"\n            :param-left-most-column=\"params.leftMostColumn\"\n            :param-right-most-column=\"params.rightMostColumn\"\n            :param-board-card-params=\"params.boardCardParams\"\n            :param-readonly=\"params.readonly\"\n            :param-debug=\"params.debug\"\n            @change=\"controller.onChange($event)\"\n            @delete-column=\"$emit('delete-column', document)\"\n            @trash-enter=\"$emit('trash-enter')\"\n            @trash-leave=\"$emit('trash-leave')\"\n            @delete-document=\"$emit('delete-document', $event)\"\n            @move-column-left=\"$emit('move-column-left')\"\n            @move-column-right=\"$emit('move-column-right')\"\n            @selected=\"$emit('selected' ,$event, arguments[1])\"\n            @create-new-document=\"controller.onCreateNewDocument($event)\"\n></ae-layout>"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"e4bfe78e-0796-42ea-9671-230994e41604","inheritedLocks":[null,null,null,null,null,null],"locks":[],"modified":{"at":"2025-05-08T13:35:43+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"f780b382-da9e-4ba3-98ef-1b8106e1e73c","previous":{"v":"f15ff4d72733d90d"},"stamps":[],"t":1746711343102,"v":"bb50cee01a29d893"},{"a":["apps","089481c4-a42f-4a98-9bc9-12e9f1131f4b","5fa71c32-0186-4007-92a9-f03a32b0ff33","5fde1cdf-71c3-4851-b7ba-c5f2c551675f","a24024f6-9365-44f8-98b5-b2b417157eeb"],"a_depth":5,"a_forms":["folder","application-form","form-folder","form-folder","form"],"created":{"at":"2025-04-11T08:47:07+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"ct":1744361227363,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.ready = false\n    locals.displayedDocuments = []\n    this.documents = params.filteredBacklog\n\n    locals.data = data\n    locals.document = document\n\n    this.handleNewDocuments()\n\n    watchParam('filteredBacklog', (docs) => {\n      this.documents = [...(docs ?? [])]\n      this.handleNewDocuments()\n    })\n\n    Aeppic.watch(document.id, (newDocument) => {\n      if (newDocument.v === locals.document.v) {\n        return\n      }\n      locals.document = newDocument\n      locals.data = newDocument.data\n      this.handleNewDocuments()\n    })\n\n    locals.ready = true\n  }\n\n  handleNewDocuments() {\n    locals.displayedDocuments = this.documents\n  }\n\n  onCreateNewDocument(newDocumentCommandId) {\n    const context = { \n      Account: Aeppic.Account, \n      ProfilePage: Aeppic.ProfilePage \n    }\n    const options = {navigation: true}\n    Aeppic.Commands.execute(newDocumentCommandId, params.newDocumentLocationId, context, options)\n  }\n}","css":"","description":"","name":"rd:column-backlog","packages":[],"template":"<ae-layout  v-show=\"locals.ready\" \n            class=\"h-full rounded-md\"\n            layout-id=\"433bf79c-700a-41db-b7d1-c3d7ad95523a\"\n            :param-documents=\"locals.displayedDocuments\"\n            :param-name=\"locals.data.name\"\n            :param-color=\"locals.data.color\"\n            :param-group=\"params.group\"\n            :param-column-id=\"document.id\"\n            :param-document=\"document\"\n            :param-board=\"params.board\"\n            :param-filter=\"params.filter\"\n            :param-disable-collapse=\"true\"\n            :param-readonly=\"params.readonly\"\n            :param-disable-animation=\"true\"\n            :param-new-document-command-ids=\"params.newDocumentCommandIds\"\n            :param-board-card-params=\"params.boardCardParams\"\n            :param-debug=\"params.debug\"\n            @selected=\"$emit('selected' ,$event, arguments[1])\"\n            @create-new-document=\"controller.onCreateNewDocument($event)\"\n            @trash-enter=\"$emit('trash-enter')\"\n            @trash-leave=\"$emit('trash-leave')\"\n            @delete-document=\"$emit('delete-document', $event)\"\n></ae-layout>"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"1e07b720-c245-4883-8cb3-35ab3d08e766","inheritedLocks":[null,null,null,null,null,null],"locks":[],"modified":{"at":"2025-05-08T13:36:58+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"a24024f6-9365-44f8-98b5-b2b417157eeb","previous":{"v":"4a20ec544e4e4379"},"stamps":[],"t":1746711418742,"v":"11ee898ca7736545"},{"a":["apps","089481c4-a42f-4a98-9bc9-12e9f1131f4b","5fa71c32-0186-4007-92a9-f03a32b0ff33","5fde1cdf-71c3-4851-b7ba-c5f2c551675f","35404daa-90fa-4c1b-89ec-86eeec5f0c37"],"a_depth":5,"a_forms":["folder","application-form","form-folder","form-folder","form"],"created":{"at":"2025-04-11T08:47:56+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"ct":1744361276136,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    // debugger\n    locals.ready = false\n    locals.displayedDocuments = []\n    this.documents = params.filteredBacklog\n\n    locals.data = data\n    locals.document = document\n\n    this.handleNewDocuments()\n\n    watchParam('filteredBacklog', (docs) => {\n      this.documents = [...(docs ?? [])]\n      this.handleNewDocuments()\n    })\n\n    Aeppic.watch(document.id, (newDocument) => {\n      if (newDocument.v === locals.document.v) {\n        return\n      }\n      locals.document = newDocument\n      locals.data = newDocument.data\n      this.handleNewDocuments()\n    })\n\n    locals.ready = true\n  }\n\n  handleNewDocuments() {\n    locals.displayedDocuments = this.filterDocuments(this.documents)\n  }\n\n  filterDocuments(documents) {\n    const result = documents.filter((doc) => {\n      const fieldData = doc.data[locals.data.fieldName]\n      if (fieldData == null) {\n        return false\n      } else {\n        return true\n      }\n    })\n    return result\n  }\n\n  get group() {\n    return {\n      name: params.group,\n      put: [],\n    }\n  }\n}\n","css":"","description":"","name":"rd:column-backlog","packages":[],"template":"<ae-layout  v-show=\"locals.ready\" \n            class=\"h-full rounded-md\"\n            layout-id=\"433bf79c-700a-41db-b7d1-c3d7ad95523a\"\n            :param-documents=\"locals.displayedDocuments\"\n            :param-name=\"locals.data.name\"\n            :param-color=\"locals.data.color\"\n            :param-group=\"controller.group\"\n            :param-column-id=\"document.id\"\n            :param-document=\"document\"\n            :param-board=\"params.board\"\n            :param-filter=\"params.filter\"\n            :param-disable-collapse=\"true\"\n            :param-board-card-params=\"params.boardCardParams\"\n            :param-readonly=\"params.readonly\"\n            :param-disable-animation=\"true\"\n            :param-new-document-command-ids=\"params.newDocumentCommandIds\"\n            :param-debug=\"params.debug\"\n            @selected=\"$emit('selected' ,$event, arguments[1])\"\n            @trash-enter=\"$emit('trash-enter')\"\n            @trash-leave=\"$emit('trash-leave')\"\n            @delete-document=\"$emit('delete-document', $event)\"\n></ae-layout>"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"348b11d6-075b-4b5a-8846-005fdab680d1","inheritedLocks":[null,null,null,null,null,null],"locks":[],"modified":{"at":"2025-04-17T08:26:36+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"35404daa-90fa-4c1b-89ec-86eeec5f0c37","previous":{"v":"a8f48416b7fea199"},"stamps":[],"t":1744878396240,"v":"a639e5f2d177599f"},{"a":["apps","089481c4-a42f-4a98-9bc9-12e9f1131f4b","5fa71c32-0186-4007-92a9-f03a32b0ff33","5fde1cdf-71c3-4851-b7ba-c5f2c551675f","397f3746-b4aa-4b9f-8d05-a512eecda8a7"],"a_depth":5,"a_forms":["folder","application-form","form-folder","form-folder","form"],"created":{"at":"2025-04-11T08:47:37+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"ct":1744361257180,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.ready = false\n    locals.displayedDocuments = []\n    this.documents = params.documents\n\n    locals.data = data\n    locals.document = document\n\n    this.handleNewDocuments()\n\n    watchParam('documents', (docs) => {\n      this.documents = [...(docs ?? [])]\n      this.handleNewDocuments()\n    })\n\n    Aeppic.watch(document.id, (newDocument) => {\n      if (newDocument.v === locals.document.v) {\n        return\n      }\n      locals.document = newDocument\n      locals.data = newDocument.data\n      this.handleNewDocuments()\n    })\n\n    locals.ready = true\n  }\n\n  handleNewDocuments() {\n    locals.displayedDocuments = this.filterDocuments(this.documents)\n  }\n\n  filterDocuments(documents) {\n    const result = documents.filter((doc) => {\n      const fieldData = doc.data[locals.data.fieldName]\n      if (fieldData == null) {\n        return false\n      } else {\n        return true\n      }\n    })\n    return result\n  }\n\n  get group() {\n    return {\n      name: params.group,\n      pull: 'clone',\n    }\n  }\n}","css":"","description":"","name":"rd:column-backlog","packages":[],"template":"<ae-layout  v-show=\"locals.ready\" \n            class=\"h-full rounded-md\"\n            layout-id=\"433bf79c-700a-41db-b7d1-c3d7ad95523a\"\n            :param-documents=\"locals.displayedDocuments\"\n            :param-name=\"locals.data.name\"\n            :param-color=\"locals.data.color\"\n            :param-group=\"controller.group\"\n            :param-column-id=\"document.id\"\n            :param-document=\"document\"\n            :param-board=\"params.board\"\n            :param-filter=\"params.filter\"\n            :param-disable-collapse=\"true\"\n            :param-board-card-params=\"params.boardCardParams\"\n            :param-readonly=\"params.readonly\"\n            :param-disable-animation=\"true\"\n            :param-new-document-command-ids=\"params.newDocumentCommandIds\"\n            :param-debug=\"params.debug\"\n            @selected=\"$emit('selected' ,$event, arguments[1])\"\n            @trash-enter=\"$emit('trash-enter')\"\n            @trash-leave=\"$emit('trash-leave')\"\n            @delete-document=\"$emit('delete-document', $event)\"\n></ae-layout>"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"45ab598d-61e7-43d6-b277-5fbbc62c1465","inheritedLocks":[null,null,null,null,null,null],"locks":[],"modified":{"at":"2025-04-17T08:26:28+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"397f3746-b4aa-4b9f-8d05-a512eecda8a7","previous":{"v":"e30ccf82ea029faf"},"stamps":[],"t":1744878388117,"v":"821207ff99d6fd7c"},{"a":["apps","089481c4-a42f-4a98-9bc9-12e9f1131f4b","5fa71c32-0186-4007-92a9-f03a32b0ff33","5fde1cdf-71c3-4851-b7ba-c5f2c551675f","5fbca3f7-50a7-4578-aa4c-bd4d70c0900d"],"a_depth":5,"a_forms":["folder","application-form","form-folder","form-folder","form"],"created":{"at":"2025-04-11T08:48:20+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"ct":1744361300605,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    // debugger\n    locals.ready = false\n    locals.displayedDocuments = []\n    this.documents = params.filteredBacklog\n\n    locals.data = data\n    locals.document = document\n\n    this.handleNewDocuments()\n\n    watchParam('filteredBacklog', (docs) => {\n      this.documents = [...(docs ?? [])]\n      this.handleNewDocuments()\n    })\n\n    Aeppic.watch(document.id, (newDocument) => {\n      if (newDocument.v === locals.document.v) {\n        return\n      }\n      locals.document = newDocument\n      locals.data = newDocument.data\n      this.handleNewDocuments()\n    })\n\n    locals.ready = true\n  }\n\n  handleNewDocuments() {\n    locals.displayedDocuments = this.filterDocuments(this.documents)\n  }\n\n  filterDocuments(documents) {\n    const result = documents.filter((doc) => {\n      const fieldData = doc.data[locals.data.fieldName]\n      if (fieldData == null) {\n        return false\n      } else {\n        return true\n      }\n    })\n    return result\n  }\n\n  get group() {\n    return {\n      name: params.group,\n      put: [],\n    }\n  }\n}","css":"","description":"","name":"rd:column-backlog","packages":[],"template":"<ae-layout  v-show=\"locals.ready\" \n            class=\"h-full rounded-md\"\n            layout-id=\"433bf79c-700a-41db-b7d1-c3d7ad95523a\"\n            :param-documents=\"locals.displayedDocuments\"\n            :param-name=\"locals.data.name\"\n            :param-color=\"locals.data.color\"\n            :param-group=\"controller.group\"\n            :param-column-id=\"document.id\"\n            :param-document=\"document\"\n            :param-board=\"params.board\"\n            :param-filter=\"params.filter\"\n            :param-disable-collapse=\"true\"\n            :param-board-card-params=\"params.boardCardParams\"\n            :param-readonly=\"params.readonly\"\n            :param-disable-animation=\"true\"\n            :param-new-document-command-ids=\"params.newDocumentCommandIds\"\n            :param-debug=\"params.debug\"\n            @selected=\"$emit('selected' ,$event, arguments[1])\"\n            @trash-enter=\"$emit('trash-enter')\"\n            @trash-leave=\"$emit('trash-leave')\"\n            @delete-document=\"$emit('delete-document', $event)\"\n></ae-layout>"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"8701cafd-c79f-4c1c-9a11-7bdb219fdde0","inheritedLocks":[null,null,null,null,null,null],"locks":[],"modified":{"at":"2025-04-17T08:26:41+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"5fbca3f7-50a7-4578-aa4c-bd4d70c0900d","previous":{"v":"c0e15ddc73160aae"},"stamps":[],"t":1744878401220,"v":"a5944c74d92c2ec7"},{"a":["apps","089481c4-a42f-4a98-9bc9-12e9f1131f4b","5fa71c32-0186-4007-92a9-f03a32b0ff33","5fde1cdf-71c3-4851-b7ba-c5f2c551675f","8bd04799-d815-4d29-bb40-7a60047af426"],"a_depth":5,"a_forms":["folder","application-form","form-folder","form-folder","form"],"created":{"at":"2025-04-11T08:47:21+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"ct":1744361241767,"data":{"aliases":[],"controller":"  class Controller {\n  async init() {\n    locals.ready = false\n    locals.displayedDocuments = []\n    this.documents = params.filteredBacklog ?? []\n\n    locals.data = data\n    locals.document = document\n\n    this.handleNewDocuments()\n\n    watchParam('filteredBacklog', (docs) => {\n      this.documents = [...(docs ?? [])]\n      this.handleNewDocuments()\n    })\n\n    Aeppic.watch(document.id, (newDocument) => {\n      if (newDocument.v === locals.document.v) {\n        return\n      }\n      locals.document = newDocument\n      locals.data = newDocument.data\n      this.handleNewDocuments()\n    })\n\n    locals.ready = true\n  }\n\n  handleNewDocuments() {\n    locals.displayedDocuments = this.filterDocuments(this.documents)\n  }\n\n  filterDocuments(documents) {\n    const result = documents.filter((doc) => {\n      const fieldData = doc.data[locals.data.fieldName]\n      if (fieldData == null) {\n        return false\n      } else {\n        return true\n      }\n    })\n    return result\n  }\n\n  async onChange(event) {\n    if (event.added) {\n      const editableDocument = await Aeppic.edit(event.document.id)\n      editableDocument.removeReference(locals.data.fieldName, null)\n      Aeppic.save(editableDocument)\n    }\n  }\n}","css":"","description":"","name":"rd:column-backlog","packages":[],"template":"<ae-layout  \n  v-show=\"locals.ready\" \n  class=\"h-full rounded-md\"\n  layout-id=\"433bf79c-700a-41db-b7d1-c3d7ad95523a\"\n  :param-documents=\"locals.displayedDocuments\"\n  :param-name=\"locals.data.name\"\n  :param-color=\"locals.data.color\"\n  :param-group=\"params.group\"\n  :param-column-id=\"document.id\"\n  :param-document=\"document\"\n  :param-board=\"params.board\"\n  :param-filter=\"params.filter\"\n  :param-disable-collapse=\"true\"\n  :param-board-card-params=\"params.boardCardParams\"\n  :param-readonly=\"params.readonly\"\n  :param-disable-animation=\"true\"\n  :param-new-document-command-ids=\"params.newDocumentCommandIds\"\n  :param-debug=\"params.debug\"\n  @change=\"controller.onChange($event)\"\n  @selected=\"$emit('selected' ,$event, arguments[1])\"\n  @trash-enter=\"$emit('trash-enter')\"\n  @trash-leave=\"$emit('trash-leave')\"\n  @delete-document=\"$emit('delete-document', $event)\"\n></ae-layout>\n"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"d270bcc6-5d63-45dd-bc5f-0dbfe88df8fd","inheritedLocks":[null,null,null,null,null,null],"locks":[],"modified":{"at":"2025-05-07T14:39:48+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"8bd04799-d815-4d29-bb40-7a60047af426","previous":{"v":"fb2e96969c876ae6"},"stamps":[],"t":1746628788070,"v":"054959bbd21c843d"},{"id":"50376ba0-0a1b-4280-89fa-ac265e0aaf8a","v":"0c2a98e056d7bd8b","previous":{"v":"e15516d33b09acd7"},"p":"ddaa6921-770e-4a73-b8a4-b4a99abed24b","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"rd:comment","template":"{rd:comment - Notification Request Form }","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-05-25T14:53:10+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-05-25T14:55:24+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1653490524175,"ct":1653490390890,"a_depth":4,"a":["apps","c9b12874-99d0-40e8-86cc-c3fe0477a15a","9b5518e5-c3ea-4446-9dc8-8628d8e8fabe","ddaa6921-770e-4a73-b8a4-b4a99abed24b"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"e89978e6-87b9-4b20-b830-b8e516de9baa","v":"9611306d648dfb70","previous":{"v":"15e2c5345328865b"},"p":"5475727b-0e0c-412a-8452-23b9c5b242f2","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"rd:contacts","template":"<!-- <ae-list  list-id=\"table-list\"\n          :search=\"'p:' + document.id + ' f.id:' + locals.FORMS.Kunde\"\n          @selected=\"Aeppic.drillInto($event)\"\n          :search-options=\"{ searchAllFields: true, size: 5000 }\"\n          :sort=\"['data.name', 'id']\"\n          :param-disable-filter-bar=\"true\"\n          :params=\"{ columns: 'data.name,data.kategorie,data.branche,data.kundennummer,data.interesseAn,data.verantwortlich', designs: ',,,,,table:avatar--small', headers: '', rowHeight: 52 }\"\n></ae-list>\n -->\n\n<ae-design name=\"rd:page-inner\" :document=\"locals.contactsFolder\" class=\"h-full\"></ae-design>","css":"","controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      ContactsFolder: '51138ce9-66f4-44dd-9254-b8b744e88999'\n    }\n\n    locals.contactsFolder = null\n    locals.contactsFolder = await Aeppic.findOne(`a:${document.a[0]} f.id:${this.FORMS.ContactsFolder}`)\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-05-25T09:35:10+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-05-25T10:20:55+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1653474055244,"ct":1653471310910,"a_depth":4,"a":["apps","9d6ee173-26fe-4472-a271-7667f717094e","6743ef9a-c21b-443f-91b8-4dd86886ee8c","5475727b-0e0c-412a-8452-23b9c5b242f2"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"2a22e183-7d7e-4cfb-a17d-9daf849c53f6","v":"71f33e41754c0291","p":"7c0dc244-592b-4950-9539-e451c1fa5ca1","f":{"id":"design-form","v":"4b1c7a4912f80103","text":"Design"},"data":{"name":"rd:context-actions","template":"<div class=\"h-full flex items-center\">\n  <ae-layout\n    v-if=\"locals.isBelowStammdaten\"\n    layout-id=\"262e95e6-f1f8-477c-834b-89d533027e1e\"\n    :param-document=\"document\"\n    :param-commands=\"['fdbcdbc2-7371-416d-81ab-1416591ee305']\"\n  ></ae-layout>\n</div>\n","css":"","controller":"class Controller {\n  init() {\n    const projektFormId = '98c77209-1245-43d6-90b5-8625183f470c'\n\n    locals.isBelowStammdaten = !document.a_forms.includes(projektFormId)\n\n    if (!locals.isBelowStammdaten) {\n      Aeppic.navigateTo(document.p)\n      return\n    }\n  }\n}","packages":[],"parameters":[],"parametersDescriptions":[],"parametersTypes":[],"parametersControls":[],"parametersCardinalities":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-06-25T11:27:02+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"modified":{"at":"2025-09-29T11:44:00+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"t":1772809247777,"ct":1772809247777,"a_depth":4,"a":["apps","94a64d89-d204-4918-b147-d717914fb03e","da519a4d-e51d-46ae-9ce7-bd3f494d2e8a","7c0dc244-592b-4950-9539-e451c1fa5ca1"],"a_forms":["folder","application-form","form-folder","design-folder"],"inheritedLocks":[null,null,null,null,null],"stamps":[],"cloneOf":{"id":"8f3918ba-499d-4e19-8d4a-1c848c0874ec","v":"e002e1c1f86702e0","text":"rd:more-actions"},"originalCloneOf":{"id":"8f3918ba-499d-4e19-8d4a-1c848c0874ec","v":"e002e1c1f86702e0","text":"rd:more-actions"},"previous":{"v":"5fa8e9ae8dd822d0","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"}},"meta":{"modified":{"at":"2026-03-06T15:00:47+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":"","impersonatedBy":"","from":"","client":"server"}}},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","b5dcdd5b-6a84-4e13-92a2-052a1f1d1492"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2024-11-03T12:47:18+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1730638038437,"data":{"aliases":[],"controller":"async fillDemoData() {\n  const editable = await Aeppic.edit(document)\n  editable.data = {\n    ...editable.data,\n      \"inhaltAntrag\": \"dasdas\",\n  \"systemContextDiagramm\": [],\n  \"systemKontextDiagrammKommentar\": \"\",\n  \"nutzungMobileEndgeraete\": \"NEIN\",\n  \"nutzungMobileEndgeraeteBestandseintrag\": {\n    \"id\": \"\",\n    \"v\": \"\",\n    \"text\": \"\"\n  },\n  \"nutzungMobileEndgeraeteAbweichung\": \"\",\n  \"nutzungMobileEndgeraeteBezugsquelle\": \"\",\n  \"nutzerIntern\": \"0\",\n  \"betroffeneIntern\": \"1_10\",\n  \"nutzerExtern\": \"1_10\",\n  \"adminsIntern\": \"0\",\n  \"adminsExtern\": \"false\",\n  \"adminsExternBeschreibung\": \"\",\n  \"berichtslinieWeisungsgebundeneAdministratoren\": \"false\",\n  \"berichtslinieWeisungsgebundeneAdministratorenBeschreibung\": \"\",\n  \"rollenUndBerechtigungskonzeptText\": \"{\\\"type\\\":\\\"doc\\\",\\\"content\\\":[{\\\"type\\\":\\\"paragraph\\\",\\\"content\\\":[{\\\"type\\\":\\\"text\\\",\\\"text\\\":\\\"dasd\\\"}]}],\\\"tiptapVersion\\\":\\\"2.x\\\"}\",\n  \"rollenUndBerechtigungskonzeptAnhaenge\": [],\n  \"benutzerUndRechteProzess\": \"asdasdsd\",\n  \"authentifizierungsdienst\": \"ACTIVE_DIRECTORY\",\n  \"verzeichnisdienst\": \"\",\n  \"passwortrichtlinie\": \"\",\n  \"zweiFaktorAuthentifizierung\": \"false\",\n  \"zweiFaktorAuthentifizierungFaktoren\": \"\",\n  \"instanzenEntwicklungTest\": \"KEINE\",\n  \"entscheidungFunktionaleUpdates\": \"IT_SYSTEMEIGNER\",\n  \"entscheidungFunktionaleUpdatesBeschreibung\": \"\",\n  \"entscheidungTechnischeUpdates\": \"HERSTELLER\",\n  \"entscheidungTechnischeUpdatesBeschreibung\": \"\",\n  \"changemanagement\": \"dasd\",\n  \"firstLevelSupport\": \"false\",\n  \"firstLevelSupportIntern\": \"\",\n  \"firstLevelSupportInternAbteilung\": \"\",\n  \"firstLevelSupportExternBeschreibung\": \"\",\n  \"datenschutzseitigeRiskobewertung\": \"false\",\n  \"datenschutzseitigeRiskobewertungBeschreibung\": \"\",\n  \"systemUnterstuetzungDatenschutz\": \"false\",\n  \"systemUnterstuetzungDatenschutzBeschreibung\": \"\",\n  \"datenartenAufbewahrungsdauerRechtlicheGrundlagenText\": \"{\\\"type\\\":\\\"doc\\\",\\\"content\\\":[{\\\"type\\\":\\\"paragraph\\\",\\\"content\\\":[{\\\"type\\\":\\\"text\\\",\\\"text\\\":\\\"dasdas\\\"}]}],\\\"tiptapVersion\\\":\\\"2.x\\\"}\",\n  \"datenartenAufbewahrungsdauerRechtlicheGrundlagenAnhaenge\": [],\n  \"schnittstellenText\": \"{\\\"type\\\":\\\"doc\\\",\\\"content\\\":[{\\\"type\\\":\\\"paragraph\\\",\\\"content\\\":[{\\\"type\\\":\\\"text\\\",\\\"text\\\":\\\"asdasdas\\\"}]}],\\\"tiptapVersion\\\":\\\"2.x\\\"}\",\n  \"schnittstellenAnhaenge\": [],\n  \"datenverarbeitungOrt\": \"INTERN_EU\",\n  \"datenverarbeitungSchutzniveau\": \"KEINE\",\n  \"datenverarbeitungBeschreibung\": \"\",\n  \"loeschungAblaufAufbewahrungsfrist\": \"SYSTEM\",\n  \"loeschungAblaufAufbewahrungsfristBeschreibung\": \"\",\n  \"verarbeitungPersonenbezogeneDaten\": \"false\",\n  \"verarbeitungPersonenbezogeneDatenVerarbeiter\": \"\",\n  \"verarbeitungPersonenbezogeneDatenLand\": \"\",\n  \"verarbeitungPersonenbezogeneDatenRechtsgrundlage\": \"\",\n  \"archivierungPersonenbezogeneDaten\": \"false\",\n  \"archivierungPersonenbezogeneDatenBeschreibung\": \"\",\n  \"datenuebertragungAndereKonzernteile\": \"false\",\n  \"itsecurityRisikobewertung\": \"false\",\n  \"itsecurityRisikobewertungBeschreibung\": \"\",\n  \"auswertungenLogfilesText\": \"{\\\"type\\\":\\\"doc\\\",\\\"content\\\":[{\\\"type\\\":\\\"paragraph\\\",\\\"content\\\":[{\\\"type\\\":\\\"text\\\",\\\"text\\\":\\\"asdasd\\\"}]}],\\\"tiptapVersion\\\":\\\"2.x\\\"}\",\n  \"auswertungenLogfilesAnhaenge\": [],\n  \"leistungsVerhaltenskontrolle\": \"BEABSICHTIGT\",\n  \"leistungsVerhaltenskontrolleZweck\": \"dsadasd\",\n  \"leistungsVerhaltenskontrolleMassnahmen\": \"\",\n  \"vorgabenUmgang\": \"false\",\n  \"vorgabenUmgangBeschreibung\": \"\",\n  \"verpflichtungUmgang\": \"false\",\n  \"nutzerNachweisQualifikation\": \"false\",\n  \"nutzerNachweisQualifikationBeschreibung\": \"\",\n  \"systemSprachenVerfuegbar\": \"false\",\n  \"systemSprachenVerfuegbarBeschreibung\": \"\",\n  \"lerninhalte\": \"INNERHALB_ANWENDUNG\",\n  \"lerninhalteLearningCenter\": \"\",\n  \"lerninhalteItSystem\": \"\",\n  }\n\n  Aeppic.save(editable)\n}","css":"","description":"","name":"rd:context-actions","packages":[],"template":"<button v-if=\"Aeppic.Account?.data.allowDevMode\" @click.stop=\"controller.fillDemoData()\">DEV: FILL Demo Data</button>"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"2dde4738-81a6-4492-a4a8-affa1c6d500e","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-06-22T14:03:47+00:00","backedBy":"","by":"b7485498-f1f3-4ab1-87d1-9cb63ea890c8","client":"server","from":"","impersonatedBy":""},"p":"b5dcdd5b-6a84-4e13-92a2-052a1f1d1492","previous":{"v":"71ed4d73dcac85cc"},"stamps":[],"t":1782137027429,"v":"fcbc4bfba1be59c7"},{"a":["apps","94a64d89-d204-4918-b147-d717914fb03e","f254ce25-42f1-4333-8ee7-23554bf746c1","88b1f60e-71f6-46f5-94ea-3d7bbe972950"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2025-09-29T11:54:07+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1759146847747,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:context-actions","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<ae-layout\n  v-if=\"document.stamps?.find(stamp => stamp.type.id === '2b710bd8-2dd7-4b37-8123-ab85f1aabb4f')\"\n  layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n  param-icon=\"far fa-bell-slash\"\n  param-title=\"Verantwortlich Benachrichtigung nach dem Kopieren in Projekt ist deaktiviert\"\n  :param-primary=\"true\"\n></ae-layout>\n"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"b91509cd-3450-42b3-bbae-f348ed5a1081","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-09-29T11:56:28+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"88b1f60e-71f6-46f5-94ea-3d7bbe972950","previous":{"v":"25469627e76034da"},"stamps":[],"t":1759146988385,"v":"b0bf70bd135fe3a2"},{"id":"da12b458-e74d-4f07-85fb-52b2d8aba47d","v":"0c861f26cbbd1daa","cloneOf":{"id":"593e6b0d-4227-4a20-8ae4-038314c3057d","v":"d87cf00c5858dd44","text":"additional-toolbar-buttons"},"originalCloneOf":{"id":"593e6b0d-4227-4a20-8ae4-038314c3057d","v":"d87cf00c5858dd44","text":"additional-toolbar-buttons"},"previous":{"v":"90a6fc487fb33c23"},"p":"94886126-c88d-4ea0-b088-8ea5ad155b08","f":{"id":"design-form","v":"0061789efb5c5c29","text":"Design"},"data":{"name":"rd:context-actions","template":"<div class=\"flex gap-1\"  v-if=\"locals.isManager\">\n  <!-- <ae-layout layout-id=\"fde4ed81-1f72-4e27-b2bf-f1291c4ec7ea\"\n            :params=\"{ target: document, command: '5d856de7-f6db-4b4f-bc68-0b053aeb6829'}\"\n            v-if=\"data.versendet && locals.isManager\"\n            param-border=\"border-slate-200\"\n  ></ae-layout>  -->\n  <ae-layout v-if=\"params.windowWidth > 1280\"\n            layout-id=\"262e95e6-f1f8-477c-834b-89d533027e1e\" \n            :param-document=\"document\"\n  ></ae-layout>\n  <template v-else>\n    <ae-layout  layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n                param-icon=\"far fa-edit\"\n                @selected=\"controller.open()\"\n                param-border=\"border\"\n                param-text=\"Bearbeiten\"\n    ></ae-layout>\n\n    <div class=\"fixed top-0 bottom-0 h-screen right-0 z-50 ease-in-out duration-500  max-w-[90%] border-l shadow-lg overflow-hidden bg-white\"\n      :class=\"[locals.show ?  'w-[500px] opacity-1' : 'w-0 opacity-0' ]\"\n      ref=\"container\"\n    >\n      <div  class=\"flex flex-col overflow-hidden h-full\" \n              v-if=\"locals.show\"\n            v-show=\"locals.showList\" \n      >\n        <div class=\"flex justify-between  px-4 pt-2\">\n          <div class=\"flex gap-2 items-center\">\n            <div class=\"py-1 text-lg \">\n            Unterweisung\n            </div>\n\n            <ae-layout layout-id=\"262e95e6-f1f8-477c-834b-89d533027e1e\"\n                      :param-document=\"document\"\n            ></ae-layout>\n          </div>\n\n          <ae-layout v-if=\"!params.noClose\" \n                  layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n                  param-icon=\"fal fa-times\"\n                  @selected=\"controller.close()\"\n                  class=\"self-end text-neutral-500 text-lg\"\n          ></ae-layout>\n        </div>\n\n        <div class=\"overflow-auto p-4 flex-1\">\n    <ae-form layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\" :document=\"document\" :auto-save=\"true\" :view=\"locals.receiversView\"></ae-form>\n\n        </div>\n      </div>\n    </div>\n  </template>   \n</div>\n\n<!-- <ae-layout layout-id=\"fde4ed81-1f72-4e27-b2bf-f1291c4ec7ea\"\n          :params-document=\"document\"\n           v-if=\"!data.versendet && locals.isManager\"\n           param-border=\"border-slate-200\"\n></ae-layout>  -->\n","css":"","controller":"class Controller {\n  async init() {\n    console.warn('INIT')\n    this.handler = (clickEvent) => {\n      if (!locals.show) {\n        return\n      }\n\n      const clickIsInContainer = clickEvent.composedPath().find(p => p === $refs.container)\n\n      if (!clickIsInContainer) {\n        this.close()\n      }\n    } \n    \n    locals.receiversView = {\n      only: {\n        fields: [\n          'empfaenger',\n          'fragen',\n          'erinnerung',\n          'kommentar',\n          'bewertungAktiv',\n          'kommentarAktiv',\n        ]\n      }\n    }\n    locals.isManager = false\n    const results = await Aeppic.Actions.run(['7c4c6268-b24a-43c4-b876-a2a07f13942c'], { Account: Aeppic.Account, target: document })\n    locals.isManager = results[0].value === true\n  }\n\n  _setupClick() {\n    packages.window.addEventListener('click', this.handler)\n  }\n\n  _tearDownClick() {\n    packages.window.removeEventListener('click', this.handler)\n\n  }\n\n  open() {\n    if (locals.show) {\n      return\n    }\n    \n    this._setupClick()\n\n    locals.show = true\n \n    Aeppic.setTimeout(() => {\n      locals.showList = true\n    }, 450)\n  }\n\n  close() {\n    console.log('close')\n    this._tearDownClick()\n    locals.show = false\n\n    locals.showList = false\n  }\n\n  destroy() {\n    this._tearDownClick()\n  }\n}","packages":[{"id":"10843fbf-4f0c-416b-be7d-42d6bbd0ae68","v":"d4ce6dec568c3dc1","text":"Window"}],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-10-11T07:32:03+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-10-17T11:59:15+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1697543955442,"ct":1697009523786,"a_depth":4,"a":["apps","f416e371-07cc-4987-a6de-5934ef5ff3e4","1096c5df-2773-4914-9455-dc54e0f3e0e5","94886126-c88d-4ea0-b088-8ea5ad155b08"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"fc7a14b4-0111-44c9-856e-11ba88240079","v":"66fae10e3725e112","previous":{"v":"369f2d50e068e1bd"},"p":"8fc08287-dbcc-4e41-9d5d-28e4cd828943","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"rd:context-actions","template":"<template v-if=\"params.windowWidth <= 1280\">\n  <ae-layout  layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n              param-icon=\"far fa-exchange\"\n              @selected=\"controller.open()\"\n              :param-count=\"data.aktivitaeten.length\"\n              param-border=\"border\"\n  ></ae-layout> \n\n  <div class=\"fixed top-0 bottom-0 h-screen right-0 z-50 ease-in-out duration-500  max-w-[90%] border-l shadow-lg overflow-hidden bg-white\"\n    :class=\"[locals.show ?  'w-[500px] opacity-1' : 'w-0 opacity-0' ]\"\n    ref=\"container\"\n  >\n    <div  class=\"flex flex-col overflow-hidden h-full\" \n            v-if=\"locals.show\"\n          v-show=\"locals.showList\"\n    >\n      <div class=\"flex justify-between  px-4 pt-2\">\n        <div class=\"flex gap-2 items-center\">\n          <div class=\"py-1 text-lg \">\n          Aktivitäten\n          </div>\n\n          <ae-layout layout-id=\"262e95e6-f1f8-477c-834b-89d533027e1e\"\n                    :param-document=\"document\"\n          ></ae-layout>\n        </div>\n\n        <ae-layout v-if=\"!params.noClose\" \n                layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n                param-icon=\"far fa-times\"\n                @selected=\"controller.close()\"\n                class=\"self-end text-neutral-500 text-lg\"\n        ></ae-layout>\n      </div>\n\n      <div class=\"overflow-auto p-4 flex-1\">\n        <ae-list \n                list-id=\"2e798091-303f-406b-a42a-93aa1cd8425c\"\n                :documents=\"data.aktivitaeten\"\n                @selected=\"Aeppic.drillInto($event, arguments[1])\"\n                param-design=\"rd:card\"\n                :sort=\"[{ field: 'data.datum', descending: true }, 'id']\"\n        ></ae-list> \n      </div>\n    </div>\n    <!-- <ae-layout  v-if=\"locals.show\"\n                v-show=\"locals.showList\"\n                layout-id=\"0e6b3b93-8e22-4616-9389-a00a6a1a4f59\"\n                :param-document=\"params.document\"\n                :param-highlight-comment=\"params.highlightComment\"\n                class=\"shadow h-full w-full\"\n              @close=\"controller.closeComments()\"\n    ></ae-layout> -->\n  </div>\n</template>   ","css":"","controller":"class Controller {\n  init() {\n    this.handler = (clickEvent) => {\n      if (!locals.show) {\n        return\n      }\n\n      const clickIsInContainer = clickEvent.composedPath().find(p => p === $refs.container)\n      console.log({ clickIsInContainer })\n\n      if (!clickIsInContainer) {\n        this.close()\n      }\n    } \n  }\n\n  _setupClick() {\n    packages.window.addEventListener('click', this.handler)\n  }\n\n  _tearDownClick() {\n    packages.window.removeEventListener('click', this.handler)\n\n  }\n\n  open() {\n    if (locals.show) {\n      return\n    }\n    \n    this._setupClick()\n\n    locals.show = true\n \n    Aeppic.setTimeout(() => {\n      locals.showList = true\n    }, 450)\n  }\n\n  close() {\n    this._tearDownClick()\n    locals.show = false\n\n    locals.showList = false\n  }\n\n  destroy() {\n    this._tearDownClick()\n  }\n}","packages":[{"id":"10843fbf-4f0c-416b-be7d-42d6bbd0ae68","v":"d4ce6dec568c3dc1","text":"Window"}],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-09-19T13:34:57+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-12-21T11:45:16+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1703159116548,"ct":1663594497375,"a_depth":4,"a":["apps","9d6ee173-26fe-4472-a271-7667f717094e","53b70eca-0cef-448b-9674-22a70a937eb1","8fc08287-dbcc-4e41-9d5d-28e4cd828943"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"3d214791-b859-400b-86b0-3c4ebcd0d020","v":"96be07dbc2de4504","cloneOf":{"id":"27368e44-9660-49fc-8af6-1bd0e2c2fa52","v":"b0b788ec981d4162","text":"rd:customer"},"originalCloneOf":{"id":"27368e44-9660-49fc-8af6-1bd0e2c2fa52","v":"b0b788ec981d4162","text":"rd:customer"},"previous":{"v":"7cc754eee23c0891"},"p":"8fc08287-dbcc-4e41-9d5d-28e4cd828943","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"rd:contracts","template":"<div class=\"flex w-full h-full\">\n  <ae-form :document=\"document\" \n            layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\"\n            :view=\"locals.view\"\n            class=\"flex-1 p-2\"\n            :auto-save=\"true\"\n  ></ae-form>\n</div>","css":"","controller":"class Controller {\n  init() {\n    locals.view = {\n      only: {\n        fields: [\n                 'vertraege',\n                ]\n      }\n    }\n\n  } \n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-06-02T13:08:28+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-03-03T15:17:07+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1677856627819,"ct":1654175308589,"a_depth":4,"a":["apps","9d6ee173-26fe-4472-a271-7667f717094e","53b70eca-0cef-448b-9674-22a70a937eb1","8fc08287-dbcc-4e41-9d5d-28e4cd828943"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","1b166603-d0f3-4f16-98c4-0534afbd6f5a"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2025-10-24T13:25:51+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1761312351480,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      DefectsFolders: '760efba8-d733-4a34-ada6-b7d6d5c6d637',\n      Defect: '46a28dfa-7518-4867-9519-a5f4cd9b9967',\n    }\n\n    locals.defect = null\n    locals.view = {\n      only: {\n        fields: [\n          'done',\n          'name',\n          'inProgress',\n          'priority',\n          'dueStart',\n          'responsible',\n          'dueDateTime',\n          'dueEnd',\n          'description',\n          'workflowStatus',\n          'released',\n          'type',\n          'status',\n          'maintenanceExecution',\n          'facility',\n          'location',\n          'object',\n          'workItems',\n          'team',\n          'informationTeam',\n          // 'started',\n          // 'ended',\n          // 'comment',\n          // 'photos',\n          // 'signature',\n          // 'acknowledgedBy',\n          // 'acknowledgedAt',\n        ],\n      },\n    }\n\n    locals.showCreateDefect = false\n\n    await this.initialize()\n  }\n\n  async initialize() {\n    locals.showCreateDefect = false\n\n    const defectsLocation = await Aeppic.findOne(`p:${document.p} f.id:${this.FORMS.DefectsFolders}`)\n\n    locals.defect = await Aeppic.new(this.FORMS.Defect, defectsLocation)\n    locals.defect.data = {\n      name: `${document.data.maintenance.text} ${Aeppic.DateTime.local().toLocaleString(Aeppic.DateTime.DATE_SHORT)}`,\n      object: document.data.object,\n      location: document.data.location,\n      team: document.data.team.concat().filter(Boolean),\n      facility: document.data.facility,\n    }\n\n    locals.defect.addReference('maintenanceExecution', document)\n\n    const workItemsResult = await Aeppic.Commands.execute(\n      'f9f3e409-6237-4e92-b31b-0193afeba6ff',\n      document.data.maintenance\n    )\n    if (workItemsResult.ok) {\n      const errornousWorkItems = workItemsResult.value.filter((work) => {\n        if (work.data.status === 'FAULTY') {\n          locals.defect.addReference('workItems', work)\n\n          return true\n        }\n\n        return false\n      })\n\n      locals.showCreateDefect = errornousWorkItems.length > 0\n    }\n  }\n\n  async saveDefect() {\n    Aeppic.save(locals.defect)\n\n    await this.initialize()\n  }\n}\n","css":"","description":"","name":"rd:create-defects","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<section>\n  <header class=\"text-lg font-bold mb-1\">Reparatur erstellen</header>\n  <div v-if=\"locals.defect?.data.workItems.length === 0\" class=\"mb-4 flex\">\n    <ae-layout\n      layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n      :param-icon=\"locals.showCreateDefect ? 'far fa-arrow-up' : 'far fa-arrow-down'\"\n      param-text=\"Reparatur ohne Mängel erstellen\"\n      @selected=\"locals.showCreateDefect = !locals.showCreateDefect\"\n      :param-primary=\"true\"\n    ></ae-layout>\n  </div>\n\n  <template v-if=\"locals.showCreateDefect\">\n    <ae-form\n      layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\"\n      ref=\"form\"\n      :document=\"locals.defect\"\n      class=\"my-2\"\n      :view=\"locals.view\"\n    ></ae-form>\n\n    <div class=\"flex\">\n      <ae-layout\n        layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n        param-icon=\"far fa-save\"\n        param-text=\"Reparatur speichern\"\n        :param-primary=\"true\"\n        @selected=\"controller.saveDefect()\"\n      ></ae-layout>\n    </div>\n  </template>\n</section>\n"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"aae640b6-75e7-43b5-9d2f-65509b8d1ad9","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-11-14T15:00:40+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"1b166603-d0f3-4f16-98c4-0534afbd6f5a","previous":{"v":"44f3ec05786a8eee"},"stamps":[],"t":1763132440826,"v":"06066826f4c4e89a"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","1b166603-d0f3-4f16-98c4-0534afbd6f5a"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"aae640b6-75e7-43b5-9d2f-65509b8d1ad9","text":"rd:create-defects","v":"06066826f4c4e89a"},"created":{"at":"2026-01-15T11:39:21+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"ct":1768477161420,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      DefectsFolders: '760efba8-d733-4a34-ada6-b7d6d5c6d637',\n      Defect: '46a28dfa-7518-4867-9519-a5f4cd9b9967',\n    }\n\n    locals.defect = null\n    locals.view = {\n      only: {\n        fields: [\n          'done',\n          'name',\n          'inProgress',\n          'priority',\n          'dueStart',\n          'responsible',\n          'dueDateTime',\n          'dueEnd',\n          'description',\n          'workflowStatus',\n          'released',\n          'type',\n          'status',\n          'maintenanceExecution',\n          'facility',\n          'location',\n          'object',\n          'workItems',\n          'team',\n          'informationTeam',\n          // 'started',\n          // 'ended',\n          // 'comment',\n          // 'photos',\n          // 'signature',\n          // 'acknowledgedBy',\n          // 'acknowledgedAt',\n        ],\n      },\n    }\n\n    locals.showCreateDefect = false\n\n    await this.initialize()\n  }\n\n  async initialize() {\n    locals.showCreateDefect = false\n\n    const defectsLocation = await Aeppic.findOne(`p:${document.p} f.id:${this.FORMS.DefectsFolders}`)\n\n    locals.defect = await Aeppic.new(this.FORMS.Defect, defectsLocation)\n    locals.defect.data = {\n      name: `${document.data.maintenance.text} ${Aeppic.DateTime.local().toLocaleString(Aeppic.DateTime.DATE_SHORT)}`,\n      object: document.data.object,\n      location: document.data.location,\n      team: document.data.team.concat().filter(Boolean),\n      facility: document.data.facility,\n    }\n\n    locals.defect.addReference('maintenanceExecution', document)\n\n    const workItemsResult = await Aeppic.Commands.execute(\n      'f9f3e409-6237-4e92-b31b-0193afeba6ff',\n      document.data.maintenance\n    )\n    if (workItemsResult.ok) {\n      const errornousWorkItems = workItemsResult.value.filter((work) => {\n        if (work.data.status === 'FAULTY') {\n          locals.defect.addReference('workItems', work)\n\n          return true\n        }\n\n        return false\n      })\n\n      locals.showCreateDefect = errornousWorkItems.length > 0\n    }\n  }\n\n  async saveDefect() {\n    Aeppic.save(locals.defect)\n\n    await this.initialize()\n  }\n}\n","css":"","description":"","name":"rd:create-defects WIP","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<section>\n  <header class=\"text-lg font-bold mb-1\">Reparatur erstellen</header>\n  <div v-if=\"locals.defect?.data.workItems.length === 0\" class=\"mb-4 flex\">\n    <ae-layout\n      layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n      :param-icon=\"locals.showCreateDefect ? 'far fa-arrow-up' : 'far fa-arrow-down'\"\n      param-text=\"Reparatur ohne Mängel erstellen\"\n      @selected=\"locals.showCreateDefect = !locals.showCreateDefect\"\n      :param-primary=\"true\"\n    ></ae-layout>\n  </div>\n\n  <template v-if=\"locals.showCreateDefect\">\n    <ae-form\n      layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\"\n      ref=\"form\"\n      :document=\"locals.defect\"\n      class=\"my-2\"\n      :view=\"locals.view\"\n    ></ae-form>\n\n    <div class=\"flex\">\n      <ae-layout\n        layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n        param-icon=\"far fa-save\"\n        param-text=\"Reparatur speichern\"\n        :param-primary=\"true\"\n        @selected=\"controller.saveDefect()\"\n      ></ae-layout>\n    </div>\n  </template>\n</section>\n"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"f927ede0-f9a5-4b3d-bce9-2881aa276992","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-01-19T11:25:28+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"aae640b6-75e7-43b5-9d2f-65509b8d1ad9","text":"rd:create-defects","v":"06066826f4c4e89a"},"p":"1b166603-d0f3-4f16-98c4-0534afbd6f5a","previous":{"v":"866b1a10bbaeb555"},"stamps":[],"t":1768821928548,"v":"f09f16904797a725"},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","83c74f6a-fe5c-483e-a2ef-0498bd4aeff6"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"bbc432e2-03a2-42ca-aa38-9ecb1783b44c","text":"rd:closed","v":"d41ba7cb7c71e0cb"},"created":{"at":"2023-07-19T12:22:27+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1689769347571,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.filter = `f.id:0bb3d600-faf0-4a5c-b49f-7994d234ae76`\n    locals.sort = [\n      { field: 'data.creationTimestamp', descending: true },\n      { field: 'applicationNumber', descending: true },\n      { field: 'id' },\n    ]\n\n    locals.help = `Hier werden die 100 zuletzt erstellten Anträge angezeigt. Diese Liste zeigt nur für Sie aktuell sichtbare Anträge an.`\n\n    locals.applicationsByStamps = JSON.parse(data.applicationsByStamps)\n\n    this._chart = null\n    locals.labels = []\n    locals.chartData = []\n    locals.backgroundColor = []\n    locals.borderColor = []\n\n    await Aeppic.nextRenderPass()\n\n    Aeppic.watch(document, (doc) => {\n      locals.applicationsByStamps = JSON.parse(doc.data.applicationsByStamps)\n      this.createDiagram()\n    })\n\n    this.createDiagram()\n  }\n\n  async createDiagram() {\n    console.log('createDiagram')\n    const stampTypes = Aeppic.sort((await Aeppic.getAll(Object.keys(locals.applicationsByStamps))).filter(d => !!d), 'data.name')\n\n    if (this._chart) {\n      this._chart.destroy()\n    }\n\n    locals.labels = []\n    locals.chartData = [] \n    locals.backgroundColor = []\n    locals.borderColor = []\n\n    const datasets = []\n\n\n    console.log({ stampTypes })  \n\n    const colorsByStampId = {\n      '0b37a29f-97ad-4c23-8ab3-3dda160b9faf': '#004b23', // P1\n      '71cb7da0-3ba5-40b9-ae16-31c344078bf7': '#006400', // P2\n      '957f2631-7be3-4e01-9c20-b6b1e9a1b111': '#007200', // P3\n      '42af64bc-da74-42ef-9cb3-f3e5838b2bff': '#008000', // P4\n      '71a809e7-f4d1-4906-81b7-0be758cbc29e': '#38b000', // P5\n      '5d5d870e-7c5a-454e-8273-2c7e9f5f735f': '#70e000', // P6\n      '6ae60622-bf9f-4e59-bc31-5a240859be52': '#9ef01a', // P7\n      'bb3c8df8-6398-43f6-b001-5450fbfa2a37': '#ccff33', // K\n    } \n\n    for (const stampType of stampTypes) {\n      const count = locals.applicationsByStamps[stampType.id]\n\n      if (!count) {\n        continue\n      }\n\n      // datasets.push({\n      //   data: [count],\n      //   backgroundColor: [stampType.data.color || 'black'],\n      //   label: [stampType.data.name]\n      // })\n\n      locals.labels.push(stampType.data.name)\n      locals.backgroundColor.push(colorsByStampId[stampType.id] || 'lightgrey')\n      locals.chartData.push(count)\n    }\n\n    // // fontawesome colors, border is 1 step up in palette\n    // if (doc.data.aufgabenErledigt > 0) {\n    //   locals.labels.push('Erledigt')\n    //   locals.chartData.push(doc.data.aufgabenErledigt)\n    //   locals.backgroundColor.push('#22c55e')\n    //   locals.borderColor.push('#16a34a')\n    // }\n    // if (doc.data.aufgabenBearbeitung > 0) {\n    //   locals.labels.push('In Bearbeitung')\n    //   locals.chartData.push(doc.data.aufgabenBearbeitung)\n    //   locals.backgroundColor.push('#facc15')\n    //   locals.borderColor.push('#eab308')\n    // }\n    // if (doc.data.aufgabenOffen > 0) {\n    //   locals.labels.push('Offen')\n    //   locals.chartData.push(doc.data.aufgabenOffen)\n    //   locals.backgroundColor.push('#cbd5e1')\n    //   locals.borderColor.push('#94a3b8')\n    // }\n    // if (doc.data.aufgabenUeberfaellig > 0) {\n    //   locals.labels.push('Überfällig')\n    //   locals.chartData.push(doc.data.aufgabenUeberfaellig)\n    //   locals.backgroundColor.push('#f43f5e')\n    //   locals.borderColor.push('#f43f5e')\n    // }\n    \n \n    this._chart = new Chart($refs.chart, { \n      options: {\n        responsive: false,\n        scales: {\n          y: {\n            beginAtZero: true\n          }\n        },\n        legend: {\n          display: false\n        },\n      }, \n      type: 'bar',\n      data: {\n        labels: locals.labels,\n        // datasets,\n        datasets: [{\n          label: '',\n          data: locals.chartData,\n          backgroundColor: locals.backgroundColor,\n          // borderColor: locals.borderColor,\n          // borderWidth: 1\n        }]\n      } \n    })\n  }\n\n  destroy() {\n    if (this._chart) {\n      this._chart.destroy()\n    }\n  }\n}\n","css":"","description":"","name":"rd:created","packages":[{"id":"4a6e27ae-e4a0-4e22-9997-b352899f86f5","text":"Chart.js","v":"c044548d5a0892ce"}],"template":"\n<div class=\"flex-1 mx-auto flex flex-col gap-4 w-full bg-white overflow-visible bg-white max-w-5xl px-4 py-2 my-2 xl:shadow-md xl:rounded-md\">\n  <div class=\"font-bold text-lg p-2\">\n    Erstellte Anträge\n  </div>\n\n  <div class=\"mx-auto\">\n    <canvas ref=\"chart\" width=\"800px\" height=\"400px\"></canvas>\n  </div>\n\n\n  <div class=\"flex gap-2\">\n    Zuletzt erstellte Anträge\n    <ae-control name=\"rd:help\" :document=\"document\" :param-text=\"locals.help\"></ae-control>\n  </div>\n  <ae-list  list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\"\n            :search=\"locals.filter\"\n            :sort=\"locals.sort\"\n            param-design=\"rd:card\"\n            @selected=\"Aeppic.drillInto($event, arguments[1])\"\n            :param-divide=\"true\"\n            :param-enable-filter-bar=\"true\"\n            :param-disable-sort=\"true\"\n            :root-document-id=\"document.id\"\n  ></ae-list>\n</div>     "},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"3f0aca8e-50e4-4e8c-9572-ea2e33440b62","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-01-23T10:29:34+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"bbc432e2-03a2-42ca-aa38-9ecb1783b44c","text":"rd:closed","v":"d41ba7cb7c71e0cb"},"p":"83c74f6a-fe5c-483e-a2ef-0498bd4aeff6","previous":{"v":"99ff4f5b1b0da374"},"stamps":[],"t":1769164174353,"v":"fd45d1642265b750"},{"id":"f69f0402-9c7a-4507-b15a-705ad846304a","v":"7a98cfadda5d9ca9","previous":{"v":"28df53a7db0a04ad","p":"fallback-designs","a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"]},"p":"1cc4b977-c14d-4587-af47-d6ac230f60b3","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:created-at","template":"<div>\n  {{ Aeppic.DateTime.fromISO(document.created.at).toLocaleString(params.format || Aeppic.DateTime.DATETIME_SHORT )}}\n</div>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-05-20T14:47:56+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-05-20T14:48:42+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1767870469078,"ct":1720684627136,"a_depth":3,"a":["apps","77ee8815-2c3a-4bb5-abd9-90541a545a24","1cc4b977-c14d-4587-af47-d6ac230f60b3"],"a_forms":["folder","application-form","design-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"meta":{"modified":{"at":"2026-01-08T11:07:49+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":"","impersonatedBy":"","from":"","client":"server"}}},{"id":"be39296f-bc83-4bbb-b41c-1faf9c89f45a","v":"e12a121192de1063","previous":{"v":"d9cbc7e8b65dfc32","p":"fallback-designs","a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"]},"p":"1cc4b977-c14d-4587-af47-d6ac230f60b3","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:creation-info","template":"<section class=\"flex gap-2 items-center hover:bg-neutral-200 hover:shadow-sm -m-1 p-1 cursor-pointer rounded-md\"\n        @click.stop=\"$refs.creationInfo.show($event)\">\n  <div v-if=\"document.created.at !== document.modified.at\"\n      class=\"flex gap-1 items-center \"\n  >\n    <ae-icon class=\"far fa-pen\"></ae-icon> \n    <div>\n      <template v-if=\"params.compact\">\n        {{ Aeppic.DateTime.fromISO(document.modified.at).toLocaleString(Aeppic.DateTime.DATE_SHORT) }}\n      </template>\n      <template v-else>\n          {{ Aeppic.DateTime.fromISO(document.modified.at).toRelative() }}\n      </template>\n    </div>\n  </div>\n  <div v-else class=\"flex gap-1 items-center\">\n    <ae-icon class=\"far fa-birthday-cake\"></ae-icon> \n    <div>\n      <template v-if=\"params.compact\">\n        {{ Aeppic.DateTime.fromISO(document.modified.at).toLocaleString(Aeppic.DateTime.DATE_SHORT) }}\n      </template>\n      <template v-else>\n          {{ Aeppic.DateTime.fromISO(document.modified.at).toRelativeCalendar() }}\n      </template>\n    </div>\n  </div>\n\n  <ae-layout layout-id=\"ffd34105-fa6a-44f5-aa63-64923233f178\"\n              :param-employees=\"[document.created.by, document.modified.by]\"\n              class=\"text-xl\"\n              v-if=\"!params.noUserBubbles\"\n  ></ae-layout>\n\n  <ae-popup ref=\"creationInfo\" @show=\"locals.showPopupBody = true\" @close=\"locals.showPopupBody = false\">\n    <div  v-if=\"locals.showPopupBody\" class=\"flex flex-col gap-2 p-2\">\n      <div>Erstellt</div>\n      <div>\n        {{ Aeppic.DateTime.fromISO(document.created.at).toLocaleString(Aeppic.DateTime.DATETIME_FULL) }}\n      </div>\n      <div class=\"flex gap-1 items-center\">\n        <ae-design name=\"avatar\" :document-id=\"document.created.by\"></ae-design>\n        <ae-design name=\"profile-title\" :document-id=\"document.created.by\"></ae-design>\n      </div>\n\n      <div class=\"mt-4\">Geändert</div>\n        <div>\n        {{ Aeppic.DateTime.fromISO(document.modified.at).toLocaleString(Aeppic.DateTime.DATETIME_FULL) }}\n      </div>\n      <div class=\"flex gap-1 items-center\">\n        <ae-design name=\"avatar\" :document-id=\"document.modified.by\"></ae-design>\n        <ae-design name=\"profile-title\" :document-id=\"document.modified.by\"></ae-design>\n      </div>\n    </div>\n  </ae-popup>\n</section>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-02-28T15:42:14+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2025-08-28T11:51:59+00:00","by":"729fa027-7e7e-4b06-9602-f535c43824f0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1767870469078,"ct":1677598934148,"a_depth":3,"a":["apps","77ee8815-2c3a-4bb5-abd9-90541a545a24","1cc4b977-c14d-4587-af47-d6ac230f60b3"],"a_forms":["folder","application-form","design-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"meta":{"modified":{"at":"2026-01-08T11:07:49+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":"","impersonatedBy":"","from":"","client":"server"}}},{"id":"5b8b7587-9918-4894-9ca0-6c24247f52d7","v":"749e42e3a41f17f9","previous":{"v":"3f4e5bbf1447e23e"},"p":"6d164aff-df9b-470d-9632-cfb6f5892509","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"rd:creator-avatar","template":"<ae-design v-if=\"locals.who\" name=\"avatar--resizes-with-font\" :document=\"locals.who\"></ae-design>\n<div v-else title=\"bizpin System\" class=\"w-[1em] h-[1em] border rounded-full bg-neutral-100 flex justify-center items-center\">\n  <ae-icon class=\"far fa-user-cog text-sm\"></ae-icon>\n</div>  ","css":"","controller":"class Controller {\n  async init() {\n    locals.who = null\n    const who = await Aeppic.get(data.who)\n\n    if (!who.a_forms.includes('apps') && !who.a_forms.includes('system')) {\n      locals.who = who\n    }\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-05-20T14:00:02+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2024-02-01T14:25:45+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1706797545558,"ct":1653055202249,"a_depth":4,"a":["apps","c9b12874-99d0-40e8-86cc-c3fe0477a15a","9b5518e5-c3ea-4446-9dc8-8628d8e8fabe","6d164aff-df9b-470d-9632-cfb6f5892509"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"a875fa89-44b3-4ea7-b93f-24c652bb3792","v":"6ef59631ae7ec983","previous":{"v":"baad7b0a251ceea9"},"p":"42cf6e7a-e304-49a6-86e1-c94d84f1d0d9","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"rd:creator-avatar","template":"<ae-design v-if=\"data.who.id\" name=\"avatar--resizes-with-font\" :document-id=\"data.who.id\"></ae-design>\n<div v-else title=\"bizpin System\">\n  <ae-icon class=\"far fa-cog\"></ae-icon>\n</div>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-05-20T14:25:48+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-05-20T14:26:53+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1653056813217,"ct":1653056748297,"a_depth":4,"a":["apps","14c27659-92d7-4b43-8c4f-25f4cceae591","2e759bfa-c685-48e8-81b4-cec70e93c521","42cf6e7a-e304-49a6-86e1-c94d84f1d0d9"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"27368e44-9660-49fc-8af6-1bd0e2c2fa52","v":"e9321f099500e8c9","previous":{"v":"ea07c4c5cd9227ad"},"p":"8fc08287-dbcc-4e41-9d5d-28e4cd828943","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"rd:customer","template":"<div class=\"flex h-full overflow-hidden\">\n  <div class=\"flex-1 h-full overflow-auto basis-2/3\">\n    <ae-form :document=\"document\" \n              :view=\"locals.view\"\n              :auto-save=\"true\"\n              layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\"\n              class=\"w-full\"\n    ></ae-form>\n  </div>\n\n  <div v-if=\"params.windowWidth >= 1280\"\n       class=\"h-full w-full basis-1/3 max-w-[500px] border-l bg-white overflow-hidden flex flex-col\"\n  >\n    <div class=\"flex justify-between items-center px-4 pt-2\">\n      <div class=\"text-lg py-1\">\n        Aktivitäten\n      </div>\n \n      <ae-layout layout-id=\"262e95e6-f1f8-477c-834b-89d533027e1e\"\n                :param-document=\"document\"\n      ></ae-layout>\n\n      <!-- <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n                  param-icon=\"fa fa-plus\"\n                  param-text=\"Neu\"\n                  :param-primary=\"true\"\n      ></ae-layout> -->\n    </div>\n\n    <ae-list list-id=\"2e798091-303f-406b-a42a-93aa1cd8425c\"\n              :documents=\"data.aktivitaeten\"\n              @selected=\"Aeppic.drillInto($event, arguments[1])\"\n              param-design=\"rd:card\"\n              :sort=\"[{ field: 'data.datum', descending: true }, 'id']\"\n              class=\"p-4 overflow-auto\"\n    ></ae-list> \n  </div>\n</div>  \n\n","css":"","controller":"class Controller {\n  init() {\n    locals.view = {\n      only: {\n        fields: [\n                'verantwortlich',\n                 'branche',\n                 'quelle',\n                 'interesseAn',\n                 'hotness',\n                 'labels',\n                 'kategorie',\n                 'ansprechpartner',\n                 'auftragsvolumen',\n                 'interesseAn',\n              //  kontakt integriert\n                 'unternehmen',\n                 'unternehmenAnsprechpartner',\n                 'telefon',\n                 'email',\n                 'url',\n                 'adresse',\n                 'kundennummer',\n                 'notizen'\n                ]\n      },\n      // show: {\n      //   hiddenFields: true\n      // }\n    }\n\n  } \n}\n\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-05-05T07:56:34+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-03-20T12:23:39+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1679315019777,"ct":1651737394054,"a_depth":4,"a":["apps","9d6ee173-26fe-4472-a271-7667f717094e","53b70eca-0cef-448b-9674-22a70a937eb1","8fc08287-dbcc-4e41-9d5d-28e4cd828943"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","9d6ee173-26fe-4472-a271-7667f717094e","6743ef9a-c21b-443f-91b8-4dd86886ee8c","5475727b-0e0c-412a-8452-23b9c5b242f2"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"18064067-4a8e-4607-96f1-64edc5726ff4","text":"rd:my-customers","v":"922b0edb86d94070"},"created":{"at":"2022-07-01T13:32:29+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1656682349580,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.ready = false\n    this.FORMS = {\n      Kunde: '8fc08287-dbcc-4e41-9d5d-28e4cd828943',\n      Board: '4ef9e83e-1aa5-4709-bbd5-24e98ea0148c',\n      OldBoard: '43420696-8097-4fc1-88e5-c69df9821470',\n    }\n    this.DOCUMENTS = {\n      NewBoardTemplate: 'e249c737-054b-48b4-b893-8c8e6c06cec0',\n    }\n    this.LOCATIONS = {\n      NewDocumentLocationId: document.id,\n      BoardLocation: document.id,\n    }\n    this.COMMANDGROUPS = {\n      NewKundeCommandGroup: '92249a09-237c-481f-9e1f-a26941a4ecbd',\n    }\n    locals.FORMS = this.FORMS\n    locals.LOCATIONS = this.LOCATIONS\n    locals.COMMANDGROUPS = this.COMMANDGROUPS\n\n    locals.filter = ''\n    locals.views = [\n      {\n        identifier: 'board',\n        text: 'Board',\n        icon: 'far fa-columns',\n      },\n      {\n        identifier: 'list',\n        text: 'Liste',\n        icon: 'far fa-list',\n      }\n    ]\n    locals.boardDocuments = []\n\n    await this.setBoard()\n    Aeppic.subscribe(this.search, {size: 99999}, newDocuments => {\n      locals.boardDocuments = newDocuments\n    })\n    locals.ready = true\n  }\n\n  async setBoard() {\n    // Find existing board\n    locals.board = await Aeppic.findOne(`p:${this.LOCATIONS.BoardLocation} f:${this.FORMS.Board} data.form:${this.FORMS.Kunde}`)\n    if (locals.board) {\n      return\n    }\n    // Find old board to migrate\n    locals.oldBoard = await Aeppic.findOne(`p:${this.LOCATIONS.BoardLocation} f:${this.FORMS.OldBoard} data.form:${this.FORMS.Kunde}`)\n    if (locals.oldBoard) {\n      await Aeppic.Commands.execute('2123d205-09aa-462e-a271-8f70624bd407', locals.oldBoard.id)\n      return\n    }\n    // Clone new board from template\n    const boardAndComponents = (await Aeppic.cloneDeep(this.DOCUMENTS.NewBoardTemplate, this.LOCATIONS.BoardLocation))\n    Aeppic.saveAll(boardAndComponents.documents)\n    locals.board = boardAndComponents.root\n  }\n\n  get filter() {\n    // return [locals.filter, 'data.verantwortlich:' + Aeppic.ProfilePage.id].join(' ')\n    return [locals.filter].join(' ')\n  }\n\n  get search() {\n    const base = 'p:' + document.id + ' f.id:' + locals.FORMS.Kunde\n\n    if (this.filter) {\n      return `${base} ${this.filter.trim()}`\n    }\n    return base\n  }\n}","css":"","description":"","name":"rd:customers","packages":[],"template":"<div \n  v-if=\"locals.ready\"\n  class=\"h-full flex flex-col xoverflow-x-auto xoverflow-y-hidden\"\n>\n  <ae-design \n    name=\"rd:toolbar\"\n    class=\"mb-2 mx-2\"\n    :document=\"document\"\n    :param-disable-sort=\"true\"\n    :param-list-form-id=\"locals.FORMS.Kunde\"\n    :param-commands=\"[controller.COMMANDGROUPS.NewKundeCommandGroup]\"\n    @filter=\"locals.filter = $event\"\n    :param-views=\"locals.views\"\n    @view=\"locals.view = $event\"\n  ></ae-design>\n\n  <ae-design\n    v-if=\"locals.view === 'list'\"\n    name=\"rd:list\"\n    :document=\"document\"\n    class=\"flex-1\"\n    :params=\"{ ...params, filter: controller.filter  }\"\n  ></ae-design>\n  <!-- layout-id=\"7ee94e29-1c00-4402-9993-47c450cd8a63\" -->\n  <ae-layout\n    v-if=\"locals.view === 'board'\"\n    class=\"flex-1 min-h-0 pt-1\"\n    layout-id=\"1d3dc097-ae91-409d-99cb-43c236be89aa\"\n    :param-board=\"locals.board\"\n    :param-documents=\"locals.boardDocuments\"\n    :param-new-document-location-id=\"locals.LOCATIONS.NewDocumentLocationId\"\n    :param-new-document-command-group-id=\"locals.COMMANDGROUPS.NewKundeCommandGroup\"\n    :param-filter=\"locals.filter\"\n    :param-hide-filter=\"true\"\n    :param-default-view=\"{mode: 'reference', fieldName: 'kategorie'}\"\n    @selected=\"Aeppic.navigateTo($event, { tab: 'customer' })\"\n  ></ae-layout>\n</div>\n\n  <!-- <ae-design\n    name=\"rd:toolbar\"\n    :document=\"document\"\n    @filter=\"locals.filter = $event\"\n    @view=\"locals.view = $event\"\n    :param-views=\"locals.views\"\n    :param-disable-sort=\"true\"\n    :param-list-form-id=\"locals.FORMS.Kunde\"\n    :param-persist-view=\"true\"\n    :param-commands=\"['92249a09-237c-481f-9e1f-a26941a4ecbd']\"\n    :param-window-width=\"params.windowWidth\"\n  ></ae-design> -->\n"},"f":{"id":"design-form","text":"Design","v":"c2d9ae57c7a46896"},"id":"d78b7946-8e7b-4943-a74d-d3fec383c922","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-03-24T12:10:26+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"18064067-4a8e-4607-96f1-64edc5726ff4","text":"rd:my-customers","v":"922b0edb86d94070"},"p":"5475727b-0e0c-412a-8452-23b9c5b242f2","previous":{"v":"cef2b9bbcde0dd71"},"stamps":[],"t":1774354226767,"v":"d7442023234303db"},{"a":["apps","77ee8815-2c3a-4bb5-abd9-90541a545a24","1cc4b977-c14d-4587-af47-d6ac230f60b3"],"a_depth":3,"a_forms":["folder","application-form","design-folder"],"created":{"at":"2023-09-08T14:15:21+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1778500752613,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.isFullDay = false\n    locals.daysLeft = { days: null, dueDate: null }\n\n    locals.dates = this.getDates()\n    locals.readableDates = []\n\n    this._update(document, locals.dates)\n  }\n\n  getDateResultColor(dateResult) {\n    const classes = {\n      'text-rose-500':\n        (params.colorize === 'near-today' && dateResult.daysLeft.days <= 1 && dateResult.daysLeft.days >= 0) ||\n        (params.colorize === 'days-left' && dateResult.daysLeft.days < 0),\n      'text-amber-500':\n        (params.colorize === 'near-today' && dateResult.daysLeft.days <= 7 && dateResult.daysLeft.days >= 3) ||\n        (params.colorize === 'days-left' && dateResult.daysLeft.days <= 5 && dateResult.daysLeft.days >= 0),\n      'text-amber-700':\n        params.colorize === 'near-today' && dateResult.daysLeft.days <= 2 && dateResult.daysLeft.days >= 0,\n      'text-blue-500':\n        params.colorize === 'near-today' && dateResult.daysLeft.days <= 14 && dateResult.daysLeft.days >= 8,\n    }\n\n    if (params.debug) {\n      console.log({\n        colorize: params.colorize,\n        days: dateResult.daysLeft.days,\n        classes,\n      })\n    }\n\n    return classes\n  }\n\n  getDates() {\n    let fieldName = params.fieldName\n\n    const builtin = ['created.at', 'modified.at']\n\n    if (!builtin.includes(params.fieldName)) {\n      fieldName = `data.${fieldName}`\n    }\n\n    return Aeppic.Functions.resolveField(document, fieldName)\n  }\n\n  _update(doc, datesParam) {\n    const dates = params.reverse ? datesParam.concat().reverse() : datesParam\n\n    locals.readableDates = dates\n      .map((date) => {\n        const result = {\n          daysLeft: { days: null, dueDate: null },\n          isFullDay: true,\n          date: '',\n          localeString: '',\n          isoDate: date\n        }\n\n        if (params.fieldNameHasTime && doc.data[params.fieldNameHasTime]) {\n          result.isFullDay = false\n        }\n        if (params.isTime) {\n          result.isFullDay = false\n        }\n\n        if (!params.fieldName || !date) {\n          return result\n        }\n\n        result.daysLeft = this.daysLeft(date)\n\n        if (params.type) {\n          if (params.type === 'year-month') {\n            result.date = Aeppic.DateTime.fromISO(date).toLocaleString({ month: 'numeric', year: 'numeric' })\n          } else if (params.type === 'time') {\n            result.date = Aeppic.DateTime.fromISO(date).toFormat('HH:mm')\n          } else {\n            console.error(`Invalid type \"${params.type} provided. Cannot format date`)\n            result.date = Aeppic.DateTime.fromISO(date).toLocaleString()\n          }\n        } else if (params.relative) {\n          result.date = this.daysLeftAsHumanReadable(result)\n        } else {\n          if (params.format) {\n            result.date = Aeppic.DateTime.fromISO(date).toFormat(params.format)\n          } else {\n            result.date = Aeppic.DateTime.fromISO(date).toLocaleString(Aeppic.DateTime.DATE_SHORT)\n          }\n        }\n\n        result.localeString = this._buildLocaleString(date, result)\n\n        return result\n      })\n      .filter((date) => date.date !== '')\n  }\n\n  _buildLocaleString(date, result) {\n    if (!date) {\n      return ''\n    }\n\n    const dateTime = Aeppic.DateTime.fromISO(date)\n    const dateFormat = result.isFullDay ? Aeppic.DateTime.DATE_SHORT : Aeppic.DateTime.DATETIME_SHORT\n    const formatted = dateTime.toLocaleString(dateFormat)\n\n    if (!params.colorize) {\n      return formatted\n    }\n\n    const relative = this.daysLeftAsHumanReadable(result)\n\n    if (!relative) {\n      return formatted\n    }\n\n    return `${relative} (${formatted})`\n  }\n\n  daysLeft(date) {\n    if (!date) {\n      return { days: null, dueDate: null }\n    }\n\n    const dueDate = Aeppic.DateTime.fromISO(date).startOf('day')\n\n    const diff = Aeppic.DateTime.local().diff(dueDate)\n    const days = -diff.toFormat('d')\n\n    const weeks = Math.floor(days / 7)\n\n    return {\n      days,\n      weeks,\n      dueDate,\n    }\n  }\n\n  daysLeftAsHumanReadable(result) {\n    const { daysLeft, isFullDay, isoDate } = result\n    const { days, dueDate, weeks } = daysLeft\n\n    if (days === null) {\n      return ''\n    }\n\n    if (!isFullDay && isoDate && days === 0 && weeks === 0) {\n      return `${dueDate.toRelativeCalendar()}, ${Aeppic.DateTime.fromISO(isoDate).toFormat('HH:mm')}`\n    }\n\n    if (days < 30 && (weeks === 0 || weeks >= 2)) {\n      return dueDate.toRelativeCalendar()\n    }\n\n    return dueDate.toRelative({ unit: ['years', 'weeks', 'days'] })\n    // return `in ${days} Tagen`\n  }\n}\n","css":"","description":"","name":"rd:date","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<div v-if=\"locals.readableDates.length > 0\" class=\"flex gap-1\" :class=\"{ 'min-w-24': !params.noMinWidth }\">\n  <template v-for=\"(dateResult, index) in locals.readableDates\">\n    <template v-if=\"params.debug\">{{ dateResult || 'errornous date'}}</template>\n    <!-- <div v-if=\"dateResult.isFullDay === true\" :title=\"!params.noTitle && 'Ganztägig'\" class=\"\">\n      <ae-icon class=\"far fa-calendar-day\"></ae-icon>\n    </div> -->\n    <div v-if=\"params.mode !== 'time'\"\n      class=\"truncate\"\n      :class=\"controller.getDateResultColor(dateResult)\"\n      :title=\"!params.noTitle && (params.title || '') + dateResult.localeString\"\n    >\n      {{ dateResult.date }}<template v-if=\"locals.readableDates.length > 1 && (index + 1) < locals.readableDates.length\">,</template>\n    </div>\n  </template>\n</div>\n<div v-else>\n  {{ params.emptyText }}\n</div> "},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"68925ed4-0257-43b5-b240-8441cd429ad1","inheritedLocks":[null,null,null,null],"locks":[],"meta":{},"modified":{"at":"2026-05-12T12:33:21+00:00","backedBy":"","by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":""},"p":"1cc4b977-c14d-4587-af47-d6ac230f60b3","previous":{"v":"03f5370c2b0923e4"},"stamps":[],"t":1778589201451,"v":"bcdd7c5aa0314bf4"},{"a":["apps","a4f3e35e-f945-4c8b-a7a4-81e987585974","13525440-3a25-44be-851b-1bcd803bff80","24842415-3690-4cad-82b9-b959ae7621c6"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"f395a79c-79f3-4a18-ae54-d0ff1332156f","text":"rd:redesign","v":"8798300d1b310a85"},"created":{"at":"2026-01-05T14:31:01+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"ct":1767623461803,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.rerender = 0\n    locals.url = ''\n    locals.isClient = false\n\n    const isHostedInClient = async () => {\n      await Aeppic.nextRenderPass()\n      const ourWindow = $refs.root.ownerDocument.defaultView\n      const hasEditFile = !!ourWindow?.host?.files?.editFile\n      return hasEditFile\n    }\n\n    locals.hasMemoryDebug = !!Aeppic.SessionStorage.getValue('debug-memory-allocation')\n\n    locals.isClient = await isHostedInClient()\n  }\n\n  async downloadMemoryDebug() {\n    const memory = Aeppic.SessionStorage.getValue('debug-memory-allocation')\n    console.log({ memory })\n\n    const jsonString = JSON.stringify(memory, null, 2)\n\n    const blob = new Blob([jsonString], { type: 'application/json' })\n\n    const objectUrl = URL.createObjectURL(blob)\n\n    locals.url = objectUrl\n\n    await Aeppic.nextRenderPass()\n\n    $refs.a.click()\n  }\n\n  async deleteAllClientCachedFiles() {\n    if (!locals.isClient) {\n      return\n    }\n\n    const confirm = await packages.window.confirm('Beim Bearbeiten mit dem Bizpin Desktop Client werden Dateien zwischengespeichert um Datenverlust zu vermeiden. Möchten Sie jetzt ALLE zwischengespeicherten Dateien löschen?')\n    \n    if (!confirm) {\n      return\n    }\n\n    packages.window.host.files.deleteAll()\n  }\n}\n","css":"","description":"","name":"rd:debug","packages":[{"id":"10843fbf-4f0c-416b-be7d-42d6bbd0ae68","text":"Window","v":"cc146accf5ec1930"}],"template":"<div class=\"flex flex-col gap-4 max-w-[800px]\" ref=\"root\">\n  <section class=\"text-lg font-bold\">Support</section>\n\n  <div class=\"bg-slate-100 p-4 rounded-lg flex flex-col gap-6\">\n    <div class=\"flex flex-col\">\n      <div>\n        <ae-icon class=\"far fa-info-circle\"> </ae-icon>\n        Bitte nutzen Sie diesen Bereich nur, wenn Sie vom Bizpin Support darum gebeten werden.\n      </div>\n    </div>\n  </div>\n\n  <div class=\"p-2 flex flex-col\" :key=\"id(locals.rerender)\">\n    <ae-layout\n      layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n      param-icon=\"far fa-file-download\"\n      param-text=\"Memory Debug downloaden\"\n      param-title=\"\"\n      :param-disabled=\"!locals.hasMemoryDebug\"\n      param-primary=\"true\"\n      @selected=\"controller.downloadMemoryDebug()\"\n    ></ae-layout>\n\n    <a\n      v-show=\"false\"\n      ref=\"a\"\n      :href=\"locals.url\"\n      :download=\"'memory' + '-' + Aeppic.DateTime.local().toFormat('yyyy-LL-dd_HH-mm-ss') + '.json'\"\n      target=\"_blank\"\n    ></a>\n  </div>\n\n  <ae-layout\n    layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n    param-icon=\"far fa-trash\"\n    param-text=\"Alle lokalen Dateien aus dem Client löschen\"\n    :param-disabled=\"!locals.isClient\"\n    @selected=\"controller.deleteAllClientCachedFiles()\"\n  ></ae-layout>\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"c2d9ae57c7a46896"},"id":"b6d0116f-b7c7-4752-9354-1e432ec3781b","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-03-05T08:54:35+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"f395a79c-79f3-4a18-ae54-d0ff1332156f","text":"rd:redesign","v":"8798300d1b310a85"},"p":"24842415-3690-4cad-82b9-b959ae7621c6","previous":{"v":"13043314b2f23755"},"stamps":[],"t":1772700875496,"v":"4fb865667707ce3b"},{"id":"2690bec3-e9d6-44e0-8492-0710b9c9dd77","v":"f28007b60ba04413","previous":{"v":"39220528ce584ad9"},"p":"1b166603-d0f3-4f16-98c4-0534afbd6f5a","f":{"id":"design-form","v":"4b1c7a4912f80103","text":"Design"},"data":{"name":"rd:defect-review-card-inner","template":"<div v-if=\"locals.maintenance\" class=\"flex flex-col gap-2\">\n  <div class=\"flex flex-wrap items-baseline gap-x-3 gap-y-1\">\n    <ae-design name=\"title\" :document=\"locals.maintenance\" class=\"font-semibold text-base\" param-title=\"Wartung\"></ae-design>\n\n    <ae-design\n      v-if=\"locals.maintenance.data.ended\"\n      name=\"rd:date\"\n      :document=\"locals.maintenance\"\n      param-field-name=\"ended\"\n      param-format=\"dd.MM.yyyy HH:mm\"\n      class=\"text-sm text-neutral-600\"\n    ></ae-design>\n    <span v-else class=\"text-sm text-neutral-600 italic\">noch offen</span>\n\n    <span v-if=\"locals.teams?.length\" class=\"flex items-center gap-1 text-sm text-neutral-600\">\n      <ae-icon class=\"far fa-people-group\"></ae-icon>\n      <span>{{ locals.teams.map(t => t?.data.name).filter(Boolean).join(', ') }}</span>\n    </span>\n  </div>\n\n  <div v-for=\"partGroup of locals.parts\" :key=\"partGroup.partId\" class=\"pl-4 border-l border-neutral-200 flex flex-col gap-2\">\n    <ae-design name=\"rd:defect-review-card-inner\" :document-id=\"partGroup.partId\"></ae-design>\n    <div v-for=\"item of partGroup.items\" :key=\"item.id\" class=\"pl-4 border-l border-neutral-200\">\n      <ae-design name=\"rd:defect-review-card-inner\" :document-id=\"item.id\" @selected=\"$emit('selected', item)\"></ae-design>\n    </div>\n  </div>\n</div>\n","css":"","controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Wartungsteil: 'f5850e39-8581-4b62-8cfe-f4fa95009a1a',\n      Wartungspunkt: 'aa947792-4f31-40c9-9a6a-e1ad71697911',\n    }\n\n    locals.maintenance = null\n    locals.teams = []\n    locals.parts = []\n\n    Aeppic.watchAll([data.maintenance], (maintenances) => {\n      locals.maintenance = maintenances[0]\n    })\n    Aeppic.watchAll(data.team, (teams) => {\n      locals.teams = teams\n    })\n\n    const resultFilter = params.resultFilter?.length > 0\n      ? params.resultFilter\n      : ['COMPLETED_NOT_OK', 'COMPLETED_OK_CORRECTIONS']\n\n    const resultClause = resultFilter.map((r) => `data.result:${r}`).join(' OR ')\n    const wartungspunkte = await Aeppic.find(\n      `a:${document.id} f.id:${this.FORMS.Wartungspunkt} (${resultClause})`,\n      { includeHidden: true }\n    )\n\n    locals.parts = this.group(wartungspunkte)\n  }\n\n  getAncestorByFormIdFromDocument(formId, doc) {\n    const index = doc.a_forms.findIndex((fId) => fId === formId)\n\n    if (index === -1) {\n      return null\n    }\n\n    return doc.a[index]\n  }\n\n  group(wartungspunkte) {\n    const byPart = new Map()\n\n    for (const wp of wartungspunkte) {\n      const partId = this.getAncestorByFormIdFromDocument(this.FORMS.Wartungsteil, wp)\n\n      if (!partId) {\n        continue\n      }\n\n      if (!byPart.has(partId)) {\n        byPart.set(partId, { partId, items: [] })\n      }\n      byPart.get(partId).items.push(wp)\n    }\n\n    return [...byPart.values()]\n  }\n}","packages":[],"parameters":[],"parametersDescriptions":[],"parametersTypes":[],"parametersControls":[],"parametersCardinalities":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2026-08-06T13:17:22+00:00","by":"e24f1d78-6fbd-4f97-9fb0-b1af9bd6bd13","backedBy":"","impersonatedBy":"","from":"","client":"server"},"modified":{"at":"2026-08-06T13:22:12+00:00","by":"e24f1d78-6fbd-4f97-9fb0-b1af9bd6bd13","backedBy":"","impersonatedBy":"","from":"","client":"server"},"t":1786022532082,"ct":1786022242600,"a_depth":4,"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","1b166603-d0f3-4f16-98c4-0534afbd6f5a"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"60b6b991-50a4-499b-b264-62be1651dd8d","v":"157c356daa1049d2","previous":{"v":"6461bc50ad3b474b"},"p":"f5850e39-8581-4b62-8cfe-f4fa95009a1a","f":{"id":"design-form","v":"4b1c7a4912f80103","text":"Design"},"data":{"name":"rd:defect-review-card-inner","template":"<div class=\"flex flex-col gap-1\">\n  <ae-design name=\"title\" :document=\"document\" class=\"font-semibold\" param-title=\"Wartungsteil\"></ae-design>\n\n  <template v-if=\"data.description\">\n    <span v-if=\"data.description.length <= 160 || locals.expanded\" class=\"text-sm text-neutral-600 whitespace-pre-wrap\">\n      {{ data.description }}\n      <button v-if=\"data.description.length > 160\" class=\"text-primary-600 underline text-xs\" @click.stop=\"locals.expanded = false\">weniger</button>\n    </span>\n    <span v-else class=\"text-sm text-neutral-600\" :title=\"data.description\">\n      {{ data.description.slice(0, 160) }}…\n      <button class=\"text-primary-600 underline text-xs\" @click.stop=\"locals.expanded = true\">mehr</button>\n    </span>\n  </template>\n</div>\n","css":"","controller":"class Controller {\n  init() {\n    locals.expanded = false\n  }\n}","packages":[],"parameters":[],"parametersDescriptions":[],"parametersTypes":[],"parametersControls":[],"parametersCardinalities":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2026-08-06T13:17:22+00:00","by":"e24f1d78-6fbd-4f97-9fb0-b1af9bd6bd13","backedBy":"","impersonatedBy":"","from":"","client":"server"},"modified":{"at":"2026-08-06T13:22:13+00:00","by":"e24f1d78-6fbd-4f97-9fb0-b1af9bd6bd13","backedBy":"","impersonatedBy":"","from":"","client":"server"},"t":1786022533100,"ct":1786022242877,"a_depth":4,"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","f5850e39-8581-4b62-8cfe-f4fa95009a1a"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"e28ec68c-5f15-43ef-8595-4585393dfc05","v":"3da2bd70cff448a7","previous":{"v":"ab56b0faa29b4bc7"},"p":"aa947792-4f31-40c9-9a6a-e1ad71697911","f":{"id":"design-form","v":"4b1c7a4912f80103","text":"Design"},"data":{"name":"rd:defect-review-card-inner","template":"<div class=\"flex flex-col gap-1\">\n  <div class=\"flex items-center gap-2 flex-wrap\">\n    <ae-design name=\"title\" :document=\"document\" class=\"font-medium\" param-title=\"Wartungspunkt\"></ae-design>\n    <span\n      v-if=\"data.result === 'COMPLETED_NOT_OK'\"\n      class=\"text-xs px-1.5 py-0.5 rounded-full bg-red-100 text-red-700 shrink-0\"\n    >Fehlerhaft</span>\n    <span\n      v-else-if=\"data.result === 'COMPLETED_OK_CORRECTIONS'\"\n      class=\"text-xs px-1.5 py-0.5 rounded-full bg-amber-100 text-amber-700 shrink-0\"\n    >Behoben</span>\n  </div>\n\n  <ul v-if=\"locals.comments.length\" class=\"flex flex-col gap-0.5 pl-1\">\n    <li v-for=\"item of locals.comments\" :key=\"item.id\" class=\"text-sm text-neutral-700 flex gap-1\">\n      <ae-icon class=\"far fa-comment text-neutral-400 mt-0.5 shrink-0\"></ae-icon>\n      <span>{{ item.data.comment }}</span>\n    </li>\n  </ul>\n</div>\n","css":"","controller":"class Controller {\n  async init() {\n    locals.comments = []\n\n    const items = await Aeppic.find(`a:${document.id} f.id:8c113cd0-af90-42fa-aa05-f67809d0a9a5 (data.status:FAULTY OR data.status:OK_CORRECTIONS)`)\n    locals.comments = items.filter((item) => item.data.comment)\n  }\n}","packages":[],"parameters":[],"parametersDescriptions":[],"parametersTypes":[],"parametersControls":[],"parametersCardinalities":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2026-08-06T13:17:23+00:00","by":"e24f1d78-6fbd-4f97-9fb0-b1af9bd6bd13","backedBy":"","impersonatedBy":"","from":"","client":"server"},"modified":{"at":"2026-08-06T13:22:14+00:00","by":"e24f1d78-6fbd-4f97-9fb0-b1af9bd6bd13","backedBy":"","impersonatedBy":"","from":"","client":"server"},"t":1786022534007,"ct":1786022243148,"a_depth":4,"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","aa947792-4f31-40c9-9a6a-e1ad71697911"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","760efba8-d733-4a34-ada6-b7d6d5c6d637"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2025-10-14T14:36:07+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1760452567374,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.ready = false\n\n    this.FORMS = {\n      Reparatur: '46a28dfa-7518-4867-9519-a5f4cd9b9967',\n      Board: '4ef9e83e-1aa5-4709-bbd5-24e98ea0148c',\n      OldBoard: '43420696-8097-4fc1-88e5-c69df9821470',\n    }\n    this.LOCATIONS = {\n      NewDocumentLocationId: document.id,\n      BoardLocation: document.id,\n    }\n    this.COMMANDGROUPS = {\n      New: '400e9efa-5464-424e-ac07-474ce28d7770',\n    }\n\n    locals.filter = ''\n    locals.LOCATIONS = this.LOCATIONS\n    locals.FORMS = this.FORMS\n\n    await this.setBoard()\n    locals.boardDocuments = []\n\n    Aeppic.subscribe(this.search, { size: 99999 }, (newDocuments) => {\n      locals.boardDocuments = newDocuments\n    })\n\n    locals.ready = true\n  }\n\n  async setBoard() {\n    // Find existing board\n    locals.board = await Aeppic.findOne(`p:${this.LOCATIONS.BoardLocation} f:${this.FORMS.Board} data.form:${this.FORMS.Reparatur}`)\n    if (locals.board) {\n      return\n    }\n    // Find old board to migrate\n    locals.oldBoard = await Aeppic.findOne(`p:${this.LOCATIONS.BoardLocation} f:${this.FORMS.OldBoard} data.form:${this.FORMS.Reparatur}`)\n    if (locals.oldBoard) {\n      await Aeppic.Commands.execute('2123d205-09aa-462e-a271-8f70624bd407', locals.oldBoard.id)\n      return\n    }\n    // Clone new board from template\n    const boardAndComponents = (await Aeppic.cloneDeep(this.DOCUMENTS.NewBoardTemplate, this.LOCATIONS.BoardLocation))\n    Aeppic.saveAll(boardAndComponents.documents)\n    locals.board = boardAndComponents.root\n  }\n\n  get filter() {\n    // return [locals.filter, 'data.verantwortlich:' + Aeppic.ProfilePage.id].join(' ')\n    return [locals.filter].join(' ')\n  }\n\n  get search() {\n    const base = 'p:' + document.id + ' f.id:' + locals.FORMS.Reparatur\n\n    if (this.filter) {\n      return `${base} ${this.filter.trim()}`\n    }\n    return base\n  }\n}\n","css":"","description":"","name":"rd:defects-board","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"\n<div v-if=\"locals.ready\" class=\"h-full flex flex-col\">\n  <ae-design \n    name=\"rd:toolbar\"\n    class=\"mb-2 mx-2\"\n    :document=\"document\"\n    :param-list-form-id=\"controller.FORMS.Reparatur\"\n    :param-disable-new=\"true\"\n    @filter=\"locals.filter = $event\"\n    :param-disable-sort=\"true\"\n  ></ae-design>\n  \n  <ae-layout\n    class=\"flex-1 min-h-0 pt-1\"\n    layout-id=\"1d3dc097-ae91-409d-99cb-43c236be89aa\"\n    :param-board=\"locals.board\"\n    :param-documents=\"locals.boardDocuments\"\n    :param-new-document-location-id=\"locals.LOCATIONS.NewDocumentLocationId\"\n    :param-new-document-command-group-id=\"controller.COMMANDGROUPS.New\"\n    :param-filter=\"locals.filter\"\n    :param-pre-sort=\"[{field: 'created.at', descending: true}, {field: 'modified.at', descending: true}]\"\n    :param-hide-filter=\"true\"\n    :param-readonly=\"true\"\n    :param-search-options=\"{searchAllFields: true}\"\n    @selected=\"Aeppic.drillInto($event, arguments[1])\"\n    :param-board-card-params=\"{ innerHandlesSelected: true }\"\n  ></ae-layout>\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"7d623618-8e6d-4e05-900f-d5ceaf9b3ce5","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-04-07T06:56:55+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"p":"760efba8-d733-4a34-ada6-b7d6d5c6d637","previous":{"v":"72606848cef4fd71"},"stamps":[],"t":1775545015639,"v":"0946f08aa32ea9a4"},{"id":"01e90c45-08f9-451c-a23d-67cca3ba7430","v":"37fd6163ffb12a69","previous":{"v":"e3be3577217eacbf"},"p":"1b166603-d0f3-4f16-98c4-0534afbd6f5a","f":{"id":"design-form","v":"4b1c7a4912f80103","text":"Design"},"data":{"name":"rd:defects-list","template":"<div :data-test=\"'design' + '_' + design.data.name + '_' + 'documentForm_' + document.f.text\">\n  <section\n    class=\"mb-1 flex flex-wrap gap-2 items-center\"\n  >\n    <header \n      v-if=\"!locals.repair\"\n      class=\"text-lg font-bold\">Bereits erstellte Reparaturen\n    </header>\n    <ae-layout\n      v-if=\"!locals.repair\"\n      layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n      @selected=\"controller.createRepair()\"\n      param-text=\"Neue Reparatur\"\n      param-icon=\"far fa-plus\"\n      param-border=\"border border-secondary-300\"\n      :param-disabled=\"params.readonly\"\n    ></ae-layout>\n    <ae-layout\n      v-else\n      layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n      @selected=\"controller.saveRepair()\"\n      param-text=\"Reparatur speichern\"\n      param-icon=\"far fa-save\"\n      param-border=\"border border-secondary-300\"\n      :param-primary=\"true\"\n      :param-disabled=\"params.readonly\"\n    ></ae-layout>\n  </section>\n\n  <ae-list\n    v-if=\"!locals.repair\"\n    list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\"\n    :search=\"locals.defectsSearch\"\n    class=\"p-1 border rounded-md border-secondary-100\"\n    @selected=\"Aeppic.drillInto($event, arguments[1])\"\n    param-design=\"rd:card\"\n    :param-divide=\"false\"\n    param-empty-text=\"Keine Reparaturen erstellt.\"\n  ></ae-list>\n  <template v-if=\"locals.repair\">\n    <div class=\"flex gap-2 mt-4\">\n      <ae-form\n        data-test=\"Reparatur\"\n        :data-document-id=\"locals.repair.repairId\"\n        layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\"\n        :auto-save=\"true\"\n        :auto-save-after=\"1000\"\n        ref=\"form\"\n        :document-id=\"locals.repair.repairId\"\n        class=\"flex-1\"\n      ></ae-form>\n      <ae-form\n        data-test=\"Aufgabe\"\n        :data-document-id=\"locals.repair.taskId\"\n        layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\"\n        :auto-save=\"true\"\n        :auto-save-after=\"1000\"\n        ref=\"form\"\n        :document-id=\"locals.repair.taskId\"\n        class=\"flex-1\"\n      ></ae-form>\n    </div>\n  </template>\n</div>","css":"","controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      DefectsFolders: '760efba8-d733-4a34-ada6-b7d6d5c6d637',\n      Defect: '46a28dfa-7518-4867-9519-a5f4cd9b9967',\n      BCoreTask: '0deb4864-cbb6-420c-99ee-337c7444ab24',\n      Wartungsfolder: 'fdfaf800-858a-4b45-91c9-5bdad7a63672',\n    }\n\n    locals.defectsSearch = ''\n    locals.repair = null\n\n    await this.initialize()\n  }\n\n  async initialize() {\n    locals.existingDefects = []\n\n    const defectsLocation = await Aeppic.findOne(`p:${document.a[document.a_forms.findIndex(aForm => aForm === this.FORMS.Wartungsfolder)]} f.id:${this.FORMS.DefectsFolders}`)\n    locals.defectsSearch = `p:${defectsLocation.id} f.id:${this.FORMS.Defect} data.maintenanceExecution.id:${document.id}`\n  }\n\n  async createRepair() {\n    if (params.readonly) {\n      return\n    }\n\n    const defectsLocation = await Aeppic.findOne(`p:${document.a[document.a_forms.findIndex(aForm => aForm === this.FORMS.Wartungsfolder)]} f.id:${this.FORMS.DefectsFolders}`)\n    const repair = await Aeppic.new(this.FORMS.Defect, defectsLocation)\n    repair.data = {\n      ...repair.data,\n      name: `${document.data.maintenance.text} ${Aeppic.DateTime.local().toLocaleString(Aeppic.DateTime.DATE_SHORT)}`,\n      object: document.data.object,\n      location: document.data.location,\n      team: document.data.team.concat().filter(Boolean),\n      facility: document.data.facility,\n    }\n\n    repair.addReference('maintenanceExecution', document)\n\n    const workItemsResult = await Aeppic.Commands.execute(\n      'f9f3e409-6237-4e92-b31b-0193afeba6ff',\n      document.data.maintenance\n    )\n\n    if (workItemsResult.ok) {\n      workItemsResult.value.forEach((work) => {\n        if (work.data.status === 'FAULTY') {\n          repair.addReference('workItems', work)\n        }\n      })\n    }\n\n    let taskCommandResult = await Aeppic.Commands.execute('190817f7-9736-45f8-ac90-e6e27ccfaa6e', repair, {\n      Account: Aeppic.Account,\n    })\n    \n    let task = null\n    if (taskCommandResult.value) {\n      task = taskCommandResult.value\n    } else {\n      task = await Aeppic.new(this.FORMS.BCoreTask, repair.id)\n    }\n\n    task.data = {\n      ...task.data,\n      name: `${document.data.maintenance.text} ${Aeppic.DateTime.local().toLocaleString(Aeppic.DateTime.DATE_SHORT)}`,\n    }\n\n    task.hidden = true\n    repair.hidden = true\n    // task.hidden = true\n\n    Aeppic.saveAll([repair, task])\n    locals.repair = {repairId: repair.id, taskId: task.id}\n  }\n\n  async saveRepair() {\n    if (params.readonly) {\n      return\n    }\n    \n    const editableRepair = await Aeppic.edit(locals.repair.repairId)\n    const editableTask = await Aeppic.edit(locals.repair.taskId)\n    editableRepair.hidden = false\n    editableTask.hidden = false\n    Aeppic.saveAll([editableRepair, editableTask])\n    locals.repair = null\n  }\n\n  destroy() {\n    if (locals.repair) {\n      Aeppic.delete(locals.repair.repairId)\n      Aeppic.delete(locals.repair.taskId)\n    }\n  }\n}\n","packages":[],"parameters":[],"parametersDescriptions":[],"parametersTypes":[],"parametersControls":[],"parametersCardinalities":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2025-11-13T13:07:28+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"modified":{"at":"2026-05-20T06:45:21+00:00","by":"09763886-6748-4a56-8e0e-54a2293ee96b","backedBy":"","impersonatedBy":"","from":"","client":"server"},"t":1779259521078,"ct":1763039248030,"a_depth":4,"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","1b166603-d0f3-4f16-98c4-0534afbd6f5a"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","760efba8-d733-4a34-ada6-b7d6d5c6d637"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2025-10-24T14:55:23+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1761317723147,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:defects-tasks","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<ae-design\n  name=\"rd:page-list\"\n  :document=\"document\"\n  :params=\"{...params, scrollerHeight: 70, designParams: { showAction: true } }\"\n></ae-design>\n"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"fc6a58d2-1d14-4bb3-b279-758d03901f9a","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-02-06T15:30:05+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"p":"760efba8-d733-4a34-ada6-b7d6d5c6d637","previous":{"v":"eecf0cf7ca16f9f5"},"stamps":[],"t":1770391805837,"v":"81943f8f315dc129"},{"id":"b9c87be3-a69c-4ad4-9c68-b090d80045e5","v":"22668847971562ba","previous":{"v":"initial"},"p":"42cf6e7a-e304-49a6-86e1-c94d84f1d0d9","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:design-of-target","template":"<ae-design :name=\"params.name\" :document=\"data.document\"></ae-design>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-08-08T14:17:23+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-08-08T14:18:04+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1691504284418,"ct":1691504243387,"a_depth":4,"a":["apps","14c27659-92d7-4b43-8c4f-25f4cceae591","2e759bfa-c685-48e8-81b4-cec70e93c521","42cf6e7a-e304-49a6-86e1-c94d84f1d0d9"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","45ada186-e9fd-451d-9dbd-2defc0b4f86f","4ec6a0e5-cf2d-4095-9b70-2e31a64d5679","dbee6e16-d63a-493c-bba6-505f79918f9f"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2022-05-09T12:22:10+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1652098930688,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:details","packages":[],"template":"<div class=\"flex flex-col gap-2 bg-white h-full p-4 w-[350px] border-l\">\n  <div class=\"pb-4\">\n    <ae-form :document=\"document\"\n              layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\" \n              :auto-save=\"true\"\n              :auto-save-after=\"2500\"\n              :view=\"{ only: { fields: ['name', 'autor'] }}\"\n              :readonly=\"params.readonly\"\n    ></ae-form>\n  </div>\n\n  <div class=\"flex justify-between gap-2\">\n    <div class=\"text-neutral-500\">Größe</div>\n    <ae-design name=\"rd:size\" :document=\"document\"></ae-design>\n  </div>\n\n  <div class=\"flex justify-between gap-2\">\n    <div class=\"text-neutral-500\">Typ</div>\n    <ae-design class=\"truncate\" name=\"readable-type\" :document=\"document\"></ae-design>\n  </div>\n\n  <div class=\"flex justify-between gap-2\">\n    <div class=\"text-neutral-500\">Hochgeladen von</div>\n\n    <div class=\"flex gap-2 items-center\">\n      <ae-design name=\"profile-title\" :document-id=\"document.created.by\"></ae-design>\n      <ae-design name=\"avatar\" :document-id=\"document.created.by\"></ae-design>\n    </div>\n  </div>\n\n  <div class=\"flex justify-between gap-2\">\n    <span class=\"text-neutral-500\">Erstellt</span><span>{{Aeppic.DateTime.fromISO(document.created.at).toLocaleString(Aeppic.DateTime.DATETIME_SHORT)}}</span>\n  </div> \n\n  <template v-if=\"document.created.at !== document.modified.at\">\n    <div class=\"flex justify-between gap-2\">\n      <div class=\"text-neutral-500\">Geändert von</div>\n      <div class=\"flex gap-2 items-center\">\n        <ae-design name=\"profile-title\" :document-id=\"document.modified.by\"></ae-design>\n        <ae-design name=\"avatar\" :document-id=\"document.modified.by\"></ae-design>\n      </div>\n    </div>\n    \n    <div class=\"flex justify-between gap-2 \">\n      <span class=\"text-neutral-500\">Geändert</span><span>{{Aeppic.DateTime.fromISO(document.modified.at).toLocaleString(Aeppic.DateTime.DATETIME_SHORT)}}</span>\n    </div>\n  </template>\n\n</div>"},"f":{"id":"design-form","text":"Design","v":"c2d9ae57c7a46896"},"id":"2af37b08-a43b-4c81-ac37-9684dbe669e4","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-05-23T08:59:51+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"dbee6e16-d63a-493c-bba6-505f79918f9f","previous":{"v":"74c0ae8a742e9e62"},"stamps":[],"t":1747990791946,"v":"049ee754cece39fb"},{"a":["apps","59edbdbc-2cab-426a-bb42-6e57c5158e4f","3be7e887-1bcd-4c3c-979f-b20a986c4c48","0b6a2b21-9425-466e-9e8d-57ec39cc95e1"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2022-05-09T14:20:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1677064306600,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    this._chartTasks = null\n    this._chartBurnup = null\n    locals.labels = []\n    locals.chartData = []\n    locals.backgroundColor = []\n    locals.borderColor = []\n\n    await Aeppic.nextRenderPass()\n\n    Aeppic.watch(document, (doc) => {\n      this.createDiagramTasks(doc)\n    })\n\n    this.createDiagramTasks(document)\n\n    this.createDiagramBurnup(document)\n  }\n\n  async createDiagramBurnup(doc) {\n    if (this._chartBurnup) {\n      this._chartBurnup.destroy()\n    }\n\n    const labels = []\n    const chartData = []\n    const backgroundColor = []\n    const borderColor = []\n\n    if (!doc.data.bisStart || !doc.data.bisEnde) {\n      return\n    }\n\n    const start = Aeppic.DateTime.fromISO(doc.data.bisStart)\n    const interval = Aeppic.DateTimeInterval.fromDateTimes(start, Aeppic.DateTime.fromISO(doc.data.bisEnde))\n    const yearMonth = new Array(interval.count('month'))\n      .fill(null)\n      .map((x, i) => start.plus({ month: i }).toFormat('yyyy-MM'))\n\n    const times = await Aeppic.find(`a:${document.id} f.id:f9279010-1935-4139-abbb-82d928aa09dc`, { size: 999 })\n    const estimates = await Aeppic.find(`a:${document.id} f.id:08a478e7-a278-4c26-b2b6-65f9563a7da8`, { size: 999 })\n\n    const tasksByEstimates = await Aeppic.getAll(estimates.map((t) => t.p))\n\n    const estimatesByYearMonth = estimates.reduce((result, estimate, index) => {\n      const dateStart = tasksByEstimates[index].data.bisStart\n\n      if (!dateStart) {\n        return result\n      }\n\n      const date = Aeppic.DateTime.fromISO(dateStart).toFormat('yyyy-MM')\n      const hours = Aeppic.DateTimeDuration.fromObject(estimate.data.dauer).as('hours')\n\n      if (!result[date]) {\n        result[date] = {\n          done: 0,\n          estimate: 0,\n        }\n      }\n\n      result[date].estimate += hours\n\n      if (tasksByEstimates[index].data.erledigt) {\n        result[date].done += hours\n      }\n\n      return result\n    }, {})\n\n    const totalEstimateHours = estimates.reduce((total, estimate) => {\n      return total + Aeppic.DateTimeDuration.fromObject(estimate.data.dauer).as('hours')\n    }, 0)\n\n    const tasks = await Aeppic.getAll(times.map((t) => t.p))\n\n    const timesByYearMonth = times.reduce((result, time, index) => {\n      const hours = Aeppic.DateTimeDuration.fromObject(time.data.dauer).as('hours')\n      const date = Aeppic.DateTime.fromISO(time.data.tag).toFormat('yyyy-MM')\n\n      if (!result[date]) {\n        result[date] = {\n          tracked: 0,\n        }\n      }\n\n      result[date].tracked += hours\n\n      return result\n    }, {})\n\n    const burnupPerMonth = Math.trunc(totalEstimateHours / yearMonth.length)\n    const expectedBurnup = new Array(yearMonth.length).fill(null).map((_, i) => (i + 1) * burnupPerMonth)\n    // fix rounding error by setting last burnup to total hours\n    expectedBurnup[expectedBurnup.length - 1] = totalEstimateHours\n\n    const accumulate = (values, key) => {\n      let total = 0\n\n      return values.map((item) => {\n        const value = item ? item[key] || 0 : 0\n        total += value\n        return total\n      })\n    }\n\n    const timesPerMonthWithinMonth = yearMonth.map((month) => timesByYearMonth[month])\n\n    const trackedPerMonth = accumulate(timesPerMonthWithinMonth, 'tracked')\n\n    const estimatesByYearMonthWithinMonths = yearMonth.map((month) => estimatesByYearMonth[month])\n    const donePerMonth = accumulate(estimatesByYearMonthWithinMonths, 'done')\n    const estimatesPerMonth = accumulate(estimatesByYearMonthWithinMonths, 'estimate')\n\n    console.log(\n      yearMonth,\n      { totalEstimateHours, expectedBurnup },\n      timesByYearMonth,\n      timesPerMonthWithinMonth,\n      estimatesByYearMonth\n    )\n\n    labels.push(...yearMonth)\n\n    this._chartBurnup = new Chart($refs.chartBurnup, {\n      options: {\n        responsive: false,\n        elements: {\n          line: {\n            tension: 0, // disables bezier curves\n          },\n        },\n        // scales: {\n        //   xAxes: [\n        //     {\n        //       scaleLabel: {\n        //         display: true,\n        //         labelString: 'Monat',\n        //       },\n        //     },\n        //   ],\n        //   yAxes: [\n        //     {\n        //       stacked: true,\n        //       scaleLabel: {\n        //         display: true,\n        //         labelString: 'Stunden',\n        //       },\n        //     },\n        //   ],\n        // },\n      },\n      type: 'line',\n      data: {\n        labels: labels,\n        datasets: [\n          {\n            data: donePerMonth,\n            label: 'Erledigt',\n            borderColor: 'rgba(173, 200, 150, 0.9)',\n            fill: false,\n          },\n          {\n            data: trackedPerMonth,\n            label: 'Erfasst',\n            borderColor: 'rgba(208, 135, 112, 0.9)',\n            fill: false,\n          },\n          {\n            data: estimatesPerMonth,\n            label: 'Schätzung (via Fälligkeit)',\n            borderColor: 'rgba(180, 142, 173, 0.9)',\n            fill: false,\n          },\n          {\n            data: expectedBurnup,\n            label: 'Erwarteter Burnup',\n            borderColor: 'rgba(150, 181, 180, 0.9)',\n            fill: false,\n          },\n        ],\n      },\n    })\n  }\n\n  createDiagramTasks(doc) {\n    if (this._chartTasks) {\n      this._chartTasks.destroy()\n    }\n\n    locals.labels = []\n    locals.chartData = []\n    locals.backgroundColor = []\n    locals.borderColor = []\n\n    // fontawesome colors, border is 1 step up in palette\n    if (doc.data.aufgabenErledigt > 0) {\n      locals.labels.push('Erledigt')\n      locals.chartData.push(doc.data.aufgabenErledigt)\n      locals.backgroundColor.push('#22c55e')\n      locals.borderColor.push('#16a34a')\n    }\n    if (doc.data.aufgabenBearbeitung > 0) {\n      locals.labels.push('In Bearbeitung')\n      locals.chartData.push(doc.data.aufgabenBearbeitung)\n      locals.backgroundColor.push('#facc15')\n      locals.borderColor.push('#eab308')\n    }\n    if (doc.data.aufgabenOffen > 0) {\n      locals.labels.push('Offen')\n      locals.chartData.push(doc.data.aufgabenOffen)\n      locals.backgroundColor.push('#cbd5e1')\n      locals.borderColor.push('#94a3b8')\n    }\n    if (doc.data.aufgabenUeberfaellig > 0) {\n      locals.labels.push('Überfällig')\n      locals.chartData.push(doc.data.aufgabenUeberfaellig)\n      locals.backgroundColor.push('#f43f5e')\n      locals.borderColor.push('#f43f5e')\n    }\n\n    this._chartTasks = new Chart($refs.chartTasks, {\n      options: {\n        responsive: false,\n      },\n      type: 'pie',\n      data: {\n        labels: locals.labels,\n        datasets: [\n          {\n            data: locals.chartData,\n            backgroundColor: locals.backgroundColor,\n            borderColor: locals.borderColor,\n            borderWidth: 1,\n          },\n        ],\n      },\n    })\n  }\n\n  destroy() {\n    if (this._chartTasks) {\n      this._chartTasks.destroy()\n    }\n\n    if (this._chartBurnup) {\n      this._chartBurnup.destroy()\n    }\n  }\n}\n","css":"","description":"","name":"rd:diagrams","packages":[{"id":"4a6e27ae-e4a0-4e22-9997-b352899f86f5","text":"Chart.js","v":"c044548d5a0892ce"}],"template":"\n<div class=\"h-full\">\n  <div class=\"bg-white max-w-5xl mx-auto px-4 pb-4 xl:my-2 xl:shadow-md xl:rounded-md flex flex-col gap-10\">\n    <section class=\"p-4\">\n      <!-- <header class=\"font-bold text-lg truncate\">\n        Alle Aufgaben\n      </header> -->\n\n      <div class=\"flex items-center\">\n        <canvas ref=\"chartTasks\" width=\"440\" height=\"200\"></canvas>\n\n        <div>\n          <div v-for=\"(label, index) of locals.labels\"\n                class=\"flex gap-2 justify-between\"\n          >\n            <div :style=\"{ color: locals.borderColor[index] }\">\n            {{ label}}\n            </div>\n            <div>\n              {{locals.chartData[index]}}\n            </div>\n          </div>\n          \n        </div>\n      </div>\n    </section>\n\n    <section class=\"p-4 overflow-x-auto\">\n      <header class=\"font-bold text-lg truncate\">\n        Burnup Chart\n      </header>\n\n      <ae-form  :document=\"document\"\n                :auto-save=\"true\"\n                :auto-save-after=\"1000\"\n                layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\"\n                :view=\"{ only: { fields: ['bisStart'] }}\"\n      ></ae-form>\n\n      <canvas ref=\"chartBurnup\" width=\"880\" height=\"300\"></canvas>\n    </section>\n\n    <section>\n      <header class=\"font-bold text-lg\">\n        Erfasste Zeiten\n      </header>\n\n      <ae-layout layout-id=\"10590b76-115a-4539-a911-6994500ab02a\" \n            :param-document=\"document\"\n      ></ae-layout> \n    </section>\n  </div>\n</div>  \n"},"f":{"id":"design-form","text":"Design","v":"5dbbefb312ab61e2"},"id":"9fd70df8-d554-4048-be70-6f344c32a5a4","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-09-08T13:13:54+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"0b6a2b21-9425-466e-9e8d-57ec39cc95e1","previous":{"v":"63365821eae874ea"},"stamps":[],"t":1757337234333,"v":"430b6a0f733d99a9"},{"id":"bbc3fba8-faa0-4456-bb66-645ff69d055d","v":"deec2c6fca27e353","cloneOf":{"id":"9fd70df8-d554-4048-be70-6f344c32a5a4","v":"a0f8c846b6285a14","text":"rd:diagrams"},"originalCloneOf":{"id":"9fd70df8-d554-4048-be70-6f344c32a5a4","v":"a0f8c846b6285a14","text":"rd:diagrams"},"previous":{"v":"6ee4104ac2ae341a"},"p":"df3870fe-b129-4535-9e52-c33a05fb4bce","f":{"id":"design-form","v":"5dbbefb312ab61e2","text":"Design"},"data":{"name":"rd:diagrams","template":"\n<div class=\"h-full\">\n  <div class=\"bg-white max-w-5xl mx-auto px-4 pb-4 xl:my-2 xl:shadow-md xl:rounded-md flex flex-col gap-10\">\n    <section class=\"p-4\">\n      <header class=\"font-bold text-lg truncate\">\n        Alle Mitarbeiter von <ae-design name=\"title\" :document=\"document\" class=\"inline italic\"></ae-design>\n      </header>\n\n      <div class=\"flex items-center\">\n        <canvas ref=\"chartTasks\" width=\"440\" height=\"200\"></canvas>\n\n        <div>\n          <div v-for=\"(label, index) of locals.labels\"\n                class=\"flex gap-2 justify-between\"\n          >\n            <div :style=\"{ color: locals.borderColor[index] }\">\n            {{ label}}\n            </div>\n            <div>\n              {{locals.chartData[index]}}\n            </div>\n          </div>\n          \n        </div>\n      </div>\n    </section>\n\n    <!-- <section>\n      <header class=\"font-bold text-lg\">\n        Erfasste Zeiten\n      </header>\n\n      <ae-layout layout-id=\"10590b76-115a-4539-a911-6994500ab02a\" \n            :param-document=\"document\"\n      ></ae-layout> \n    </section> -->\n  </div>\n</div>  \n","css":"","controller":"class Controller {\n  async init() {\n    this._chart = null\n    locals.labels = []\n    locals.chartData = []\n    locals.backgroundColor = []\n    locals.borderColor = []\n\n    await Aeppic.nextRenderPass()\n\n    Aeppic.watch(document, (doc) => {\n      this.createDiagram(doc)\n    })\n\n    this.createDiagram(document)\n  }\n \n\n  createDiagram(doc) {\n    if (this._chart) {\n      this._chart.destroy()\n    }\n\n    locals.labels = []\n    locals.chartData = [] \n    locals.backgroundColor = []\n    locals.borderColor = []\n\n\n    // fontawesome colors, border is 1 step up in palette\n    if (doc.data.aufgabenErledigt > 0) {\n      locals.labels.push('Erledigt')\n      locals.chartData.push(doc.data.aufgabenErledigt)\n      locals.backgroundColor.push('#22c55e')\n      locals.borderColor.push('#16a34a')\n    }\n    if (doc.data.aufgabenBearbeitung > 0) {\n      locals.labels.push('In Bearbeitung')\n      locals.chartData.push(doc.data.aufgabenBearbeitung)\n      locals.backgroundColor.push('#facc15')\n      locals.borderColor.push('#eab308')\n    }\n    if (doc.data.aufgabenOffen > 0) {\n      locals.labels.push('Offen')\n      locals.chartData.push(doc.data.aufgabenOffen)\n      locals.backgroundColor.push('#cbd5e1')\n      locals.borderColor.push('#94a3b8')\n    }\n    if (doc.data.aufgabenUeberfaellig > 0) {\n      locals.labels.push('Überfällig')\n      locals.chartData.push(doc.data.aufgabenUeberfaellig)\n      locals.backgroundColor.push('#f43f5e')\n      locals.borderColor.push('#f43f5e')\n    }\n    \n \n    this._chart = new Chart($refs.chartTasks, { \n      options: {\n        responsive: false, \n      },\n      type: 'pie',\n      data: {\n        labels: locals.labels,\n        datasets: [{\n          data: locals.chartData,\n          backgroundColor: locals.backgroundColor,\n          borderColor: locals.borderColor,\n          borderWidth: 1\n        }]\n      } \n    })\n  }\n\n  destroy() {\n    if (this._chart) {\n      this._chart.destroy()\n    }\n  }\n}","packages":[{"id":"4a6e27ae-e4a0-4e22-9997-b352899f86f5","v":"c044548d5a0892ce","text":"Chart.js"}],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-09-27T12:58:46+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-12-13T10:57:08+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1702465028536,"ct":1695819526697,"a_depth":4,"a":["apps","a590ce5b-28fc-4f85-9049-d006e1b8f880","169e87e0-0379-48e1-8c94-8fadac5969bb","df3870fe-b129-4535-9e52-c33a05fb4bce"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"e0e3b432-f904-415e-8122-6a0ef8152daa","v":"722b3e1d862846de","previous":{"v":"4af6ce4cc6e942a2"},"p":"33e3b54d-6b4b-4aa3-8f70-2b834b27bf66","f":{"id":"design-form","v":"4b1c7a4912f80103","text":"Design"},"data":{"name":"rd:diagrams","template":"<div class=\"py-6\">\n  <div class=\"mx-auto w-full h-full bg-white max-w-5xl xl:shadow-md xl:rounded-md min-h-[600px] p-4\">\n    <ae-layout layout-id=\"175d2914-d624-4185-b8ac-a26423269d27\"\n               class=\"size-full\"\n               param-title=\"Wartungen vs. Reparaturen\"\n               :param-document=\"document\"\n               :param-fetch-series=\"(from, to) => controller.fetchSeries(from, to)\"\n    ></ae-layout>\n  </div>\n</div>\n","css":"","controller":"class Controller {\n  async fetchSeries(from, to) {\n    const companyId = document.a[0]\n    const interval = { start: from.toISO(), end: to.toISO() } // fieldName defaults to 'created.at'\n\n    const [maintenances, repairs] = await Promise.all([\n      packages.SearchHelpers.findInterval(Aeppic, interval, `a:${companyId} f.id:1b166603-d0f3-4f16-98c4-0534afbd6f5a data.facility.id:${document.id}`, { size: 1000 }),\n      packages.SearchHelpers.findInterval(Aeppic, interval, `a:${companyId} f.id:46a28dfa-7518-4867-9519-a5f4cd9b9967 data.facility.id:${document.id}`, { size: 1000 }),\n    ])\n\n    return [\n      { documents: maintenances, label: 'Wartungen', backgroundColor: '#3b82f6', borderColor: '#2563eb' },\n      { documents: repairs, label: 'Reparaturen', backgroundColor: '#f97316', borderColor: '#ea580c' },\n    ]\n  }\n}\n","packages":[],"parameters":[],"parametersDescriptions":[],"parametersTypes":[],"parametersControls":[],"parametersCardinalities":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2025-11-13T13:37:06+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"modified":{"at":"2026-08-06T13:56:39+00:00","by":"e24f1d78-6fbd-4f97-9fb0-b1af9bd6bd13","backedBy":"","impersonatedBy":"","from":"","client":"server"},"t":1786024599109,"ct":1763041026240,"a_depth":4,"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","33e3b54d-6b4b-4aa3-8f70-2b834b27bf66"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","94a64d89-d204-4918-b147-d717914fb03e","f254ce25-42f1-4333-8ee7-23554bf746c1","98c77209-1245-43d6-90b5-8625183f470c"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2025-06-20T12:23:09+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"ct":1750422189303,"data":{"aliases":[],"controller":"class Controller {\n  init() {\n    this.COMMANDS = {\n      mayAccessTimeEvaluation: '4415d400-b067-4565-ab98-f80bd2e6a771'\n    }\n  }\n}","css":"","description":"","name":"rd:diagrams","packages":[],"template":"<div class=\"h-full\">\n  <div class=\"h-full bg-white max-w-5xl mx-auto px-4 pb-4 pt-2 xl:my-2 xl:shadow-md xl:rounded-md flex flex-col gap-10\">\n    <section\n      class=\"h-full flex flex-col\"\n    >\n      <header class=\"font-bold text-lg mb-4\">\n        Erfasste Zeiten\n      </header>\n      <ae-layout\n        layout-id=\"27f748b3-9689-4d05-ac75-63f0cc1ce432\"\n        class=\"flex-1\"\n        :param-project-id=\"document.id\"\n        :param-enabled-command-id=\"controller.COMMANDS.mayAccessTimeEvaluation\"\n      >\n      </ae-layout>\n    </section>\n  </div>\n</div>  "},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"ec23f7cc-9648-48de-a971-693f2d7f56e0","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-07-01T08:41:11+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"98c77209-1245-43d6-90b5-8625183f470c","previous":{"v":"129447f62ca71f8b"},"stamps":[],"t":1751359271434,"v":"e8118049887576d7"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","46a28dfa-7518-4867-9519-a5f4cd9b9967"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"d8839567-791e-4ad7-88cf-27ac7d852cd4","text":"rd:performance-review","v":"3504d1b7b4804590"},"created":{"at":"2025-11-13T14:06:28+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1763042788243,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:dialog-performance-review","packages":[],"template":"<div class=\"min-h-screen\">\n    <section class=\"flex flex-col gap-2\">\n      <div class=\"flex justify-end\">\n        <!-- PDF export -->\n        <!-- <ae-layout layout-id=\"aac11114-46bb-4f29-a280-51d889a8aaca\" :param-document=\"document\"></ae-layout> -->\n      </div>\n      <div v-if=\"document.data.started\" class=\"bg-white p-2 border rounded-lg\">\n        Beginn der Mängelmeldung: {{\n        Aeppic.DateTime.fromISO(document.data.started).toLocaleString(Aeppic.DateTime.DATETIME_SHORT) }}\n        <div v-if=\"document.data.ended\">\n          Ende der Mängelmeldung: {{\n          Aeppic.DateTime.fromISO(document.data.ended).toLocaleString(Aeppic.DateTime.DATETIME_SHORT) }}\n        </div>\n      </div>\n      <div v-else>Mängelmeldung noch nicht gestartet.</div>\n\n        <ae-design v-for=\"team of data.team\" name=\"rd:maintenance-card\" :document=\"team\" :param-no-commands=\"true\"></ae-design>\n        <ae-design name=\"rd:maintenance-card\" :document=\"data.object\" :param-no-commands=\"true\"></ae-design>\n    </section>\n\n    <section class=\"mt-6 bg-white p-2 border rounded-lg flex flex-col gap-2\">\n      <div class=\"flex gap-2\" v-if=\"data.status !== 4\">\n        <ae-icon class=\"fa fa-info-circle\"></ae-icon>\n        <div>\n          Die Kenntnisnahme einer Wartung ändert den Status auf <span class=\"font-bold\">Zur Kenntnisnahme</span> und\n          entfernt diese Wartung aus der Wartungsansicht des Teams.\n        </div>\n      </div>\n\n      <div v-if=\"data.acknowledgedAt\" class=\"flex gap-2 items-center\">\n        <ae-design name=\"avatar\" :document-id=\"data.acknowledgedBy.id\" class=\"text-lg\"></ae-design>\n        <span class=\"\"\n          >Wartung zur Kenntnis genommen am {{\n          Aeppic.DateTime.fromISO(data.acknowledgedAt).toLocaleString(Aeppic.DateTime.DATETIME_SHORT) }}</span\n        >\n      </div>\n    </section>\n\n    <section class=\"mt-6 bg-white p-2 border rounded-lg\">\n      <ae-design name=\"rd:review\" :document=\"document\" :params=\"{ showDetails: true }\"></ae-design>\n    </section>\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"4031adf7-5587-45eb-924b-3cca67a9798a","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-11-13T14:07:26+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"d8839567-791e-4ad7-88cf-27ac7d852cd4","text":"rd:performance-review","v":"3504d1b7b4804590"},"p":"46a28dfa-7518-4867-9519-a5f4cd9b9967","previous":{"v":"e2924b2b1219ef86"},"stamps":[],"t":1763042846727,"v":"37bec6cdc6444844"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","1b166603-d0f3-4f16-98c4-0534afbd6f5a"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"5b4f311c-08a8-4625-929c-6c7e9c7dfe3f","text":"rd:performance-review","v":"b5e4c25d83f3731b"},"created":{"at":"2025-11-13T12:50:11+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1763038211671,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.ready = false\n\n    locals.maintenance = await Aeppic.get(data.maintenance)\n\n    locals.ready = true\n  }\n}","css":"","description":"","name":"rd:dialog-performance-review","packages":[],"template":"<div class=\"min-h-screen\">\n  <template v-if=\"locals.ready\">\n    <section class=\"flex flex-col gap-2\">\n      <div class=\"flex justify-end\">\n        <!-- PDF export -->\n        <ae-layout layout-id=\"20a6dabd-5c89-4fb9-a12b-5bc63a48e7ca\" :param-document=\"document\"></ae-layout>\n      </div>\n      <div v-if=\"locals.maintenance.data.started\" class=\"bg-white p-2 border rounded-lg\">\n        Beginn der Wartung: {{\n        Aeppic.DateTime.fromISO(locals.maintenance.data.started).toLocaleString(Aeppic.DateTime.DATETIME_SHORT) }}\n        <div v-if=\"locals.maintenance.data.ended\">\n          Ende der Wartung: {{\n          Aeppic.DateTime.fromISO(locals.maintenance.data.ended).toLocaleString(Aeppic.DateTime.DATETIME_SHORT) }}\n        </div>\n\n        <div v-if=\"locals.maintenance.data.duration\">\n          <!-- FIXME: toHuman not available -->\n          Stunden: {{Aeppic.DateTimeDuration.fromObject(locals.maintenance.data.duration).hours }}, Minuten:\n          {{Aeppic.DateTimeDuration.fromObject(locals.maintenance.data.duration).minutes }}\n        </div>\n      </div>\n      <div v-else>Wartung noch nicht gestartet.</div>\n\n      <ae-design\n        v-for=\"team of data.team\"\n        name=\"rd:maintenance-card\"\n        :document=\"team\"\n        :param-no-commands=\"true\"\n      ></ae-design>\n\n      <section class=\"bg-white p-2 border rounded-lg flex gap-2 flex-col\">\n        <ae-design name=\"title\" :document=\"data.object\" :param-no-commands=\"true\"></ae-design>\n        <ae-design name=\"title\" :document=\"data.location\" :param-no-commands=\"true\"></ae-design>\n      </section>\n    </section>\n\n    <section class=\"mt-6 bg-white p-2 border rounded-lg flex flex-col gap-2\">\n      <div class=\"flex gap-2\" v-if=\"data.status !== 4\">\n        <ae-icon class=\"fa fa-info-circle\"></ae-icon>\n        <div>\n          Die Kenntnisnahme einer Wartung ändert den Status auf <span class=\"font-bold\">Zur Kenntnisnahme</span> und\n          entfernt diese Wartung aus der Wartungsansicht des Teams.\n        </div>\n      </div>\n\n      <div v-if=\"data.acknowledgedAt\" class=\"flex gap-2 items-center\">\n        <ae-design name=\"avatar\" :document-id=\"data.acknowledgedBy.id\" class=\"text-lg\"></ae-design>\n        <span class=\"\"\n          >Wartung zur Kenntnis genommen am {{\n          Aeppic.DateTime.fromISO(data.acknowledgedAt).toLocaleString(Aeppic.DateTime.DATETIME_SHORT) }}</span\n        >\n      </div>\n    </section>\n\n    <section class=\"mt-6 bg-white p-2 border rounded-lg\">\n      <ae-design name=\"rd:dialog-review\" :document=\"locals.maintenance\"></ae-design>\n    </section>\n\n    <ae-design class=\"mt-6\" name=\"rd:defects-list\" :document=\"document\"></ae-design>\n  </template>\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"e59647a6-0de7-4ed7-806c-f97397d79f54","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-11-13T13:50:52+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"5b4f311c-08a8-4625-929c-6c7e9c7dfe3f","text":"rd:performance-review","v":"b5e4c25d83f3731b"},"p":"1b166603-d0f3-4f16-98c4-0534afbd6f5a","previous":{"v":"06d8766a58cd19d7"},"stamps":[],"t":1763041852051,"v":"ed723760d6dcad7a"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","347d38c6-0bce-47ce-b271-9f924c56ac49"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"60f46022-f13e-4118-b2ae-96c01b30af50","text":"rd:review","v":"1657f729db8fc267"},"created":{"at":"2025-11-13T12:52:05+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1763038325232,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:dialog-review","packages":[],"template":"<ae-list list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\"\n          :documents=\"data.parts\"\n          param-design=\"rd:dialog-review\"\n></ae-list> \n"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"45257b32-7763-4463-b026-d5e413ea76f4","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-11-13T12:52:33+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"60f46022-f13e-4118-b2ae-96c01b30af50","text":"rd:review","v":"1657f729db8fc267"},"p":"347d38c6-0bce-47ce-b271-9f924c56ac49","previous":{"v":"067933b6b51fc24e"},"stamps":[],"t":1763038353737,"v":"bfe2b38ccbf0ed5f"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","f5850e39-8581-4b62-8cfe-f4fa95009a1a"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"11da19de-cf09-41bb-abca-892d7e521453","text":"rd:review","v":"3ff2454937ed9f21"},"created":{"at":"2025-11-13T12:48:39+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1763038119115,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:dialog-review","packages":[],"template":"<div class=\"\">\n  <div class=\"flex\">\n    <ae-design class=\"text-lg\" name=\"rd:work-status\" :document=\"document\"></ae-design>\n  </div>\n<!-- \n  <div class=\"pl-4\">\n    <ae-list list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\" :documents=\"data.items\" param-design=\"rd:review\"></ae-list>\n  </div>  -->\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"7b801e88-7ba6-421e-8b6b-55c2ad1ea457","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-11-13T12:53:33+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"11da19de-cf09-41bb-abca-892d7e521453","text":"rd:review","v":"3ff2454937ed9f21"},"p":"f5850e39-8581-4b62-8cfe-f4fa95009a1a","previous":{"v":"0920c12c71e4768e"},"stamps":[],"t":1763038413655,"v":"6a4d1bdd54e3a515"},{"id":"85ec0a53-7dab-47d1-960e-1986b75d2539","v":"f79c399a307c851f","cloneOf":{"id":"7cd29550-38b4-4171-9656-9ee6de9a03a0","v":"f9ec85b88d9bca15","text":"download-and-print-buttons"},"originalCloneOf":{"id":"7cd29550-38b4-4171-9656-9ee6de9a03a0","v":"f9ec85b88d9bca15","text":"download-and-print-buttons"},"previous":{"v":"fe92a27352936935"},"p":"3f5de83a-40e4-4662-b436-3ed4879edb10","f":{"id":"design-form","v":"24435d748c76f819","text":"Design"},"data":{"name":"rd:download-and-print-buttons","template":"<div v-if=\"document.data.stallkarte.dataUrl\" class=\"flex gap-1\" :class=\"{'flex-col': params.displayColumn}\">\n  <template v-if=\"controller.hasDownloadableConverted\">\n    <a\n      :href=\"Aeppic.Content.getSrc(document, 'stallkarte')\"\n      target=\"_blank\"\n      :download=\"document.data.name + '.mp4'\"\n    >\n      <ae-layout\n        layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n        param-title=\"Aktuelle Vorschau herunterladen\"\n        param-text=\"Aktuelle Vorschau herunterladen\"\n        param-icon=\"far fa-file-image\"\n      >\n      </ae-layout>\n    </a>\n\n    <a\n      :href=\"Aeppic.Content.getSrc(locals.original, 'file')\"\n      target=\"_blank\"\n      :download=\"controller.fileNameWithUploadedExtension(locals.original, 'file')\"\n    >\n      <ae-layout\n        param-icon=\"fal fa-file-image\"\n        layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n        param-title=\"Dokument (Original) herunterladen\"\n        param-text=\"Dokument (Original) herunterladen\"\n      >\n      </ae-layout>\n    </a>\n  </template>\n  <a\n    v-else\n    :href=\"Aeppic.Content.getSrc(document, 'stallkarte')\"\n    target=\"_blank\"\n    :download=\"controller.fileNameWithUploadedExtension(document, 'stallkarte')\"\n  >\n    <ae-layout\n      v-if=\"controller.hasPreview\"\n      layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n      param-icon=\"far fa-download\"\n      param-title=\"Dokument (Original) herunterladen\"\n      param-text=\"Dokument (Original) herunterladen\"\n    >\n    </ae-layout>\n    <ae-layout\n      v-else\n      layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n      param-icon=\"far fa-download\"\n      param-title=\"Dokument herunterladen\"\n      param-text=\"Herunterladen\"\n    >\n    </ae-layout>\n  </a>\n\n  <ae-layout\n    v-if=\"controller.canPrint\"\n    layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n    param-icon=\"far fa-print\"\n    param-title=\"Dokument drucken\"\n    param-text=\"Drucken\"\n    @selected=\"$emit('toolbar', 'print')\"\n  >\n  </ae-layout>\n\n  <a\n    v-if=\"controller.hasPreview\"\n    :href=\"Aeppic.Content.getPdfUrl(document, 'stallkarte')\"\n    target=\"_blank\"\n    :download=\"document.data.name + '.pdf'\"\n  >\n    <ae-layout\n      param-icon=\"far fa-file-pdf\"\n      layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n      param-title=\"Aktuelle Vorschau als PDF herunterladen\"\n      param-text=\"Aktuelle Vorschau als PDF herunterladen\"\n    >\n    </ae-layout>\n  </a>\n  <!-- <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\" class=\"ae-ae-layout\" v-if=\"controller.hasPreview && controller.isOfficeDocument\" title=\"\">\n    <ae-icon class=\"far fa-info-circle\"></ae-icon>\n  </ae-layout> -->\n</div>\n","css":"","controller":"class Controller {\n  async init() {\n    locals.original = null\n    locals.converted = null\n\n    this.displayableTypes = [\n      'application/pdf'\n    ]\n\n    this.displayableTypesStartingWith = [\n      'image/',\n      'video/',\n      'application/vnd.oasis.opendocument'\n    ]\n\n    this.displayableTypesIncluding = [\n      'word',\n      'spreadsheet',\n      'powerpoint',\n      'presentation',\n      'mspublisher',\n    ]\n\n    this.subscribeConverted()\n    this.subscribeOriginal()\n  }\n\n  fileNameWithUploadedExtension(fileDocument, fieldName) {\n    const fileField = fileDocument.data[fieldName]\n    const name = document.data.name || fileField.name\n\n    try {\n      const parts = fileField.name.split('.')\n      const extension = parts.slice(-1)[0]\n\n      if (name.endsWith(extension)) {\n        return name\n      }\n\n      return `${name}.${extension}`\n    } catch (e) {\n      return name\n    }\n  }\n\n  get canPrint() {\n    const field = data.stallkarte\n    return !field.type.startsWith('video/') && !field.type.startsWith('image/') && this.isDocumentDisplayable\n  }\n\n  get hasPreview() {\n    const field = data.stallkarte\n    return !field.type.startsWith('video/') && !field.type.startsWith('image/') && !field.type.startsWith('application/pdf') && this.isDocumentDisplayable\n  }\n\n  get isDocumentDisplayable() {\n    const type = document.data.stallkarte.type\n\n    if (type == null || typeof type !== 'string') {\n      return false\n    }\n\n    for (const t of this.displayableTypes) {\n      if (t === type) {\n        return true\n      }\n    }\n\n    for (const t of this.displayableTypesStartingWith) {\n      if (type.startsWith(t)) {\n        return true\n      }\n    }\n\n    for (const t of this.displayableTypesIncluding) {\n      if (type.includes(t)) {\n        return true\n      }\n    }\n\n    return false\n  }\n\n  subscribeOriginal() {\n    Aeppic.subscribe(`p:${document.id} f.id:8bf0fb31-716d-4b76-98d8-b7349f1d7529 data.name:original`, (documents) => {\n      locals.original = documents[0]\n    })\n  }\n  subscribeConverted() {\n    Aeppic.subscribe(`p:${document.id} f.id:8bf0fb31-716d-4b76-98d8-b7349f1d7529 data.name:converted`, (documents) => {\n      locals.converted = documents[0]\n    })\n  }\n\n  get hasDownloadableConverted() {\n    const hasConverted = locals.converted && locals.original\n\n    if (!hasConverted) {\n      return false\n    }\n\n    const isConvertedVideo = locals.converted.data.file.type.startsWith('video/')\n\n    return isConvertedVideo\n  }\n}\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-01-08T14:45:40+01:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2024-01-08T14:47:44+01:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1704721664579,"ct":1704721540967,"a_depth":4,"a":["apps","5ec4fefb-1235-484e-8d6f-4fd645bae372","75920050-07b1-4e79-9742-54abcc235e91","3f5de83a-40e4-4662-b436-3ed4879edb10"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"ca8bae9e-d0f3-4f5e-9438-59668d613d43","v":"fb6e325a34f83c7e","cloneOf":{"id":"e4cfe15c-1a36-44d3-9d0f-60db67603066","v":"d057d410b252e726","text":"download-and-print-buttons"},"originalCloneOf":{"id":"e4cfe15c-1a36-44d3-9d0f-60db67603066","v":"d057d410b252e726","text":"download-and-print-buttons"},"previous":{"v":"8e36e28f15fee83e"},"p":"dbee6e16-d63a-493c-bba6-505f79918f9f","f":{"id":"design-form","v":"24435d748c76f819","text":"Design"},"data":{"name":"rd:download-and-print-buttons","template":"<div v-if=\"document.data.datei.dataUrl\" class=\"flex gap-1\" :class=\"{'flex-col': params.displayColumn}\">\n  <template v-if=\"controller.hasDownloadableConverted\">\n    <a\n      :href=\"Aeppic.Content.getSrc(document, 'datei')\"\n      target=\"_blank\"\n      :download=\"document.data.name + '.mp4'\"\n    >\n      <ae-layout\n        layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n        param-title=\"Aktuelle Vorschau herunterladen\"\n        param-text=\"Aktuelle Vorschau herunterladen\"\n        param-icon=\"far fa-file-image\"\n      >\n      </ae-layout>\n    </a>\n\n    <a\n      :href=\"Aeppic.Content.getSrc(locals.original, 'file')\"\n      target=\"_blank\"\n      :download=\"controller.fileNameWithUploadedExtension(locals.original, 'file')\"\n    >\n      <ae-layout\n        param-icon=\"far fa-file-image\"\n        layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n        param-title=\"Dokument (Original) herunterladen\"\n        param-text=\"Dokument (Original) herunterladen\"\n      >\n      </ae-layout>\n    </a>\n  </template>\n  <a\n    v-else\n    :href=\"Aeppic.Content.getSrc(document, 'datei')\"\n    target=\"_blank\"\n    :download=\"controller.fileNameWithUploadedExtension(document, 'datei')\"\n  >\n    <ae-layout\n      v-if=\"controller.hasPreview\"\n      layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n      param-icon=\"far fa-download\"\n      param-title=\"Dokument herunterladen\"\n      param-text=\"Dokument herunterladen\"\n    >\n    </ae-layout>\n    <ae-layout\n      v-else\n      layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n      param-icon=\"far fa-download\"\n      param-title=\"Dokument herunterladen\"\n      param-text=\"Herunterladen\"\n    >\n    </ae-layout>\n  </a>\n\n  <ae-layout\n    v-if=\"controller.canPrint\"\n    layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n    param-icon=\"far fa-print\"\n    param-title=\"Dokument drucken\"\n    param-text=\"Drucken\"\n    @selected=\"$emit('toolbar', 'print')\"\n  >\n  </ae-layout>\n\n  <a\n    v-if=\"controller.hasPreview\"\n    :href=\"Aeppic.Content.getPdfUrl(document, 'datei')\"\n    target=\"_blank\"\n    :download=\"document.data.name + '.pdf'\"\n  >\n    <ae-layout\n      param-icon=\"far fa-file-pdf\"\n      layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n      param-title=\"Aktuelle Vorschau als PDF herunterladen\"\n      param-text=\"Aktuelle Vorschau als PDF herunterladen\"\n    >\n    </ae-layout>\n  </a>\n  <!-- <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\" class=\"ae-ae-layout\" v-if=\"controller.hasPreview && controller.isOfficeDocument\" title=\"\">\n    <ae-icon class=\"far fa-info-circle\"></ae-icon>\n  </ae-layout> -->\n</div>\n","css":"","controller":"class Controller {\n  async init() {\n    locals.original = null\n    locals.converted = null\n\n    this.displayableTypes = [\n      'application/pdf'\n    ]\n\n    this.displayableTypesStartingWith = [\n      'image/',\n      'video/',\n      'application/vnd.oasis.opendocument'\n    ]\n\n    this.displayableTypesIncluding = [\n      'word',\n      'spreadsheet',\n      'powerpoint',\n      'presentation',\n      'mspublisher',\n    ]\n\n    this.subscribeConverted()\n    this.subscribeOriginal()\n  }\n\n  fileNameWithUploadedExtension(fileDocument, fieldName) {\n    const fileField = fileDocument.data[fieldName]\n    const name = document.data.name || fileField.name\n\n    try {\n      const parts = fileField.name.split('.')\n      const extension = parts.slice(-1)[0]\n\n      if (name.endsWith(extension)) {\n        return name\n      }\n\n      return `${name}.${extension}`\n    } catch (e) {\n      return name\n    }\n  }\n\n  get canPrint() {\n    if (params.noPrint) {\n      return false\n    }\n\n    const field = data.datei\n    return !field.type.startsWith('video/') && !field.type.startsWith('image/') && this.isDocumentDisplayable\n  }\n\n  get hasPreview() {\n    const field = data.datei\n    return !field.type.startsWith('video/') && !field.type.startsWith('image/') && !field.type.startsWith('application/pdf') && this.isDocumentDisplayable\n  }\n\n  get isOfficeDocument() {\n    const type = document.data.datei.type\n\n    return this.displayableTypesIncluding.some(t => type.includes(t))\n  }\n\n  get isDocumentDisplayable() {\n    const type = document.data.datei.type\n\n    if (type == null || typeof type !== 'string') {\n      return false\n    }\n\n    for (const t of this.displayableTypes) {\n      if (t === type) {\n        return true\n      }\n    }\n\n    for (const t of this.displayableTypesStartingWith) {\n      if (type.startsWith(t)) {\n        return true\n      }\n    }\n\n    for (const t of this.displayableTypesIncluding) {\n      if (type.includes(t)) {\n        return true\n      }\n    }\n\n    return false\n  }\n\n  subscribeOriginal() {\n    Aeppic.subscribe(`p:${document.id} f.id:8bf0fb31-716d-4b76-98d8-b7349f1d7529 data.name:original`, (documents) => {\n      locals.original = documents[0]\n    })\n  }\n  subscribeConverted() {\n    Aeppic.subscribe(`p:${document.id} f.id:8bf0fb31-716d-4b76-98d8-b7349f1d7529 data.name:converted`, (documents) => {\n      locals.converted = documents[0]\n    })\n  }\n\n  get hasDownloadableConverted() {\n    const hasConverted = locals.converted && locals.original\n\n    if (!hasConverted) {\n      return false\n    }\n\n    const isConvertedVideo = locals.converted.data.file.type.startsWith('video/')\n\n    return isConvertedVideo\n  }\n}\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-03-07T13:59:09+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2024-01-29T14:48:51+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1706539731817,"ct":1678197549917,"a_depth":4,"a":["apps","45ada186-e9fd-451d-9dbd-2defc0b4f86f","4ec6a0e5-cf2d-4095-9b70-2e31a64d5679","dbee6e16-d63a-493c-bba6-505f79918f9f"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"49588cb1-35cb-4434-a53a-574ca513a591","v":"421692df4f432c98","previous":{"v":"6de65ec88e2fdffa","p":"fallback-designs","a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"]},"p":"1cc4b977-c14d-4587-af47-d6ac230f60b3","f":{"id":"design-form","v":"4b1c7a4912f80103","text":"Design"},"data":{"name":"rd:editable-title","template":"<!-- <div class=\"text-xs font-mono\">\n  {{ params  }}\n  ro:{{locals.readonly}}\n</div> -->\n\n<div class=\"flex gap-2 items-center\" :class=\"{ 'cursor-default': locals.readonly, 'cursor-text': !locals.readonly }\">\n  <div class=\"flex-1 w-full overflow-hidden flex items-center gap-1 p-1 border hover:border-slate-200  rounded-md\"\n      @click.stop=\"controller.showInput()\"\n      :class=\"{ 'z-50 border-slate-200': locals.edit, 'border-transparent': !locals.edit && !params.border, 'border-slate-200': params.border }\"\n  >\n    <ae-layout v-if=\"params.showFavoriteAction\"\n              layout-id=\"e328702a-6cac-44eb-801b-e75fbd946a09\"\n              :param-document=\"locals.document\"\n    ></ae-layout> \n\n    <div  v-if=\"!locals.edit\" \n          :title=\"locals.calculatedTitle\" \n          class=\"flex-1 truncate w-full\" \n          :class=\"[!locals.document.data[controller.fieldName] && 'italic text-neutral-400']\">\n      {{ locals.calculatedTitle }}\n    </div> \n    <ae-design v-else-if=\"locals.hasInputDesign\"\n              name=\"rd:editable-title:input\"\n              :document=\"locals.document\"\n              class=\"w-full\"\n              @end=\"controller.onDesignSave()\" \n              @abort=\"controller.abortEditing()\"\n              ref=\"inputDesign\"\n    ></ae-design>\n    <input  v-else\n            v-model=\"locals.inputValue\"\n            class=\"w-full outline-none bg-transparent\" \n            @focus=\"controller.onFocus()\"\n            @blur=\"controller.update($event.target.value)\"\n            @keydown.tab.prevent=\"controller.update($event.target.value)\"\n            @keydown.enter.prevent=\"controller.update($event.target.value)\"\n            @keydown.esc.prevent=\"controller.exitEditing()\"\n            spellcheck=\"false\"\n            :disabled=\"locals.readonly\"\n            v-focus\n            ref=\"input\"\n    >\n    <!-- <ae-design name=\"title-extension\" \n          :document=\"document\" \n    ></ae-design> -->\n    <ae-icon v-if=\"params.showPathIcon\" class=\"far fa-folder-tree text-neutral-500 self-center\"></ae-icon>\n  </div>\n \n</div>\n       ","css":"","controller":"class Controller{\n  async init() {\n    this.form = null\n\n    locals.edit = false\n    locals.hasInputDesign = null\n    locals.customInputFieldName = null\n\n    locals.skipUpdateOnce = false\n    locals.skipUpdateUntilFocus = false\n    locals.inputValue = ''\n    locals.readonly = false\n    locals.document = document\n    locals.calculatedTitle = this.getCalculatedTitle(document)\n    \n    this.form = await Aeppic.getFormForDocument(document)\n\n    this._detectCustomFieldName()\n\n    locals.readonly = params.readonly\n    locals.readonlyByField = this._detectReadonly()\n\n    if (params.editImmediately) {\n      this.showInput()\n    }\n\n    if (params.focus) {\n      this._focusInput()\n    }\n\n    this.watcher = Aeppic.watch(document.id, (doc) => {\n      // console.log('watch', doc.id)\n      locals.document = doc\n      locals.calculatedTitle = this.getCalculatedTitle(doc)\n    })\n \n    $on('focus', async () => this._focusInput())\n\n    watchParam('readonly', (readonly) => {\n      locals.readonly = readonly\n      locals.readonlyByField = this._detectReadonly()\n    })\n  }\n\n  async _focusInput() {\n    if (locals.readonly) {\n      return\n    }\n\n    await this.showInput()\n\n    await Aeppic.nextRenderPass()\n\n    if (locals.hasInputDesign) {\n      $refs.inputDesign.$emit('focus')\n      return\n    } \n\n    if (locals.readonlyByField) {\n      return\n    }\n\n    $refs.input.focus()\n  }\n\n  _detectCustomFieldName() {\n    if ('name' in data) {\n      // no placeholder === must be a calculated field without label\n      const placeholder = this.form.getPlaceholder('name')\n\n      const isCalculated = !!placeholder?.field.settings?.formula\n    \n      // TODO: improve hidden-if checking. For now keep it safe and disable editing, if it may be hidden at some time\n      const isHidden = !!placeholder?.style?.hidden\n\n      params.debug && console.log({ isHidden, placeholder })\n\n      if (!placeholder) {\n        return\n      }\n\n      if (!isCalculated && !isHidden) {\n        return\n      }\n\n      if (!placeholder.field.tags?.editable) {\n        return\n      }\n\n      locals.customInputFieldName = placeholder.field.tags.editable\n    }\n  }\n\n  _detectReadonly() {\n    const placeholder = this.form.getPlaceholder(this.fieldName)\n\n    const isCalculated = !!placeholder?.field.settings?.formula\n    \n    // TODO: improve hidden-if checking. For now keep it safe and disable editing, if it may be hidden at some time\n    const isHidden = !!placeholder?.style?.hidden\n\n    if (!placeholder || isCalculated || isHidden) {\n      return true\n    }\n\n    return false\n  }\n\n  get fieldName() {\n    return locals.customInputFieldName || 'name'\n  }\n\n  async showInput() { \n    if (locals.readonly) {\n      return\n    }\n\n    locals.hasInputDesign = !!(await Aeppic.findOne(`p:${document.f.id} f.id:design-form data.name:\"rd:editable-title:input\"`))\n\n    // if (!locals.hasInputDesign && 'name' in data) {\n    //   // no placeholder === must be a calculated field without label\n    //   const placeholder = this.form.getPlaceholder('name')\n\n    //   const isCalculated = !!placeholder?.field.settings?.formula\n    \n    //   // TODO: improve hidden-if checking. For now keep it safe and disable editing, if it may be hidden at some time\n    //   const isHidden = !!placeholder?.style?.hidden\n\n    //   if (!placeholder) {\n    //     return\n    //   }\n\n    //   if (!isCalculated && !isHidden) {\n    //     return\n    //   }\n\n    //   if (!placeholder.field.tags?.editable) {\n    //     return\n    //   }\n\n    //   locals.customInputFieldName = placeholder.field.tags.editable\n    // }\n\n    if (locals.hasInputDesign || !locals.readonlyByField) {\n      $emit('start')\n\n      locals.edit = true\n    }\n  }\n\n  getCalculatedTitle(doc) {\n    const name = doc.data.namespace ? `${doc.data.namespace}:${doc.data[this.fieldName]}` : doc.data[this.fieldName]\n    const label = doc.data.label\n\n    const title = params.preferLabel ? label || name : name || label\n    const trimmedTitle = title?.trim()\n\n    if (trimmedTitle) {\n      return trimmedTitle\n    }\n\n    // TODO: fetch form to always display newst form name? or don't to save calls?!\n    return params.placeholder || this.form?.data.name\n  }\n\n  abortEditing() {\n    console.log('abortEditing')\n\n    locals.skipUpdateUntilFocus = true\n    locals.edit = false\n\n    if ($listeners?.abort) {\n      $emit('abort')\n    } else {\n      $emit('end')\n    }\n  }\n\n  exitEditing() {\n    console.log('exitEditing')\n\n    locals.skipUpdateUntilFocus = true\n    locals.edit = false\n\n    $emit('end')\n  }\n\n  async update(value) {\n    console.log('update')\n\n    if (locals.skipUpdateUntilFocus) {\n      return\n    }\n\n    const doc = locals.document\n\n    if (doc.data[this.fieldName] !== value) {\n      const editable = Aeppic.isEditableDocument(doc) ? doc : await Aeppic.edit(doc) \n\n      editable.data[this.fieldName] = value\n\n      Aeppic.save(editable)\n    }\n\n    $emit('saved')\n\n    this.exitEditing()\n  }\n\n  onDesignSave() {\n    console.log('onDesignSave')\n    locals.edit = false\n\n    $emit('saved')\n    \n    this.exitEditing()\n  }\n\n  onFocus() {\n    console.log('onFocus')\n    locals.inputValue = locals.document.data[this.fieldName]\n    locals.skipUpdateOnce = false\n    locals.skipUpdateUntilFocus = false\n  }\n}\n","packages":[],"parameters":["border","showFavoriteAction","showPathIcon"],"parametersDescriptions":[],"parametersTypes":["boolean","boolean","boolean"],"parametersControls":[],"parametersCardinalities":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-05-10T13:59:05+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"modified":{"at":"2025-09-19T09:32:07+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1767870469079,"ct":1758274277635,"a_depth":3,"a":["apps","77ee8815-2c3a-4bb5-abd9-90541a545a24","1cc4b977-c14d-4587-af47-d6ac230f60b3"],"a_forms":["folder","application-form","design-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"meta":{"modified":{"at":"2026-01-08T11:07:49+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":"","impersonatedBy":"","from":"","client":"server"}}},{"id":"9c6ad6ec-2217-47a0-b823-71f6650d0ad9","v":"9af8fa79ead435b7","previous":{"v":"initial"},"p":"account","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:editable-title:input","template":"<!-- no edit possible -->\n<div>\n  {{ data.name }}\n</div>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-12-13T10:30:40+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-12-13T10:31:12+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1702463472198,"ct":1702463440469,"a_depth":5,"a":["system","b2533f7b-ea85-4680-99ed-d8e11be641b9","0e6939d6-9b93-4165-b6bd-977e4da881f3","627f5b74-3baf-45f8-a1d3-a5936839b844","account"],"a_forms":["system-folder-form","folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"a":["system","b2533f7b-ea85-4680-99ed-d8e11be641b9","0e6939d6-9b93-4165-b6bd-977e4da881f3","627f5b74-3baf-45f8-a1d3-a5936839b844","lock-form"],"a_depth":5,"a_forms":["system-folder-form","folder","application-form","form-folder","form"],"cloneOf":{"id":"c15a1265-4975-4d89-ba6a-8ae739b55acf","text":"editor","v":"70f9baf62aecdba9"},"created":{"at":"2025-09-04T15:06:33+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1756998393491,"data":{"aliases":[],"controller":"class Controller {\r\n  init() {\r\n    // const OWNER_RIGHT_ID = 'aa07b33e-c450-4ef2-afd4-27c9d7425d6c'\r\n    this.OWNER_RIGHT_ID = 'aa3ba2de-4b65-4152-ab1d-655e21de9efd'\r\n    this.GROUP_FORM_ID = 'group'\r\n\r\n    this.scopeId = document.a[0]\r\n\r\n    locals.showEditor = false\r\n    locals.canEdit = true\r\n\r\n    // locals.accounts = [Aeppic.Account]\r\n    locals.hasExistingKeys = false\r\n    locals.accounts = []\r\n    locals.keys = []\r\n\r\n    locals.availableAccountsFilter = null\r\n    locals.availableAccounts = []\r\n    locals.showSelector = false\r\n\r\n    updateKeys()\r\n\r\n    watchParam('applicableKeys', () => {\r\n      updateKeys()\r\n    })\r\n\r\n    const self = this\r\n\r\n    async function updateKeys() {\r\n      const applicableKeys = params.applicableKeys\r\n      const existingKeys = await Aeppic.find(`p:${document.id} f.id:key-form data.lock.id:${document.id}`, {\r\n        sort: 'data.name',\r\n      })\r\n\r\n      locals.hasExistingKeys = !!existingKeys.length\r\n\r\n      const keys = []\r\n\r\n      const securityAdministratorsGroups = params.securityAdministratorsGroups?.filter((d) => !!d)\r\n      for (const applicableKey of applicableKeys) {\r\n        let alreadyAdded = false\r\n\r\n        for (const existingKey of existingKeys) {\r\n          const rootTemplateOfExistingKey = await existingKey.originalCloneOf\r\n\r\n          if (rootTemplateOfExistingKey && rootTemplateOfExistingKey.id === applicableKey.id) {\r\n            keys.push(await Aeppic.edit(existingKey))\r\n            alreadyAdded = true\r\n            break\r\n          }\r\n        }\r\n\r\n        if (!alreadyAdded) {\r\n          const newKey = await Aeppic.clone(applicableKey, document.id)\r\n          newKey.addReference('lock', document)\r\n\r\n          if (newKey.isReferencing('rights', self.OWNER_RIGHT_ID)) {\r\n            // // Automatically add current user to keys marked as having OWNER right\r\n            // newKey.addReference('accounts', Aeppic.Account)\r\n\r\n            // Automatically add security group to keys marked as having OWNER right\r\n            if (securityAdministratorsGroups?.length) {\r\n              for (const group of securityAdministratorsGroups) {\r\n                newKey.addReference('groups', group)\r\n              }\r\n            }\r\n          }\r\n\r\n          Aeppic.commit(newKey)\r\n          keys.push(newKey)\r\n        }\r\n      }\r\n\r\n      for (const existingKey of existingKeys) {\r\n        const known = keys.find((k) => k.id === existingKey.id)\r\n\r\n        if (!known) {\r\n          keys.push(await Aeppic.edit(existingKey))\r\n        }\r\n      }\r\n\r\n      locals.keys = keys\r\n\r\n      updateAccountsFromKeys()\r\n    }\r\n\r\n    async function updateAccountsFromKeys() {\r\n      const addedAccounts = new Set(locals.accounts.map((a) => a.id))\r\n\r\n      for (const key of locals.keys) {\r\n        for (const account of key.data.accounts) {\r\n          if (!addedAccounts.has(account.id)) {\r\n            locals.accounts.push(account)\r\n            addedAccounts.add(account.id)\r\n          }\r\n        }\r\n      }\r\n    }\r\n\r\n    // locals.roles = [role('Leser'), role('Editor'), role('DMS Admin'), role('News Admin'), role('Auditor'), role('Publisher'), role('Supervisor'), role('Editor'), role('GF')]\r\n    locals.groups = findGroups()\r\n\r\n    async function findGroups() {\r\n      const documentRoot = document.a[0]\r\n      const groups = await Aeppic.find(`a:${documentRoot} f.id:${self.GROUP_FORM_ID}`)\r\n      return groups\r\n    }\r\n\r\n    // for (const r of locals.roles) {\r\n    //   for (const g of locals.groups) {\r\n    //     if (Math.random()*100 > 92) {\r\n    //       this.keys.push(key(r,g))\r\n    //     }\r\n    //   }\r\n    // }\r\n\r\n    // function role(name) {\r\n    //   return { name }\r\n    // }\r\n\r\n    function group(name) {\r\n      return { name }\r\n    }\r\n\r\n    // function key(role, group) {\r\n    //   return { group, role  }\r\n    // }\r\n  }\r\n\r\n  hasKeyBeenGivenToAccount(key, account) {\r\n    return key.isReferencing('accounts', account)\r\n  }\r\n\r\n  async toggleAccountAccess(key, accountRef) {\r\n    if (key.isReferencing('accounts', accountRef)) {\r\n      key.removeReference('accounts', accountRef)\r\n    } else {\r\n      const account = await Aeppic.get(accountRef)\r\n      key.addReference('accounts', account)\r\n\r\n      this.removeFromKeyByOwnerRight(key, 'accounts', accountRef)\r\n    }\r\n\r\n    Aeppic.commit(key)\r\n  }\r\n\r\n  //**\r\n  // * if key is OWNER_RIGHT, then remove group from all readkeys (Edit includes read)\r\n  // * if key has NOT OWNER_RIGHT, then remove group from all writekeys\r\n  // * @param {*} key \r\n  // * @param {*} fieldName \r\n  // * @param {*} groupOrUserRef \r\n  // */\r\n  removeFromKeyByOwnerRight(key, fieldName, groupOrUserRef) {\r\n    if (key.isReferencing('rights', this.OWNER_RIGHT_ID)) {\r\n      const readkeys = locals.keys.filter((key) => !key.isReferencing('rights', this.OWNER_RIGHT_ID))\r\n      readkeys.forEach((readkey) => {\r\n        readkey.removeReference('groups', groupOrUserRef)\r\n        Aeppic.commit(readkey)\r\n      })\r\n    } else {\r\n      const writekeys = locals.keys.filter((key) => key.isReferencing('rights', this.OWNER_RIGHT_ID))\r\n      writekeys.forEach((writekey) => {\r\n        writekey.removeReference('groups', groupOrUserRef)\r\n        Aeppic.commit(writekey)\r\n      })\r\n    }\r\n  }\r\n\r\n  async toggleGroupAccess(key, groupRef) {\r\n    if (key.isReferencing('groups', groupRef)) {\r\n      key.removeReference('groups', groupRef)\r\n    } else {\r\n      const group = await Aeppic.get(groupRef)\r\n      key.addReference('groups', group)\r\n\r\n      this.removeFromKeyByOwnerRight(key, 'groups', groupRef)\r\n    }\r\n\r\n    Aeppic.commit(key)\r\n  }\r\n\r\n  hasKeyBeenGivenToGroup(key, group) {\r\n    return key.isReferencing('groups', group)\r\n  }\r\n\r\n  async findAllGroups() {\r\n    return []\r\n  }\r\n\r\n  async findAllUsers() {\r\n    return []\r\n  }\r\n\r\n  get hasChanges() {\r\n    if (!locals.keys) {\r\n      return false\r\n    }\r\n\r\n    for (const key of locals.keys) {\r\n      if (key.hasRevisions) {\r\n        return true\r\n      }\r\n    }\r\n\r\n    return false\r\n  }\r\n\r\n  canGroupReachDocument(group) {\r\n    return true\r\n  }\r\n\r\n  canUserReachDocument(user) {\r\n    return true\r\n  }\r\n\r\n  getKeyForGroup(group) {}\r\n\r\n  getKeyForUser(user) {}\r\n\r\n  async saveChanges() {\r\n    if (!this.isSomeoneOwner) {\r\n      return\r\n    }\r\n\r\n    Aeppic.save(document)\r\n\r\n    for (const key of locals.keys) {\r\n      Aeppic.save(key)\r\n    }\r\n\r\n    const documentBeingLocked = await Aeppic.edit(document.p)\r\n    documentBeingLocked.addLock(document)\r\n    Aeppic.save(documentBeingLocked)\r\n\r\n    $emit('save')\r\n  }\r\n\r\n  get isSomeoneOwner() {\r\n    for (const key of locals.keys) {\r\n      if (!key.isReferencing('rights', this.OWNER_RIGHT_ID)) {\r\n        continue\r\n      }\r\n\r\n      if (key.data.accounts.length || key.data.groups.length) {\r\n        return true\r\n      }\r\n    }\r\n\r\n    return false\r\n  }\r\n\r\n  async showAddAccount() {\r\n    locals.availableAccountsFilter = null\r\n    locals.availableAccounts = await this.findAccounts()\r\n    locals.showSelector = true\r\n\r\n    await Aeppic.nextRenderPass()\r\n\r\n    $refs.addAccountPopup.$emit('show', {\r\n      target: $refs.buttonAdd,\r\n    })\r\n  }\r\n\r\n  async findAccounts() {\r\n    const profiles = await Aeppic.find(\r\n      `f.id:d2ac3563-3c3f-4f02-b923-9b67abf98d10 a:${this.scopeId} ${locals.availableAccountsFilter ? `(${locals.availableAccountsFilter})` : ''}`,\r\n      { size: 9999 },\r\n    )\r\n\r\n    const accountsPromises = profiles.map((profile) => this.getAccount(profile))\r\n    const accounts = (await Promise.all(accountsPromises)).filter(\r\n      (a) => a != null && !locals.accounts.find((ea) => ea.id == a.id),\r\n    )\r\n\r\n    return accounts\r\n  }\r\n\r\n  async getAccount(profile) {\r\n    const asProfileRef = await Aeppic.findOne(\r\n      `a:${this.scopeId} f.id:account account.data.profilePage.id:${profile.id}`,\r\n    )\r\n\r\n    if (asProfileRef) {\r\n      return asProfileRef\r\n    }\r\n\r\n    const asProfileParent = await Aeppic.findOne(`a:${this.scopeId} f.id:account p:${profile.id}`)\r\n\r\n    if (asProfileParent) {\r\n      return asProfileParent\r\n    }\r\n\r\n    return null\r\n  }\r\n\r\n  async filterAccounts(filter) {\r\n    // FIXME: re-add `data.name:${part}*`. Right now, with the fielName specified, any search for less than 5 characters will not return any result\r\n    const filterParts = filter\r\n      .trim()\r\n      .split(' ')\r\n      .map((part) => `${part}*`)\r\n      .join(' OR ')\r\n\r\n    console.log(filterParts)\r\n\r\n    locals.availableAccountsFilter = filterParts || ''\r\n\r\n    locals.availableAccounts = this.findAccounts()\r\n  }\r\n\r\n  async addAccount(account) {\r\n    locals.accounts.push(account)\r\n  }\r\n}\r\n","css":"\r\n._CSS-fa--fa-lock:before {\r\n  content: \"\\f023\"; }\r\n\r\n._CSS-fa--fa-lock-alt:before {\r\n  content: \"\\f30d\"; }\r\n\r\n._CSS-fa--fa-lock-open:before {\r\n  content: \"\\f3c1\"; }\r\n\r\n._CSS-fa--fa-lock-open-alt:before {\r\n  content: \"\\f3c2\"; }\r\n\r\n\r\n._CSS-fa--fa-toggle-on:before {\r\n  /* content: \"\\f14a\"; */\r\n  content: \"\\f205\";\r\n  color: var(--ae-primary);\r\n  /* font-weight: bold; */\r\n}\r\n\r\n._CSS-fa--fa-toggle-off:before {\r\n  /* content: \"\\f0c8\"; */\r\n  content: \"\\f204\";  \r\n  opacity:0.5;\r\n  color: var(--ae-primary);\r\n  /* font-weight: bold; */\r\n}\r\n\r\n\r\n._CSS-icon {\r\n  font-size:25px;\r\n}\r\n\r\n._CSS-header { \r\n  display:flex;\r\n  align-items: center;\r\n  justify-content: space-between; \r\n  font-size:smaller;\r\n  background:transparent;\r\n}\r\n\r\n._CSS-ae-dialog {\r\n  border:none;\r\n}\r\n\r\n._CSS-close {\r\n  color: var(--ae-primary);\r\n  background:transparent;\r\n}\r\n\r\n._CSS-dialog__header {\r\n  flex: 1;\r\n  display: flex;\r\n  justify-content: space-between;\r\n}\r\n\r\n._CSS-dialog-footer {\r\n  flex: 1;\r\n  display: flex;\r\n  justify-content: flex-end;\r\n}\r\n\r\n._CSS-dialog-footer * {\r\n  margin-left:12px;\r\n}\r\n\r\n._CSS-matrix {\r\n  display: table;\r\n  width: 100%;\r\n}\r\n\r\n._CSS-cell {\r\n  flex: 1;\r\n  min-width:0px;\r\n  overflow: auto;\r\n  display:flex;\r\n  align-items: center;\r\n}\r\n\r\n._CSS-cell:not(:first-of-type) {\r\n  text-align: center;\r\n}\r\n\r\n._CSS-cell:first-of-type {\r\n  min-width: 12em;\r\n}\r\n \r\n._CSS-cell--header {\r\n  padding-bottom: 1em;\r\n  text-overflow: ellipsis;\r\n  display:inline-block;\r\n  align-items:center;\r\n  text-align:center;\r\n}\r\n\r\n._CSS-row--header {\r\n  min-height: 2em;\r\n}\r\n\r\n._CSS-row {\r\n  display: flex;\r\n}\r\n\r\n._CSS-row > * {\r\n  /* flex: 1; */\r\n  min-width: 1em;\r\n}\r\n\r\n._CSS-cell--content {\r\n  background: var(--ae-ui-background);\r\n  padding: 2px;\r\n  border: solid var(--ae-border-color);\r\n  border-width: var(--ae-border-width) 0px 0 var(--ae-border-width); \r\n  justify-content:center;\r\n  align-items:center;\r\n}\r\n\r\n._CSS-cell--content + ._CSS-cell--content {\r\n  border-width: var(--ae-border-width) var(--ae-border-width) 0 var(--ae-border-width);   \r\n}\r\n\r\n._CSS-rows ._CSS-row:last-of-type ._CSS-cell--content  {\r\n  border-width: var(--ae-border-width) 0px var(--ae-border-width) var(--ae-border-width);   \r\n}\r\n\r\n._CSS-rows ._CSS-row:last-of-type ._CSS-cell--content + ._CSS-cell--content {\r\n  border-width: var(--ae-border-width) var(--ae-border-width) var(--ae-border-width) var(--ae-border-width);   \r\n}\r\n\r\n\r\n._CSS-lock-title {\r\n  text-align:left;\r\n}\r\n\r\n._CSS-commands {\r\n  margin-top: 1em;\r\n  justify-content: flex-end;\r\n  display:flex;\r\n  /* xbackground:red; */\r\n  padding:0;\r\n}\r\n\r\n._CSS-commands button {\r\n  margin-right:0;\r\n}\r\n\r\n._CSS-command button:disabled {\r\n  cursor: not-allowed;\r\n  pointer-events: none;\r\n  opacity: 0.2;\r\n}\r\n\r\n._CSS ._CSS-button-add {\r\n  margin-top: 1em;\r\n  width: 28px;\r\n  height: 28px;\r\n  text-align:center;\r\n  background: transparent;\r\n  border: none;\r\n  border-radius: 50%;\r\n}\r\n\r\n._CSS ._CSS-button-add:hover {\r\n  background: var(--ae-background-d3);\r\n}\r\n\r\n._CSS-button-icon {\r\n  color: var(--ae-theme-text-icon-on-background);\r\n}\r\n\r\n._CSS-lock-title {\r\n  color: var(--ae-foreground-l3);\r\n  text-align:center;\r\n}\r\n\r\n._CSS-error {\r\n  margin: 14px 0;\r\n  color: var(--ae-heading-1-color);\r\n}","description":"","name":"rd:editor","packages":[],"template":"<div class=\"border border-blue-500 rounded-md p-2\"\r\n    :data-test=\"'design' + '_' + design.data.name + '_' + 'documentForm_' + document.f.text\"\r\n>\r\n  <section v-if=\"!locals.hasExistingKeys && !locals.showEditor\">\r\n    <div class=\"flex items-center\">\r\n      <div class=\"text-green-600\">\r\n        <ae-icon class=\"far fa-door-open\"></ae-icon> Keine gesonderte Berechtigung erteilt\r\n      </div>\r\n\r\n      <div class=\"flex-1\"></div>\r\n\r\n      <ae-layout\r\n        layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\r\n        class=\"text-initial\"\r\n        param-icon=\"far fa-edit\"\r\n        param-text=\"Berechtigungs Editor anzeigen\"\r\n        @selected=\"locals.showEditor = true\"\r\n        param-border=\"border\"\r\n      ></ae-layout>\r\n    </div>\r\n  </section>\r\n  <template v-else>\r\n    <section class=\"_CSS-matrix\">\r\n      <div class=\"_CSS-row _CSS-row--header\">\r\n        <div class=\"_CSS-cell _CSS-lock-title\">\r\n          <!-- <ae-design name=\"title\" :document=\"document\" :watch-revision=\"false\" :watch=\"false\"></ae-design> -->\r\n          <div v-if=\"locals.hasExistingKeys\" class=\"text-blue-600\">\r\n            <ae-icon class=\"far fa-lock\"></ae-icon> Zugriff durch individuelle Berechtigungen gesichert\r\n          </div>\r\n          <div v-else class=\"text-green-600\">\r\n            <ae-icon class=\"far fa-door-open\"></ae-icon> Keine gesonderte Berechtigung erteilt\r\n          </div>\r\n        </div>\r\n        <div class=\"_CSS-cell _CSS-cell--content flex justify-center\" v-for=\"key of locals.keys\">\r\n          <ae-design\r\n            name=\"rights\"\r\n            :document=\"key\"\r\n            :watch-revision=\"false\"\r\n            :watch=\"false\"\r\n            :param-show-title=\"true\"\r\n          ></ae-design>\r\n        </div>\r\n      </div>\r\n      <div class=\"_CSS-row\">\r\n        <div class=\"_CSS-cell\">\r\n          <!-- <input type=\"text\"> -->\r\n        </div>\r\n        <div class=\"_CSS-cell\" v-for=\"role of locals.keys\"></div>\r\n      </div>\r\n      <div class=\"_CSS-rows\">\r\n        <h2 class=\"font-bold\">{{ Aeppic.translate('security:users') }}</h2>\r\n        <div class=\"_CSS-row\" v-for=\"account of locals.accounts\" :data-test=\"'account_' + (account.data?.name || account.text || account.id)\">\r\n          <div class=\"_CSS-cell _CSS-cell--content\">\r\n            <ae-design name=\"profile-avatar\" :document=\"account\"></ae-design>\r\n            <ae-design style=\"padding-left: 6px\" name=\"profile-title\" :document=\"account\"></ae-design>\r\n          </div>\r\n          <div\r\n            class=\"_CSS-cell _CSS-cell--content\"\r\n            v-for=\"key of locals.keys\"\r\n            @click=\"controller.toggleAccountAccess(key, account)\"\r\n            :data-test=\"'key_' + key.data.name || key.id\"\r\n          >\r\n            <i\r\n              v-if=\"controller.hasKeyBeenGivenToAccount(key, account)\"\r\n              class=\"fas fa-2x _CSS-icon _CSS-fa--fa-toggle-on\"\r\n            ></i>\r\n            <i v-else class=\"fal fa-2x _CSS-icon _CSS-fa--fa-toggle-off\"></i>\r\n          </div>\r\n        </div>\r\n      </div>\r\n\r\n      <div class=\"flex py-2\">\r\n        <ae-layout\r\n        layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\r\n        param-icon=\"far fa-user-plus\"\r\n        param-text=\"Account hinzufügen\"\r\n        @selected=\"controller.showAddAccount($event)\"\r\n        :param-disabled=\"!locals.canEdit\"\r\n        param-border=\"border\"\r\n        ></ae-layout>\r\n      </div>\r\n\r\n      <!-- TODO: :param-nofilter=\"mode === 'tags' && !params.useButton\" -->\r\n      <ae-layout\r\n        layout-id=\"ed2cc4c2-d2a0-4969-8da7-49fb3d539cc9\"\r\n        ref=\"addAccountPopup\"\r\n        :params=\"{ items: locals.availableAccounts, hidePath: true, searchSize: 50, designName: 'profile-title' }\"\r\n        @filter=\"controller.filterAccounts($event)\"\r\n        @selected=\"controller.addAccount($event)\"\r\n        @load-more=\"controller.loadMoreAccounts()\"\r\n      ></ae-layout>\r\n      <!-- @load-all=\"controller.loadAllItems()\" -->\r\n\r\n      <div v-if=\"locals.groups && locals.groups.length > 0\" class=\"_CSS-rows\">\r\n        <h2 class=\"font-bold\">{{ Aeppic.translate('security:groups') }}</h2>\r\n        <div class=\"_CSS-row\" v-for=\"group of locals.groups\" :data-test=\"'group_' + group.data.name || group.id\">\r\n          <div class=\"_CSS-cell _CSS-cell--content\">\r\n            <!-- <ae-design name=\"avatar--small\" :document=\"group\"></ae-design> -->\r\n            <ae-design xstyle=\"padding-left:6px\" name=\"title\" :document=\"group\"></ae-design>\r\n          </div>\r\n          <div\r\n            class=\"_CSS-cell _CSS-cell--content\"\r\n            v-for=\"key of locals.keys\"\r\n            @click=\"controller.toggleGroupAccess(key, group)\"\r\n            :data-test=\"'key_' + key.data.name || key.id\"\r\n          >\r\n            <i\r\n              v-if=\"controller.hasKeyBeenGivenToGroup(key, group)\"\r\n              class=\"fas fa-2x _CSS-icon _CSS-fa--fa-toggle-on\"\r\n            ></i>\r\n            <i v-else class=\"fal fa-2x _CSS-icon _CSS-fa--fa-toggle-off\"></i>\r\n          </div>\r\n        </div>\r\n      </div>\r\n    </section>\r\n    <section class=\"_CSS-error\" v-if=\"!controller.isSomeoneOwner\">\r\n      Anwenden der Berechtigungen nicht möglich.<br />\r\n      Mindestens einem Benutzer oder einer Gruppe muss das Bearbeiten-Recht zugeordnet werden.\r\n    </section>\r\n    <section class=\"_CSS-commands\">\r\n      <ae-layout\r\n        layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\r\n        param-icon=\"\"\r\n        :param-text=\"locals.hasExistingKeys ? 'Zugriff wie angezeigt aktualisieren' : 'Zugriff wie angezeigt sichern'\"\r\n        @selected=\"controller.saveChanges()\"\r\n        :param-primary=\"true\"\r\n        :param-disabled=\"!controller.hasChanges || !controller.isSomeoneOwner\"\r\n      ></ae-layout>\r\n    </section>\r\n  </template>\r\n</div>\r\n"},"f":{"id":"design-form","text":"Design","v":"9bfe8e0cd909c1f0"},"id":"1c040eba-c961-47ba-bd8e-4420c040490f","inheritedLocks":[null,null,null,null,null,null],"locks":[],"modified":{"at":"2026-02-17T13:23:30+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"c15a1265-4975-4d89-ba6a-8ae739b55acf","text":"editor","v":"70f9baf62aecdba9"},"p":"lock-form","previous":{"v":"5321edb02b326976"},"stamps":[],"t":1771334610400,"v":"dc54c71dcd3f16b3"},{"id":"65618359-2fcb-4fb1-9e11-7417cdd1acbf","v":"eb85151b279aae55","previous":{"v":"78f939eebc77f127","p":"fallback-designs","a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"]},"p":"1cc4b977-c14d-4587-af47-d6ac230f60b3","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:editor-inline","template":"<!-- <span style=\"background:green;\">foo</span> -->\n<div class=\"mx-1 border p-1 flex gap-1 rounded-md hover:bg-slate-100 dark:hover:bg-slate-600 cursor-pointer\" @click.stop=\"Aeppic.drillInto(document.id)\">\n  <ae-design  name=\"rd:icon\" :document=\"document\" style=\"margin-right: var(--ae-size-1)\"></ae-design>\n  <ae-design  name=\"title\" :document=\"document\"></ae-design>\n</div>\n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-12-01T09:51:56+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2024-02-19T12:50:57+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1767870469079,"ct":1720684627136,"a_depth":3,"a":["apps","77ee8815-2c3a-4bb5-abd9-90541a545a24","1cc4b977-c14d-4587-af47-d6ac230f60b3"],"a_forms":["folder","application-form","design-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"meta":{"modified":{"at":"2026-01-08T11:07:49+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":"","impersonatedBy":"","from":"","client":"server"}}},{"id":"7c946cbf-5ada-44c8-befb-adb83d48676a","v":"b31f080c884f925b","cloneOf":{"id":"af35ec72-33b0-4ba8-9b5b-c2b90e96ad9d","v":"2c05c10b1e324120","text":"tiptap-embed"},"originalCloneOf":{"id":"af35ec72-33b0-4ba8-9b5b-c2b90e96ad9d","v":"2c05c10b1e324120","text":"tiptap-embed"},"previous":{"v":"39972fd5f4ff9efc"},"p":"d2ac3563-3c3f-4f02-b923-9b67abf98d10","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"rd:editor-inline","template":"<div class=\"bg-sky-100 text-sky-900 rounded-lg px-1 mx-1 cursor-pointer\"\n      @click.stop=\"Aeppic.drillInto(document)\"\n>\n  <ae-icon class=\"far fa-at\"></ae-icon> {{ data.name }}\n</div>","css":"._CSS {\n  display: inline-block;\n}","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-12-01T09:51:14+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-11-07T15:24:11+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1699370651249,"ct":1669888274929,"a_depth":4,"a":["apps","144e85c0-d7f9-4b20-8928-be30f0c78bda","8e6ee7d3-9122-4a2e-8aaf-9fb3bd204b23","d2ac3563-3c3f-4f02-b923-9b67abf98d10"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"e5d65d7a-7f82-4fe0-9d07-43e40b892f38","v":"6a58184d4a9f93b1","cloneOf":{"id":"fff73674-6380-47bd-b0a2-370b9ceb5b3f","v":"4afd4d4e843e8dd2","text":"kb:editor-inline"},"originalCloneOf":{"id":"fff73674-6380-47bd-b0a2-370b9ceb5b3f","v":"4afd4d4e843e8dd2","text":"kb:editor-inline"},"previous":{"v":"2e7679cd45bfa7c6"},"p":"dbee6e16-d63a-493c-bba6-505f79918f9f","f":{"id":"design-form","v":"0061789efb5c5c29","text":"Design"},"data":{"name":"rd:editor-inline","template":"<div class=\"flex-1 relative flex items-center overflow-hidden border rounded-md mx-1 cursor-pointer\" @click.stop.prevent=\"controller.showMenu($event)\"\r\n  @contextmenu.stop.prevent=\"controller.showMenu($event)\" ref=\"document\" :style=\"controller.containerStyle\">\r\n  <template v-if=\"controller.showAsImage\">\r\n    <ae-design v-if=\"locals.size === 'thumbnail'\" name=\"editor-preview,thumbnail\" :document=\"document\">\r\n    </ae-design>\r\n    <ae-control v-else-if=\"locals.size === 'images'\" param-preview-format=\"jpg\" name=\"file-viewer\" :document=\"document\" field-name=\"datei\" :readonly=\"true\"></ae-control>\r\n    <ae-control v-else name=\"file-viewer\" :document=\"document\" field-name=\"datei\" :readonly=\"true\"></ae-control>\r\n\r\n    <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\" @selected=\"controller.show()\"\r\n      :param-icon=\"locals.isDocumentChildOfEmbeddedPage ? 'far fa-expand-arrows-alt text-sm' : 'far fa-external-link text-sm'\"\r\n      param-title=\"Anzeigen\" class=\"absolute right-1 top-1\" param-border=\"border\"></ae-layout>\r\n  </template>\r\n  <template v-else-if=\"controller.showAsVideo\">\r\n    <ae-control @click.native.stop name=\"file-viewer\" :document=\"document\" field-name=\"datei\" :readonly=\"true\"\r\n      class=\"bg-black\"></ae-control>\r\n    <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\" @selected=\"controller.show()\"\r\n      :param-icon=\"locals.isDocumentChildOfEmbeddedPage ? 'far fa-expand-arrows-alt text-sm' : 'far fa-external-link text-sm'\"\r\n      param-title=\"Anzeigen\" class=\"absolute right-1 top-1\" param-border=\"border\"></ae-layout>\r\n  </template>\r\n  <div v-else class=\"flex items-center p-1 gap-1 relative\"> \r\n    <ae-design name=\"rd:card\" :document=\"document\"></ae-design>\r\n    <ae-layout  layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\" @selected=\"controller.show()\"\r\n      :param-icon=\"locals.isDocumentChildOfEmbeddedPage ? 'far fa-expand-arrows-alt text-sm' : 'far fa-external-link text-sm'\"\r\n      param-title=\"Anzeigen\" class=\"absolute right-1 top-1\" param-border=\"border\">\r\n      </ae-layout>\r\n  </div> \r\n</div> \r\n\r\n<ae-popup ref=\"file\" v-if=\"!locals.isImage && !locals.isVideo\" placement=\"bottom\">\r\n  <div>\r\n    <div class=\"flex flex-col \">\r\n      <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\" param-classes=\"w-full\" @selected=\"controller.showAs('file', 'title')\" :param-disabled=\"!controller.canShowAs('file', 'title')\" param-text=\"Karte\"></ae-layout>\r\n      <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\" param-classes=\"w-full\" @selected=\"controller.showAs('image', 'thumbnail')\" :param-disabled=\"!controller.canShowAs('image', 'thumbnail')\" param-text=\"Bild (Thumbnail)\"></ae-layout>\r\n      <!-- <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\" param-classes=\"w-full\" @selected=\"controller.showAs('image', 'normal')\" :param-disabled=\"!controller.canShowAs('image', 'normal')\" param-text=\"Bild (normal)\"></ae-layout> -->\r\n      <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\" param-classes=\"w-full\" @selected=\"controller.showAs('image', 'images')\" :param-disabled=\"!controller.canShowAs('image', 'images')\" param-text=\"Jede Seite als Bild in Listenform\"></ae-layout>\r\n      <!-- <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\" param-classes=\"w-full\" @selected=\"controller.showAs('imageWidth', 'big')\" :param-disabled=\"!controller.canShowAs('imageWidth', 'big')\" param-text=\"Bild (groß)\"></ae-layout> -->\r\n    </div>\r\n  </div>\r\n</ae-popup>\r\n\r\n<ae-popup ref=\"menuImage\" v-if=\"locals.isImage\" placement=\"bottom\">\r\n  <div>\r\n    <div class=\"flex flex-col \">\r\n      <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\" param-classes=\"w-full\" @selected=\"controller.showAs('image', 'thumbnail')\" :param-disabled=\"!controller.canShowAs('image', 'thumbnail')\" param-text=\"Bild (Thumbnail)\"></ae-layout>\r\n      <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\" param-classes=\"w-full\" @selected=\"controller.showAs('image', 'normal')\" :param-disabled=\"!controller.canShowAs('image', 'normal')\" param-text=\"Bild (normal)\"></ae-layout>\r\n      <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\" param-classes=\"w-full\" @selected=\"controller.showAs('image', 'big')\" :param-disabled=\"!controller.canShowAs('image', 'big')\" param-text=\"Bild (groß)\"></ae-layout>\r\n      <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\" param-classes=\"w-full\" @selected=\"controller.showAs('file', 'title')\" :param-disabled=\"!controller.canShowAs('file', 'title')\" param-text=\"Karte\"></ae-layout>\r\n    </div>\r\n  </div>\r\n</ae-popup>\r\n\r\n<ae-popup ref=\"menuVideo\" v-if=\"locals.isVideo\">\r\n  <div>\r\n    <div class=\"flex flex-col\">\r\n      <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\" param-classes=\"w-full\" @selected=\"controller.showAs('video', 'small')\" :param-disabled=\"!controller.canShowAs('video', 'small')\" param-text=\"Video (klein)\"></ae-layout>\r\n      <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\" param-classes=\"w-full\" @selected=\"controller.showAs('video', 'normal')\" :param-disabled=\"!controller.canShowAs('video', 'normal')\" param-text=\"Video (normal)\"></ae-layout>\r\n      <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\" param-classes=\"w-full\" @selected=\"controller.showAs('video', 'big')\" :param-disabled=\"!controller.canShowAs('video', 'big')\" param-text=\"Video (groß)\"></ae-layout>\r\n      <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\" param-classes=\"w-full\" @selected=\"controller.showAs('file', 'title')\" :param-disabled=\"!controller.canShowAs('file', 'title')\" param-text=\"Karte\"></ae-layout>\r\n    </div>\r\n  </div>\r\n</ae-popup>","css":"","controller":"class Controller {\r\n  async init() {\r\n    this.FORMS = {\r\n      KnowledgeBase: '3fcebb78-e629-4d83-9844-1694370d9685',\r\n      Page: 'cb2adf77-7636-41a7-9a16-1610b06fa91e',\r\n    }\r\n\r\n    this.sizeByWidth = {\r\n      small: { \r\n        width: '24rem', // tailwind: max-w-sm\r\n        height: '24rem'\r\n      },\r\n      normal: { \r\n        width: '36rem', // tailwind: max-w-xl\t \r\n        height: '36rem'\r\n      },\r\n      big: { \r\n        width: '56rem', // tailwind: max-w-4-xl\r\n        height: '56rem'\r\n      },\r\n    }\r\n\r\n    locals.isDocumentChildOfEmbeddedPage = null\r\n\r\n    const viewState = params.persistedViewState ? JSON.parse(params.persistedViewState) : {}\r\n\r\n    locals.as = viewState.as || 'file'\r\n    locals.size = viewState.size || 'normal'\r\n\r\n    locals.isImage = data.datei?.type?.startsWith('image/')\r\n    locals.isVideo = data.datei?.type?.startsWith('video/')\r\n\r\n    Aeppic.watchRevisions(document, (changedDocument) => {\r\n      locals.isImage = changedDocument.data.datei?.type?.startsWith('image/')\r\n      locals.isVideo = changedDocument.data.datei?.type?.startsWith('video/')\r\n    }) \r\n\r\n    locals.isDocumentChildOfEmbeddedPage = (params.kbPageId === document.p)\r\n  }\r\n\r\n  get showAsImage() {\r\n    return locals.as === 'image'\r\n  }\r\n\r\n  get showAsVideo() {\r\n    return locals.isVideo && locals.as === 'video'\r\n  }\r\n\r\n  get containerStyle() {\r\n    if (locals.as === 'file') {\r\n      return null\r\n    }\r\n\r\n    return this.sizeByWidth[locals.size]\r\n  }\r\n\r\n  show() {\r\n    if (this.isDocumentAPageInsideSameKb()) {\r\n      Aeppic.navigateTo(params.kbRoot, { 'detail': document.id })\r\n    } else {\r\n      Aeppic.drillInto(document.id)\r\n    }\r\n  }\r\n\r\n  isDocumentAPageInsideSameKb() {\r\n    const kbRootId = params.kbRoot \r\n\r\n    if (!kbRootId) {\r\n      return false\r\n    }\r\n\r\n    if (document.f.id !== this.FORMS.Page) {\r\n      return false\r\n    }\r\n\r\n    const kbIndexInAncestry = document.a_forms.lastIndexOf(this.FORMS.KnowledgeBase)\r\n\r\n    if (kbIndexInAncestry < 0) {\r\n      return false\r\n    }\r\n\r\n    const kbId = document.a[kbIndexInAncestry]\r\n\r\n    return (kbId === kbRootId)\r\n  }\r\n\r\n  showMenu(event) {\r\n    if (params.readonly) {\r\n      return\r\n    }\r\n\r\n    let menu = null\r\n\r\n    if (locals.isImage) {\r\n      menu = $refs.menuImage\r\n    } else if (locals.isVideo) {\r\n      menu = $refs.menuVideo\r\n    } else {\r\n      menu = $refs.file\r\n    }\r\n\r\n    if (!menu) {\r\n      return\r\n    }\r\n    \r\n    menu.show(event)\r\n  }\r\n\r\n  canShowAs(as, size) {\r\n    return as !== locals.as || size !== locals.size\r\n  }\r\n\r\n  showAs(as, size) {\r\n    console.log('showAs', as, size) \r\n    if (!this.canShowAs(as, size)) {\r\n      return\r\n    }\r\n    \r\n    locals.as = as\r\n    locals.size = size\r\n\r\n    $emit('persistedViewStateChanged', { as, size })\r\n\r\n    $refs.menuImage?.close()\r\n    $refs.menuVideo?.close()\r\n    $refs.file?.close()\r\n  }\r\n\r\n}\r\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-12-01T09:55:12+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-12-14T11:15:12+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1702552512689,"ct":1669888512590,"a_depth":4,"a":["apps","45ada186-e9fd-451d-9dbd-2defc0b4f86f","4ec6a0e5-cf2d-4095-9b70-2e31a64d5679","dbee6e16-d63a-493c-bba6-505f79918f9f"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["system","b2533f7b-ea85-4680-99ed-d8e11be641b9","0e6939d6-9b93-4165-b6bd-977e4da881f3","627f5b74-3baf-45f8-a1d3-a5936839b844","account"],"a_depth":5,"a_forms":["system-folder-form","folder","application-form","form-folder","form"],"created":{"at":"2023-01-06T15:05:34+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1673017534494,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.profile = await Aeppic.getProfilePageForAccount(document)\n  }\n\n  async removeUserFromGroup() {\n    if (params.readonly) {\n      return\n    }\n\n    const editableAccount = await Aeppic.edit(document)\n\n    editableAccount.removeReference('groups', params.groupId)\n\n    Aeppic.save(editableAccount)\n  }\n}\n","css":"","description":"","name":"rd:employee-ref-card","packages":[],"template":"<div class=\"flex gap-1 items-center justify-between\">\n  <ae-design name=\"rd:table-card\" :document=\"locals.profile\"\n  ></ae-design>\n  <!-- @selected=\"$emit('selected', document)\" -->\n\n\n  <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\" \n              param-icon=\"far fa-times\"\n              @selected=\"controller.removeUserFromGroup()\" \n              param-title=\"Nutzer aus Gruppe entfernen\"\n              param-border=\"border border-secondary-200\"\n              v-if=\"!params.readonly\"\n  ></ae-layout>\n</div>"},"f":{"id":"design-form","text":"Design","v":"c2d9ae57c7a46896"},"id":"971d755c-2ea6-47f9-a21a-cf93df7aded5","inheritedLocks":[null,null,null,null,null,null],"locks":[],"modified":{"at":"2024-11-11T12:34:32+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"account","previous":{"v":"a617e3ef54ca4c1d"},"stamps":[],"t":1731328472783,"v":"38f16d3852ae2b55"},{"a":["apps","599db2de-4e07-4722-98bd-7f42d498b352","79718664-ed22-4b52-9c10-037881df3578","7be5f2c5-206b-4ab6-9d4d-c4834baf8e32"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2024-03-19T10:19:06+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1710843546632,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:ENERGIE","packages":[],"template":"<ae-design name=\"rd:GENERIC_TASK_BASED\" \n           :document=\"document\"\n          :params=\"{ ...params, additionalDesigns: ['rd:energy-activities', 'rd:news'] }\"\n           v-on=\"$listeners\"\n           class=\"h-full w-full\"\n></ae-design>"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"b34a077b-8aad-4cb7-9611-901096ad5287","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-09-04T08:39:18+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"7be5f2c5-206b-4ab6-9d4d-c4834baf8e32","previous":{"v":"4a89888a80a476c0"},"stamps":[],"t":1756975158103,"v":"acca47d679d8dc62"},{"a":["apps","599db2de-4e07-4722-98bd-7f42d498b352","79718664-ed22-4b52-9c10-037881df3578","7be5f2c5-206b-4ab6-9d4d-c4834baf8e32"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2024-05-06T15:03:04+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1715007784035,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Employee: 'd2ac3563-3c3f-4f02-b923-9b67abf98d10',\n      CoreAufgabe: '0deb4864-cbb6-420c-99ee-337c7444ab24',\n      EnergieProjekt: '98c77209-1245-43d6-90b5-8625183f470c',\n      AufgabeEnergyLeistung: '88b1f60e-71f6-46f5-94ea-3d7bbe972950',\n    }\n    \n    locals.projects = []\n\n    const userLimit = Aeppic.Account?.data.allowDevMode ? '' : `data.projektleiter.id:${params.selectedUser.profileId}`\n\n    locals.projects = await Aeppic.find(`a:${document.id} f.id:${this.FORMS.EnergieProjekt} ${userLimit} (data.status:PROGRESS OR data.status:ONSPOTCHECKS)`, { size: 999 }) \n\n    watchParam('selectedUser', async (selectedUser) => {\n      const userLimit = Aeppic.Account?.data.allowDevMode ?  '' : `data.projektleiter.id:${selectedUser.profileId}`\n\n      locals.projects = await Aeppic.find(`a:${document.a[0]} f.id:${this.FORMS.EnergieProjekt} ${userLimit} (data.status:PROGRESS OR data.status:ONSPOTCHECKS)`, { size: 999 }) \n    }, { deep: true })\n  }\n}","css":"","description":"","name":"rd:energy-activities","packages":[],"template":"<section v-if=\"locals.projects.length\"\n        class=\"flex flex-col mb-6 py-2 bg-white dark:bg-slate-800 px-4 border rounded-md shadow\">\n  <div class=\"font-bold flex gap-2 mb-2\">\n    Ereignisse\n  </div>\n\n  <!-- <div class=\"_CSS-page__stream\" v-if=\"locals.projects.length\">\n    <ae-list  list-id=\"ea63de1f-8ccb-41a3-8864-c21e980e18fe\" :params=\"{ companyId: document.id, whitelistedAncestors: locals.projects, title: 'Aktivitäten (Projekte: In Bearbeitung, In Ausführung)', immediate: true }\"></ae-list>\n  </div> -->\n<!-- NOTE: the old activity list ea63de1f-8ccb-41a3-8864-c21e980e18fe -->\n  <ae-list  list-id=\"6759cdea-a272-43e7-8dc8-5fc3ed368d37\" \n          :params=\"{ companyId: document.a[0],\n                      whitelistedAncestors: locals.projects,\n                      title: 'Aktivitäten (Projekte: In Bearbeitung, In Ausführung)',\n                      immediate: true,\n                      subscribe: false,\n          }\"\n  ></ae-list>\n\n<!-- <ae-list list-id=\"f914c7de-072d-4e39-aa51-d55fe5391c76\"\n        :param-root=\"document.a[0]\"\n        @selected=\"Aeppic.drillInto($event, arguments[1])\"\n        class=\"\"\n        :search-options=\"{ size: 6 }\"\n        :param-design-params=\"{ compact: true }\"\n  ></ae-list> -->\n</section>"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"9faa1ec0-d077-4a8f-8428-37f4309118c9","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-05-15T14:33:31+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"7be5f2c5-206b-4ab6-9d4d-c4834baf8e32","previous":{"v":"6bc9c018edd1ff67"},"stamps":[],"t":1747319611977,"v":"a39e61cda60c772f"},{"a":["system","fallback-designs"],"a_depth":2,"a_forms":["system-folder-form","folder"],"created":{"at":"2025-08-18T11:45:14+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1755517514746,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      EpicPagesState: 'f62598b6-1cbf-433c-ad71-aca731261f42',\n    }\n\n    locals.loading = true\n    locals.showGuides = true\n\n    locals.form = null\n    locals.document = null\n    locals.state = null\n\n    locals.parameters = []\n    locals.parametersAsParams = {}\n\n    locals.documentSearchSettings = {\n      filter: {\n        base: `a:0fca9d35-a463-4c27-9d65-47200435e849`,\n        targetDocument: document,\n        // ancestorForm: params.ancestorForm,\n        // queryLimitCommand: params.queryLimitCommand,\n        // ancestorSearchLimit: 0,\n        // ancestorId: params.ancestorId,\n        // parentId: params.parentId,\n        // ancestorIndex: params.ancestorIndex,\n        // formIds: params.forms,\n      },\n      search: { \n        size: 20,\n        sort: [{\n          field: 'data.name',\n          descending: false\n        },\n        {\n          field: 'modified.at',\n          descending: true\n        }],\n        searchAllFields: false,\n        includeHidden: params.includeHidden,\n      },\n    }\n \n    if (data.parameters) {\n      const parameters = data.parameters.map((parameter, index) => {\n        let defaultValue = null\n\n        // TODO: data.parametersCardinalities\n\n        const type = data.parametersTypes[index]\n        switch (type) {\n          case 'string':\n            defaultValue = ''\n            break\n          case 'number':\n            defaultValue = 0\n            break\n          case 'boolean':\n            defaultValue = false\n            break\n          case 'object':\n            defaultValue = {}\n            break\n          default:\n            defaultValue = null\n            break\n        }\n\n        return {\n          name: parameter,\n          value: defaultValue,\n          description: data.parametersDescriptions[index],\n          type,\n          control: data.parametersControls[index],\n          cardinality: data.parametersCardinalities[index],\n        }\n      })\n\n      locals.parameters = parameters\n    }\n\n    locals.parametersAsParams = {}\n\n    this.updateParametersAsParams()\n\n    // == async below ==\n\n\n    if (params.state) {\n      locals.state = await Aeppic.edit(params.state) \n\n      try {\n        const stateParameters = JSON.parse(locals.state.data.parameters)\n\n        for (const key in stateParameters) {\n          const value = stateParameters[key]\n\n          const p = locals.parameters.find(p => p.name === key)\n\n          if (p) {\n            p.value = value\n          }\n        }\n\n        this.updateParametersAsParams()\n      } catch (err) {\n        console.error(`Failed to parse parameters`, err)\n      }\n    } else {\n      locals.state = await Aeppic.new(this.FORMS.EpicPagesState, params.newStateLocation || document.id)\n\n      if (params.placeholderDocumentForm) {\n        locals.placeholderDocument = await Aeppic.new(params.placeholderDocumentForm, params.newStateLocation || document.id)\n      }\n    }\n\n    if (locals.placeholderDocument) {\n      locals.document = locals.placeholderDocument\n    } else {\n      locals.document = locals.state.data.document.id ? await Aeppic.get(locals.state.data.document) : await Aeppic.get('root')\n    }\n\n    locals.loading = false\n  }\n\n  updateParametersAsParams() {\n    // if (!locals.parameters) {\n    //   return {}\n    // }\n\n    locals.parametersAsParams = locals.parameters.reduce((params, param) => {\n      params[param.name] = param.value\n      return params\n    }, {})\n  }\n\n  selectedDocument(doc) {\n    locals.document = doc\n    locals.state.addReference('document', doc)\n  }\n\n  async saveState() {\n    locals.state.data.parameters = JSON.stringify(locals.parametersAsParams)\n\n    Aeppic.save(locals.state)\n  }\n\n  get isOverviewPage() {\n    if (!locals.state) {\n      return null\n    }\n\n    return !locals.state.t\n  }\n}\n","css":"._CSS-stripes {\n    background-color: #e879f91a;\n    background-image: linear-gradient(135deg, #d946ef80 10%, #0000 0, #0000 50%, #d946ef80 0, #d946ef80 0%, #0000 0, #0000);\n    background-size: 7.07px 7.07px;\n}","description":"","name":"rd:epic-page","packages":[],"parameters":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"parametersTypesCardinality":[],"template":"<div v-if=\"!locals.loading\" class=\"w-full flex gap-4 items-start\">\n  <div class=\"flex flex-col gap-4 flex-1 min-w-0\">\n    <section class=\"flex flex-col\">\n      <div class=\"flex gap-2 bg-emerald-50 text-emerald-600 p-2 mb-2\">\n        {{data.name}} | {{document.id}}\n      </div>\n\n      <div class=\"font-mono mb-4\">\n        <ae-form\n          class=\"flex-1\"\n          :document=\"document\"\n          :auto-save=\"true\"\n          :auto-save-after=\"1000\"\n          layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\"\n          :view=\"{only: { fields: ['description']}}\"\n        ></ae-form>\n      </div>\n\n      <div class=\"flex gap-1 bg-slate-100 p-1\">\n        <div>State</div>\n\n        <div v-if=\"controller.isOverviewPage\" class=\"font-bold text-red-500\">(NEU)</div>\n        <ae-form\n          class=\"flex-1 min-w-0\"\n          :document=\"locals.state\"\n          layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\"\n          :view=\"{only: { fields: ['name', 'document']}}\"\n        ></ae-form>\n\n        <ae-layout\n          layout-id=\"ef23b6bd-ec74-4701-ab8d-71a6d67fd9e4\"\n          @selected=\"controller.selectedDocument($event)\"\n          ref=\"selectionButton\"\n          :params=\"{ \n                          settings: locals.documentSearchSettings,\n                          icon: params.icon || 'fa fa-angle-down', \n                          xhideButton: true,\n                        }\"\n        ></ae-layout>\n        <ae-layout\n          layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n          param-icon=\"far fa-save\"\n          param-text=\"Save\"\n          @selected=\"controller.saveState()\"\n        ></ae-layout>\n      </div>\n    </section>\n\n    <template v-if=\"controller.isOverviewPage\">\n        <section  class=\"w-full divide-y\">\n          <div class=\"text-xl\">\n            Parameters\n          </div>\n          <div class=\"grid grid-cols-4\">\n            <div>Name</div>\n            <div>Description</div>\n            <div>Type</div>\n            <div>Controls</div>\n          </div>\n\n          <div v-if=\"locals.parameters.length === 0\">\n            No parameters configured. Add in design {{document.id}}\n          </div>\n\n          <div v-for=\"(param, index) of locals.parameters\" class=\"grid grid-cols-4\">\n            <div class=\"flex flex-col\">\n              <span data-name class=\"font-bold\"> {{param.name}} </span>\n\n            </div>\n            <p data-description>{{param.description}}</p>\n            <div>\n              {{param.type}}\n            </div>\n            <div data-controls class=\"flex flex-col gap-1\">\n              <div class=\"font-mono\">control: {{ param.control }}</div>\n              <div class=\"font-mono\">cardinality: {{ param.cardinality }}</div>\n\n                        </div>\n          </div>\n        </section>\n      \n    </template>\n    <template v-else>\n      <section class=\"p-2  w-full\" v-for=\"breakpoint of ['24', '32', '40', '48', '64', '80', '96', 'full']\">\n        <label class=\"text-neutral-600 text-xs\">w-{{ breakpoint }}</label>\n        <div class=\"relative _CSS-stripes\" :class=\"['w-' + breakpoint]\">\n          <div v-if=\"locals.showGuides\" class=\"z-10 absolute -left-1 -right-1 top-0 border-dashed border-t-2 border-t-fuchsia-300\"></div>   \n          <div v-if=\"locals.showGuides\" class=\"z-10 absolute left-0 -top-1 -bottom-1 border-dashed border-l-2 border-l-fuchsia-300\"></div>\n          <ae-design\n            :name=\"data.name\"\n            :document=\"locals.document\" \n            class=\"xflex-1 \"\n            :class=\"['w-' + breakpoint]\"\n            :params=\"locals.parametersAsParams\"\n            :watch=\"false\"\n          ></ae-design>\n          <div v-if=\"locals.showGuides\" class=\"z-10 absolute right-0 -top-1 -bottom-1 border-dashed border-l-2 border-l-fuchsia-300\"></div>\n          <div v-if=\"locals.showGuides\" class=\"z-10 absolute -left-1 -right-1 bottomn-0 border-dashed border-t-2 border-t-fuchsia-300\"></div>\n        </div>\n      </section>\n    </template>\n  </div>\n\n  <section v-if=\"!controller.isOverviewPage\" class=\"shrink-0 w-[30vw] divide-y sticky top-0\">\n    <div class=\"grid grid-cols-2 mb-4\">\n      <div>showGuides</div>\n      <div>\n          <div  class=\"flex\">\n          <label class=\"flex items-center gap-2\">\n            <input\n              type=\"radio\"\n              :value=\"true\"\n              :checked=\"locals.showGuides === true\"\n              @input=\"() => { locals.showGuides = true }\"\n            />\n            Yes\n          </label>\n          <div class=\"mx-2\"></div>\n          <label class=\"flex items-center gap-2\">\n            <input\n              type=\"radio\"\n              :value=\"false\"\n              :checked=\"locals.showGuides === false\"\n              @input=\"() => { locals.showGuides = false }\"\n            />\n            No\n          </label>\n        </div>\n      </div>\n    </div>\n     \n    <div class=\"grid grid-cols-2\">\n      <div>Name</div>\n      <div>Controls</div>\n    </div>\n\n    <div v-for=\"(param, index) of locals.parameters\" class=\"grid grid-cols-2\">\n      <div class=\"flex flex-col\">\n        <span data-name class=\"font-bold\"> {{param.name}} </span>\n\n        <p data-description>{{param.description}}</p>\n      </div>\n      <div data-controls class=\"flex flex-col gap-1\">\n        <!-- <div>value: {{param.value}}</div>\n        <div>type: {{ param.type }}</div> -->\n        <div v-if=\"param.type === 'boolean'\" class=\"flex\">\n          <label class=\"flex items-center gap-2\">\n            <input\n              type=\"radio\"\n              :name=\"'param-' + index\"\n              :value=\"true\"\n              :checked=\"param.value === true\"\n              @input=\"() => { param.value = true; controller.updateParametersAsParams() }\"\n            />\n            Yes\n          </label>\n          <div class=\"mx-2\"></div>\n          <label class=\"flex items-center gap-2\">\n            <input\n              type=\"radio\"\n              :name=\"'param-' + index\"\n              :value=\"false\"\n              :checked=\"param.value === false\"\n              @input=\"() => { param.value = false; controller.updateParametersAsParams() }\"\n            />\n            No\n          </label>\n        </div>\n        <div v-else-if=\"param.type === 'string'\">\n          <input\n            type=\"text\"\n            :value=\"param.value\"\n            @input=\"(event) => { param.value = event.target.value; controller.updateParametersAsParams(); }\"\n          />\n        </div>\n        <div v-else-if=\"param.type === 'number'\">\n          <input\n            type=\"range\"\n            min=\"0\"\n            max=\"100\"\n            :value=\"param.value\"\n            @input=\"(event) => { param.value = Number(event.target.value); controller.updateParametersAsParams(); }\"\n          />\n          <span class=\"ml-2\">{{ param.value }}</span>\n        </div>\n        <div v-else-if=\"param.type === 'object'\">\n          <textarea\n            :value=\"param.value\"\n            rows=\"3\"\n            @input=\"(event) => { param.value = event.target.value; controller.updateParametersAsParams(); }\"\n          ></textarea>\n        </div>\n\n        <div class=\"font-mono\">control: {{ param.control }}</div>\n        <div class=\"font-mono\">cardinality: {{ param.cardinality }}</div>\n      </div>\n    </div>\n  </section>\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"fa87a9a7e4aa686c"},"id":"b246c514-508f-4dd5-bf47-5d899c76549d","inheritedLocks":[null,null,null],"locks":[],"meta":{},"modified":{"at":"2026-01-23T15:43:37+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"p":"fallback-designs","previous":{"v":"144dfa7721d0b89c"},"stamps":[],"t":1769183017830,"v":"65db8b4de7562fd5"},{"id":"cef54f03-457b-400a-8977-f43ce6c9cb99","v":"0e343757e71fc22f","previous":{"v":"d5a41826fbd37a3f","p":"fallback-designs","a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"]},"p":"1cc4b977-c14d-4587-af47-d6ac230f60b3","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:events","template":"<div class=\"h-full overflow-auto\">\n  <ae-list  list-id=\"ea63de1f-8ccb-41a3-8864-c21e980e18fe\"\n            :param-company-id=\"document.a[0]\"\n            :param-target-document-id=\"document.id\"\n            :param-immediate=\"true\"\n  ></ae-list>\n</div>\n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-05-20T08:51:40+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2024-05-06T12:12:35+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1767870469087,"ct":1720684627136,"a_depth":3,"a":["apps","77ee8815-2c3a-4bb5-abd9-90541a545a24","1cc4b977-c14d-4587-af47-d6ac230f60b3"],"a_forms":["folder","application-form","design-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"meta":{"modified":{"at":"2026-01-08T11:07:49+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":"","impersonatedBy":"","from":"","client":"server"}}},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","1b166603-d0f3-4f16-98c4-0534afbd6f5a"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2026-06-01T12:39:22+00:00","backedBy":"","by":"09763886-6748-4a56-8e0e-54a2293ee96b","client":"server","from":"","impersonatedBy":""},"ct":1780317562705,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      dataPoint: 'a9f65345-a90c-485b-a699-3da52b988f06',\n    }\n    locals.isCalculating = true\n\n    locals.documents = await this.gatherInformation()\n\n    locals.isCalculating = false\n  }\n\n  async gatherInformation() {\n    const maintenance = await Aeppic.get(document.data?.maintenance).catch(() => null)\n    if (!maintenance) return []\n\n    let facility = null\n    if (maintenance.data?.facility) {\n      facility = await Aeppic.get(maintenance.data.facility).catch(() => null)\n    }\n\n    const facilitiesTechnicalPlace = await Aeppic.resolve(facility, 'AppKeeptrack-TechnischerPlatz').catch(() => null)\n    \n    const partsRefs = maintenance.data?.parts || []\n    const wartungsteile = await Aeppic.getAll(partsRefs).catch(() => [])\n\n    const nestedDataPoints = await Promise.all(wartungsteile.map(async (part) => {\n      const itemsRefs = part.data?.items || []\n      const points = await Aeppic.getAll(itemsRefs).catch(() => [])\n\n      const pointsFromPoints = await Promise.all(points.map(async (point) => {\n        const workItemRefs = point.data?.workItems || []\n        const workItems = await Aeppic.getAll(workItemRefs).catch(() => [])\n\n        const aggregate = await Aeppic.get(point.data.aggregate)\n        const technicalPlace = (await Aeppic.resolve(point, 'data.aggregate -> AppKeeptrack-TechnischerPlatz').catch(() => null)) ?? facilitiesTechnicalPlace\n        const building = await Aeppic.resolve(technicalPlace, 'AppKeeptrack-Gebäude').catch(() => null)\n        const area = await Aeppic.resolve(building, 'AppKeeptrack-Areal').catch(() => null)\n\n        const pointsFromWorkItems = await Promise.all(workItems.map(async (workItem) => {\n          const dataPoint = await Aeppic.new(this.FORMS.dataPoint, document)\n          \n          dataPoint.data.workItem = workItem\n          dataPoint.data.point = point\n          dataPoint.data.part = part\n          dataPoint.data.maintenance = maintenance\n          dataPoint.data.id = workItem.data?.identifier\n          dataPoint.data.activity = workItem.data?.activity\n          dataPoint.data.keeptrackWorkItemStatus = workItem.data?.status\n          dataPoint.data.resultCategories = workItem.data?.resultCategories ?? [] // Note: This seems to not work.\n          dataPoint.data.annotation = workItem.data?.comment\n          \n          if (aggregate) dataPoint.addReference('aggregate', aggregate)\n          if (facility) dataPoint.addReference('facility', facility)\n          if (technicalPlace) dataPoint.addReference('technicalPlace', technicalPlace)\n          if (building) dataPoint.addReference('building', building)\n          if (area) dataPoint.addReference('area', area)\n          \n          const technician = await this.getTechnician(workItem) // Note: the function might not work\n          if (technician) {\n            dataPoint.data.technician = technician\n          }\n          \n          return dataPoint\n        }))\n\n        return pointsFromWorkItems\n      }))\n\n      return pointsFromPoints\n    }))\n\n    return nestedDataPoints.flat(Infinity)\n  }\n\n  async getTechnician(workItem) {\n    const changedBy = workItem.modified?.by\n    if (!changedBy) return null\n\n    const account = await Aeppic.get(changedBy).catch(() => null)\n    \n    if (!account || !account.p) return null\n\n    const mitarbeiter = await Aeppic.get(account.p).catch(() => null)\n    return mitarbeiter\n  }\n}","css":"","description":"","name":"rd:export-csv","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<div>\n  <ae-layout\n    ref=\"csvExporterChild\"\n    class=\"flex inline-flex justify-end\"\n    layout-id=\"a7c668bb-022c-4ffd-94bb-b3430fa73dbb\"\n    :params=\"{ \n      documents: locals.documents, \n      includeParentName: false, \n      includeFields: ['area', 'building', 'facility', 'activity', 'id', 'maintenance', 'part', 'point', 'workItem', 'technicalPlace', 'aggregate', 'keeptrackWorkItemStatus', 'technician', 'resultCategories', 'annotation']\n    }\"\n    :params-text=\"locals.isCalculating ? 'Lädt ...' : null\"\n  ></ae-layout>\n</div>"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"1f20db40-18b0-4b58-b3c8-bfe6b4b754c5","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-06-12T09:24:39+00:00","backedBy":"","by":"09763886-6748-4a56-8e0e-54a2293ee96b","client":"server","from":"","impersonatedBy":""},"p":"1b166603-d0f3-4f16-98c4-0534afbd6f5a","previous":{"v":"c05cf8f2e914be86"},"stamps":[],"t":1781256279430,"v":"98e222e965de31d0"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","1451a42c-e8f9-430e-8fd0-b2209f389e84"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2025-08-26T08:37:15+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1756197435896,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Stammdatenordner: '6138e497-f561-430e-b3f1-8c3c7db046a7',\n      Arealeordner: '1a0affea-08fc-467f-8a09-0e170f5ea96e',\n      Anlage: '33e3b54d-6b4b-4aa3-8f70-2b834b27bf66',\n    }\n\n    const arealeordner = await Aeppic.findOne(`a:${document.a[0]} a_forms: ${this.FORMS.Stammdatenordner} f.id: ${this.FORMS.Arealeordner}`)\n    locals.search = `a:${arealeordner.id} f.id:${this.FORMS.Anlage}`\n  }\n}","css":"","description":"","name":"rd:facilities-list","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<ae-design\n  name=\"rd:page-list\"\n  :document=\"document\"\n  :params=\"{ ...params, design: 'rd:ref-card', designParams: { readonly: true }, scrollerHeight: 80, showFormTitle: false, sortFields: 'created.at,modified.at,data.facility,data.identifier,data.location,data.hersteller,', filterFields: 'data.location,', search: locals.search }\"\n  @selected=\"Aeppic.navigateTo($event, { tab: 'facility' })\"\n  class=\"h-full w-full\"\n></ae-design>\n"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"bd3e2a9d-f7cb-49e4-9c92-96b69122a7e1","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-02-16T10:10:30+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"p":"1451a42c-e8f9-430e-8fd0-b2209f389e84","previous":{"v":"e400e720c6a0aab3"},"stamps":[],"t":1771236630820,"v":"3f3be3c9e37ce737"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","33e3b54d-6b4b-4aa3-8f70-2b834b27bf66"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2025-08-29T07:01:50+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1756450910226,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Wartungsduerchfuerhung: '1b166603-d0f3-4f16-98c4-0534afbd6f5a',\n      Arbeit: '8c113cd0-af90-42fa-aa05-f67809d0a9a5',\n      Reparatur: '46a28dfa-7518-4867-9519-a5f4cd9b9967',\n    }\n\n    locals.view = {\n      startWithSection: 1\n    }\n\n    locals.lastMaintenances = []\n    locals.problems = []\n\n    locals.lastMaintenanceSearch = `a:${document.a[0]} (f.id:${this.FORMS.Wartungsduerchfuerhung} OR f.id:${this.FORMS.Reparatur}) data.facility.id:${document.id}`\n\n    locals.lastMaintenances = await Aeppic.find(locals.lastMaintenanceSearch, { size: 20, sort: { field: 'created.at', descending: true }})\n\n    locals.problems = await this.getLastProblems(locals.lastMaintenances)\n  }\n\n\n  async getLastProblems(maintenances) {\n    const queryParts = maintenances.map(maintenance => {\n      return `(a:${maintenance.id} f.id:${this.FORMS.Arbeit} data.status:FAULTY)`\n    })\n\n    const query = queryParts.join(' OR ')\n\n    const problems = await Aeppic.find(query)\n\n    console.log(problems)\n\n    return problems\n  }\n}","css":"","description":"","name":"rd:facility","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<div class=\"h-full w-full flex flex-col gap-2\">\n  <ae-form\n    :document=\"document\"\n    :auto-save=\"true\"\n    :auto-save-after=\"1000\"\n    layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\"\n    class=\"w-full\"\n    :readonly=\"params.readonly\"\n    :view=\"locals.view\"\n  ></ae-form>\n\n  <div class=\"max-w-5xl mx-auto w-full bg-white p-4 rounded-md p-4 xl:shadow flex flex-col gap-8\">\n    <!-- <section class=\"w-full flex flex-col\">\n      <label class=\"text-lg\"> Letzte Mängel</label>\n\n      <ae-list\n        list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\"\n        :documents=\"locals.problems\"\n        :params=\"{\n          emptyText: 'Hier werden zuletzt aufgetretende Mängel angezeigt.',\n          design: 'rd:work-review',\n          designParams: { readonly: true },\n          gap: 'large',\n        }\"\n      ></ae-list>\n    </section> -->\n\n    <section class=\"w-full flex flex-col\">\n      <label class=\"text-lg\"> Letzte Wartungen </label>\n\n      <ae-list\n        list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\"\n        :documents=\"locals.lastMaintenances\"\n        param-empty-text=\"Hier werden erstellte Wartungsdurchführungen angezeigt.\"\n        param-design=\"rd:facility-review\"\n        :param-design-params=\"{showFormIcon: true}\"\n      ></ae-list>\n    </section>\n  </div>\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"c6fb125e-a8bd-40b8-8e43-478bb6bc03b7","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-01-15T15:05:05+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"p":"33e3b54d-6b4b-4aa3-8f70-2b834b27bf66","previous":{"v":"008b8c0febb9ba0c"},"stamps":[],"t":1768489505592,"v":"5d213f0184ec09ed"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","33e3b54d-6b4b-4aa3-8f70-2b834b27bf66"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"c6fb125e-a8bd-40b8-8e43-478bb6bc03b7","text":"rd:facility","v":"5d213f0184ec09ed"},"created":{"at":"2026-02-18T13:49:56+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"ct":1771422596456,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Wartungsduerchfuerhung: '1b166603-d0f3-4f16-98c4-0534afbd6f5a',\n      Arbeit: '8c113cd0-af90-42fa-aa05-f67809d0a9a5',\n      Reparatur: '46a28dfa-7518-4867-9519-a5f4cd9b9967',\n    }\n\n    locals.view = {\n      startWithSection: 1\n    }\n  }\n}","css":"","description":"","name":"rd:facility--worker","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"  <ae-form\n    :document=\"document\"\n    :auto-save=\"true\"\n    :auto-save-after=\"1000\"\n    layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\"\n    class=\"w-full\"\n    :readonly=\"params.readonly\"\n    :view=\"locals.view\"\n  ></ae-form>"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"3a2359b2-3453-4c7d-8582-138e5c760562","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-02-18T13:57:54+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"c6fb125e-a8bd-40b8-8e43-478bb6bc03b7","text":"rd:facility","v":"5d213f0184ec09ed"},"p":"33e3b54d-6b4b-4aa3-8f70-2b834b27bf66","previous":{"v":"c643acf4b05d61c6"},"stamps":[],"t":1771423074891,"v":"a225d6f43348eb77"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","1b166603-d0f3-4f16-98c4-0534afbd6f5a"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2025-10-02T10:50:55+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1759402255897,"data":{"aliases":[],"controller":"class Controller {\n  init() {\n    locals.showDetails = false\n  }\n}","css":"","description":"","name":"rd:facility-review","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<div class=\"flex flex-col\">\n  <div class=\"flex items-center\">\n    <ae-design \n      name=\"rd:styled-title\" \n      :document=\"document\" \n      class=\"flex-1\"\n      :param-show-form-icon=\"params.showFormIcon\"\n    ></ae-design>\n\n    <ae-layout\n      layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n      :param-icon=\"locals.showDetails ? 'fa fa-chevron-circle-up' : 'fa fa-chevron-circle-down'\"\n      param-text=\"Details\"\n      @selected=\"locals.showDetails = !locals.showDetails\"\n      :param-primary=\"true\"\n    ></ae-layout>\n  </div>\n\n  <ae-design v-if=\"locals.showDetails\" name=\"rd:review\" :document-id=\"data.maintenance.id\"></ae-design>\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"091d6a90-a982-4f84-b07d-1591b90f3cc7","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-11-13T13:14:02+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"1b166603-d0f3-4f16-98c4-0534afbd6f5a","previous":{"v":"dca8534c8ec26668"},"stamps":[],"t":1763039642317,"v":"561b588d37bbd1a5"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","46a28dfa-7518-4867-9519-a5f4cd9b9967"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"091d6a90-a982-4f84-b07d-1591b90f3cc7","text":"rd:facility-review","v":"7183367d9f10c34e"},"created":{"at":"2025-10-27T11:26:45+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"ct":1761564405983,"data":{"aliases":[],"controller":"class Controller {\n  init() {\n    locals.showDetails = false\n  }\n}","css":"","description":"","name":"rd:facility-review","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<div class=\"flex flex-col\">\n  <div class=\"flex items-center\">\n    <ae-design \n      name=\"rd:styled-title\" \n      :document=\"document\" \n      class=\"flex-1\"\n      :param-show-form-icon=\"params.showFormIcon\"\n    ></ae-design>\n\n    <ae-layout\n      layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n      :param-icon=\"locals.showDetails ? 'fa fa-chevron-circle-up' : 'fa fa-chevron-circle-down'\"\n      param-text=\"Details\"\n      @selected=\"locals.showDetails = !locals.showDetails\"\n      :param-primary=\"true\"\n    ></ae-layout>\n  </div>\n\n  <ae-design v-if=\"locals.showDetails\" name=\"rd:review\" :document=\"document\"></ae-design>\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"c1bf10df-c5f7-4510-8a58-ce30ed3ce86c","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-10-27T14:00:54+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"091d6a90-a982-4f84-b07d-1591b90f3cc7","text":"rd:facility-review","v":"7183367d9f10c34e"},"p":"46a28dfa-7518-4867-9519-a5f4cd9b9967","previous":{"v":"5c32a68c3914e13c"},"stamps":[],"t":1761573654232,"v":"85eb1a248f180fd0"},{"id":"3517bc37-31b9-4518-ac89-19a6f28e2eb8","v":"844366a2edf29622","cloneOf":{"id":"d31677f9-e1f6-4b6c-8e7f-9714341e1db7","v":"e8cad1c76ad17ae3","text":"rd:calendar"},"originalCloneOf":{"id":"d31677f9-e1f6-4b6c-8e7f-9714341e1db7","v":"e8cad1c76ad17ae3","text":"rd:calendar"},"previous":{"v":"13204498e99f73bd"},"p":"0b6a2b21-9425-466e-9e8d-57ec39cc95e1","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"rd:files","template":"<div class=\"gap-4 h-full px-4 pt-2\">\n    <ae-layout v-if=\"locals.folder\"\n        layout-id=\"0e40bb7a-7f76-425a-8b07-3dbb6208d277\"\n        :param-page-document=\"locals.folder\"\n        class=\"h-full w-full overflow-hidden shadow\"\n        :param-is-embedded=\"true\"\n    ></ae-layout>  \n</div> \n","css":"","controller":"class Controller {\n  async init() {\n    locals.folder = null\n    locals.folder = await Aeppic.get(data.dmsFolder.id)\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-02-24T13:17:42+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-04-05T15:05:08+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1680707108992,"ct":1677244662016,"a_depth":4,"a":["apps","59edbdbc-2cab-426a-bb42-6e57c5158e4f","3be7e887-1bcd-4c3c-979f-b20a986c4c48","0b6a2b21-9425-466e-9e8d-57ec39cc95e1"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","45ada186-e9fd-451d-9dbd-2defc0b4f86f","4ec6a0e5-cf2d-4095-9b70-2e31a64d5679","a04c8913-db48-4e80-b20d-0f3cc17a778c"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2022-07-04T11:02:16+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1656932536912,"data":{"aliases":[],"controller":"class Controller {\n  init() {\n    locals.sort = ''\n    locals.filter = ''\n    \n    locals.views = [\n      {\n        identifier: 'tiles',\n        text: 'Karten',\n        icon: 'far fa-image',\n      },\n      {\n        identifier: 'list',\n        text: 'Liste',\n        icon: 'far fa-list',\n      },\n    ]\n\n    locals.view = locals.views[0].identifier\n  }\n}","css":"","description":"","name":"rd:files","packages":[],"template":"<div class=\"flex flex-col h-full overflow-hidden items-stretch\">\n  <!-- <ae-design class=\"mx-4 text-2xl bg-white rounded-md shadow my-2 \" name=\"rd:editable-title\" :document=\"document\"\n  :params=\"{ readonly: params.readonly }\"\n  ></ae-design> -->\n\n    <div v-if=\"data.beschreibung?.trim()\"\n      class=\"mx-4 bg-white rounded shadow px-2 py-1 flex gap-2 items-center\"\n  >\n    <ae-icon class=\"far fa-file-alt\"></ae-icon>\n    <div class=\"whitespace-pre-line\">\n{{data.beschreibung}}\n    </div>\n  </div>\n \n  <ae-design  name=\"rd:toolbar\"\n              :document=\"document\"\n              @view=\"locals.view = $event\"\n              @filter=\"locals.filter = $event\"\n              @sort=\"locals.sort = $event\"\n              :params=\"{ ...params, views: locals.views, persistView: true, viewPersistanceKey: 'a04c8913-db48-4e80-b20d-0f3cc17a778c' }\"\n              class=\"ml-4\"\n  ></ae-design> \n\n  <ae-design :name=\"'rd:' + locals.view\"\n            :document=\"document\"\n            class=\"flex-1 min-h-0\"\n            :params=\"{ ...params, filter: locals.filter, sort: locals.sort  }\"\n  ></ae-design> \n\n</div>"},"f":{"id":"design-form","text":"Design","v":"c2d9ae57c7a46896"},"id":"6065bec4-040d-45c8-aa23-488b8c57e03c","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-01-23T14:53:36+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"p":"a04c8913-db48-4e80-b20d-0f3cc17a778c","previous":{"v":"59d73c5388970cf8"},"stamps":[],"t":1769180016553,"v":"59aed840ec6e3c56"},{"id":"7a55bde3-eef1-4b79-9a43-210f9bf260eb","v":"9d988bc7aab9262a","cloneOf":{"id":"6065bec4-040d-45c8-aa23-488b8c57e03c","v":"0021e1342cd671fa","text":"rd:files"},"originalCloneOf":{"id":"6065bec4-040d-45c8-aa23-488b8c57e03c","v":"0021e1342cd671fa","text":"rd:files"},"previous":{"v":"dab9a60da5716a81"},"p":"554234d4-1a0a-4f31-b6a1-7899ca841995","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"rd:files","template":"<div class=\"flex flex-col h-full overflow-hidden items-stretch\">\n  <ae-design  name=\"rd:toolbar\"\n              :document=\"document\"\n              @view=\"locals.view = $event\"\n              @filter=\"locals.filter = $event\"\n              @sort=\"locals.sort = $event\"\n              :params=\"{ ...params, views: locals.views, persistView: true, viewPersistanceKey: 'a04c8913-db48-4e80-b20d-0f3cc17a778c' }\"\n  ></ae-design> \n\n  <div v-if=\"data.beschreibung?.trim()\"\n      class=\"bg-white dark:bg-slate-800 px-4 py-2 my-2 flex gap-2 items-center\"\n  >\n    <ae-icon class=\"far fa-file-alt\"></ae-icon>\n    {{data.beschreibung}}\n  </div>\n\n  <ae-design :name=\"'rd:' + locals.view\"\n            :document=\"document\"\n            class=\"flex-1 min-h-0\"\n            :params=\"{ ...params, filter: locals.filter, sort: locals.sort,  }\"\n  ></ae-design> \n\n</div> ","css":"","controller":"class Controller {\n  init() {\n    locals.sort = ''\n    locals.filter = ''\n    \n    locals.views = [\n      {\n        identifier: 'tiles',\n        text: 'Karten',\n        icon: 'far fa-image',\n      },\n      {\n        identifier: 'list',\n        text: 'Liste',\n        icon: 'far fa-list',\n      }\n    ]\n\n\n    // if (Aeppic.LocalStorage.isAvailable) {\n    //   locals.mixFilesAndFolders = Aeppic.LocalStorage.getValue('bp-pref-ordner-page-mix') || locals.mixFilesAndFolders\n    //   locals.view = Aeppic.LocalStorage.getValue('bp-pref-ordner-page-view') || locals.view\n    // }\n\n    locals.view = locals.views[0].identifier\n  }\n}\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-12-13T13:33:19+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2024-03-11T14:42:26+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1710168146692,"ct":1702474399986,"a_depth":4,"a":["apps","45ada186-e9fd-451d-9dbd-2defc0b4f86f","4ec6a0e5-cf2d-4095-9b70-2e31a64d5679","554234d4-1a0a-4f31-b6a1-7899ca841995"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","77ee8815-2c3a-4bb5-abd9-90541a545a24","1cc4b977-c14d-4587-af47-d6ac230f60b3"],"a_depth":3,"a_forms":["folder","application-form","design-folder"],"created":{"at":"2026-04-21T07:31:43+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"ct":1776756703484,"data":{"aliases":[],"controller":"class Controller { \n  async init() {\n    locals.ready = false\n\n    this.sort = [\n      { field: 'data.label' },\n      { field: 'data.name' },\n      { field: 'f.id' },\n      { field: 'created.at' }\n    ]\n    this.selectedDocument = document\n    this.layersToShow = Math.min(params.layersToShow ?? 3, 3)\n    locals.visibleNodes = []\n\n\n    locals.globalRootId = await this._getGlobalRootId()\n    const treeRootDocument = await this.calculateTreeRoot(params.startAtDepth ?? 0, this.selectedDocument)\n\n    this.key = `${locals.globalRootId}, ${treeRootDocument.id}`\n    const storedUnfolded = Aeppic.SessionStorage.getValue(this.key)\n    this.unfoldedIds = new Set(Array.isArray(storedUnfolded) ? storedUnfolded : [])\n\n    locals.rootNode = this._createNode(null, treeRootDocument)\n    this.rootNode = locals.rootNode\n    await this.initializePathNodes()\n\n    locals.ready = true\n  }\n\n// {\n//  document\n//  folded // set by the user\n//  subscription // only subscribe if in path or not folded\n//  childNodes // stort this object recursively\n//  hasChildren // just an initial fetch to check if there are any children.\n//  parentNode\n// }\n\n  async initializePathNodes() {\n    let previousNode = null\n\n    for (const doc of await Aeppic.getAll(this._pathDocumentIds)) {\n      if (doc.id === locals.rootNode.document.id) {\n        previousNode = locals.rootNode\n      } else {\n        const node = this._createNode(previousNode, doc)\n        previousNode = node\n      }\n    }\n  }\n\n  async calculateTreeRoot(startAtDepth, directionDocument) {\n    const preliminaryRootId = await this._getGlobalRootId()\n    const preliminaryCompletePath = [...directionDocument.a, directionDocument.id]\n\n    const indexOfPreliminaryRoot = preliminaryCompletePath.indexOf(preliminaryRootId)\n    \n    if (indexOfPreliminaryRoot === -1) {\n      throw new Error('The root should always be an ancestor of the passed document.')\n    }\n\n    const preliminaryPath = preliminaryCompletePath.slice(indexOfPreliminaryRoot) // This array is guaranteed to have at least length 1\n\n    let actualPath = preliminaryPath.slice(startAtDepth)\n\n    if (actualPath.length === 0) {\n      console.warn('The directional Document is not deep enough below the preliminary root. Using the directional Document as root instead')\n      return directionDocument\n    }\n\n    return await Aeppic.get(actualPath[0])\n  }\n\n  // Builds the children query for a node, honoring the node form's allowedChildrenForms\n  // (same rule as rd:page-list). Forms without a restriction show all children.\n  async _childrenQuery(doc) {\n    const form = await Aeppic.getForm(doc.f.id)\n    const allowedChildrenForms = form?.data?.allowedChildrenForms\n\n    if (form?.data?.allowAllChildren !== true && Array.isArray(allowedChildrenForms) && allowedChildrenForms.length > 0) {\n      const formFilter = allowedChildrenForms.map(f => `f.id:${f.id}`).join(' OR ')\n      return `p:${doc.id} (${formFilter})`\n    }\n\n    return `p:${doc.id}`\n  }\n\n  async _syncNode(node) {\n    const childrenQuery = await this._childrenQuery(node.document)\n\n    // Do this non-blocking for faster loading speeds\n    Aeppic.findOne(childrenQuery).then(childDoc => {\n      node.hasChildren = !!childDoc\n    })\n\n\n    node.childNodes.map(childNode => this._syncNode(childNode))\n\n    const shouldSubscribe = !this.nodeLooksFolded(node)\n    if (shouldSubscribe) {\n      if (!node.subscription) {\n        node.subscription = Aeppic.subscribe(childrenQuery, async (docs) => {\n          \n          const existingChildrenMap = new Map()\n          for (const childNode of node.childNodes) {\n            existingChildrenMap.set(childNode.document.id, childNode)\n          }\n\n          const addedDocsMap = new Map()\n          for (const doc of docs) {\n            addedDocsMap.set(doc.id, doc)\n          }\n\n          for (const [id, childNode] of existingChildrenMap) {\n            if (!addedDocsMap.has(id)) {\n              this._removeNode(childNode)\n            }\n          }\n\n          for (const doc of docs) {\n            if (!existingChildrenMap.has(doc.id)) {\n              this._createNode(node, doc)\n            }\n          }\n\n          node.childNodes = this._sortNodes(node.childNodes)\n        })\n      }\n    } else {\n      if (node.subscription) {\n        node.subscription.cancel()\n      }\n\n      node.subscription = null\n    }\n  }\n\n  _createNode(parentNode, doc) {\n    const newNode = {}\n    newNode.document = doc\n    newNode.folded = !this.unfoldedIds.has(doc.id)\n    newNode.subscription = null\n    newNode.childNodes = []\n    newNode.hasChildren = false\n    newNode.parentNode = parentNode\n    this._syncNode(newNode)\n    \n    if (parentNode) {\n      parentNode.childNodes.push(newNode)\n    }\n\n    return newNode\n  }\n\n  _removeNode(node) {\n    for (const childNode of node.childNodes.slice(0)) { // shallow copy\n      this._removeNode(childNode)\n    }\n    \n    if (!!node.subscription) {\n      node.subscription.cancel()\n      node.subscription = null\n    }\n\n    node.folded = true\n    node.childNodes = []\n\n    if (Array.isArray(node.parentNode?.childNodes)) {\n      const index = node.parentNode.childNodes.indexOf(node)\n      if (index !== -1) {\n        node.parentNode.childNodes.splice(index, 1)\n      }\n    }\n\n    // TODO: Handle if document is in Path - This requires a heuristic for chosing a new selectedDocument\n  }\n\n  _getNodeDepth(node) {\n    let depth = 0\n    let currentNode = node\n\n    while (currentNode && currentNode !== locals.rootNode) {\n      depth++\n      currentNode = currentNode.parentNode\n    }\n\n    return depth\n  }\n\n  _nodeInPath(node) {\n    return this._documentInPath(node.document)\n  }\n\n  _documentInPath(doc) {\n    return this._pathDocumentIds.includes(doc.id)\n  }\n  \n  // Returns the ids from the root document to the selected document\n  get _pathDocumentIds() {\n    if (!this.selectedDocument || !locals.rootNode) return []\n    \n    if (this.selectedDocument.id === locals.rootNode.document.id) {\n      return [this.selectedDocument.id]\n    }\n\n    const indexOfRoot = this.selectedDocument.a.findIndex(id => id === locals.rootNode.document.id)\n    \n    if (indexOfRoot === -1) {\n      return [this.selectedDocument.id]\n    }\n\n    return [...this.selectedDocument.a.slice(indexOfRoot), this.selectedDocument.id]\n  }\n\n  _documentIdInPath(id) {\n    if (!id) return false\n\n    return this._pathDocumentIds.includes(id)\n  }\n\n  async _getGlobalRootId() {\n    const result = await Aeppic.Commands.execute('081408b6-03e1-4311-9b4a-715224f4ee36', document)\n    if (result.ok) {\n      return result.value.furthestRelevantAncestor.id\n    }\n    return document.a[2]\n  }\n\n  async toggleFold(node) {\n    node.folded = !node.folded\n    this.selectedDocument = node.document\n    \n    if (!node.folded) {\n      this.unfoldedIds.add(node.document.id)\n    } else {\n      this.unfoldedIds.delete(node.document.id)\n    }\n\n    this._syncNode(node)\n  }\n\n  handleNodeSelected(node) {\n    if (node.document.id === this.selectedDocument.id) {\n      $emit('selected', node.document, node.parentNode?.childNodes.map(childNode => childNode.document))\n    } else {\n      this.selectedDocument = node.document\n      this._syncNode(node)\n    }\n  }\n\n  _sortNodes(nodes) {\n    if (!Array.isArray(nodes) || nodes.length === 0) return []\n\n    const sortedDocuments = Aeppic.Functions.sort(nodes.map(node => node.document), this.sort)\n    const nodeMap = new Map(nodes.map(node => [node.document.id, node]))\n\n    return sortedDocuments.map(doc => nodeMap.get(doc.id))\n  }\n\n  findNodeById(id, node) {\n    if (node === undefined) node = locals.rootNode\n    if (!node) return null\n\n    if (node.document && node.document.id === id) {\n      return node\n    }\n\n    if (Array.isArray(node.childNodes) && node.childNodes.length > 0) {\n      for (const childNode of node.childNodes) {\n        const foundNode = this.findNodeById(id, childNode)\n        \n        if (foundNode) {\n          return foundNode\n        }\n      }\n    }\n\n    return null\n  }\n\n  nodeCategory(node) {\n    const depth = this._getNodeDepth(node)\n    const pathLen = this._pathDocumentIds.length\n\n    if (pathLen - this.layersToShow > depth) return 'ancestor'\n    if (pathLen - this.layersToShow === depth) return 'thresholdAncestor'\n    if (pathLen + 1 === depth) return 'thresholdPermitted'\n    if (pathLen + 1 < depth) return 'forbidden'\n    if (!node.parentNode) return 'thresholdAncestor'\n    \n    return 'permitted'\n  }\n\n  nodeLooksFolded(node) {\n    if (!node.parentNode) return false // root is never folded\n    // if (this._nodeInPath(node) && node.document.id !== this.selectedDocument.id) return false // documents in path are never folded\n    if (this._nodeInPath(node)) return false // documents in path are never folded\n    if (this.nodeLooksFolded(node.parentNode)) return true // a folded parent causes the child to not be visible\n    if (['forbidden', 'thresholdPermitted'].includes(this.nodeCategory(node))) return true // if the node is to deep, hide it\n    return !!node.folded // finally it depends on the user input\n  }\n\n  destroy() {\n    Aeppic.SessionStorage.setValue(this.key, Array.from(this.unfoldedIds))\n  }\n}","css":"","description":"","name":"rd:folder-tree","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<template>\n  <div class=\"w-full xpy-4 text-sm text-gray-800 group h-full\">\n    <ae-layout \n      v-if=\"locals.rootNode\"\n      class=\"h-full\"\n      layout-id=\"3697b29a-a27c-4402-bab3-118002055040\" \n      :param-node=\"locals.rootNode\" \n      :param-tree-controller=\"controller\"\n      :param-truncate=\"params.truncate\"\n    ></ae-layout>\n\n  </div>\n</template>"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"cf06d688-aeb4-45ff-941b-058334cf2436","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2026-07-03T13:21:45+00:00","backedBy":"","by":"09763886-6748-4a56-8e0e-54a2293ee96b","client":"server","from":"","impersonatedBy":""},"p":"1cc4b977-c14d-4587-af47-d6ac230f60b3","previous":{"v":"0e54defcdd9ae8e9"},"stamps":[],"t":1783084905446,"v":"f842c562bd5a4e78"},{"id":"27821423-0b26-48ef-8a1d-7d385e0d0c06","v":"201baffdf7fdca2c","cloneOf":{"id":"6c9bf776-d3fe-4ad5-afea-a85807be0e59","v":"20cabc1ef22051ca","text":"rd:folders-menu"},"originalCloneOf":{"id":"6c9bf776-d3fe-4ad5-afea-a85807be0e59","v":"20cabc1ef22051ca","text":"rd:folders-menu"},"previous":{"v":"6086c3b0a6f25fcf"},"p":"ebb00fab-fe96-4562-a7cd-1fac9a420d50","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"rd:folders-menu","template":"\n<div class=\"flex gap-2 flex-row md:flex-col overflow-x-auto\">\n  <ae-layout  layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n              @selected=\"controller.navigateToAllFolders()\"\n              param-text=\"Alle Ordner\"\n              class=\"w-full\"\n              param-classes=\"w-full border rounded-full p-1 flex items-center gap-2\"\n              :param-primary=\"!locals.folders.find(f => f.id === params.activeDocument.id)\"\n  ></ae-layout>  \n\n  <ae-layout v-for=\"folder of locals.folders\"\n            layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n            :param-icon-design-document-id=\"folder.id\"\n            @selected=\"controller.selected(folder)\"\n            :param-text=\"folder.data.name\"\n            class=\"w-full\"\n            param-classes=\"w-full border rounded-full p-1 flex items-center gap-2\"\n            :param-primary=\"params.activeDocument.id === folder.id\"\n  ></ae-layout>  \n</div>","css":"","controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Verwaltung: 'ebb00fab-fe96-4562-a7cd-1fac9a420d50',\n      Ordner: 'b2030eae-0210-474c-bf24-9b5c6f0a0d3b',\n    }\n\n    locals.folders = []\n\n    Aeppic.subscribe(`p:${document.id} f.id:${this.FORMS.Ordner}`, { sort: ['data.name', 'id']}, (folders) => {\n      locals.folders = folders\n    })\n  }\n\n  async navigateToAllFolders() {\n    if (document.f.id === this.FORMS.Verwaltung) {\n      Aeppic.drillInto(document, { tab: params.tab })\n      return\n    }\n\n    const verwaltung = await Aeppic.get(document.a_forms.findIndex(aForm => aForm === this.FORMS.Verwaltung))\n\n    Aeppic.drillInto(verwaltung, { tab: params.tab })\n  }\n\n  selected(folder) {\n    Aeppic.drillInto(folder, { tab: params.tab })\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-11-03T09:45:07+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-09-27T08:40:22+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1695804022985,"ct":1667468707795,"a_depth":4,"a":["apps","a590ce5b-28fc-4f85-9049-d006e1b8f880","169e87e0-0379-48e1-8c94-8fadac5969bb","ebb00fab-fe96-4562-a7cd-1fac9a420d50"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"51f7d64c-02bc-42e0-b9d9-01ea146867b2","v":"8b0791515158def5","cloneOf":{"id":"6c9bf776-d3fe-4ad5-afea-a85807be0e59","v":"ed76362919dbc8c7","text":"rd:folders-menu"},"originalCloneOf":{"id":"6c9bf776-d3fe-4ad5-afea-a85807be0e59","v":"ed76362919dbc8c7","text":"rd:folders-menu"},"previous":{"v":"a2bfef6cd397846c"},"p":"b48189af-7305-4ee5-ab8b-e15cbcd55aa7","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"rd:folders-menu","template":"<div class=\"flex gap-2 flex-row md:flex-col overflow-x-auto\">\n  <ae-layout  layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n              @selected=\"controller.navigateToAllFolders()\"\n              param-text=\"Alle Ordner\"\n              class=\"w-full\"\n              param-classes=\"w-full border rounded-full p-1 flex items-center gap-2\"\n              :param-primary=\"!locals.folders.find(f => f.id === params.activeDocument.id)\"\n  ></ae-layout>  \n\n  <ae-layout v-for=\"(folder, index) of locals.folders\"\n            layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n            :param-icon-design-document-id=\"folder.id\"\n            @selected=\"controller.selected(folder)\"\n            :param-text=\"folder.data.name\"\n            class=\"w-full\"\n            param-classes=\"w-full border rounded-full p-1 flex items-center gap-2\"\n            :param-primary=\"params.activeDocument.id === folder.id\"\n  ></ae-layout>  \n</div>\n\n<!-- <ae-layout ref=\"edit\" \n            layout-id=\"76eab791-99ed-4e56-a5c7-b089b21125fa\"\n            :param-document=\"locals.editDocument\"\n            :param-editable-fields=\"['name', 'icon']\"\n></ae-layout> -->","css":"","controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Projekt: '27a5cf6e-22f8-44d2-8107-400b27382690',\n      Board: 'b48189af-7305-4ee5-ab8b-e15cbcd55aa7',\n      Ordner: 'e85fc64c-df8a-493a-a7ce-fefa6d85d608',\n    }\n    this.persistanceKey = `bp-folder-lastActive-form-ancestor_${document.f.id}_${document.id}`\n\n    locals.folders = []\n\n    Aeppic.subscribe(`p:${document.id} f.id:${this.FORMS.Ordner}`, { sort: ['data.name', 'id']}, (folders) => {\n      locals.folders = folders\n\n      const selected = Aeppic.LocalStorage.getValue(this.persistanceKey)\n      if (selected && folders.find(f => f.id === selected)) {\n        Aeppic.navigateTo(selected)\n      }\n    })\n  }\n\n\n  async navigateToAllFolders() {\n    if (document.f.id === this.FORMS.Board) {\n      Aeppic.LocalStorage.setValue(this.persistanceKey, document.id)\n\n      Aeppic.drillInto(document)\n      return\n    } else {\n      const board = await Aeppic.get(document.a_forms.findIndex(aForm => aForm === this.FORMS.Board))\n      Aeppic.LocalStorage.setValue(this.persistanceKey, board.id)\n\n      Aeppic.drillInto(board)\n    }\n  }\n\n  selected(folder) {\n    Aeppic.LocalStorage.setValue(this.persistanceKey, folder.id)\n    Aeppic.drillInto(folder)\n  }\n}  \n  ","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-01-19T14:47:53+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-01-23T13:40:51+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1706017251124,"ct":1705675673271,"a_depth":4,"a":["apps","90a38bb1-5683-49d1-b519-203876cc6967","4bfbe5fd-cf64-4b07-b91f-17bade3f41f9","b48189af-7305-4ee5-ab8b-e15cbcd55aa7"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","a590ce5b-28fc-4f85-9049-d006e1b8f880","169e87e0-0379-48e1-8c94-8fadac5969bb","df3870fe-b129-4535-9e52-c33a05fb4bce"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2022-11-02T14:32:09+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1667399529583,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Personaldaten: '3090c06d-faea-41f6-a6ea-846b900faad5',\n      Personalverwaltung: 'df3870fe-b129-4535-9e52-c33a05fb4bce',\n      Personalordner: '4f3c48aa-8d12-4dfa-8a66-064d8a851a5b',\n    }\n\n    if (!params.readonly) {\n      locals.buttonEditParams = {\n        icon: 'far fa-pencil text-sm text-neutral-600 hover:text-neutral-700',\n        border: 'border border-secondary-300',\n      }\n    }\n    locals.folders = []\n    locals.editableFolders = []\n\n    Aeppic.subscribe(`p:${document.id} f.id:${this.FORMS.Personalordner}`, { sort: ['data.name', 'id']}, (folders) => {\n      locals.folders = folders\n      locals.editableFolders = new Array(folders.length).fill(null)\n    })\n  }\n\n\n  async navigateToAllFolders() {\n    if (document.f.id === this.FORMS.Personalverwaltung) {\n      Aeppic.drillInto(document, { tab: params.tab })\n      return\n    }\n\n    const verwaltung = await Aeppic.get(document.a_forms.findIndex(aForm => aForm === this.FORMS.Personalverwaltung))\n\n    Aeppic.drillInto(verwaltung, { tab: params.tab })\n  }\n\n  selected(folder) {\n    Aeppic.drillInto(folder, { tab: params.tab })\n  }\n\n  async editFolder(index) {\n    if (params.readonly) {\n      return\n    }\n\n    const folder = locals.folders[index]\n    locals.editableFolders = new Array(locals.folders.length).fill(null)\n    locals.editableFolders.splice(index, 1, await Aeppic.edit(folder))\n  }\n\n  async saveFolder(index) {\n    const folder = locals.editableFolders[index]\n    locals.editableFolders.splice(index, 1, null)\n    Aeppic.save(folder)\n  }\n}  \n ","css":"","description":"","name":"rd:folders-menu","packages":[],"template":"<div class=\"flex p-1 gap-2 flex-row md:flex-col overflow-x-auto\" >\n  <ae-layout\n    layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n    @selected=\"controller.navigateToAllFolders()\"\n    param-text=\"Alle Ordner\"\n    class=\"min-w-40 md:min-w-full\"\n    param-classes=\"w-full border rounded-full p-1 flex items-center gap-2\"\n    :param-primary=\"!locals.folders.find(f => f.id === params.activeDocument.id)\"\n  ></ae-layout>\n\n  <div v-for=\"(folder, index) of locals.folders\" class=\"min-w-40 md:min-w-full\">\n    <ae-layout v-if=\"locals.editableFolders[index]\"\n        layout-id=\"f6f185b5-f820-4d06-b110-c5fb4b753189\"\n        :param-document=\"locals.editableFolders[index]\"\n        @save=\"controller.saveFolder(index)\"\n        :readonly=\"params.readonly\"\n    ></ae-layout>\n\n    <ae-layout v-else\n      layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n      @selected=\"controller.selected(folder)\"\n      class=\"w-full\"\n      @right=\"controller.editFolder(index)\"\n      :param-icon-design-document-id=\"folder.id\"\n      :param-text=\"folder.data.name\"\n      param-classes=\"w-full border rounded-full p-1 flex items-center gap-2\"\n      :param-primary=\"params.activeDocument.id === folder.id\"\n      :param-button-right=\"locals.buttonEditParams\"\n      :param-button-right-show-on-hover=\"true\"\n    ></ae-layout>\n  </div>\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"c2d9ae57c7a46896"},"id":"6c9bf776-d3fe-4ad5-afea-a85807be0e59","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-02-17T14:58:30+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"df3870fe-b129-4535-9e52-c33a05fb4bce","previous":{"v":"9a27d4db91cafc13"},"stamps":[],"t":1739804310636,"v":"29fbea2fcb519d22"},{"a":["apps","b91e3079-75ae-49cd-981b-3053bf47208c","e7a0be94-cd94-4210-875e-0cceb7e8bc6c","320bbded-2e47-4772-b662-c54254627ac3"],"a_depth":4,"a_forms":["folder","application-form","folder","form"],"created":{"at":"2025-02-17T16:03:53+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1739808233599,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      NewsgroupOrdner: '320bbded-2e47-4772-b662-c54254627ac3',\n      Newsgroup: '381e2c4e-9eed-42a5-b65c-ad72e25369f0',\n    }\n\n    if (!params.readonly) {\n      locals.buttonEditParams = {\n        icon: 'far fa-pencil text-sm text-neutral-600 hover:text-neutral-700',\n        border: 'border border-secondary-300',\n      }\n    }\n    \n    locals.folders = []\n    locals.editableFolders = []\n\n    Aeppic.subscribe(`p:${document.id} f.id:${this.FORMS.Newsgroup}`, { sort: ['data.name', 'id']}, (folders) => {\n      locals.folders = folders\n      locals.editableFolders = new Array(folders.length).fill(null)\n    })\n  }\n\n\n  async navigateToAllFolders() {\n    if (document.f.id === this.FORMS.NewsgroupOrdner) {\n      Aeppic.drillInto(document, { tab: params.tab })\n      return\n    }\n\n    const verwaltung = await Aeppic.get(document.a_forms.findIndex(aForm => aForm === this.FORMS.NewsgroupOrdner))\n\n    Aeppic.drillInto(verwaltung, { tab: params.tab })\n  }\n\n  selected(folder) {\n    Aeppic.drillInto(folder, { tab: params.tab })\n  }\n\n  async editFolder(index) {\n    if (params.readonly) {\n      return\n    }\n\n    const folder = locals.folders[index]\n    locals.editableFolders = new Array(locals.folders.length).fill(null)\n    locals.editableFolders.splice(index, 1, await Aeppic.edit(folder))\n  }\n\n  async saveFolder(index) {\n    const folder = locals.editableFolders[index]\n    locals.editableFolders.splice(index, 1, null)\n    Aeppic.save(folder)\n  }\n}  \n ","css":"","description":"","name":"rd:folders-menu","packages":[],"template":"<div class=\"flex p-1 gap-2 flex-row md:flex-col overflow-x-auto\" >\n  <ae-layout\n    layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n    @selected=\"controller.navigateToAllFolders()\"\n    param-text=\"Alle Ordner\"\n    class=\"min-w-40 md:min-w-full\"\n    param-classes=\"w-full border rounded-full p-1 flex items-center gap-2\"\n    :param-primary=\"!locals.folders.find(f => f.id === params.activeDocument.id)\"\n  ></ae-layout>\n\n  <div v-for=\"(folder, index) of locals.folders\" class=\"min-w-40 md:min-w-full\">\n    <ae-layout v-if=\"locals.editableFolders[index]\"\n        layout-id=\"f6f185b5-f820-4d06-b110-c5fb4b753189\"\n        :param-document=\"locals.editableFolders[index]\"\n        @save=\"controller.saveFolder(index)\"\n        :readonly=\"params.readonly\"\n    ></ae-layout>\n\n    <ae-layout v-else\n      layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n      @selected=\"controller.selected(folder)\"\n      class=\"w-full\"\n      @right=\"controller.editFolder(index)\"\n      :param-icon-design-document-id=\"folder.id\"\n      :param-text=\"folder.data.name\"\n      param-classes=\"w-full border rounded-full p-1 flex items-center gap-2\"\n      :param-primary=\"params.activeDocument.id === folder.id\"\n      :param-button-right=\"locals.buttonEditParams\"\n      :param-button-right-show-on-hover=\"true\"\n    ></ae-layout>\n  </div>\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"c7cc52f1-348a-4d02-a05d-2313b72e7d0b","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-02-17T16:04:43+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"320bbded-2e47-4772-b662-c54254627ac3","previous":{"v":"initial"},"stamps":[],"t":1739808283809,"v":"c39f450e7916799b"},{"a":["apps","77ee8815-2c3a-4bb5-abd9-90541a545a24","1cc4b977-c14d-4587-af47-d6ac230f60b3"],"a_depth":3,"a_forms":["folder","application-form","design-folder"],"created":{"at":"2022-09-09T13:43:51+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1720684627136,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:form","packages":[],"template":"<ae-form  :readonly=\"!edit && params.readonly\"\n          :document=\"document\"\n          layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\"\n          :auto-save=\"params.autoSave\"\n          :data-test=\"'design_' + design.data.name + '_documentForm' + document.f.text\"\n></ae-form>\n"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"501ceff1-bf0b-4851-b6ee-e80a23167e59","inheritedLocks":[null,null,null,null],"locks":[],"meta":{},"modified":{"at":"2026-05-11T13:20:44+00:00","backedBy":"","by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":""},"p":"1cc4b977-c14d-4587-af47-d6ac230f60b3","previous":{"v":"f28b21e5e29d440c"},"stamps":[],"t":1778505644827,"v":"e18d425fadcf60b3"},{"a":["system","system-forms","form"],"a_depth":3,"a_forms":["system-folder-form","repository-folder-form","form"],"created":{"at":"2024-07-03T09:24:38+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1719998678272,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    // locals.formDown = Aeppic.Parser.formdown(data.definition)\n    // console.log(locals.formDown)\n    this.FORMS = {\n      Translations: 'b29709d0-8fd5-4da8-8bbc-4f61fb9f82d9',\n    }\n\n    this.currentPreview = 'A'\n    this.nextPreview = 'B'\n\n    locals.warnLeave = false\n    locals.editNameField = document.v === 'initial'\n\n    locals.tempFormA = null\n    locals.tempDocumentA = null\n    locals.tempFormB = null\n    locals.tempDocumentB = null\n\n    locals.key = 0\n    locals.tempDocument = null\n\n    locals.debug = {}\n\n    locals.mode = 'edit'\n\n    // this.originalForm = await Aeppic.getForm({ id: document.id, v: document.v })\n    // console.log(this.originalForm.info)\n\n    // this.editableForm = await Aeppic.edit(this.originalForm)\n    // this.editableForm.data.definition = await this.formToFormDown(this.originalForm.info)\n\n    // await this.rebuild(this.editableForm)\n\n    const documentForm = await Aeppic.getForm(document)\n\n    await this.rebuild(documentForm.data.definition)\n  }\n\n  async save() {\n    if (locals.mode === 'edit') {\n      const form = await Aeppic.edit(document)\n      form.data.definition = locals.tempForm.data.definition\n\n      Aeppic.save(form)\n\n      Aeppic._emitter.emit('bizpin:show-toast', {\n        title: 'Gespeichert',\n        text: 'Formular gespeichert',\n        timeout: 3000,\n      })\n    } else if (locals.mode === 'translate') {\n      Aeppic.save(locals.translationsDocument)\n\n      Aeppic._emitter.emit('bizpin:show-toast', {\n        title: 'Gespeichert',\n        text: 'Übersetzungen gespeichert',\n        timeout: 3000,\n      })\n    }\n\n    locals.warnLeave = false\n  }\n\n  handleFormBuilderAdd(eventDetail) {\n    console.log({ eventDetail })\n    locals.warnLeave = true\n\n    if (eventDetail.fieldLabel) {\n      this.addFieldAt(\n        { fieldLabel: eventDetail.fieldLabel, fieldOptions: eventDetail.fieldOptions },\n        {\n          sectionIndex: eventDetail.sectionIndex,\n          placeholder: eventDetail.placeholder,\n          position: eventDetail.fieldOptions.position,\n          paragraph: eventDetail.paragraph,\n        }\n      )\n      // } else if (eventDetail.markdownText) {\n      //   // TODO: sanitize markdownText\n      //   const sanitizedText = eventDetail.markdownText\n\n      //   this.addTextAt(sanitizedText, {\n      //     sectionIndex: eventDetail.sectionIndex,\n      //     placeholder: eventDetail.placeholder,\n      //     position: eventDetail.fieldOptions.position,\n      //     paragraph: eventDetail.paragraph\n      //   })\n      // }\n    } else if (eventDetail.text) {\n      const sanitizedText = this._sanitizeAndTransformText(eventDetail.text)\n\n      this.addTextAt(sanitizedText, {\n        sectionIndex: eventDetail.sectionIndex,\n        placeholder: eventDetail.placeholder,\n        position: eventDetail.fieldOptions.position,\n        paragraph: eventDetail.paragraph,\n      })\n    } else if (eventDetail.sectionIndex != null) {\n      this.addSectionAt(eventDetail.sectionIndex, eventDetail.title)\n    } else {\n      throw new Error('Invalid arguments')\n    }\n  }\n\n  _sanitizeAndTransformText(text) {\n      // TODO: sanitize text  e.g.: 'my-text'.replace(/^[A-z].+(\\n)/gmi, '$&\\n')\n\n      // NOTE: use markdown fenced code blocks for 'plain text' to avoid markdown parsing\n      const sanitizedText = text\n        .trim()\n        .split('\\n\\n')\n        .map((p) => '```\\n' + p + '\\n```')\n        .join('\\n')\n\n      return sanitizedText\n  }\n\n  async addTextAt(markdownText, placement) {\n    const defintions = this._getDefinitionAt(placement)\n\n    const newDefintion = `${defintions.before}\\n\\n${markdownText}\\n\\n${defintions.after}`\n\n    await this.rebuild(newDefintion)\n  }\n\n  _getDefinitionAt(placement) {\n    const { placeholder, sectionIndex, position = 'after', paragraph } = placement\n\n    const defintions = {\n      before: '',\n      after: '',\n    }\n\n    if (sectionIndex != null) {\n      const section = this._getSection(sectionIndex)\n\n      const indexOfSectionEnd = section.offset + section.length\n      defintions.before = locals.tempForm.data.definition.slice(0, indexOfSectionEnd)\n\n      defintions.after = locals.tempForm.data.definition.slice(indexOfSectionEnd)\n    } else if (placeholder != null) {\n      const { offset, length } = placeholder\n\n      if (position === 'before') {\n        defintions.before = locals.tempForm.data.definition.slice(0, offset)\n        defintions.after = locals.tempForm.data.definition.slice(offset)\n      } else {\n        // position === 'after'\n        defintions.before = locals.tempForm.data.definition.slice(0, offset + length)\n        defintions.after = locals.tempForm.data.definition.slice(offset + length)\n      }\n    } else if (paragraph != null) {\n      const { offset, length, offsetExcludeDirectives } = paragraph\n\n      const paragraphOffset = paragraph.offsetExcludeDirectives\n      const paragraphLength = length - (paragraphOffset - offset)\n\n      if (position === 'before') {\n        defintions.before = locals.tempForm.data.definition.slice(0, paragraphOffset)\n        defintions.after = locals.tempForm.data.definition.slice(paragraphOffset)\n      } else {\n        // position === 'after'\n        defintions.before = locals.tempForm.data.definition.slice(0, paragraphOffset + paragraphLength)\n        defintions.after = locals.tempForm.data.definition.slice(paragraphOffset + paragraphLength)\n      }\n    } else {\n      throw new Error('Invalid arguments')\n    }\n\n    return defintions\n  }\n\n  async addFieldAt(field, placement) {\n    const {\n      fieldLabel = 'New field',\n      fieldOptions = {\n        type: 'text',\n        control: '',\n        typeOptions: [],\n        required: false,\n        controlParams: '',\n        visibility: '',\n      },\n    } = field\n\n    const definitions = this._getDefinitionAt(placement)\n\n    const toCamelCase = function toCamelCase(str) {\n      return str.replace(/(?:^\\w|[A-Z]|\\b\\w|\\s+)/g, (match, index) => {\n        // test if there is some whitespace and remove it\n        if (/\\s+/.test(match)) {\n          return ''\n        }\n\n        // always return first character in lowercase\n        return index === 0 ? match.toLowerCase() : match.toUpperCase()\n      })\n    }\n\n    const newFieldCounter = locals.tempForm.fields.length\n    const fieldName = `_${newFieldCounter}_${toCamelCase(fieldLabel).replace(/[^A-z]/g, '_')}`\n\n    \n    const beforeLabelDefinitionParts = []\n    \n    if (fieldOptions?.visibility) {\n      const visibilityDefintion = `${fieldOptions.visibility}`\n      beforeLabelDefinitionParts.push(visibilityDefintion)\n    }\n\n    if (fieldOptions?.control) {\n      const controlParamsDefiniton = fieldOptions?.controlParams ? ` ${fieldOptions.controlParams} ` : ''\n      const controlDefiniton = `${fieldOptions.control}${controlParamsDefiniton}`\n\n      beforeLabelDefinitionParts.push(controlDefiniton)\n    }\n\n\n    const beforeLabelDefinition = beforeLabelDefinitionParts.length > 0 ? `{${beforeLabelDefinitionParts.join('|')}}` : ''\n\n    const requiredDefintion = fieldOptions?.required ? ' <required>' : ''\n\n    // fields near a paragraph/markdowntext or section need to be on a new line to avoid being part of the paragraph\n    // @paragraph: inline text and fields are currently not supported anymore\n    const beforeFieldWhitespaceCharacter = placement.sectionIndex != null || placement.paragraph != null ? '\\n\\n' : ' '\n\n    const afterFieldWhitespaceCharacter = placement.sectionIndex != null || placement.paragraph != null ? '\\n\\n' : ' '\n\n    const fieldDefinition = `${beforeFieldWhitespaceCharacter}${beforeLabelDefinition}[${fieldLabel}][${fieldName}]${afterFieldWhitespaceCharacter}`\n\n    let fieldTypeDefintion = ''\n\n    const simpleTypes = ['text', 'number', 'date', 'datetime', 'phone', 'mail', 'switch', 'duration']\n\n    if (simpleTypes.includes(fieldOptions.type)) {\n      fieldTypeDefintion += `\\n[${fieldName}]: ${fieldOptions.type} ${requiredDefintion}\\n`\n    } else if (fieldOptions.type === 'signature') {\n      fieldTypeDefintion += `\\n[${fieldName}]: file ${requiredDefintion}\\n`\n    } else {\n      if (fieldOptions.type === 'select') {\n        const options = fieldOptions.typeOptions.options.map(option => {\n          return `  - ${option.value}: ${option.display}`\n        }).join('\\n')\n\n        fieldTypeDefintion = `[${fieldName}]: select ${requiredDefintion}\\n${options}\\n`\n        // throw new Error('Select type not supported yet')\n      } else {\n        throw new Error('Invalid field type')\n      }\n    }\n\n    const newDefintion = `${definitions.before}${fieldDefinition}${definitions.after}${fieldTypeDefintion}`\n\n    console.log({ definitions, fieldName, fieldLabel, newDefintion })\n\n    await this.rebuild(newDefintion)\n  }\n\n  async addSectionAt(sectionIndex, title) {\n    const section = this._getSection(sectionIndex)\n    let formdown = locals.tempForm.data.definition\n\n    const defintionBefore = formdown.slice(0, section.offset + section.length)\n\n    const newDefintion = `\\n# ${title?.trim() || 'Header'} \\n\\n`\n\n    const defintionAfter = formdown.slice(section.offset + section.length)\n\n    const combinedDefinition = `${defintionBefore}${newDefintion}${defintionAfter}`\n    console.log({ defintionBefore, newDefintion, defintionAfter, combinedDefinition })\n\n    await this.rebuild(combinedDefinition)\n  }\n\n  handleFormBuilderRemove(eventDetail) {\n    console.log({ eventDetail })\n    locals.warnLeave = true\n\n    if ('sectionIndex' in eventDetail) {\n      this.removeSectionAt(eventDetail.sectionIndex, eventDetail.title)\n    } else if ('placeholder' in eventDetail) {\n      this.removeFieldAt(eventDetail.placeholder)\n    } else if ('paragraph' in eventDetail) {\n      this.removeParagraphAt(eventDetail.paragraph)\n    }\n  }\n\n  async removeSectionAt(sectionIndex) {\n    const section = this._getSection(sectionIndex)\n    const newDefintion =\n      locals.tempForm.data.definition.slice(0, section.offset) +\n      locals.tempForm.data.definition.slice(section.offset + section.length)\n\n    await this.rebuild(newDefintion)\n  }\n\n  async removeFieldAt(placeholder) {\n    const { offset, length } = placeholder\n    const newDefintion =\n      locals.tempForm.data.definition.slice(0, offset) + locals.tempForm.data.definition.slice(offset + length)\n\n    console.log({ newDefintion })\n\n    await this.rebuild(newDefintion)\n  }\n\n  async removeParagraphAt(paragraph) {\n    const { offset, length, offsetExcludeDirectives } = paragraph\n\n    const paragraphOffset = paragraph.offsetExcludeDirectives\n    const paragraphLength = length - (paragraphOffset - offset)\n\n    const newDefintion =\n      locals.tempForm.data.definition.slice(0, paragraphOffset) +\n      locals.tempForm.data.definition.slice(paragraphOffset + paragraphLength)\n\n    console.log({ newDefintion })\n\n    await this.rebuild(newDefintion)\n  }\n\n  handleFormBuilderChange(eventDetail) {\n    console.log({ eventDetail })\n    locals.warnLeave = true\n\n    if ('sectionIndex' in eventDetail) {\n      this.changeSectionAt(eventDetail.sectionIndex, eventDetail.title)\n    } else if ('placeholder' in eventDetail) {\n      this.changeFieldAt(eventDetail.placeholder, eventDetail.title)\n    } else if ('paragraph' in eventDetail) {\n      this.changeTextAt(eventDetail.paragraph, eventDetail.text)\n    }\n  }\n\n  async changeTextAt(paragraph, text) {\n    const sanitizedText = this._sanitizeAndTransformText(text)\n\n    const { offset, length, offsetExcludeDirectives } = paragraph\n\n    const paragraphOffset = paragraph.offsetExcludeDirectives\n    const paragraphLength = length - (paragraphOffset - offset)\n\n    const newDefintion =\n      locals.tempForm.data.definition.slice(0, paragraphOffset) +\n      sanitizedText +\n      locals.tempForm.data.definition.slice(paragraphOffset + paragraphLength)\n\n    console.log({ newDefintion })\n\n    await this.rebuild(newDefintion)\n\n    // const { offset, length } = placeholder\n\n\n    // // const fieldPlaceholder = locals.tempForm.data.definition\n    // //   .slice(offset, offset + length)\n    // //   .replace(/(?<=\\[).*(?=\\]\\[)/g, title.trim())\n\n    // const newDefintion =\n    //   locals.tempForm.data.definition.slice(0, offset) +\n    //   sanitizedText +\n    //   locals.tempForm.data.definition.slice(offset + length)\n\n    // console.log({ newDefintion })\n\n    // await this.rebuild(newDefintion)\n  }\n\n  async changeSectionAt(sectionIndex, title) {\n    const section = this._getSection(sectionIndex)\n    console.log(section)\n\n    const newDefintion =\n      locals.tempForm.data.definition.slice(0, section.offset) +\n      `# ${title || 'Header'}\\n` +\n      locals.tempForm.data.definition.slice(section.offsetExcludeTitle)\n\n    await this.rebuild(newDefintion)\n  }\n\n  async changeFieldAt(placeholder, title) {\n    const { offset, length } = placeholder\n\n    const fieldPlaceholder = locals.tempForm.data.definition\n      .slice(offset, offset + length)\n      .replace(/(?<=\\[).*(?=\\]\\[)/g, title.trim())\n\n    const newDefintion =\n      locals.tempForm.data.definition.slice(0, offset) +\n      fieldPlaceholder +\n      locals.tempForm.data.definition.slice(offset + length)\n\n    console.log({ newDefintion })\n\n    await this.rebuild(newDefintion)\n  }\n\n  _getSection(sectionIndex) {\n    return locals.tempForm.info.sections.find((section) => section.index === sectionIndex)\n  }\n\n  async rebuild(withDefintion) {\n    const current = this.currentPreview\n    this.currentPreview = this.nextPreview\n    this.nextPreview = current\n\n    const documentForm = await Aeppic.edit(document)\n\n    documentForm.data.definition = withDefintion\n\n    const oldData = locals.tempDocument?.data || {}\n\n    // FIXME: causes scroll reset\n    // locals.key += 1\n\n    // locals.tempDocument = null\n    // locals.tempForm = null\n\n    const newTempForm = Aeppic.buildTemporaryForm(documentForm)\n    const newDocument = await Aeppic.buildTemporaryEditableDocument(newTempForm)\n    newDocument.data = oldData\n\n    if (this.currentPreview === 'A') {\n      locals.tempFormA = newTempForm\n      locals.tempDocumentA = newDocument\n    } else if (this.currentPreview === 'B') {\n      locals.tempFormB = newTempForm\n      locals.tempDocumentB = newDocument\n    }\n\n    locals.tempDocument = newDocument\n    locals.tempForm = newTempForm\n\n    let oldScrollY = 0\n\n    if (current === 'A') {\n      oldScrollY = $refs.aeFormA.$el.scrollTop\n    } else if (current === 'B') {\n      oldScrollY = $refs.aeFormB.$el.scrollTop\n    }\n\n    Aeppic.setTimeout(() => {\n      if (this.currentPreview === 'A') {\n        locals.tempFormB = null\n        locals.tempDocumentB = null\n        $refs.aeFormA.$el.scrollTo(0, oldScrollY)\n      } else if (this.currentPreview === 'B') {\n        locals.tempFormA = null\n        locals.tempDocumentA = null\n        $refs.aeFormB.$el.scrollTo(0, oldScrollY)\n      }\n    }, 0)\n\n    // // FIXME: causes scroll reset when tempDocument changed\n\n    // // if (!locals.tempForm) {\n    //   locals.tempForm = newTempForm\n    // // }\n\n    // // if (!locals.tempDocument) {\n    //   locals.tempDocument = newDocument\n    // // }\n\n    locals.debug = { formdown: documentForm.data.definition }\n  }\n\n  async selectedTranslations() {\n    locals.mode = 'translate'\n\n    if (locals.translationsDocument) {\n      // already loaded/build translations document\n      return\n    }\n\n    let translations = await Aeppic.findOne(`p:${document.id} f.id:${this.FORMS.Translations}`)\n    let editableTranslations = null\n\n    if (translations) {\n      editableTranslations = await Aeppic.edit(translations)\n    } else {\n      editableTranslations = await Aeppic.new(this.FORMS.Translations, document.id)\n\n      editableTranslations.data.translations = this.generateTranslations()\n    }\n\n    locals.translationsDocument = editableTranslations\n  }\n\n  async regenerateTranslations() {\n    if (!packages.window.confirm('Übersetzungen überschreiben?')) {\n      return\n    }\n\n    locals.translationsDocument.data.translations = this.generateTranslations()\n\n    Aeppic._emitter.emit('bizpin:show-toast', {\n      title: 'Übersetzungen aktualisiert',\n      text: '',\n      timeout: 3000,\n    })\n  }\n\n  generateTranslations() {\n    const getLabels = (language = 'en') =>\n      locals.tempForm.getPlaceholders().map((placeholder) => {\n        return `${placeholder.label}:`\n\n        // NOTE: Customer did not want this right now.\n        // const translatedLabel = Aeppic.Translator.translateToLanguage(language, placeholder.label)\n\n        // const hasTranslation = translatedLabel !== placeholder.label\n\n        // if (hasTranslation) {\n        //   return `${placeholder.label}: ${translatedLabel}`\n        // }\n\n        // return `${placeholder.label}:`\n      })\n\n    function arrayToYAML(array, indentation = 0) {\n      let yamlString = ''\n      const indent = ' '.repeat(indentation) // Create the indentation string\n\n      array.forEach((item) => {\n        if (Array.isArray(item)) {\n          yamlString += `${indent}\\n${arrayToYAML(item, indentation + 2)}` // Increase indentation for nested arrays\n        } else {\n          yamlString += `${indent}${item}\\n` // Format each item as a YAML list item\n        }\n      })\n\n      return yamlString\n    }\n\n    return `\nen:\n${arrayToYAML(getLabels('en'), 2)}\n\nde:\n${arrayToYAML(getLabels('de'), 2)}\n`\n  }\n}\n","css":"","description":"","name":"rd:form-builder","packages":[{"id":"10843fbf-4f0c-416b-be7d-42d6bbd0ae68","text":"Window","v":"cc146accf5ec1930"}],"template":"<section class=\"flex flex-col h-full overflow-hidden\">\n  <section class=\"flex gap-2 items-center\">\n    <ae-form\n      class=\"flex-1\"\n      layout-id=\"1b2f20e1-a8fe-410d-870b-c2defa293958\"\n      :document=\"document\"\n      :view=\"{ only: { fields: ['name'] }}\"\n      :auto-save=\"true\"\n      :auto-save-after=\"1000\"\n      :readonly=\"!locals.editNameField\"\n    ></ae-form>\n\n    <ae-layout\n      layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n      :param-icon=\"locals.editNameField ? 'far fa-save' : 'far fa-edit'\"\n      param-text=\"\"\n      @selected=\"locals.editNameField = !locals.editNameField\"\n    ></ae-layout>\n  </section>\n  \n  <div class=\"flex flex-col gap-1 bg-neutral-100 rounded-md p-2\">\n    <div class=\"flex gap-2\">\n      <ae-layout\n        layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n        param-icon=\"far fa-edit text-fuchsia-400\"\n        param-text=\"Editor\"\n        param-border=\"border border-secondary-200\"\n        @selected=\"locals.mode = 'edit'\"\n        :param-primary=\"locals.mode === 'edit'\"\n      ></ae-layout>\n      <ae-layout\n        layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n        param-icon=\"far fa-clipboard-user text-fuchsia-400\"\n        param-text=\"Tester\"\n        param-border=\"border border-secondary-200\"\n        @selected=\"locals.mode = 'view'\"\n        :param-primary=\"locals.mode === 'view'\"\n      ></ae-layout>\n      <ae-layout\n        layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n        param-icon=\"far fa-debug text-fuchsia-400\"\n        param-text=\"Übersetzung\"\n        param-border=\"border border-secondary-200\"\n        @selected=\"controller.selectedTranslations()\"\n        :param-primary=\"locals.mode === 'translate'\"\n      ></ae-layout>\n      <ae-layout\n        v-if=\"Aeppic.Account?.data.allowDevMode\"\n        layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n        param-icon=\"far fa-debug text-fuchsia-400\"\n        param-text=\"Debug\"\n        param-border=\"border border-secondary-200\"\n        @selected=\"locals.mode = 'debug'\"\n        :param-primary=\"locals.mode === 'debug'\"\n      ></ae-layout>\n    </div> \n\n    <div class=\"flex gap-2\">\n      <ae-layout\n        v-if=\"locals.mode === 'edit' || locals.mode === 'translate'\"\n        layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n        param-icon=\"far fa-save text-fuchsia-600\"\n        param-text=\"Speichern\"\n        param-border=\"border border-secondary-200\"\n        @selected=\"controller.save()\"\n      ></ae-layout>\n\n      <ae-layout\n        v-if=\"locals.mode === 'translate'\"\n        layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n        param-icon=\"far fa-sync-alt text-red-600\"\n        param-text=\"Übersetzung neu generieren/überschreiben\"\n        param-border=\"border border-secondary-200\"\n        @selected=\"controller.regenerateTranslations()\"\n      ></ae-layout>\n    </div>\n  </div>\n\n  <div class=\"flex gap-2 overflow-hidden h-full w-full\">\n    <div v-if=\"locals.mode === 'edit'\" class=\"relative w-full h-full\">\n      <ae-form\n        ref=\"aeFormA\"\n        layout-id=\"38e54765-9dc4-4dc4-92c9-6f314052fe20\"\n        :document=\"locals.tempDocumentA\"\n        :form=\"locals.tempFormA\"\n        :xkey=\"locals.key + locals.mode\"\n        v-show=\"locals.tempDocumentA\"\n        :view=\"{ show: { hiddenSections: true, hiddenFields: true }}\"\n        @form-builder-add.native.stop=\"controller.handleFormBuilderAdd($event.detail)\"\n        @form-builder-remove.native.stop=\"controller.handleFormBuilderRemove($event.detail)\"\n        @form-builder-change.native.stop=\"controller.handleFormBuilderChange($event.detail)\"\n        class=\"xbasis-1/2 xw-0 overflow-scroll w-full absolute top-0 bottom-0 right-0 left-0\"\n      ></ae-form>\n\n      <ae-form\n        ref=\"aeFormB\"\n        v-show=\"locals.tempDocumentB\"\n        layout-id=\"38e54765-9dc4-4dc4-92c9-6f314052fe20\"\n        :document=\"locals.tempDocumentB\"\n        :form=\"locals.tempFormB\"\n        :xkey=\"locals.key + locals.mode\"\n        :view=\"{ show: { hiddenSections: true, hiddenFields: true }}\"\n        @form-builder-add.native.stop=\"controller.handleFormBuilderAdd($event.detail)\"\n        @form-builder-remove.native.stop=\"controller.handleFormBuilderRemove($event.detail)\"\n        @form-builder-change.native.stop=\"controller.handleFormBuilderChange($event.detail)\"\n        class=\"xbasis-1/2 xw-0 overflow-scroll w-full absolute top-0 bottom-0 right-0 left-0\"\n      ></ae-form>\n    </div>\n\n    <section\n        v-else-if=\"locals.mode === 'view'\"\n        class=\"overflow-scroll w-full\"\n    >\n      <ae-form\n        layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\"\n        :document=\"locals.tempDocument\"\n        :form=\"locals.tempForm\"\n        :key=\"locals.key + locals.mode\"\n        :view=\"{ show: { hiddenSections: true, xxhiddenFields: true }}\"\n        class=\"w-full max-w-xl mx-auto min-h-[500px]\"\n      ></ae-form>\n    </section>\n    <pre v-else-if=\"locals.mode === 'debug'\" class=\"overflow-scroll w-full\">\n      {{locals.debug.formdown}}\n    </pre>\n\n    <ae-form\n      v-else-if=\"locals.mode === 'translate'\"\n      layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\"\n      :document=\"locals.translationsDocument\"\n      class=\"xbasis-1/2 xw-0 overflow-hidden w-full h-full\"\n      :view=\"{ only: { fields: ['translations'] }}\"\n    ></ae-form>\n  </div>\n</section>\n\n<ae-layout layout-id=\"15576f91-6e36-4b37-9984-4980b1e7ef65\"\n   :param-force-warn=\"locals.warnLeave\"\n></ae-layout>"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"0c3f62a1-6e9e-4869-942b-93af888033e2","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2025-12-11T10:52:48+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"p":"form","previous":{"v":"3218e2301ea543d6"},"stamps":[],"t":1765450368133,"v":"2dd7e40011d12e35"},{"a":["system","fallback-designs"],"a_depth":2,"a_forms":["system-folder-form","folder"],"cloneOf":{"id":"b246c514-508f-4dd5-bf47-5d899c76549d","text":"rd:epic-page","v":"feacb4fcc16a3d54"},"created":{"at":"2025-08-22T12:26:45+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1755865605461,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      EpicPagesState: 'f62598b6-1cbf-433c-ad71-aca731261f42',\n      EpicPagesFormFallbackDesign: '38b0b6a1-46f6-41ed-ac20-4144aee4d57f',\n    }\n\n    locals.loading = true\n\n    locals.form = null\n    locals.document = null\n    locals.newFormFallbackDesign = null\n    locals.childDesignOfForm = null\n\n    locals.parameters = []\n    locals.parametersAsParams = {}\n\n    locals.documentSearchSettings = {\n      filter: {\n        base: `a:0fca9d35-a463-4c27-9d65-47200435e849`,\n        targetDocument: document,\n        // ancestorForm: params.ancestorForm,\n        // queryLimitCommand: params.queryLimitCommand,\n        // ancestorSearchLimit: 0,\n        // ancestorId: params.ancestorId,\n        // parentId: params.parentId,\n        // ancestorIndex: params.ancestorIndex,\n        // formIds: params.forms,\n      },\n      search: { \n        size: 20,\n        sort: [{\n          field: 'data.name',\n          descending: false\n        },\n        {\n          field: 'modified.at',\n          descending: true\n        }],\n        searchAllFields: false,\n        includeHidden: params.includeHidden,\n      },\n    }\n\n    // == async below ==\n\n    locals.newFormFallbackDesign = await Aeppic.new(this.FORMS.EpicPagesFormFallbackDesign, document)\n    locals.childDesignOfForm = await Aeppic.find(Aeppic.Query.children(document).form('design-form').where('data.name').is(''))\n\n    // if (params.state) {\n    //   locals.state = await Aeppic.edit(params.state) \n\n    //   try {\n    //     const stateParameters = JSON.parse(locals.state.data.parameters)\n\n    //     for (const key in stateParameters) {\n    //       const value = stateParameters[key]\n\n    //       const p = locals.parameters.find(p => p.name === key)\n\n    //       if (p) {\n    //         p.value = value\n    //       }\n    //     }\n    //   } catch (err) {\n    //     console.error(`Failed to parse parameters`, err)\n    //   }\n    // } else {\n    //   locals.state = await Aeppic.new(this.FORMS.EpicPagesState, params.newStateLocation || document.id)\n\n    //   if (params.placeholderDocumentForm) {\n    //     locals.placeholderDocument = await Aeppic.new(params.placeholderDocumentForm, params.newStateLocation || document.id)\n    //   }\n    // }\n\n    // if (locals.placeholderDocument) {\n    //   locals.document = locals.placeholderDocument\n    // } else {\n    //   locals.document = locals.state.data.document.id ? await Aeppic.get(locals.state.data.document) : await Aeppic.get('root')\n    // }\n\n    locals.loading = false\n  }\n\n\n  selectedDocument(doc) {\n    locals.document = doc\n    locals.state.addReference('document', doc)\n  }\n\n  async saveState() {\n    locals.state.data.parameters = JSON.stringify(locals.parametersAsParams)\n\n    Aeppic.save(locals.state)\n  }\n\n  async saveFormFallback() {\n    Aeppic.save(locals.newFormFallbackDesign)\n  }\n\n  get isOverviewPage() {\n    if (!locals.state) {\n      return null\n    }\n\n    return !locals.state.t\n  }\n}\n","css":"._CSS-stripes {\n    background-color: #e879f91a;\n    background-image: linear-gradient(135deg, #d946ef80 10%, #0000 0, #0000 50%, #d946ef80 0, #d946ef80 60%, #0000 0, #0000);\n    background-size: 7.07px 7.07px;\n}","description":"","name":"rd:form-new-epic-fallback-design","packages":[],"parameters":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"parametersTypesCardinality":[],"template":"<div v-if=\"!locals.loading\" class=\"flex gap-4\">\n  <div class=\"flex flex-col gap-4 flex-1\">\n    <section class=\"flex flex-col\">\n      <div class=\"flex gap-2 bg-emerald-50 text-emerald-600 p-2 mb-2\">{{data.name}} ({{document.id}})\n        <div class=\"hide-ci xbg-red-500 flex gap-2\">\n            <ae-layout\n              layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n              @selected=\"Aeppic.copyToClipboard(document.id)\"\n              param-icon=\"far fa-copy\"\n              param-border=\"border border-secondary-300\"\n              param-text=\"Form Id\"\n            ></ae-layout>\n        </div>  \n      </div>\n      \n\n      <!-- <div class=\"flex gap-1\">\n        <div>State</div>\n\n        <div v-if=\"controller.isOverviewPage\" class=\"font-bold text-red-500\">(NEU)</div>\n        <ae-form\n          class=\"flex-1\"\n          :document=\"locals.state\"\n          layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\"\n          :view=\"{only: { fields: ['name', 'document']}}\"\n        ></ae-form>\n\n        <ae-layout\n          layout-id=\"ef23b6bd-ec74-4701-ab8d-71a6d67fd9e4\"\n          @selected=\"controller.selectedDocument($event)\"\n          ref=\"selectionButton\"\n          :params=\"{ \n                          settings: locals.documentSearchSettings,\n                          icon: params.icon || 'fa fa-angle-down', \n                          xhideButton: true,\n                        }\"\n        ></ae-layout>\n        <ae-layout\n          layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n          param-icon=\"far fa-save\"\n          param-text=\"Save\"\n          @selected=\"controller.saveState()\"\n        ></ae-layout>\n      </div> -->\n\n      <div>New form fallback design</div>\n\n      <div class=\"flex gap-1\">\n        <ae-form\n          class=\"flex-1\"\n          :document=\"locals.newFormFallbackDesign\"\n          layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\"\n        ></ae-form>\n\n        <ae-layout\n          layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n          param-icon=\"far fa-save\"\n          param-text=\"Save\"\n          @selected=\"controller.saveFormFallback()\"\n        ></ae-layout>\n      </div>\n    </section>\n\n    <!-- <template v-if=\"controller.isOverviewPage\">\n      <section class=\"w-full divide-y\">\n        <div class=\"text-xl\">Parameters</div>\n        <div class=\"grid grid-cols-4\">\n          <div>Name</div>\n          <div>Description</div>\n          <div>Type</div>\n          <div>Controls</div>\n        </div>\n\n        <div v-if=\"locals.parameters.length === 0\">No parameters configured. Add in design {{document.id}}</div>\n\n        <div v-for=\"(param, index) of locals.parameters\" class=\"grid grid-cols-4\">\n          <div class=\"flex flex-col\">\n            <span data-name class=\"font-bold\"> {{param.name}} </span>\n          </div>\n          <p data-description>{{param.description}}</p>\n          <div>{{param.type}}</div>\n          <div data-controls class=\"flex flex-col gap-1\">\n            <div class=\"font-mono\">control: {{ param.control }}</div>\n            <div class=\"font-mono\">cardinality: {{ param.cardinality }}</div>\n          </div>\n        </div>\n      </section>\n    </template>\n    <template v-else>\n      <section v-for=\"breakpoint of ['24', '32', '40', '48', '64', '80', '96', 'full']\">\n        <label class=\"text-neutral-600 text-xs\">w-{{ breakpoint }}</label>\n        <div class=\"_CSS-stripes p-1\">\n          <ae-design\n            :name=\"data.name\"\n            :document=\"locals.document\"\n            class=\"flex-1\"\n            :class=\"['w-' + breakpoint]\"\n            :params=\"locals.parametersAsParams\"\n            :watch=\"false\"\n          ></ae-design>\n        </div>\n      </section>\n    </template> -->\n  </div>\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"fa87a9a7e4aa686c"},"id":"7ccdeeef-b978-4aa5-a0cb-5f0dbcf3459c","inheritedLocks":[null,null,null],"locks":[],"meta":{},"modified":{"at":"2026-02-09T14:44:32+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"b246c514-508f-4dd5-bf47-5d899c76549d","text":"rd:epic-page","v":"feacb4fcc16a3d54"},"p":"fallback-designs","previous":{"v":"ff873f2da8be7d78"},"stamps":[],"t":1770648272585,"v":"987c16b53ca8cdbd"},{"id":"79aef377-4824-4a0c-b9cf-8abf992d1cab","v":"d523fcf7e662e01b","previous":{"v":"5502e558498e4fc7"},"p":"7be5f2c5-206b-4ab6-9d4d-c4834baf8e32","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:GENERIC_TASK_BASED","template":"<!-- REDESIGN 2.1 -->\n<div class=\"h-full w-full overflow-auto flex overflow-hidden\">\n  <div class=\"flex-1 basis-2/3 p-2 gap-8 overflow-x-hidden overflow-y-auto pb-6\">\n    <div class=\"flex flex-col gap-4 max-w-5xl mx-auto w-full h-full\">\n      <section class=\"flex flex-col py-2 bg-white dark:bg-slate-800 px-4 border rounded-md shadow\">\n        <div class=\"font-bold flex gap-2 mb-2\">{{ controller.labels.inProgressTitle }}</div>\n\n        <!-- <div class=\"bg-mint-500\">\n          foobar\n        </div> -->\n\n        <ae-list\n          list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\"\n          :documents=\"locals.inProgressByMeDocuments\"\n          :watch-documents=\"false\"\n          @selected=\"Aeppic.drillInto($event, arguments[1])\"\n          param-gap=\"medium\"\n          param-design=\"rd:search-card\"\n          :param-design-params=\"{ showAction: false, hideIcon: true }\"\n          :param-empty-text=\"controller.labels.inProgressEmpty\"\n        ></ae-list>\n      </section>\n\n      <section\n        class=\"flex flex-col py-2 bg-white dark:bg-slate-800 px-4 border rounded-md shadow\"\n        v-if=\"locals.overdueTasksDocuments.length > 0\"\n      >\n        <div class=\"flex items-center mb-2\">\n          <div class=\"font-bold text-lg p-2\">{{ controller.labels.overdueTitle }}</div>\n\n          <ae-control\n            name=\"rd:help\"\n            :document=\"document\"\n            :param-text=\"controller.labels.overdueHelpText\"\n          ></ae-control>\n        </div>\n\n        <ae-list\n          list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\"\n          :documents=\"locals.overdueTasksDocuments\"\n          :watch-documents=\"false\"\n          @selected=\"Aeppic.drillInto($event, arguments[1])\"\n          param-gap=\"medium\"\n          param-design=\"rd:search-card\"\n          :param-design-params=\"{ showAction: false, hideIcon: true }\"\n          @size=\"locals.overdueTasksSize = $event\"\n        ></ae-list>\n      </section>\n\n      <section\n        class=\"flex flex-col py-2 bg-white dark:bg-slate-800 px-4 border rounded-md shadow\"\n        v-if=\"locals.overdueTasksOtherAssigneesDocuments.length > 0\"\n      >\n        <div class=\"flex items-center mb-2\">\n          <div class=\"font-bold text-lg p-2\">{{ controller.labels.overdueOtherTitle }}</div>\n\n          <ae-control\n            name=\"rd:help\"\n            :document=\"document\"\n            :param-text=\"controller.labels.overdueOtherHelpText\"\n          ></ae-control>\n        </div>\n\n        <ae-list\n          list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\"\n          :documents=\"locals.overdueTasksOtherAssigneesDocuments\"\n          :watch-documents=\"false\"\n          @selected=\"Aeppic.drillInto($event, arguments[1])\"\n          param-gap=\"medium\"\n          param-design=\"rd:search-card\"\n          :param-design-params=\"{ showAction: false, hideIcon: true }\"\n        ></ae-list>\n      </section>\n\n      <div v-if=\"!params.mainSectionAsList\" class=\"flex-1\"></div>\n\n      <ae-design\n        v-for=\"additionalDesign of params.additionalDesigns\"\n        :name=\"additionalDesign\"\n        :document=\"document\"\n        :param-selected-user=\"locals.selectedUser\"\n      ></ae-design>\n    </div>\n  </div>\n\n  <ae-layout\n    v-if=\"params.windowWidth >= 1280\"\n    layout-id=\"e86fc805-7f28-49f1-a13a-f4faa7b71adc\"\n    class=\"mt-2 basis-1/3 grow-0 overflow-hidden shadow border-l border-t rounded-tl-md\"\n    :param-document=\"document\"\n  ></ae-layout>\n</div>","css":"","controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Employee: 'd2ac3563-3c3f-4f02-b923-9b67abf98d10',\n      CoreAufgabe: '0deb4864-cbb6-420c-99ee-337c7444ab24',\n      EnergieProjekt: '98c77209-1245-43d6-90b5-8625183f470c',\n      AufgabeEnergyLeistung: '88b1f60e-71f6-46f5-94ea-3d7bbe972950',\n    }\n\n    this.today = Aeppic.DateTime.local()\n    this.baseDate = Aeppic.DateTime.local()\n    locals.calendar = {\n      date: '',\n      attributes: [],\n      attributeToday: {\n        key: 'today',\n        highlight: {\n          fillMode: 'light',\n        },\n        dates: new Date(),\n      },\n    }\n\n    locals.selectedUser = {\n      profileId: Aeppic.ProfilePage.id,\n      accountId: Aeppic.Account.id,\n    }\n\n    locals.selectors = []\n    locals.activeSelector = null\n    locals.workWeekSelector = null\n    locals.buttons = [\n      {\n        key: 'total',\n        text: 'Alle Aufgaben',\n        color: 'bg-sky-300',\n      },\n      {\n        key: 'inProgress',\n        text: 'In Bearbeitung',\n        color: 'bg-orange-300',\n      },\n      {\n        key: 'closed',\n        text: 'Erledigt',\n        color: 'bg-green-300',\n      },\n    ]\n\n    locals.stats = {\n      total: 0,\n      totalPercent: 0,\n      closed: 0,\n      closedPercent: 0,\n      inProgress: 0,\n      inProgressPercent: 0,\n    }\n\n    locals.inProgressByMe = ''\n    locals.inProgressByMeSort = []\n    locals.inProgressByMeDocuments = []\n\n    locals.overdueTasks = ''\n    locals.overdueTasksSort = []\n    locals.overdueTasksDocuments = []\n\n    locals.overdueTasksOtherAssignees = ''\n    locals.overdueTasksOtherAssigneesSort = []\n    locals.overdueTasksOtherAssigneesDocuments = []\n\n    $on('toolbar', async (type) => {\n      console.log('EVENT toolbar', type)\n\n      if (type.startsWith('employee-')) {\n        await this.updateQueries(type.replace('employee-', ''))\n      }\n    })\n\n    await this.updateQueries(locals.selectedUser.profileId)\n  }\n\n  async updateQueries(paramEmployee) {\n    const employee = await Aeppic.get(paramEmployee)\n    const account = await Aeppic.getAccountForProfilePage(employee)\n\n    locals.selectedUser = {\n      profileId: employee.id,\n      accountId: account.id,\n    }\n\n    // TODO: implement\n    // locals.togglePinsMode = false\n\n    const taskDefinitions = params.taskDefinitions || [\n      {\n        form: this.FORMS.CoreAufgabe,\n        dueStart: 'bisStart',\n        dueEnd: 'bisEnde',\n        dueDateTime: 'bisDateTime',\n        done: 'erledigt',\n        responsible: 'verantwortlich',\n        inProgress: 'inBearbeitung',\n        priority: 'prioritaet',\n      },\n      {\n        form: this.FORMS.AufgabeEnergyLeistung,\n        dueStart: 'bisStart',\n        dueEnd: 'bisEnde',\n        dueDateTime: 'bisDateTime',\n        done: 'erledigt',\n        responsible: 'verantwortlich',\n        inProgress: 'inBearbeitung',\n        priority: 'prioritaet',\n      },\n    ]\n\n    // locals.inProgressByMe = `a:${document.a[0]} (f.id:${this.FORMS.CoreAufgabe} OR f.id:${this.FORMS.AufgabeEnergyLeistung}) data.erledigt:false data.inBearbeitung:true data.verantwortlich.id:${locals.selectedUser.profileId}`\n    locals.inProgressByMe = taskDefinitions\n      .map(\n        (def) =>\n          `(a:${document.a[0]} f.id:${def.form} data.${def.done}:false data.${def.inProgress}:true data.${def.responsible}.id:${locals.selectedUser.profileId})`\n      )\n      // .join(' OR ')\n    locals.inProgressByMeSort = [\n      { field: 'data.bisStart', descending: true },\n      { field: 'data.name', descending: false },\n      { field: 'data.prioritaet', descending: true },\n      'id',\n    ]\n\n    // locals.overdueTasks = `a:${document.a[0]} (f.id:${this.FORMS.CoreAufgabe} OR f.id:${this.FORMS.AufgabeEnergyLeistung}) data.verantwortlich.id:${locals.selectedUser.profileId} data.erledigt:false data.bisStart:[now-5d TO now]`\n    locals.overdueTasks = taskDefinitions\n      .map(\n        (def) =>\n          `(a:${document.a[0]} f.id:${def.form} data.${def.done}:false data.${def.responsible}.id:${locals.selectedUser.profileId} data.${def.dueStart}:[now-5d TO now])`\n      )\n      // .join(' OR ')\n\n    locals.overdueTasksSort = [\n      { field: 'data.bisStart', descending: true },\n      { field: 'data.name', descending: false },\n      { field: 'data.prioritaet', descending: true },\n      'id',\n    ]\n\n    // locals.overdueTasksOtherAssignees = `a:${document.a[0]} (f.id:${this.FORMS.CoreAufgabe} OR f.id:${this.FORMS.AufgabeEnergyLeistung}) created.by:\"${locals.selectedUser.accountId}\" data.erledigt:false data.bisStart:[now-5d TO now] AND NOT data.verantwortlich:${locals.selectedUser.profileId}`\n    locals.overdueTasksOtherAssignees = taskDefinitions\n      .map(\n        (def) =>\n          `(a:${document.a[0]} f.id:${def.form} created.by:\"${locals.selectedUser.accountId}\" data.${def.done}:false data.${def.dueStart}:[now-5d TO now])`\n      )\n      // .join(' OR ')\n\n    locals.overdueTasksOtherAssigneesSort = [\n      { field: 'data.bisStart', descending: true },\n      { field: 'data.name', descending: false },\n      { field: 'data.prioritaet', descending: true },\n      'id',\n    ]\n    const overdueTasksOtherAssigneesFilterFunc = (task) => {\n      const definition = taskDefinitions.find((def) => def.form === task.f.id)\n      const responsible = Array.isArray(task.data[definition.responsible])\n        ? task.data[definition.responsible]\n        : [task.data[definition.responsible]]\n\n      const taskIsAssignedToSelectedUser = !!responsible.find(\n        (responsible) => responsible.id === locals.selectedUser.profileId\n      )\n\n      return !taskIsAssignedToSelectedUser\n    }\n\n    // NOTE: DO NOT USE ' OR ' queries for now. Run every query by themself, they will be quick. Or extremly slow when combined via OR\n    const result = await Promise.all([\n      ...locals.inProgressByMe.map(inProgressByMe => Aeppic.find(inProgressByMe, { size: 999, sort: locals.inProgressByMeSort })),\n      ...locals.overdueTasks.map(overdueTasks => Aeppic.find(overdueTasks, { size: 999, sort: locals.overdueTasksSort })),\n      ...locals.overdueTasksOtherAssignees.map(overdueTasksOtherAssignees => Aeppic.find(overdueTasksOtherAssignees, { size: 999, sort: locals.overdueTasksOtherAssigneesSort })), \n    ])\n\n    const inProgressByMe = result.slice(0,2).flat()\n    const overdueTasks = result.slice(2,4).flat()\n    const overdueTasksOtherAssignees = result.slice(4,6).flat()\n\n\n    console.log({\n      inProgressByMe,\n      overdueTasks,\n      overdueTasksOtherAssignees\n    })\n\n    locals.inProgressByMeDocuments = inProgressByMe.flat()\n    locals.overdueTasksDocuments = overdueTasks.flat()\n    locals.overdueTasksOtherAssigneesDocuments = overdueTasksOtherAssignees.flat().filter(overdueTasksOtherAssigneesFilterFunc)\n\n    await this._updateTasks()\n  }\n\n  // updateSelectors() {\n  //   const today = Aeppic.DateTime.local()\n  //   const todayWeekDay = today.weekday\n\n  //   const monday = this.baseDate.startOf('week')\n  //   const isCurrentWorkWeek = today.weekNumber === monday.weekNumber\n\n  //   const selectors = []\n\n  //   for(let i = 0; i <= 6; i+=1) {\n  //     selectors.push(this.buildSelector({\n  //       label: isCurrentWorkWeek && i === todayWeekDay - 1 ? 'Heute' : monday.plus({ days: i }).weekdayLong,\n  //       start: monday.plus({ days: i }),\n  //       end: monday.plus({ days: i }),\n  //       isToday: isCurrentWorkWeek && i === todayWeekDay - 1\n  //     }))\n  //   }\n\n  //   const workWeekSelector = {\n  //     label: `KW ${monday.weekNumber}`,\n  //     start: monday,\n  //     end: monday.endOf('week')\n  //   }\n\n  //   selectors.push(workWeekSelector)\n\n  //   locals.workWeekSelector = workWeekSelector\n\n  //   locals.selectors = selectors\n  //   locals.activeSelector = isCurrentWorkWeek ? locals.selectors[today.weekday - 1] : workWeekSelector\n  // }\n\n  buildSelector(options) {\n    const { label, icon, start, end, isToday } = options\n\n    const selector = {\n      key: Aeppic.uuid(),\n      label: label || '',\n      icon: icon || '',\n      start: start || null,\n      end: end || null,\n      isToday,\n    }\n\n    return selector\n  }\n\n  isWeeklySelector(selector) {\n    return selector.end && selector.end.valueOf() !== selector.start.valueOf()\n  }\n\n  changeBaseDateBy(duration) {\n    this.baseDate = this.baseDate.plus(duration)\n\n    this.updateSelectors()\n    this._updateTasks()\n  }\n\n  async _updateTasks() {\n    const start = this.baseDate.startOf('week').minus({ days: 100 }).endOf('day').toFormat('yyyy-MM-dd')\n    const end = this.baseDate.endOf('week').toFormat('yyyy-MM-dd')\n\n    console.log({ start, end })\n\n    const query = `a:${document.a[0]} (f.id:${this.FORMS.CoreAufgabe} OR f.id:${this.FORMS.AufgabeEnergyLeistung}) data.verantwortlich.id:${locals.selectedUser.profileId} (data.bisStart:[${start} TO ${end}] OR data.bisStart:[${start} TO ${end}])`\n\n    this._updateTasksStats(await Aeppic.find(query, { size: 999 }))\n\n    // this.subscription = Aeppic.updateSubscription(this.subscription, query, { size: 999 }, (tasks) => {\n    //   console.log(tasks)\n    //   this._updateTasksStats(tasks)\n    // })\n  }\n\n  _updateTasksStats(tasks) {\n    const stats = {\n      total: tasks.length,\n      totalPercent: 100,\n      closed: 0,\n      closedPercent: 0,\n      inProgress: 0,\n      inProgressPercent: 0,\n      open: 0,\n    }\n\n    for (const task of tasks) {\n      if (task.data.erledigt) {\n        stats.closed += 1\n      } else if (task.data.inBearbeitung) {\n        stats.inProgress += 1\n      } else {\n        stats.open += 1\n      }\n    }\n\n    const percentilePerTask = 100 / stats.total\n    stats.closedPercent = percentilePerTask * stats.closed\n    stats.inProgressPercent = percentilePerTask * stats.inProgress\n\n    locals.stats = stats\n\n    locals.calendar.attributes = []\n\n    const attributes = []\n\n    for (const task of tasks) {\n      const entry = {\n        key: task.id,\n        dot: true,\n        dates: Aeppic.DateTime.fromISO(task.data.bisStart).toJSDate(),\n        popover: true,\n      }\n      attributes.push(entry)\n    }\n\n    locals.calendar.attributes.push(...attributes)\n\n    // if (this._chart) {\n    //   this._chart.destroy()\n    // }\n\n    // console.log(packages)\n\n    // const data = []\n    // const backgroundColor = []\n    // const labels = []\n\n    // if (locals.stats.open) {\n    //   data.push(locals.stats.open)\n    //   backgroundColor.push('#737373')\n    //   labels.push('Unerledigte')\n    // }\n\n    // if (locals.stats.inProgress) {\n    //   data.push(locals.stats.inProgress)\n    //   backgroundColor.push('#eab308')\n    //   labels.push('In Bearbeitung')\n    // }\n\n    // if (locals.stats.done) {\n    //   data.push(locals.stats.done)\n    //   backgroundColor.push('#16a34a')\n    //   labels.push('Erledigt')\n    // }\n\n    // this._chart = new packages.Chart($refs.canvas, {\n    //   type: 'polarArea',\n    //   data: {\n    //     datasets: [{\n    //       data,\n    //         backgroundColor,\n    //     }],\n    //     // These labels appear in the legend and in the tooltips when hovering different arcs\n    //     labels,\n    //   },\n    //   options: {\n    //     legend: {\n    //       display: false,\n    //     }\n    //   }\n    // })\n  }\n\n  get labels() {\n    const defaultLabels = {\n      inProgressTitle: \"Aufgaben in Bearbeitung\",\n      inProgressEmpty: \"Keine Aufgaben in Bearbeitung\",\n      overdueTitle: \"Überfällige Aufgaben\",\n      overdueHelpText: \"Mir zugewiesene überfällige Aufgaben der letzten 5 Tage werden hier angezeigt.\\n\\nWeitere/ältere überfällige Aufgaben lassen sich im Projekte-Modul einsehen.\",\n      overdueOtherTitle: \"Überfällige Aufgaben (andere Verantwortliche)\",\n      overdueOtherHelpText: \"Von mir erstellte überfällige Aufgaben, welche **anderen Verantwortlichen** zugewiesene wurden, der letzten 5 Tage werden hier angezeigt.\"\n    }\n\n    return {\n      ...defaultLabels,\n      ...(params.labels || {})\n    }\n  }\n\n  attributesToDocuments(attributes) {\n    return attributes.map((a) => ({ id: a.key }))\n  }\n\n  destroy() {\n    this._chart?.destroy()\n  }\n}\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-05-06T14:57:20+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"modified":{"at":"2026-05-19T11:43:44+00:00","by":"09763886-6748-4a56-8e0e-54a2293ee96b","backedBy":"","impersonatedBy":"","from":"","client":"server"},"t":1779191024480,"ct":1715007440931,"a_depth":4,"a":["apps","599db2de-4e07-4722-98bd-7f42d498b352","79718664-ed22-4b52-9c10-037881df3578","7be5f2c5-206b-4ab6-9d4d-c4834baf8e32"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"835cdb5c-9c9c-4a51-8f66-566e824f389e","v":"f56053963ae3e447","cloneOf":{"id":"399d0e58-065f-47f2-a8b6-96c3389e7d4a","v":"fde8d09d428b75c7","text":"rd:users"},"originalCloneOf":{"id":"399d0e58-065f-47f2-a8b6-96c3389e7d4a","v":"fde8d09d428b75c7","text":"rd:users"},"previous":{"v":"35978ce14825cffc"},"p":"81939b86-a48e-480e-afd1-cb2907568550","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"rd:groups","template":"<div class=\"h-full w-full lg:pt-2 lg:pb-10 overflow-hidden flex flex-col\">\n  <ae-design name=\"rd:toolbar\" :document=\"document\"></ae-design>\n  \n  <div class=\"mx-auto w-full flex flex-col divide-y bg-white overflow-auto bg-white max-w-5xl px-4 py-2 lg:shadow-md lg:rounded-md\">\n    <div v-for=\"group of locals.rootGroups\"\n        :key=\"group.id\"\n        @click=\"Aeppic.drillInto(group)\"\n        class=\"py-4 first:pt-0\"\n    >\n      <ae-design name=\"security:rd-card\" :document=\"group\" @selected=\"Aeppic.drillInto($event)\"></ae-design>\n      \n      <ae-design class=\"mx-10\" name=\"rd:sub-groups\" :document=\"group\" @selected=\"Aeppic.drillInto($event)\"></ae-design>\n    </div>\n  </div> \n</div>\n\n<!-- <ae-control name=\"security:group\" :document=\"group\" :readonly=\"true\"></ae-control> -->\n  ","css":"","controller":"class Controller {\n  init() {\n    locals.realm = document.p\n    locals.sortedGroups = []\n    locals.rootGroups = [] \n    \n    Aeppic.subscribe(`a:${locals.realm} f.id:group`, { sort: 'data.name' }, (docs) => {\n      const rootGroups = []\n\n      docs.forEach(group => {\n        if (!group.data.group?.id) {\n          rootGroups.push(group)\n        }\n      })\n \n      locals.sortedGroups = docs \n      locals.rootGroups = rootGroups\n    })\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-01-05T14:28:26+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-12-13T11:46:00+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1702467960396,"ct":1672928906377,"a_depth":5,"a":["system","b2533f7b-ea85-4680-99ed-d8e11be641b9","0e6939d6-9b93-4165-b6bd-977e4da881f3","627f5b74-3baf-45f8-a1d3-a5936839b844","81939b86-a48e-480e-afd1-cb2907568550"],"a_forms":["system-folder-form","folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"a":["system","04632e3e-9132-4927-b91d-3c28d1afe3e9","e9f6cbce-0b0f-4ef3-a7cf-ae0b2ddbce03","229af740-4ce1-49f9-b37b-333381dea3ce"],"a_depth":4,"a_forms":["system-folder-form","folder","form","form"],"cloneOf":{"id":"d88dc7ef-80d6-4155-aa1a-673dda227d7f","text":"rd:title","v":"initial"},"created":{"at":"2025-11-18T08:20:59+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"ct":1763454059228,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:header","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"Level 1: {{data.name}}"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"602d96df-9172-40f1-930e-c6002bec55ff","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-11-18T13:51:09+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"d88dc7ef-80d6-4155-aa1a-673dda227d7f","text":"rd:title","v":"initial"},"p":"229af740-4ce1-49f9-b37b-333381dea3ce","previous":{"v":"3c6d3a5a78ba8580"},"stamps":[],"t":1763473869585,"v":"095ec06c952c61e8"},{"a":["apps","77ee8815-2c3a-4bb5-abd9-90541a545a24","1cc4b977-c14d-4587-af47-d6ac230f60b3"],"a_depth":3,"a_forms":["folder","application-form","design-folder"],"created":{"at":"2022-09-19T09:35:44+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1720684627136,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.enabled = false\n    locals.enabled = (Aeppic.Account && Aeppic.Account.data.isAdmin) || await Aeppic.Preferences.getSetting('bizpin:generic:enableHistory')\n\n    if (!locals.enabled) {\n      return\n    }\n\n    locals.loading = false\n    locals.canEdit = false\n\n    locals.historicDocuments = []\n    locals.showHistoricDocument = null\n    locals.showHistoricDocumentForm = null\n\n    const canEdit = await Aeppic.canEdit(document)\n\n    console.log({ canEdit })\n    locals.canEdit = Aeppic.Account && Aeppic.Account.data.isGroupAccount === false && canEdit === true \n  }\n\n  async show() {\n    $emit('open')\n\n    $refs.dialog.show()\n\n    await this.getHistory()\n  }\n\n  close() {\n  }\n\n  async showHistoricDocument(event) {\n    locals.showHistoricDocumentForm = await Aeppic.getForm(event.f)\n    locals.showHistoricDocument = event\n \n    $refs.documentDialog.$emit('show')\n  }\n\n  async getHistory() {\n    locals.loading = true\n\n    try {\n      const history = await Aeppic.fetch(`/api/docs/${document.id}/history`)\n      const documents = (await history.text()).trim().split('\\n').filter(d => d != null).map(d => JSON.parse(d))\n      console.log(documents)\n\n      locals.historicDocuments = documents\n    } catch (e) {\n      locals.historicDocuments = []\n    }\n\n    locals.loading = false\n  }\n} ","css":"._CSS-spinner {\n  height: var(--ae-size-7);\n  width: var(--ae-size-7);\n}\n\n._CSS-dialog__header {\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n}","description":"","name":"rd:history-button","packages":[],"template":"<template v-if=\"locals.enabled\">\n    \n  <ae-layout  layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n              param-icon=\"far fa-history\"\n              @selected=\"controller.show()\"\n              :param-disabled=\"!(document.a && document.a.length > 1 && locals.canEdit)\"\n              param-text=\"Historie\"\n              param-classes=\"w-full\"\n  ></ae-layout> \n\n  <ae-dialog ref=\"dialog\" :backdrop-close=\"false\">\n    <div slot=\"header\" slot-scope=\"scope\" class=\"_CSS-dialog__header\">\n      <span>Historie</span>\n      <button class=\"ae-button\" @click.capture=\"scope.close()\">\n        <ae-icon class=\"fad fa-times\"></ae-icon>\n      </button>\n    </div>\n    <template v-slot:body>\n      <ae-layout layout-id=\"fefa8352-0e9a-4ba8-8349-c9402ac8aefa\" v-if=\"locals.loading\" class=\"_CSS-spinner\"></ae-layout>\n      <ae-list  v-show=\"!locals.loading\"\n                :watch-documents=\"false\"\n                :documents=\"locals.historicDocuments\"\n                list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\"\n                param-design=\"history-card\"\n                style=\"width: auto;\"\n                @selected=\"controller.showHistoricDocument($event)\"\n                :param-no-watch=\"true\"\n                param-empty-text=\"Keine Versionen abrufbar\"\n      ></ae-list>\n    </template>\n    <div slot=\"commands\" slot-scope=\"scope\" class=\"_CSS-dialog__commands\">\n    </div>\n  </ae-dialog> \n\n  <ae-layout layout-id=\"38182e5a-9f4e-45c8-b886-eacf413041ab\" \n              ref=\"documentDialog\" \n              :param-document=\"locals.showHistoricDocument\" \n              :param-form=\"locals.showHistoricDocumentForm\" \n              :param-show-path=\"true\"\n              param-dialog-height=\"95vh\"\n  ></ae-layout>\n</template>\n"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"f6e217ab-128e-4aab-8fbc-4ed83afcd4df","inheritedLocks":[null,null,null,null],"locks":[],"meta":{},"modified":{"at":"2026-02-17T12:14:57+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"p":"1cc4b977-c14d-4587-af47-d6ac230f60b3","previous":{"v":"e12a91226304f1aa"},"stamps":[],"t":1771330497017,"v":"0eb5e99242a23396"},{"a":["apps","45ada186-e9fd-451d-9dbd-2defc0b4f86f","4ec6a0e5-cf2d-4095-9b70-2e31a64d5679","dbee6e16-d63a-493c-bba6-505f79918f9f"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2023-03-17T13:32:14+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1679059962879,"data":{"aliases":[],"controller":"class Controller {\n  init() {\n    this.documentId = document.id\n  }\n\n  get title() {\n    if (data?.name && data?.datei?.type) {\n      return `${data.name} (${data.datei.type})`\n    }\n\n    return data.name || ''\n  }\n}","css":"","description":"","name":"rd:icon","packages":[],"template":"<div  class=\"flex items-center justify-center rounded-full bg-gray-200 text-gray-700 text-xs\"\r\n      :class=\"[params.size ? 'h-' + params.size + ' w-' + params.size : 'h-6 w-6']\"\r\n      :title=\"controller.title\">\r\n  <div class=\"\" v-if=\"data?.datei?.type\">\r\n    <ae-icon v-if=\"data.datei.type === 'application/pdf'\" class=\"fa fa-file-pdf\" style=\"color:#FF0000\"></ae-icon>\r\n    <ae-icon v-else-if=\"data.datei.type.startsWith('image')\" class=\"fa fa-image\"></ae-icon>\r\n    <ae-icon v-else-if=\"data.datei.type.includes('word') || data.datei.type.includes('.text')\" class=\"fa fa-file-word\" style=\"color:#2b579a\"></ae-icon>\r\n    <ae-icon v-else-if=\"data.datei.type.startsWith('video/')\" class=\"fa fa-file-video\"></ae-icon>\r\n    <ae-icon v-else-if=\"data.datei.type.includes('spreadsheet')\" class=\"fa fa-file-excel\" style=\"color:#217346\"></ae-icon>\r\n    <ae-icon v-else-if=\"data.datei.type.includes('powerpoint') || data.datei.type.includes('.presentation')\" class=\"fa fa-file-powerpoint\" style=\"color:#d24726\"></ae-icon>\r\n    <ae-icon v-else-if=\"data.datei.type.includes('mspublisher')\" class=\"fa fa-file-powerpoint\" style=\"color:#00837a\"></ae-icon>\r\n    <ae-icon v-else-if=\"data.datei.type.includes('zip')\" class=\"fa fa-file-archive _CSS-zip\"></ae-icon>\r\n    <ae-icon v-else class=\"fa fa-file\"></ae-icon>\r\n  </div>\r\n  <ae-icon v-else class=\"fa fa-file\"></ae-icon>\r\n</div>\r\n<!-- {{data.name}}  -->   "},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"0a21abe5-b291-41b7-ad0c-895072e6e030","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-08-28T11:33:30+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"dbee6e16-d63a-493c-bba6-505f79918f9f","previous":{"v":"a482bf01c1e7419f"},"stamps":[],"t":1756380810414,"v":"bd149bb38866fb54"},{"id":"7fa59be7-3ae5-40d4-b92b-56f910912d75","v":"f98331d4ed125f68","previous":{"v":"478fae231afff1ab","p":"fallback-designs","a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"]},"p":"1cc4b977-c14d-4587-af47-d6ac230f60b3","f":{"id":"design-form","v":"22a757f630104010","text":"Design"},"data":{"name":"rd:icon","template":"<ae-design name=\"rd:icon_default\" :document=\"document\"\n:params=\"params\" v-on=\"$listeners\"></ae-design>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-10-24T12:23:54+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-10-24T12:24:29+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1767870469087,"ct":1729772634174,"a_depth":3,"a":["apps","77ee8815-2c3a-4bb5-abd9-90541a545a24","1cc4b977-c14d-4587-af47-d6ac230f60b3"],"a_forms":["folder","application-form","design-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"meta":{"modified":{"at":"2026-01-08T11:07:49+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":"","impersonatedBy":"","from":"","client":"server"}}},{"a":["apps","37fafb3d-18da-4182-af74-082971d50956","c27d5f5f-22ff-4341-935c-02bfdc3e1ee0","6f641574-7cb6-424a-9657-4b8d652a2cf7"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2023-03-16T15:54:08+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1678982048536,"data":{"aliases":[],"controller":"init() {\n  locals.color = this.intToRGB(this.hashCode(document.id))\n\n  if (!('vorname' in data) || !('nachname' in data)) {\n    locals.initials = ''\n  } else if (data.vorname.length === 0) {\n    locals.initials = (data.nachname.slice(0,1)).toUpperCase()\n  } else if (data.vorname && data.nachname) {\n    locals.initials = (data.vorname.slice(0,1) + data.nachname.slice(0,1)).toUpperCase()\n  }\n}\n\nhashCode(str) { // java String#hashCode\n  var hash = 0;\n  for (var i = 0; i < str.length; i++) {\n      hash = str.charCodeAt(i) + ((hash << 5) - hash);\n  }\n  return hash;\n} \n\n intToRGB(i) {\n  var c = (i & 0x00FFFFFF)\n      .toString(16)\n      .toUpperCase();\n\n  return '#' + '00000'.substring(0, 6 - c.length) + c;\n}\n\nget title() {\n  const parts = []\n  \n  data.name && parts.push(data.name)\n  data.position && parts.push(`(${data.position})`)\n  \n  return parts.join(' ')\n}","css":"._CSS {\n  display: flex;\n  justify-content: flex-start;\n  width: auto;\n  align-items: center;\n}\n\n._CSS-initials {\n  font-size: 1em;\n  height: 1em;\n  width: 1em;\n  border-radius: 50%;\n  display: flex;\n  align-items:center;\n  justify-content: center;\n  color:white;\n  font-weight: bold;\n  font-family:'Trebuchet MS', 'Lucida Sans Unicode', 'Lucida Grande', 'Lucida Sans', Arial, sans-serif;\n  box-shadow: var(--ae-shadow-inset);\n}\n\n._CSS-initials__characters {\n  font-size: 0.5em;\n}\n ","description":"","name":"rd:icon","packages":[],"template":"<template v-if=\"params.overwriteDisplayWith\">\n  <span style=\"background-color: #777;\" \n          class=\"_CSS-initials\">{{ params.overwriteDisplayWith }}</span>\n</template>\n<template v-else> \n  <div v-if=\"'foto' in data && data.foto.dataUrl\" \n          :title=\"controller.title\" \n          class=\"bg-cover bg-center rounded-full ring ring-1 ring-neutral-200 ring-inset\" \n           :class=\"[params.size ? 'size-' + params.size : 'size-6']\"\n          :style=\"{ 'background-image': 'url(' + Aeppic.Content.getThumbnailSrc(document,'foto') }\"></div>\n  <div v-else-if=\"'bild' in data && data.bild.dataUrl\" \n          :title=\"controller.title\" \n          class=\"bg-cover bg-center rounded-full ring ring-1 ring-neutral-200 ring-inset\" \n           :class=\"[params.size ? 'size-' + params.size : 'size-6']\"\n          :style=\"{ 'background-image': 'url(' + Aeppic.Content.getThumbnailSrc(document,'bild') }\"></div>\n  <!-- <span v-else-if=\"locals.initials\" \n          :title=\"controller.title\" \n          :style=\"{ 'background-color': locals.color }\" \n          class=\"_CSS-initials\">\n    <span class=\"_CSS-initials__characters\">\n      {{locals.initials}}\n    </span>\n  </span> -->\n  <ae-design v-else name=\"rd:icon\" \n          :document-id=\"document.f.id\"></ae-design>\n  <!-- <span v-else>\n    <ae-icon class=\"fa fa-address-card _CSS--no-image\"></ae-icon>\n  </span> -->\n</template> \n"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"a5305c29-25af-4e61-b826-a428bd3eca35","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-11-27T17:07:19+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"6f641574-7cb6-424a-9657-4b8d652a2cf7","previous":{"v":"d4800404f7e0db18"},"stamps":[],"t":1764263239722,"v":"d4c97f49409ba9d7"},{"id":"ac55fdb3-033a-4c45-b660-f5e8389aae6b","v":"5cd96876a649f418","previous":{"v":"initial"},"p":"27a5cf6e-22f8-44d2-8107-400b27382690","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:icon","template":"<ae-design name=\"rd:icon\" :document-id=\"document.p\" :params=\"params\"></ae-design>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-01-19T15:35:56+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-01-19T15:36:33+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1705678593861,"ct":1705678556946,"a_depth":4,"a":["apps","90a38bb1-5683-49d1-b519-203876cc6967","4bfbe5fd-cf64-4b07-b91f-17bade3f41f9","27a5cf6e-22f8-44d2-8107-400b27382690"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"e025bad7-e8d9-4986-ad64-ec4d6f34b01d","v":"055d2838cd7c0eb2","cloneOf":{"id":"793b0099-78a9-4428-a962-a8601d2afcae","v":"a6e0ced8e0585acb","text":"icon"},"originalCloneOf":{"id":"793b0099-78a9-4428-a962-a8601d2afcae","v":"a6e0ced8e0585acb","text":"icon"},"previous":{"v":"b4d9b6c9afad600d"},"p":"d2ac3563-3c3f-4f02-b923-9b67abf98d10","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"rd:icon","applies":"","template":"<ae-design name=\"avatar\" :document=\"document\" class=\"text-2xl\"></ae-design> ","css":"","controller":"","packages":[]},"locks":[],"created":{"at":"2022-10-25T09:41:56+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-03-17T13:34:35+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1679060075726,"ct":1666690916603,"a_depth":4,"a":["apps","144e85c0-d7f9-4b20-8928-be30f0c78bda","8e6ee7d3-9122-4a2e-8aaf-9fb3bd204b23","d2ac3563-3c3f-4f02-b923-9b67abf98d10"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"fe9438ea-137a-4f20-a954-1efe135c1051","v":"6e1895d0366a70db","previous":{"v":"initial"},"p":"e733295b-414e-41e7-8430-3129c3856b83","f":{"id":"design-form","v":"22a757f630104010","text":"Design"},"data":{"name":"rd:icon","template":"<ae-design v-if=\"data.type === 'INTERNAL' && data.employee.id\"\n          name=\"avatar\"\n          :document-id=\"data.employee.id\"\n          :params=\"params\" v-on=\"$listeners\"\n          class=\"text-2xl\"></ae-design>\n<ae-design v-else\n          name=\"rd:icon_default\"\n          :document=\"document\"\n          :params=\"params\" v-on=\"$listeners\"></ae-design>\n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-10-24T12:20:49+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-10-24T12:29:42+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1729772982805,"ct":1729772449713,"a_depth":4,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","e733295b-414e-41e7-8430-3129c3856b83"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","77ee8815-2c3a-4bb5-abd9-90541a545a24","1cc4b977-c14d-4587-af47-d6ac230f60b3"],"a_depth":3,"a_forms":["folder","application-form","design-folder"],"created":{"at":"2022-08-23T13:40:05+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1720684627136,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    // USE TAILWIND COLORS!\n    this.colorMap = {\n      green: '#a3e635', // lime-400\n      red: '#f87171', // red-400\n      blue: '#60a5fa', // blue-400\n    }\n\n    locals.adaptedColorForIcon = {}\n    locals.fallbackColor = '#d4d4d4' // tailwind: text-neutral-300\n    locals.ringColor = ''\n\n    await this.update(document)\n\n    Aeppic.watch(document, async (doc) => await this.update(doc))\n  }\n\n  async update(doc) {\n    locals.hasColorField = 'color' in doc.data || 'farbe' in doc.data\n    locals.hasIcon = ('icon' in doc.data) && doc.data.icon.dataUrl\n\n    locals.namedIcon = await this.getIconName(doc)\n\n    if (!locals.namedIcon) {\n      locals.formIcon = (await Aeppic.get(doc.f.id)).data.namedIcon\n    }\n\n    locals.iconColor = await this.getIconBackgroundColor(doc)\n\n    if (!params.disableRing) {\n      locals.ringColor = this.calcRingColor(doc.data.color || doc.data.farbe || locals.iconColor)\n    }\n  }\n\n  async getIconName(doc) {\n    if (doc.data.iconName) {\n      return doc.data.iconName\n    }\n\n    if (doc.data.namedIcon) {\n      return doc.data.namedIcon\n    }\n\n    if (params.iconFieldName) {\n      const form = await Aeppic.getFormForDocument(doc)\n      const fieldParams = form.getPlaceholderControlParams(params.iconFieldName)\n\n      if (fieldParams && fieldParams[`icon_${doc.data[params.iconFieldName]}`]) {\n        return fieldParams[`icon_${doc.data[params.iconFieldName]}`]\n      }\n    }\n\n    if (params.fallbackNamedIcon) {\n      return params.fallbackNamedIcon\n    }\n\n    return ''\n  }\n\n  async getIconBackgroundColor(doc) {\n    if (params.forceBackgroundColorStyle) {\n      return params.forceBackgroundColorStyle\n    }\n\n    if (doc.data.iconNameColor) {\n      return this._transformColor(doc.data.iconNameColor) || locals.fallbackColor\n    }\n\n    if (doc.data.namedIconColor) {\n      return this._transformColor(doc.data.namedIconColor) || locals.fallbackColor\n    }\n\n    if (params.iconFieldName) {\n      const form = await Aeppic.getFormForDocument(doc)\n      const fieldParams = form.getPlaceholderControlParams(params.iconFieldName)\n\n      if (fieldParams && fieldParams[`iconcolor_${doc.data[params.iconFieldName]}`]) {\n        return this._transformColor(fieldParams[`iconcolor_${doc.data[params.iconFieldName]}`]) || locals.fallbackColor\n      }\n    }\n\n    if (doc.data.color || doc.data.farbe) {\n      return this._transformColor(doc.data.color || doc.data.farbe) || locals.fallbackColor\n    }\n\n    if (params.fallbackIconColor) {\n      return this._transformColor(params.fallbackIconColor) || locals.fallbackColor\n    }\n\n    const formDoc = await Aeppic.get(doc.f.id)\n    if (formDoc.data.namedIconColor) {\n      return this._transformColor(formDoc.data.namedIconColor) || locals.fallbackColor\n    }\n\n    return locals.fallbackColor\n  }\n\n  _transformColor(color) {\n    if (this.colorMap[color]) {\n      return this.colorMap[color]\n    }\n\n    return color\n  }\n\n  calcRingColor(color) {\n\n    function newTone(tone) {\n      let toneDelta = 20\n      let toneFromCenter = Math.abs(tone - 50)\n      if (tone > 80) {\n        toneDelta = 30\n      }\n      return tone < 50 ? tone + toneDelta : tone - toneDelta\n    }\n    const Color = {Convert: packages.Convert, Material: packages.Material, Scheme: packages.Scheme}\n    const originalHct = Color.Material.Hct.Hct.fromHex(color)\n    const newHct = Color.Material.Hct.Hct.from(originalHct.hue, originalHct.chroma, newTone(originalHct.tone))\n    return newHct.toHex()\n  }\n\n  get iconContainerClasses() {\n    const classes = []\n    if (!params.disableRing) {\n      classes.push('rounded-full', 'ring-inset', 'ring', 'ring-2')\n    }\n\n    return classes.join(' ')\n  }\n}\n \n  \n  ","css":"","description":"","name":"rd:icon_default","packages":[{"id":"740716fd-9069-4a19-a16d-665a43894b7e","text":"Color","v":"2e4680a1758b8d44"}],"template":"<!-- bg {{locals.iconColor}}\nicon {{locals.iconColor}}\nadapted {{ locals.adaptedColorForIcon}} -->\n<ae-design \n  data-use-form-icon v-if=\"params.useFormIcon\" \n  :document-id=\"document.f.id\" name=\"rd:icon\" \n  :class=\"[params.size ? 'h-' + params.size + ' w-' + params.size : 'h-6 w-6']\"\n  :params=\"{\n    ...params,\n    useFormIcon: false,\n    fallbackIconColor: locals.iconColor,\n  }\"\n></ae-design>\n<div v-else-if=\"locals.hasIcon\" data-has-icon-in-data>\n  <div  class=\"bg-cover rounded-full\"\n        :class=\"[params.size ? 'h-' + params.size + ' w-' + params.size : 'h-6 w-6']\"\n        :style=\"{'background-image': 'url(' + Aeppic.Content.getSrc(document, 'icon') + ')' }\"\n        :title=\"data.label || data.name\"\n  >\n  </div>\n</div>\n<!-- <div data-has-named-icon v-else-if=\"locals.hasColorField || locals.namedIcon || locals.iconColor\"> -->\n<div data-use-document-icon v-else>\n  <div v-if=\"locals.namedIcon\" \n      data-has-named-icon\n      class=\"flex items-center justify-center\"\n      :class=\"[params.size ? 'h-' + params.size + ' w-' + params.size : 'h-6 w-6', controller.iconContainerClasses]\"\n      :style=\"{ 'background-color': locals.iconColor, '--tw-ring-color': locals.ringColor }\"\n      :title=\"data.label || data.name\"\n  >\n    <ae-icon class=\"text-base \" :class=\"locals.namedIcon\" :style=\"{ color: locals.adaptedColorForIcon.css }\"></ae-icon>\n  </div>\n  <!-- <div v-if=\"locals.namedIcon\" \n        class=\"rounded-full flex items-center justify-center\"\n        :class=\"[params.size ? 'h-' + params.size + ' w-' + params.size : 'h-6 w-6', !locals.iconColor && 'bg-gray-200 text-gray-700 dark:bg-slate-700 dark:text-white']\"\n        :style=\"{ 'color': locals.iconColor, '--tw-ring-color': locals.ringColor }\"\n        :title=\"data.label || data.name\"\n  >\n    <ae-icon class=\"text-base \" :class=\"locals.namedIcon\"></ae-icon>\n  </div> -->\n  <div v-else-if=\"locals.hasColorField\"\n      data-background-color\n      class=\"rounded-full ring-inset ring ring-2\"\n      :class=\"[params.size ? 'h-' + params.size + ' w-' + params.size : 'h-6 w-6']\"\n      :style=\"{ 'background-color': locals.iconColor, '--tw-ring-color': locals.ringColor }\"\n      :title=\"data.label || data.name\"\n  >\n  </div>\n\n  <!-- <div v-else \n      data-background-color\n      class=\"rounded-full ring-inset ring ring-2\"\n      :class=\"[params.size ? 'h-' + params.size + ' w-' + params.size : 'h-6 w-6']\"\n      :style=\"{ 'background-color': locals.iconColor, '--tw-ring-color': locals.ringColor }\"\n      :title=\"data.label || data.name\"\n  >\n  </div> -->\n  <div v-else\n        data-fallback-form-icon\n        class=\"flex items-center justify-center\"\n        :class=\"[params.size ? 'h-' + params.size + ' w-' + params.size : 'h-6 w-6', , controller.iconContainerClasses]\"\n        :style=\"{ 'background-color': locals.iconColor, '--tw-ring-color': locals.ringColor }\"\n        :title=\"data.label || data.name\"\n  >\n    <ae-icon class=\"text-base \" :class=\"locals.formIcon || 'far fa-file-invoice'\" :style=\"{ color: locals.adaptedColorForIcon.css }\"></ae-icon>\n  </div>\n  <!-- <ae-design v-else \n          data-fallback-form-icon\n          :document-id=\"document.f.id\" \n          name=\"rd:icon\"\n          class=\"rounded-full ring-inset ring ring-2\"\n          xclass=\"flex items-center justify-center rounded-full bg-gray-200 text-gray-700 dark:bg-slate-700 dark:text-white\"\n          :class=\"[params.size ? 'h-' + params.size + ' w-' + params.size : 'h-6 w-6']\"\n          :style=\"{ 'background-color': locals.iconColor, '--tw-ring-color': locals.ringColor }\"\n></ae-design>  -->\n\n</div>\n<!-- <ae-design v-else \n          data-fallback-form-icon\n          :document-id=\"document.f.id\" \n          name=\"rd:icon\"\n          class=\"flex items-center justify-center rounded-full bg-gray-200 text-gray-700 dark:bg-slate-700 dark:text-white\"\n          :class=\"[params.size ? 'h-' + params.size + ' w-' + params.size : 'h-6 w-6', params.iconSize || 'text-base ']\"\n></ae-design>  -->\n"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"fff8b799-4b64-41ce-971e-76ac0735a9fb","inheritedLocks":[null,null,null,null],"locks":[],"meta":{},"modified":{"at":"2026-05-04T10:04:15+00:00","backedBy":"","by":"09763886-6748-4a56-8e0e-54a2293ee96b","client":"server","from":"","impersonatedBy":""},"p":"1cc4b977-c14d-4587-af47-d6ac230f60b3","previous":{"v":"ba788c74110de673"},"stamps":[],"t":1777889055755,"v":"f8826b77f33262ce"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","33e3b54d-6b4b-4aa3-8f70-2b834b27bf66"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2025-08-26T14:50:57+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1756219857727,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:identifier","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<span>{{data.identifier}}</span>"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"01d9f342-ed40-4109-a2ff-c52ae7f0ef68","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-08-26T14:51:10+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"33e3b54d-6b4b-4aa3-8f70-2b834b27bf66","previous":{"v":"initial"},"stamps":[],"t":1756219870888,"v":"982fcc5614410059"},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","70c9c420-0ed1-428c-934c-f65c63ce0afb"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2026-06-09T10:39:50+00:00","backedBy":"","by":"b7485498-f1f3-4ab1-87d1-9cb63ea890c8","client":"server","from":"","impersonatedBy":""},"ct":1781001590343,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:import-from-application","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<div class=\"flex flex-col gap-4\">\n  <div class=\"text-red-500 whitespace-pre-line\">\n    Diese Funktion überschreibt alle unten gelisteten Felder/Inhalte ohne eine weitere Nachfrage.\n    Sie können das Überschreiben mehrfach ausführen.\n  </div>\n\n  <ae-form layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\" :document=\"document\"></ae-form>\n</div>"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"0052ec1e-1965-4c3c-92c4-04bb8bd517fd","inheritedLocks":[null,null,null,null,null],"locks":[],"meta":{},"modified":{"at":"2026-06-16T11:45:00+00:00","backedBy":"","by":"b7485498-f1f3-4ab1-87d1-9cb63ea890c8","client":"server","from":"","impersonatedBy":""},"p":"70c9c420-0ed1-428c-934c-f65c63ce0afb","previous":{"v":"7b795edd8e04ab3b"},"stamps":[],"t":1781610300089,"v":"88ada48aac918c85"},{"id":"78aff77b-86b4-477f-96f9-d87ece8fdab4","v":"d3cf4c1a07ad47a9","previous":{"v":"e5af394ef9fe47f8"},"p":"5011479f-3ef7-4c66-810b-3bb65f992712","f":{"id":"design-form","v":"4b1c7a4912f80103","text":"Design"},"data":{"name":"rd:information","template":"<div class=\"flex h-full overflow-hidden\" ref=\"container\">\n  <div class=\"w-full overflow-hidden flex-1 flex flex-col gap-1\">\n    <div class=\"w-full max-w-5xl mx-auto flex-1 overflow-y-auto basis-2/3 pb-1 overflow-x-auto flex flex-col gap-4\">\n      <ae-form  :document=\"document\"\n                :auto-save=\"true\"\n                :auto-save-after=\"1000\"\n                layout-id=\"5c8ac4b6-e1a9-4cdf-af03-553dbc4d80d5\"\n                class=\"w-full\"\n                :readonly=\"params.readonly\"\n      ></ae-form>\n\n      <div class=\"bg-white dark:bg-slate-800 rounded-md p-4 xl:shadow\">\n        <h3 class=\"text-sm font-semibold text-neutral-600 dark:text-neutral-300 mb-2\">Wartungen</h3>\n        <ae-list\n          list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\"\n          :search=\"'f.id:1b166603-d0f3-4f16-98c4-0534afbd6f5a data.maintenancePlan.id:' + document.id\"\n          sort=\"t desc\"\n          :watch-documents=\"true\"\n          :params=\"{ design: 'rd:card', pageSize: 20, increaseSize: 20, emptyText: 'Noch keine Wartungen erstellt.' }\"\n          @selected=\"Aeppic.drillInto($event, arguments[1])\"\n        ></ae-list>\n      </div>\n    </div>\n\n    <ae-design class=\"w-full\" name=\"rd:page-workflow\" :document=\"document\" :watch=\"false\"></ae-design>\n  </div>\n  <template v-if=\"params.windowWidth >= 1280\">\n    <ae-layout  v-if=\"!locals.allowUndefinedFields && !params.disableComments\"\n                layout-id=\"0e6b3b93-8e22-4616-9389-a00a6a1a4f59\"\n                :param-document=\"document\"\n                :param-highlight-comment=\"params.highlightComment\"\n                :param-no-close=\"true\"\n                class=\"h-full w-full basis-1/3 min-w-[410px] max-w-[500px] lg:mx-2\"\n    ></ae-layout>\n\n    <ae-design  v-if=\"locals.allowUndefinedFields\"\n                name=\"rd:undefined-fields\"\n                :document=\"document\"\n                class=\"h-full w-full basis-1/3 min-w-[410px] max-w-[500px] shadow lg:my-2 lg:ml-2\"\n                :param-readonly=\"params.readonly\"\n    ></ae-design>\n  </template>\n</div>\n","css":"","controller":"class Controller {\n  async init() {\n    locals.form = null\n    locals.form = await Aeppic.getFormForDocument(document)\n\n    locals.allowUndefinedFields = locals.form.data.allowUndefinedFields === true\n  }\n}","packages":[],"parameters":[],"parametersDescriptions":[],"parametersTypes":[],"parametersControls":[],"parametersCardinalities":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2026-08-06T13:50:25+00:00","by":"e24f1d78-6fbd-4f97-9fb0-b1af9bd6bd13","backedBy":"","impersonatedBy":"","from":"","client":"server"},"modified":{"at":"2026-08-06T13:56:37+00:00","by":"e24f1d78-6fbd-4f97-9fb0-b1af9bd6bd13","backedBy":"","impersonatedBy":"","from":"","client":"server"},"t":1786024597367,"ct":1786024225976,"a_depth":4,"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","5011479f-3ef7-4c66-810b-3bb65f992712"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","f1899d3b-4673-4033-afa0-2d9c540c326d"],"a_depth":3,"a_forms":["folder","application-form","design-folder"],"cloneOf":{"id":"d62e8f28-62cb-40a3-9eef-30492a1070e5","text":"rd:application-workflow-stamp","v":"5434f530ce310f83"},"created":{"at":"2025-07-08T08:33:20+00:00","backedBy":null,"by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":null},"ct":1751963600895,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:information-workflow-stamp","packages":[],"template":"<div class=\"flex items-center gap-2 text-sm text-primary-800 bg-primary-50 px-1 rounded-md\">\n  <ae-icon class=\"far fa-badge-check\"></ae-icon>\n  <span>{{ data.informationWorkflowPhaseTitle }} </span>\n</div>"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"b37e54a3-29dd-4e20-a6b9-042f88e0429e","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2025-07-08T08:34:41+00:00","backedBy":null,"by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"d62e8f28-62cb-40a3-9eef-30492a1070e5","text":"rd:application-workflow-stamp","v":"5434f530ce310f83"},"p":"f1899d3b-4673-4033-afa0-2d9c540c326d","previous":{"v":"initial"},"stamps":[],"t":1751963681299,"v":"61dcd696ec8ab3b7"},{"a":["apps","599db2de-4e07-4722-98bd-7f42d498b352","79718664-ed22-4b52-9c10-037881df3578","7be5f2c5-206b-4ab6-9d4d-c4834baf8e32"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2023-07-20T09:52:30+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1689846750651,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    const stampsWhereUserHasToDoSth = [\n      '0b37a29f-97ad-4c23-8ab3-3dda160b9faf',\n      '71cb7da0-3ba5-40b9-ae16-31c344078bf7',\n      '957f2631-7be3-4e01-9c20-b6b1e9a1b111',\n      '42af64bc-da74-42ef-9cb3-f3e5838b2bff',\n      '71a809e7-f4d1-4906-81b7-0be758cbc29e',\n      'bb3c8df8-6398-43f6-b001-5450fbfa2a37',\n      '5d5d870e-7c5a-454e-8273-2c7e9f5f735f',\n    ]\n\n    locals.help = ''\n\n    locals.search = `f.id:0bb3d600-faf0-4a5c-b49f-7994d234ae76 (${stampsWhereUserHasToDoSth.map(s => `stamps.type:${s}`).join(' OR ')})`\n    locals.filter = ''\n\n    locals.sort = [\n      { field: 'data.creationTimestamp', descending: true },\n      { field: 'applicationNumber', descending: true },\n      { field: 'id' },\n    ]\n\n    const stamps = await Aeppic.getAll(stampsWhereUserHasToDoSth)\n\n    locals.help = `Hier werden Anträge, welche Ihre Aktivität erfordern, gelistet. (Ab)geschlossene Anträge finden sich nicht in dieser Auflistung.\n\n---\n\nAnträge in folgendem Status werden angezeigt:\n\n${stamps.map(s => `- ${s.data.label || s.data.name}`).join('\\n')}  \n  `\n  }\n}\n  ","css":"","description":"","name":"rd:ITM","packages":[],"template":"<div\n  class=\"flex-1 mx-auto flex flex-col gap-4 w-full bg-white overflow-visible bg-white max-w-5xl px-4 py-2 my-2 lg:shadow-md lg:rounded-md\"\n>\n  <div class=\"flex items-center\">\n    <div class=\"font-bold text-lg p-2\">Meine Anträge</div>\n\n    <ae-control name=\"rd:help\" :document=\"document\" :param-text=\"locals.help\"></ae-control>\n\n    <div class=\"flex-1\"></div>\n\n    <ae-design\n      name=\"rd:toolbar\"\n      :document=\"document\"\n      :param-initial-filter=\"locals.filter\"\n      :param-initial-sort=\"locals.sort\"\n      param-list-form-id=\"0bb3d600-faf0-4a5c-b49f-7994d234ae76\"\n      param-sort-fields=\"data.applicationNumber,data.applicationWorkflowPhase,data.applicationTitle,data.consultingItco,data.itaMeetingMonthByEmployer,data.itaMeetingMonthByIta\"\n      param-filter-fields=\"data.creationTimestamp,data.scope,data.applicationNumber,data.applicationWorkflowPhase,data.applicationTitle,data.consultingItco,data.applicantEmployee,data.itaMeetingMonthByEmployer,data.itaMeetingMonthByIta\"\n      @filter=\"locals.filter = $event\"\n      @sort=\"locals.sort = $event\"\n    ></ae-design>\n  </div>\n\n\n  <ae-list\n    list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\"\n    :search=\"locals.search\"\n    :filter=\"locals.filter\"\n    :sort=\"locals.sort\"\n    param-design=\"rd:card\"\n    :param-divide=\"true\"\n    @selected=\"Aeppic.drillInto($event, arguments[1])\"\n    :search-options=\"{ searchAllFields: true }\"\n  ></ae-list>\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"e3fe14aa-904a-4ccf-8cd7-0bb7dc8a5b4e","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-03-13T14:40:41+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"7be5f2c5-206b-4ab6-9d4d-c4834baf8e32","previous":{"v":"0a4b2c7bac000474"},"stamps":[],"t":1741876841546,"v":"0e2228e892e987f2"},{"id":"9ccedacd-1b56-478b-b180-dfd947fbac1c","v":"04c442e66882a291","cloneOf":{"id":"b34a077b-8aad-4cb7-9611-901096ad5287","text":"rd:ENERGIE","v":"acca47d679d8dc62"},"originalCloneOf":{"id":"b34a077b-8aad-4cb7-9611-901096ad5287","text":"rd:ENERGIE","v":"acca47d679d8dc62"},"previous":{"v":"9ea45eb2385ef5b3"},"p":"7be5f2c5-206b-4ab6-9d4d-c4834baf8e32","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:KEEPTRACK","template":"<ae-design\n  name=\"rd:GENERIC_TASK_BASED\"\n  :document=\"document\"\n  :params=\"{ ...params, additionalDesigns: ['rd:KEEPTRACK-need-to-act'], mainSectionAsList: true }\"\n  :param-labels=\"controller.labels\"\n  v-on=\"$listeners\"\n  class=\"h-full w-full\"\n></ae-design>\n","css":"","controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      CoreAufgabe: '0deb4864-cbb6-420c-99ee-337c7444ab24',\n    }\n\n    // locals.taskDefinitions = [\n    //   {\n    //     form: this.FORMS.CoreAufgabe,\n    //     dueStart: 'dueStart',\n    //     dueEnd: 'dueEnd',\n    //     dueDateTime: 'dueDateTime',\n    //     done: 'done',\n    //     responsible: 'responsible',\n    //     inProgress: 'inProgress',\n    //     priority: 'priority',\n    //   },\n    // ]\n  }\n\n  get labels() {\n    return {\n      \"inProgressTitle\": \"Reparaturen in Bearbeitung\",\n      \"inProgressEmpty\": \"Keine Reparaturen in Bearbeitung\",\n      \"overdueTitle\": \"Überfällige Reparaturen\",\n      \"overdueHelpText\": \"Mir zugewiesene überfällige Reparaturen der letzten 5 Tage werden hier angezeigt.\",\n      \"overdueOtherTitle\": \"Überfällige Reparaturen (andere Verantwortliche)\",\n      \"overdueOtherHelpText\": \"Von mir erstellte überfällige Reparaturen, welche **anderen Verantwortlichen** zugewiesen wurden, der letzten 5 Tage werden hier angezeigt.\"\n    }\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2025-10-24T15:15:10+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"modified":{"at":"2026-05-19T11:44:54+00:00","by":"09763886-6748-4a56-8e0e-54a2293ee96b","backedBy":"","impersonatedBy":"","from":"","client":"server"},"t":1779191094879,"ct":1761318910371,"a_depth":4,"a":["apps","599db2de-4e07-4722-98bd-7f42d498b352","79718664-ed22-4b52-9c10-037881df3578","7be5f2c5-206b-4ab6-9d4d-c4834baf8e32"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","599db2de-4e07-4722-98bd-7f42d498b352","79718664-ed22-4b52-9c10-037881df3578","7be5f2c5-206b-4ab6-9d4d-c4834baf8e32"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"9ccedacd-1b56-478b-b180-dfd947fbac1c","text":"rd:KEEPTRACK","v":"00100796ab1612fd"},"created":{"at":"2025-12-09T09:45:00+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"ct":1765273500996,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Repair: '46a28dfa-7518-4867-9519-a5f4cd9b9967',\n      MaintenanceExecution: '1b166603-d0f3-4f16-98c4-0534afbd6f5a',\n      MaintenaceFolder: 'fdfaf800-858a-4b45-91c9-5bdad7a63672',\n      RepairsFolder: '760efba8-d733-4a34-ada6-b7d6d5c6d637',\n    }\n\n    this.subscriptions = {\n      PLANNED: null,\n      COMPLETED: null\n    }\n\n    locals.ready = false\n    const maintenaceFolder = await Aeppic.findOne(`p:${document.a[0]} f.id:${this.FORMS.MaintenaceFolder}`)\n    const repairsFolder = await Aeppic.findOne(`p:${maintenaceFolder.id} f.id:${this.FORMS.RepairsFolder}`)\n    \n    const maintenanceExecutionForm = await Aeppic.getForm(this.FORMS.MaintenanceExecution)\n    const getIcon = (val) => maintenanceExecutionForm?.getField('workflowStatus').settings.options.find(option => option.value === val)?.tags?.icon\n\n    this.TABS = {\n      PLANNED: {\n        id: 'PLANNED',\n        label: 'Zur Freigabe',\n        icon: getIcon('PLANNED'),\n        query: `(a:${maintenaceFolder.id} OR a:${repairsFolder.id}) data.workflowStatus:PLANNED`\n      },\n      COMPLETED: {\n        id: 'COMPLETED',\n        label: 'Zur Kenntnisnahme',\n        icon: getIcon('COMPLETED'),\n        query: `(a:${maintenaceFolder.id} OR a:${repairsFolder.id}) data.workflowStatus:COMPLETED`\n      }\n    }\n\n    locals.activeTab = 'PLANNED'\n    locals.activeType = 'all'\n\n    locals.data = {\n      PLANNED: [],\n      COMPLETED: []\n    }\n\n    await Promise.all(\n      Object.keys(this.TABS).map(async (tabId) => {\n        locals.data[tabId] = await Aeppic.find(this.TABS[tabId].query)\n        \n        this.subscriptions[tabId] = Aeppic.subscribe(this.TABS[tabId].query, (documents) => {\n          locals.data[tabId] = documents\n        })\n      })\n    )\n\n    locals.ready = true\n  }\n\n  get typeCounts() {\n    const activeDocs = locals.data[locals.activeTab] || []\n    return {\n      maintenance: activeDocs.filter(d => d.f.id === this.FORMS.MaintenanceExecution).length,\n      repair: activeDocs.filter(d => d.f.id === this.FORMS.Repair).length\n    }\n  }\n\n  get filteredDocuments() {\n    const activeDocs = locals.data[locals.activeTab] || []\n      \n    if(locals.activeType === 'maintenance') {\n      return activeDocs.filter(d => d.f.id === this.FORMS.MaintenanceExecution)\n    }\n    \n    if(locals.activeType === 'repair') {\n      return activeDocs.filter(d => d.f.id === this.FORMS.Repair)\n    }\n    \n    return activeDocs\n  }\n\n  get tabCounts() {\n    const type = locals.activeType\n    \n    const getFilteredCount = (tabId) => {\n      const docs = locals.data[tabId] || []\n      \n      if (type === 'maintenance') {\n        return docs.filter(d => d.f.id === this.FORMS.MaintenanceExecution).length\n      }\n      if (type === 'repair') {\n        return docs.filter(d => d.f.id === this.FORMS.Repair).length\n      }\n      \n      return docs.length\n    }\n\n    return {\n      PLANNED: getFilteredCount('PLANNED'),\n      COMPLETED: getFilteredCount('COMPLETED')\n    }\n  }\n}","css":"","description":"","name":"rd:KEEPTRACK-need-to-act","packages":[],"template":"<div \n  v-if=\"locals.ready\"\n  class=\"h-full w-full flex flex-col overflow-hidden bg-white rounded-md shadow p-4 gap-2\">\n\n  <section class=\"flex justify-between\">\n    <div class=\"font-bold flex items-center gap-2\">\n      Handlungsbedarf\n    </div>\n    <div class=\"flex gap-2 items-center\">\n      <ae-layout\n        v-for=\"(config, tabId) in controller.TABS\"\n        :key=\"tabId\"\n        layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n        @selected=\"locals.activeTab = tabId\"\n        :param-text=\"config.label\"\n        :param-icon=\"config.icon\"\n        param-border=\"border border-secondary-300\"\n        :param-primary=\"locals.activeTab === tabId\"\n        :param-count=\"controller.tabCounts[tabId]\"\n      ></ae-layout>\n    </div>\n  </section>\n\n  <div class=\"flex gap-2 mt-2 mb-2\">\n      <ae-layout\n        layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n        @selected=\"locals.activeType = 'all'\"\n        param-text=\"Alle\"\n        :param-primary=\"locals.activeType === 'all'\"\n        param-border=\"border border-neutral-200\"\n      ></ae-layout>\n      <ae-layout\n        layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n        @selected=\"locals.activeType = 'maintenance'\"\n        param-text=\"Wartungen\"\n        :param-primary=\"locals.activeType === 'maintenance'\"\n        param-border=\"border border-neutral-200\"\n        :param-count=\"controller.typeCounts.maintenance\"\n      ></ae-layout>\n      <ae-layout\n        layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n        @selected=\"locals.activeType = 'repair'\"\n        param-text=\"Reparaturen\"\n        :param-primary=\"locals.activeType === 'repair'\"\n        param-border=\"border border-neutral-200\"\n        :param-count=\"controller.typeCounts.repair\"\n      ></ae-layout>\n  </div>\n\n  <ae-list\n    :key=\"locals.activeTab + '_' + locals.activeType\"\n    list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\"\n    class=\"flex-1 overflow-auto\"\n    param-design=\"rd:card\"\n    param-gap=\"medium\"\n    :sort=\"[{field: 'created.at', descending: true}]\"\n    :documents=\"controller.filteredDocuments\"\n    @selected=\"Aeppic.drillInto($event, arguments[1])\" \n  >\n  </ae-list>\n\n</div>"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"ac46ae86-7a37-46c7-bae7-8ff2021a24c5","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-04-08T12:53:51+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"9ccedacd-1b56-478b-b180-dfd947fbac1c","text":"rd:KEEPTRACK","v":"00100796ab1612fd"},"p":"7be5f2c5-206b-4ab6-9d4d-c4834baf8e32","previous":{"v":"e02ff163d830d7fd"},"stamps":[],"t":1775652831733,"v":"7b40dedbbd714379"},{"id":"28c59386-03f7-405f-9793-0998a5a8185c","v":"fdf111e73ac543a4","cloneOf":{"id":"c6fb125e-a8bd-40b8-8e43-478bb6bc03b7","text":"rd:facility","v":"162ff28b121cc7b8"},"originalCloneOf":{"id":"c6fb125e-a8bd-40b8-8e43-478bb6bc03b7","text":"rd:facility","v":"162ff28b121cc7b8"},"previous":{"v":"f122d23e05fb4ac8"},"p":"33e3b54d-6b4b-4aa3-8f70-2b834b27bf66","f":{"id":"design-form","v":"4b1c7a4912f80103","text":"Design"},"data":{"name":"rd:latest-defects","template":"<div class=\"h-full w-full flex flex-col gap-6\">\n  <section class=\"max-w-5xl mx-auto w-full bg-white p-4 rounded-md xl:shadow flex flex-col gap-4\">\n    <header class=\"text-2xl\">Mängel</header>\n    <p v-if=\"locals.defectIds.length === 0\" class=\"text-neutral-500 italic\">Keine Mängel gefunden.</p>\n    <div v-for=\"id of locals.defectIds\" :key=\"id\">\n      <ae-design\n        name=\"rd:defect-review-card-inner\"\n        :document-id=\"id\"\n        :params=\"{ resultFilter: ['COMPLETED_NOT_OK'] }\"\n        @selected=\"Aeppic.drillInto($event)\"\n      ></ae-design>\n    </div>\n  </section>\n\n  <section class=\"max-w-5xl mx-auto w-full bg-white p-4 rounded-md xl:shadow flex flex-col gap-4\">\n    <header class=\"text-2xl\">Korrekturen</header>\n    <p v-if=\"locals.correctionIds.length === 0\" class=\"text-neutral-500 italic\">Keine Korrekturen gefunden.</p>\n    <div v-for=\"id of locals.correctionIds\" :key=\"id\">\n      <ae-design\n        name=\"rd:defect-review-card-inner\"\n        :document-id=\"id\"\n        :params=\"{ resultFilter: ['COMPLETED_OK_CORRECTIONS'] }\"\n        @selected=\"Aeppic.drillInto($event)\"\n      ></ae-design>\n    </div>\n  </section>\n</div>\n","css":"","controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Wartungsdurchfuehrung: '1b166603-d0f3-4f16-98c4-0534afbd6f5a',\n      Wartungspunkt: 'aa947792-4f31-40c9-9a6a-e1ad71697911',\n    }\n\n    locals.lastMaintenances = []\n    locals.defectIds = []\n    locals.correctionIds = []\n\n    const maintenanceSearch = `a:${document.a[0]} f.id:${this.FORMS.Wartungsdurchfuehrung} data.facility.id:${document.id}`\n    locals.lastMaintenances = await Aeppic.find(maintenanceSearch, { size: 20, sort: { field: 'created.at', descending: true }})\n\n    const [defectIds, correctionIds] = await Promise.all([\n      this.getMaintenanceIds(locals.lastMaintenances, 'COMPLETED_NOT_OK'),\n      this.getMaintenanceIds(locals.lastMaintenances, 'COMPLETED_OK_CORRECTIONS'),\n    ])\n\n    locals.defectIds = defectIds\n    locals.correctionIds = correctionIds\n  }\n\n  async getMaintenanceIds(maintenances, result) {\n    if (maintenances.length === 0) {\n      return []\n    }\n\n    const maintenanceClause = maintenances.map((m) => `a:${m.id}`).join(' OR ')\n    const wartungspunkte = await Aeppic.find(\n      `(${maintenanceClause}) f.id:${this.FORMS.Wartungspunkt} data.result:${result}`,\n      { includeHidden: true }\n    )\n\n    const ids = wartungspunkte\n      .map((wp) => this.getAncestorByFormIdFromDocument(this.FORMS.Wartungsdurchfuehrung, wp))\n      .filter(Boolean)\n\n    return [...new Set(ids)]\n  }\n\n  getAncestorByFormIdFromDocument(formId, doc) {\n    const index = doc.a_forms.findIndex((fId) => fId === formId)\n\n    if (index === -1) {\n      return null\n    }\n\n    return doc.a[index]\n  }\n}","packages":[],"parameters":[],"parametersDescriptions":[],"parametersTypes":[],"parametersControls":[],"parametersCardinalities":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2025-10-27T10:45:43+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"modified":{"at":"2026-08-06T13:22:14+00:00","by":"e24f1d78-6fbd-4f97-9fb0-b1af9bd6bd13","backedBy":"","impersonatedBy":"","from":"","client":"server"},"t":1786022534938,"ct":1761561943735,"a_depth":4,"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","33e3b54d-6b4b-4aa3-8f70-2b834b27bf66"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","59edbdbc-2cab-426a-bb42-6e57c5158e4f","b55eaea8-e746-4fa6-85a8-514c2268f1b8"],"a_depth":3,"a_forms":["folder","application-form","design-folder"],"created":{"at":"2025-11-03T14:32:40+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"ct":1762180360360,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:line-item","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<div\n  class=\"flex flex-nowrap items-start gap-2 items-center w-full min-w-0\">\n  <ae-design\n    name=\"rd:board-card-action\"\n    :document=\"document\"\n    param-title=\"Erledigt\"\n    :param-readonly=\"params.readonly\"\n    param-checkedBorderColor=\"border-green-300\"\n    param-borderColor=\"border-gray-300\"\n    param-checkColor=\"text-green-400\"\n  ></ae-design>\n  <div class=\"text-gray-600 flex-1\">\n    <span \n      class=\"min-w-0\"\n      v-if=\"document.data.name\"\n    >\n      {{ document.data.name }}\n    </span>\n    <span v-else \n          class=\"italic\">\n      {{ document.f.text }}\n    </span>\n  </div>\n</div>"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"2995c8e2-ce19-4abc-9226-ff4a27105c70","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2025-11-04T07:26:34+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"b55eaea8-e746-4fa6-85a8-514c2268f1b8","previous":{"v":"bd61c84244384f95"},"stamps":[],"t":1762241194933,"v":"f7cea82d5280121c"},{"a":["apps","0c440c7a-219d-4465-9cbe-2d0eff6ec7ad","e25401a7-eca4-4c53-a20e-b30df594d3a7","0f673271-cd1a-448f-871b-ecb273136aeb"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"b63578af-1f9e-468d-85b9-77a282378a29","text":"line-item","v":"a8bd76d564d0deb5"},"created":{"at":"2025-06-30T07:05:01+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"ct":1751267101666,"data":{"aliases":[],"controller":"class Controller {\n  init() {\n    this.projectAncestorRelativeToParentForm = {\n      '3d456c38-6282-416e-8c5e-7d20b0517a6e': -2,\n      '90877d25-bbae-421e-9ea7-0631dcbf11c2': -4,\n      '88b1f60e-71f6-46f5-94ea-3d7bbe972950': -3,\n      '0deb4864-cbb6-420c-99ee-337c7444ab24': -2,\n    }\n  } \n\n  get projectId() {\n    const parentForm = document.a_forms.slice(-1)[0]\n    const ancestorRelative = this.projectAncestorRelativeToParentForm[parentForm]\n\n    if (ancestorRelative == null) {\n      console.error('parentForm not found:', parentForm)\n      return null\n    }\n\n    return document.a.slice(ancestorRelative)[0]\n  }\n\n  get canEdit() {\n    return Aeppic.Account && document.created.by === Aeppic.Account.id\n  }\n\n  announceClickIfEditable() {\n    if (!this.canEdit) {\n      return\n    }\n\n    $emit('selected', document)\n  }\n}\n","css":"._CSS-card {\n  border: var(--ae-border-width) solid var(--ae-border-color);\n  background-color: var(--ae-ui-background);\n  border-radius: var(--ae-border-radius);\n\n  flex: 1;\n  padding: var(--ae-size-1) var(--ae-size-2) var(--ae-size-1) var(--ae-size-2);\n\n  display: grid;\n\n  grid-template-columns: 90px 1fr 1fr 3fr 100px 60px 35px;\n}\n\n._CSS-card--no-parent-info {\n  grid-template-columns: 90px 2fr 3fr 100px 60px 35px;\n}\n\n._CSS-day,\n._CSS-project,\n._CSS-title {\n  padding-right: var(--ae-size-4);\n  overflow: hidden;\n  white-space: nowrap;\n  text-overflow: ellipsis;\n  display: flex;\n  align-items: center;\n}\n\n._CSS-duration {\n  overflow: hidden;\n  white-space: nowrap;\n  text-overflow: ellipsis;\n  display: flex;\n  align-items: center;\n}\n\n._CSS-title {\n  font-weight: bold;\n}\n\n._CSS-button-or-avatar {\n  display: flex;\n  justify-content: center;\n}","description":"","name":"rd:line-item","packages":[],"template":"<div\n  class=\"border rounded-md px-3 py-2 flex @container\"\n  @click=\"$emit('selected', document)\"\n>\n  <section\n    class=\"flex items-center flex-1 justify-start gap-4 min-w-0\"\n  >\n    <ae-design \n      class=\"text-[2rem]\"\n      name=\"avatar--resizes-with-font\"\n      :document-id=\"data.profile.id\"\n    ></ae-design>\n    <ae-design \n      class=\"w-24 shrink-0\" \n      name=\"rd:recorded-time-readable-duration\" \n      :document=\"document\"\n    ></ae-design>\n    <ae-design \n      v-if=\"!params.hideProject\"\n      class=\"w-32 shrink-0 hidden @2xl:block\" \n      name=\"title\"\n      :documentId=\"data.project?.id\"\n    ></ae-design>\n    <div\n      class=\"w-32 shrink-0 hidden @2xl:block\"\n    >\n      <ae-design \n        v-if=\"!params.hideService\"\n        class=\"\" \n        name=\"title\"\n        :documentId=\"data.service?.id\"\n      ></ae-design>\n    </div>\n    <ae-design \n      v-if=\"!params.hideTask\"\n      class=\"w-32 shrink-0 hidden @xl:block\" \n      name=\"title\"\n      :documentId=\"data.taskCore?.id || data.taskService?.id\"\n    ></ae-design>\n    <!-- {{document.id}} -->\n    <ae-design \n      class=\"flex-1 min-w-0\" \n      name=\"title\"\n      :document-id=\"data.trackedTime.id\"\n    ></ae-design>\n  </section>\n  <section\n    class=\"flex items-center justify-end\"\n  >\n    <div class=\"text-neutral-600 flex items-center\" :title=\"'Erfassungsdatum: ' +  (!data.datum ? 'Nicht gefunden' : Aeppic.DateTime.fromISO(data.datum).toLocaleString(Aeppic.DateTime.DATETIME_SHORT))\">\n      <template v-if=\"!!data.datum\">\n        {{ Aeppic.DateTime.fromISO(data.datum).toLocaleString(Aeppic.DateTime.DATE_SHORT) }}\n      </template> \n      <div v-else title=\"Kein Tag angegeben\" class=\"text-red-400\">\n        <ae-icon class=\"far fa-exclamation-triangle\"></ae-icon>\n        <ae-icon class=\"far fa-calendar\"></ae-icon>\n      </div>\n    </div>\n  </section>\n</div>"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"8469a29c-45b7-422b-ae0d-80d962d57212","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-03-05T15:04:06+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"b63578af-1f9e-468d-85b9-77a282378a29","text":"line-item","v":"a8bd76d564d0deb5"},"p":"0f673271-cd1a-448f-871b-ecb273136aeb","previous":{"v":"3c67cf56d7fbcd8b"},"stamps":[],"t":1772723046490,"v":"0ba2409d86f75d92"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","227504b7-05fe-4ad1-a5fc-027639abff29"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2025-08-04T07:57:28+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1754294248221,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:list","packages":[],"template":"<ae-design \nname=\"rd:page-list\"\n:document=\"document\"\n:params=\"{ ...params, design: 'rd:ref-card', designParams: { readonly: true }, scrollerHeight: 80, showFormTitle: false, sortFields: 'data.active,data.name,data.from,data.to,data.interval,data.team', filterFields: 'data.active,data.from,data.to,data.interval,data.team' }\"\nclass=\"h-full w-full\"\n></ae-design> "},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"149caaa5-96c0-4471-b8bf-8e63d1e6db61","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-02-16T10:10:59+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"p":"227504b7-05fe-4ad1-a5fc-027639abff29","previous":{"v":"01688855f1499d08"},"stamps":[],"t":1771236659554,"v":"6305be3ed3dd8de8"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","aa947792-4f31-40c9-9a6a-e1ad71697911"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2025-08-05T12:56:09+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1754480502771,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.form = null\n    locals.form = await Aeppic.getFormForDocument(document)\n    locals.resultField = locals.form.fields.find(field => field.name === 'result')\n  }\n\n  getOptionLabel(optionValue) {\n    if (!locals.form) {\n      return ''\n    }\n\n    return locals.resultField.options?.find(option =>option.value === optionValue)?.label\n\n  }\n  get isAdmin() {\n    return Aeppic.Account?.data.isAdmin\n  }\n\n  get isActiveWartung() {\n    return params.activeDocument?.id === document.id\n  }\n\n  get isTodo() {\n    return data.result === 'NOT_STARTED' || data.result === 'STARTED' || data.result === 'CANCELED'\n  }\n}","css":"","description":"","name":"rd:list","packages":[],"template":"  <!-- :class=\"[controller.isAdmin ? 'grid-cols-[20px_150px_150px_auto]' :  'grid-cols-[20px_150px_auto]', controller.isActiveWartung && 'bg-primary-100 p-2 rounded' ]\" -->\n<div class=\"@container\">\n  <div\n    class=\"overflow-hidden grid relative items-center grid-rows-2 grid-cols-[20px_auto] @3xl:grid-rows-1 @3xl:grid-cols-[20px_340px_auto_auto] p-2 rounded\"\n    :class=\"[controller.isActiveWartung ? 'bg-primary-100' : 'bg-white']\"\n  >\n    <!-- {{params.position}} -->\n    <section v-if=\"data.result === 'COMPLETED_OK'\" :title=\"controller.getOptionLabel('COMPLETED_OK')\" class=\"w-2\">\n      <ae-icon class=\"fa fa-shield-check text-green-600\"></ae-icon>\n    </section>\n    <section v-else-if=\"data.result === 'COMPLETED_OK_CORRECTIONS'\" :title=\"controller.getOptionLabel('COMPLETED_OK_CORRECTIONS')\" class=\"w-2\">\n      <ae-icon class=\"fa fa-shield-check text-amber-600\"></ae-icon>\n    </section>\n    <section v-else-if=\"data.result === 'COMPLETED_NOT_OK'\" :title=\"controller.getOptionLabel('COMPLETED_NOT_OK')\" class=\"w-2\">\n      <ae-icon class=\"fa fa-shield-check text-red-600\"></ae-icon>\n    </section>\n    <section v-else-if=\"data.result === 'STARTED'\" :title=\"controller.getOptionLabel('STARTED')\" class=\"w-2\">\n      <ae-icon class=\"fa fa-play\"></ae-icon>\n    </section>\n    <section v-else-if=\"data.result === 'CANCELED'\" :title=\"controller.getOptionLabel('CANCELED')\" class=\"w-2\">\n      <ae-icon class=\"fa fa-times\"></ae-icon>\n    </section>\n    <section v-else :title=\"controller.getOptionLabel('NOT_STARTED')\" class=\"w-2\">\n      <ae-icon class=\"fa fa-clipboard-list\"></ae-icon>\n    </section>\n\n    <section class=\"flex truncate\">\n      <div>{{data.identifier}}</div>\n    </section>\n\n    <!-- <section v-if=\"controller.isAdmin\" title=\"Barcode nur für Admin sichtbar\" class=\"text-primary-400\">\n      {{data.barcode}}\n    </section> -->\n\n    <section class=\"overflow-hidden col-span-2 @3xl:col-auto\">{{data.title}}</section>\n\n    <section class=\"flex justify-end col-span-2 @3xl:col-auto\">\n      <ae-layout\n        v-if=\"params.showSetActiveButton && controller.isTodo\"\n        layout-id=\"f6bdd129-3852-4bac-9375-559b929486bc\"\n        :param-icon=\"'far fa-arrow-alt-up'\"\n        :param-title=\"'Als nächsten Wartungspunkt auswählen'\"\n        :param-classes=\"'w-12 h-10 rounded-md text-lg'\"\n        @selected=\"$emit('selected', document)\"\n      ></ae-layout>\n    </section>\n\n    <section\n      v-if=\"controller.isActiveWartung\"\n      class=\"flex absolute left-1 top-1 h-3 w-3\"\n      title=\"Dies ist der nächste Wartungspunkt\"\n    >\n      <span\n        class=\"animate-ping [animation-duration:2s] motion-reduce absolute inline-flex h-full w-full rounded-full bg-sky-400 opacity-75\"\n      ></span>\n      <span class=\"relative inline-flex rounded-full h-3 w-3 bg-sky-500\"></span>\n    </section>\n  </div>\n</div>\n\n  <!--\n  [result]: Select\n    - 0: \n    - 1: Begonnen\n    - 2: Abgeschlossen - Alles in Ordnung\n    - 3: Abgeschlossen - Teilweise nicht in Ordnung\n    - 4: Abgebrochen\n    \n  -->\n"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"1aa85e41-3996-4c97-bf6d-f994df9457ef","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-06-09T07:04:38+00:00","backedBy":"","by":"09763886-6748-4a56-8e0e-54a2293ee96b","client":"server","from":"","impersonatedBy":""},"p":"aa947792-4f31-40c9-9a6a-e1ad71697911","previous":{"v":"59f209f882584b6b"},"stamps":[],"t":1780988678672,"v":"6a626da66f491ad9"},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","71a3f943-571a-4e4f-a97c-dd809d6b10e4"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"222980f1-6c5a-4a87-bb25-2dfb9d0aa67e","text":"rd:page-inner","v":"21ef235b40894cef"},"created":{"at":"2023-11-24T12:54:37+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1700830477385,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:list","packages":[],"template":"<div \n  class=\"h-full overflow-hidden flex flex-col bg-white dark:bg-slate-800 pb-10\"\n  :data-test=\"'design' + '_' + design.data.name + '_' + 'documentForm_' + document.f.text\"\n>\n\n  <div class=\"flex items-center gap-4\">\n    <div class=\"text-2xl\">\n      Bestandseinträge\n    </div>\n\n  </div>\n\n  <ae-list class=\"h-full\"\n          list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\"\n          :root-document-id=\"document.id\"\n          query-id=\"f812861f-68c8-4818-9972-be7b5474c9b1\"\n          filter=\"f.id:50c3c7c5-c3d4-460c-b34d-0d61a4cb09ae\"\n          :sort=\"{ field: 'data.inventoryNumber', descending: true } \"\n          @selected=\"Aeppic.navigateTo($event, { tab: 'document' })\"\n          :param-selection-id=\"document.f.id\"\n          :param-enable-filter-bar=\"true\"\n          :param-divide=\"true\"\n          param-form-id=\"50c3c7c5-c3d4-460c-b34d-0d61a4cb09ae\"\n          :param-use-scroller=\"true\"\n          :param-scroller-height=\"100\"\n          :search-options=\"{ size: 9999, searchAllFields: true }\"\n          param-sort-fields=\"data.inventoryNumber,data.systemName,data.internalName,data.category,data.modificationTimestamp,data.creationTimestamp\"\n          :param-disable-filter=\"true\"\n          :param-design-params=\"{ hideIcon: true }\"\n          data-test=\"list_Bestandsliste\"\n  ></ae-list>\n</div>\n "},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"8d6034f5-14fe-4ae5-b58e-76305b9c5b88","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-07-15T12:48:37+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"222980f1-6c5a-4a87-bb25-2dfb9d0aa67e","text":"rd:page-inner","v":"21ef235b40894cef"},"p":"71a3f943-571a-4e4f-a97c-dd809d6b10e4","previous":{"v":"5c23dd8fbf1ad782"},"stamps":[],"t":1752583717111,"v":"16fd2f2acbe5e944"},{"a":["apps","45ada186-e9fd-451d-9dbd-2defc0b4f86f","4ec6a0e5-cf2d-4095-9b70-2e31a64d5679","a04c8913-db48-4e80-b20d-0f3cc17a778c"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2022-05-09T10:59:08+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1652093948112,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Ordner: 'a04c8913-db48-4e80-b20d-0f3cc17a778c',\n      Datei: 'dbee6e16-d63a-493c-bba6-505f79918f9f', \n      Seite: 'ffa650cf-e351-462e-baef-29f7c8f22d1b',\n      ReferencedFiles: 'b5883937-a590-4474-87fb-ed49ed3796f8'\n    }\n\n    locals.selectionHasDocuments = false\n    locals.referencedFiles = []\n    locals.showDropNowHint = false\n    locals.dropAssetSrc = null\n\n    const fakeDocumentAsHeader = {\n      id: 'rowHeading',\n      f: {\n        id: this.FORMS.Datei,\n      },\n      data: { name: 'Verknüpfte Dateien des Projektes' },\n    }\n\n    locals.documents = [] \n\n    const canEdit = await Aeppic.canEdit(document)\n    locals.canEdit = Aeppic.Account && Aeppic.Account.data.isGroupAccount === false && canEdit === true\n\n\n    const subscriptionQuery = [this.FORMS.Ordner, this.FORMS.Datei, this.FORMS.Seite].map(fid => `(p:${document.id} f.id:${fid})`).join(' OR ')\n    // const subscriptionQuery = `p:${document.id} (f.id:${this.FORMS.Ordner} OR f.id:${this.FORMS.Datei} OR f.id:${this.FORMS.Seite})`\n    const subscriptionCallback = (docs) => {\n      // const filteredToExcludeCustomers = docs.filter(doc => !(doc.f.id === this.FORMS.Ordner && (doc.data.client.id || doc.data.project.id)))\n      const [ folders, rest ] = docs.reduce((result, doc) => {\n        if (doc.f.id === this.FORMS.Ordner) {\n          result[0].push(doc)\n        } else {\n          result[1].push(doc)\n        }\n        return result\n      }, [[], []])\n\n      // console.log({filteredToExcludeCustomers})  \n      locals.documents = [...folders, ...rest]\n      if (locals.referencedFiles.length > 0) {\n        locals.documents = [...locals.documents, fakeDocumentAsHeader, ...locals.referencedFiles]\n      }\n    }\n\n    this.subscription = Aeppic.subscribe(subscriptionQuery, { size: 9999, sort: params.sort }, subscriptionCallback)\n\n    watchParam('sort', (sort) => {\n      Aeppic.updateSubscription(this.subscription, subscriptionQuery, { size: 9999, sort }, subscriptionCallback)\n    })\n\n    if (data.project && data.project.id || data.client && data.client.id) {\n      const referencedFilesDocument = await Aeppic.findOne(`p:${data.project.id} f.id:${this.FORMS.ReferencedFiles}`)\n\n      if (referencedFilesDocument) {\n        locals.referencedFiles = await Aeppic.getAll(referencedFilesDocument.data.files)\n        locals.documents = [...locals.documents, fakeDocumentAsHeader, ...locals.referencedFiles]\n      } \n    }\n\n    locals.dropAssetSrc = Aeppic.Content.getSrc(await Aeppic.get('c35b6681-b5e4-4e06-b7cc-7455bba75c7a'), 'file')\n  }\n\n  dragover(event) {\n    if (!locals.canEdit) {\n      event.dataTransfer.dropEffect = \"none\"\n      locals.showDropNowHint = false\n    } else {\n      event.dataTransfer.dropEffect = \"copy\"\n      locals.showDropNowHint = true\n    }\n  }\n\n  dragleave(event) {\n    locals.showDropNowHint = false\n  }\n\n\n  drop(event) {\n    locals.showDropNowHint = false\n\n    if (!locals.canEdit) {\n      return\n    }\n\n    $refs.dropHandler.$emit('drop', event)\n  }\n}","css":"","description":"","name":"rd:list","packages":[],"template":"<!-- <ae-design name=\"page--left\" :document=\"document\" param-overwrite-view=\"table\"></ae-design> -->\n<div class=\"relative h-full overflow-hidden flex flex-col bg-white dark:bg-slate-800\"\n      @drop.prevent.stop=\"controller.drop($event)\"\n      @dragover.prevent=\"controller.dragover($event)\"\n      @toolbar.prevent=\"controller.toolbarEvent($event.detail)\"\n  >\n  <div v-show=\"locals.showDropNowHint\"\n      class=\"absolute top-0 left-0 right-0 bottom-0 z-10 bg-neutral-50\"\n      @dragover.prevent=\"controller.dragover($event)\"\n      @dragleave.prevent=\"controller.dragleave($event)\"\n      @drop.prevent.stop=\"controller.drop($event)\"\n  >  \n    <div class=\"h-full w-full pointer-events-none flex flex-col items-center justify-center\">\n      <div class=\"pointer-events-none\">Dateien jetzt ablegen</div>\n      <img class=\"pointer-events-none h-1/2 w-1/2\" :src=\"locals.dropAssetSrc\" />\n    </div>\n  </div>\n  <!-- DO NOT PASS sort because locals.documents will be sorted by custom logic -->\n  <ae-list  class=\"h-full\" \n            list-id=\"a23ea6b1-92ed-4ebc-bd3f-cb4eb1ae6ee7\" \n            :filter=\"params.filter\"\n            :documents=\"locals.documents\"\n            param-designs=\"rd:icon,title,rd:creation-info\"\n            :param-designs-params=\"[{size: '8'},,{ compact: true }]\"\n            param-columns=\",data.name,modified.by\"\n            param-fixed-column-widths=\"50,,150\"\n            :param-row-headings=\"locals.rowHeadings\"\n            :param-debug=\"true\"\n            @selected=\"Aeppic.drillInto($event, arguments[1])\"\n  ></ae-list>  \n</div>\n\n<ae-layout  layout-id=\"8ae0359f-4d25-4d17-baf0-f69c006bd4ad\"\n            :param-show-ui=\"false\"\n            :param-document=\"document\"\n            param-file-form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\"\n            param-file-form-field=\"datei\"\n            param-file-name-to-field=\"name\"\n            param-directory-form-id=\"a04c8913-db48-4e80-b20d-0f3cc17a778c\"\n            :param-save-new-documents=\"true\"\n            ref=\"dropHandler\"\n></ae-layout> \n\n<ae-layout  layout-id=\"8c5c60ec-b7d1-4e46-a9ca-180c3c153179\"\n            :param-page-document-id=\"document.id\"\n            :param-show-ui=\"false\"\n            ref=\"selectionHandler\"\n            @selected-documents=\"locals.selectionHasDocuments = true\"\n            @unselected-documents=\"locals.selectionHasDocuments = false\"\n></ae-layout>\n"},"f":{"id":"design-form","text":"Design","v":"c2d9ae57c7a46896"},"id":"ba644612-8c9f-4819-a156-b2d33ed44f0e","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-12-01T14:09:04+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"a04c8913-db48-4e80-b20d-0f3cc17a778c","previous":{"v":"7249c169371b645d"},"stamps":[],"t":1764598144845,"v":"3ae2127b614714b9"},{"id":"ba6db95b-3a67-4083-b903-731c670ff7b1","v":"28e63f54f71c13db","cloneOf":{"id":"ba644612-8c9f-4819-a156-b2d33ed44f0e","v":"4d57dd96382ca71a","text":"rd:list"},"originalCloneOf":{"id":"ba644612-8c9f-4819-a156-b2d33ed44f0e","v":"4d57dd96382ca71a","text":"rd:list"},"previous":{"v":"a5dcc48aa1b55c68"},"p":"554234d4-1a0a-4f31-b6a1-7899ca841995","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"rd:list","template":"<!-- <ae-design name=\"page--left\" :document=\"document\" param-overwrite-view=\"table\"></ae-design> -->\n<div class=\"h-full overflow-hidden flex flex-col bg-white dark:bg-slate-800\"\n      @drop.prevent=\"controller.drop($event)\"\n      @dragover.prevent=\"controller.dragover($event)\"\n      @toolbar.prevent=\"controller.toolbarEvent($event.detail)\"\n  >\n  <!-- DO NOT PASS sort because locals.documents will be sorted by custom logic -->\n  <ae-list  class=\"h-full\" \n            list-id=\"a23ea6b1-92ed-4ebc-bd3f-cb4eb1ae6ee7\" \n            :filter=\"params.filter\"\n            :documents=\"locals.documents\"\n            param-designs=\"rd:icon,title,rd:creation-info\"\n            :param-designs-params=\"[{size: '8'},,{ compact: true }]\"\n            param-columns=\",data.name,modified.by\"\n            param-fixed-column-widths=\"50,,150\"\n            :param-row-headings=\"locals.rowHeadings\"\n            :param-debug=\"true\"\n            @selected=\"Aeppic.drillInto($event, arguments[1])\"\n  ></ae-list>  \n</div>\n\n<ae-layout  layout-id=\"f5a5c2a0-bf9c-4b44-b05b-8e545156df10\"\n            :param-show-ui=\"false\"\n            :param-document=\"document\"\n            param-file-form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\"\n            param-file-form-field=\"datei\"\n            param-file-name-to-field=\"name\"\n            param-directory-form-id=\"a04c8913-db48-4e80-b20d-0f3cc17a778c\"\n            :param-save-new-documents=\"true\"\n            ref=\"dropHandler\"\n></ae-layout> \n\n<ae-layout  layout-id=\"8c5c60ec-b7d1-4e46-a9ca-180c3c153179\"\n            :param-page-document-id=\"document.id\"\n            :param-show-ui=\"false\"\n            ref=\"selectionHandler\"\n            @selected-documents=\"locals.selectionHasDocuments = true\"\n            @unselected-documents=\"locals.selectionHasDocuments = false\"\n></ae-layout>\n","css":"","controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Ordner: 'a04c8913-db48-4e80-b20d-0f3cc17a778c',\n      Datei: 'dbee6e16-d63a-493c-bba6-505f79918f9f', \n      Seite: 'ffa650cf-e351-462e-baef-29f7c8f22d1b',\n      ReferencedFiles: 'b5883937-a590-4474-87fb-ed49ed3796f8'\n    }\n\n    locals.selectionHasDocuments = false\n    locals.referencedFiles = []\n\n    const fakeDocumentAsHeader = {\n      id: 'rowHeading',\n      f: {\n        id: this.FORMS.Datei,\n      },\n      data: { name: 'Verknüpfte Dateien des Projektes' },\n    }\n\n    locals.documents = [] \n\n    const canEdit = await Aeppic.canEdit(document)\n    locals.canEdit = Aeppic.Account && Aeppic.Account.data.isGroupAccount === false && canEdit === true\n\n\n    const subscriptionQuery = `p:${document.id} (f.id:${this.FORMS.Ordner} OR f.id:${this.FORMS.Datei} OR f.id:${this.FORMS.Seite})`\n    const subscriptionCallback = (docs) => {\n      // const filteredToExcludeCustomers = docs.filter(doc => !(doc.f.id === this.FORMS.Ordner && (doc.data.client.id || doc.data.project.id)))\n      const [ folders, rest ] = docs.reduce((result, doc) => {\n        if (doc.f.id === this.FORMS.Ordner) {\n          result[0].push(doc)\n        } else {\n          result[1].push(doc)\n        }\n        return result\n      }, [[], []])\n\n      // console.log({filteredToExcludeCustomers})  \n      locals.documents = [...folders, ...rest]\n      if (locals.referencedFiles.length > 0) {\n        locals.documents = [...locals.documents, fakeDocumentAsHeader, ...locals.referencedFiles]\n      }\n    }\n\n    this.subscription = Aeppic.subscribe(subscriptionQuery, { size: 9999, sort: params.sort }, subscriptionCallback)\n\n    watchParam('sort', (sort) => {\n      Aeppic.updateSubscription(this.subscription, subscriptionQuery, { size: 9999, sort }, subscriptionCallback)\n    })\n\n    if (data.project && data.project.id || data.client && data.client.id) {\n      const referencedFilesDocument = await Aeppic.findOne(`p:${data.project.id} f.id:${this.FORMS.ReferencedFiles}`)\n\n      if (referencedFilesDocument) {\n        locals.referencedFiles = await Aeppic.getAll(referencedFilesDocument.data.files)\n        locals.documents = [...locals.documents, fakeDocumentAsHeader, ...locals.referencedFiles]\n      } \n    }\n  }\n\n  async dragover(event) {\n    if (!locals.canEdit) {\n      event.dataTransfer.dropEffect = \"none\"\n    } else {\n      event.dataTransfer.dropEffect = \"copy\"\n    }\n  }\n\n  async drop(event) {\n    if (!locals.canEdit) {\n      return\n    }\n\n    $refs.dropHandler.$emit('drop', event)\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-12-13T13:32:47+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2024-03-22T11:00:38+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1711105238303,"ct":1702474367480,"a_depth":4,"a":["apps","45ada186-e9fd-451d-9dbd-2defc0b4f86f","4ec6a0e5-cf2d-4095-9b70-2e31a64d5679","554234d4-1a0a-4f31-b6a1-7899ca841995"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","9d6ee173-26fe-4472-a271-7667f717094e","6743ef9a-c21b-443f-91b8-4dd86886ee8c","5475727b-0e0c-412a-8452-23b9c5b242f2"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2022-05-11T10:01:55+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1652263315692,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.FORMS = {\n      Kunde: '8fc08287-dbcc-4e41-9d5d-28e4cd828943',\n      BoardSettings: '43420696-8097-4fc1-88e5-c69df9821470'\n    }\n    locals.settings = null\n\n    Aeppic.subscribe(`p:${document.id} f.id:${locals.FORMS.BoardSettings}`, { size: 1 }, (docs) => {\n      locals.settings = docs[0]\n    })\n  }\n}  ","css":"","description":"","name":"rd:list","packages":[],"template":"<!-- <ae-design name=\"rd:toolbar\" :document=\"document\"\n          :param-list-form-id=\"locals.FORMS.Kunde\"\n          param-sort-fields=\"data.name,data.hotness,data.kategorie,data.kundennummer,data.auftragsvolumen\"\n          param-filter-fields=\"data.kategorie,data.branche,data.verantwortlich,data.quelle,data.hotness\"\n></ae-design> -->\n\n<ae-list  list-id=\"a23ea6b1-92ed-4ebc-bd3f-cb4eb1ae6ee7\"\n          :search=\"'p:' + document.id + ' f.id:' + locals.FORMS.Kunde + ' ' + params.filter\"\n          @selected=\"Aeppic.drillInto($event)\"\n          :search-options=\"{ searchAllFields: true, size: 5000 }\"\n          :sort=\"['data.name', 'id']\"\n          :param-disable-filter-bar=\"true\"\n          :params=\"{ columns: 'data.name,data.kategorie,data.branche,data.kundennummer,data.verantwortlich', designs: ',,,,,table:avatar--small', headers: '', rowHeight: 52 }\"\n          class=\"h-full\"\n></ae-list>\n "},"f":{"id":"design-form","text":"Design","v":"c2d9ae57c7a46896"},"id":"c7b4491a-7b5e-4b99-b059-cc242e924c65","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-04-29T12:18:02+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"5475727b-0e0c-412a-8452-23b9c5b242f2","previous":{"v":"4ea35b20235a604e"},"stamps":[],"t":1745929082513,"v":"0957876bb9559bc2"},{"a":["apps","94a64d89-d204-4918-b147-d717914fb03e","f254ce25-42f1-4333-8ee7-23554bf746c1","cfd3ce74-9fa5-46c8-a9e9-cba33a3b8e70"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2024-03-19T10:24:07+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1710843847833,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      ProjectionFolder: 'ceb36ccd-fe60-4d73-b803-b4445c6e39d3',\n    }\n\n    locals.ready = false\n    locals.search = ''\n    locals.formId = ''\n    locals.sort = ''\n    locals.searchOptions = { size: 100, searchAllFields: true }\n    locals.documents = []\n\n    locals.projectionFolder = await this.getProjectionFolder()\n\n    if (locals.projectionFolder?.f.id === this.FORMS.ProjectionFolder) {\n      locals.documents = (await Aeppic.getAll(locals.projectionFolder.data.projects)).filter(Boolean)\n    } else {\n      if (locals.projectionFolder) {\n        const { params, configurationDocument, sort } = this.transformRepoFolder(locals.projectionFolder)\n        locals.tableConfiguration = configurationDocument\n        locals.tableSort = sort\n        locals.tableParams = params\n      } else {\n        const { params, configurationDocument, sort } = await this.parseTableConfiguration()\n        locals.tableConfiguration = configurationDocument\n        locals.tableSort = sort\n        locals.tableParams = params\n      }\n\n      locals.formId = locals.projectionFolder\n        ? '2add3026-2869-40ea-9e6d-dcb14ef0ba19'\n        : '98c77209-1245-43d6-90b5-8625183f470c'\n      locals.search = [\n        `p:${locals.projectionFolder ? locals.projectionFolder.id : document.id}`,\n        `f.id:${locals.formId}`,\n      ].join(' ')\n    }\n\n    locals.ready = true\n  }\n\n  async getProjectionFolder() {\n    return Aeppic.get(data.projectionFolder)\n  }\n\n  async parseTableConfiguration() {\n    const tableConfiguration = await Aeppic.findOne(`p:${document.id} f.id:repository-folder-form`)\n\n    return this.transformRepoFolder(tableConfiguration)\n  }\n\n  transformRepoFolder(repoFolder) {\n    const {\n      displayTableColumns: columns,\n      displayTableHeaders: headers,\n      displayTableDesigns: designs,\n      initialSort,\n      initialSortAsc,\n      showResetSorting,\n      rowHeight,\n      contentsForm,\n      filterFields,\n      sortFields,\n    } = repoFolder.data\n\n    const params = {\n      columns,\n      headers,\n      designs,\n      showResetSorting,\n      rowHeight,\n      contentsForm,\n      filterFields,\n      sortFields,\n    }\n\n    const sort = {\n      field: initialSort || 'data.name',\n      descending: initialSortAsc || null,\n    }\n\n    const configurationDocument = repoFolder.data.configurationDocument\n\n    return { params, configurationDocument, sort }\n  }\n \n  selected(project, args) {\n    // FIXME: drillInto does not support tab!\n    const projects = args.documents.map(projection => projection.data.document)\n    Aeppic.drillInto(project.data.document.id, { ...args, documents: projects, tab: 'project' })\n\n    // Aeppic.navigateTo(project.data.document.id, { tab: 'project' })\n  }\n}\n","css":"","description":"","name":"rd:list","packages":[],"template":"<div class=\"h-full overflow-hidden flex flex-col bg-white dark:bg-slate-800\">\n  <ae-design\n    class=\"p-2\"\n    name=\"rd:toolbar\"\n    :document=\"document\"\n    @view=\"locals.view = $event\"\n    @filter=\"locals.filter = $event\"\n    @sort=\"locals.sort = $event\"\n    :params=\"{ ...params, \n              listFormId: '2add3026-2869-40ea-9e6d-dcb14ef0ba19',\n              sortFields: 'data.name,data.status,data.prioritaet,data.nachweis,data.projektleiter,data.leitenderProjektleiter,data.projektleiterObjektplanung,data.projektleiterTragwerksplanung,data.projektleiterWaermeschutz,data.projektleiterNachhaltigkeit,data.projektleiterSchallschutz,data.projektleiterBrandschutz,data.projektleiterTga,data.projektleiterSachverstaendige,data.bauherr,data.ansprechpartner,data.empfehlungDurch,modified.at,created.at',\n              filterFields: 'data.name,data.status,data.prioritaet,data.nachweis,data.projektleiter,data.leitenderProjektleiter,data.projektleiterObjektplanung,data.projektleiterTragwerksplanung,data.projektleiterWaermeschutz,data.projektleiterNachhaltigkeit,data.projektleiterSchallschutz,data.projektleiterBrandschutz,data.projektleiterTga,data.projektleiterSachverstaendige,data.bauherr,data.ansprechpartner,data.empfehlungDurch,modified.at,created.at',\n               }\"\n  ></ae-design>\n\n  <template v-if=\"locals.ready\">\n    <ae-list\n      v-if=\"locals.documents.length\"\n      class=\"h-full\"\n      list-id=\"a23ea6b1-92ed-4ebc-bd3f-cb4eb1ae6ee7\"\n      :documents=\"locals.documents\"\n      :watch-documents=\"false\"\n      :search-options=\"{ searchAllFields: true }\"\n      :sort=\"locals.sort\"\n      :filter=\"locals.filter\"\n      param-designs=\"rd:icon,\"\n      :param-designs-params=\"[{size: '8'}]\"\n      param-columns=\",data.name,data.bauherr,data.projektleiter,data.leitenderProjektleiter,data.status,data.aufgaben,data.arbeitszeit,data.beauftragteZeit,data.dateien\"\n      param-layouts=\",86863fd6-025c-4545-a1d0-400acbabab34,,5f4ec9bf-9b94-4499-9cf4-dc022532f208,5f4ec9bf-9b94-4499-9cf4-dc022532f208,,4cb8a972-3438-4d4e-a2b0-af06e71cd592,020dab30-d265-44a6-bdf5-da5801762212,,44072156-8871-4a28-8f49-40ec52dd40d4\"\n      param-fixed-column-widths=\"50,,,60,60,,120,120,120,60\"\n      param-headers=\",,,Junior PL, Senior PL,\"\n      :param-debug=\"true\"\n      @selected=\"controller.selected($event, { ...arguments[1], tab: 'project' })\"\n      data-test=\"list_projects\"\n    ></ae-list>\n\n    <ae-list\n      v-else\n      class=\"h-full\"\n      list-id=\"a23ea6b1-92ed-4ebc-bd3f-cb4eb1ae6ee7\"\n      :search=\"locals.search\"\n      :param-infinite-scrolling=\"true\"\n      :search-options=\"locals.searchOptions\"\n      :watch-documents=\"true\"\n      :sort=\"locals.sort\"\n      :filter=\"locals.filter\"\n      param-designs=\"rd:icon,\"\n      :param-designs-params=\"[{size: '8'}]\"\n      param-columns=\",data.name,data.bauherr,data.projektleiter,data.leitenderProjektleiter,data.status,data.aufgaben,data.arbeitszeit,data.beauftragteZeit,data.dateien\"\n      param-layouts=\",86863fd6-025c-4545-a1d0-400acbabab34,,5f4ec9bf-9b94-4499-9cf4-dc022532f208,5f4ec9bf-9b94-4499-9cf4-dc022532f208,,4cb8a972-3438-4d4e-a2b0-af06e71cd592,020dab30-d265-44a6-bdf5-da5801762212,,44072156-8871-4a28-8f49-40ec52dd40d4\"\n      param-fixed-column-widths=\"50,,,60,60,,120,120,120,60\"\n      param-headers=\",,,Junior PL, Senior PL,\"\n      :param-debug=\"true\"\n      @selected=\"controller.selected($event, { ...arguments[1], tab: 'project' })\"\n      data-test=\"list_projects\"\n    ></ae-list>\n  </template>\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"f61f696c-6f26-4fbd-949a-aea5a55b1f5d","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-04-16T10:16:12+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"p":"cfd3ce74-9fa5-46c8-a9e9-cba33a3b8e70","previous":{"v":"32c863ae212ebb07"},"stamps":[],"t":1776334572125,"v":"595ff6b3b78666a0"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","347d38c6-0bce-47ce-b271-9f924c56ac49"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2025-11-13T11:37:49+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1763033869164,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.location = null\n    const facility = await Aeppic.get(data.facility)\n    locals.location = await Aeppic.resolve(facility, 'AppKeeptrack-TechnischerPlatz').catch(() => null)\n  }\n}","css":"","description":"","name":"rd:location","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<ae-design :name=\"params.designName || 'title'\" :document=\"locals.location\"></ae-design>"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"5c61c1e5-ea90-4427-9e3b-3bf943cdae8a","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-02-09T08:00:41+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"p":"347d38c6-0bce-47ce-b271-9f924c56ac49","previous":{"v":"4239611cc5e25341"},"stamps":[],"t":1770624041945,"v":"5c35c71c733cf078"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","33e3b54d-6b4b-4aa3-8f70-2b834b27bf66"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"f4cf8b58-4f41-4e52-8c70-a7cbdc25c060","text":"rd:location-title","v":"07e5af7f2b9dee4f"},"created":{"at":"2025-10-27T12:34:58+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1761568498200,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:location-address","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<ae-design name=\"rd:address\" :document-id=\"data.location.id\" :params=\"params\" v-on=\"$listeners\"></ae-design>"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"f63bba41-e180-4111-af08-e70a46b4615b","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-10-27T12:36:50+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"f4cf8b58-4f41-4e52-8c70-a7cbdc25c060","text":"rd:location-title","v":"07e5af7f2b9dee4f"},"p":"33e3b54d-6b4b-4aa3-8f70-2b834b27bf66","previous":{"v":"23a9f9f3e121ec7b"},"stamps":[],"t":1761568610758,"v":"06c48db0832e8947"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","093f533e-9758-479c-97bc-8e4ba7dc3c2d"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"d9d56ab1-29de-4899-a483-47aaa40abe80","text":"rd:address","v":"90523067f78013a3"},"created":{"at":"2025-10-27T12:00:09+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1761566409293,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:location-title","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"{{data.location}}\n"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"800ee26f-912b-4fff-92c6-b2773f0c3c80","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-10-27T12:35:32+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"d9d56ab1-29de-4899-a483-47aaa40abe80","text":"rd:address","v":"90523067f78013a3"},"p":"093f533e-9758-479c-97bc-8e4ba7dc3c2d","previous":{"v":"ba678d3cb59fa88f"},"stamps":[],"t":1761568532901,"v":"812921c4b668670d"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","33e3b54d-6b4b-4aa3-8f70-2b834b27bf66"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2025-08-26T13:47:30+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1756216050122,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:location-title","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<ae-design name=\"rd:location-title\" :document-id=\"data.location.id\" :params=\"params\" v-on=\"$listeners\"></ae-design>"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"f4cf8b58-4f41-4e52-8c70-a7cbdc25c060","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-10-27T12:35:49+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"33e3b54d-6b4b-4aa3-8f70-2b834b27bf66","previous":{"v":"07e5af7f2b9dee4f"},"stamps":[],"t":1761568549755,"v":"1eeee732cd88a387"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","46a28dfa-7518-4867-9519-a5f4cd9b9967"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"2f9343a8-d801-4c10-92df-0c4cb7990149","text":"rd:maintenance-card","v":"d89c5bab52704f3a"},"created":{"at":"2025-10-21T09:51:07+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1761040267138,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.form = null\n    locals.statusInfo = null\n    locals.form = await Aeppic.getFormForDocument(document)\n    \n    \n    locals.statusInfo = locals.form.getField('status').settings.options.find(option => option.value === data.status)\n  }\n}","css":"","description":"","name":"rd:maintenance-card","packages":[],"template":"<div\n  class=\"rounded-lg bg-white p-2 border border-slate-200 flex flex-col\"\n>\n  <div class=\"flex justify-between items-center\">\n    <div class=\"flex flex-col\">\n      <span class=\"font-bold text-lg\"> {{ data.name }} </span>\n      <div\n        v-if=\"locals.statusInfo\"\n        :title=\"locals.statusInfo.display\"\n      >\n        <ae-icon\n          :class=\"[locals.statusInfo.tags.icon, locals.statusInfo.tags.iconColor]\"\n        ></ae-icon>\n      </div>\n     \n      <ae-design name=\"rd:date\" :document=\"document\" param-field-name=\"created.at\"\n      class=\"font-sm text-primary-500\"\n      ></ae-design>\n\n\n    </div>\n\n    <ae-layout\n      layout-id=\"a2cd7699-9b46-494f-8f89-cb1f62151d82\"\n      param-text=\"Öffnen\"\n      :param-disabled=\"params.readonly\"\n      @selected=\"$emit('selected', document)\"\n    ></ae-layout>\n  </div>\n\n  <!-- <template v-if=\"data.description.length > 0\">\n    <span v-if=\"data.description.length < 200\" class=\"mt-4 font-sm text-primary-500\">{{ data.description }}</span>\n    <div v-else class=\"flex flex-col\">\n      <span v-if=\"locals.collapsed\" class=\"mt-4 font-sm text-primary-500\">{{ data.description.slice(0, 200) }}...</span>\n      <span v-else class=\"mt-4 font-sm text-primary-500\">{{ data.description }}</span>\n\n      <ae-layout\n        class=\"self-center\"\n        layout-id=\"a2cd7699-9b46-494f-8f89-cb1f62151d82\"\n        :param-icon=\"locals.collapsed ? 'far fa-caret-down' : 'far fa-caret-up'\"\n        @selected=\"locals.collapsed = !locals.collapsed\"\n      ></ae-layout>\n    </div>\n  </template> -->\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"30eecf1f-0982-43fa-bbd6-a8114a066f3f","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-02-06T12:25:55+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"2f9343a8-d801-4c10-92df-0c4cb7990149","text":"rd:maintenance-card","v":"d89c5bab52704f3a"},"p":"46a28dfa-7518-4867-9519-a5f4cd9b9967","previous":{"v":"cf329eaa3b752f18"},"stamps":[],"t":1770380755504,"v":"4290ea018d724949"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","02132d06-c73b-4101-bde0-2fe98224a35a"],"a_depth":3,"a_forms":["folder","application-form","design-folder"],"cloneOf":{"id":"5e7f0841-77be-4ed2-80f8-7e06831828e3","text":"rd:card","v":"94bb3eb7ff4e8a4e"},"created":{"at":"2026-02-12T12:43:06+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"ct":1770900186762,"data":{"aliases":[],"controller":"class Controller {\n  init() {\n    locals.innerParams = {\n      outerDivClasses: null,\n      clickHandler: null,\n    }\n  }\n\n  mounted() {\n    const el = $refs.card\n    if (!el) return    \n\n    el.setAttribute('data-aeppic-sharedscope', this.scopeName)\n    this.shared = Aeppic.SharedContext.forElement(el)\n    locals.innerParams = this.shared.set('innerParams', locals.innerParams)\n  }\n\n  get scopeName() {\n    return `designName:${design.data.name},documentId:${document.id}`\n  }\n}","css":"","description":"","name":"rd:maintenance-card","packages":[],"template":"<div\n  class=\"p-2 rounded-md size-full\"\n  :class=\"[ locals.innerParams.outerDivClasses ?? 'bg-white', !params.noBorder && 'border border-secondary-200']\"\n  @click.stop=\"locals.innerParams.clickHandler ? locals.innerParams.clickHandler() : $emit('selected', document)\"\n  ref=\"card\"\n  :data-test=\"'design' + '_' + design.data.name + '_' + 'documentForm_' + document.f.text\"\n  :data-document-id=\"document.id\"\n>\n  <ae-design\n    name=\"rd:maintenance-card-inner\"\n    class=\"size-full\"\n    :document=\"document\"\n    :params=\"params\"\n    v-on=\"$listeners\"\n  ></ae-design>\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"58cebe44-078f-46d1-a3c6-8e661a8bfec6","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2026-03-27T08:45:57+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"5e7f0841-77be-4ed2-80f8-7e06831828e3","text":"rd:card","v":"94bb3eb7ff4e8a4e"},"p":"02132d06-c73b-4101-bde0-2fe98224a35a","previous":{"v":"dfd4f94cffa5cf72"},"stamps":[],"t":1774601157515,"v":"eb6e7798d01c6be3"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","f5850e39-8581-4b62-8cfe-f4fa95009a1a"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2025-08-05T11:56:10+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1754394974075,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.opening = false\n\n    locals.fallbackImage = null\n    locals.images = []\n\n    const [ fallbackImage, images ] = await Promise.all([\n      Aeppic.get('f9908d90-eb80-4973-86cc-3d424fd85b93'),\n      Aeppic.getAll(data.images)\n    ])\n\n    locals.fallbackImage = fallbackImage\n    locals.images = images.filter(Boolean)\n  }\n\n  async open() {\n    locals.opening = true\n\n    const result = await Aeppic.Commands.execute('3fab192e-1564-41a0-8388-05c8fbe95453', document, {}, { navigation: true })\n\n    locals.opening = false\n  }\n\n  get backgroundImageUrl() {\n    if (locals.images.length > 0) {\n      const image = locals.images[0]\n      return `url(${Aeppic.Content.getSrc(image, 'datei', { noCache: true })})`\n    }\n\n    if (locals.fallbackImage) {\n      return `url(${Aeppic.Content.getSrc(locals.fallbackImage, 'file', { noCache: true })})` \n    }\n    \n    return ''\n  }\n\n  get backgroundStyle() {\n    return {\n      'background': `${this.backgroundImageUrl}`\n    }\n  }\n} ","css":"","description":"","name":"rd:maintenance-card","packages":[],"template":"<div class=\"rounded-lg min-h-40 min-full rounded-lg border border-slate-200 flex  text-white relative\"\n  :class=\"[!data.drawing?.dataUrl && 'bg-white' ]\"\n  :style=\"controller.backgroundStylee\"\n  :data-test=\"'design' + '_' + design.data.name + '_' + 'documentForm_' + document.f.text\"\n> \n  <!-- Background Image -->\n  <div\n    class=\"overflow-hidden rounded-lg absolute inset-0\"\n    data-test=\"background-images\"\n  >\n    <!-- Blurred -->\n    <template v-if=\"controller.backgroundImageUrl\">\n      <div\n        class=\"absolute -inset-5 z-0\" \n        :style=\"{ \n          'background-image': controller.backgroundImageUrl, \n          'background-size': 'cover', \n          'filter': 'blur(7px) brightness(0.5)'\n        }\"\n        data-test=\"background-images_blurred\"\n      ></div>\n      <!-- Normal -->\n      <div\n        class=\"xabsolute xinset-2 xz-1 absolute left-1/2 -translate-x-[20%] w-1/2 inset-y-2 z-1\"\n        :style=\"{ \n          'background-image': controller.backgroundImageUrl, \n          'background-size': 'contain',\n          'background-repeat': 'no-repeat',\n          'background-position': 'center'\n        }\"\n        data-test=\"background-images_normal\"\n      ></div>\n    </template>\n    <div\n      v-else\n      class=\"size-full [background:linear-gradient(to_right,rgba(0,0,0,0.65)_0%,rgba(0,0,0,0)_100%)]\"\n      data-test=\"background-images_fallback\"\n    ></div>\n  </div>\n\n  <div class=\"overflow-hidden rounded-lg relative size-full\">\n\n    <section class=\"w-full p-2 flex flex-col text-xl rounded-lg\"> \n      <h2 class=\"text-1xl font-bold w-1/3\">\n        <ae-design name=\"title\" :document=\"document\" param-whiteSpace=\"normal\"></ae-design>\n      </h2>\n      <!-- <span>{{document.data.identifier}}</span> -->\n      <span class=\"flex-1\"></span>\n      <!-- <ae-design class=\"font-bold\" name=\"rd:location-title\" :document=\"locals.facility\"></ae-design> \n      <ae-design name=\"rd:location-address\" :document=\"locals.facility\"></ae-design> -->\n    </section>\n    \n    <section class=\"flex-1\">\n    </section>\n\n    <section v-if=\"data.signature.dataUrl\" class=\"bg-white text-black p-4 overflow-hidden [text-shadow:initial] rounded-r-lg inline-block\" data-test=\"signature\">\n      <div class=\"text-xs\">Unterschrift</div>\n\n      <div class=\"flex gap-1 items-center\" data-test=\"signature_who\">\n        <ae-design name=\"avatar--resizes-with-font\" :document-id=\"document.modified.by\"></ae-design>\n        <ae-design name=\"profile-title\" :document-id=\"document.modified.by\"></ae-design>\n      </div>\n\n      <img class=\"flex-1  w-[70px]\" :src=\"Aeppic.Content.getSrc(document, 'signature')\" data-test=\"signature_image\">\n      <div class=\"text-sm\" data-test=\"signature_date\">{{ Aeppic.DateTime.fromISO(document.modified.at).toLocaleString(Aeppic.DateTime.DATETIME_SHORT) }}</div>\n    </section>\n\n  </div>\n\n  <section class=\"absolute right-0 bottom-0 p-2 flex items-end justify-end z-5\">\n      <ae-layout  layout-id=\"a2cd7699-9b46-494f-8f89-cb1f62151d82\"\n                  param-text=\"Öffnen\"\n                  :param-icon=\"locals.opening ? 'far fa-spinner-third fa-spin' : ''\"\n                  @selected=\"controller.open()\"\n                  :param-disabled=\"params.readonly || locals.opening\"\n      ></ae-layout>\n    </section> \n\n</div> "},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"a3ba1f14-7d0e-455b-adf1-bc23c9cf921d","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-02-02T13:12:09+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"p":"f5850e39-8581-4b62-8cfe-f4fa95009a1a","previous":{"v":"37904f7b3139e096"},"stamps":[],"t":1770037929482,"v":"0e1148a8818da79d"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","1e3214b4-b81e-4ac2-a788-c2051af016ab"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"2b9bab73-71e1-469f-b017-256651a323be","text":"rd:maintenance-card-inner","v":"23eb50bbfc842a7d"},"created":{"at":"2026-02-13T12:57:27+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"ct":1770987447873,"data":{"aliases":[],"controller":"class Controller {\n  init() {\n    locals.innerParams = {\n      outerDivClasses: null,\n    }\n  }\n\n  mounted() {\n    const targetScope = `designName:rd:maintenance-card,documentId:${document.id}`\n\n    SharedContext.set(targetScope, 'innerParams', {\n      outerDivClasses: 'bg-white',\n      clickHandler: null,\n    })\n  }\n}","css":"","description":"","name":"rd:maintenance-card-inner","packages":[],"template":"<ae-design\n  name=\"rd:maintenance-card-inner-layout\"\n  :document=\"document\"\n  v-on=\"$listeners\"\n  class=\"contents\"\n  :params=\"params\"\n></ae-design>"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"1c102f20-98bb-41b6-951c-b16185a47f29","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-03-09T14:44:42+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"2b9bab73-71e1-469f-b017-256651a323be","text":"rd:maintenance-card-inner","v":"23eb50bbfc842a7d"},"p":"1e3214b4-b81e-4ac2-a788-c2051af016ab","previous":{"v":"992e060f1faa23bd"},"stamps":[],"t":1773067482184,"v":"b2367ca7b0992968"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","5f4a87a7-5557-4004-bfdc-2fb26c71e0c9"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2025-08-07T14:08:13+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1754575693869,"data":{"aliases":[],"controller":"class Controller {\n  init() {\n    locals.innerParams = {\n      outerDivClasses: null,\n    }\n  }\n\n  mounted() {\n    const targetScope = `designName:rd:maintenance-card,documentId:${document.id}`\n\n    SharedContext.set(targetScope, 'innerParams', {\n      outerDivClasses: 'bg-white',\n      clickHandler: null,\n    })\n  }\n}","css":"","description":"","name":"rd:maintenance-card-inner","packages":[],"template":"<ae-design\n  name=\"rd:maintenance-card-inner-layout\"\n  :document=\"document\"\n  v-on=\"$listeners\"\n  class=\"contents\"\n  :params=\"params\"\n></ae-design>"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"2b9bab73-71e1-469f-b017-256651a323be","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-03-09T14:43:52+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"p":"5f4a87a7-5557-4004-bfdc-2fb26c71e0c9","previous":{"v":"f1b94013687d9b65"},"stamps":[],"t":1773067432596,"v":"034b863cda760309"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","1b166603-d0f3-4f16-98c4-0534afbd6f5a"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2025-08-06T17:34:07+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1754501647844,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:maintenance-card-inner","packages":[],"template":"<div>\n  <!-- <ae-design name=\"rd:card\" :document=\"data.object\"></ae-design> -->\n  <ae-design\n    v-if=\"data.maintenance.id\"\n    name=\"rd:maintenance-card-inner\"\n    :document=\"data.maintenance\"\n    :params=\"{ readonly: !data.released }\"\n    @selected=\"$emit('selected', document)\"\n  ></ae-design>\n  <div v-else class=\"italic text-red-600\">\n    <ae-icon class=\"fa fa-circle-exclamation\"></ae-icon>\n    Keine Wartung hinterlegt. Bitte Verwalter kontaktieren.\n  </div>\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"2f9343a8-d801-4c10-92df-0c4cb7990149","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-02-06T10:12:59+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"p":"1b166603-d0f3-4f16-98c4-0534afbd6f5a","previous":{"v":"d3ff4334f732abb1"},"stamps":[],"t":1770372779170,"v":"cb222ddc14498605"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","347d38c6-0bce-47ce-b271-9f924c56ac49"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2025-08-05T11:28:39+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1754394719755,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.collapsed = true\n\n    locals.form = null\n    locals.statusInfo = null\n    locals.form = await Aeppic.getFormForDocument(document)\n    \n    locals.statusInfo = locals.form.getField('status').settings.options.find(option => option.value === data.status)\n  }\n}","css":"","description":"","name":"rd:maintenance-card-inner","packages":[],"template":"<div\n  class=\"crounded-lg cbg-white cp-2 cborder cborder-slate-200 flex flex-col\"\n>\n  <div class=\"flex justify-between items-center\">\n    <div class=\"flex flex-col\">\n      <span class=\"font-bold text-lg\"> {{ data.name }} </span>\n      <div\n        v-if=\"locals.statusInfo\"\n        :title=\"locals.statusInfo.display\"\n      >\n        <ae-icon\n          :class=\"[locals.statusInfo.tags.icon, locals.statusInfo.tags.iconColor]\"\n        ></ae-icon>\n      </div>\n\n      <div class=\"font-sm text-primary-500\">{{ data.parts.length}} Wartungsteile</div>\n      <ae-design name=\"rd:date\" :document=\"document\" param-field-name=\"created.at\"\n      class=\"font-sm text-primary-500\" param-format=\"dd.MM.yyyy HH:mm\"\n      ></ae-design>\n\n      <ae-design name=\"rd:location\" :document=\"document\"></ae-design>\n    </div>\n\n    <ae-layout\n      layout-id=\"a2cd7699-9b46-494f-8f89-cb1f62151d82\"\n      param-text=\"Öffnen\"\n      :param-disabled=\"params.readonly\"\n      @selected=\"$emit('selected', document)\"\n    ></ae-layout>\n  </div>\n\n  <template v-if=\"data.description.length > 0\">\n    <span v-if=\"data.description.length < 200\" class=\"mt-4 font-sm text-primary-500\">{{ data.description }}</span>\n    <div v-else class=\"flex flex-col\">\n      <span v-if=\"locals.collapsed\" class=\"mt-4 font-sm text-primary-500\">{{ data.description.slice(0, 200) }}...</span>\n      <span v-else class=\"mt-4 font-sm text-primary-500\">{{ data.description }}</span>\n\n      <ae-layout\n        class=\"self-center\"\n        layout-id=\"a2cd7699-9b46-494f-8f89-cb1f62151d82\"\n        :param-icon=\"locals.collapsed ? 'far fa-caret-down' : 'far fa-caret-up'\"\n        @selected=\"locals.collapsed = !locals.collapsed\"\n      ></ae-layout>\n    </div>\n  </template>\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"49c90e40-b74f-4537-a542-b6807df672e4","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-02-06T10:32:32+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"p":"347d38c6-0bce-47ce-b271-9f924c56ac49","previous":{"v":"6397229fb1a94e20"},"stamps":[],"t":1770373952863,"v":"21cf4cfdde81de7a"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","093f533e-9758-479c-97bc-8e4ba7dc3c2d"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"1c102f20-98bb-41b6-951c-b16185a47f29","text":"rd:maintenance-card-inner","v":"initial"},"created":{"at":"2026-02-13T14:33:22+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"ct":1770993202026,"data":{"aliases":[],"controller":"class Controller {\n  init() {\n    locals.innerParams = {\n      outerDivClasses: null,\n    }\n  }\n\n  mounted() {\n    const targetScope = `designName:rd:maintenance-card,documentId:${document.id}`\n\n    SharedContext.set(targetScope, 'innerParams', {\n      outerDivClasses: 'bg-white',\n      clickHandler: null,\n    })\n  }\n}","css":"","description":"","name":"rd:maintenance-card-inner","packages":[],"template":"<ae-design\n  name=\"rd:maintenance-card-inner-layout\"\n  :document=\"document\"\n  v-on=\"$listeners\"\n  class=\"contents\"\n  :params=\"params\"\n></ae-design>"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"7272e87d-7c10-4456-98eb-937a09457785","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-03-09T14:45:20+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"1c102f20-98bb-41b6-951c-b16185a47f29","text":"rd:maintenance-card-inner","v":"initial"},"p":"093f533e-9758-479c-97bc-8e4ba7dc3c2d","previous":{"v":"f0338ef1da64d2d2"},"stamps":[],"t":1773067520936,"v":"c617433b53530d15"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","5a4fafb4-3c2b-4826-8a85-7c804ee4ac52"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"2b9bab73-71e1-469f-b017-256651a323be","text":"rd:maintenance-card-inner","v":"23eb50bbfc842a7d"},"created":{"at":"2026-02-13T12:30:03+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"ct":1770985803892,"data":{"aliases":[],"controller":"class Controller {\n  init() {\n    locals.innerParams = {\n      outerDivClasses: null,\n    }\n  }\n\n  mounted() {\n    const targetScope = `designName:rd:maintenance-card,documentId:${document.id}`\n\n    SharedContext.set(targetScope, 'innerParams', {\n      outerDivClasses: 'bg-white',\n      clickHandler: null,\n    })\n  }\n}","css":"","description":"","name":"rd:maintenance-card-inner","packages":[],"template":"<ae-design\n  name=\"rd:maintenance-card-inner-layout\"\n  :document=\"document\"\n  v-on=\"$listeners\"\n  class=\"contents\"\n  :params=\"params\"\n></ae-design>"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"8cb358f7-a29b-4cc2-8301-99e605d11653","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-03-09T14:44:18+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"2b9bab73-71e1-469f-b017-256651a323be","text":"rd:maintenance-card-inner","v":"23eb50bbfc842a7d"},"p":"5a4fafb4-3c2b-4826-8a85-7c804ee4ac52","previous":{"v":"bba8faab55c5ffe0"},"stamps":[],"t":1773067458160,"v":"6b90760133a43903"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","aa49f5c2-0502-4b7e-8ffd-4ac90427420e"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2025-08-06T17:11:09+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1754500269609,"data":{"aliases":[],"controller":"class Controller {\n  init() {\n    this._initialize(params.showSelectedButton)\n\n    watchParam('showSelectedButton', (value) => this._initialize(value))\n  }\n\n  _initialize(showSelectedButton) {\n    locals.buttons = [\n      showSelectedButton && {\n        eventName: 'selected',\n        params: { text: 'Auswählen' },\n      },\n    ].filter(Boolean)\n  }\n\n  emit(button) {\n    const eventName = button.eventName\n\n    if (!button.eventName) {\n      console.warn(`Button pressed with no event name associated.`)\n      return\n    }\n\n    $emit(eventName, document)\n  }\n}\n","css":"","description":"","name":"rd:maintenance-card-inner","packages":[],"template":"<div class=\"flex justify-between items-center\">\n  <section class=\"flex flex-col gap-1\">\n    <div class=\"flex flex-col\">\n      <ae-design class=\"text-xl mb-1\" name=\"title\" :document=\"document\"></ae-design>\n\n      <section v-if=\"data.type === 'INTERNAL'\">\n        <ae-layout\n          layout-id=\"ffd34105-fa6a-44f5-aa63-64923233f178\"\n          :param-employees=\"data.employee\"\n          class=\"text-4xl\"\n        ></ae-layout>\n      </section>\n      <section v-else>\n        <div>\n          <ae-icon class=\"fa fa-user\"></ae-icon>\n          <span>{{data.contact}}</span>\n        </div>\n        <div v-if=\"data.mail.length\">\n          <ae-icon class=\"fa fa-envelope\"></ae-icon>\n          <span> {{ data.mail.join(', ')}} </span>\n        </div>\n        <div v-if=\"data.phone.length\">\n          <ae-icon class=\"fa fa-phone\"></ae-icon>\n          <span> {{ data.phone.join(', ')}} </span>\n        </div>\n      </section>\n    </div>\n  </section>\n\n  <div class=\"flex gap-2\">\n    <ae-layout\n      v-for=\"button of locals.buttons\"\n      layout-id=\"f6bdd129-3852-4bac-9375-559b929486bc\"\n      @selected=\"controller.emit(button)\"\n      :param-disabled=\"params.readonly\"\n      :params=\"button.params\"\n    ></ae-layout>\n  </div>\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"aa6f301a-5e16-4396-99a3-14ffde8dc2fa","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-03-02T09:23:02+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"p":"aa49f5c2-0502-4b7e-8ffd-4ac90427420e","previous":{"v":"eba261e32d43e7b2"},"stamps":[],"t":1772443382201,"v":"ccc81aa9121903c9"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","33e3b54d-6b4b-4aa3-8f70-2b834b27bf66"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"fd454dda-33dc-468e-a694-4f29103baa01","text":"rd:maintenance-card-inner","v":"bb8e2231ad699a52"},"created":{"at":"2026-02-13T14:45:59+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"ct":1770993959376,"data":{"aliases":[],"controller":"class Controller {\n  init() {\n    locals.innerParams = {\n      outerDivClasses: null,\n    }\n  }\n\n  mounted() {\n    const targetScope = `designName:rd:maintenance-card,documentId:${document.id}`\n\n    SharedContext.set(targetScope, 'innerParams', {\n      outerDivClasses: 'bg-white',\n      clickHandler: null,\n    })\n  }\n}","css":"","description":"","name":"rd:maintenance-card-inner","packages":[],"template":"<ae-design\n  name=\"rd:maintenance-card-inner-layout\"\n  :document=\"document\"\n  v-on=\"$listeners\"\n  class=\"contents\"\n  :params=\"params\"\n></ae-design>"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"d9eabe32-3bf5-443f-8a38-d39168e22b66","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-03-09T14:45:36+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"fd454dda-33dc-468e-a694-4f29103baa01","text":"rd:maintenance-card-inner","v":"bb8e2231ad699a52"},"p":"33e3b54d-6b4b-4aa3-8f70-2b834b27bf66","previous":{"v":"f7de111c4da0a3da"},"stamps":[],"t":1773067536850,"v":"a34777d12ac45903"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","31e6efab-61df-4b91-8250-3bfcfd491c6c"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"7272e87d-7c10-4456-98eb-937a09457785","text":"rd:maintenance-card-inner","v":"initial"},"created":{"at":"2026-02-13T14:43:48+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"ct":1770993828700,"data":{"aliases":[],"controller":"class Controller {\n  init() {\n    locals.innerParams = {\n      outerDivClasses: null,\n    }\n  }\n\n  mounted() {\n    const targetScope = `designName:rd:maintenance-card,documentId:${document.id}`\n\n    SharedContext.set(targetScope, 'innerParams', {\n      outerDivClasses: 'bg-white',\n      clickHandler: null,\n    })\n  }\n}","css":"","description":"","name":"rd:maintenance-card-inner","packages":[],"template":"<ae-design\n  name=\"rd:maintenance-card-inner-layout\"\n  :document=\"document\"\n  v-on=\"$listeners\"\n  class=\"contents\"\n  :params=\"params\"\n></ae-design>"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"fd454dda-33dc-468e-a694-4f29103baa01","inheritedLocks":[null,null,null,null,null],"locks":[],"meta":{},"modified":{"at":"2026-03-09T14:45:03+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"7272e87d-7c10-4456-98eb-937a09457785","text":"rd:maintenance-card-inner","v":"initial"},"p":"31e6efab-61df-4b91-8250-3bfcfd491c6c","previous":{"v":"8d54e8cbf69628da"},"stamps":[],"t":1773067503558,"v":"192569d163ce8498"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","5a4fafb4-3c2b-4826-8a85-7c804ee4ac52"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"bcb87fab-b95b-4e46-8c38-5b3bfc495373","text":"rd:card-inner","v":"5a7f207b462cf8f8"},"created":{"at":"2026-02-05T14:54:58+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"ct":1770303298420,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.area = null\n    locals.area = await Aeppic.resolve(document, 'AppKeeptrack-Areal').catch(() => null)\n    locals.icon = (await Aeppic.getFormForDocument(document))?.data.namedIcon || ''\n  }\n\n  get hiddenClasses() {\n    return \"hidden @[200px]:block\"\n  }\n\n  get reverseHiddenClasses() {\n    return \"@[200px]:hidden block\"\n  }\n}","css":"","description":"","name":"rd:maintenance-card-inner old","packages":[],"template":"<div \n  class=\"flex gap-1 items-center size-full @container justify-between\" \n  @click.stop=\"$emit('selected', document)\"\n>  \n  <section class=\"flex gap-2\">\n    <div :class=\"controller.hiddenClasses\">\n      <ae-design\n        class=\"size-full\"\n        :document=\"document\"\n        name=\"rd:thumbnail\"\n        :params=\"{width: '60px', height: '60px'}\"\n        :param-hide-name=\"true\"\n      ></ae-design>\n    </div>\n\n    <div class=\"flex flex-col justify-center ml-1 overflow-hidden\">\n      <ae-design\n        :document=\"document\"\n        name=\"title\"\n      ></ae-design>\n      \n      <ae-design\n        v-if=\"locals.area\"\n        class=\"text-xs text-gray-500 truncate\"\n        :document-id=\"locals.area.id\"\n        name=\"title\"\n      ></ae-design>\n    </div>\n  </section>\n\n  <div class=\"flex flex-col\">\n    <div v-if=\"params.byObjectId?.[document.id]?.maintenances.length\">\n      Wartungen: {{params.byObjectId?.[document.id].maintenances.length}}\n    </div>\n    <div v-if=\"params.byObjectId?.[document.id]?.repairs.length\" class=\"text-error-500\">\n      Mängelmeldungen: {{params.byObjectId?.[document.id].repairs.length}}\n    </div>\n  </div>\n\n  <ae-layout\n    class=\"\"\n    layout-id=\"f6bdd129-3852-4bac-9375-559b929486bc\"\n    param-text=\"Auswählen\"\n    @selected=\"$emit('selected', document)\"\n    :param-disabled=\"params.readonly\"\n    v-if=\"!params.noCommands\"\n  ></ae-layout>\n</div>"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"bd065426-3c57-41b5-ac51-a5eb198230ca","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-02-13T12:29:26+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"bcb87fab-b95b-4e46-8c38-5b3bfc495373","text":"rd:card-inner","v":"5a7f207b462cf8f8"},"p":"5a4fafb4-3c2b-4826-8a85-7c804ee4ac52","previous":{"v":"99ecb89898e1c8b1"},"stamps":[],"t":1770985766901,"v":"4fac53c5e9f45e74"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","02132d06-c73b-4101-bde0-2fe98224a35a"],"a_depth":3,"a_forms":["folder","application-form","design-folder"],"cloneOf":{"id":"58cebe44-078f-46d1-a3c6-8e661a8bfec6","text":"rd:maintenance-card","v":"74aec45e3e688a1f"},"created":{"at":"2026-02-12T14:07:25+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"ct":1770905245293,"data":{"aliases":[],"controller":"class Controller {\n  init() {\n    this.cloneWatcher = null\n    locals.waitingForClone = false\n  }\n\n  get buttons() {\n    return [\n      params.showSelectedButton && {\n        eventName: 'selected',\n        params: { text: 'Auswählen' }\n      }, \n      params.showEditButton && {\n        eventName: 'edit',\n        params: { text: 'Editieren' }\n      }, \n      params.showCloneButton && {\n        eventName: 'clone',\n        params: { text: 'Duplizieren' , disabled: locals.waitingForClone}\n      }, \n      params.showDeleteButton && {\n        eventName: 'delete',\n        params: { icon: 'far fa-trash', disabled: true }\n      }, \n    ].filter(Boolean)\n  }\n\n  async emit(button) {\n    const eventName = button.eventName\n    \n    if (!eventName) {\n      console.warn(`Button pressed with no event name associated.`)\n      return\n    }\n\n    if (eventName === 'clone') {\n      this.handleClone()\n    }\n    \n    $emit(eventName, document)\n  }\n\n  async handleClone() {\n    locals.waitingForClone = true\n\n    const res = await Aeppic.Commands.execute(params.cloneCommandId, document)\n    if (!res.ok) {\n      this.cloneWatcher?.stop()\n      this.cloneWatcher = null\n      locals.waitingForClone = false\n      return\n    }\n    const clonedDocumentId = res.value.id\n    this.cloneWatcher = Aeppic.subscribe(clonedDocumentId, (doc) => {\n      Aeppic.setTimeOut(() => {\n        this.cloneWatcher?.cancel()\n        locals.waitingForClone = false\n      }, 0)\n    })\n  }\n}","css":"","description":"","name":"rd:maintenance-card-inner-layout","packages":[],"template":"<div class=\"flex items-center h-full\">\n  <section class=\"flex gap-2 items-center flex-1 min-w-0\">\n    <ae-design\n      class=\"\"\n      :document=\"document\"\n      name=\"rd:thumbnail\"\n      :params=\"{width: '60px', height: '60px'}\"\n      :param-hide-name=\"true\"\n    ></ae-design>\n    <div class=\"flex-1 min-w-0\">\n      <div class=\"flex gap-1 items-center\">\n        <ae-design name=\"icon\" :document=\"document\" class=\"mb-1\"></ae-design>\n        <ae-design name=\"title\" :document=\"document\" class=\"font-semibold w-full\"></ae-design>\n      </div>\n      <ae-design\n        name=\"rd:maintenance-card-subtitle\"\n        :document=\"document\"\n        class=\"font-light w-full text-neutral-600\"\n      ></ae-design>\n    </div>\n  </section>\n  <div class=\"flex gap-2 items-center\">\n    <ae-layout\n      v-for=\"button of controller.buttons\"\n      layout-id=\"f6bdd129-3852-4bac-9375-559b929486bc\"\n      @selected=\"controller.emit(button)\"\n      :param-disabled=\"params.readonly\"\n      :params=\"button.params\"\n    ></ae-layout>\n\n    <ae-layout\n      v-for=\"command in params.commands\"\n      layout-id=\"262e95e6-f1f8-477c-834b-89d533027e1e\"\n      :params=\"command\"\n    ></ae-layout>\n  </div>\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"45b6b154-abb2-4afa-99c0-47662179f62a","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2026-03-02T08:22:25+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"58cebe44-078f-46d1-a3c6-8e661a8bfec6","text":"rd:maintenance-card","v":"74aec45e3e688a1f"},"p":"02132d06-c73b-4101-bde0-2fe98224a35a","previous":{"v":"8c548560fb9ba197"},"stamps":[],"t":1772439745937,"v":"fee7bad4193caf68"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","5a4fafb4-3c2b-4826-8a85-7c804ee4ac52"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"52a34db1-0e4b-4380-acf8-93e1c8da8731","text":"rd:maintenance-card-subtitle","v":"083500cea5367ec6"},"created":{"at":"2026-02-13T12:31:49+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"ct":1770985909964,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:maintenance-card-subtitle","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<ae-design name=\"address\" :document=\"document\" class=\"content\"></ae-design>"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"26fa2686-9b05-4dc7-9a35-978827c23354","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-02-13T13:29:13+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"52a34db1-0e4b-4380-acf8-93e1c8da8731","text":"rd:maintenance-card-subtitle","v":"083500cea5367ec6"},"p":"5a4fafb4-3c2b-4826-8a85-7c804ee4ac52","previous":{"v":"1f1fedd96ae65448"},"stamps":[],"t":1770989353232,"v":"78f24fc5851c9c18"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","33e3b54d-6b4b-4aa3-8f70-2b834b27bf66"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"704e5b40-db10-4e43-a0fd-78a6076ae336","text":"rd:maintenance-card-subtitle","v":"bf17f7ec253d0ae8"},"created":{"at":"2026-02-13T14:41:48+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"ct":1770993708384,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.building = await Aeppic.resolve(document, 'AppKeeptrack-TechnischerPlatz')\n  }\n}","css":"","description":"","name":"rd:maintenance-card-subtitle","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<div class=\"flex gap-1\">\n  <ae-design name=\"icon\" :document=\"locals.building\" class=\"\"></ae-design>  \n  <ae-design name=\"title\" :document=\"locals.building\" class=\"\"></ae-design>\n</div>"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"3bec3c7c-13bd-4081-a2a4-866b4bfad839","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-02-13T14:46:16+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"704e5b40-db10-4e43-a0fd-78a6076ae336","text":"rd:maintenance-card-subtitle","v":"bf17f7ec253d0ae8"},"p":"33e3b54d-6b4b-4aa3-8f70-2b834b27bf66","previous":{"v":"initial"},"stamps":[],"t":1770993976523,"v":"df9fb17a2dfe0aae"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","5f4a87a7-5557-4004-bfdc-2fb26c71e0c9"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2026-02-13T09:54:45+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"ct":1770976485509,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:maintenance-card-subtitle","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<ae-design name=\"address\" :document=\"document\" class=\"content\"></ae-design>"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"52a34db1-0e4b-4380-acf8-93e1c8da8731","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-02-13T13:52:15+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"p":"5f4a87a7-5557-4004-bfdc-2fb26c71e0c9","previous":{"v":"54532e1a5492bee4"},"stamps":[],"t":1770990735918,"v":"29999d4b5f735441"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","093f533e-9758-479c-97bc-8e4ba7dc3c2d"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"89606d66-92ac-4e37-9a29-126184540ebb","text":"rd:maintenance-card-subtitle","v":"42d28b92ad263865"},"created":{"at":"2026-02-13T14:33:26+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"ct":1770993206073,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.building = await Aeppic.resolve(document, 'AppKeeptrack-Gebäudeteil').catch(() => null)\n  }\n}","css":"","description":"","name":"rd:maintenance-card-subtitle","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<div class=\"flex gap-1\">\n  <ae-design name=\"icon\" :document=\"locals.building\" class=\"\"></ae-design>  \n  <ae-design name=\"title\" :document=\"locals.building\" class=\"\"></ae-design>\n</div>"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"704e5b40-db10-4e43-a0fd-78a6076ae336","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-02-16T09:53:19+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"89606d66-92ac-4e37-9a29-126184540ebb","text":"rd:maintenance-card-subtitle","v":"42d28b92ad263865"},"p":"093f533e-9758-479c-97bc-8e4ba7dc3c2d","previous":{"v":"bf17f7ec253d0ae8"},"stamps":[],"t":1771235599533,"v":"a4bade1b4f06c3e0"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","1e3214b4-b81e-4ac2-a788-c2051af016ab"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"52a34db1-0e4b-4380-acf8-93e1c8da8731","text":"rd:maintenance-card-subtitle","v":"083500cea5367ec6"},"created":{"at":"2026-02-13T12:57:34+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"ct":1770987454061,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.building = await Aeppic.resolve(document, 'AppKeeptrack-Gebäude')\n  }\n}","css":"","description":"","name":"rd:maintenance-card-subtitle","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<div class=\"flex gap-1\">\n  <ae-design name=\"icon\" :document=\"locals.building\" class=\"\"></ae-design>  \n  <ae-design name=\"title\" :document=\"locals.building\" class=\"\"></ae-design>\n</div>"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"89606d66-92ac-4e37-9a29-126184540ebb","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-02-13T13:31:27+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"52a34db1-0e4b-4380-acf8-93e1c8da8731","text":"rd:maintenance-card-subtitle","v":"083500cea5367ec6"},"p":"1e3214b4-b81e-4ac2-a788-c2051af016ab","previous":{"v":"6c80150ffaa70001"},"stamps":[],"t":1770989487303,"v":"42d28b92ad263865"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","31e6efab-61df-4b91-8250-3bfcfd491c6c"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"3bec3c7c-13bd-4081-a2a4-866b4bfad839","text":"rd:maintenance-card-subtitle","v":"initial"},"created":{"at":"2026-02-13T14:45:52+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"ct":1770993952110,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.building = await Aeppic.resolve(document, 'AppKeeptrack-Anlage')\n  }\n}","css":"","description":"","name":"rd:maintenance-card-subtitle","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<div class=\"flex gap-1\">\n  <ae-design name=\"icon\" :document=\"locals.building\" class=\"\"></ae-design>  \n  <ae-design name=\"title\" :document=\"locals.building\" class=\"\"></ae-design>\n</div>"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"9c205194-c8da-42db-875e-e2ddbf365c08","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-02-13T14:46:28+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"3bec3c7c-13bd-4081-a2a4-866b4bfad839","text":"rd:maintenance-card-subtitle","v":"initial"},"p":"31e6efab-61df-4b91-8250-3bfcfd491c6c","previous":{"v":"initial"},"stamps":[],"t":1770993988851,"v":"c907be74fd9dd8ea"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","8c113cd0-af90-42fa-aa05-f67809d0a9a5"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2025-10-13T14:25:31+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1760365531569,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:maintenance-styled-title","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<ae-design name=\"rd:styled-title\" :document-id=\"document.a[document.a_forms.findIndex(aForm => aForm === '347d38c6-0bce-47ce-b271-9f924c56ac49')]\"\n  ></ae-design>"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"fee56d59-7c24-44b5-86d4-b4e506272261","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-10-13T14:40:06+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"8c113cd0-af90-42fa-aa05-f67809d0a9a5","previous":{"v":"414abfe66443aaff"},"stamps":[],"t":1760366406029,"v":"6af68867eb2c8ed4"},{"id":"98e1c84d-fa86-40da-a997-f7a3ccbd5d3e","v":"00cafbdfc4da50d5","previous":{"v":"4e097458a33090a6"},"p":"71a3f943-571a-4e4f-a97c-dd809d6b10e4","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:masterdata","template":"  \n<div class=\"mx-auto flex flex-col gap-4 w-full bg-white overflow-visible bg-white max-w-5xl px-4 py-2 my-2 xl:shadow-md xl:rounded-md\">\n  <section class=\"\">  \n    <section class=\"flex flex-col gap-2 mb-10 p-4\">\n      <div class=\"flex items-center gap-4\">\n        <div class=\"text-2xl\">\n          Stammdaten\n        </div>\n\n      </div>\n\n      <ae-list list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\"\n              @selected=\"Aeppic.navigateTo($event)\"\n              :documents=\"locals.folders\"\n      ></ae-list>\n\n    </section>\n  </section>\n</div>\n ","css":"","controller":"class Controller {\n  async init() {\n    const folderForms = [\n      '1795bc4e-b1b8-41c4-b235-136c3ff0e0af',\n      'b8c15921-2825-48d6-951c-e7fce7133ab5',\n      'b40fd5c3-1bc2-42b4-a269-f3cb2e9cf477',\n    ]\n    locals.folders = []\n\n    const query = `p:${document.id} (${folderForms.map(f => `f.id:${f}`).join(' OR ')})`\n    console.log(query)\n    locals.folders = await Aeppic.find(query, { sort: 'f.text' })\n  }\n} \n\n  ","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-11-24T12:54:52+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-11-24T13:00:48+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1700830848612,"ct":1700830492003,"a_depth":4,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","71a3f943-571a-4e4f-a97c-dd809d6b10e4"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","33e3b54d-6b4b-4aa3-8f70-2b834b27bf66"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"c6fb125e-a8bd-40b8-8e43-478bb6bc03b7","text":"rd:facility","v":"0a6f9c1c70c1d444"},"created":{"at":"2025-09-30T13:58:22+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1759240702984,"data":{"aliases":[],"controller":"class Controller {\n  init() {\n    locals.view = {\n      startWithSection: 3\n    }\n  }\n} ","css":"","description":"","name":"rd:masterdata","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<div class=\"h-full w-full flex flex-col gap-2\">\n  <ae-form  :document=\"document\" \n            :auto-save=\"true\"\n            :auto-save-after=\"1000\"\n            layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\"\n            class=\"w-full\"\n            :readonly=\"params.readonly\"\n            :view=\"locals.view\"\n  ></ae-form>\n</div>"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"c05b5851-13a5-489e-9afc-cabb634f9272","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-01-15T15:05:34+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"c6fb125e-a8bd-40b8-8e43-478bb6bc03b7","text":"rd:facility","v":"0a6f9c1c70c1d444"},"p":"33e3b54d-6b4b-4aa3-8f70-2b834b27bf66","previous":{"v":"074166e2bbe3e36d"},"stamps":[],"t":1768489534211,"v":"bfd158e0c6804d11"},{"a":["apps","0af4f8a7-729e-4318-8f82-7e976555004e","0ae4ef2a-62fc-4042-b07e-e93a134fe055","14e2b48e-d2fb-4162-a89e-773a952a85d7"],"a_depth":4,"a_forms":["folder","application-form","folder","form"],"created":{"at":"2025-08-18T14:19:21+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1755526761040,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      EpicPagesState: 'f62598b6-1cbf-433c-ad71-aca731261f42',\n      Design: 'design-form',\n      Form: 'form',\n      EpicPagesFormDesignFallback: '38b0b6a1-46f6-41ed-ac20-4144aee4d57f',\n      Application: 'application-form',\n    }\n \n    locals.viewMode = 'forms'\n    locals.designRootLookup = '1cc4b977-c14d-4587-af47-d6ac230f60b3'\n    locals.appsToIncludeDesignFolder = '1cc4b977-c14d-4587-af47-d6ac230f60b3'\n\n    locals.toggledMenus = []\n    locals.designsByForm = {}\n    locals.formDesignFallbacksByForm = {}\n    locals.statesByFallback = {}\n    locals.formStatesByDesignId = {}\n\n    const updateForms = async () => {\n      const appsRoot = 'apps'\n      // const formsRoot = '59edbdbc-2cab-426a-bb42-6e57c5158e4f'\n\n      const apps = await Aeppic.find(\n        `a:${appsRoot} f.id:${this.FORMS.Application} data.designs.id:${locals.appsToIncludeDesignFolder}`,\n        { size: 999 }\n      )\n\n      const ancestorsQuery = apps.map((app) => `a:${app.id}`).join(' OR ')\n\n      // console.log(apps, ancestorsQuery)\n\n      const states = (\n        await Aeppic.find(`(${ancestorsQuery}) f.id:${this.FORMS.EpicPagesState}`, { sort: 'data.name' })\n      ).filter((state) => !!state.data.form?.id)\n      const forms = await Aeppic.find(`(${ancestorsQuery}) f.id:${this.FORMS.Form}`, { size: 9999 })\n\n      locals.apps = apps\n      locals.formsByApp = forms.reduce((result, form) => {\n        const appId = form.a[form.a_forms.findIndex((aForm) => aForm === this.FORMS.Application)]\n\n        if (!result[appId]) {\n          result[appId] = []\n        }\n        result[appId].push(form)\n        return result\n      }, {})\n\n      locals.forms = forms\n\n      // reset. updated on menu toggle\n      locals.designsByForm = {}\n    }\n\n    const [designsResult] = await Promise.all([this.getDesigns(locals.designRootLookup), updateForms()])\n\n    locals.designs = designsResult.designs\n    locals.statesByDesign = designsResult.statesByDesign\n\n    locals.formStatesByDesignId = await this.getFormStatesByDesignId('apps', locals.designs)\n\n    if (params.activeDocumentId) {\n      this.toggleMenu(params.activeDocumentId)\n    }\n\n    watchParam('activeDocumentId', (doc) => {\n      this.toggleMenu(doc)\n    })\n  }\n\n  async getDesigns(designsRoot) {\n    const designs = (await Aeppic.find(`a:${designsRoot} f.id:${this.FORMS.Design}`, { size: 9999 })).filter((d) =>\n      d.data.name.startsWith('rd')\n    )\n\n    const statesByDesign = await this.getStates(designsRoot, designs)\n\n    return {\n      designs,\n      statesByDesign,\n    }\n  }\n\n  async getStates(designsRoot, designs) {\n    const states = await Aeppic.find(`a:${designsRoot} f.id:${this.FORMS.EpicPagesState}`, { sort: 'data.name' })\n\n    const statesByDesign = designs.reduce((result, design) => {\n      const designStates = states.filter((state) => state.p === design.id)\n\n      if (!result[design.id]) {\n        result[design.id] = [\n          {\n            id: 'DEFAULT',\n            data: { name: 'default' },\n          },\n        ]\n      }\n\n      result[design.id].push(...designStates)\n\n      return result\n    }, {})\n\n    return statesByDesign\n  }\n\n  async getFormStatesByDesignId(designRootLookup, designs) {\n    const formStatesByDesignId = await Promise.all(\n      designs.map(async (design) => {\n        const formDesignFallbacks = await Aeppic.find(\n          `(a:${designRootLookup} f.id:${this.FORMS.EpicPagesFormDesignFallback} data.design.id:${design.id}) OR (a:${designRootLookup} f.id:${this.FORMS.Design} data.name:\"${design.data.name}\")`,\n          {\n            size: 9999,\n          }\n        )\n\n        const statesByFormId = {}\n\n        await Promise.all(\n          formDesignFallbacks.map(async (formDesignFallback) => {\n            // formDesignFallback can be a regular design OR a EpicPagesFormDesignFallback \n\n            const formId = formDesignFallback.p\n\n            // this prevents designs in an App's fallback design folder from appearing without actual EpicPagesFormDesignFallback configuration \n            if (formDesignFallback.a_forms.slice(-1)[0] !== this.FORMS.Form) {\n              return\n            }\n\n            const statesByFallbackId = await this.getStates(formDesignFallback.id, [formDesignFallback])\n\n            const states = statesByFallbackId[formDesignFallback.id]\n\n            if (!statesByFormId[formId]) {\n              statesByFormId[formId] = []\n            }\n            \n            statesByFormId[formId].push(...states)\n          })\n        )\n\n        // console.log({ designRootLookup, design: design.data.name, formDesignFallbacks, statesByFormId })\n\n        return {\n          [design.id]: statesByFormId,\n        }\n      })\n    )\n\n\n    const result = formStatesByDesignId.reduce((result, current) => {\n      Object.keys(current).forEach((key) => {\n        if (!result[key]) {\n          result[key] = {}\n        }\n\n        result[key] = { ...result[key], ...current[key] }\n      })\n\n      return result\n    }, {})\n\n    console.log(result)\n\n    return result\n  }\n\n  async toggleMenu(docOrId) {\n    const doc = await Aeppic.get(docOrId)\n\n    const index = locals.toggledMenus.indexOf(doc.id)\n    const shallOpen = index === -1\n\n    if (shallOpen) {\n      locals.toggledMenus.push(doc.id)\n    } else {\n      locals.toggledMenus.splice(index, 1)\n    }\n\n    if (doc.f.id === this.FORMS.Form) {\n      if (shallOpen) {\n        $emit('selected', doc)\n      }\n\n      // will be resolved below in watchMatchingDocuments\n      await this.toggleFormMenu(doc)\n    }\n\n    if (doc.f.id === this.FORMS.Design) {\n      // await this.getDesignFallbackDesigns('apps', doc.id)\n    }\n\n    if (this.watcher) {\n      this.watcher.cancel()\n    }\n\n    // setup a watcher to watch documents for child changes. on change re-fetch states/etc \n    this.watcher = Aeppic.subscribe(`${locals.toggledMenus.map(id => `p:${id}`).join(' OR ')}`, (docs, reason) => {\n      // when the children of a toggled menu change, lookup new children for each toggled PARENT\n      locals.toggledMenus.forEach(docId => {\n        this.toggleFormMenu(docId)\n      })\n    })\n\n    console.log(this.watcher, `${locals.toggledMenus.map(id => `p:${id}`).join(' OR ')}`)\n  }\n\n  setView(mode) {\n    locals.viewMode = mode\n  }\n\n  async toggleFormMenu(formOrId) {\n    const form = await Aeppic.get(formOrId)\n\n    const formDesignFallbacks = await Aeppic.find(`p:${form.id} f.id:${this.FORMS.EpicPagesFormDesignFallback}`, {\n      size: 9999,\n    })\n    const configuredDesignsForForm = await Aeppic.find(`a:${form.id} f.id:${this.FORMS.EpicPagesState}`)\n    const configuredDesignsForFormStates = await this.getStates(form.id, configuredDesignsForForm)\n\n    const result = await this.getDesigns(form.id)\n\n    locals.formDesignFallbacksByForm[form.id] = formDesignFallbacks\n\n    // locals.designsByForm[form.id] = [...result.designs, ...configuredDesignsForForm]\n    locals.designsByForm[form.id] = [...result.designs]\n\n    const statesByFallback = await this.getStates(form.id, formDesignFallbacks)\n\n    console.log({ formDesignFallbacks, statesByFallback })\n\n    locals.statesByFallback = { ...locals.statesByFallback, ...statesByFallback }\n\n    locals.statesByDesign = { ...locals.statesByDesign, ...result.statesByDesign, ...configuredDesignsForFormStates }\n\n    locals.designsByForm = { ...locals.designsByForm }\n  }\n\n  showContextmenu(doc, clickEvent) {\n    locals.contextmenuDocument = doc\n\n    $refs.popup.show(clickEvent)\n  }\n\n  async duplicate(doc) {\n    const cloneResult = await Aeppic.cloneDeep(doc, doc.p)\n\n    cloneResult.root.data.name = `DUPLICATE ${cloneResult.root.data.name}`\n\n    Aeppic.saveAll(cloneResult.documents)\n\n    $refs.popup.close()\n  }\n}\n ","css":"","description":"","name":"rd:menu","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<div class=\"gap-4 relative\">\n  <div class=\"flex gap-2\">\n    <ae-layout\n      layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n      param-icon=\"\"\n      param-text=\"designs\"\n      @selected=\"controller.setView('designs')\"\n      :param-primary=\"locals.viewMode === 'designs'\"\n    ></ae-layout>\n    <ae-layout\n      layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n      param-icon=\"\"\n      param-text=\"forms\"\n      @selected=\"controller.setView('forms')\"\n      :param-primary=\"locals.viewMode === 'forms'\"\n    ></ae-layout>\n  </div>\n\n  <section v-show=\"locals.viewMode === 'forms'\" class=\"flex flex-col overflow-hidden\">\n    <template xv-if=\"locals.formsMode === 'apps'\">\n      <!-- Apps with designFolder {{locals.appsToIncludeDesignFolder}} -->\n      <div v-for=\"app of locals.apps\">\n        <label class=\"font-bold truncate\" @click.stop=\"controller.toggleMenu(app)\">\n          <ae-icon\n            :class=\"[locals.toggledMenus.includes(app.id) ? 'far fa-arrow-down' : 'far fad fa-browser']\"\n          ></ae-icon>\n          {{app.data.name}}\n        </label>\n\n        <template v-if=\"locals.toggledMenus.includes(app.id)\">\n          <div v-for=\"form of locals.formsByApp[app.id]\" @click.stop=\"controller.toggleMenu(form)\" class=\"truncate\">\n            <ae-icon class=\"far fa-file-invoice text-emerald-600\"></ae-icon>\n            <span class=\"\"> {{form.data.name}} </span>\n\n            <div class=\"ml-4\" v-if=\"locals.toggledMenus.includes(form.id)\" @click.stop>\n              <div v-if=\"!locals.designsByForm[form.id]?.length\">No designs found</div>\n              <div v-for=\"design of locals.designsByForm[form.id]\">\n                <div v-if=\"design.id === 'DEFAULT'\" @click.stop=\"$emit('selected', form.id)\">\n                  <ae-icon class=\"far fa-file-alt text-amber-500\"></ae-icon>\n                  Docs\n                </div>\n\n                <div v-else @click.stop=\"controller.toggleMenu(design)\" :title=\"design.data.name\">\n                  <ae-icon class=\"far fa-window-frame text-sky-600\"></ae-icon>\n                  {{design.data.name}}\n                </div>\n\n                <div class=\"ml-4\" v-if=\"locals.toggledMenus.includes(design.id)\" @click.stop>\n                  <div v-for=\"(state, stateIndex) of locals.statesByDesign[design.id]\">\n                    <div v-if=\"state.id === 'DEFAULT'\" @click.stop=\"$emit('selected', design.id)\">\n                      <ae-icon class=\"far fa-file-alt text-amber-500\"></ae-icon>\n                      Docs\n                    </div>\n\n                    <div v-else @click.stop=\"$emit('selected', state.id)\" @contextmenu.stop.prevent=\"controller.showContextmenu(state, $event)\">\n                      <ae-icon class=\"far fa-bookmark text-green-500\"></ae-icon>\n                      {{state.data.name}}\n                    </div>\n                  </div>\n                </div>\n              </div>\n              <div v-for=\"fallback of locals.formDesignFallbacksByForm[form.id]\">\n                <div v-if=\"fallback.id === 'DEFAULT'\" @click.stop=\"$emit('selected', form.id)\">\n                  <ae-icon class=\"far fa-file-alt text-amber-500\"></ae-icon>\n                  Docs\n                </div>\n\n                <div v-else @click.stop=\"controller.toggleMenu(fallback)\" :title=\"fallback.data.design.text\">\n                  <ae-icon class=\"far fa-window-frame text-amber-600\"></ae-icon>\n                  {{fallback.data.design.text}}\n                </div>\n\n                <div class=\"ml-4\" v-if=\"locals.toggledMenus.includes(fallback.id)\" @click.stop>\n                  <div v-for=\"state of locals.statesByFallback[fallback.id]\">\n                    <div v-if=\"state.id === 'DEFAULT'\" @click.stop=\"$emit('selected', fallback.id)\">\n                      <ae-icon class=\"far fa-file-alt text-amber-500\"></ae-icon>\n                      Docs\n                    </div>\n\n                    <div v-else @click.stop=\"$emit('selected', state.id)\">\n                      <ae-icon class=\"far fa-bookmark text-green-500\"></ae-icon>\n                      {{state.data.name}}\n                    </div>\n                  </div>\n                </div>\n              </div>\n            </div>\n          </div>\n        </template>\n      </div>\n    </template>\n\n\n    <ae-popup ref=\"popup\" @close=\"locals.contextmenuDocument = null\"> \n      <div class=\"flex flex-col gap-2 divide-y\"> \n        <div @click.stop=\"controller.duplicate(locals.contextmenuDocument)\">Duplicate {{locals.contextmenuDocument?.data.name}}</div>\n      </div>\n    </ae-popup>\n\n    <!-- TODO: is a forms only mode without the app categorization needed? -->\n    <!-- <template v-if=\"locals.formsMode === 'forms'\">\n      <div v-for=\"form of locals.forms\" @click.stop=\"controller.toggleMenu(form)\" class=\"truncate\">\n        <ae-icon class=\"far fa-file-invoice text-emerald-600\"></ae-icon>\n        <span class=\"\"> {{form.data.name}} </span>\n\n        <div class=\"ml-4\" v-if=\"locals.toggledMenus.includes(form.id)\" @click.stop>\n          <div v-if=\"!locals.designsByForm[form.id]?.length\">No designs found</div>\n          <div v-for=\"design of locals.designsByForm[form.id]\">\n            <div v-if=\"design.id === 'DEFAULT'\" @click.stop=\"$emit('selected', form.id)\">\n              <ae-icon class=\"far fa-file-alt text-amber-500\"></ae-icon>\n              Docs\n            </div>\n\n            <div v-else @click.stop=\"controller.toggleMenu(design)\">\n              <ae-icon class=\"far fa-window-frame text-sky-600\"></ae-icon>\n              {{design.data.name}}\n            </div>\n\n            <div class=\"ml-4\" v-if=\"locals.toggledMenus.includes(design.id)\" @click.stop>\n              <div v-for=\"state of locals.statesByDesign[design.id]\">\n                <div v-if=\"state.id === 'DEFAULT'\" @click.stop=\"$emit('selected', design.id)\">\n                  <ae-icon class=\"far fa-file-alt text-amber-500\"></ae-icon>\n                  Docs\n                </div>\n\n                <div v-else @click.stop=\"$emit('selected', state.id)\">\n                  <ae-icon class=\"far fa-bookmark text-green-500\"></ae-icon>\n                  {{state.data.name}}\n                </div>\n              </div>\n            </div>\n          </div>\n          <div v-for=\"fallback of locals.formDesignFallbacksByForm[form.id]\">\n            <div v-if=\"fallback.id === 'DEFAULT'\" @click.stop=\"$emit('selected', form.id)\">\n              <ae-icon class=\"far fa-file-alt text-amber-500\"></ae-icon>\n              Docs\n            </div>\n\n            <div v-else @click.stop=\"controller.toggleMenu(fallback)\">\n              <ae-icon class=\"far fa-window-frame text-amber-600\"></ae-icon>\n              {{fallback.data.design.text}}\n            </div>\n\n            <div class=\"ml-4\" v-if=\"locals.toggledMenus.includes(fallback.id)\" @click.stop>\n              <div v-for=\"state of locals.statesByFallback[fallback.id]\">\n                <div v-if=\"state.id === 'DEFAULT'\" @click.stop=\"$emit('selected', fallback.id)\">\n                  <ae-icon class=\"far fa-file-alt text-amber-500\"></ae-icon>\n                  Docs\n                </div>\n\n                <div v-else @click.stop=\"$emit('selected', state.id)\">\n                  <ae-icon class=\"far fa-bookmark text-green-500\"></ae-icon>\n                  {{state.data.name}}\n                </div>\n              </div>\n            </div>\n          </div>\n        </div>\n      </div>\n    </template> -->\n  </section>\n\n  <section v-show=\"locals.viewMode === 'designs'\" class=\"flex flex-col overflow-hidden\">\n    <div>Root Lookup: <span class=\"italic\">{{locals.designRootLookup}}</span></div>\n    <div v-for=\"design of locals.designs\" @click.stop=\"controller.toggleMenu(design)\" class=\"truncate\">\n      <ae-icon class=\"far fa-window-frame text-sky-600\"></ae-icon>\n      <span class=\"\"> {{design.data.name}} </span>\n\n      <div class=\"ml-4\" v-if=\"locals.toggledMenus.includes(design.id)\" @click.stop>\n        <!-- {{locals.formStatesByDesignId}} -->\n        <div v-for=\"(states, formId) in locals.formStatesByDesignId[design.id]\">\n          <div @click.stop=\"controller.toggleMenu(formId)\" class=\"flex gap-1\" :data-form-id=\"formId\">\n            <ae-icon class=\"far fa-file-invoice text-emerald-600\"></ae-icon>\n            <!-- <span class=\"\"> {{formId}} </span> -->\n            <ae-design name=\"title\" :document-id=\"formId\"></ae-design>\n          </div>\n\n          <div class=\"ml-4\" v-if=\"locals.toggledMenus.includes(formId)\">\n            <div v-for=\"state of states\">\n              <div v-if=\"state.id === 'DEFAULT'\" @click.stop=\"$emit('selected', design.id)\">\n                <ae-icon class=\"far fa-file-alt text-amber-500\"></ae-icon>\n                Docs\n              </div>\n\n              <div v-else @click.stop=\"$emit('selected', state.id)\">\n                <ae-icon class=\"far fa-bookmark text-green-500\"></ae-icon>\n                {{state.data.name}}\n              </div>\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n  </section>\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"a6b987f8c80dc07f"},"id":"7e5dbe68-20b5-47ad-91c1-60e29d02506c","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-02-09T12:07:34+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"p":"14e2b48e-d2fb-4162-a89e-773a952a85d7","previous":{"v":"baf480458b6837f2"},"stamps":[],"t":1770638854018,"v":"644ca53de37d7726"},{"a":["apps","f416e371-07cc-4987-a6de-5934ef5ff3e4","1096c5df-2773-4914-9455-dc54e0f3e0e5","06971b6e-2e82-40e0-9121-3bb78611fc4a"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2023-10-16T14:11:39+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1697465499534,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      UnterweisungenEinesProfiles: 'd1762f3d-541a-4100-bab3-3a4b74b2131a',\n    }\n\n    locals.unreadAcks = 0\n\n    const usersLinks = await Aeppic.get(`${Aeppic.ProfilePage.id}_${this.FORMS.UnterweisungenEinesProfiles}`)\n\n    locals.unreadAcks = usersLinks?.data.ungeleseneLesebestaetigungen.length ?? 0\n  }\n}","css":"._CSS-ping--once {\n  animation: ping 1s cubic-bezier(0, 0, 0.2, 1);\n}\n\n@keyframes ping {\n  75%, 100% {\n    transform: scale(2);\n    opacity: 0;\n  }\n}\n","description":"","name":"rd:menu-unread","packages":[{"id":"10843fbf-4f0c-416b-be7d-42d6bbd0ae68","text":"Window","v":"d4ce6dec568c3dc1"}],"template":"<div v-if=\"locals.unreadAcks > 0\"\n    class=\"relative flex items-center justify-center rounded-full h-5 w-5 text-sm bg-white\"\n> \n  <!-- the key will make the ping animation play again -->\n  <div class=\"absolute h-5 w-5 rounded-full border bg-red-200 border-red-400 text-red-900\" \n      :class=\"[locals.unreadAcks > 0 ? ' _CSS-ping--once' : '']\"\n      :key=\"'_CSS '+ locals.unreadAcks\"\n  >\n  </div> \n  <div class=\"absolute text-red-900\"\n  >\n    {{ locals.unreadAcks }}\n  </div>\n</div> "},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"3156de0b-c718-49eb-9b57-e9bed870a8da","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-12-02T15:17:25+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"06971b6e-2e82-40e0-9121-3bb78611fc4a","previous":{"v":"ce3d87a7d248de37"},"stamps":[],"t":1764688645674,"v":"072b2ecfc45cea35"},{"id":"53247e5c-d596-4e95-88eb-e1d89bd23e87","v":"65601653746e2697","previous":{"v":"8d2351dc60d392f8"},"p":"582f2701-c678-4770-bcba-e5ff84e06752","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"rd:menu-unread","template":"<div v-if=\"locals.unreadNotifications > 0\"\n    class=\"relative flex items-center justify-center rounded-full h-5 w-5 text-sm bg-white\"\n> \n  <!-- the key will make the ping animation play again -->\n  <div class=\"absolute h-5 w-5 rounded-full border bg-red-200 border-red-400 text-red-900\" \n      :class=\"[locals.pristineNotifications > 0 ? ' _CSS-ping--once' : '']\"\n      :key=\"'_CSS '+ locals.pristineNotifications\"\n  >\n  <!-- :class=\"[locals.pristineNotifications > 0 ? 'bg-red-200 border-red-400 text-red-900 _CSS-ping--once' : 'bg-neutral-100 border-neutral-200 text-neutral-900']\" -->\n  </div> \n  <div class=\"absolute text-red-900\"\n  >\n  <!-- :class=\"[locals.pristineNotifications > 0 ? 'text-red-900' : 'text-neutral-900']\" -->\n    {{ locals.unreadNotifications }}\n  </div>\n</div> \n    <!-- :class=\"[locals.pristineNotifications > 0 && 'bg-red-200 border-red-400 text-red-900 _CSS-ping--once' || 'bg-neutral-200 border-neutral-400 text-neutral-900']\" -->","css":"._CSS-ping--once {\n  animation: ping 1s cubic-bezier(0, 0, 0.2, 1);\n}\n\n@keyframes ping {\n  75%, 100% {\n    transform: scale(2);\n    opacity: 0;\n  }\n}\n","controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Notification: '6d164aff-df9b-470d-9632-cfb6f5892509',\n    }\n\n    console.log(packages.window)\n\n    locals.unreadNotifications = null\n    locals.pristineNotifications = null\n\n    this.notificationsAllowed = await this.requestNotificationPermission()\n\n    let subscribeRanOnce = false\n\n    Aeppic.subscribe(`p:${Aeppic.Account.id} f.id:${this.FORMS.Notification} data.read:false`, { sort: { field: 'created.at', descending: true }}, (unread) => {\n    // if (!subscribeRanOnce && unread.length === 0) {\n    //     // NOTE: skip this because nothing happend yet \n    //     return\n    //   }\n\n      const newLength = unread.length\n\n      locals.unreadNotifications = newLength\n\n      this.setAppBadge(newLength)\n\n      if (!subscribeRanOnce) {\n        subscribeRanOnce = true\n        return\n      }\n\n      const oldPristineLength = locals.pristineNotifications || 0\n      const newPristineLength = unread.filter(u => u.v === 'initial').length\n\n      locals.pristineNotifications = newPristineLength\n\n      if (!this.notificationsAllowed) {\n        return\n      }\n    \n      const difference = newPristineLength - oldPristineLength\n \n      console.log({ difference, oldPristineLength, newPristineLength })\n\n      if (difference <= 0) {\n        return\n      }\n\n      // if (difference) {\n        this.newNotification(unread[0]) \n      //   return\n      // }\n\n\n\n      // this.newNotification()\n    })\n  }\n\n\n  setAppBadge(count) {\n    if (typeof packages.window.navigator.setAppBadge === 'undefined') {\n      return\n    }\n\n    try {\n      packages.window.navigator.setAppBadge(count)\n    } catch (e) {\n      console.error(e)\n    }\n  }\n\n  async requestNotificationPermission() {\n    if (typeof Notification === 'undefined') {\n      return false\n    }\n\n    const result = await Notification.requestPermission()\n    return result === 'granted'\n  }\n\n  async newNotification(notification) {\n    console.log('noti', notification)\n    const name = notification ? Aeppic.translate(notification.data.name) : 'Neue Benachrichtigung'\n    const when = Aeppic.DateTime.fromISO(notification.created.at).toLocaleString(Aeppic.DateTime.TIME_24_SIMPLE)\n\n    const title = `${name} (${when})`\n\n    const targetDocument = notification ? await Aeppic.get(notification.data.document) : null\n    const body = targetDocument && targetDocument.data.name ? `${targetDocument.data.name}` : ''\n\n    const n = new Notification(\n      title,\n      {\n        body,\n        icon: 'manifest/pwa-192x192.png'\n      }\n    )\n  }\n}","packages":[{"id":"10843fbf-4f0c-416b-be7d-42d6bbd0ae68","v":"d4ce6dec568c3dc1","text":"Window"}],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-09-22T13:10:12+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-03-21T15:29:18+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1679412558845,"ct":1663852212271,"a_depth":4,"a":["apps","c676e25c-4d28-48e3-9b60-811cde637ea5","fd2312bb-54bc-41a9-8fc7-b65b22ecb1d5","582f2701-c678-4770-bcba-e5ff84e06752"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","45ada186-e9fd-451d-9dbd-2defc0b4f86f","4ec6a0e5-cf2d-4095-9b70-2e31a64d5679","554234d4-1a0a-4f31-b6a1-7899ca841995"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2024-07-02T12:36:31+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1719923791370,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      WorkflowConfiguration: '28920b1b-fc03-454a-817f-fd7e19133d92',\n    }\n\n    this.IDS = {\n      FreigabeProzess: 'bbd555c5-a65d-484e-9fed-7564a1c21ebc',\n    }\n\n    const stampsWhichNeedAttention = [\n      // NOTE: new could be displayed, but only for editors (who did most likely create those)\n      // {\n      //   \"id\": \"a32f65e7-25f9-4af3-8cb3-68e580bf1bf5\",\n      //   \"v\": \"initial\",\n      //   \"text\": \"New\"\n      // },\n      {\n        \"id\": \"dcb9041f-ce16-422c-ac3d-f61b6b3502b5\",\n        \"v\": \"initial\",\n        \"text\": \"\"\n      },\n      {\n        \"id\": \"a373cb83-6c19-45e3-b411-c8114158b536\",\n        \"v\": \"initial\",\n        \"text\": \"\"\n      },\n      // {\n      //   \"id\": \"97f07cfd-28e2-44c5-8feb-2d106ffef2a7\",\n      //   \"v\": \"ff432c2078a679d1\",\n      //   \"text\": \"Freigeben\"\n      // },\n      // {\n      //   \"id\": \"0b67fed3-e01b-495b-ac91-720350b10ea9\",\n      //   \"v\": \"initial\",\n      //   \"text\": \"Working Copy\"\n      // },\n      {\n        \"id\": \"1751e1d5-bda7-44d3-b5f6-e0af0087e818\",\n        \"v\": \"initial\",\n        \"text\": \"Working Copy Proposed for Release\"\n      },\n      {\n        \"id\": \"76c87a07-af28-433a-b897-45fcb19f4349\",\n        \"v\": \"initial\",\n        \"text\": \"Working Copy Revision Needed\"\n      }\n    ]\n\n    locals.count = 0\n    locals.documents = []\n    locals.query = `a:${document.id} f.id:dbee6e16-d63a-493c-bba6-505f79918f9f (${stampsWhichNeedAttention.map(s => `stamps.type.id:${s.id}`).join(' OR ')})`\n\n    const hasWorkflowConfigured = await Aeppic.findOne(`p:${document.id} f.id:${this.FORMS.WorkflowConfiguration} data.workflowDefintion:${this.IDS.FreigabeProzess}`)\n\n    if (!hasWorkflowConfigured) {\n      return\n    }\n\n    Aeppic.subscribe(locals.query, async (documents) => {\n      const activeDocChecks = documents.map(d => this._isWorkflowActive(d));\n      const checkedDocs = await Promise.all(activeDocChecks)\n\n      const onlyActiveDocs = []\n\n      for (let i=0; i<documents.length; i++) {\n        if (checkedDocs[i]) {\n          onlyActiveDocs.push(documents[i])\n        } else {\n          //console.log('removed ', i)\n        }\n      }\n\n      locals.documents = onlyActiveDocs\n      \n      locals.count = locals.documents.length\n      //console.log(locals.count)\n    })  \n  }\n \n  async _isWorkflowActive(doc) {\n    const  workflow = new packages.DocumentWorkflow(doc.id, { workflow: this.IDS.FreigabeProzess, Aeppic })\n\n    return await workflow.isAvailable() && await workflow.isActive()\n  }\n} ","css":"._CSS-ping--once {\n  animation: ping 1s cubic-bezier(0, 0, 0.2, 1);\n}\n\n@keyframes ping {\n  75%, 100% {\n    transform: scale(2);\n    opacity: 0;\n  }\n}\n","description":"","name":"rd:menu-unread","packages":[{"id":"9980d952-e898-413a-af84-051795281aca","text":"Workflow","v":"57de45af509a3c86"}],"template":"<div v-if=\"locals.count > 0\"\n    class=\"relative flex items-center justify-center rounded-full h-5 w-5 text-sm bg-white\"\n> \n  <!-- the key will make the ping animation play again -->\n  <div class=\"absolute h-5 w-5 rounded-full border bg-red-200 border-red-400 text-red-900\" \n      :class=\"[locals.count > 0 ? ' _CSS-ping--once' : '']\"\n      :key=\"'_CSS '+ locals.count\"\n  >\n  </div> \n  <div class=\"absolute text-red-900\"\n  >\n    {{ locals.count }}\n  </div>\n</div> "},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"fd6fccf8-3b82-49a3-9e6b-84c3bde23ce3","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-05-15T15:43:05+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"554234d4-1a0a-4f31-b6a1-7899ca841995","previous":{"v":"52e5dccb14fa9879"},"stamps":[],"t":1747323785814,"v":"6368d991de1445a4"},{"a":["apps","77ee8815-2c3a-4bb5-abd9-90541a545a24","1cc4b977-c14d-4587-af47-d6ac230f60b3"],"a_depth":3,"a_forms":["folder","application-form","design-folder"],"created":{"at":"2022-08-22T11:53:55+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1720684627136,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.showValidity = false\n\n    locals.form = null\n    locals.form = await Aeppic.getFormForDocument(document)\n\n    locals.allowUndefinedFields = locals.form.data.allowUndefinedFields === true\n  }\n} ","css":"","description":"","name":"rd:more-actions","packages":[],"template":"<div class=\"flex gap-2 items-center h-full w-full overflow-hidden xp-2\">\n  <ae-layout class=\"overflow-hidden\" :key=\"document.id\" layout-id=\"586c6405-3655-4cc6-bed5-adc4272a9097\" :params=\"{ ...params, document: document }\" v-show=\"locals.showValidity\" @show=\"locals.showValidity = true\" @hide=\"locals.showValidity = false\"></ae-layout>\n  <!-- <ae-design class=\"grow-0 shrink-1 max-w-full\" name=\"rd:validity-button\" :document=\"document\" :params=\"params\" v-show=\"locals.showValidity\" @show=\"locals.showValidity = true\" @hide=\"locals.showValidity = false\"></ae-design> -->\n  <ae-design class=\"grow-0 shrink-1 max-w-full\" name=\"rd:context-actions\" :document=\"document\" :params=\"params\"></ae-design>\n  <ae-layout    layout-id=\"2ad0619d-792e-40ea-9e76-f7801593f6f8\"\n                :param-document=\"document\"\n                :params=\"params\"\n                v-if=\"!locals.allowUndefinedFields && !params.disableComments\"\n  ></ae-layout> \n\n  <ae-layout    layout-id=\"ef66a07d-1fc2-40de-9be1-8d91839a3611\"\n                :param-document=\"document\"\n                :params=\"params\"\n                v-if=\"locals.allowUndefinedFields\"\n  ></ae-layout> \n</div>\n  "},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"ccce8921-a28f-4d2b-b68d-572069236714","inheritedLocks":[null,null,null,null],"locks":[],"meta":{},"modified":{"at":"2026-03-30T07:53:44+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"p":"1cc4b977-c14d-4587-af47-d6ac230f60b3","previous":{"v":"c68bdc2ef9bbbcee"},"stamps":[],"t":1774857224031,"v":"4a470a8cc1f502a7"},{"id":"1d41cc85-4621-4fd3-b090-4191710f1180","v":"755bb4d1480730f6","cloneOf":{"id":"dc11ce6d-847c-424a-99df-572342f59351","v":"724e95aa98c776bf","text":"rd:more-dropdown-actions"},"originalCloneOf":{"id":"dc11ce6d-847c-424a-99df-572342f59351","v":"724e95aa98c776bf","text":"rd:more-dropdown-actions"},"previous":{"v":"c03baf555ad59b80"},"p":"c6237a67-b8cf-4107-92d8-afd460497f0e","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"rd:more-dropdown-actions","template":"<ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n          param-icon=\"far fa-calendar\"\n          param-text=\"Kalender integrieren\"\n          @selected=\"controller.showIntegrationDialog()\"\n          param-title=\"Kalender in einem Kalender-Programm integrieren\"\n          param-classes=\"w-full\"\n></ae-layout>\n\n \n<ae-dialog ref=\"dialog\">\n  <template #header=\"scope\">\n    <div class=\"flex justify-between items-center\">\n      <span>Kalender integrieren</span>\n\n      <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n                param-icon=\"far fa-times\"\n                @selected=\"scope.close()\"\n      ></ae-layout>\n    </div>\n  </template>\n  <template #body>\n    <div class=\"flex flex-col gap-6\">\n      <div class=\"flex flex-col gap-2\">\n        <span>\n        Sie können ihre <span class=\"font-bold\">persönlichen Termine</span> dieses Kalenders in anderen Programmen abrufen.\n        </span>\n        <p>\n        Diese Intergration nutzt das iCal-Protokoll, welches einen lesenden Zugriff in diversen Programmen ermöglicht.\n        </p>\n\n        <span class=\"text-red-500\">\n          <ae-icon class=\"far fa-exclamation-triangle\"></ae-icon>\n          Dieser Link ist für Ihren Account individualisiert. Geben Sie diesen nicht an Andere weiter.\n        </span>\n      </div>\n\n      <div v-if=\"locals.subscription\" class=\"flex flex-col gap-6\">\n        Bestehender Link\n        <div class=\"flex flex gap-2\">\n          <input class=\"w-0 flex-1 border rounded-md p-1\" :value=\"controller.link\" readonly>\n\n          <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n                  param-icon=\"far fa-clipboard\"\n                  @selected=\"Aeppic.copyToClipboard(controller.link)\"\n                  param-text=\"In Zwischenablage kopieren\"\n        ></ae-layout>\n        </div>\n\n        <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n                param-icon=\"far fa-trash\"\n                param-text=\"Zurücksetzen\"\n                @selected=\"controller.reset()\"\n                class=\"text-red-300 hover:text-red-500\"\n        ></ae-layout>\n      </div>\n      <div v-else>\n\n        <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n                param-icon=\"far fa-plus-circle\"\n                param-text=\"Link erstellen\"\n                @selected=\"controller.create()\"\n        ></ae-layout>\n      </div>\n    </div>\n  </template>\n</ae-dialog>","css":"","controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      CalenderSubscription: 'e48fb2e4-6292-4c73-9682-5db968194ba7'\n    }\n\n    locals.ready = false\n  }\n\n  async showIntegrationDialog() {\n    $emit('close')\n\n    locals.ready = false\n    locals.subscription = null\n\n    if (!Aeppic.Account?.data.isGroupAccount === false) {\n      return\n    }\n\n    Aeppic.subscribe(`p:${Aeppic.Account.id} f.id:${this.FORMS.CalenderSubscription} data.calendar.id:${document.id}`, { size: 1 }, (documents) => {\n      locals.subscription = documents[0]\n    })\n\n    locals.ready = true\n\n    $refs.dialog.show()\n  }\n\n  get link() {\n    return `${packages.window.location.protocol}//${packages.window.location.host}/api/services/48dbba36-ae0f-4be0-8ecd-5cb5f7f92b0a/v1/calendar/ical?token=${locals.subscription.data.token}`\n  }\n\n  async create() {\n    const editable = await Aeppic.new(this.FORMS.CalenderSubscription, Aeppic.Account.id)\n    editable.addReference('calendar', document)\n    editable.data.token = Aeppic.uuid()\n    Aeppic.save(editable)\n  }\n\n  async reset() {\n    Aeppic.delete(locals.subscription)\n    locals.subscription = null\n  }\n}\n","packages":[{"id":"10843fbf-4f0c-416b-be7d-42d6bbd0ae68","v":"d4ce6dec568c3dc1","text":"Window"}],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-12-18T14:33:10+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-12-18T14:50:35+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1702911035455,"ct":1702909990858,"a_depth":4,"a":["apps","d8c9a42b-e289-4c9a-97ea-801de8ab480a","db8e20d1-732c-4c6b-9cfc-b323f83fa378","c6237a67-b8cf-4107-92d8-afd460497f0e"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"7bf6c744-deac-461f-89ed-fb94b00b30a1","v":"ff7a7b17f2fc2e60","previous":{"v":"cd157bcac901fa32"},"p":"cfd3ce74-9fa5-46c8-a9e9-cba33a3b8e70","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:more-dropdown-actions","template":"<template v-if=\"params.view?.includes('list')\">\n  <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n              param-icon=\"far fa-cog\"\n              param-text=\"Stammdaten\"\n              @selected=\"Aeppic.drillInto(locals.coreData)\"\n              param-title=\"Stammdaten\"\n              param-classes=\"w-full\"\n              :param-disabled=\"!locals.coreData\"\n  ></ae-layout>\n</template>\n<template v-else-if=\"params.view === 'billing'\">\n    <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n            param-text=\"Fakturierungs-Einstellungen\"\n            :param-icon-design-document-id=\"locals.billingSettings?.id\"\n            @selected=\"Aeppic.drillInto(locals.billingSettings)\"\n            :param-disabled=\"!locals.billingSettings\"\n            param-classes=\"w-full\"\n  ></ae-layout> \n</template>\n","css":"","controller":"class Controller {\n  async init() {\n    locals.coreData = null\n    locals.billingSettings = null\n\n    const [\n      coreData,\n      billingSettings,\n    ] = await Promise.all([\n      Aeppic.findOne(`p:${document.id} f.id:089eb68f-d2ec-4e30-a3bb-6549d72932ec`),\n      Aeppic.findOne(`p:${document.id} f.id:6cfeb343-afc3-48ed-8f48-6f6262f1361b`),\n    ])\n  \n    locals.coreData = coreData\n    locals.billingSettings = billingSettings\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-04-02T13:26:31+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-04-05T09:29:55+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1712309395867,"ct":1712064391409,"a_depth":4,"a":["apps","94a64d89-d204-4918-b147-d717914fb03e","f254ce25-42f1-4333-8ee7-23554bf746c1","cfd3ce74-9fa5-46c8-a9e9-cba33a3b8e70"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"872ab2ab-fc39-480d-b7f1-3cd514ea6e3b","v":"bda810ad803991d3","cloneOf":{"id":"7bf6c744-deac-461f-89ed-fb94b00b30a1","v":"ff7a7b17f2fc2e60","text":"rd:more-dropdown-actions"},"originalCloneOf":{"id":"7bf6c744-deac-461f-89ed-fb94b00b30a1","v":"ff7a7b17f2fc2e60","text":"rd:more-dropdown-actions"},"previous":{"v":"initial"},"p":"eccbf3d6-5fc6-473a-8b81-3049bac700e4","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:more-dropdown-actions","template":"<!-- <template v-if=\"params.view?.includes('list')\"> -->\n  <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n              param-icon=\"far fa-cog\"\n              param-text=\"Stammdaten\"\n              @selected=\"Aeppic.drillInto(locals.coreData)\"\n              param-title=\"Stammdaten\"\n              param-classes=\"w-full\"\n              :param-disabled=\"!locals.coreData\"\n  ></ae-layout>\n<!-- </template> -->","css":"","controller":"class Controller {\n  async init() {\n    locals.coreData = null\n\n    const [\n      coreData,\n    ] = await Promise.all([\n      Aeppic.findOne(`p:${document.id} f.id:192961fd-cab8-4fab-bfd8-6722dce765c8`),\n    ])\n  \n    locals.coreData = coreData\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-05-07T12:31:08+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-05-07T12:34:31+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1715085271502,"ct":1715085068959,"a_depth":4,"a":["apps","bc036ad0-6dbc-415b-b506-325fb0a44046","8ffb21f4-3d63-4824-a633-10a19d7aa7d8","eccbf3d6-5fc6-473a-8b81-3049bac700e4"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","9d6ee173-26fe-4472-a271-7667f717094e","6743ef9a-c21b-443f-91b8-4dd86886ee8c","c6337671-7c10-4017-922c-4945b266c615"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2025-05-26T12:38:29+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1748263109682,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.renderkey = 0\n\n    locals.settings = null\n\n    const [\n      settings,\n    ] = await Promise.all([\n      Aeppic.findOne(`p:${document.p} f.id:6cfeb343-afc3-48ed-8f48-6f6262f1361b`),\n    ])\n\n    locals.settings = settings\n  }\n\n  drillTo(doc) {\n    Aeppic.drillInto(doc)\n    $emit('close')\n  }\n} ","css":"","description":"","name":"rd:more-dropdown-actions","packages":[],"template":"  <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n          param-text=\"Fakturierungs-Einstellungen\"\n          :param-icon-design-document-id=\"locals.settings?.id\"\n          @selected=\"controller.drillTo(locals.settings)\"\n          :param-disabled=\"!locals.settings\"\n          param-classes=\"w-full\"\n></ae-layout> "},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"aac8edc7-f66c-4d92-8404-04e72fb55d3e","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-05-26T12:42:31+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"c6337671-7c10-4017-922c-4945b266c615","previous":{"v":"869be1594ab209db"},"stamps":[],"t":1748263351591,"v":"40e6edf3a1346d00"},{"id":"dc11ce6d-847c-424a-99df-572342f59351","v":"3c9f2a43f936bd8c","previous":{"v":"582b535aeb45d6d2"},"p":"5475727b-0e0c-412a-8452-23b9c5b242f2","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"rd:more-dropdown-actions","template":"<template v-if=\"params.view?.includes('customers')\">\n  <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n            param-icon=\"far fa-cog\"\n            param-text=\"Board Einstellungen\"\n            @selected=\"$refs.dialog.show()\"\n            param-title=\"Board Einstellungen\"\n            param-classes=\"w-full\"\n  ></ae-layout>\n\n  <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n            param-text=\"Labels\"\n            :param-icon-design-document-id=\"locals.labelsFolder?.id\"\n            @selected=\"controller.drillTo(locals.labelsFolder)\"\n            :param-disabled=\"!locals.labelsFolder\"\n            param-classes=\"w-full\"\n  ></ae-layout> \n\n\n  <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n            param-text=\"Branchen\"\n            :param-icon-design-document-id=\"locals.branchenFolder?.id\"\n            @selected=\"controller.drillTo(locals.branchenFolder)\"\n            :param-disabled=\"!locals.branchenFolder\"\n            param-classes=\"w-full\"\n  ></ae-layout> \n\n\n  <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n            param-text=\"Kategorien\"\n            :param-icon-design-document-id=\"locals.categoriesFolder?.id\"\n            @selected=\"controller.drillTo(locals.categoriesFolder)\"\n            :param-disabled=\"!locals.categoriesFolder\"\n            param-classes=\"w-full\"\n  ></ae-layout> \n\n  <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n            param-text=\"Produkte\"\n            :param-icon-design-document-id=\"locals.productsFolder?.id\"\n            @selected=\"controller.drillTo(locals.productsFolder)\"\n            :param-disabled=\"!locals.productsFolder\"\n            param-classes=\"w-full\"\n  ></ae-layout> \n\n  <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n            param-text=\"Quellen\"\n            :param-icon-design-document-id=\"locals.sourcesFolder?.id\"\n            @selected=\"controller.drillTo(locals.sourcesFolder)\"\n            :param-disabled=\"!locals.sourcesFolder\"\n            param-classes=\"w-full\"\n  ></ae-layout> \n\n\n\n  <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n            param-icon=\"far fa-share-alt\"\n            param-text=\"Webhooks Integration\"\n            @selected=\"controller.showWebhooks()\"\n            param-title=\"Webhooks Integration\"\n            param-classes=\"w-full\"\n  ></ae-layout>\n</template>\n<template v-else-if=\"params.view === 'billing'\">\n    <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n            param-text=\"Fakturierungs-Einstellungen\"\n            :param-icon-design-document-id=\"locals.settings?.id\"\n            @selected=\"controller.drillTo(locals.settings)\"\n            :param-disabled=\"!locals.settings\"\n            param-classes=\"w-full\"\n  ></ae-layout> \n</template>\n\n\n\n\n \n<ae-dialog ref=\"dialog\" @close=\"locals.renderkey += 1\">\n    <template #header>\n    <div>\n      Board Einstellungen bearbeiten\n    </div>\n  </template>\n  <template #body=\"scope\">\n    <ae-layout\n        layout-id=\"63b85200-0507-40ab-b920-9f905bf3011e\"\n          :param-document=\"document\"\n          ref=\"editable\"\n          @save=\"scope.close()\"\n          :key=\"id(locals.renderkey)\"\n    ></ae-layout>\n  </template>\n\n    <template #commands=\"scope\">\n    <div class=\"_CSS-actions\">\n      <button class=\"ae-button\" @click.stop=\"scope.close()\">\n        Abbrechen\n      </button>\n      <button class=\"ae-button ae-button--primary\" @click.stop=\"$refs.editable.$emit('execute-save')\">\n        Speichern\n      </button>\n    </div>\n  </template>\n</ae-dialog>\n\n<ae-dialog ref=\"webhook\">\n    <template #header>\n    <div>\n      Webhooks\n    </div>\n  </template>\n  <template #body=\"scope\">\n    <div class=\"flex flex-col p-4 max-w-3xl m-auto\">\n      <div class=\"mb-10 text-lg\">\n        Mit Hilfe von Webhooks kann aus anderer Software ein Kunde erstellt werden.<br>\n        \n        Folgend werden alle verfügbaren Webhooks für dieses CRM Board gelistet<br>\n\n        <div class=\"text-sm\">Nicht hier aufgelistet ist die Option des Hinzufügens einer Quelle. Wenden Sie sich hierzu bitte an den Support.</div>\n      </div>\n\n      <div class=\"flex flex-col gap-2\">\n        <div v-for=\"hook of locals.hooks\" class=\"flex flex-col\">\n          <div class=\"font-bold\">\n          {{ hook.label}}\n          </div>\n\n          <div class=\"grid grid-cols-2\"> \n            <div class=\"w-[200px]\">HTTP-Method:</div>  <div>{{ hook.method }}</div>\n            <div class=\"w-[200px]\">URL: </div> <div>{{ hook.url }}</div>\n          </div>\n        </div>\n      </div>\n\n      \n      <!-- {{locals.categories}} -->\n    </div>\n  </template>\n\n    <template #commands=\"scope\">\n    <div class=\"_CSS-actions\">\n      <button class=\"ae-button\" @click.stop=\"scope.close()\">\n        Abbrechen\n      </button>\n      <button class=\"ae-button ae-button--primary\" @click.stop=\"$refs.editable.$emit('execute-save')\">\n        Speichern\n      </button>\n    </div>\n  </template>\n</ae-dialog>","css":"","controller":"class Controller {\n  async init() {\n    locals.renderkey = 0\n\n    locals.labelsFolder = null\n    locals.branchenFolder = null\n    locals.categoriesFolder = null\n    locals.productsFolder = null\n    locals.sourcesFolder = null\n    locals.settings = null\n\n    const [\n      labelsFolder,\n      branchenFolder,\n      categoriesFolder,\n      productsFolder,\n      sourcesFolder,\n      settings,\n    ] = await Promise.all([\n      Aeppic.findOne(`p:${document.id} f.id:da73bcf8-be71-46ca-9645-894b04e2bfd1`),\n      Aeppic.findOne(`p:${document.id} f.id:304e2bea-3a32-4f78-a58c-2f541d907356`),\n      Aeppic.findOne(`p:${document.id} f.id:9b0547f6-28c6-4bcf-90fd-bbaa1bf56db1`),\n      Aeppic.findOne(`p:${document.id} f.id:6d07adf2-7c05-4cea-ab5d-8fae3e024bb1`),\n      Aeppic.findOne(`p:${document.id} f.id:f8d9d7d9-bfb4-4555-8163-ae962ed41a38`),\n      Aeppic.findOne(`p:${document.id} f.id:6cfeb343-afc3-48ed-8f48-6f6262f1361b`),\n    ])\n\n    locals.labelsFolder = labelsFolder\n    locals.branchenFolder = branchenFolder\n    locals.categoriesFolder = categoriesFolder\n    locals.productsFolder = productsFolder\n    locals.sourcesFolder = sourcesFolder \n    locals.settings = settings\n  }\n\n  async showWebhooks() {\n    const serviceSettings = await Aeppic.findOne(`a:d06f9f16-07e0-48e8-89aa-8ccee83ce6c2 f.id:53ccd797-d0e6-49ca-9c76-7c5337af88ed data.instanceOf:90f59e8b-2dc1-49f1-8696-b8df41291220 data.enabled:true`)\n    if (!serviceSettings) {\n      return\n    }\n\n    const token = (await Aeppic.get(serviceSettings.data.settings.id)).data.apiKey\n\n    if (!token) {\n      return\n    }\n\n    const categories = await Aeppic.find(`a:${document.id} f.id:b12cba63-8003-4f84-a235-d67fd506b155`)\n    const sources = []\n\n    const hooks = []\n\n    for (const category of categories) {\n      // sourceId=6f48efe2-88bd-43c9-8b24-e8294950a42e\n      const hook = {\n        label: `Kategorie: ${category.data.name || category.id}`,\n        url: `${packages.window.location.origin}/api/services/e8c172dc-06c6-462b-a40c-93d0952a2cb1/board/${document.id}/category/${category.id}/customer?token=${token}`,\n        method: 'POST'\n      }\n\n      hooks.push(hook)\n    }\n\n    locals.hooks = hooks\n\n    $refs.webhook.show()\n\n    $emit('close')\n  }\n\n  drillTo(doc) {\n    Aeppic.drillInto(doc)\n    $emit('close')\n  }\n} ","packages":[{"id":"10843fbf-4f0c-416b-be7d-42d6bbd0ae68","v":"d4ce6dec568c3dc1","text":"Window"}],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-01-17T14:17:39+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2024-06-17T14:39:43+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1718635183384,"ct":1673965059888,"a_depth":4,"a":["apps","9d6ee173-26fe-4472-a271-7667f717094e","6743ef9a-c21b-443f-91b8-4dd86886ee8c","5475727b-0e0c-412a-8452-23b9c5b242f2"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"403cb191-85ab-45e3-9ef5-c1b2f1ec127c","v":"0883f6d876a3587a","cloneOf":{"id":"aef0e805-5995-4ad3-a267-bd8255295bdd","v":"f2656fbe1669c6ed","text":"multiple-file-upload"},"originalCloneOf":{"id":"aef0e805-5995-4ad3-a267-bd8255295bdd","v":"f2656fbe1669c6ed","text":"multiple-file-upload"},"previous":{"v":"39a2cb8caa542639"},"p":"554234d4-1a0a-4f31-b6a1-7899ca841995","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"rd:multiple-file-upload","template":"<ae-layout  layout-id=\"8ae0359f-4d25-4d17-baf0-f69c006bd4ad\"\n              :param-show-ui=\"true\"\n              :param-document=\"document\"\n              param-file-form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\"\n              param-file-form-field=\"datei\"\n              param-file-name-to-field=\"name\"\n              param-directory-form-id=\"a04c8913-db48-4e80-b20d-0f3cc17a778c\"\n              :param-save-new-documents=\"true\"\n              @added=\"controller.added($event)\"\n></ae-layout> \n\n\n<div v-if=\"locals.added.files.length\">\n  <div class=\"\" >\n    <div class=\"flex flex-col italic \">\n      <div >Hochgeladene Dateien</div>\n      <div>\n        {{ locals.added.files.length }} Dateien,\n        {{ locals.added.folders.length }} Ordner\n      </div>\n    </div>\n \n    <ae-list list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\"\n            :documents=\"locals.added.folders\"\n            param-title-text=\"Ordner\"\n            v-if=\"locals.added.folders.length\"\n    ></ae-list>\n\n    <ae-list list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\"\n            :documents=\"locals.added.files\"\n            param-title-text=\"Dateien\"\n            v-if=\"locals.added.files.length\"\n    ></ae-list>\n  </div>\n\n\n</div> ","css":"","controller":"class Controller {\n  init() {\n    locals.added = {\n      folders: [],\n      files: []\n    }\n  }\n\n  added(event) {\n    if (event.directoryIds) {\n      locals.added.folders.push(...event.directoryIds)\n    }\n\n    if (event.documentIds) {\n      locals.added.files.push(...event.documentIds)\n    }\n  }\n}\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-12-13T13:38:57+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-12-13T13:41:47+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1702474907196,"ct":1702474737315,"a_depth":4,"a":["apps","45ada186-e9fd-451d-9dbd-2defc0b4f86f","4ec6a0e5-cf2d-4095-9b70-2e31a64d5679","554234d4-1a0a-4f31-b6a1-7899ca841995"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"aef0e805-5995-4ad3-a267-bd8255295bdd","v":"7cec5ec436653144","previous":{"v":"f2656fbe1669c6ed"},"p":"a04c8913-db48-4e80-b20d-0f3cc17a778c","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"rd:multiple-file-upload","template":"<ae-layout  layout-id=\"8ae0359f-4d25-4d17-baf0-f69c006bd4ad\"\n              :param-show-ui=\"true\"\n              :param-document=\"document\"\n              param-file-form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\"\n              param-file-form-field=\"datei\"\n              param-file-name-to-field=\"name\"\n              param-directory-form-id=\"a04c8913-db48-4e80-b20d-0f3cc17a778c\"\n              :param-save-new-documents=\"true\"\n              @added=\"controller.added($event)\"\n></ae-layout> \n\n\n<div v-if=\"locals.added.files.length\">\n  <div class=\"\" >\n    <div class=\"flex flex-col italic \">\n      <div >Hochgeladene Dateien</div>\n      <div>\n        {{ locals.added.files.length }} Dateien,\n        {{ locals.added.folders.length }} Ordner\n      </div>\n    </div>\n \n    <ae-list list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\"\n            :documents=\"locals.added.folders\"\n            param-title-text=\"Ordner\"\n            v-if=\"locals.added.folders.length\"\n    ></ae-list>\n\n    <ae-list list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\"\n            :documents=\"locals.added.files\"\n            param-title-text=\"Dateien\"\n            v-if=\"locals.added.files.length\"\n    ></ae-list>\n  </div>\n\n\n</div> ","css":"","controller":"class Controller {\n  init() {\n    locals.added = {\n      folders: [],\n      files: []\n    }\n  }\n\n  added(event) {\n    if (event.directoryIds) {\n      locals.added.folders.push(...event.directoryIds)\n    }\n\n    if (event.documentIds) {\n      locals.added.files.push(...event.documentIds)\n    }\n  }\n}\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-02-11T10:40:28+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-12-13T13:42:27+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1702474947838,"ct":1644576028988,"a_depth":4,"a":["apps","45ada186-e9fd-451d-9dbd-2defc0b4f86f","4ec6a0e5-cf2d-4095-9b70-2e31a64d5679","a04c8913-db48-4e80-b20d-0f3cc17a778c"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","9d6ee173-26fe-4472-a271-7667f717094e","6743ef9a-c21b-443f-91b8-4dd86886ee8c","5475727b-0e0c-412a-8452-23b9c5b242f2"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2022-07-01T13:27:05+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1656682025714,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.ready = false\n    this.FORMS = {\n      Kunde: '8fc08287-dbcc-4e41-9d5d-28e4cd828943',\n      Board: '4ef9e83e-1aa5-4709-bbd5-24e98ea0148c',\n      OldBoard: '43420696-8097-4fc1-88e5-c69df9821470',\n    }\n    this.DOCUMENTS = {\n      NewBoardTemplate: 'e249c737-054b-48b4-b893-8c8e6c06cec0',\n    }\n    this.LOCATIONS = {\n      NewDocumentLocationId: document.id,\n      BoardLocation: document.id,\n    }\n    this.COMMANDGROUPS = {\n      NewKundeCommandGroup: '92249a09-237c-481f-9e1f-a26941a4ecbd',\n    }\n    locals.FORMS = this.FORMS\n    locals.LOCATIONS = this.LOCATIONS\n    locals.COMMANDS = this.COMMANDS\n\n    locals.settings = null\n    locals.filter = ''\n    locals.views = [\n      {\n        identifier: 'board',\n        text: 'Board',\n        icon: 'far fa-columns',\n      },\n      {\n        identifier: 'list',\n        text: 'Liste',\n        icon: 'far fa-list',\n      }\n    ]\n    locals.boardDocuments = []\n\n    await this.setBoard()\n    Aeppic.subscribe(this.search, {size: 99999}, newDocuments => {\n      locals.boardDocuments = newDocuments\n    })\n    locals.ready = true\n  }\n\n  async setBoard() {\n    // Find existing board\n    locals.board = await Aeppic.findOne(`p:${this.LOCATIONS.BoardLocation} f:${this.FORMS.Board} data.form:${this.FORMS.Kunde}`)\n    if (locals.board) {\n      return\n    }\n    // Find old board to migrate\n    locals.oldBoard = await Aeppic.findOne(`p:${this.LOCATIONS.BoardLocation} f:${this.FORMS.OldBoard} data.form:${this.FORMS.Kunde}`)\n    if (locals.oldBoard) {\n      await Aeppic.Commands.execute('2123d205-09aa-462e-a271-8f70624bd407', locals.oldBoard.id)\n      return\n    }\n    // Clone new board from template\n    const boardAndComponents = (await Aeppic.cloneDeep(this.DOCUMENTS.NewBoardTemplate, this.LOCATIONS.BoardLocation))\n    Aeppic.saveAll(boardAndComponents.documents)\n    locals.board = boardAndComponents.root\n  }\n\n  get filter() {\n    return [locals.filter, 'data.verantwortlich:' + Aeppic.ProfilePage.id].join(' ')\n  }\n\n  get search() {\n    const base = 'p:' + document.id + ' f.id:' + locals.FORMS.Kunde\n\n    if (this.filter) {\n      return `${base} ${this.filter.trim()}`\n    }\n\n    return base\n  }\n}","css":"","description":"","name":"rd:my-customers","packages":[],"template":"<div \n  class=\"flex flex-col h-full\"\n  v-if=\"locals.ready\"  \n>\n  <ae-design\n    class=\"mb-2 ml-2\"\n    name=\"rd:toolbar\"\n    :document=\"document\"\n    @filter=\"locals.filter = $event\"\n    @view=\"locals.view = $event\"\n    :param-views=\"locals.views\"\n    :param-disable-sort=\"true\"\n    :param-list-form-id=\"locals.FORMS.Kunde\"\n    :param-persist-view=\"true\"\n    :param-commands=\"[controller.COMMANDGROUPS.NewKundeCommandGroup]\"\n    :param-window-width=\"params.windowWidth\"\n  ></ae-design>\n\n  <ae-design\n    v-if=\"locals.view === 'list'\"\n    name=\"rd:list\"\n    :document=\"document\"\n    class=\"flex-1\"\n    :params=\"{ ...params, filter: controller.filter  }\"\n  ></ae-design>\n\n  <ae-layout\n    v-if=\"locals.view === 'board'\"\n    class=\"flex-1 min-h-0 pt-1\"\n    layout-id=\"1d3dc097-ae91-409d-99cb-43c236be89aa\"\n    :param-board=\"locals.board\"\n    :param-documents=\"locals.boardDocuments\"\n    :param-new-document-location-id=\"locals.LOCATIONS.NewDocumentLocationId\"\n    :param-new-document-command-group-id=\"controller.COMMANDGROUPS.NewKundeCommandGroup\"\n    :param-filter=\"locals.filter\"\n    :param-hide-filter=\"true\"\n    :param-default-view=\"{mode: 'reference', fieldName: 'kategorie'}\"\n    @selected=\"Aeppic.drillInto($event, arguments[1])\"\n  ></ae-layout>\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"c2d9ae57c7a46896"},"id":"18064067-4a8e-4607-96f1-64edc5726ff4","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-03-24T12:10:19+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"p":"5475727b-0e0c-412a-8452-23b9c5b242f2","previous":{"v":"0b7a1ba9a255e2ae"},"stamps":[],"t":1774354219243,"v":"e4e331632f7ee9a5"},{"a":["apps","59edbdbc-2cab-426a-bb42-6e57c5158e4f","3be7e887-1bcd-4c3c-979f-b20a986c4c48","0b4fe19c-a550-46b7-ada0-6813a60e14bc"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2022-05-11T10:37:22+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1652265442505,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.ready = false\n    this.LOCATIONS = {\n      BoardLocation: Aeppic.ProfilePage.id,\n      NewDocumentLocation: document.id\n    }\n    this.DOCUMENTS = {\n      NewBoardTemplate: '5e6c9dda-7b43-4657-872f-ccb2dbe71119',\n    }\n    this.FORMS = {\n      Projekt: '0b6a2b21-9425-466e-9e8d-57ec39cc95e1',\n      Board: '4ef9e83e-1aa5-4709-bbd5-24e98ea0148c',\n      OldBoard: '43420696-8097-4fc1-88e5-c69df9821470',\n    }\n    this.COMMANDS= {\n      NeuesProjektCommandId: '656b6f8c-5766-44cd-ad01-af059d4fe383',\n    }\n    locals.LOCATIONS = this.LOCATIONS\n    locals.DOCUMENTS = this.DOCUMENTS\n    locals.FORMS = this.FORMS\n    locals.COMMANDS = this.COMMANDS\n\n    locals.filter = ''\n    locals.sort=[\n      { field: 'f.id' },\n      { field: 'data.name' },\n      { field: 'id' },\n    ]\n    locals.views = [\n      {\n        identifier: 'list',\n        text: 'Liste',\n        icon: 'far fa-list',\n      },\n      {\n        identifier: 'board',\n        text: 'Board',\n        icon: 'far fa-columns',\n      }\n    ]\n    locals.documents = []\n    locals.localStorageKey = `user-pref@design=${design.id}@document=${document.id}`\n\n    Aeppic.subscribe(this.search, {size: 99999}, newDocuments => {\n      const hasChanged = !this.documentsAreEqual(locals.documents, newDocuments)\n      if (hasChanged) {\n        locals.documents = newDocuments\n      }\n    })\n    await this.setBoard()\n    locals.ready = true\n  }\n\n  get filter() {\n    // return [locals.filter, 'data.verantwortlich:' + Aeppic.ProfilePage.id].join(' ')\n    return [locals.filter].join(' ')\n  }\n\n  get search() {\n    const base = `a:${document.id} f.id:${locals.FORMS.Projekt} data.verantwortlich:${Aeppic.ProfilePage.id} data.erledigt:false`\n\n    if (this.filter) {\n      return `${base} ${this.filter.trim()}`\n    }\n    return base\n  }\n  \n  async setBoard() {\n    // Find existing board\n    locals.board = await Aeppic.findOne(`p:${this.LOCATIONS.BoardLocation} f:${this.FORMS.Board} data.form:${this.FORMS.Projekt} data.key:${locals.localStorageKey}`)\n    if (locals.board) {\n      return\n    }\n    // Find old board to migrate\n    locals.oldBoard = await Aeppic.findOne(`p:${this.LOCATIONS.BoardLocation} f:${this.FORMS.OldBoard} data.form:${this.FORMS.Projekt} data.key:${locals.localStorageKey}`)\n    if (locals.oldBoard) {\n      await Aeppic.Commands.execute('2123d205-09aa-462e-a271-8f70624bd407', locals.oldBoard.id)\n      return\n    }\n    // Clone new board from template\n    const boardAndComponents = (await Aeppic.cloneDeep(this.DOCUMENTS.NewBoardTemplate, this.LOCATIONS.BoardLocation))\n    boardAndComponents.root.data.key = locals.localStorageKey\n    Aeppic.saveAll(boardAndComponents.documents)\n    locals.board = boardAndComponents.root\n  }\n\n  documentsAreEqual(arr1, arr2) {\n    if (!arr1 || !arr2 || arr1.length !== arr2.length) {\n      return false\n    }\n    for (let i = 0; i < arr1.length; i++) {\n      if (\n        arr1[i]?.id !== arr2[i]?.id ||\n        arr1[i]?.v?.id !== arr2[i]?.v?.id\n      ) {\n        return false\n      }\n    }\n    return true\n  }\n}","css":"","description":"","name":"rd:my-projects","packages":[],"template":"<div \n  v-if=\"locals.ready\"\n  class=\"h-full flex flex-col overflow-x-auto\"\n>\n  <ae-design \n    name=\"rd:toolbar\"\n    class=\"mb-2 ml-2\"\n    :document=\"document\"\n    :param-disable-sort=\"true\"\n    :param-list-form-id=\"locals.FORMS.Projekt\"\n    :param-views=\"locals.views\"\n    :param-persist-view=\"true\"\n    :param-view-persistance-key=\"locals.localStorageKey\"\n    :param-disable-new=\"true\"\n    @filter=\"locals.filter = $event\"\n    @view=\"locals.view = $event\"\n  ></ae-design>\n\n  <div\n    v-if=\"locals.view === 'list'\"\n    class=\"flex-1 mx-auto flex flex-col gap-4 w-full bg-white dark:bg-slate-800 overflow-visible max-w-5xl px-4 py-2 my-2 lg:shadow-md lg:rounded-md overflow-y-auto\"\n  >\n    <ae-layout \n      layout-id=\"4a4f4c51-5b0f-4ff2-bd67-c2acbfb09fb2\"\n      class=\"flex-1\"\n      :param-documents=\"locals.documents\"\n      :param-filter=\"locals.filter\"\n      @selected=\"Aeppic.drillInto($event)\"\n    ></ae-layout>\n  </div>\n  <ae-layout\n    v-if=\"locals.view === 'board'\"\n    class=\"flex-1 min-h-0 pt-1\"\n    layout-id=\"1d3dc097-ae91-409d-99cb-43c236be89aa\"\n    :param-board=\"locals.board\"\n    :param-documents=\"locals.documents\"\n    :param-new-document-location-id=\"locals.LOCATIONS.NewDocumentLocation\"\n    :param-new-document-command-ids=\"[controller.COMMANDS.NeuesProjektCommandId]\"\n    :param-filter=\"locals.filter\"\n    :param-hide-filter=\"true\"\n    :param-default-view=\"{mode: 'manual'}\"\n    :param-board-card-params=\"{}\"\n    @selected=\"Aeppic.drillInto($event, arguments[1])\"\n  ></ae-layout>\n</div>"},"f":{"id":"design-form","text":"Design","v":"c2d9ae57c7a46896"},"id":"14c6bdba-bbc3-4e33-a195-96e288d7d822","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-05-08T07:52:11+00:00","backedBy":"","by":"09763886-6748-4a56-8e0e-54a2293ee96b","client":"server","from":"","impersonatedBy":""},"p":"0b4fe19c-a550-46b7-ada0-6813a60e14bc","previous":{"v":"0150ef176f46c175"},"stamps":[],"t":1778226731959,"v":"5a28c7c69dbafa39"},{"a":["apps","94a64d89-d204-4918-b147-d717914fb03e","f254ce25-42f1-4333-8ee7-23554bf746c1","cfd3ce74-9fa5-46c8-a9e9-cba33a3b8e70"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"14c6bdba-bbc3-4e33-a195-96e288d7d822","text":"rd:my-projects","v":"251cd7e2bf1bc8dc"},"created":{"at":"2024-05-02T12:09:53+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1714651793677,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.ready = false\n    locals.sort=[\n      { field: 'f.id' },\n      { field: 'data.name' },\n      { field: 'id' },\n    ]\n    this.LOCATIONS = {\n      BoardLocation: Aeppic.ProfilePage.id,\n      NewDocumentLocation: document.id\n    }\n    this.FORMS = {\n      Aufgabe: '0deb4864-cbb6-420c-99ee-337c7444ab24',\n      AufgabeLeistung: '88b1f60e-71f6-46f5-94ea-3d7bbe972950',\n      Projekt: '98c77209-1245-43d6-90b5-8625183f470c',\n    }\n    locals.LOCATIONS = this.LOCATIONS\n    locals.FORMS = this.FORMS\n\n    locals.filter = `f.id:${this.FORMS.Projekt} (data.projektleiter.id:${Aeppic.ProfilePage.id} OR data.leitenderProjektleiter.id:${Aeppic.ProfilePage.id}) AND (data.status:PROGRESS OR data.status:ONSPOTCHECKS)`\n    locals.documents = []\n\n    Aeppic.subscribe(this.search, {size: 99999}, newDocuments => {\n      const hasChanged = !this.documentsAreEqual(locals.documents, newDocuments)\n      if (hasChanged) {\n        locals.documents = newDocuments\n      }\n    })\n    locals.ready = true\n  }\n\n  get filter() {\n    // return [locals.filter, 'data.verantwortlich:' + Aeppic.ProfilePage.id].join(' ')\n    return [locals.filter].join(' ')\n  }\n\n  get search() {\n    const base = `a:${document.id}`\n\n    if (this.filter) {\n      return `${base} ${this.filter.trim()}`\n    }\n    return base\n  }\n\n  documentsAreEqual(arr1, arr2) {\n    if (!arr1 || !arr2 || arr1.length !== arr2.length) {\n      return false\n    }\n    for (let i = 0; i < arr1.length; i++) {\n      if (\n        arr1[i]?.id !== arr2[i]?.id ||\n        arr1[i]?.v?.id !== arr2[i]?.v?.id\n      ) {\n        return false\n      }\n    }\n    return true\n  }\n}\n\n//     - NONE:\n// - ACQUISITION <icon=\"far fa-usd-square\">: Akquise\n// - DECLINED <icon=\"far fa-times\">: Abgelehnt\n// - PROGRESS <icon=\"far fa-play-circle\">: In Bearbeitung (in der Planungsphase)\n// - ONSPOTCHECKS <icon=\"far fa-search-location\">: In Ausführung (vor Ort Kontrollen)\n// - DONE <icon=\"far fa-check\">: Abgeschlossen\n// - DORMANT <icon=\"far fa-snooze\">: Ruhend ","css":"","description":"","name":"rd:my-projects","packages":[],"template":"\n<div class=\"h-full flex flex-col overflow-auto\">\n  <div class=\"pt-2 px-4 flex items-center gap-2\">\n    <div class=\"font-bold\">Aktive Projekte</div>\n    <ae-control class=\"self-end\" name=\"rd:help\" :document=\"document\" param-text=\"Projekte in den Status: In Bearbeitung (in der Planungsphase), In Ausführung (vor Ort Kontrollen)\"></ae-control>\n  </div>\n  <div \n    v-if=\"locals.ready\"\n    class=\"h-full flex flex-col overflow-x-auto overflow-y-hidden\"\n  >\n    <ae-design \n      name=\"rd:toolbar\"\n      class=\"mb-2 mx-2\"\n      :document=\"document\"\n      :param-disable-sort=\"true\"\n      :param-list-form-id=\"locals.FORMS.Aufgabe\"\n      @filter=\"locals.filter = $event\"\n      :param-disable-new=\"true\"\n    ></ae-design>\n\n    <div\n      class=\"flex-1 mx-auto flex flex-col gap-4 w-full bg-white dark:bg-slate-800 overflow-y-auto max-w-5xl px-4 py-2 my-2 lg:shadow-md lg:rounded-md\"\n    >\n      <ae-layout \n        layout-id=\"4a4f4c51-5b0f-4ff2-bd67-c2acbfb09fb2\"\n        class=\"flex-1\"\n        :param-documents=\"locals.documents.filter(doc => doc.data.erledigt !== true)\"\n        :param-filter=\"locals.filter\"\n        @selected=\"Aeppic.drillInto($event)\"\n      ></ae-layout>\n    </div>\n  </div>\n  <ae-list \n  v-if=\"0\"\n  list-id=\"7d7edb30-a75a-43f4-9b70-a58749c5cd47\"\n            :root-document-id=\"document.id\"\n            class=\"flex-1\"\n            :filter=\"locals.filter\"\n            query-id=\"71d5633a-9dbd-4c96-b6e0-1c6ffc5ef0f1\"   \n            :param-settings-root-document-id=\"Aeppic.ProfilePage.id\"\n            param-form-id=\"98c77209-1245-43d6-90b5-8625183f470c\"\n            @selected=\"Aeppic.drillInto($event, arguments[1])\"\n            :param-disable-new=\"true\"\n            :search-options=\"{ size: 9999 }\"\n  ></ae-list> \n  \n</div>"},"f":{"id":"design-form","text":"Design","v":"c2d9ae57c7a46896"},"id":"6caa61e1-6027-4801-8387-b1eab54333a3","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-02-19T13:23:05+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"14c6bdba-bbc3-4e33-a195-96e288d7d822","text":"rd:my-projects","v":"251cd7e2bf1bc8dc"},"p":"cfd3ce74-9fa5-46c8-a9e9-cba33a3b8e70","previous":{"v":"8d7f7701241fbd90"},"stamps":[],"t":1771507385548,"v":"3c6e0d02ca5ab9e4"},{"a":["apps","599db2de-4e07-4722-98bd-7f42d498b352","79718664-ed22-4b52-9c10-037881df3578","7be5f2c5-206b-4ab6-9d4d-c4834baf8e32"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"9faa1ec0-d077-4a8f-8428-37f4309118c9","text":"rd:energy-activities","v":"f1cadbb7a25774e7"},"created":{"at":"2025-01-31T14:04:44+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1738332284888,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Employee: 'd2ac3563-3c3f-4f02-b923-9b67abf98d10',\n      CoreAufgabe: '0deb4864-cbb6-420c-99ee-337c7444ab24',\n      EnergieProjekt: '98c77209-1245-43d6-90b5-8625183f470c',\n      AufgabeEnergyLeistung: '88b1f60e-71f6-46f5-94ea-3d7bbe972950',\n    }\n\n    this.LOCALSTORAGE_KEY = `pref-user@design=${design.id}`\n\n    locals.show = Aeppic.LocalStorage.getValue(this.LOCALSTORAGE_KEY)?.show ?? true\n\n    locals.myTasksSize = 0\n    locals.myTasks = ''\n    locals.myTasksSort = [\n      { field: 'data.bisStart', descending: true },\n      { field: 'data.name', descending: false },\n      { field: 'data.prioritaet', descending: true },\n      'id'\n    ]\n\n    this.updateSearch(params.selectedUser?.profileId)\n\n    watchParam('selectedUser', async (selectedUser) => {\n      this.updateSearch(selectedUser?.profileId)\n    }, { deep: true })\n  }\n\n  updateSearch(profileId) {\n    locals.myTasksSize = 0\n    locals.myTasks = `a:${document.a[0]} (f.id:${this.FORMS.CoreAufgabe} data.erledigt:false) OR (f.id:${this.FORMS.AufgabeEnergyLeistung} data.erledigt:false data.inaktiv:false) data.verantwortlich.id:${profileId}`\n  }\n\n  toggleShow() {\n    locals.show = !locals.show\n\n    Aeppic.LocalStorage.setValue(this.LOCALSTORAGE_KEY, { show: locals.show })\n\n  }\n}","css":"","description":"","name":"rd:my-tasks","packages":[],"template":"<section class=\"flex flex-col xpy-2 bg-white dark:bg-slate-800 px-4 border rounded-md shadow\">\n  <div class=\"flex items-center mb-2\">\n    <div class=\"font-bold text-lg p-2\">Meine Aufgaben</div>\n\n    <ae-control\n      name=\"rd:help\"\n      :document=\"document\"\n      param-text=\"Ihnen zugewiesene nicht-erledigte Aufgaben (maximal 50).\"\n    ></ae-control>\n\n    <div class=\"flex-1\"></div>\n\n    <ae-layout\n      layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n      :param-icon=\"locals.show ? 'far fa-angle-up' : 'far fa-angle-down'\"\n      :param-text=\"locals.show ? 'ausblenden' : 'einblenden'\"\n      @selected=\"controller.toggleShow()\"\n      class=\"text-xs\"\n      param-border=\"border border-secondary-200\"\n    ></ae-layout>\n  </div>\n\n  <ae-list\n    v-if=\"locals.show\"\n    list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\"\n    :search=\"locals.myTasks\"\n    @selected=\"Aeppic.drillInto($event, arguments[1])\"\n    param-design=\"rd:search-card\"\n    :param-design-params=\"{ showAction: true }\"\n    :search-options=\"{ size: 50 }\"\n    :sort=\"locals.myTasksSort\"\n    @size=\"locals.myTasksSize = $event\"\n  ></ae-list>\n</section>\n"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"0bd23c36-aa44-4e0d-802b-ad4ff3aae251","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-05-27T08:51:53+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"9faa1ec0-d077-4a8f-8428-37f4309118c9","text":"rd:energy-activities","v":"f1cadbb7a25774e7"},"p":"7be5f2c5-206b-4ab6-9d4d-c4834baf8e32","previous":{"v":"40e4f154726d4390"},"stamps":[],"t":1748335913102,"v":"20b6f744282347c8"},{"a":["apps","94a64d89-d204-4918-b147-d717914fb03e","f254ce25-42f1-4333-8ee7-23554bf746c1","cfd3ce74-9fa5-46c8-a9e9-cba33a3b8e70"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"c315c0a5-7373-47ae-bd8d-907a637a8008","text":"rd:my-tasks","v":"8f650dc3c8f29e5a"},"created":{"at":"2024-05-02T12:09:56+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1714651796110,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.ready = false\n    locals.sort=[\n      { field: 'f.id' },\n      { field: 'data.name' },\n      { field: 'id' },\n    ]\n    this.LOCATIONS = {\n      BoardLocation: Aeppic.ProfilePage.id,\n      NewDocumentLocation: document.id\n    }\n    this.FORMS = {\n      Aufgabe: '0deb4864-cbb6-420c-99ee-337c7444ab24',\n      AufgabeLeistung: '88b1f60e-71f6-46f5-94ea-3d7bbe972950',\n    }\n    locals.LOCATIONS = this.LOCATIONS\n    locals.FORMS = this.FORMS\n\n    locals.filter = ''\n    locals.documents = []\n\n    Aeppic.subscribe(this.search, {size: 99999}, newDocuments => {\n      const hasChanged = !this.documentsAreEqual(locals.documents, newDocuments)\n      if (hasChanged) {\n        locals.documents = newDocuments\n      }\n    })\n    locals.ready = true\n  }\n\n  get filter() {\n    // return [locals.filter, 'data.verantwortlich:' + Aeppic.ProfilePage.id].join(' ')\n    return [locals.filter].join(' ')\n  }\n\n  get search() {\n    const base = `a:${document.id} ((f.id:${this.FORMS.Aufgabe} data.erledigt:false) OR (f.id:${this.FORMS.AufgabeLeistung} data.erledigt:false AND data.inaktiv:false)) data.verantwortlich.id:${Aeppic.ProfilePage.id}`\n\n    if (this.filter) {\n      return `${base} ${this.filter.trim()}`\n    }\n    return base\n  }\n\n  documentsAreEqual(arr1, arr2) {\n    if (!arr1 || !arr2 || arr1.length !== arr2.length) {\n      return false\n    }\n    for (let i = 0; i < arr1.length; i++) {\n      if (\n        arr1[i]?.id !== arr2[i]?.id ||\n        arr1[i]?.v?.id !== arr2[i]?.v?.id\n      ) {\n        return false\n      }\n    }\n    return true\n  }\n}\n ","css":"","description":"","name":"rd:my-tasks","packages":[],"template":"<div \n  v-if=\"locals.ready\"\n  class=\"h-full flex flex-col overflow-x-auto overflow-y-hidden\"\n>\n  <ae-design \n    name=\"rd:toolbar\"\n    class=\"mb-2 mx-2\"\n    :document=\"document\"\n    :param-disable-sort=\"true\"\n    :param-list-form-id=\"locals.FORMS.Aufgabe\"\n    @filter=\"locals.filter = $event\"\n    :param-disable-new=\"true\"\n  ></ae-design>\n\n  <div\n    class=\"flex-1 mx-auto flex flex-col gap-4 w-full bg-white dark:bg-slate-800 overflow-x-visible max-w-5xl px-4 py-2 my-2 lg:shadow-md lg:rounded-md overflow-y-auto\"\n  >\n    <ae-layout \n      layout-id=\"4a4f4c51-5b0f-4ff2-bd67-c2acbfb09fb2\"\n      class=\"flex-1\"\n      :param-documents=\"locals.documents.filter(doc => doc.data.erledigt !== true)\"\n      :param-filter=\"locals.filter\"\n      @selected=\"Aeppic.drillInto($event)\"\n    ></ae-layout>\n  </div>\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"c2d9ae57c7a46896"},"id":"97ab2d90-44af-4126-beb7-f8ecc7ca1370","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-02-19T13:22:49+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"c315c0a5-7373-47ae-bd8d-907a637a8008","text":"rd:my-tasks","v":"8f650dc3c8f29e5a"},"p":"cfd3ce74-9fa5-46c8-a9e9-cba33a3b8e70","previous":{"v":"29f25be299546cca"},"stamps":[],"t":1771507369524,"v":"6d8da065f6ff0db0"},{"a":["apps","59edbdbc-2cab-426a-bb42-6e57c5158e4f","3be7e887-1bcd-4c3c-979f-b20a986c4c48","0b4fe19c-a550-46b7-ada0-6813a60e14bc"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2022-05-11T10:36:26+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1652265386262,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.ready = false\n    locals.sort=[\n      { field: 'f.id' },\n      { field: 'data.name' },\n      { field: 'id' },\n    ]\n    this.LOCATIONS = {\n      BoardLocation: Aeppic.ProfilePage.id,\n      NewDocumentLocation: document.id\n    }\n    this.DOCUMENTS = {\n      NewBoardTemplate: '181b2813-90fb-4725-ab05-87139e01d332',\n    }\n    this.FORMS = {\n      Aufgabe: '0deb4864-cbb6-420c-99ee-337c7444ab24',\n      Board: '4ef9e83e-1aa5-4709-bbd5-24e98ea0148c',\n      OldBoard: '43420696-8097-4fc1-88e5-c69df9821470',\n    }\n    this.COMMANDS= {\n      NeueAufgabeCommandId: '68934db7-4d25-4c5a-9c2a-022923c2b7c9',\n    }\n    locals.LOCATIONS = this.LOCATIONS\n    locals.DOCUMENTS = this.DOCUMENTS\n    locals.FORMS = this.FORMS\n    locals.COMMANDS = this.COMMANDS\n\n    locals.filter = ''\n    locals.views = [\n      {\n        identifier: 'list',\n        text: 'Liste',\n        icon: 'far fa-list',\n      },\n      {\n        identifier: 'board',\n        text: 'Board',\n        icon: 'far fa-columns',\n      }\n    ]\n    locals.documents = []\n    locals.localStorageKey = `user-pref@design=${design.id}@document=${document.id}`\n\n    Aeppic.subscribe(this.search, {size: 99999}, newDocuments => {\n      const hasChanged = !this.documentsAreEqual(locals.documents, newDocuments)\n      if (hasChanged) {\n        locals.documents = newDocuments\n      }\n    })\n    await this.setBoard()\n    locals.ready = true\n  }\n\n  get filter() {\n    // return [locals.filter, 'data.verantwortlich:' + Aeppic.ProfilePage.id].join(' ')\n    return [locals.filter].join(' ')\n  }\n\n  get search() {\n    const base = `a:${document.id} f.id:${locals.FORMS.Aufgabe} data.verantwortlich:${Aeppic.ProfilePage.id} data.erledigt:false`\n\n    if (this.filter) {\n      return `${base} ${this.filter.trim()}`\n    }\n    return base\n  }\n\n  async setBoard() {\n    // Find existing board\n    locals.board = await Aeppic.findOne(`p:${this.LOCATIONS.BoardLocation} f:${this.FORMS.Board} data.form:${this.FORMS.Aufgabe} data.key:${locals.localStorageKey}`)\n    if (locals.board) {\n      return\n    }\n    // Find old board to migrate\n    locals.oldBoard = await Aeppic.findOne(`p:${this.LOCATIONS.BoardLocation} f:${this.FORMS.OldBoard} data.form:${this.FORMS.Aufgabe} data.key:${locals.localStorageKey}`)\n    if (locals.oldBoard) {\n      await Aeppic.Commands.execute('2123d205-09aa-462e-a271-8f70624bd407', locals.oldBoard.id)\n      return\n    }\n    // Clone new board from template\n    const boardAndComponents = (await Aeppic.cloneDeep(this.DOCUMENTS.NewBoardTemplate, this.LOCATIONS.BoardLocation))\n    boardAndComponents.root.data.key = locals.localStorageKey\n    Aeppic.saveAll(boardAndComponents.documents)\n    locals.board = boardAndComponents.root\n  }\n\n  documentsAreEqual(arr1, arr2) {\n    if (!arr1 || !arr2 || arr1.length !== arr2.length) {\n      return false\n    }\n    for (let i = 0; i < arr1.length; i++) {\n      if (\n        arr1[i]?.id !== arr2[i]?.id ||\n        arr1[i]?.v?.id !== arr2[i]?.v?.id\n      ) {\n        return false\n      }\n    }\n    return true\n  }\n}","css":"","description":"","name":"rd:my-tasks","packages":[],"template":"<div \n  v-if=\"locals.ready\"\n  class=\"h-full flex flex-col overflow-x-auto\"\n>\n  <ae-design \n    name=\"rd:toolbar\"\n    class=\"mb-2 ml-2\"\n    :document=\"document\"\n    :param-disable-sort=\"true\"\n    :param-list-form-id=\"locals.FORMS.Aufgabe\"\n    :param-views=\"locals.views\"\n    :param-persist-view=\"true\"\n    :param-view-persistance-key=\"locals.localStorageKey\"\n    :param-disable-new=\"true\"\n    @filter=\"locals.filter = $event\"\n    @view=\"locals.view = $event\"\n  ></ae-design>\n\n  <div\n    v-if=\"locals.view === 'list'\"\n    class=\"flex-1 mx-auto flex flex-col gap-4 w-full bg-white dark:bg-slate-800 overflow-x-visible max-w-5xl px-4 py-2 my-2 lg:shadow-md lg:rounded-md overflow-y-auto\"\n  >\n    <ae-layout \n      layout-id=\"4a4f4c51-5b0f-4ff2-bd67-c2acbfb09fb2\"\n      class=\"flex-1\"\n      :param-documents=\"locals.documents\"\n      :param-filter=\"locals.filter\"\n      :param-realm=\"document.id\"\n      @selected=\"Aeppic.drillInto($event)\"\n    ></ae-layout>\n  </div>\n  <ae-layout\n    v-if=\"locals.view === 'board'\"\n    class=\"flex-1 min-h-0 pt-1\"\n    layout-id=\"1d3dc097-ae91-409d-99cb-43c236be89aa\"\n    :param-board=\"locals.board\"\n    :param-documents=\"locals.documents\"\n    :param-new-document-location-id=\"locals.LOCATIONS.NewDocumentLocation\"\n    :param-new-document-command-ids=\"[]\"\n    :param-filter=\"locals.filter\"\n    :param-hide-filter=\"true\"\n    :param-default-view=\"{mode: 'manual'}\"\n    @selected=\"Aeppic.drillInto($event, arguments[1])\"\n  ></ae-layout>\n</div>"},"f":{"id":"design-form","text":"Design","v":"c2d9ae57c7a46896"},"id":"c315c0a5-7373-47ae-bd8d-907a637a8008","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-05-08T07:52:50+00:00","backedBy":"","by":"09763886-6748-4a56-8e0e-54a2293ee96b","client":"server","from":"","impersonatedBy":""},"p":"0b4fe19c-a550-46b7-ada0-6813a60e14bc","previous":{"v":"11b3815dc15dfbdf"},"stamps":[],"t":1778226770254,"v":"ff5787b1e8657587"},{"a":["apps","77ee8815-2c3a-4bb5-abd9-90541a545a24","1cc4b977-c14d-4587-af47-d6ac230f60b3"],"a_depth":3,"a_forms":["folder","application-form","design-folder"],"created":{"at":"2024-02-19T09:57:43+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1708336663336,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      AntragContainer: '0bb3d600-faf0-4a5c-b49f-7994d234ae76',\n      SammelinfoContainer: '49af721d-7068-4dd7-8df4-a5f79b3804cf',\n      OrdnerBCore: 'a04c8913-db48-4e80-b20d-0f3cc17a778c',\n      OrdnerWissen: '24523534-125d-4ebe-9a83-bd7fed39ff92',\n      Preferences: '643508ca-fc18-4d2e-bb13-b3c3f2ac053b',\n    }\n    locals.ancestor = await this.mostRelevantAncestor()\n  }\n\n  showAncestorInPathSelector(ancestorId, index) {\n    const pageDocumentA = document.a.concat().reverse()\n    const pageDocumentAForms = document.a_forms.concat().reverse()\n\n    const isDirectlyBelowRoot = index === (pageDocumentA.length - 1)\n    const isAccount = pageDocumentAForms[index] === 'account'\n    const someAncestorFormIsPreferences = pageDocumentAForms.includes(this.FORMS.Preferences)\n\n    const show =\n      !isDirectlyBelowRoot &&\n      !isAccount &&\n      !someAncestorFormIsPreferences &&\n      !params.transparentForms?.find((form) => form.id === pageDocumentAForms[index] || form.id === document.f.id)\n\n    return show\n  }\n\n  selectedAncestorPath(ancestor) {\n    $refs.pageDocumentPathPopup.closeImmediately()\n    Aeppic.navigateTo(ancestor)\n  }\n\n  async mostRelevantAncestor() {\n    // RULE 1: is document itself because a[1]=toplevelfolderOfAnApp and a[2]=most of the time another folder-document like Projekt,...\n    if (document.a_depth <= 2) {\n      return document\n    }\n\n    // RULE 2: Shows itself because it behaves like an folder-document (=rule 1) but at a higher a_depth\n    if (\n      [\n        this.FORMS.AntragContainer,\n        this.FORMS.SammelinfoContainer,\n        this.FORMS.OrdnerBCore,\n        this.FORMS.OrdnerWissen,\n      ].includes(document.f.id)\n    ) {\n      return document\n    }\n\n    // RULE 3: hardcode for siblings of rule 2\n    if (\n      document.a_forms.includes(this.FORMS.AntragContainer) ||\n      document.a_forms.includes(this.FORMS.SammelinfoContainer)\n    ) {\n      return await Aeppic.get(document.a[3])\n    }\n\n    // RULE 4: never show company as ancestor\n    return this.getShowableAncestors(document.a.slice(1), document.a_forms.slice(1))\n    // return this.getShowableAncestors(document.a.slice(1, 2), document.a_forms.slice(1, 2))\n    // return await Aeppic.get(document.a[2])\n  }\n\n  async getShowableAncestors(_ancestors, _ancestorForms) {\n    const a = _ancestors.concat().reverse()\n    const aForms = _ancestorForms.concat().reverse()\n\n    if (aForms.includes(this.FORMS.Preferences)) {\n      return null\n    }\n\n    const showableAncestor = a.find((a, index) => {\n      const isTransparent = params.transparentForms?.find((form) => form.id === aForms[index])\n      return aForms[index] !== 'account' && !isTransparent\n    })\n\n    return Aeppic.get(showableAncestor)\n  }\n}\n","css":"","description":"","name":"rd:navigation","packages":[],"template":"<div\n  class=\"h-full flex gap-1 justify-center items-center\"\n  data-test=\"navigation\"\n  @mouseenter=\"document.a_depth > 1 && $refs.pageDocumentPathPopup?.show({ target: $refs.titleContainer.$el })\"\n  @mouseleave=\"$refs.pageDocumentPathPopup?.close()\"\n>\n  <ae-layout\n    v-if=\"!params.hideBack\"\n    layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n    @selected=\"Aeppic.navigateBack()\"\n    param-icon=\"far fa-arrow-left\"\n    param-border=\"border border-secondary-300\"\n    ref=\"titleContainer\"\n    data-test=\"navigation_back\"\n  ></ae-layout>\n  <div\n    class=\"select-none truncate cursor-default max-w-[100px] md:max-w-[200px] bg-primary-50 text-primary-900 px-2 py-1 rounded-full border border-secondary-300\"\n    :class=\"{ 'w-[100px] md:w-[200px] text-center': params.isDrilled }\"\n    :title=\"locals.ancestor && (locals.ancestor.data.label || locals.ancestor.data.name || locals.ancestor.f.text)\"\n  >\n    {{ locals.ancestor && (locals.ancestor.data.label || locals.ancestor.data.name || locals.ancestor.f.text) }}\n  </div>\n</div>\n\n<ae-popup\n  ref=\"pageDocumentPathPopup\"\n  :close-delay=\"500\"\n  :max-width=\"400\"\n  placement=\"bottom-start\"\n  v-if=\"document.a.some((a, index) => controller.showAncestorInPathSelector(a, index))\"\n>\n  <div\n    class=\"flex flex-col p-2 gap-1 rounded-md overflow-hidden\"\n    @mouseenter=\"$refs.pageDocumentPathPopup.cancelClose()\"\n    @mouseleave=\"$refs.pageDocumentPathPopup.close()\"\n  >\n    <template\n      v-for=\"(ancestor, index) in document.a.concat().reverse()\"\n      v-if=\"controller.showAncestorInPathSelector(ancestor, index)\"\n    >\n      <a\n        :href=\"ancestor\"\n        @click.stop.prevent=\"controller.selectedAncestorPath(ancestor)\"\n        class=\"ae-link flex gap-2 items-center\"\n      >\n        <ae-design :document-id=\"ancestor\" name=\"rd:icon\"></ae-design>\n        <ae-design :document-id=\"ancestor\" name=\"title\"></ae-design>\n\n        <div class=\"flex-1\"></div>\n        <ae-icon class=\"far fa-external-link text-neutral-500\"></ae-icon>\n      </a>\n    </template>\n  </div>\n</ae-popup>\n"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"ac6035a5-bd53-4869-b7ef-665a32323bed","inheritedLocks":[null,null,null,null],"locks":[],"meta":{},"modified":{"at":"2026-07-30T11:52:21+00:00","backedBy":"","by":"09763886-6748-4a56-8e0e-54a2293ee96b","client":"server","from":"","impersonatedBy":""},"p":"1cc4b977-c14d-4587-af47-d6ac230f60b3","previous":{"v":"70e2357814cf202d"},"stamps":[],"t":1785412341060,"v":"d9aded51eedc31c6"},{"a":["apps","599db2de-4e07-4722-98bd-7f42d498b352","79718664-ed22-4b52-9c10-037881df3578","7be5f2c5-206b-4ab6-9d4d-c4834baf8e32"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2024-05-06T15:11:01+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1715008261244,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Newsgroupordner: '320bbded-2e47-4772-b662-c54254627ac3'\n    }\n    locals.newsExists = await Aeppic.findOne(`p:${document.a[0]} f.id:${this.FORMS.Newsgroupordner}`)\n  }\n}","css":"","description":"","name":"rd:news","packages":[],"template":"<template\n  v-if=\"locals.newsExists\"\n>\n  <section class=\"flex flex-col mb-6 py-2 bg-white dark:bg-slate-800 px-4 border rounded-md shadow\">\n    <div class=\"font-bold flex gap-2 mb-2\">\n      Neuigkeiten\n    </div>\n\n  <ae-list list-id=\"f914c7de-072d-4e39-aa51-d55fe5391c76\"\n          :param-root=\"document.a[0]\"\n          @selected=\"Aeppic.drillInto($event, arguments[1])\"\n          class=\"\"\n          :search-options=\"{ size: 6 }\"\n          :param-design-params=\"{ compact: true }\"\n    ></ae-list>\n  </section>\n</template>"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"8d39fa8c-ffeb-4c88-922e-3d9520c3c42d","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-09-04T08:44:38+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"7be5f2c5-206b-4ab6-9d4d-c4834baf8e32","previous":{"v":"00e3f374181627cd"},"stamps":[],"t":1756975478270,"v":"85de7bc7a721558a"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","aa947792-4f31-40c9-9a6a-e1ad71697911"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2025-08-05T12:56:04+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1754480508030,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.barcode = ''\n  }\n  \n  // async checkBarcode(barcode) {\n  //   const result = await Aeppic.Commands.execute('b0e2d987-5f88-41e2-9de0-9d16af0252a1', document.p, { barcode: barcode })\n\n  //   console.log(result)\n    \n  //   if (result.value)  {\n  //     Aeppic.navigateTo(result.value)\n  //   }\n  // }\n\n  async start() {\n    const result = await Aeppic.Commands.execute('91e5c8ec-55fe-4c19-8a83-2fae09829332', document)\n\n    if (result.value)  {\n      Aeppic.navigateTo(result.value)\n    }\n  }\n}","css":"","description":"","name":"rd:next","packages":[],"template":"<div class=\"flex flex-col rounded-lg rounded-lg bg-white p-2 border border-slate-200\"\n    :data-test=\"'design' + '_' + design.data.name + '_' + 'documentForm_' + document.f.text\"\n>\n  <section class=\"flex justify-between items-center\">\n    <ae-design class=\"text-2xl\" name=\"title\" :document=\"document\"></ae-design>\n    <div><span class=\"font-bold\"> {{ data.workItems.length }}</span> Arbeitsschritte</div>\n  </section>\n\n  <!-- FIXME: only with noCache it works, when you goback from the wartungspunkt -->\n  <section class=\"flex flex-wrap gap-4 items-stretch justify-around overflow-auto min-h-56\">\n    <div\n      v-if=\"data.drawingDetail.dataUrl\"\n      class=\"h-56 max-w-[420px] w-full flex items-center justify-center cursor-pointer\"\n      data-test=\"drawings_detail\"\n      @click.stop=\"$refs.drawingDetailPreview.$emit('show')\"\n    >\n      <img\n        :src=\"Aeppic.Content.getSrc(document, 'drawingDetail', { noCache: true })\"\n        class=\"max-h-full max-w-full object-contain\"\n      />\n    </div>\n\n    <div\n      v-if=\"data.drawing.dataUrl\"\n      class=\"h-56 max-w-[420px] w-full flex items-center justify-center cursor-pointer\"\n      data-test=\"drawings_normal\"\n      @click.stop=\"$refs.drawingPreview.$emit('show')\"\n    >\n      <img\n        :src=\"Aeppic.Content.getSrc(document, 'drawing', { noCache: true })\"\n        class=\"max-h-full max-w-full object-contain\"\n      />\n    </div>\n\n    <div\n      v-if=\"!data.drawingDetail.dataUrl && !data.drawing.dataUrl\"\n      class=\"h-56 w-full flex items-center justify-center text-neutral-400\"\n    >\n      Keine Bilder hinterlegt\n    </div>\n  </section>\n\n  <ae-layout\n    v-if=\"data.drawingDetail.dataUrl\"\n    ref=\"drawingDetailPreview\"\n    layout-id=\"bbd6d99f-571d-422f-a2bc-15d3f8ecfae8\"\n    :param-file-name=\"data.drawingDetail.name\"\n    param-field-name=\"drawingDetail\"\n    :param-document=\"document\"\n  ></ae-layout>\n\n  <ae-layout\n    v-if=\"data.drawing.dataUrl\"\n    ref=\"drawingPreview\"\n    layout-id=\"bbd6d99f-571d-422f-a2bc-15d3f8ecfae8\"\n    :param-file-name=\"data.drawing.name\"\n    param-field-name=\"drawing\"\n    :param-document=\"document\"\n  ></ae-layout>\n\n  <section class=\"self-center w-full max-w-[400px] mt-8\">\n    <ae-layout\n      class=\"w-full\"\n      layout-id=\"fd173d48-72be-4323-b1a8-5c6b0b8de2b3\"\n      @code=\"controller.start($event)\"\n      :param-readonly=\"params.readonly || locals.opening\"\n      :param-document=\"document\"\n      param-preference-key=\"keeptrack:settings:maintenancePointReaderMode\"\n    ></ae-layout>\n  </section>\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"4bad48a8-abcf-496c-bc1c-cfcf1b80addd","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-06-09T06:44:36+00:00","backedBy":"","by":"09763886-6748-4a56-8e0e-54a2293ee96b","client":"server","from":"","impersonatedBy":""},"p":"aa947792-4f31-40c9-9a6a-e1ad71697911","previous":{"v":"cd789ef912f63c84"},"stamps":[],"t":1780987476101,"v":"d1c8b442b76f4984"},{"id":"16df6cf9-d3f4-4434-8f6a-8fc81ffe3bd2","v":"d4f2e3a35aa4745b","cloneOf":{"id":"bdadd47f-312c-4524-bb9f-7e0d2dbced67","v":"845156301d66d2eb","text":"rd:notification-card"},"originalCloneOf":{"id":"bdadd47f-312c-4524-bb9f-7e0d2dbced67","v":"845156301d66d2eb","text":"rd:notification-card"},"previous":{"v":"6bbe0e712153fa7c"},"p":"6d164aff-df9b-470d-9632-cfb6f5892509","f":{"id":"design-form","v":"5dbbefb312ab61e2","text":"Design"},"data":{"name":"rd:notification-card","template":"<div class=\"flex gap-3 bg-white p-1 rounded-lg overflow-hidden\"\n    :class=\"{ 'bg-blue-100': document.id === params.selectedDocument?.id, 'italic opacity-70': locals.deleted }\"\n    @click.stop=\"$emit('selected', document)\"\n    @click.right.stop.prevent=\"$emit('contextmenu', { document, event: $event } )\"\n>\n  <ae-design name=\"rd:creator-avatar\" :document=\"document\" class=\"text-4xl\"></ae-design>\n\n  <div class=\"flex flex-col gap-2 w-full overflow-hidden\">\n    <div class=\"flex gap-2 flex-wrap\" >\n      <ae-design name=\"profile-title\" class=\"font-bold\" :document=\"document.data.who\"></ae-design>\n\n      <template v-if=\"document.data.category === locals.FORMS.Comment\">\n        <div class=\"shrink whitespace-nowrap overflow-hidden text-ellipsis\">  \n          kommentierte\n        </div>\n        <!-- <ae-design name=\"design-of-parent\" param-name=\"title\" :document=\"document.data.document\" class=\"font-bold\"></ae-design> -->\n      </template>\n      <template v-else-if=\"document.data.category === locals.FORMS.Ping\">\n        <div class=\"shrink whitespace-nowrap overflow-hidden text-ellipsis\">  \n          sendete einen Ping\n        </div>\n        <!-- <ae-design name=\"rd:design-of-target\" param-name=\"title\" :document=\"document.data.document\" class=\"font-bold\"></ae-design> -->\n      </template>\n      <template v-else>\n        <div class=\"shrink whitespace-nowrap overflow-hidden text-ellipsis\">  \n          {{ Aeppic.translate(document.data.name) }}\n        </div>\n        <div v-if=\"!locals.deleted\" class=\"shrink whitespace-nowrap overflow-hidden text-ellipsis\">  \n          {{ Aeppic.translate(document.data.content) }}\n        </div>\n        <!-- <ae-design name=\"title\" :document=\"document.data.document\" class=\"font-bold\"></ae-design> -->\n      </template>\n    </div>\n     \n    <div class=\"text-sm text-neutral-500 flex gap-1 items-center\">\n      <ae-design name=\"rd:created-at\" :document=\"document\" class=\"w-28 shrink-0\"\n      ></ae-design>\n\n      <ae-icon class=\"fal fa-minus fa-rotate-90\"></ae-icon>\n\n      <div v-if=\"locals.deleted\" class=\"italic flex gap-1 truncate\">\n        Gelöscht\n        <!-- <div v-if=\"document.data.category === locals.FORMS.Ping\"  :title=\"locals.targetDocument?.data.document.text\">\n          Gelöschter Ping\n          ({{ locals.targetDocument?.data.document.text }})\n        </div>\n        <div v-else-if=\"document.data.category === locals.FORMS.Comment\">\n          Gelöschtes Kommentar\n        </div>\n        <div v-else :title=\"data.document.text\">\n          Gelöschtes Dokument\n          ({{ data.document.text }})\n        </div> -->\n      </div> \n      <template v-else>\n        <ae-design v-if=\"document.data.category === locals.FORMS.Ping\" name=\"rd:design-of-target\" param-name=\"rd:icon\" :document=\"document.data.document\" class=\"text-sm\"></ae-design>\n        <ae-design v-else name=\"design-of-parent\" param-name=\"rd:icon\" :document=\"document.data.document\" class=\"text-sm\"></ae-design>\n\n        <ae-design v-if=\"document.data.category === locals.FORMS.Ping\" name=\"rd:design-of-target\" param-name=\"title\" :document=\"document.data.document\" class=\"text-sm\"></ae-design>\n        <ae-design v-else name=\"design-of-parent\" param-name=\"title\" :document=\"document.data.document\" class=\"text-sm\"></ae-design>\n      </template>\n    </div>\n\n    <div v-if=\"!locals.deleted\">\n      <ae-design name=\"rd:notification-quick-reply\" :document=\"document.data.document\" @selected=\"controller.markReadAndNavigateTo()\"></ae-design>\n    </div>\n\n    <!-- <ae-design name=\"title\" :document=\"document.data.document\" class=\"text-sm\"></ae-design> -->\n  </div>\n\n  <div class=\"flex-1\"></div>\n\n      <ae-layout v-if=\"!document.data.read\"\n                  layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n                 param-icon=\"fa fa-circle\"\n                 class=\"text-green-600 text-xs\"\n                 param-title=\"Als gelesen markieren\"\n                 @selected=\"controller.markRead()\"\n      ></ae-layout>\n      <ae-layout v-if=\"document.data.read\"\n                  layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n                 param-icon=\"far fa-circle\"\n                 class=\"text-green-400 text-xs\"\n                 param-title=\"Als ungelesen markieren\"\n                 @selected=\"controller.markUnread()\"\n      ></ae-layout>\n</div> ","css":"","controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Comment: 'cf155969-ede1-43a4-9b10-3a697b19db91',\n      Ping: '42cf6e7a-e304-49a6-86e1-c94d84f1d0d9',\n    }\n\n    locals.FORMS = this.FORMS\n\n    locals.deleted = await this.isDeleted()\n    locals.targetDocument = await Aeppic.get(document.data.document)\n  }\n\n  async markRead() {\n    const notification = await Aeppic.edit(document)\n    notification.data.read = true\n    notification.data.readAt = Aeppic.DateTime.local().toFormat(\"yyyy-MM-dd'T'T\")\n\n    Aeppic.save(notification)\n  }\n\n\n  async markUnread() {\n    const notification = await Aeppic.edit(document)\n    notification.data.read = false\n    notification.data.readAt = ''\n\n    Aeppic.save(notification)\n  }\n\n  async isDeleted() {\n    const targetDocument = await Aeppic.get(document.data.document)\n    if (!targetDocument) {\n      return true \n    }\n\n    if (document.data.category === this.FORMS.Ping || document.data.category === this.FORMS.Comment) {\n      const pingOrComment = targetDocument\n\n      const actualDeletedTarget = await Aeppic.get(pingOrComment.data.document?.id || pingOrComment.p)\n      return !actualDeletedTarget\n    }\n\n    return false\n  }\n\n\n  async markReadAndNavigateTo(event) {\n    const notification = await Aeppic.edit(document)\n\n    notification.data.read = true\n    notification.data.readAt = Aeppic.DateTime.local().toFormat(\"yyyy-MM-dd'T'T\")\n\n    Aeppic.save(notification)\n\n    const targetDocument = await Aeppic.get(notification.data.document)\n\n    if (targetDocument) {\n      if (targetDocument.f.id === this.FORMS.Comment) {\n        Aeppic.drillInto(targetDocument.p, { highlightComment: targetDocument.id })\n      } else if (targetDocument.f.id === this.FORMS.Ping) {\n        const actualPingTarget = await Aeppic.get(targetDocument.data.document)\n\n        Aeppic.drillInto(actualPingTarget, { highlightComment: targetDocument.id })\n      } else {\n        Aeppic.drillInto(targetDocument)\n      }\n    }\n\n    $emit('close')\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-08-04T10:54:52+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-12-11T16:19:25+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1702311565477,"ct":1691146492950,"a_depth":4,"a":["apps","c9b12874-99d0-40e8-86cc-c3fe0477a15a","9b5518e5-c3ea-4446-9dc8-8628d8e8fabe","6d164aff-df9b-470d-9632-cfb6f5892509"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"bdadd47f-312c-4524-bb9f-7e0d2dbced67","v":"e186882ee9b71c51","previous":{"v":"1f46d757df802a0f","p":"c9b12874-99d0-40e8-86cc-c3fe0477a15a","a":["apps","c9b12874-99d0-40e8-86cc-c3fe0477a15a"],"a_forms":["folder","application-form"]},"p":"6d164aff-df9b-470d-9632-cfb6f5892509","f":{"id":"design-form","v":"5dbbefb312ab61e2","text":"Design"},"data":{"name":"rd:notification-card.OLD","template":"<div class=\"flex gap-3 bg-white p-1 rounded-lg\"\n    :class=\"{ 'bg-blue-100': document.id === params.selectedDocument?.id }\"\n    @click.stop=\"$emit('selected', document)\"\n    @click.right.stop.prevent=\"$emit('contextmenu', { document, event: $event } )\"\n>\n  <ae-design name=\"rd:creator-avatar\" :document=\"document\" class=\"text-4xl\"></ae-design>\n\n  <div class=\"flex-1 flex flex-col overflow-hidden\">\n    <div class=\"flex-1 flex gap-2\" :class=\"{ 'font-bold': !document.data.read }\">\n      <ae-design name=\"icon\" class=\"text-neutral-500\" :document=\"document.data.document\"></ae-design>\n      <ae-design name=\"title\"  :document=\"document\"></ae-design>\n\n      <div class=\"flex-1\"></div>\n\n      <ae-design name=\"rd:created-at\" :document=\"document\" :param-format=\"{ day: '2-digit', month: '2-digit' }\"\n                  class=\"whitespace-nowrap text-neutral-500 text-sm\"\n      ></ae-design>\n    </div>\n\n    <ae-design name=\"path\" :document=\"document.data.document\" class=\"text-xs\"></ae-design>\n    <ae-design name=\"title\" :document=\"document.data.document\" class=\"text-sm\"></ae-design>\n  </div>\n</div>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-02-03T15:27:58+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-08-04T10:56:03+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1691146563653,"ct":1675438078756,"a_depth":4,"a":["apps","c9b12874-99d0-40e8-86cc-c3fe0477a15a","9b5518e5-c3ea-4446-9dc8-8628d8e8fabe","6d164aff-df9b-470d-9632-cfb6f5892509"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","14c27659-92d7-4b43-8c4f-25f4cceae591","2e759bfa-c685-48e8-81b4-cec70e93c521","cf155969-ede1-43a4-9b10-3a697b19db91"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2023-08-04T13:53:56+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1691157236942,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.commented = null\n\n    const [\n      parent,\n      creator,\n    ] = await Promise.all([\n      Aeppic.get(document.p),\n      Aeppic.getProfilePageForAccount(document.created.by),\n    ])\n\n    locals.parent = parent\n    locals.placeholderText = `${creator.data.vorname || creator.data.nachname} antworten`\n  }\n} \n","css":"","description":"","name":"rd:notification-quick-reply","packages":[],"template":"<div class=\"flex gap-2 gap-4 p-4 bg-neutral-100 rounded-md\">\n  <div class=\"flex-1 flex flex-col gap-4\">\n    <!-- NOTE: key is necessary! without the control doesn't always update correctly on component reuse -->\n    <ae-control :key=\"id(document.id)\" class=\"text-neutral-600\" name=\"rd:editor-content\" :document=\"document\" field-name=\"content\" :readonly=\"true\"></ae-control>\n\n    <ae-layout v-if=\"!locals.commented\"\n                layout-id=\"b3343e33-5143-4e4e-9143-e6ac24f68651\"\n              :param-document=\"locals.parent\"\n              :param-placeholder-text=\"locals.placeholderText\"\n              @commented=\"locals.commented = $event\"\n    ></ae-layout> \n    <div v-else class=\"bg-white pl-4 py-2 rounded-md flex items-center gap-2\">\n        <ae-design name=\"avatar\" :document=\"Aeppic.ProfilePage\"></ae-design>\n      <ae-control class=\"\" name=\"rd:editor-content\" :document=\"locals.commented\" field-name=\"content\" :readonly=\"true\"></ae-control>\n    </div>\n\n  </div>\n\n  <ae-layout  \n        class=\"self-center\"\n          layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n        param-icon=\"far fa-external-link text-sm text-neutral-500\"\n        @selected=\"$emit('selected', document)\"\n  ></ae-layout>\n\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"48aa0067-d9d1-4943-959a-adb99e78b8a8","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2024-11-22T14:25:37+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"cf155969-ede1-43a4-9b10-3a697b19db91","previous":{"v":"557e98af20e3477a"},"stamps":[],"t":1732285537532,"v":"8aa00f21c5c6e665"},{"id":"516cd73b-96f0-437a-9d6a-7c1c77b8b33d","v":"496d4daaa8b80929","previous":{"v":"0bcc4d1d3090488c","p":"fallback-designs","a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"]},"p":"1cc4b977-c14d-4587-af47-d6ac230f60b3","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:notification-quick-reply","template":"<div class=\"flex gap-4 p-4 bg-blue-50 rounded-md\" @click.stop=\"$emit('selected', document)\">\n  <div>\n    <ae-design name=\"rd:icon\" :document=\"document\" param-size=\"14\" param-icon-size=\"text-xl\"></ae-design>\n  </div>\n\n  <div class=\"flex flex-col gap-2 flex-1 overflow-hidden\">\n    <ae-design name=\"title\" :document=\"document\"></ae-design>\n\n    <div class=\"flex gap-2 text-neutral-500\">\n      <ae-design name=\"rd:creation-info\" :document=\"document\"></ae-design>\n    </div>\n  </div>\n\n  <ae-layout  \n        class=\"self-center shrink-0\"\n          layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n        param-icon=\"far fa-external-link text-sm text-neutral-500\"\n        @selected=\"$emit('selected', document)\"\n  ></ae-layout>\n\n</div> ","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-08-04T13:16:16+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-11-29T11:06:18+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1767870469088,"ct":1691154976237,"a_depth":3,"a":["apps","77ee8815-2c3a-4bb5-abd9-90541a545a24","1cc4b977-c14d-4587-af47-d6ac230f60b3"],"a_forms":["folder","application-form","design-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"meta":{"modified":{"at":"2026-01-08T11:07:49+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":"","impersonatedBy":"","from":"","client":"server"}}},{"id":"abadfdf5-103e-4862-aeb4-a6732ac46a6e","v":"cfff2d46fb277ab4","cloneOf":{"id":"48aa0067-d9d1-4943-959a-adb99e78b8a8","v":"c645b79448a24259","text":"rd:notification-quick-reply"},"originalCloneOf":{"id":"48aa0067-d9d1-4943-959a-adb99e78b8a8","v":"c645b79448a24259","text":"rd:notification-quick-reply"},"previous":{"v":"aac40dcfeb9f3915"},"p":"42cf6e7a-e304-49a6-86e1-c94d84f1d0d9","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:notification-quick-reply","template":"<div class=\"flex gap-2 gap-4 p-4 bg-neutral-100 rounded-md\">\n  <div class=\"flex-1 flex flex-col gap-4\">\n    <ae-control class=\"text-neutral-600\" name=\"rd:editor\" :document=\"document\" field-name=\"content\" :readonly=\"true\" :param-without-border=\"true\"></ae-control>\n\n    <ae-layout v-if=\"!locals.commented\"\n                layout-id=\"b3343e33-5143-4e4e-9143-e6ac24f68651\"\n              :param-document=\"locals.targetDocument\"\n              :param-placeholder-text=\"locals.placeholderText\"\n              :param-receiver=\"[locals.creator]\"\n              @commented=\"locals.commented = $event\"\n    ></ae-layout> \n    <div v-else class=\"bg-white pl-4 py-2 rounded-md flex items-center gap-2\">\n        <ae-design name=\"avatar\" :document=\"Aeppic.ProfilePage\"></ae-design>\n      <ae-control class=\"\" name=\"rd:editor\" :document=\"locals.commented\" field-name=\"content\" :readonly=\"true\" :param-without-border=\"true\"></ae-control>\n    </div>\n\n  </div>\n\n  <ae-layout  \n        class=\"self-center\"\n          layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n        param-icon=\"far fa-external-link text-sm text-neutral-500\"\n        @selected=\"$emit('selected', document)\"\n        \n  ></ae-layout>\n\n</div>\n ","css":"","controller":"class Controller {\n  async init() {\n    locals.commented = null\n\n    const [\n      targetDocument,\n      creator,\n    ] = await Promise.all([\n      Aeppic.get(document.data.document),\n      Aeppic.getProfilePageForAccount(data.who),\n    ])\n\n    locals.creator = creator\n    locals.targetDocument = targetDocument\n    locals.placeholderText = `${creator.data.vorname || creator.data.nachname} antworten`\n  }\n} \n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-08-08T13:48:48+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-12-13T12:52:21+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1702471941318,"ct":1691502528953,"a_depth":4,"a":["apps","14c27659-92d7-4b43-8c4f-25f4cceae591","2e759bfa-c685-48e8-81b4-cec70e93c521","42cf6e7a-e304-49a6-86e1-c94d84f1d0d9"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","a4f3e35e-f945-4c8b-a7a4-81e987585974","13525440-3a25-44be-851b-1bcd803bff80","24842415-3690-4cad-82b9-b959ae7621c6"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"ccc27ea0-bac4-49ad-8a41-dc96ec6b2264","text":"rd:personal","v":"3841d2fec9a43865"},"created":{"at":"2022-07-19T14:38:30+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1658241510289,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.view = {\n      only: {\n        fields: ['emailNotificationInterval'] \n      }\n    } \n\n    locals.edit = false\n    locals.profile = await Aeppic.edit(Aeppic.ProfilePage)\n    locals.account = await Aeppic.Account\n\n    locals.status = await this.getStatus()\n    locals.activated = await Aeppic.Preferences.getSetting('bizpin:notifications:enabled')\n\n    const company = await Aeppic.get(document.a[0])\n\n    const settings = await Aeppic.Preferences.getSettingsDocumentsForDocument('bizpin:notifications', company)\n    console.log(settings)\n\n    const preferences = await Aeppic.get(settings.globalSettings.p)\n    locals.usersPreferences = await Aeppic.findOne(`p:${Aeppic.Account.id} f.id:${preferences.f.id} data.namespace:bizpin data.name:notifications`)\n\n  \n    if (!locals.usersPreferences) {\n      const clonedPreferences = await Aeppic.cloneDeep(preferences, Aeppic.Account, { save: true  })\n      locals.usersPreferences = clonedPreferences.root\n    }  \n\n    console.log(locals.usersPreferences)\n  }\n \n  async getStatus() {\n    if (locals.usersPreferences && !locals.usersPreferences.data.mailTemplate.id) {\n      return 'Benachrichtigungen per E-Mail wurden in Bizpin deaktiviert.'\n    }\n\n    if (locals.account.data.email) {\n      return 'Benachrichtigungen per E-Mail sind möglich. Wählen Sie ein Intervall.'\n    }\n\n    if (locals.account.data.mobilePhone) {\n      return 'Benachrichtigung können NICHT per SMS gesendet werden.\\nBitte hinterlegen Sie eine E-Mail.'\n    }\n\n    return 'Sie erhalten aktuell Benachrichtigungen nur innerhalb der Bizpin Anwendung.\\n Hinterlegen Sie bitte eine E-Mail unter \"Mein Konto\" für weitere Optionen.'\n  }\n}","css":"","description":"","name":"rd:notifications","packages":[],"template":"<div class=\"flex flex-col gap-4 max-w-[800px]\">\n  <section class=\"text-lg font-bold\">\n    Benachrichtigungen\n  </section>\n\n  <div v-if=\"!locals.activated\" class=\"bg-slate-100 p-4 rounded-lg flex flex-col gap-6\">\n    Das Benachrichtigungs-Modul wurde deaktiviert.\n  </div>\n\n  <div v-else class=\"bg-slate-100 p-4 rounded-lg flex flex-col gap-6\">\n    <div class=\"flex flex-col\">\n      <div>\n        <ae-icon class=\"far fa-info-circle\">\n        </ae-icon>\n        Status der Benachrichtigungen:\n      </div>\n\n      <div class=\"mt-2 font-mono text-sm whitespace-pre-line\">{{ locals.status }}</div>\n    </div>\n  </div>\n\n  <ae-form layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\"\n             :document-id=\"locals.usersPreferences?.data.activeSettings.id\"\n             :view=\"locals.view\"\n             :auto-save=\"true\"\n  ></ae-form>\n</div> "},"f":{"id":"design-form","text":"Design","v":"c2d9ae57c7a46896"},"id":"edfed5b4-28b7-4d41-95d4-fdc65b2d2d8a","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-01-23T15:16:11+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"ccc27ea0-bac4-49ad-8a41-dc96ec6b2264","text":"rd:personal","v":"3841d2fec9a43865"},"p":"24842415-3690-4cad-82b9-b959ae7621c6","previous":{"v":"bf0b975ff0bc62c8"},"stamps":[],"t":1769181371564,"v":"1be043b7d54a973c"},{"a":["apps","94a64d89-d204-4918-b147-d717914fb03e","f254ce25-42f1-4333-8ee7-23554bf746c1","d35380ea-bba4-48af-b6c9-98f5ecbf18bc"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"7197af55-906d-47df-bdbd-4254722e0ca1","text":"rd:number","v":"1cccd7467670d19c"},"created":{"at":"2026-03-05T13:14:15+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"ct":1772716455581,"data":{"aliases":[],"controller":"class Controller {\n  init() {\n    locals.currencyFormatter = new Intl.NumberFormat('de-de', { style: 'currency', currency: 'EUR' })\n    locals.showEdit = false\n  }\n\n  async showQuickEdit(clickEvent) {\n    if (params.readonly) {\n      return\n    }\n\n    clickEvent.stopPropagation()\n\n    if (!(await Aeppic.canEdit(document))) {\n      return\n    }\n\n    locals.showEdit = true\n\n    await Aeppic.nextRenderPass()\n    await Aeppic.nextRenderPass()\n\n    $refs.popupCostEstimate.show({ target: $refs.container })\n  }\n}","css":"","description":"","name":"rd:number","packages":[],"template":"<div ref=\"container\" \n      @click=\"controller.showQuickEdit($event)\" \n      :title=\"'Kosten ' + params.title\"\n      class=\"p-1 truncate text-sm text-neutral-500\"\n      :class=\"[!params.readonly && 'cursor-pointer hover:bg-neutral-300 border border-secondary-200 rounded-md']\"\n>\n  {{locals.currencyFormatter.format(data.cost.amount || 0)}}\n</div>    \n\n\n<ae-popup v-if=\"locals.showEdit\"\n      ref=\"popupCostEstimate\"\n>\n  <div>\n    <ae-form\n      :document=\"document\"\n      layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\"\n      :auto-save=\"true\"\n      :auto-save-after=\"1000\"\n      :readonly=\"params.readonly\"\n    ></ae-form>\n  </div>\n</ae-popup>"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"1b017fa9-9712-4dad-b511-72d5180d2602","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-03-30T11:13:34+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"7197af55-906d-47df-bdbd-4254722e0ca1","text":"rd:number","v":"1cccd7467670d19c"},"p":"d35380ea-bba4-48af-b6c9-98f5ecbf18bc","previous":{"v":"996a29d8e6ec04ed"},"stamps":[],"t":1774869214375,"v":"2ab90069894a6fd6"},{"a":["apps","94a64d89-d204-4918-b147-d717914fb03e","f254ce25-42f1-4333-8ee7-23554bf746c1","5997797d-4d12-47d4-a311-f9115344cd04"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"e3d6d75e-c3fb-4a35-90a0-752c0a7a4d63","text":"rd:number","v":"76e4f6b060ae7fbe"},"created":{"at":"2026-03-05T10:45:25+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"ct":1772707525393,"data":{"aliases":[],"controller":"class Controller {\n  init() {\n    locals.currencyFormatter = new Intl.NumberFormat('de-de', { style: 'currency', currency: 'EUR' })\n    locals.showEdit = false\n  }\n\n  async showQuickEdit(clickEvent) {\n    if (params.readonly) {\n      return\n    }\n\n    clickEvent.stopPropagation()\n\n    if (!(await Aeppic.canEdit(document))) {\n      return\n    }\n\n    locals.showEdit = true\n\n    await Aeppic.nextRenderPass()\n    await Aeppic.nextRenderPass()\n\n    $refs.popupCostEstimate.show({ target: $refs.container })\n  }\n}","css":"","description":"","name":"rd:number","packages":[],"template":"<div ref=\"container\" \n      @click=\"controller.showQuickEdit($event)\" \n            :title=\"'Kosten (manuell) ' + params.title || ''\"\n      class=\"p-1 truncate text-sm text-neutral-500\"\n      :class=\"[!params.readonly && 'cursor-pointer hover:bg-neutral-300 border border-secondary-200 rounded-md']\"\n>\n  {{locals.currencyFormatter.format(data.cost.amount || 0)}}\n</div>    \n\n\n<ae-popup v-if=\"locals.showEdit\"\n      ref=\"popupCostEstimate\"\n>\n  <div>\n    <ae-form\n      :document=\"document\"\n      layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\"\n      :auto-save=\"true\"\n      :auto-save-after=\"1000\"\n      :readonly=\"params.readonly\"\n    ></ae-form>\n  </div>\n</ae-popup>"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"7197af55-906d-47df-bdbd-4254722e0ca1","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-03-30T11:55:21+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"e3d6d75e-c3fb-4a35-90a0-752c0a7a4d63","text":"rd:number","v":"76e4f6b060ae7fbe"},"p":"5997797d-4d12-47d4-a311-f9115344cd04","previous":{"v":"cd25f38ed277b4d1"},"stamps":[],"t":1774871721236,"v":"49e95da476be1dce"},{"a":["apps","0924db0f-7095-4b51-8966-bad1e45d68ec","a3b935e7-60bc-4996-9b18-668e4361067f","bcb673e1-40de-4c35-941a-fc13a1e99c49"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2024-11-22T15:08:21+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1732288101372,"data":{"aliases":[],"controller":"class Controller {\n  init() {\n    locals.currencyFormatter = new Intl.NumberFormat('de-de', { style: 'currency', currency: 'EUR' })\n    locals.showEdit = false\n  }\n\n  async showQuickEdit(clickEvent) {\n    if (params.readonly) {\n      return\n    }\n\n    clickEvent.stopPropagation()\n\n    if (!(await Aeppic.canEdit(document))) {\n      return\n    }\n\n    locals.showEdit = true\n\n    await Aeppic.nextRenderPass()\n    await Aeppic.nextRenderPass()\n\n    $refs.popupCostEstimate.show({ target: $refs.container })\n  }\n}","css":"","description":"","name":"rd:number","packages":[],"template":"<div ref=\"container\" \n      @click=\"controller.showQuickEdit($event)\" \n      title=\"Kostenschätzung\"\n      class=\"p-1 truncate text-sm text-neutral-500\"\n      :class=\"[!params.readonly && 'cursor-pointer hover:bg-neutral-300 border border-secondary-200 rounded-md']\"\n>\n  {{locals.currencyFormatter.format(data.cost.amount || 0)}}\n</div>    \n\n\n<ae-popup v-if=\"locals.showEdit\"\n      ref=\"popupCostEstimate\"\n>\n  <div>\n    <ae-form\n      :document=\"document\"\n      layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\"\n      :auto-save=\"true\"\n      :auto-save-after=\"1000\"\n    ></ae-form>\n  </div>\n</ae-popup>"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"e3d6d75e-c3fb-4a35-90a0-752c0a7a4d63","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2024-11-22T15:19:13+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"bcb673e1-40de-4c35-941a-fc13a1e99c49","previous":{"v":"aee8a448dca9873c"},"stamps":[],"t":1732288753957,"v":"76e4f6b060ae7fbe"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","347d38c6-0bce-47ce-b271-9f924c56ac49"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"5c61c1e5-ea90-4427-9e3b-3bf943cdae8a","text":"rd:location","v":"009e81bf33d03ee2"},"created":{"at":"2025-11-13T11:39:51+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1763033991515,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.object = null\n    const facility = await Aeppic.get(data.facility)\n    locals.object = await Aeppic.resolve(facility, 'AppKeeptrack-Gebäude').catch(() => null)\n  }\n}","css":"","description":"","name":"rd:object","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<ae-design :name=\"params.designName || 'title'\" :document=\"locals.object\"></ae-design>"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"141960e2-34ed-47ba-83ba-9f080f277020","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-02-09T08:01:18+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"5c61c1e5-ea90-4427-9e3b-3bf943cdae8a","text":"rd:location","v":"009e81bf33d03ee2"},"p":"347d38c6-0bce-47ce-b271-9f924c56ac49","previous":{"v":"e3bc3a7aa5e90395"},"stamps":[],"t":1770624078120,"v":"bcb59d80ed77fe94"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","1451a42c-e8f9-430e-8fd0-b2209f389e84"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2026-01-19T13:46:11+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"ct":1768830371880,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Areale: '1a0affea-08fc-467f-8a09-0e170f5ea96e',\n      Areal: '5f4a87a7-5557-4004-bfdc-2fb26c71e0c9',\n      Anlage: '33e3b54d-6b4b-4aa3-8f70-2b834b27bf66',\n    }\n\n    locals.latLon = []\n    locals.locations = []\n    locals.locationByArealeIndex = []\n    locals.stats = {\n      displayed: 0,\n      all: 0,\n    }\n\n    const [arealeFolder, facilities ] = await Promise.all([\n      Aeppic.findOne(`a:${document.a[0]} f.id:${this.FORMS.Areale}`),\n      Aeppic.find(`p:${document.id} f.id:${this.FORMS.Anlage}`),\n    ])\n\n    // const technicalLocations =  await Aeppic.getAll(facilities.map(areal => areal.data.location.id))\n    // const areale = await Aeppic.getAll(technicalLocations.map(technicalLocation => technicalLocation?.data.object.id))\n    const areale = await Aeppic.find(`p:${arealeFolder.id} f.id:${this.FORMS.Areal}`)\n\n    const locations = areale.map(areal => {\n      if (!areal?.data.addressGeolocation?.lat || !areal?.data.addressGeolocation?.lon) {\n        return\n      }\n\n      return {\n        document: areal,\n        lat: areal.data.addressGeolocation.lat,\n        lon: areal.data.addressGeolocation.lon,\n      }\n    })\n\n    const arealeWithLatLon = locations.filter(Boolean)\n    console.log(arealeWithLatLon) \n\n    locals.stats = {\n      displayed: arealeWithLatLon.length,\n      all: locations.length,\n    }\n    \n    locals.latLon = arealeWithLatLon.map(x => ({ lat: x.lat, lon: x.lon, title: x.document.data.name }))\n    locals.locations = arealeWithLatLon\n  }\n\n  onMarker(markerEvent) {\n    const { markerIndex } = markerEvent\n\n    const arealInfo = locals.locations[markerIndex]\n    locals.document = arealInfo.document\n    $refs.dialog.show()\n    // Aeppic.drillInto(arealInfo.document)\n  }\n}  ","css":"","description":"","name":"rd:objects-map","packages":[{"id":"581f0308-1f9a-4319-99e1-c65244206583","text":"Leaflet","v":"3e4db5363652c39d"}],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<div class=\"relative h-full w-full\">\n  <leaflet\n    v-model=\"locals.latLon\"\n    class=\"z-10 relative w-full h-full\"\n    :readonly=\"params.readonly\"\n    :show-popup=\"false\" \n    @marker=\"controller.onMarker($event)\"\n  >\n  </leaflet>\n  <div\n    class=\"absolute z-20 top-1 left-1 p-1 bg-white rounded-md border border-neutral-500 border-1 flex flex-col text-xs\"\n  >\n    <div title=\"Alle (inkl. nicht anzeigbarer Areale)\">\n      <ae-icon class=\"far fa-sigma\"></ae-icon> {{locals.stats.all}}\n    </div>\n    <div title=\"Angezeigt\"><ae-icon class=\"far fa-map-pin\"></ae-icon> {{locals.stats.displayed}}</div>\n  </div>\n</div>\n\n<ae-dialog ref=\"dialog\">\n  <template #header=\"scope\">\n    <div class=\"flex justify-between items-center\">\n      <div class=\"flex gap-2 truncate\">Areal</div>\n\n      <ae-layout\n        layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n        param-icon=\"far fa-times\"\n        @selected=\"scope.close()\"\n        param-border=\"border\"\n      ></ae-layout>\n    </div>\n  </template>\n  <template #body>\n    <div v-if=\"locals.document\">\n      <ae-design name=\"rd:page-inner\" :document=\"locals.document\"></ae-design>\n\n      <ae-list\n        list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\"\n        :search=\"'a:' + locals.document.id + ' f.id:33e3b54d-6b4b-4aa3-8f70-2b834b27bf66'\"\n        :params=\"{\n          title: 'Anlagen',\n          emptyText: 'Keine Anlagen gefunden.'\n        }\"\n        @selected=\"\"\n      ></ae-list>\n    </div>\n  </template>\n\n  <template #commands>\n    <div class=\"flex justify-end p-2\">\n      <ae-layout\n        layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n        param-icon=\"\"\n        param-text=\"Anzeigen\"\n        @selected=\"Aeppic.drillInto(locals.document)\"\n        :param-primary=\"true\"\n      ></ae-layout>\n    </div>\n  </template>\n</ae-dialog>\n"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"3a074d61-a4aa-47be-b8ea-70f04cab2928","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-03-27T13:10:32+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"p":"1451a42c-e8f9-430e-8fd0-b2209f389e84","previous":{"v":"0a5139b85a62ad9a"},"stamps":[],"t":1774617032046,"v":"75cee5b7fde3e2cb"},{"a":["apps","77ee8815-2c3a-4bb5-abd9-90541a545a24","1cc4b977-c14d-4587-af47-d6ac230f60b3"],"a_depth":3,"a_forms":["folder","application-form","design-folder"],"created":{"at":"2026-01-27T13:47:55+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"ct":1769521675577,"data":{"aliases":[],"controller":"class Controller{\n  async init() {\n    locals.ready = false\n    this.validFieldName = null\n    this.form = await Aeppic.getFormForDocument(document)\n    this.validFieldName = this.getFieldData()\n    this.formField = this.form.fields.find(field => field.name === this.validFieldName)\n    this.fieldData = data[this.validFieldName]\n    locals.link = this.getLink()\n\n\n    locals.ready = true\n  }\n\n  getFieldData() {\n    if (!this.form) {\n      console.error(\"Controller not initialized. Call init() first.\")\n      return undefined\n    }\n\n    if (params.field) {\n      const fieldExists = this.form.fields.some(f => f.name === params.field)\n      if (!fieldExists || !(params.field in data)) {\n        console.warn(`Document or Form does not contain field: ${params.field}`)\n        return undefined\n      }\n\n      return params.field\n    }\n\n    const field = this.form.fields.find(field => this.fieldIsGeolocation(field) || this.fieldIsAddress(field))\n\n    if (field?.name) {\n      return field.name\n    }\n\n    return undefined\n  }\n\n  getLink() { \n    if (this.fieldIsGeolocation(this.formField)) {\n      return `https://www.google.de/maps/search/?api=1&query=${this.fieldData.lon},${this.fieldData.lat}`;\n    }\n\n    if (this.fieldIsAddress(this.formField)) {\n      return 'http://maps.google.de?q=' + this.fieldData.street + ' ' + this.fieldData.streetNumber + ',' + this.fieldData.postalCode + ' ' + this.fieldData.city\n    }\n\n    return ''\n  }\n\n  fieldIsGeolocation(field) {\n    if (!field) {\n      return false\n    }\n\n    return field.type === 'object' && field.subType === 'geolocation'\n  }\n\n  fieldIsAddress(field) {\n    if (!field) {\n      return false\n    }\n\n    return field.type === 'object' && field.subType === 'address'\n  }\n}","css":"","description":"","name":"rd:open-location","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<a\n  v-if=\"locals.ready\"\n  @click.stop class=\"\" target=\"_blank\" :href=\"locals.link\"\n>\n  <ae-layout\n    layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n    :params=\"{\n        icon: 'far fa-location-dot',\n        ...params.button\n      }\"\n  ></ae-layout>\n</a>"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"2166abc7-45c3-4ca2-8350-8ce9983a0dc0","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2026-07-21T08:06:22+00:00","backedBy":"","by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":""},"p":"1cc4b977-c14d-4587-af47-d6ac230f60b3","previous":{"v":"1d067759f20611bc"},"stamps":[],"t":1784621182279,"v":"e49183901dccd76f"},{"id":"13c26d2a-9a5e-4f5f-b984-9046f97f99c1","v":"920939681b9b971b","previous":{"v":"6a6cd1028e9e20d7"},"p":"fbba64b7-a744-43b4-9359-0ab956d06f6c","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:overview","template":"<div class=\"flex-1 basis-2/3 p-2 gap-8 overflow-x-hidden overflow-y-auto pb-6\">\n  <div class=\"flex flex-col gap-2 max-w-5xl mx-auto w-full h-full bg-white xl:shadow-md xl:rounded-md\"> \n    <section class=\"p-6 flex flex-col\">\n      <div class=\"flex gap-2 items-center mb-2\">\n        <ae-design name=\"rd:icon\" class=\"text-lg\" :document=\"locals.mitarbeiterFolder\"></ae-design>\n        <div class=\"text-lg font-bold\">\n        Mitarbeiter\n        </div>\n      </div>\n\n      <!-- <ae-design name=\"rd:diagrams\" :document=\"locals.mitarbeiterFolder\"></ae-design> -->\n\n      <div class=\"flex flex-col lg:flex-row justify-stretch flex-wrap divide-y lg:divide-y-0\">\n  \n        <div class=\"pt-2 p-6 xbg-red-500\">\n          <div class=\"italic\">\n            Endende Probezeiten\n          </div>\n\n          <ae-list list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\"\n                  :search=\"locals.probezeitenQuery\"\n                  @selected=\"Aeppic.drillInto($event, arguments[1])\"\n                  param-empty-text=\"Keine Probezeiten endend\"\n          ></ae-list>\n        </div> \n\n        <div class=\"flex-1 hidden lg:block\">\n        </div>\n\n\n        <div class=\"pt-2 p-6 xbg-green-500\">\n          <div class=\"italic\">\n            Endende Abwesenheiten\n          </div>\n\n          <ae-list list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\"\n                  :search=\"locals.abwesenheitenQuery\"\n                  @selected=\"Aeppic.drillInto($event, arguments[1])\"\n                  param-empty-text=\"Keine Abwesenheiten endend\"\n          ></ae-list>\n        </div> \n      </div>\n\n    </section>\n\n    <section class=\"p-6\">\n      <div class=\"flex gap-2 items-center mb-2\">\n        <ae-design name=\"rd:icon\" class=\"text-lg\" :document=\"locals.bewerberFolder\"></ae-design>\n        <div class=\"text-lg font-bold\">\n          Bewerber\n        </div>\n      </div>\n\n      <div class=\"pt-2 p-6 xbg-green-500\">\n        <div class=\"italic\">\n          Bewerber der letzten 4 Wochen\n        </div>\n\n        <ae-list list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\"\n                :search=\"locals.neusteBewerberQuery\"\n                @selected=\"Aeppic.drillInto($event, arguments[1])\"\n                param-empty-text=\"Keine neuen Bewerber\"\n        ></ae-list>\n      </div> \n    </section>\n  </div>\n</div> ","css":"","controller":"class Controller {\n  async init() {\n    locals.mitarbeiterFolder = await Aeppic.findOne(`p:${document.id} f.id:df3870fe-b129-4535-9e52-c33a05fb4bce`)\n    locals.bewerberFolder = await Aeppic.findOne(`p:${document.id} f.id:ebb00fab-fe96-4562-a7cd-1fac9a420d50`)\n\n    locals.probezeitenQuery = `a:${document.id} f.id:3090c06d-faea-41f6-a6ea-846b900faad5 data.endeProbezeit:[now-1M TO now+1M]`\n    locals.abwesenheitenQuery = `a:${document.id} f.id:3090c06d-faea-41f6-a6ea-846b900faad5 data.abwesenheitBis:[now-1M TO now+1M]`\n\n    locals.neusteBewerberQuery = `a:${document.id} f.id:764f746e-a836-4e9d-a770-1d8d5ccad49b data.bewerbungseingangsdatum:[now-1M TO *]`\n  }\n}\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-04-24T10:27:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-09-27T13:54:09+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1695822849696,"ct":1682332052711,"a_depth":4,"a":["apps","a590ce5b-28fc-4f85-9049-d006e1b8f880","169e87e0-0379-48e1-8c94-8fadac5969bb","fbba64b7-a744-43b4-9359-0ab956d06f6c"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"f602d499-a18a-4231-82e7-207b8e786c2b","v":"97aeddb373e832aa","previous":{"v":"fc30ce97cd865b7f"},"p":"a37b2d75-d9d3-495a-a31c-52094d82e7bb","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:overwrite-thumbnail","template":"<!-- generated thumbnail will be unreadable anyway, so just render template to save additional thumbnail requests in list -->\n<ae-design name=\"rd:thumbnail\"\n           :document=\"document\"\n           :params=\"{ ...params, fieldName: 'template' }\"\n></ae-design> ","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-04-26T11:35:16+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-04-26T11:49:34+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1714132174384,"ct":1714131316533,"a_depth":4,"a":["apps","fb62ad28-07b0-4a99-91bd-43c297656f12","4e988078-8eed-4c34-9cc2-9b6c3e2cdb2a","a37b2d75-d9d3-495a-a31c-52094d82e7bb"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["system","04632e3e-9132-4927-b91d-3c28d1afe3e9","2b5725a7-9e8f-4993-a3e8-ef9c1ff0be8c","55b76650-8f79-4cb4-bfb2-9e46ad80853d"],"a_depth":4,"a_forms":["system-folder-form","folder","form-folder","form"],"cloneOf":{"id":"5f4dbf45-6288-417e-a805-6e98cccfbf17","text":"page","v":"3a6ff94224366f8b"},"created":{"at":"2025-04-29T09:58:22+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1745920702633,"data":{"aliases":[],"controller":"class Controller {\n  init() {\n    // let content = this.howToUsePageContent.replace(/<i/g,'<ae-icon')\n\n    // locals.testPageHtml = content.replace(/<\\/i>/g, '</ae-icon>')\n  }\n\n  get howToUsePageContent() {\n    return `\nBasic Use\nYou can place Font Awesome icons just about anywhere using a CSS style prefix and the icon’s name. Font Awesome is designed to be used with inline elements (we like the <i> tag for brevity, but using a <span> is more semantically correct).\n\n\n<i class=\"fas fa-camera-retro\"></i>\n\nFont Awesome icons automatically inherit CSS size and color. This means they blend in with text inline wherever you put them.\n\n\n<div style=\"font-size:3em; color:Tomato\">\n  <i class=\"fas fa-camera-retro\"></i>\n</div>\n\nNeed to find an icon to use? Check out all 2,177 here.\n\nStyles & Prefixes\nFont Awesome 5 icons can be any of 4 different styles, each with its own prefix.\n\nStyle\tStyle Prefix\tCode\tResult\nSolid\tfas\t<i class=\"fas fa-camera-retro\">\t\nRegular\tfar \t<i class=\"far fa-camera-retro\">\t\nLight\tfal \t<i class=\"fal fa-camera-retro\">\t\nBrands\tfab\t<i class=\"fab fa-font-awesome\">\t\nThe fa prefix has been deprecated in version 5. The new default is the fas solid style and the fab style for brands.\n\nAdditional Styling\nIcon Sizes\n\n<i class=\"fas fa-camera-retro fa-xs\"></i>\n<i class=\"fas fa-camera-retro fa-sm\"></i>\n<i class=\"fas fa-camera-retro fa-lg\"></i>\n<i class=\"fas fa-camera-retro fa-2x\"></i>\n<i class=\"fas fa-camera-retro fa-3x\"></i>\n<i class=\"fas fa-camera-retro fa-5x\"></i>\n<i class=\"fas fa-camera-retro fa-7x\"></i>\n<i class=\"fas fa-camera-retro fa-10x\"></i>\n\nClass\tSize\nfa-xs\t.75em\nfa-sm\t.875em\nfa-lg\t1.33em, also applies vertical-align: -25%\nfa-2x through fa-10x\t2em through 10em\nFixed Width Icons\nUse fa-fw to set icons to the same fixed width. Great to use when varying icon widths would throw off vertical alignment. Especially useful in things like nav lists & list groups. For clarity in the example, we’ve added a background color on the icon so you can see the fixed width.\n\n\n<div><i class=\"fas fa-home fa-fw\" style=\"background:MistyRose\"></i> Home</div>\n<div><i class=\"fas fa-info fa-fw\" style=\"background:MistyRose\"></i> Info</div>\n<div><i class=\"fas fa-book fa-fw\" style=\"background:MistyRose\"></i> Library</div>\n<div><i class=\"fas fa-pencil-alt fa-fw\" style=\"background:MistyRose\"></i> Applications</div>\n<div><i class=\"fas fa-cog fa-fw\" style=\"background:MistyRose\"></i> Settings</div>\n\nList Icons\nUse fa-ul and fa-li to replace default bullets in unordered lists.\n\n\n<ul class=\"fa-ul\">\n  <li><span class=\"fa-li\"><i class=\"fas fa-check-square\"></i></span>List icons can</li>\n  <li><span class=\"fa-li\"><i class=\"fas fa-check-square\"></i></span>be used to</li>\n  <li><span class=\"fa-li\"><i class=\"fas fa-spinner fa-pulse\"></i></span>replace bullets</li>\n  <li><span class=\"fa-li\"><i class=\"far fa-square\"></i></span>in lists</li>\n</ul>\n\nBordered & Pulled Icons\nUse fa-border and fa-pull-right or fa-pull-left for easy pull quotes or article icons.\n\n\n<i class=\"fas fa-quote-left fa-2x fa-pull-left fa-border\"></i>\nGatsby believed in the green light, the orgastic future that year by year recedes before us.\nIt eluded us then, but that’s no matter — tomorrow we will run faster, stretch our arms further...\nAnd one fine morning — So we beat on, boats against the current, borne back ceaselessly into the past.\n\nAnimated Icons\nUse the fa-spin class to get any icon to rotate, and use fa-pulse to have it rotate with 8 steps. Works especially well with fa-spinner & everything in the spinner icons category.\n\n\n<div class=\"fa-3x\">\n  <i class=\"fas fa-spinner fa-spin\"></i>\n  <i class=\"fas fa-circle-notch fa-spin\"></i>\n  <i class=\"fas fa-sync fa-spin\"></i>\n  <i class=\"fas fa-cog fa-spin\"></i>\n  <i class=\"fas fa-spinner fa-pulse\"></i>\n</div>\n\nIcon animation wobble foibles\nWe've worked hard to keep icons perfectly centered when they are spinning or pulsing. However, we've seen issues where icons in desktop Safari still have a wobble. This appears to be a bug in Safari.\n\nOne way that you might be able to work around this is by using display: block; where you can. This seems to help a lot with this issue.\n\n\nWhat if I have a thousand icons on the page?\nYou might be wondering how rendering icons with JavaScript affects performance. We worried about this quite a bit while we were developing it and even took some special measures to make sure it was as fast as we could make it.\n\nOur testing shows that for the typical number of icons most people use on a site the loading and rendering time is faster than web fonts. Your mileage may vary, of course, and we’d love to hear about your experience if this turns out not to be the case for you.\n\nIf you are using 1,000’s of icons on a page you might benefit from Symbols. This uses SVG with JS and the SVG sprites technique to reuse icons that are repeating. (Think rows of icons.)\n\nPower Transforms NEW\nThanks to the power of SVG in Font Awesome 5, now you can scale, position, flip, & rotate icons arbitratily using the data-fa-transform element attribute. You can even combine them for some super-useful effects.\n\nPower Transforms: Scaling\nPower Transform scaling effects icon size without changing or moving the container. To scale icons up or down, use grow-# and shrink-# with any arbitrary value, including decimals. Units are 1/16em. For clarity in the example, we’ve added a background color on the icon so you can see the effect.\n\n\n<div class=\"fa-4x\">\n  <i class=\"fas fa-magic\" data-fa-transform=\"shrink-8\" style=\"background:MistyRose\"></i>\n  <i class=\"fas fa-magic\" style=\"background:MistyRose\"></i>\n  <i class=\"fas fa-magic\" data-fa-transform=\"grow-6\" style=\"background:MistyRose\"></i>\n</div>\n\nPower Transforms: Positioning\nPower Transform positioning effects icon location without changing or moving the container. To move icons up, down, left, or right, use up-#, down-#, left-#, and right-# with any arbitrary value, including decimals. Units are 1/16em. For clarity in the example, we’ve added a background color on the icon so you can see the effect.\n\n\n<div class=\"fa-4x\">\n  <i class=\"fas fa-magic\" data-fa-transform=\"shrink-8\" style=\"background:MistyRose\"></i>\n  <i class=\"fas fa-magic\" data-fa-transform=\"shrink-8 up-6\" style=\"background:MistyRose\"></i>\n  <i class=\"fas fa-magic\" data-fa-transform=\"shrink-8 right-6\" style=\"background:MistyRose\"></i>\n  <i class=\"fas fa-magic\" data-fa-transform=\"shrink-8 down-6\" style=\"background:MistyRose\"></i>\n  <i class=\"fas fa-magic\" data-fa-transform=\"shrink-8 left-6\" style=\"background:MistyRose\"></i>\n</div>\n\nPower Transforms: Rotating & Flipping\nPower Transform rotating & flipping effects icon angle and reflection without changing or moving the container. To rotate or flip icons use any combination of rotate-#, flip-v, and flip-h with any arbitrary value. Units are degrees with negative numbers allowed (see fifth icon in the example). For clarity in the example, we’ve added a background color on the icon so you can see the effect.\n\n\n<div class=\"fa-4x\">\n  <i class=\"fas fa-magic\" data-fa-transform=\"rotate-90\" style=\"background:MistyRose\"></i>\n  <i class=\"fas fa-magic\" data-fa-transform=\"rotate-180\" style=\"background:MistyRose\"></i>\n  <i class=\"fas fa-magic\" data-fa-transform=\"rotate-270\" style=\"background:MistyRose\"></i>\n  <i class=\"fas fa-magic\" data-fa-transform=\"rotate-30\" style=\"background:MistyRose\"></i>\n  <i class=\"fas fa-magic\" data-fa-transform=\"rotate--30\" style=\"background:MistyRose\"></i>\n  <i class=\"fas fa-magic\" data-fa-transform=\"flip-v\" style=\"background:MistyRose\"></i>\n  <i class=\"fas fa-magic\" data-fa-transform=\"flip-h\" style=\"background:MistyRose\"></i>\n  <i class=\"fas fa-magic\" data-fa-transform=\"flip-v flip-h\" style=\"background:MistyRose\"></i>\n</div>\n\nThe Best... Around!\nNothing's gonna ever keep you down when you mix and match any combination of our Power Transforms! Fight till you drop. Listen to that sound. You're the best in town!\n\nEXOSCALEGet the latest generation GPU cards & extra-large SSD storage. Run Tensorflow or any other Deep Learning workload on Exoscale\nMasking NEW\nCombine two icons create one single-color shape, thanks to the power of SVG in Font Awesome 5! Use it with our new Power Transforms for some really awesome effects.\n\nMasks are great when you do want your background color to show through. For clarity in the example, we’ve added a background color on the icon so you can see the effect.\n\n\n<div class=\"fa-4x\">\n  <i class=\"fas fa-pencil-alt\" data-fa-transform=\"shrink-10 up-.5\" data-fa-mask=\"fas fa-comment\" style=\"background:MistyRose\"></i>\n  <i class=\"fab fa-facebook-f\" data-fa-transform=\"shrink-3.5 down-1.6 right-1.25\" data-fa-mask=\"fas fa-circle\" style=\"background:MistyRose\"></i>\n  <i class=\"fas fa-headphones\" data-fa-transform=\"shrink-6\" data-fa-mask=\"fas fa-square\" style=\"background:MistyRose\"></i>\n</div>\n\nInner Icon (cut out)\tSet using typical class attribute. Transform using any data-fa-transform properties.\nOuter Icon\tSet using data-fa-mask attribute.\nLayering, Text, & Counters NEW\nLayers are the new way to place icons and text visually on top of each other, replacing our classic icons stacks. With this new approach you can use more than 2 icons. Yuss!\n\nLayers are awesome when you don’t want your page’s background to show through, or when you do want to use multiple colors, layer several icons, layer text, or layer counters onto an icon. For clarity in the example, we’ve added a background color on the layers so you can see the effect.\n\n\n<div class=\"fa-4x\">\n  <span class=\"fa-layers fa-fw\" style=\"background:MistyRose\">\n    <i class=\"fas fa-circle\" style=\"color:Tomato\"></i>\n    <i class=\"fa-inverse fas fa-times\" data-fa-transform=\"shrink-6\"></i>\n  </span>\n\n  <span class=\"fa-layers fa-fw\" style=\"background:MistyRose\">\n    <i class=\"fas fa-bookmark\"></i>\n    <i class=\"fa-inverse fas fa-heart\" data-fa-transform=\"shrink-10 up-2\" style=\"color:Tomato\"></i>\n  </span>\n\n  <span class=\"fa-layers fa-fw\" style=\"background:MistyRose\">\n    <i class=\"fas fa-play\" data-fa-transform=\"rotate--90 grow-2\"></i>\n    <i class=\"fas fa-sun fa-inverse\" data-fa-transform=\"shrink-10 up-2\"></i>\n    <i class=\"fas fa-moon fa-inverse\" data-fa-transform=\"shrink-11 down-4.2 left-4\"></i>\n    <i class=\"fas fa-star fa-inverse\" data-fa-transform=\"shrink-11 down-4.2 right-4\"></i>\n  </span>\n\n  <span class=\"fa-layers fa-fw\" style=\"background:MistyRose\">\n    <i class=\"fas fa-calendar\"></i>\n    <span class=\"fa-layers-text fa-inverse\" data-fa-transform=\"shrink-8 down-3\" style=\"font-weight:900\">27</span>\n  </span>\n\n  <span class=\"fa-layers fa-fw\" style=\"background:MistyRose\">\n    <i class=\"fas fa-certificate\"></i>\n    <span class=\"fa-layers-text fa-inverse\" data-fa-transform=\"shrink-11.5 rotate--30\" style=\"font-weight:900\">NEW</span>\n  </span>\n\n  <span class=\"fa-layers fa-fw\" style=\"background:MistyRose\">\n    <i class=\"fas fa-envelope\"></i>\n    <span class=\"fa-layers-counter\" style=\"background:Tomato\">1,419</span>\n  </span>\n</div>\n`\n  }\n}","css":"","description":"","name":"rd:page","packages":[],"template":"<div class=\"h-full overflow-auto\">\n\n<h2>\n\tBasic Use\n</h2>\n\n<ae-icon class=\"far fa-camera-retro\"></ae-icon>\n\n<div style=\"font-size:3em; color:Tomato\">\n\t<ae-icon class=\"far fa-camera-retro\"></ae-icon>\n</div>\n\n<h1>\n  Icons with fallback names\n</h1>\n\nfa-user-circle: <ae-icon class=\"far fa-user-circle\"></ae-icon>\nfa-circle-user: <ae-icon class=\"far fa-circle-user\"></ae-icon>\n\n<h1>\n\tAdditional Styling\n</h1>\n\n<h2>\n\tIcon Sizes\n</h2>\n\n<ae-icon class=\"far fa-camera-retro fa-xs\"></ae-icon>\n<ae-icon class=\"far fa-camera-retro fa-sm\"></ae-icon>\n<ae-icon class=\"far fa-camera-retro fa-lg\"></ae-icon>\n<ae-icon class=\"far fa-camera-retro fa-2x\"></ae-icon>\n<ae-icon class=\"far fa-camera-retro fa-3x\"></ae-icon>\n<ae-icon class=\"far fa-camera-retro fa-5x\"></ae-icon>\n<ae-icon class=\"far fa-camera-retro fa-7x\"></ae-icon>\n<ae-icon class=\"far fa-camera-retro fa-10x\"></ae-icon>\n\n<h2>\n\tFixed Width Icons\n\n</h2>\n\n<div>\n\t<ae-icon class=\"far fa-home fa-fw\" style=\"background:MistyRose\"></ae-icon> Home</div>\n<div>\n\t<ae-icon class=\"far fa-info fa-fw\" style=\"background:MistyRose\"></ae-icon> Info</div>\n<div>\n\t<ae-icon class=\"far fa-book fa-fw\" style=\"background:MistyRose\"></ae-icon> Library</div>\n<div>\n\t<ae-icon class=\"far fa-pencil-alt fa-fw\" style=\"background:MistyRose\"></ae-icon> Applications</div>\n<div>\n\t<ae-icon class=\"far fa-cog fa-fw\" style=\"background:MistyRose\"></ae-icon> Settings</div>\n\n<h2>\n\tList Icons\n\n</h2>\n\n<ul class=\"fa-ul\">\n\t<li><span class=\"fa-li\"><ae-icon class=\"far fa-check-square\"></ae-icon></span>List icons can</li>\n\t<li><span class=\"fa-li\"><ae-icon class=\"far fa-check-square\"></ae-icon></span>be used to</li>\n\t<li><span class=\"fa-li\"><ae-icon class=\"far fa-spinner fa-pulse\"></ae-icon></span>replace bullets</li>\n\t<li><span class=\"fa-li\"><ae-icon class=\"far fa-square\"></ae-icon></span>in lists</li>\n</ul>\n\n\n<h2>\n  Duotone: Basic\n</h2>\n\n<div class=\"fa-3x\"> \n  <ae-icon class=\"fad fa-camera text-red-500\"></ae-icon> <!-- a solid duotone camera icon -->\n  <ae-icon class=\"fad fa-fire-alt\"></ae-icon> <!-- a solid duotone fire-alt icon -->\n  <ae-icon class=\"fasds fa-bus-alt\"></ae-icon> <!-- a solid sharp-duotone bus-alt icon -->\n  <ae-icon class=\"fasds fa-fill-drip\"></ae-icon> <!-- a solid sharp-duotone fill-drip icon -->\n</div>\n\n<h2>Duotone: Swapping Layer Opacity</h2>\n\n<div class=\"fa-3x\">\n  <ae-icon class=\"fad fa-camera\"></ae-icon> <!-- a duotone solid camera icon -->\n  <ae-icon class=\"fad fa-camera fa-swap-opacity\"></ae-icon> <!-- a duotone solid camera icon with swapped opacity -->\n\n  <ae-icon class=\"fad fa-fire-alt\"></ae-icon> <!-- a duotone solid fire-alt icon -->\n  <ae-icon class=\"fad fa-fire-alt fa-swap-opacity\"></ae-icon> <!-- a duotone solid fire-alt icon with swapped opacity -->\n\n  <ae-icon class=\"fasds fa-bus-alt\"></ae-icon> <!-- a sharp duotone solid bus-alt icon -->\n  <ae-icon class=\"fasds fa-bus-alt fa-swap-opacity\"></ae-icon> <!-- a sharp duotone solid bus-alt icon with swapped opacity -->\n</div>\n\n<h2>Duotone: Changing Opacity</h2>\n\n<div class=\"fa-3x\">\n  <ae-icon class=\"fad fa-bus-alt\" style=\"--fa-secondary-opacity: 0.20\"></ae-icon> <!--  secondary layer's opacity set to 20% -->\n  <ae-icon class=\"fad fa-bus-alt\" style=\"--fa-secondary-opacity: 0.40\"></ae-icon> <!--  secondary layer's opacity set to 40% -->\n  <ae-icon class=\"fad fa-bus-alt\" style=\"--fa-secondary-opacity: 0.60\"></ae-icon> <!--  secondary layer's opacity set to 60% -->\n  <ae-icon class=\"fad fa-bus-alt\" style=\"--fa-secondary-opacity: 0.80\"></ae-icon> <!--  secondary layer's opacity set to 80% -->\n  <ae-icon class=\"fad fa-bus-alt\" style=\"--fa-secondary-opacity: 1.0\"></ae-icon> <!--  secondary layer's opacity set to 100% -->\n</div>\n\n<div class=\"fa-3x\">\n  <ae-icon class=\"fad fa-bus-alt\" style=\"--fa-primary-opacity: 0.20\"></ae-icon> <!--  primary layer's opacity set to 20% -->\n  <ae-icon class=\"fad fa-bus-alt\" style=\"--fa-primary-opacity: 0.40\"></ae-icon> <!--  primary layer's opacity set to 40% -->\n  <ae-icon class=\"fad fa-bus-alt\" style=\"--fa-primary-opacity: 0.60\"></ae-icon> <!--  primary layer's opacity set to 60% -->\n  <ae-icon class=\"fad fa-bus-alt\" style=\"--fa-primary-opacity: 0.80\"></ae-icon> <!--  primary layer's opacity set to 80% -->\n  <ae-icon class=\"fad fa-bus-alt\" style=\"--fa-primary-opacity: 1.0\"></ae-icon> <!--  primary layer's opacity set to 100% -->\n</div>\n\n<h2>Duotone: Coloring Duotone Icons</h2>\n\n<div class=\"fa-3x\">\n  <ae-icon class=\"fasds fa-bus-alt\" style=\"--fa-primary-color: gold;\"></ae-icon> <!-- primary layer color defined -->\n  <ae-icon class=\"fasds fa-bus-alt\" style=\"--fa-primary-color: orangered;\"></ae-icon> <!-- primary layer color defined -->\n  <ae-icon class=\"fasds fa-fill-drip\" style=\"--fa-secondary-color: limegreen;\"></ae-icon> <!-- secondary layer color defined -->\n  <ae-icon class=\"fasds fa-fill-drip\" style=\"--fa-secondary-color: rebeccapurple;\"></ae-icon> <!-- secondary layer color defined -->\n  <ae-icon class=\"fasds fa-battery-full\" style=\"--fa-primary-color: limegreen; --fa-secondary-color: dimgray;\"></ae-icon> <!-- secondary + primary layer color defined -->\n  <ae-icon class=\"fasds fa-battery-quarter\" style=\"--fa-primary-color: orange; --fa-secondary-color: dimgray;\"></ae-icon> <!-- secondary + primary layer color defined -->\n</div>\n\n<h2>Duotone: Use Color to Highlight a Part of an Icon or to Note Status</h2>\n\n<div class=\"fa-3x\">\n  <ae-icon class=\"fad fa-book\" style=\"--fa-primary-color: lightseagreen; --fa-secondary-color: linen; --fa-secondary-opacity: 1.0;\"></ae-icon>\n  <ae-icon class=\"fad fa-book-spells\" style=\"--fa-primary-color: mediumpurple; --fa-secondary-color: linen; --fa-secondary-opacity: 1.0;\" ></ae-icon>\n  <ae-icon class=\"fad fa-book-medical\" style=\"--fa-primary-color: crimson; --fa-secondary-color: linen; --fa-secondary-opacity: 1.0;\" ></ae-icon>\n  <ae-icon class=\"fad fa-book-user\" style=\"--fa-primary-color: peru; --fa-secondary-color: linen; --fa-secondary-opacity: 1.0;\" ></ae-icon>\n\n  <ae-icon class=\"fad fa-toggle-off\" style=\"--fa-primary-color: silver; --fa-secondary-color: gray; --fa-secondary-opacity: 1.0;\" ></ae-icon>\n  <ae-icon class=\"fad fa-toggle-on\" style=\"--fa-primary-color: dodgerblue; --fa-secondary-color: orange; --fa-secondary-opacity: 1.0;\" ></ae-icon>\n\n  <ae-icon class=\"fad fa-file-plus\" style=\"--fa-primary-color: white; --fa-secondary-color: limegreen; --fa-secondary-opacity: 1.0;\" ></ae-icon>\n  <ae-icon class=\"fad fa-file-exclamation\" style=\"--fa-primary-color: white; --fa-secondary-color: gold; --fa-secondary-opacity: 1.0;\" ></ae-icon>\n  <ae-icon class=\"fad fa-file-times\" style=\"--fa-primary-color: white; --fa-secondary-color: tomato; --fa-secondary-opacity: 1.0;\" ></ae-icon>\n</div>\n\n<h2>Duotone: Create Full-Color Icons that Look Like Illustrations</h2>\n\n<div class=\"fa-3x\">\n  <ae-icon class=\"fasds fa-crow\" style=\"--fa-secondary-opacity: 1.0; --fa-primary-color: dodgerblue; --fa-secondary-color: gold;\" ></ae-icon>\n  <ae-icon class=\"fasds fa-campfire\" style=\"--fa-secondary-opacity: 1.0; --fa-primary-color: sienna; --fa-secondary-color: red;\" ></ae-icon>\n  <ae-icon class=\"fasds fa-birthday-cake\" style=\"--fa-secondary-opacity: 1.0; --fa-primary-color: pink; --fa-secondary-color: palevioletred;\" ></ae-icon>\n  <ae-icon class=\"fasds fa-ear\" style=\"--fa-secondary-opacity: 1.0; --fa-primary-color: sandybrown; --fa-secondary-color: bisque;\" ></ae-icon>\n  <ae-icon class=\"fasds fa-corn\" style=\"--fa-secondary-opacity: 1.0; --fa-primary-color: mediumseagreen; --fa-secondary-color: gold;\" ></ae-icon>\n  <ae-icon class=\"fasds fa-cookie-bite\" style=\"--fa-secondary-opacity: 1.0; --fa-primary-color: saddlebrown; --fa-secondary-color: burlywood;\" ></ae-icon>\n</div>\n\n<h2>\n\tBordered & Pulled Icons\n\n</h2>\n\n<ae-icon class=\"far fa-quote-left fa-2x fa-pull-left fa-border\"></ae-icon>\nGatsby believed in the green light, the orgastic future that year by year recedes before us. It eluded us then, but that’s\nno matter — tomorrow we will run farter, stretch our arms further... And one fine morning — So we beat on, boats against\nthe current, borne back ceaselessly into the past. Animated Icons Use the fa-spin class to get any icon to rotate, and use\nfa-pulse to have it rotate with 8 steps. Works especially well with fa-spinner & everything in the spinner icons category.\n\n<h2>\n\tAnimated Icons\n\n</h2>\n\n<div class=\"fa-3x\">\n\t<ae-icon class=\"far fa-spinner fa-spin\"></ae-icon>\n\t<ae-icon class=\"far fa-circle-notch fa-spin\"></ae-icon>\n\t<ae-icon class=\"far fa-sync fa-spin\"></ae-icon>\n\t<ae-icon class=\"far fa-cog fa-spin\"></ae-icon>\n\t<ae-icon class=\"far fa-spinner fa-pulse\"></ae-icon>\n  <ae-icon class=\"far fa-spinner fa-beat\"></ae-icon>\n  <ae-icon class=\"far fa-spinner fa-fade\"></ae-icon>\n  <ae-icon class=\"far fa-spinner fa-flip\"></ae-icon>\n</div>\n\n<h1>\n\tPower Transforms\n</h1>\n<h2>\n\tPower Transforms: Scaling\n</h2>\n\n<div class=\"fa-4x\">\n\t<ae-icon class=\"far fa-magic\" data-fa-transform=\"shrink-8\" style=\"background:MistyRose\"></ae-icon>\n\t<ae-icon class=\"far fa-magic\" style=\"background:MistyRose\"></ae-icon>\n\t<ae-icon class=\"far fa-magic\" data-fa-transform=\"grow-6\" style=\"background:MistyRose\"></ae-icon>\n</div>\n\n<h2>\n\tPower Transforms: Positioning\n</h2>\n\n<div class=\"fa-4x\">\n\t<ae-icon class=\"far fa-magic\" data-fa-transform=\"shrink-8\" style=\"background:MistyRose\"></ae-icon>\n\t<ae-icon class=\"far fa-magic\" data-fa-transform=\"shrink-8 up-6\" style=\"background:MistyRose\"></ae-icon>\n\t<ae-icon class=\"far fa-magic\" data-fa-transform=\"shrink-8 right-6\" style=\"background:MistyRose\"></ae-icon>\n\t<ae-icon class=\"far fa-magic\" data-fa-transform=\"shrink-8 down-6\" style=\"background:MistyRose\"></ae-icon>\n\t<ae-icon class=\"far fa-magic\" data-fa-transform=\"shrink-8 left-6\" style=\"background:MistyRose\"></ae-icon>\n</div>\n\n<h2>\n\tPower Transforms: Rotating & Flipping\n\n</h2>\n\n<div class=\"fa-4x\">\n\t<ae-icon class=\"far fa-magic\" data-fa-transform=\"rotate-90\" style=\"background:MistyRose\"></ae-icon>\n\t<ae-icon class=\"far fa-magic\" data-fa-transform=\"rotate-180\" style=\"background:MistyRose\"></ae-icon>\n\t<ae-icon class=\"far fa-magic\" data-fa-transform=\"rotate-270\" style=\"background:MistyRose\"></ae-icon>\n\t<ae-icon class=\"far fa-magic\" data-fa-transform=\"rotate-30\" style=\"background:MistyRose\"></ae-icon>\n\t<ae-icon class=\"far fa-magic\" data-fa-transform=\"rotate--30\" style=\"background:MistyRose\"></ae-icon>\n\t<ae-icon class=\"far fa-magic\" data-fa-transform=\"flip-v\" style=\"background:MistyRose\"></ae-icon>\n\t<ae-icon class=\"far fa-magic\" data-fa-transform=\"flip-h\" style=\"background:MistyRose\"></ae-icon>\n\t<ae-icon class=\"far fa-magic\" data-fa-transform=\"flip-v flip-h\" style=\"background:MistyRose\"></ae-icon>\n</div>\n\n<h1>Stacking icons</h1>\n\n<span class=\"fa-stack fa-2x\">\n  <ae-icon class=\"far fa-square fa-stack-2x\"></ae-icon>\n  <ae-icon class=\"fab fa-twitter fa-stack-1x fa-inverse\"></ae-icon>\n</span>\n<span class=\"fa-stack fa-2x\">\n  <ae-icon class=\"far fa-circle fa-stack-2x\"></ae-icon>\n  <ae-icon class=\"far fa-flag fa-stack-1x fa-inverse\"></ae-icon>\n</span>\n<span class=\"fa-stack fa-2x\">\n  <ae-icon class=\"far fa-square fa-stack-2x\"></ae-icon>\n  <ae-icon class=\"far fa-terminal fa-stack-1x fa-inverse\"></ae-icon>\n</span>\n<span class=\"fa-stack fa-4x\">\n  <ae-icon class=\"far fa-square fa-stack-2x\"></ae-icon>\n  <ae-icon class=\"far fa-terminal fa-stack-1x fa-inverse\"></ae-icon>\n</span>\n<span class=\"fa-stack fa-2x\">\n  <ae-icon class=\"far fa-camera fa-stack-1x\"></ae-icon>\n  <ae-icon class=\"far fa-ban fa-stack-2x\" style=\"color:Tomato\"></ae-icon>\n</span>\n\n<h1>\n\tMasking\n</h1>\n\n<div class=\"fa-4x\">\n\t<ae-icon class=\"far fa-pencil-alt\" data-fa-transform=\"shrink-10 up-.5\" data-fa-mask=\"far fa-comment\" style=\"background:MistyRose\"></ae-icon>\n\t<ae-icon class=\"fab fa-facebook-f\" data-fa-transform=\"shrink-3.5 down-1.6 right-1.25\" data-fa-mask=\"far fa-circle\" style=\"background:MistyRose\"></ae-icon>\n\t<ae-icon class=\"far fa-headphones\" data-fa-transform=\"shrink-6\" data-fa-mask=\"far fa-square\" style=\"background:MistyRose\"></ae-icon>\n</div>\n<h1>\n\tLayering, Text, & Counters\n</h1>\n\n<div class=\"fa-4x\">\n\t<span class=\"fa-layers fa-fw\" style=\"background:MistyRose\">\n      <ae-icon class=\"far fa-circle\" style=\"color:Tomato\"></ae-icon>\n      <ae-icon class=\"fa-inverse far fa-times\" data-fa-transform=\"shrink-6\"></ae-icon>\n    </span>\n\n\t<span class=\"fa-layers fa-fw\" style=\"background:MistyRose\">\n      <ae-icon class=\"far fa-bookmark\"></ae-icon>\n      <ae-icon class=\"fa-inverse far fa-heart\" data-fa-transform=\"shrink-10 up-2\" style=\"color:Tomato\"></ae-icon>\n    </span>\n\n\t<span class=\"fa-layers fa-fw\" style=\"background:MistyRose\">\n      <ae-icon class=\"far fa-play\" data-fa-transform=\"rotate--90 grow-2\"></ae-icon>\n      <ae-icon class=\"far fa-sun fa-inverse\" data-fa-transform=\"shrink-10 up-2\"></ae-icon>\n      <ae-icon class=\"far fa-moon fa-inverse\" data-fa-transform=\"shrink-11 down-4.2 left-4\"></ae-icon>\n      <ae-icon class=\"far fa-star fa-inverse\" data-fa-transform=\"shrink-11 down-4.2 right-4\"></ae-icon>\n    </span>\n\n\t<span class=\"fa-layers fa-fw\" style=\"background:MistyRose\">\n      <ae-icon class=\"far fa-calendar\"></ae-icon>\n      <span class=\"fa-layers-text fa-inverse\" data-fa-transform=\"shrink-8 down-3\" style=\"font-weight:900\">27</span>\n\t</span>\n\n\t<span class=\"fa-layers fa-fw\" style=\"background:MistyRose\">\n      <ae-icon class=\"far fa-certificate\"></ae-icon>\n      <span class=\"fa-layers-text fa-inverse\" data-fa-transform=\"shrink-11.5 rotate--30\" style=\"font-weight:900\">NEW</span>\n\t</span>\n\n\t<span class=\"fa-layers fa-fw\" style=\"background:MistyRose\">\n      <ae-icon class=\"far fa-envelope\"></ae-icon>\n      <span class=\"fa-layers-counter\" style=\"background:Tomato\">1,419</span>\n\t</span>\n</div>\n\n<!-- \n<pre>\n{{locals.testPageHtml}}\n</pre> -->\n\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"5de64709-0787-406b-927c-29ba39c9bff4","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-10-02T09:32:05+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"5f4dbf45-6288-417e-a805-6e98cccfbf17","text":"page","v":"3a6ff94224366f8b"},"p":"55b76650-8f79-4cb4-bfb2-9e46ad80853d","previous":{"v":"26857a5bc3689e16"},"stamps":[],"t":1759397525101,"v":"a9cad6931eee7d79"},{"id":"e4186ca5-d319-4186-a348-1ed03b902d8f","v":"ac804cff9a3b2ef7","previous":{"v":"7392dad385fe25ff","p":"fallback-designs","a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"]},"p":"1cc4b977-c14d-4587-af47-d6ac230f60b3","f":{"id":"design-form","v":"22a757f630104010","text":"Design"},"data":{"name":"rd:page","template":"<div class=\"relative flex flex-col overflow-hidden h-full w-full bg-neutral-50 dark:bg-slate-700\" @toolbar=\"controller.dispatchEventChildren('inner', 'toolbar', $event.detail)\">\n  <div class=\"overflow-hidden w-full flex-1 flex flex-col\">\n    <!-- Only render on widths small than Tailwind's lg breakpoint. will be rendered in PageDocumentLayout instead -->\n    <div v-if=\"!params.windowWidth && Aeppic.Account?.data.allowDevMode\" class=\"text-red-500\">\n      [DEV] Error: windowWidth is not defined. Provide via params!\n    </div>\n    <header v-if=\"params.windowWidth < 1024\" \n            class=\"px-2 h-[52px] w-full flex items-center gap-2\"\n    >\n     <ae-design\n                name=\"rd:page-toolbar\"\n                class=\"overflow-hidden\"\n                :document=\"document\"\n                @toolbar=\"controller.dispatchEventChildren('inner', 'toolbar', $event)\"\n                :params=\"{ \n                  ...params.toolbarParams, // params.toolbarParams is always null right now\n                  view: params.view, \n                  windowWidth: params.windowWidth\n                }\"\n      ></ae-design> \n    <div class=\"flex-1\"></div>\n\n      <ae-design name=\"rd:more-actions\" \n                  :document=\"document\" \n                  class=\"overflow-hidden ml-6\" \n                  :params=\"{\n                    ...params,\n                    view: params.view, \n                    windowWidth: params.windowWidth\n                  }\" \n      ></ae-design>\n    </header>\n\n    <!-- FIXME: enable company check -->\n    <ae-design  xv-if=\"params.view === 'builder' && document.a_forms.includes('c69a0c1c-6c53-40c2-87e8-5ace866bf1df')\"\n                 v-if=\"params.view === 'builder'\"\n                ref=\"inner\"\n                name=\"rd:form-builder\"\n                :document=\"document\"\n                :params=\"{ ...params, tableStyle: true }\"\n                class=\"flex-1 w-full h-full overflow-auto\"\n    ></ae-design>\n    <ae-design  v-else\n                ref=\"inner\"\n                name=\"rd:page-inner\"\n                :document=\"document\"\n                :params=\"{ ...params, tableStyle: true }\"\n                class=\"flex-1 w-full h-full overflow-auto\"\n    ></ae-design>\n  </div>\n\n  <!-- <div class=\"pointer-events-none overflow-hidden absolute bottom-1 left-1 right-1 flex justify-center\">\n    <ae-design class=\"max-w-full pointer-events-auto\t\" name=\"rd:page-workflow\" :document=\"document\"></ae-design>\n  </div> -->\n</div> ","css":"","controller":"class Controller {\n   dispatchEventChildren(refName, eventName, eventValue) { \n    if (!$refs[refName] || !$refs[refName].$el || !$refs[refName].$el.children) {\n      return\n    }\n    const children = $refs[refName].$el.children\n    for (let i = 0; i < children.length; i++) {\n      children[i].dispatchEvent(new CustomEvent(eventName, {\n        detail: eventValue\n      }))\n    }\n\n    $refs[refName].$emit(eventName, eventValue)\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-05-04T14:03:42+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"modified":{"at":"2026-01-07T15:35:56+00:00","by":"729fa027-7e7e-4b06-9602-f535c43824f0","backedBy":"","impersonatedBy":"","from":"","client":"server"},"t":1767870469088,"ct":1755509087044,"a_depth":3,"a":["apps","77ee8815-2c3a-4bb5-abd9-90541a545a24","1cc4b977-c14d-4587-af47-d6ac230f60b3"],"a_forms":["folder","application-form","design-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"meta":{"modified":{"at":"2026-01-08T11:07:49+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":"","impersonatedBy":"","from":"","client":"server"}}},{"id":"36fff02a-3e76-4f04-845f-c6dcfbf653e6","v":"575cc42d284f808d","cloneOf":{"id":"79ec7c74-1b08-4078-95c0-5b0ce052aeb5","v":"48f8beafa8138f92","text":"page--administator"},"originalCloneOf":{"id":"79ec7c74-1b08-4078-95c0-5b0ce052aeb5","v":"48f8beafa8138f92","text":"page--administator"},"previous":{"v":"initial"},"p":"816b2d0e-5158-4f0c-a5cf-6069bb76de69","f":{"id":"design-form","v":"3385ac6766f32638","text":"Design"},"data":{"name":"rd:page--administator","template":"<div class=\"grid grid-cols-2 gap-6 px-1\" @toolbar=\"controller.onToolbarEvent($event)\">\n  <div class=\"\">\n    <div class=\"text-lg bg-white p-4 my-2 border rounded-lg\">\n      Bearbeiten\n    </div>\n    <ae-form layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\" :auto-save=\"true\" ref=\"form\" :document=\"document\" :readonly=\"!document.a_forms.includes('d60a5613-e046-4341-9bc9-34a241e8a28a')\"></ae-form>\n  </div>\n\n  <div>\n    <div class=\"text-lg bg-white p-4 my-2 border rounded-lg\">\n      Vorschau\n    </div>\n    <ae-design name=\"page--worker\"\n              v-on=\"$listeners\"\n              :document=\"document\"\n              :params=\"{ ...params, readonly: true }\"\n    ></ae-design>\n  </div>\n</div> ","css":"","controller":"class Controller {\n  onToolbarEvent(event) {\n    if (event.detail === 'reset') {\n      $refs.form.resetEdits()\n    } else if (event.detail === 'save') {\n      $refs.form.save()\n    }\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-05-23T09:58:41+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-05-23T09:58:50+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1716458330382,"ct":1716458321128,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","816b2d0e-5158-4f0c-a5cf-6069bb76de69"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"49439c22-dfee-4847-a3c7-26322d1f4a97","v":"bfd4cd21e00bd593","cloneOf":{"id":"5f3a81c4-8449-49a3-a046-728a8a4808e8","v":"f76bad324ab38f5a","text":"page--administator"},"originalCloneOf":{"id":"5f3a81c4-8449-49a3-a046-728a8a4808e8","v":"f76bad324ab38f5a","text":"page--administator"},"previous":{"v":"0c430eaa1f599dd1"},"p":"3592ceee-ae9a-47a9-8488-7bad5b0d9ff5","f":{"id":"design-form","v":"3385ac6766f32638","text":"Design"},"data":{"name":"rd:page--administator","template":"<div class=\"grid grid-cols-2 gap-6 px-1\" @toolbar=\"controller.onToolbarEvent($event)\">\n  <div class=\"\">\n    <div class=\"text-lg bg-white p-4 my-2 border rounded-lg\">\n      Bearbeiten\n    </div>\n    <ae-form layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\" :auto-save=\"true\" ref=\"form\" :document=\"document\" :readonly=\"!document.a_forms.includes('096cfb8f-bb8e-4a6e-87c2-2d1fac5e822a')\"></ae-form>\n  </div>\n\n  <div>\n    <div class=\"mb-14\">\n      <div class=\"text-lg bg-white p-4 my-2 border rounded-lg\">\n        Vorschau (Auswahl: Firma)\n      </div>\n      <ae-design name=\"card\"\n                v-on=\"$listeners\"\n                :document=\"document\"\n                :params=\"{ ...params, readonly: true }\"\n      ></ae-design>\n    </div>\n\n    <div class=\"mb-14\">\n      <div class=\"text-lg bg-white p-4 my-2 border rounded-lg\">\n        Vorschau (Auswahl: Gewählte Firma)\n      </div>\n      <ae-design name=\"card\"\n                v-on=\"$listeners\"\n                :document=\"document\"\n                :params=\"{ ...params, readonly: true, noCommands: true }\"\n      ></ae-design>\n    </div>\n  </div>\n</div> ","css":"","controller":"class Controller {\n  onToolbarEvent(event) {\n    if (event.detail === 'reset') {\n      $refs.form.resetEdits()\n    } else if (event.detail === 'save') {\n      $refs.form.save()\n    }\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-05-23T09:49:09+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-05-23T09:50:59+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1716457859717,"ct":1716457749552,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","3592ceee-ae9a-47a9-8488-7bad5b0d9ff5"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","f5850e39-8581-4b62-8cfe-f4fa95009a1a"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2025-08-05T11:20:52+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1754394980177,"data":{"aliases":[],"controller":"class Controller {\n  onToolbarEvent(event) {\n    if (event.detail === 'reset') {\n      $refs.form.resetEdits()\n    } else if (event.detail === 'save') {\n      $refs.form.save()\n    }\n  }\n}","css":"","description":"","name":"rd:page--administator","packages":[],"template":"<div class=\"grid grid-cols-2 gap-6 px-1\" @toolbar=\"controller.onToolbarEvent($event)\">\n  <div class=\"\">\n    <div class=\"text-lg bg-white p-4 my-2 border rounded-lg\">Bearbeiten</div>\n    <ae-form\n      layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\"\n      :auto-save=\"true\"\n      :auto-save-after=\"1000\"\n      ref=\"form\"\n      :document=\"document\"\n      ></ae-form>\n      <!-- :readonly=\"!document.a_forms.includes('d60a5613-e046-4341-9bc9-34a241e8a28a')\" -->\n  </div>\n\n  <div>\n    <div class=\"text-lg bg-white p-4 my-2 border rounded-lg\">Vorschau</div>\n    <ae-design\n      name=\"rd:page--worker\"\n      :document=\"document\"\n      :params=\"{ ...params, readonly: true }\"\n      v-on=\"$listeners\"\n    ></ae-design>\n  </div>\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"5d24ce34-dec6-4f12-8904-79b88b56da5e","inheritedLocks":[null,null,null,null,null],"locks":[],"meta":{"modified":{"at":"2025-08-26T12:20:26+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null}},"modified":{"at":"2025-08-07T16:11:28+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"f5850e39-8581-4b62-8cfe-f4fa95009a1a","previous":{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","33e3b54d-6b4b-4aa3-8f70-2b834b27bf66"],"a_forms":["folder","application-form","form-folder","form"],"p":"33e3b54d-6b4b-4aa3-8f70-2b834b27bf66","v":"fcfd6b7c6515aa75"},"stamps":[],"t":1756210826848,"v":"ef96a7a0f802a0ae"},{"id":"a15e7589-c7bf-4178-9af2-4e97058a22f4","v":"d7f835bd7823abd2","cloneOf":{"id":"0bc7d7d3-cb15-44d3-8e8f-b5af75cc57af","v":"0584065f9b594ade","text":"page--administator"},"originalCloneOf":{"id":"0bc7d7d3-cb15-44d3-8e8f-b5af75cc57af","v":"0584065f9b594ade","text":"page--administator"},"previous":{"v":"initial"},"p":"5150f703-e93a-4e54-a998-a06c0e962e71","f":{"id":"design-form","v":"3385ac6766f32638","text":"Design"},"data":{"name":"rd:page--administator","template":"<div class=\"grid grid-cols-2 gap-6 px-1\" @toolbar=\"controller.onToolbarEvent($event)\">\n  <div class=\"\">\n    <div class=\"text-lg bg-white p-4 my-2 border rounded-lg\">\n      Bearbeiten\n    </div>\n    <ae-form layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\" :auto-save=\"true\" ref=\"form\" :document=\"document\" :readonly=\"!document.a_forms.includes('d60a5613-e046-4341-9bc9-34a241e8a28a')\"></ae-form>\n  </div>\n\n  <div>\n    <div class=\"text-lg bg-white p-4 my-2 border rounded-lg\">\n      Vorschau\n    </div>\n    <ae-design name=\"page--worker\"\n              :document=\"document\"\n              :params=\"{ ...params, readonly: true }\"\n              v-on=\"$listeners\"\n    ></ae-design>\n  </div>\n</div> ","css":"","controller":"class Controller {\n  onToolbarEvent(event) {\n    if (event.detail === 'reset') {\n      $refs.form.resetEdits()\n    } else if (event.detail === 'save') {\n      $refs.form.save()\n    }\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-05-23T09:59:53+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-05-23T10:00:07+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1716458407860,"ct":1716458393153,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","5150f703-e93a-4e54-a998-a06c0e962e71"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"a7d65047-7860-4412-b111-8343cb644bff","v":"058aca5d8c4902ad","previous":{"v":"e57e992af75a7c83"},"p":"522ca40d-810b-4021-835f-beeace3af7fa","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page--administator","template":"<div class=\"grid grid-cols-2 gap-6 px-1\" @toolbar=\"controller.onToolbarEvent($event)\">\n  <div class=\"\">\n    <div class=\"text-lg bg-white p-4 my-2 border rounded-lg\">\n      Bearbeiten\n    </div>\n    <ae-form layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\" :auto-save=\"true\" ref=\"form\" :document=\"document\" :readonly=\"!document.a_forms.includes('d60a5613-e046-4341-9bc9-34a241e8a28a')\"></ae-form>\n  </div>\n\n  <div>\n    <div class=\"mb-14\">\n      <div class=\"text-lg bg-white p-4 my-2 border rounded-lg\">\n        Vorschau (Auswahl: Wartungsplan. Keine aktive Wartung)\n      </div>\n      <ae-design name=\"card\"\n                v-on=\"$listeners\"\n                :document=\"document\"\n                :params=\"{ ...params, readonly: true }\"\n      ></ae-design>\n    </div>\n<!-- \n    <div class=\"mb-14\">\n      <div class=\"text-lg bg-white p-4 my-2 border rounded-lg\">\n        Vorschau (Auswahl: Wartungsplan. Als aktive Wartung in einer Wartung)\n      </div>\n      <ae-design name=\"active-card\"\n                v-on=\"$listeners\"\n                :document=\"document\"\n                :params=\"{ ...params, readonly: true }\"\n      ></ae-design>\n    </div> -->\n\n    <div class=\"mb-6\">\n        <div class=\"text-lg bg-white p-4 my-2 border rounded-lg\">\n        Vorschau (Ansicht: ausgewählter Wartungsplan)\n      </div>\n\n      <ae-design name=\"anlagen-list\"\n                v-on=\"$listeners\"\n                :document=\"document\"\n                :params=\"{ ...params, readonly: true }\"\n      ></ae-design> \n    </div>\n  </div>\n</div> ","css":"","controller":"class Controller {\n  onToolbarEvent(event) {\n    if (event.detail === 'reset') {\n      $refs.form.resetEdits()\n    } else if (event.detail === 'save') {\n      $refs.form.save()\n    }\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-05-23T09:57:17+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-05-23T09:57:53+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1716458273293,"ct":1716458241202,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","522ca40d-810b-4021-835f-beeace3af7fa"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","347d38c6-0bce-47ce-b271-9f924c56ac49"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2025-08-05T11:09:20+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1754394980177,"data":{"aliases":[],"controller":"class Controller {\n  onToolbarEvent(event) {\n    if (event.detail === 'reset') {\n      $refs.form.resetEdits()\n    } else if (event.detail === 'save') {\n      $refs.form.save()\n    }\n  }\n}","css":"","description":"","name":"rd:page--administator","packages":[],"template":"<div class=\"grid grid-cols-2 gap-6 px-1\" @toolbar=\"controller.onToolbarEvent($event)\">\n  <div class=\"\">\n    <div class=\"text-lg bg-white p-4 my-2 border rounded-lg\">Bearbeiten</div>\n    <ae-form\n      layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\"\n      :auto-save=\"true\"\n      :auto-save-after=\"1000\"\n      ref=\"form\"\n      :document=\"document\"\n      ></ae-form>\n      <!-- :readonly=\"!document.a_forms.includes('d60a5613-e046-4341-9bc9-34a241e8a28a')\" -->\n  </div>\n\n  <div>\n    <div class=\"mb-14\">\n      <div class=\"text-lg bg-white p-4 my-2 border rounded-lg\">\n        Vorschau (Auswahl: Wartungsplan. Keine aktive Wartung)\n      </div>\n      <ae-design name=\"rd:maintenance-card\" v-on=\"$listeners\" :document=\"document\" :params=\"{ ...params, readonly: true }\"></ae-design>\n    </div>\n    <!-- \n    <div class=\"mb-14\">\n      <div class=\"text-lg bg-white p-4 my-2 border rounded-lg\">\n        Vorschau (Auswahl: Wartungsplan. Als aktive Wartung in einer Wartung)\n      </div>\n      <ae-design name=\"active-card\"\n                v-on=\"$listeners\"\n                :document=\"document\"\n                :params=\"{ ...params, readonly: true }\"\n      ></ae-design>\n    </div> -->\n\n    <!-- <div class=\"mb-6\">\n      <div class=\"text-lg bg-white p-4 my-2 border rounded-lg\">Vorschau (Ansicht: ausgewählter Wartungsplan)</div>\n      <ae-list  list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\"\n          :documents=\"data.facilities\"\n          param-empty-text=\"Keine weiteren Anlagen zu warten\"\n          param-design=\"rd:card\"\n          :param-design-params=\"{ readonly: true }\"\n      ></ae-list>\n    </div> -->\n\n    <div class=\"mb-14\">\n      <div class=\"text-lg bg-white p-4 my-2 border rounded-lg\">\n        Vorschau (Auswahl: Wartungsplan. Auswahl einer Anlage)\n      </div>\n      <ae-design name=\"rd:page--worker\" v-on=\"$listeners\" :document=\"document\" :params=\"{ ...params, readonly: true }\"></ae-design>\n    </div>\n  </div>\n  \n</div>\n"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"b4579adf-7f94-4750-ba39-7a6c9c594df6","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-08-07T16:11:25+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"347d38c6-0bce-47ce-b271-9f924c56ac49","previous":{"v":"9d145bc99d417b9b"},"stamps":[],"t":1754583085551,"v":"e8d4660131d4143e"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","46a28dfa-7518-4867-9519-a5f4cd9b9967"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"b4579adf-7f94-4750-ba39-7a6c9c594df6","text":"rd:page--administator","v":"e8d4660131d4143e"},"created":{"at":"2025-10-21T11:36:25+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1761046585524,"data":{"aliases":[],"controller":"class Controller {\n}","css":"","description":"","name":"rd:page--administator","packages":[],"template":"<div class=\"grid grid-cols-2 gap-6 px-1\">\n  <div class=\"\">\n    <div class=\"text-lg bg-white p-4 my-2 border rounded-lg\">Bearbeiten</div>\n\n    <div class=\"flex\">\n      <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n            :params=\"{ \n                text: 'Aufgabe anzeigen',\n                primary: true,\n                icon: 'far fa-check',    \n              }\"\n            @selected=\"Aeppic.drillInto(document)\"\n      ></ae-layout> \n    </div>\n\n    <ae-form\n      layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\"\n      :auto-save=\"true\"\n      :auto-save-after=\"1000\"\n      ref=\"form\"\n      :document=\"document\"\n      :view=\"{ startWithSection: 2 }\"\n      ></ae-form>\n      <!-- FIXME: second ae-form should not be nescessary -->\n      <ae-form\n      layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\"\n      :auto-save=\"true\"\n      :auto-save-after=\"1000\"\n      ref=\"form\"\n      :document=\"document\"\n      :view=\"{ startWithSection: 3 }\"\n      ></ae-form>\n      <!-- :readonly=\"!document.a_forms.includes('d60a5613-e046-4341-9bc9-34a241e8a28a')\" -->\n  </div>\n\n  <div>\n    <div class=\"text-lg bg-white p-4 my-2 border rounded-lg\">Vorschau</div>\n    <ae-design\n      name=\"rd:page--worker\"\n      :document=\"document\"\n      :params=\"{ ...params, readonly: true }\"\n      v-on=\"$listeners\"\n    ></ae-design>\n  </div>\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"c389f0cc-b841-4033-9d3b-84cfd0d31dcc","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-01-19T14:29:53+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"b4579adf-7f94-4750-ba39-7a6c9c594df6","text":"rd:page--administator","v":"e8d4660131d4143e"},"p":"46a28dfa-7518-4867-9519-a5f4cd9b9967","previous":{"v":"9af99734782dcd18"},"stamps":[],"t":1768832993507,"v":"c8c339572dded055"},{"id":"e52b6c29-4a30-40f4-985f-0e7281693f55","v":"81cfff982c3bb6b0","cloneOf":{"id":"c9007772-f883-47b5-b2ad-f19ae6bf072f","v":"3ef36667e01336a6","text":"page--administator"},"originalCloneOf":{"id":"c9007772-f883-47b5-b2ad-f19ae6bf072f","v":"3ef36667e01336a6","text":"page--administator"},"previous":{"v":"initial"},"p":"3d678f2a-65f5-4dc1-a643-c5998fa33f32","f":{"id":"design-form","v":"3385ac6766f32638","text":"Design"},"data":{"name":"rd:page--administator","template":"<div class=\"grid grid-cols-2 gap-6 px-1\" @toolbar=\"controller.onToolbarEvent($event)\">\n  <div class=\"\">\n    <div class=\"text-lg bg-white p-4 my-2 border rounded-lg\">\n      Bearbeiten\n    </div>\n    <ae-form layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\" :auto-save=\"true\" ref=\"form\" :document=\"document\"></ae-form>\n  </div>\n\n  <div>\n    <div class=\"text-lg bg-white p-4 my-2 border rounded-lg\">\n      Vorschau (bei Anmeldung)\n    </div>\n    <ae-design name=\"card\"\n              v-on=\"$listeners\"\n              :document=\"document\"\n              :params=\"{ ...params, readonly: true }\"\n    ></ae-design>\n  </div>\n</div> ","css":"","controller":"class Controller {\n  onToolbarEvent(event) {\n    if (event.detail === 'reset') {\n      $refs.form.resetEdits()\n    } else if (event.detail === 'save') {\n      $refs.form.save()\n    }\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-05-23T09:54:33+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-05-23T09:55:10+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1716458110452,"ct":1716458073536,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","3d678f2a-65f5-4dc1-a643-c5998fa33f32"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","aa947792-4f31-40c9-9a6a-e1ad71697911"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2025-08-05T11:22:00+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1754394980177,"data":{"aliases":[],"controller":"class Controller {\n  onToolbarEvent(event) {\n    if (event.detail === 'reset') {\n      $refs.form.resetEdits()\n    } else if (event.detail === 'save') {\n      $refs.form.save()\n    }\n  }\n}","css":"","description":"","name":"rd:page--administator","packages":[],"template":"<div class=\"grid grid-cols-2 gap-6 px-1\" @toolbar=\"controller.onToolbarEvent($event)\">\n  <div class=\"\">\n    <div class=\"text-lg bg-white p-4 my-2 border rounded-lg\">Bearbeiten</div>\n    <ae-form\n      layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\"\n      :auto-save=\"true\"\n      :auto-save-after=\"1000\"\n      ref=\"form\"\n      :document=\"document\"\n      ></ae-form>\n      <!-- :readonly=\"!document.a_forms.includes('d60a5613-e046-4341-9bc9-34a241e8a28a')\" -->\n  </div>\n\n  <div>\n    <div class=\"text-lg bg-white p-4 my-2 border rounded-lg\">Vorschau</div>\n    <ae-design\n      name=\"rd:page--worker\"\n      v-on=\"$listeners\"\n      :document=\"document\"\n      :params=\"{ ...params, readonly: true }\"\n    ></ae-design>\n  </div>\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"ecd6147c-1ee2-4278-9c0b-3bee956f8dec","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-08-07T16:10:15+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"aa947792-4f31-40c9-9a6a-e1ad71697911","previous":{"v":"a3a34a7dbf3a82e8"},"stamps":[],"t":1754583015122,"v":"075a26638edd5890"},{"id":"0651a953-ba24-41e1-a0ff-c8c30731ca0f","v":"31bc565633585542","cloneOf":{"id":"6a802cd1-36b0-4212-84a8-498ea64f7f5e","v":"0c0d3afa9b371606","text":"page--worker"},"originalCloneOf":{"id":"6a802cd1-36b0-4212-84a8-498ea64f7f5e","v":"0c0d3afa9b371606","text":"page--worker"},"previous":{"v":"initial"},"p":"3592ceee-ae9a-47a9-8488-7bad5b0d9ff5","f":{"id":"design-form","v":"3385ac6766f32638","text":"Design"},"data":{"name":"rd:page--worker","template":"<div class=\"p-4\">\n  <section class=\"flex justify-between align-end gap-4 mb-6\">\n      <label class=\"text-4xl\">\n        {{data.name}}\n      </label>\n      <ae-design name=\"anschrift\" :document=\"document\"></ae-design>\n  </section>\n\n  <section>\n      <ae-list list-id=\"2e798091-303f-406b-a42a-93aa1cd8425c\"\n              :documents=\"locals.objects\"\n              param-design=\"card\"\n              param-title=\"Objekte\"\n              @selected=\"Aeppic.drillInto($event, arguments[1])\"\n      ></ae-list>\n  </section>\n\n</div> ","css":"","controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Objekt: '3d678f2a-65f5-4dc1-a643-c5998fa33f32',\n      Wartungsplan: '522ca40d-810b-4021-835f-beeace3af7fa',\n      Wartung: 'c211ffaa-14f8-4439-9126-f42f65ac4424',\n    }\n\n    locals.objects = []\n\n    // const location = await Aeppic.get(document.a[document.a_forms.findIndex(aForm => aForm === this.FORMS.Objekt)])\n\n    // const [servicesFolders, plansFolders] = await Promise.all([\n    //   Aeppic.query('b41dd25d-922e-4e07-a14e-75245d846707', location),\n    //   Aeppic.query('72117ae9-9c31-402b-abd2-1f5ee2a7519a', location)\n    // ])\n \n    Aeppic.subscribe(\n      `a:${document.a[0]} f.id:${this.FORMS.Objekt} data.firma:${document.id}`,\n      {\n        sort: {\n          field: 'data.name',\n        }\n      },\n      docs => locals.objects = docs\n    )\n  }\n} \n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-05-23T09:50:22+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-05-23T09:50:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1716457832579,"ct":1716457822422,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","3592ceee-ae9a-47a9-8488-7bad5b0d9ff5"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"085a9bd9-963c-49fc-8497-20ba430ab6da","v":"490b536e9b677c32","previous":{"v":"300545d4433d0f0a"},"p":"941d2b8f-5694-4054-8c99-c51ad62f6c2f","f":{"id":"design-form","v":"22a757f630104010","text":"Design"},"data":{"name":"rd:page--worker","template":"<section class=\"p-4\" v-if=\"locals.ready\" :key=\"'_CSS' + controller.currentStep.type\">\n  <div class=\"flex justify-between mb-12 items-center\">\n    <div class=\"text-2xl\">Anmeldung</div>\n\n    <ae-layout\n      layout-id=\"f6bdd129-3852-4bac-9375-559b929486bc\"\n      param-text=\"Von vorne beginnen\"\n      @selected=\"controller.reset()\"\n      :param-disabled=\"locals.breadcrumbs.length === 1 && !controller.currentStep.selected\"\n    ></ae-layout>\n  </div>\n\n  <div v-if=\"locals.isVerwalter\" class=\"flex items-center gap-2 text-red-500\">\n    <ae-icon class=\"fa fa-ban\"></ae-icon>\n    <div>Bitte melden Sie sich mit einem Firmen-Account ohne Verwalter-Rechte an!</div>\n  </div> \n\n  <template v-else>\n    <div v-if=\"locals.breadcrumbs.length > 1\" class=\"mb-6 flex flex-col gap-2\">\n      <template v-for=\"(step, index) in locals.breadcrumbs.slice(0, -1)\">\n        <ae-design\n          :key=\"step.selected.id + '_' + index\"\n          name=\"rd:maintenance-card\"\n          :document=\"step.selected\"\n          :param-show-selected-button=\"true\"\n          @selected=\"controller.jumpToStep(index)\"\n        ></ae-design>\n      </template>\n    </div>\n\n    <div v-if=\"controller.currentStep.type === 'team'\" class=\"py-4\">\n      <div v-if=\"locals.myTeam\" class=\"flex flex-col gap-4\">\n        <div class=\"flex gap-2 items-center\">\n          <ae-icon class=\"far fa-info-circle text-2xl\"></ae-icon>\n          Wir haben folgendes Team für Sie gefunden\n        </div>\n        <ae-design\n          name=\"rd:maintenance-card\"\n          :document=\"locals.myTeam\"\n          @selected=\"controller.selectTeam(locals.myTeam)\"\n          :param-show-selected-button=\"true\"\n        ></ae-design>\n      </div>\n      <div v-else>\n        <div class=\"flex gap-2 items-center\">\n          <ae-icon class=\"far fa-circle-exclamation text-2xl text-red-500\"></ae-icon>\n          <span> Wir konnten für Sie kein Team finden. Versuchen Sie es erneut oder kontaktieren Sie Ihren Administrator. </span>\n        </div>\n      </div>\n    </div>\n\n    <div v-if=\"controller.currentStep.type === 'area'\">\n      <ae-list\n        list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\"\n        :documents=\"controller.currentStep.options\"\n        param-design=\"rd:maintenance-card\"\n        :param-design-params=\"{ showSelectedButton: true }\"\n        param-title=\"Areale\"\n        param-empty-text=\"Keine Areale zu warten\"\n        @selected=\"controller.selectArea($event)\"\n      ></ae-list>\n    </div>\n\n    <div v-if=\"controller.currentStep.type === 'building'\">\n      <ae-list\n        list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\"\n        :documents=\"controller.currentStep.options\"\n        param-design=\"rd:maintenance-card\"\n        :param-design-params=\"{ showSelectedButton: true }\"\n        param-title=\"Gebäude\"\n        param-empty-text=\"Keine Gebäude zu warten\"\n        @selected=\"controller.selectBuilding($event)\"\n      ></ae-list>\n    </div>\n\n    <div v-if=\"controller.currentStep.type === 'plan'\">\n      <!-- buildingPart filter -->\n      <div\n        class=\"w-1/3 flex flex-col xmin-h-20\"\n      >\n        <span\n          class=\"text-neutral-600 mb-1\"\n        >Gebäudeteile filtern</span>\n        <ae-control\n          v-if=\"locals.breadcrumbs.find(step => step.type === 'building')?.selected?.id && locals.buildingpartsFilterEditableDocument\"\n          class=\"flex-1 bg-white rounded-md\"\n          :document=\"locals.buildingpartsFilterEditableDocument\"\n          field-name=\"buildingParts\"\n          name=\"rd:ref\"\n          :params=\"{ \n            parentId: locals.breadcrumbs.find(step => step.type === 'building')?.selected?.id,\n            hidePath: true,\n            forms: controller.FORMS.Gebaeudeteil,\n            handleRemove: true,\n            confirmRemove: false,\n          }\"\n          @field-updated=\"controller.setBuildingpartFilter($event.value)\"\n        ></ae-control>\n      </div>\n      <div>\n        <ae-list\n          v-if=\"controller.currentStep.activeRepairs.length > 0\"\n          list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\"\n          :documents=\"controller.currentStep.activeRepairs\"\n          param-design=\"rd:maintenance-card\"\n          :param-design-params=\"{ showSelectedButton: true }\"\n          param-title=\"Reparaturen\"\n          @selected=\"controller.selectedRepair($event)\"\n          param-empty-text=\"Keine Reparaturen zu bearbeiten.\"\n        ></ae-list>\n\n        <ae-list\n          list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\"\n          :documents=\"controller.currentStep.activeMaintenances\"\n          param-design=\"rd:maintenance-card\"\n          :param-design-params=\"{ showSelectedButton: true }\"\n          param-title=\"Wartungspläne\"\n          @selected=\"controller.selectPlan($event)\"\n          param-empty-text=\"Keine Wartungen durchzuführen.\"\n        ></ae-list>\n      </div>\n    </div>\n  </template>\n</section>","css":"","controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Areal: '5f4a87a7-5557-4004-bfdc-2fb26c71e0c9',\n      Gebaeude: 'a7d94cd2-8da5-45d9-ac59-4fe103429b8d',\n      Gebaeudeteil: '1e3214b4-b81e-4ac2-a788-c2051af016ab',\n      Wartungsdurchfuehrung: '1b166603-d0f3-4f16-98c4-0534afbd6f5a',\n      Wartung: '347d38c6-0bce-47ce-b271-9f924c56ac49',\n      Team: 'aa49f5c2-0502-4b7e-8ffd-4ac90427420e',\n      Reparatur: '46a28dfa-7518-4867-9519-a5f4cd9b9967',\n    }\n\n    this.COMMANDS = {\n      isVerwalter: '950f35d3-95ba-4d5a-a164-0074c767d600',\n    }\n\n    this.entities = {\n      areas: new Map(),\n      buildings: new Map(),\n      buildingParts: new Map(),\n      technicalPlaces: new Map(),\n    }\n\n    this.hierarchy = {\n      areaToBuildings: new Map(),\n      buildingToBuildingParts: new Map(),\n      buildingPartToTechnicalPlaces: new Map(),\n    }\n    this.resolveCache = new Map()\n    this.locationPathByStartId = new Map()\n\n    this.validMaintenances = []\n    this.validRepairs = []\n\n    locals.selecting = false\n    locals.ready = false\n    locals.myTeam = null\n    locals.breadcrumbs = []\n\n    await this._resetBuildingpartFilter()\n\n    if (Aeppic.Account?.data?.isAdmin) {\n      locals.myTeam = await Aeppic.findOne(`a:${document.a[0]} f.id:${this.FORMS.Team} data.type:INTERNAL`)\n    } else {\n      locals.myTeam = await Aeppic.findOne(`a:${document.a[0]} f.id:${this.FORMS.Team} data.type:INTERNAL data.employee.id:${Aeppic.ProfilePage?.id}`)\n    }\n\n    locals.isVerwalter = (\n      await Aeppic.Commands.execute(this.COMMANDS.isVerwalter, document)\n    )?.value || false\n\n    if (locals.isVerwalter) {\n      if (Aeppic.Account?.data?.isAdmin) {\n        locals.isVerwalter = false\n      } else {\n        Aeppic.onLinkClicked(null, packages.window.location.origin)\n        Aeppic.reload()\n        return\n      }\n    }\n\n    locals.breadcrumbs.push({\n      type: 'team',\n      options: locals.myTeam ? [locals.myTeam] : [],\n      selected: null\n    })\n\n    locals.ready = true\n  }\n\n  get currentStep() {\n    return locals.breadcrumbs[locals.breadcrumbs.length - 1]\n  }\n\n  async selectTeam(team) {\n    if (locals.selecting) return\n    locals.selecting = true\n    try {\n      const step = this.currentStep\n      step.selected = team\n\n      // Cache für neues Team zurücksetzen\n      this._resetCache()\n\n      const rawMaintenances = await Aeppic.find(\n        `a:${document.a[0]} f.id:${this.FORMS.Wartungsdurchfuehrung} data.team.id:${team.id} data.released:true (data.status:PLANNED OR data.status:STARTED OR data.status:CANCELED)`,\n        { size: 500 }\n      )\n      const rawRepairs = await Aeppic.find(\n        `a:${document.a[0]} f.id:${this.FORMS.Reparatur} data.team.id:${team.id} data.released:true (data.status:PLANNED OR data.status:STARTED OR data.status:CANCELED)`,\n        { size: 500 }\n      )\n\n      const startPointsMap = new Map() // Task-ID -> Set an initialen IDs (Aggregate oder Facility)\n\n      // Sammle die Startpunkte für den bottom-up approach. Hier wird eine Liste von Aggregaten und Anlagen angelegt.\n      const maintenancePromises = rawMaintenances.map(async (task) => {\n        const startIds = new Set()\n        try {\n          const wps = await Aeppic.resolveAll(task.id, 'data.maintenance -> AppKeeptrack-Wartungsteile -> AppKeeptrack-Wartungspunkte') || []\n\n          if (task?.data?.facility?.id) {\n              startIds.add(task.data.facility.id)\n          }\n\n          for (const wp of wps) {\n            if (wp?.data?.aggregate?.id) {\n              startIds.add(wp.data.aggregate.id)\n            }\n          }\n        } catch (e) {\n          if (task?.data?.facility?.id) startIds.add(task.data.facility.id)\n        }\n        return { id: task.id, ids: Array.from(startIds) }\n      })\n\n      const repairPromises = rawRepairs.map(async (task) => {\n        const startIds = new Set()\n        try {\n          const workItems = task?.data?.workItems || []\n          if (workItems.length === 0 && task?.data?.facility?.id) {\n            startIds.add(task.data.facility.id)\n          } else {\n            await Promise.all(workItems.map(async (workItem) => {\n              if (!workItem?.id) return\n              const wp = await this._resolveCached(workItem.id, 'AppKeeptrack-Wartungspunkt')\n\n              if (wp?.data?.aggregate?.id) {\n                startIds.add(wp.data.aggregate.id)\n              } else if (task?.data?.facility?.id) {\n                startIds.add(task.data.facility.id)\n              }\n            }))\n          }\n        } catch (e) {\n          if (task?.data?.facility?.id) startIds.add(task.data.facility.id)\n        }\n        return { id: task.id, ids: Array.from(startIds) }\n      })\n\n      const allResults = await Promise.all([...maintenancePromises, ...repairPromises])\n\n      for (const result of allResults) {\n        startPointsMap.set(result.id, result.ids)\n      }\n\n      // Nutze die List der Anlagen/Aggregate und baue den Pfad von ihnen zum Areal via Technischer Platz\n      const uniqueStartIds = [...new Set(Array.from(startPointsMap.values()).flat())]\n      const resolvedPaths = new Map() // Start-ID -> Volles Location Objekt\n\n      await Promise.all(uniqueStartIds.map(async (startId) => {\n        try {\n          const locationPath = await this._resolveLocationPath(startId)\n          if (!locationPath) return\n\n          resolvedPaths.set(startId, locationPath)\n        } catch (e) {\n          // Pfade ignorieren, die nicht aufgelöst werden konnten.\n        }\n      }))\n\n      this.validMaintenances = rawMaintenances.map(task => {\n        const startIds = startPointsMap.get(task.id) || []\n        const locations = startIds.map(id => resolvedPaths.get(id)).filter(Boolean)\n\n        // Task mit locations werden zurückgegeben\n        return locations.length > 0 ? { ...task, locations } : null\n      }).filter(Boolean)\n\n      this.validRepairs = rawRepairs.map(task => {\n        const startIds = startPointsMap.get(task.id) || []\n        const locations = startIds.map(id => resolvedPaths.get(id)).filter(Boolean)\n        return locations.length > 0 ? { ...task, locations } : null\n      }).filter(Boolean)\n\n      // Drilldown für Areal initialisieren\n      locals.breadcrumbs.push({\n        type: 'area',\n        options: Array.from(this.entities.areas.values()),\n        selected: null\n      })\n    } finally {\n      locals.selecting = false\n    }\n  }\n\n  async selectArea(area) {\n    if (locals.selecting) return\n    locals.selecting = true\n    try {\n      const step = this.currentStep\n      step.selected = area\n\n      // Gebäude filtern, die zu diesem Areal gehören\n      const buildingIdsForArea = this.hierarchy.areaToBuildings.get(area.id) || new Set()\n\n      const filteredBuildings = Array.from(buildingIdsForArea)\n        .map(id => this.entities.buildings.get(id))\n        .filter(Boolean)\n\n      locals.breadcrumbs.push({\n        type: 'building',\n        options: filteredBuildings,\n        selected: null\n      })\n    } finally {\n      locals.selecting = false\n    }\n  }\n\n  async selectBuilding(building) {\n    if (locals.selecting) return\n    locals.selecting = true\n    try {\n      const step = this.currentStep\n      step.selected = building\n\n      await this._resetBuildingpartFilter()\n\n      const activeMaintenances = this.validMaintenances.filter(task =>\n        task.locations.some(loc => loc.buildingId === building.id)\n      )\n\n      const activeRepairs = this.validRepairs.filter(task =>\n        task.locations.some(loc => loc.buildingId === building.id)\n      )\n\n      locals.breadcrumbs.push({\n        type: 'plan',\n        baseMaintenances: activeMaintenances,\n        baseRepairs: activeRepairs,\n        activeMaintenances: [...activeMaintenances],\n        activeRepairs: [...activeRepairs],\n        selected: null\n      })\n    } finally {\n      locals.selecting = false\n    }\n  }\n\n  async selectPlan(plan) {\n    await Aeppic.Commands.execute('7209081a-26f8-4649-8b7f-3248eb529b1c', plan, {}, { navigation: true })\n  }\n\n  async selectedRepair(repair) {\n    await Aeppic.Commands.execute('c0b0e15f-6cc0-4288-879b-c195948e3ae3', repair, {}, { navigation: true })\n  }\n\n  jumpToStep(index) {\n    locals.breadcrumbs = locals.breadcrumbs.slice(0, index + 1)\n    locals.breadcrumbs[index].selected = null\n  }\n\n  reset() {\n    locals.breadcrumbs = locals.breadcrumbs.slice(0, 1)\n    locals.breadcrumbs[0].selected = null\n  }\n\nsetBuildingpartFilter(values) {\n    const step = this.currentStep\n\n    if (step.type !== 'plan') return\n    if (!values || values.length === 0) {\n      step.activeMaintenances = [...step.baseMaintenances]\n      step.activeRepairs = [...step.baseRepairs]\n      return\n    }\n\n    const selectedBuildingPartIds = values.map(v => v.id)\n    step.activeMaintenances = step.baseMaintenances.filter(task =>\n      task.locations.some(loc => selectedBuildingPartIds.includes(loc.buildingPartId))\n    )\n    step.activeRepairs = step.baseRepairs.filter(task =>\n      task.locations.some(loc => selectedBuildingPartIds.includes(loc.buildingPartId))\n    )\n  }\n\n\n  async _resetBuildingpartFilter() {\n    locals.buildingpartsFilterEditableDocument = await Aeppic.new(\n      '40f82be9-b7ea-4ce1-bd91-f39bdb22a011',\n      '40f82be9-b7ea-4ce1-bd91-f39bdb22a011'\n    )\n  }\n\n  _resetCache() {\n    this.entities = {\n      areas: new Map(),\n      buildings: new Map(),\n      buildingParts: new Map(),\n      technicalPlaces: new Map(),\n    }\n    this.hierarchy = {\n      areaToBuildings: new Map(),\n      buildingToBuildingParts: new Map(),\n      buildingPartToTechnicalPlaces: new Map(),\n    }\n    this.resolveCache = new Map()\n    this.locationPathByStartId = new Map()\n    this.validMaintenances = []\n    this.validRepairs = []\n  }\n\n  async _resolveCached(id, relation) {\n    const key = `${relation}:${id}`\n\n    if (!this.resolveCache.has(key)) {\n      this.resolveCache.set(key, Aeppic.resolve(id, relation).then(doc => doc || null))\n    }\n\n    return await this.resolveCache.get(key)\n  }\n\n  async _resolveLocationPath(startId) {\n    if (!this.locationPathByStartId.has(startId)) {\n      this.locationPathByStartId.set(startId, this._buildLocationPath(startId))\n    }\n\n    return await this.locationPathByStartId.get(startId)\n  }\n\n  async _buildLocationPath(startId) {\n    const technicalPlace = await this._resolveCached(startId, 'AppKeeptrack-TechnischerPlatz')\n    if (!technicalPlace?.id) return null\n\n    const buildingPart = await this._resolveCached(technicalPlace.id, 'AppKeeptrack-Gebäudeteil')\n    if (!buildingPart?.id) return null\n\n    const building = await this._resolveCached(buildingPart.id, 'AppKeeptrack-Gebäude')\n    if (!building?.id) return null\n\n    const areal = await this._resolveCached(building.id, 'AppKeeptrack-Areal')\n    if (!areal?.id) return null\n\n    this.entities.technicalPlaces.set(technicalPlace.id, technicalPlace)\n    this.entities.buildingParts.set(buildingPart.id, buildingPart)\n    this.entities.buildings.set(building.id, building)\n    this.entities.areas.set(areal.id, areal)\n\n    this._addToHierarchyMap(this.hierarchy.buildingPartToTechnicalPlaces, buildingPart.id, technicalPlace.id)\n    this._addToHierarchyMap(this.hierarchy.buildingToBuildingParts, building.id, buildingPart.id)\n    this._addToHierarchyMap(this.hierarchy.areaToBuildings, areal.id, building.id)\n\n    return {\n      technicalPlaceId: technicalPlace.id,\n      buildingPartId: buildingPart.id,\n      buildingId: building.id,\n      areaId: areal.id\n    }\n  }\n\n  _addToHierarchyMap(map, parentId, childId) {\n    if (!map.has(parentId)) {\n      map.set(parentId, new Set())\n    }\n    map.get(parentId).add(childId)\n  }\n}\n","packages":[{"id":"10843fbf-4f0c-416b-be7d-42d6bbd0ae68","v":"d4ce6dec568c3dc1","text":"Window"}],"aliases":[],"description":""},"locks":[],"created":{"at":"2025-08-06T16:50:58+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"modified":{"at":"2026-07-03T10:19:10+00:00","by":"09763886-6748-4a56-8e0e-54a2293ee96b","backedBy":"","impersonatedBy":"","from":"","client":"server"},"t":1783073950441,"ct":1754499109358,"a_depth":4,"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","941d2b8f-5694-4054-8c99-c51ad62f6c2f"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","1e3214b4-b81e-4ac2-a788-c2051af016ab"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2026-01-27T10:29:55+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"ct":1769509795018,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      TechnischerPlatz: '093f533e-9758-479c-97bc-8e4ba7dc3c2d',\n    }\n\n    locals.mode = 'overview'\n    locals.selectedZoom = null\n\n    locals.size = 600\n\n    const zooms = [\n      {\n        name: 'A',\n        offsetX: 0,\n        offsetY: 50,\n        class: '',\n        origin: '0% 0%', // Top Left\n      },\n      {\n        name: 'B',\n        offsetX: 50,\n        offsetY: 50,\n        class: ``,\n        origin: '100% 0%', // Top Right\n      },\n      {\n        name: 'C',\n        offsetX: 0,\n        offsetY: 0,\n        class: ``,\n        origin: '0% 100%', // Bottom Left\n      },\n      {\n        name: 'D',\n        offsetX: 50,\n        offsetY: 0,\n        class: ``,\n        origin: '100% 100%', // Bottom Right\n      },\n    ]\n\n    const getClass = (zoom, index) => {\n      const indexColor = {}\n      // we will have a 2x2 grid\n      zoom.class = [\n        'absolute',\n        `w-[${locals.size / 2}px]`,\n        `h-[${locals.size / 2}px]`,\n        `left-[${zoom.offsetX}%]`,\n        `bottom-[${zoom.offsetY}%]`,\n        // `bg-blue-${9 - index}00/10`,\n        `hover:bg-black/10`,\n      ].join(' ')\n      return zoom\n    }\n\n    locals.zooms = zooms.map((z, i) => getClass(z, i))\n\n    // locals.selectedZoom = zooms[1]\n    // locals.mode = 'zoom'\n\n    locals.places = []\n    locals.placesDocuments = []\n    await this.onUpdate()\n  }\n\n  async onUpdate() {\n    const places = await Aeppic.find(`p:${document.id} f.id:${this.FORMS.TechnischerPlatz}`, { size: 999 })\n\n    locals.placesDocuments = places\n\n    /**\n     * Completely random points across the entire 0-100 plane\n     * @param {number} count - Number of points to generate\n     * @returns {Array<{x: number, y: number}>}\n     */\n    function randomUniform(count) {\n      return Array.from({ length: count }, () => ({\n        x: Math.random() * 100,\n        y: Math.random() * 100,\n      }))\n    }\n\n    function shuffleArray(array) {\n      return array.sort(() => Math.random() - 0.5)\n    }\n\n    function evenQuadrantDistribution(count) {\n      const pointsPerQuadrant = Math.floor(count / 4)\n      const remainder = count % 4\n      const points = []\n\n      for (let q = 0; q < 4; q++) {\n        const quadrantCount = pointsPerQuadrant + (q < remainder ? 1 : 0)\n        const xRange = q % 2 === 0 ? [10, 50] : [50, 90]\n        const yRange = q < 2 ? [10, 50] : [50, 90]\n\n        for (let i = 0; i < quadrantCount; i++) {\n          points.push({\n            x: xRange[0] + Math.random() * (xRange[1] - xRange[0]),\n            y: yRange[0] + Math.random() * (yRange[1] - yRange[0]),\n          })\n        }\n      }\n\n      return shuffleArray(points)\n    }\n\n    const randomPoints = evenQuadrantDistribution(100)\n\n    locals.places = places.map((place, index) => {\n      const { x, y } = randomPoints[index]\n      // const i = index + 3\n      // const x = index == 0 ? 45 : i * i + 20\n      // const y = index == 0 ? 45 : i * i + 20\n\n      // FIXME: only b ok, check a\n\n      const xCoordinate = (x / 100) * locals.size\n      const yCoordinate = (y / 100) * locals.size\n      console.log({ xCoordinate, yCoordinate })\n      return {\n        x,\n        y,\n        class: [`left-[${xCoordinate}px]`, `bottom-[${yCoordinate}px]`].join(' '),\n        zoomClass: [`left-[${xCoordinate * 2}px]`, `bottom-[${yCoordinate * 2}px]`].join(' '),\n        // zoomClass: [`left-[${x * 2}[x]]`, `bottom-[${y * 2}%]`].join(' '),\n        document: place,\n      }\n    })\n  }\n\n  async selectedPlace(place) {\n    console.log({\n      place,\n    })\n\n    Aeppic.drillInto(place)\n  }\n\n  selectZoom(zoom) {\n    locals.selectedZoom = zoom\n\n    locals.mode = 'zoom'\n  }\n\n  resetZoom() {\n    locals.selectedZoom = null\n    locals.mode = 'overview'\n  }\n\n  selectPlace(place) {\n    if (locals.selectedPlace === place) {\n      locals.selectedPlace = null\n    } else {\n      locals.selectedPlace = place\n    }\n  }\n}\n","css":"","description":"","name":"rd:page--worker","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<div class=\"flex flex-col p-2 pb-8\">\n  <div class=\"px-2 py-4 flex gap-4 items-center\">\n    <div class=\" flex flex-col\">\n      <div class=\"flex gap-2\">\n        <ae-design name=\"title\" :document-id=\"document.p\" class=\"text-neutral-500\"></ae-design>\n        <ae-design name=\"title\" :document=\"document\" class=\"font-semibold\"></ae-design>\n      </div>\n      <div>Anzahl Technische Plätze: {{ locals.places.length }}</div>\n    </div>\n    <div class=\"flex-1\"></div>\n    <ae-design :document=\"document\" name=\"rd:button-navigate-to-aufnahme\"></ae-design>\n  </div>\n  <div\n    xv-if=\"locals.mode === 'overview'\"\n    class=\"mx-auto relative overflow-hidden mb-4\"\n    :class=\"['w-[' + locals.size+ 'px]', 'h-['+ locals.size +'px]']\"\n  >\n    <img\n      class=\"transition-transform\"\n      :src=\"Aeppic.Content.getSrc(document, 'floorplan')\"\n      alt=\"Grundriss\"\n      :class=\"['w-[' + locals.size+ 'px]', 'h-['+ locals.size +'px]']\"\n      :style=\"{ transform: locals.selectedZoom ? 'scale(2)' : 'scale(1)', transformOrigin: locals.selectedZoom?.origin || '' }\"\n    />\n\n    <!-- <div\n      v-if=\"locals.mode === 'overview'\"\n      class=\"absolute top-0 left-0 bottom-0 right-0\"\n      :class=\"['w-[' + locals.size+ 'px]', 'h-['+ locals.size +'px]']\"\n    >\n      <div\n        v-for=\"zoom of locals.zooms\"\n        :class=\"zoom.class\"\n        class=\"text-center\"\n        @click.stop=\"controller.selectZoom(zoom)\"\n      >\n        {{zoom.name}}\n      </div>\n    </div> -->\n\n    <!--  -->\n    <div\n      v-for=\"place of locals.places\"\n      xv-if=\"!locals.selectedZoom || (place.x >= locals.selectedZoom.offsetX && place.x <= locals.selectedZoom.offsetX + 50 && place.y >= locals.selectedZoom.offsetY && place.y <= locals.selectedZoom.offsetY + 50)\"\n      class=\"select-none cursor-pointer absolute translate-y-2/4 -translate-x-2/4 bg-blue-600 hover:bg-blue-800 rounded-full w-[30px] h-[30px]\"\n      :class=\"[locals.mode === 'overview' ? place.class : place.zoomClass, locals.selectedPlace === place && 'ring-4 ring-red-500']\"\n      :title=\"place.x + ',' + place.y\"\n      @click.stop=\"controller.selectPlace(place)\"\n      :style=\"{ xtransform: locals.selectedZoom ? 'scale(2)' : 'scale(1)', xtransformOrigin: locals.selectedZoom?.origin || '' }\"\n    >\n      <!-- draw a circle from the middle of the div -->\n      <div></div>\n      <div\n        class=\"select-none cursor-pointer px-1 absolute top-[29px] -left-[10px] w-[50px] bg-white rounded-md text-xs truncate border border-blue-600\"\n        @click.stop=\"controller.selectPlace(place)\"\n      >\n        {{place.document.data.name}}\n      </div>\n    </div>\n    <!-- <div\n    v-if=\"locals.mode === 'zoom'\"\n    class=\"relative overflow-hidden\"\n    :class=\"['w-[' + locals.size+ 'px]', 'h-['+ locals.size +'px]']\"\n  >\n    <img\n      :src=\"Aeppic.Content.getSrc(document, 'floorplan')\"\n      alt=\"Grundriss\"\n      :style=\"{ transform: 'scale(2)', transformOrigin: locals.selectedZoom.origin }\"\n      :class=\"['w-[' + locals.size+ 'px]', 'h-['+ locals.size +'px]']\"\n    />\n    zoom!\n  </div> -->\n  </div>\n  <!-- <div v-if=\"locals.selectedPlace?.document\" class=\"mx-auto items-center flex gap-2 mb-4\">\n    <ae-design\n      name=\"rd:card\"\n      :document=\"locals.selectedPlace.document\"\n      class=\"w-[500px]\"\n      @selected=\"Aeppic.drillInto(locals.selectedPlace.document)\"\n    ></ae-design>\n    <ae-layout\n      class=\"max-w-[300px]\"\n      layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n      param-icon=\"far fa-trash text-red-500\"\n      :param-title=\"locals.selectedPlace.document.data.name + ' löschen'\"\n      param-border=\"border\"\n      @selected=\"\"\n    ></ae-layout>\n  </div> -->\n  <!-- <ae-layout\n    layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n    param-icon=\"far fa-arrow-right\"\n    param-text=\"Technischen Platz auswählen\"\n    @selected=\"Aeppic.drillInto(locals.selectedPlace.document)\"\n    class=\"mb-2\"\n  ></ae-layout> -->\n  <!-- {{locals.selectedPlace}} -->\n  <!-- \n  <ae-layout\n    layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n    param-icon=\"far fa-magnifying-glass-minus\"\n    param-text=\"Übersicht anzeigen\"\n    @selected=\"controller.resetZoom()\"\n  ></ae-layout> -->\n\n  <ae-list\n    list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\"\n    :documents=\"locals.placesDocuments.filter(doc => !locals.selectedPlace || locals.selectedPlace.document.id === doc.id)\"\n    :params=\"{\n      design: 'rd:maintenance-card',\n      designParams: {\n        showEditButton: true,\n      }\n    }\"\n    @edit=\"controller.selectedPlace($event)\"\n    :param-title=\"locals.selectedPlace ? 'Ausgewählter Technischer Platz' : 'Alle Technischen Plätze'\"\n  ></ae-list>\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"1626c180-1b64-467b-9873-54fbf2dbc07f","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-02-27T15:47:17+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"p":"1e3214b4-b81e-4ac2-a788-c2051af016ab","previous":{"v":"0b22286df71b2ddf"},"stamps":[],"t":1772207237228,"v":"0e0440104ba390a7"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","aa947792-4f31-40c9-9a6a-e1ad71697911"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2025-08-05T11:22:03+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1754394980178,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    // const WORK_RESET_AFTER_SECONDS = 60 * 60 * 3\n    // this.timeoutAt = Aeppic.DateTime.local().plus({ seconds: WORK_RESET_AFTER_SECONDS })\n    // Aeppic.setTimeout(() => this.resetWork(), WORK_RESET_AFTER_SECONDS * 1000)\n    // locals.timeUntilTimeout = ''\n    // locals.minutesUntilTimeout = null\n\n    locals.canSign = false\n    locals.mustSign = false\n    locals.tasks = []\n    locals.error = ''\n\n    locals.signingView = {\n      only: {\n        fields: ['signature'],\n      },\n    }\n\n    locals.toolsView = {\n      only: {\n        fields: ['toolsAndEquipment']\n      }\n    }\n\n    locals.wartungsteil = null\n    locals.anlage = null\n    locals.wartungsteil = await Aeppic.get(document.p)\n    locals.anlage = await Aeppic.get(locals.wartungsteil.data.facility) \n\n    const readerMode = await Aeppic.Preferences.getSettingForDocument('keeptrack:settings:signatureMode', document)\n    locals.mustSign = readerMode === 'WARTUNGSPUNKT'\n\n    // Aeppic.setInterval(() => {\n    //   this._updateMinutesUntilTimeout()\n    // }, 1000 * 60 * 3)\n\n    // this._updateMinutesUntilTimeout()\n\n    Aeppic.watchAll(data.workItems, (tasks) => {\n      this._onNewTasks(tasks)\n    })\n\n    this._onNewTasks(await Aeppic.getAll(data.workItems))\n  }\n\n  _onNewTasks(tasks) {\n    locals.tasks = tasks.filter(task => task?.data.inactive !== true)\n    this._updateCanSign()\n  }\n\n  // _updateMinutesUntilTimeout() {\n  //   // TODO: return human readable\n  //   const timeLeft = this.timeoutAt.diffNow('minutes')\n  //   const minutesLeft = timeLeft.toObject().minutes\n\n  //   locals.minutesUntilTimeout = minutesLeft\n\n  //   if (minutesLeft < 60) {\n  //     locals.timeUntilTimeout = `${minutesLeft} Minuten`\n  //   } else {\n  //     locals.timeUntilTimeout = `${Math.floor(timeLeft.as('hours'))} Stunden`\n  //   }\n  // }\n\n  async resetWork() {\n    if (!params.readonly) {\n      console.log('skipping resetWork because readonly')\n      return\n    }\n\n    const editables = await Aeppic.editAll(data.workItems)\n\n    editables.forEach((e) => (e.data.status = 'TODO'))\n\n    Aeppic.saveAll(editables)\n\n    Aeppic.navigateTo(document.p)\n  }\n\n  get isSigned() {\n    return !!data.signature.dataUrl\n  }\n\n  _updateCanSign() {\n    if (!locals.mustSign) {\n      return false\n    }\n\n    if (this.isSigned) {\n      locals.canSign = false\n      return\n    }\n\n    locals.canSign = this.allTasksDone\n  }\n\n  get isComplete() {\n    if (locals.mustSign) {\n      return this.isSigned\n    }\n\n    return this.allTasksDone\n  }\n\n  get allTasksDone() {\n    const allTasksDone = locals.tasks.every((task) => {\n      if (task.data.inactive === true) {\n        return true\n      }\n\n      const taskNotBegunYet = task.data.status === 'TODO'\n\n      if (taskNotBegunYet) {\n        return false\n      }\n\n      if ((task.data.status === 'FAULTY' || task.data.requireComment) && !task.data.comment) {\n        return false\n      }\n\n      return true\n    })\n\n    return allTasksDone\n  }\n\n  async executeCommand(commandId) {\n    const result = await Aeppic.Commands.execute(commandId, document, {}, { navigation: false })\n\n    if (Aeppic.Account?.data.isAdmin) {\n      packages.window.confirm(`[ADMIN only] Ergebnis der Wartungs-Beendung: ${result.value?.checkResultReadable}`)\n    }\n\n    if (!result.ok) {\n      locals.error = 'Es ist ein Fehler bei der Beendigung der Wartung aufgetreten.'\n      return\n    }\n\n    Aeppic.navigateTo(document.p)\n  }\n}\n","css":"","description":"","name":"rd:page--worker","packages":[{"id":"10843fbf-4f0c-416b-be7d-42d6bbd0ae68","text":"Window","v":"d4ce6dec568c3dc1"}],"template":"<div class=\"p-4\">\n  <section class=\"mb-2\">\n    <div class=\"text-3xl\">\n      {{ data.name }}\n    </div>\n  </section>\n\n  <!-- <section class=\"mb-6\" v-if=\"data.fabrikat || data.typ\">\n      <span class=\"text-1xl font-bold\">\n        {{ data.typ }}\n      </span>\n      <span class=\"text-sm\">{{ data.fabrikat }}</span>\n  </section> -->\n\n  <section class=\"mb-6\">\n    <div v-if=\"locals.wartungsteil\">\n      {{ locals.wartungsteil.f.text }}\n      <span class=\"text-1xl font-bold\">\n        {{ locals.wartungsteil.data.name }}\n      </span>\n\n      <ae-design class=\"text-sm font-mono\" name=\"title\" :document=\"locals.anlage\"></ae-design>\n      <ae-design class=\"text-sm font-mono\" name=\"rd:location-title\" :document=\"locals.anlage\"></ae-design>\n      <ae-design class=\"text-sm font-mono\" name=\"rd:location-address\" :document=\"locals.anlage\"></ae-design>\n    </div>\n  </section>\n\n  <section class=\"mb-6\" v-if=\"data.kommentar\">\n      <div class=\"border rounded-lg bg-white p-4\">\n        {{ data.kommentar }}\n      </div>\n  </section>\n\n\n  <section class=\"mb-8\">\n    <ae-list  v-if=\"locals.wartungsteil\"\n              list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\"\n              :documents=\"locals.tasks\"\n              param-design=\"rd:work\"\n              :param-divide=\"true\"\n              param-gap=\"medium\"\n              :param-design-params=\"{ readonly: controller.isSigned || params.readonly }\"\n    ></ae-list>\n  </section>\n\n  <section class=\"my-12\">\n    <ae-form :document=\"document\" :view=\"locals.toolsView\" layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\" :auto-save=\"true\" :auto-save-after=\"1000\" :readonly=\"params.readonly || controller.isSigned\"></ae-form>\n  </section>\n\n  <section v-if=\"!controller.isSigned && locals.canSign\" class=\"my-12\">\n    <ae-form :document=\"document\" :view=\"locals.signingView\" layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\" :auto-save=\"true\" :readonly=\"params.readonly\"></ae-form>\n  </section>\n\n  <section v-if=\"controller.isSigned\" class=\"my-12\">\n    <div class=\"mb-2 font-bold\">\n      Ihre Unterschrift\n    </div>\n\n    <img class=\"w-[200px]\" v-if=\"data.signature.dataUrl\" :src=\"Aeppic.Content.getSrc(document, 'signature')\">\n  </section>\n\n  <section v-if=\"!locals.isComplete && !controller.isSigned\" class=\"mb-6\">\n    <div class=\"flex flex-col gap-6\">\n      <span>\n        Es müssen <strong>alle</strong> Arbeiten durchgeführt werden.\n      </span>\n      <span>\n        Sollte ein <strong>Mangel</strong> festgestellt werden dann von <span class=\"italic text-success\">In Ordnung</span> auf <span class=\"italic text-error\">Mangel</span> stellen und diesen <strong>dokumentieren</strong>.\n      </span>\n    </div>\n  </section>\n\n  <!-- <section class=\"my-4 flex gap-2 items-center\">\n    <ae-icon class=\"far fa-info-circle text-2xl\"></ae-icon>\n    <div>\n      <span>\n        In \n      </span>\n      <span :class=\"{ 'font-bold text-error': locals.minutesUntilTimeout <= 15 }\">\n        {{ locals.timeUntilTimeout }}\n      </span>\n      <span>\n        werden alle Arbeitsschritte zurückgesetzt, sollten die Arbeiten nicht bis dahin durchgeführt worden sein\n      </span>\n    </div>\n  </section>  -->\n  \n  <ae-layout  layout-id=\"a2cd7699-9b46-494f-8f89-cb1f62151d82\"\n              :param-text=\"controller.isComplete ? 'Wartungspunkt beenden' : 'Wartungspunkt abbrechen'\"\n              :param-icon=\"controller.isComplete ? 'fa fa-check' : 'fa fa-times'\"\n              @selected=\"controller.executeCommand('2cd967a6-b574-4e10-86e0-3b018d623407')\"\n              @xselected=\"controller.executeCommand('ab933910-ca88-4533-bd6a-52d00a4b3acf')\"\n              class=\"w-full\"\n              param-classes=\"w-full\"\n              :param-disabled=\"params.readonly\"\n  ></ae-layout>\n\n  <div v-if=\"locals.error\" class=\"text-error-500 my-4\">\n    {{ locals.error}}\n  </div>\n\n\n  <section v-if=\"Aeppic.Account && Aeppic.Account.data.isAdmin\" class=\"mt-6 flex\">\n    <ae-layout  layout-id=\"a2cd7699-9b46-494f-8f89-cb1f62151d82\"\n                param-text=\"[ADMIN only] Recheck durchführen\"\n                @selected=\"controller.executeCommand('2cd967a6-b574-4e10-86e0-3b018d623407')\"\n                :xparam-disabled=\"params.readonly\"\n    ></ae-layout>\n  </section>\n</div>\n\n"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"2fb976d9-c20c-478b-83f3-bb156037139f","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-03-25T14:02:57+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"p":"aa947792-4f31-40c9-9a6a-e1ad71697911","previous":{"v":"4b09db0acd480731"},"stamps":[],"t":1774447377718,"v":"b2d651db61b9ecb7"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","02132d06-c73b-4101-bde0-2fe98224a35a"],"a_depth":3,"a_forms":["folder","application-form","design-folder"],"created":{"at":"2025-11-11T12:00:09+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1762862409560,"data":{"aliases":[],"controller":"class Controller {\n  init() {\n    this.FORMS = {\n      Arbeit: '8c113cd0-af90-42fa-aa05-f67809d0a9a5',\n      Wartungspunkt: 'aa947792-4f31-40c9-9a6a-e1ad71697911',\n    }\n  }\n\n  back() {\n    const parentForm = document.a_forms.slice(-1)[0]\n\n    if (parentForm === this.FORMS.Arbeit) {\n      Aeppic.navigateTo(document.a[document.a_forms.findIndex(aForm => aForm === this.FORMS.Wartungspunkt)])\n      return\n    }\n\n    Aeppic.navigateTo(document.p)\n  }\n}","css":"","description":"","name":"rd:page--worker","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<div class=\"flex flex-col\">\n  <ae-form layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\" :document=\"document\" :auto-save=\"true\" :auto-save-after=\"1000\"></ae-form>\n\n  <ae-layout  layout-id=\"f6bdd129-3852-4bac-9375-559b929486bc\"\n              param-text=\"Zurück zur Wartung\"\n              @selected=\"controller.back()\"\n              :param-disabled=\"params.readonly\"\n              class=\"self-center mt-8\"\n  ></ae-layout>\n</div>"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"3f40b239-ef0e-4ab6-8470-5c2a24a91e0e","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2025-11-11T12:21:27+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"02132d06-c73b-4101-bde0-2fe98224a35a","previous":{"v":"initial"},"stamps":[],"t":1762863687145,"v":"6aea9ada7ee562dd"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","31e6efab-61df-4b91-8250-3bfcfd491c6c"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"6101bd5c-a239-404b-ab87-c170bc706ae6","text":"rd:page--worker","v":"58dce9a07c31e1fd"},"created":{"at":"2026-01-27T11:27:17+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"ct":1769513237109,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Aggregat: '31e6efab-61df-4b91-8250-3bfcfd491c6c',\n    }\n  }\n}\n","css":"","description":"","name":"rd:page--worker","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<ae-design \n  name=\"rd:page-building-part--worker\" \n  :document=\"document\" \n  class=\"h-full\"\n></ae-design>\n"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"4158310b-8082-4b84-8fa9-386dd619c68b","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-02-18T09:35:35+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"6101bd5c-a239-404b-ab87-c170bc706ae6","text":"rd:page--worker","v":"58dce9a07c31e1fd"},"p":"31e6efab-61df-4b91-8250-3bfcfd491c6c","previous":{"v":"3027e44bfb4c8055"},"stamps":[],"t":1771407335415,"v":"15e47dda2d2a2583"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","347d38c6-0bce-47ce-b271-9f924c56ac49"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2025-08-05T11:09:17+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1754394980178,"data":{"aliases":[],"controller":"class Controller {\n  init() {\n    this.FORMS = {\n      Anmeldung: '941d2b8f-5694-4054-8c99-c51ad62f6c2f',\n    }\n  }\n\n  async backToHome() {\n    const result = await Aeppic.Commands.execute('5bfd4597-633e-4e2a-b35e-b1a1d3cd8188', document.id)\n\n    if (!result.ok) {\n      console.error(result)\n      return\n    }\n\n    const anmeldung = await Aeppic.findOne(`p:${document.a[0]} f.id:${this.FORMS.Anmeldung}`)\n\n    Aeppic.navigateTo(anmeldung)\n  }\n\n  async checkBarcode(barcode) {\n    const result = await Aeppic.Commands.execute('b503ae51-6b05-4daf-9f1f-e42030e67c8f', document.id, { barcode: barcode })\n\n    console.log(result)\n    \n    if (result.value)  {\n      Aeppic.navigateTo(result.value)\n    }\n  }\n}","css":"","description":"","name":"rd:page--worker","packages":[],"template":"<div class=\"p-4 flex flex-col\">\n  <section class=\"self-center w-full max-w-[400px] mb-4\">\n    <ae-layout\n      class=\"w-full\"\n      layout-id=\"cb92d818-e25d-43ff-8c41-5b6e6a58a7bd\"\n      @code=\"controller.checkBarcode($event)\"\n      :param-readonly=\"params.readonly\"\n      :param-document=\"document\"\n      param-preference-key=\"keeptrack:settings:siteReaderMode\"\n    ></ae-layout>\n  </section>\n\n  <section class=\"my-4 rounded-lg bg-white p-2 border border-slate-200 flex flex-col\">\n    <ae-design name=\"rd:object\" :document=\"document\"></ae-design>\n    <ae-design name=\"rd:location\" :document=\"document\"></ae-design>\n  </section>\n\n  <section v-if=\"data.status === 'STARTED'\" class=\"mt-4 rounded-lg bg-white p-2 border border-slate-200 flex flex-col\">\n    <div class=\"font-bold mb-2\">\n      Diese Wartung wurde begonnen. Bitte führen Sie an allen Anlagen die vorgesehenden Wartungen durch.\n    </div>\n  </section>\n\n  <section v-if=\"data.status === 'CANCELED'\" class=\"mt-4 rounded-lg bg-white p-2 border border-slate-200 flex flex-col\">\n    <div class=\"font-bold mb-2\">Diese Wartung wurde abgebrochen.</div>\n    <div class=\"text-sm\">\n      Sie können mit der Wartung fortfahren.\n    </div>\n  </section>\n\n  <section v-if=\"data.status === 'COMPLETED'\" class=\"mt-4 rounded-lg bg-white p-2 border border-slate-200 flex flex-col\">\n    <div class=\"font-bold mb-2\">Diese Wartung wurde abgeschlossen.</div>\n    <div class=\"text-sm\">\n      Diese Wartung muss nun vom Betreiber zur Kenntnis genommen werden, bevor eine neue Wartung durchgeführt werden\n      kann.\n    </div>\n  </section>\n\n  <section v-if=\"data.status === 'ACKNOWLEDGED'\" class=\"mt-4 rounded-lg bg-white p-2 border border-slate-200 flex flex-col\">\n    <div class=\"font-bold mb-2\">Diese Wartung wurde zur Kenntnis genommen.</div>\n  </section>\n\n  <section>\n    <ae-list\n      list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\"\n      :documents=\"data.parts\"\n      param-empty-text=\"Keine weiteren Wartungsteile\"\n      param-design=\"rd:maintenance-card\"\n      :param-design-params=\"{ readonly: params.readonly }\"\n    ></ae-list>\n  </section>\n\n\n  <ae-layout\n    class=\"w-full mt-6\"\n    layout-id=\"a2cd7699-9b46-494f-8f89-cb1f62151d82\"\n    param-text=\"Zurück zur Startseite\"\n    @selected=\"controller.backToHome()\"\n    param-classes=\"w-full\"\n    :param-disabled=\"params.readonly\"\n  ></ae-layout>\n\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"41bd0eb7-c83f-4b7b-a93e-22ba5b3c82f7","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-12-16T10:47:37+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"p":"347d38c6-0bce-47ce-b271-9f924c56ac49","previous":{"v":"32c97cfe1f0ccf64"},"stamps":[],"t":1765882057325,"v":"0ac7444a8970dfe6"},{"id":"604cee13-0395-4e5c-b589-223d041573c6","v":"e706936aa645face","cloneOf":{"id":"04825ee7-59bd-454e-98ef-8c88c88d9a43","v":"b89a75c8587c18c1","text":"page--worker"},"originalCloneOf":{"id":"04825ee7-59bd-454e-98ef-8c88c88d9a43","v":"b89a75c8587c18c1","text":"page--worker"},"previous":{"v":"initial"},"p":"816b2d0e-5158-4f0c-a5cf-6069bb76de69","f":{"id":"design-form","v":"3385ac6766f32638","text":"Design"},"data":{"name":"rd:page--worker","template":"<div class=\"p-4\">\n  <section class=\"mb-2\">\n    <div class=\"text-3xl\">\n      <ae-design name=\"styled-title\" :document-id=\"data.eintrag.id\"></ae-design>\n    </div>\n  </section>\n\n  <section class=\"mb-6\" v-if=\"data.fabrikat || data.typ\">\n      <span class=\"text-1xl font-bold\">\n        {{ data.typ }}\n      </span>\n      <span class=\"text-sm\">{{ data.fabrikat }}</span>\n  </section>\n\n  <section class=\"mb-6\">\n    <div v-if=\"locals.anlage\">\n      <span class=\"text-1xl font-bold\">\n        Anlage\n        {{ locals.anlage.data.nummer }}\n        {{ locals.anlage.data.name }}\n      </span>\n      <span class=\"text-sm\">{{ locals.anlage.data.fabrikat }}</span>\n    </div>\n  </section>\n\n  <section class=\"mb-6\" v-if=\"data.kommentar\">\n      <div class=\"border rounded-lg bg-white p-4\">\n        {{ data.kommentar }}\n      </div>\n  </section>\n\n\n  <section class=\"mb-8\">\n    <ae-list  v-if=\"locals.anlage\"\n              list-id=\"2e798091-303f-406b-a42a-93aa1cd8425c\"\n              :documents=\"data.arbeiten\"\n              param-design=\"work\"\n              :param-design-params=\"{ readonly: controller.isSigned || params.readonly }\"\n    ></ae-list>\n  </section>\n\n  <section v-if=\"!controller.isSigned && locals.canSign\" class=\"my-12\">\n    <ae-form :document=\"document\" :view=\"locals.signingView\" layout-id=\"6c39f2cc-6059-42b2-8796-5c803899367c\" :auto-save=\"true\"></ae-form>\n  </section>\n\n  <section v-if=\"controller.isSigned\" class=\"my-12\">\n    <div class=\"mb-2 font-bold\">\n      Ihre Unterschrift\n    </div>\n\n    <img class=\"w-[200px]\" v-if=\"data.unterschrift.dataUrl\" :src=\"Aeppic.Content.getSrc(document, 'unterschrift')\">\n  </section>\n\n  <section v-if=\"!locals.isComplete && !controller.isSigned\" class=\"mb-6\">\n    <div class=\"flex flex-col gap-6\">\n      <span>\n        Es müssen <strong>alle</strong> Arbeiten durchgeführt werden.\n      </span>\n      <span>\n        Sollte ein <strong>Mangel</strong> festgestellt werden dann von <span class=\"italic text-success\">In Ordnung</span> auf <span class=\"italic text-error\">Mangel</span> stellen und diesen <strong>dokumentieren</strong>.\n      </span>\n    </div>\n  </section>\n\n  <section class=\"my-4 flex gap-2 items-center\">\n    <ae-icon class=\"far fa-info-circle text-2xl\"></ae-icon>\n    <div>\n      <span>\n        In \n      </span>\n      <span :class=\"{ 'font-bold text-error': locals.minutesUntilTimeout <= 15 }\">\n        {{ locals.timeUntilTimeout }}\n      </span>\n      <span>\n        werden alle Arbeitsschritte zurückgesetzt, sollten die Arbeiten nicht bis dahin durchgeführt worden sein\n      </span>\n    </div>\n  </section>\n  \n  <ae-layout  layout-id=\"a2cd7699-9b46-494f-8f89-cb1f62151d82\"\n              :param-text=\"controller.isComplete ? 'Wartung beenden' : 'Wartung abbrechen'\"\n              :param-icon=\"controller.isComplete ? 'fa fa-check' : 'fa fa-times'\"\n              @selected=\"controller.executeCommand('80d31801-01df-4977-b96a-4ea2543fbea0')\"\n              class=\"w-full\"\n              param-classes=\"w-full\"\n              :param-disabled=\"params.readonly\"\n  ></ae-layout>\n\n  <section v-if=\"Aeppic.Account && Aeppic.Account.data.isAdmin\" class=\"mt-6 flex\">\n    <ae-layout  layout-id=\"a2cd7699-9b46-494f-8f89-cb1f62151d82\"\n                param-text=\"[ADMIN only] Recheck durchführen\"\n                @selected=\"controller.executeCommand('80d31801-01df-4977-b96a-4ea2543fbea0')\"\n                :param-disabled=\"params.readonly\"\n    ></ae-layout>\n  </section>\n</div>\n\n","css":"","controller":"class Controller {\n  async init() {\n    const WORK_RESET_AFTER_SECONDS = 60 * 60 * 3\n    this.timeoutAt = Aeppic.DateTime.local().plus({ seconds: WORK_RESET_AFTER_SECONDS })\n\n    Aeppic.setTimeout(() => this.resetWork(), WORK_RESET_AFTER_SECONDS * 1000)\n \n    locals.timeUntilTimeout = ''\n    locals.minutesUntilTimeout = null\n    locals.canSign = false\n    locals.mustSign = false\n    locals.tasks = [] \n\n    locals.signingView = {\n      only: {\n        fields: ['unterschrift']\n      }\n    }\n\n    locals.anlage = null\n    locals.anlage = await Aeppic.get(document.p)\n\n    const readerMode =  await Aeppic.Preferences.getSettingForDocument('keeptrack:settings:signatureMode', document)\n    locals.mustSign = readerMode === 'WARTUNGSPUNKT'\n\n    Aeppic.setInterval(() => {\n      this._updateMinutesUntilTimeout()\n    }, 1000 * 60 * 3)\n\n    this._updateMinutesUntilTimeout()\n \n    Aeppic.watchAll(data.arbeiten, (tasks) => {\n      locals.tasks = tasks\n      this._updateCanSign()\n    })\n  }\n\n  _updateMinutesUntilTimeout() {\n    // TODO: return human readable\n    const timeLeft = this.timeoutAt.diffNow('minutes')\n    const minutesLeft = timeLeft.toObject().minutes \n\n    locals.minutesUntilTimeout = minutesLeft\n\n    if (minutesLeft < 60) {\n      locals.timeUntilTimeout = `${minutesLeft} Minuten`\n    } else {\n      locals.timeUntilTimeout = `${Math.floor(timeLeft.as('hours'))} Stunden`\n    }\n  }\n\n  async resetWork() {\n    if (!params.readonly) {\n      console.log('skipping resetWork because readonly')\n      return\n    }\n\n    const editables = await Aeppic.editAll(data.arbeiten)\n\n    editables.forEach(e => e.data.io = 0)\n\n    Aeppic.saveAll(editables)\n\n    Aeppic.navigateTo(document.p)\n  }\n\n  get isSigned() {\n    return !!data.unterschrift.dataUrl\n  }\n\n  _updateCanSign() {\n    if (!locals.mustSign) {\n      return false\n    }\n\n    if (this.isSigned) {\n      locals.canSign = false\n      return\n    }\n\n    locals.canSign = this.allTasksDone\n  }\n\n  get isComplete() { \n    if (locals.mustSign) {\n      return this.isSigned\n    }\n\n    return this.allTasksDone\n  }\n\n  get allTasksDone() {\n    const allTasksDone = locals.tasks.every(task => { \n      const taskNotBegunYet = task.data.io <= 0\n\n      if (taskNotBegunYet) {\n        return false\n      }\n\n      if ((task.data.io === 1 || task.data.bemerkungenPflicht) && !task.data.bemerkungen) {\n        return false\n      }\n\n      return true      \n    })\n\n    return allTasksDone\n  }\n\n  async executeCommand(commandId) {\n    const result = await Aeppic.Commands.execute(commandId, document, {}, { navigation: true })\n\n    console.log(result)\n\n    if (Aeppic.Account?.data.isAdmin) {\n      packages.window.confirm(`Ergebnis der Wartungs-Beendung: ${result.value?.checkResultReadable}`)\n    }\n\n    Aeppic.navigateTo(document.p)\n  }\n}\n","packages":[{"id":"10843fbf-4f0c-416b-be7d-42d6bbd0ae68","v":"d4ce6dec568c3dc1","text":"Window"}],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-05-23T09:58:39+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-05-23T09:59:02+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1716458342707,"ct":1716458319836,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","816b2d0e-5158-4f0c-a5cf-6069bb76de69"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","33e3b54d-6b4b-4aa3-8f70-2b834b27bf66"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"4158310b-8082-4b84-8fa9-386dd619c68b","text":"rd:page--worker","v":"15e47dda2d2a2583"},"created":{"at":"2026-02-18T11:29:30+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"ct":1771414170767,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Aggregat: '31e6efab-61df-4b91-8250-3bfcfd491c6c',\n    }\n  }\n}\n","css":"","description":"","name":"rd:page--worker","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<ae-design \n  name=\"rd:page-building-part--worker\" \n  :document=\"document\" \n  class=\"h-full\"\n></ae-design>\n"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"606b8ac8-07fa-4fb1-9c92-b80a2a99db2c","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-02-18T11:29:30+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"4158310b-8082-4b84-8fa9-386dd619c68b","text":"rd:page--worker","v":"15e47dda2d2a2583"},"p":"33e3b54d-6b4b-4aa3-8f70-2b834b27bf66","stamps":[],"t":1771414170767,"v":"initial"},{"id":"8889f3a0-c109-45a2-9e87-0ca14998168a","v":"76ed8d5686738105","cloneOf":{"id":"515cb999-dd42-4358-9368-8c972bd04882","v":"274a1fb75be46aae","text":"page--worker"},"originalCloneOf":{"id":"515cb999-dd42-4358-9368-8c972bd04882","v":"274a1fb75be46aae","text":"page--worker"},"previous":{"v":"initial"},"p":"5150f703-e93a-4e54-a998-a06c0e962e71","f":{"id":"design-form","v":"3385ac6766f32638","text":"Design"},"data":{"name":"rd:page--worker","template":"<div class=\"p-4\">\n  <section class=\"flex flex-wrap items-center justify-between mb-2\">\n    <div>\n      <div class=\"text-3xl\">{{ data.name }}</div>\n    </div>\n\n    <div class=\"ml-auto flex flex-col items-end\"> \n      <span>{{ document.data.nummer }} {{ document.data.raum }}</span>\n      \n      <span class=\"font-mono\">{{ document.data.fabrikat }}</span>\n    </div>\n  </section>\n  \n  <section v-if=\"locals.offeneAnlagenteile.length\" class=\"mb-6\" > \n    <div class=\"ml-1 text-2xl mb-4 underline decoration-solid decoration-theme-400\">Nächster Wartungspunkt</div>\n    <div xclass=\"ml-4\">\n      <ae-design name=\"next,list,title\" :document=\"locals.offeneAnlagenteile[0]\" :param-readonly=\"params.readonly\"></ae-design>\n    </div>\n  </section>\n\n  <section xv-if=\"!data.unterschrift.dataUrl\" class=\"mb-6\">\n    <div class=\"ml-1 text-2xl mb-4 underline decoration-solid decoration-theme-400\">Übersicht aller Wartungspunkte</div>\n    <ae-list  class=\"ml-4\" \n              list-id=\"2e798091-303f-406b-a42a-93aa1cd8425c\" \n              :documents=\"locals.anlagenteile\"\n              param-design=\"list,title\" \n              xparam-title-text=\"Übersicht aller Wartungspunkte\"\n              :param-design-params=\"{ activeDocument: locals.offeneAnlagenteile[0] }\"\n    ></ae-list>\n  </section>\n\n  <section v-if=\"!controller.isSigned && controller.canSign\" class=\"my-12\">\n      <ae-form :document=\"document\" :view=\"locals.signingView\" layout-id=\"6c39f2cc-6059-42b2-8796-5c803899367c\" :auto-save=\"true\"></ae-form>\n  </section>\n\n  <section class=\"my-12\" v-if=\"controller.isSigned\">\n    <div class=\"mb-2 font-bold\">\n      Ihre Unterschrift\n    </div>\n\n    <img class=\"w-[200px]\" v-if=\"data.unterschrift.dataUrl\" :src=\"Aeppic.Content.getSrc(document, 'unterschrift')\">\n  </section>\n\n  <section class=\"mt-12\">\n    <ae-layout  layout-id=\"a2cd7699-9b46-494f-8f89-cb1f62151d82\"\n                :param-text=\"controller.isComplete && controller.signatureMissing ? 'Unterschrift erforderlich' : 'Zurück zur Anlagenübersicht'\"\n                @selected=\"Aeppic.navigateTo(document.a[document.a_forms.findIndex(aForm => aForm === 'c211ffaa-14f8-4439-9126-f42f65ac4424')])\"\n                param-classes=\"w-full\"\n                :param-disabled=\"params.readonly || (controller.isComplete && controller.signatureMissing)\"\n    ></ae-layout> \n  </section>\n</div>\n","css":"","controller":"class Controller {\n  async init() {\n    locals.signingView = {\n      only: {\n        fields: ['unterschrift']\n      }\n    }\n    \n    locals.mustSign = false\n\n    locals.anlagenteile = []\n    locals.offeneAnlagenteile = []\n\n    // locals.offeneAnlagenteile = await Aeppic.query('0445a735-8ad3-45f8-a951-f07aaca2964a', document)\n\n    Aeppic.watch(document, async (doc) => await this.updateAnlagenteile(doc))\n\n    await this.updateAnlagenteile(document)\n    \n    const readerMode =  await Aeppic.Preferences.getSettingForDocument('keeptrack:settings:signatureMode', document)\n    locals.mustSign = readerMode === 'ANLAGE'\n  }\n\n  async updateAnlagenteile(doc) {\n     locals.anlagenteile = Aeppic.sort(\n        await Aeppic.getAll(doc.data.anlagenteile),\n        { field: 'data.LfNr' }\n      ) \n\n\n      locals.offeneAnlagenteile = locals.anlagenteile.filter(teil => teil.data.ergebnis <= 1 || teil.data.ergebnis === 4)\n  }\n\n  get isComplete() {\n    return locals.offeneAnlagenteile.length === 0\n  }\n\n  get canSign() {\n    return locals.mustSign && this.isComplete\n  }\n\n  get isSigned() {\n    return data.unterschrift.dataUrl\n  }\n\n  get signatureMissing() {\n    return locals.mustSign && !this.isSigned\n  }\n} \n  ","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-05-23T09:59:54+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-05-23T10:00:16+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1716458416695,"ct":1716458394394,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","5150f703-e93a-4e54-a998-a06c0e962e71"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","093f533e-9758-479c-97bc-8e4ba7dc3c2d"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"4158310b-8082-4b84-8fa9-386dd619c68b","text":"rd:page--worker","v":"15e47dda2d2a2583"},"created":{"at":"2026-02-18T11:29:45+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"ct":1771414185152,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Aggregat: '31e6efab-61df-4b91-8250-3bfcfd491c6c',\n    }\n  }\n}\n","css":"","description":"","name":"rd:page--worker","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<ae-design \n  name=\"rd:page-building-part--worker\" \n  :document=\"document\" \n  class=\"h-full\"\n></ae-design>\n"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"bf0036f7-258d-4182-b119-51fac2722931","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-02-18T11:29:45+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"4158310b-8082-4b84-8fa9-386dd619c68b","text":"rd:page--worker","v":"15e47dda2d2a2583"},"p":"093f533e-9758-479c-97bc-8e4ba7dc3c2d","stamps":[],"t":1771414185152,"v":"initial"},{"id":"bf943118-d5c1-4d4e-b0f0-11619e09a7c2","v":"9af831741ea07f69","previous":{"v":"1583567ab5f6fbd1"},"p":"522ca40d-810b-4021-835f-beeace3af7fa","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page--worker","template":"","css":"","controller":"init() {\n  Aeppic.navigateTo(document.p)\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-05-23T09:57:18+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-05-23T09:57:27+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1716458247447,"ct":1716458243274,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","522ca40d-810b-4021-835f-beeace3af7fa"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","c6931d87-a1f3-4b34-bc1b-3f0bfe7398f8"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"085a9bd9-963c-49fc-8497-20ba430ab6da","text":"rd:page--worker","v":"f3def36e67010c7d"},"created":{"at":"2026-01-27T09:39:04+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"ct":1769506744242,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Areal: '5f4a87a7-5557-4004-bfdc-2fb26c71e0c9',\n      Building: '5a4fafb4-3c2b-4826-8a85-7c804ee4ac52',\n      BuildingPart: '1e3214b4-b81e-4ac2-a788-c2051af016ab',\n      TechnicalPlace: '093f533e-9758-479c-97bc-8e4ba7dc3c2d',\n      Facility: '33e3b54d-6b4b-4aa3-8f70-2b834b27bf66',\n      Aggregate: '31e6efab-61df-4b91-8250-3bfcfd491c6c',\n      Team: 'aa49f5c2-0502-4b7e-8ffd-4ac90427420e',\n    }\n\n    this.SessionStorageKey = `design:${design.id}`\n    this.Steps = [\n      'team', \n      'area', \n      'building', \n      'buildingPart', \n      'technicalPlace', \n      'facility', \n      'aggregate', \n      'last'\n    ]\n\n    this.PICKER_CONFIG = {\n      team: { title: 'Teams', emptyText: 'Keine Teams gefunden', selected: true },\n      area: { title: 'Areale', emptyText: 'Keine Areale gefunden', selected: true },\n      building: { title: 'Gebäude', emptyText: 'Keine Gebäude gefunden', selected: true },\n      buildingPart: { title: 'Gebäudeteile', emptyText: 'Keine Gebäudeteile gefunden', selected: false, edit: true },\n      technicalPlace: {\n        title: 'Technische Plätze',\n        emptyText: 'Keine Technischen Plätze gefunden',\n        selected: true,\n        edit: true,\n      },\n      facility: { title: 'Anlagen', emptyText: 'Keine Anlagen gefunden', selected: true, edit: true },\n      aggregate: { title: 'Aggregate', emptyText: 'Keine Aggregate gefunden', selected: true, edit: true },\n    }\n\n    locals.ready = false\n    locals.breadcrumbs = []\n    locals.myTeam = null\n\n    if (Aeppic.Account?.data.isAdmin) {\n      locals.myTeam = await Aeppic.findOne(`a:${document.a[0]} f.id:${this.FORMS.Team} data.type:INTERNAL`)\n    } else {\n      locals.myTeam = await Aeppic.findOne(`a:${document.a[0]} f.id:${this.FORMS.Team} data.type:INTERNAL data.employee.id:${Aeppic.ProfilePage.id}`)\n    }\n\n    locals.breadcrumbs = await this._restoreNavigation()\n    if (locals.breadcrumbs.length === 0) {\n      locals.breadcrumbs.push({\n        type: 'team',\n        options: [],\n        selected: null,\n      })\n    }\n\n    locals.ready = true\n  }\n\n  async select(item, nextType) {\n    const currentStep = locals.breadcrumbs[locals.breadcrumbs.length - 1]\n    currentStep.selected = item\n\n    if (nextType) {\n      let options = await this._loadOptionsForType(nextType, item)\n\n      locals.breadcrumbs.push({\n        type: nextType,\n        options: options,\n        selected: null,\n      })\n    } else {\n    }\n\n    this._persistNavigation()\n  }\n\n  async _loadOptionsForType(type, parentItem) {\n    switch (type) {\n      case 'area':\n        return await Aeppic.find(Aeppic.Query.descendants(document.a[0]).form(this.FORMS.Areal), { size: 999 })\n      case 'building':\n        return await Aeppic.find(Aeppic.Query.children(parentItem).form(this.FORMS.Building), { size: 999 })\n      case 'buildingPart':\n        return await Aeppic.find(Aeppic.Query.children(parentItem).form(this.FORMS.BuildingPart), { size: 999 })\n      case 'technicalPlace':\n        return await Aeppic.find(Aeppic.Query.children(parentItem).form(this.FORMS.TechnicalPlace), { size: 999 })\n      case 'facility':\n        return await Aeppic.find(Aeppic.Query.children(parentItem).form(this.FORMS.Facility), { size: 999 })\n      case 'aggregate':\n        return await Aeppic.find(Aeppic.Query.children(parentItem).form(this.FORMS.Aggregate), { size: 999 })\n      case 'last':\n        return []\n      default:\n        return []\n    }\n  }\n\n  reset() {\n    const firstStep = locals.breadcrumbs[0]\n    firstStep.selected = null\n    locals.breadcrumbs = [firstStep]\n    this._persistNavigation()\n  }\n\n  goBack() {\n    if (locals.breadcrumbs.length > 1) {\n      locals.breadcrumbs.pop()\n      locals.breadcrumbs[locals.breadcrumbs.length - 1].selected = null\n    }\n    this._persistNavigation()\n  }\n\n  get currentStep() {\n    return locals.breadcrumbs[locals.breadcrumbs.length - 1]\n  }\n\n  getBreadcrumbConfig(index) {\n    const editableIndices = [\n      // 3,\n      4, 5, 6] // technicalPlace, facility, aggregate\n\n    return {\n      readonly: params.readonly,\n      showSelectedButton: false,\n      showEditButton: editableIndices.includes(index),\n      showCloneButton: false,\n      showDeleteButton: false,\n    }\n  }\n\n  jumpToStep(index) {\n    locals.breadcrumbs = locals.breadcrumbs.slice(0, index + 1)\n    locals.breadcrumbs[index].selected = null\n\n    this._persistNavigation()\n  }\n\n  _persistNavigation() {\n    const dataToStore = locals.breadcrumbs.map((step) => ({\n      type: step.type,\n      selectedId: step.selected?.id || null,\n    }))\n    Aeppic.SessionStorage.setValue(this.SessionStorageKey, dataToStore)\n  }\n\n  async _restoreNavigation() {\n    const storedData = Aeppic.SessionStorage.getValue(this.SessionStorageKey)\n    if (!storedData || !Array.isArray(storedData)) return []\n\n    try {\n      const newBreadcrumbs = []\n\n      for (const [i, item] of storedData.entries()) {\n        let options = []\n        let selectedDoc = null\n\n        const prevStep = newBreadcrumbs[i - 1]\n        if (!prevStep?.selected) {\n          break\n        }\n        options = await this._loadOptionsForType(item.type, prevStep.selected)\n\n        if (item.selectedId) {\n          selectedDoc = await Aeppic.get(item.selectedId)\n\n          if (!selectedDoc) {\n            newBreadcrumbs.push({ type: item.type, options, selected: null })\n            break\n          }\n        }\n\n        newBreadcrumbs.push({\n          type: item.type,\n          options: options,\n          selected: selectedDoc,\n        })\n\n        if (!selectedDoc) {\n          break\n        }\n      }\n\n      return newBreadcrumbs\n    } catch (e) {\n      console.error('Navigation Restore failed', e)\n      return []\n    }\n  }\n\n  getNextType(type) {\n    const index = this.Steps.indexOf(type)\n    return index !== -1 ? this.Steps[index + 1] : null\n  }\n\n  editDocument(item) {\n    console.log('Editing item:', item)\n    Aeppic.drillInto(item)\n  }\n\n  getStepConfig(type) {\n    return (\n      this.PICKER_CONFIG[type] || {\n        title: type,\n        emptyText: '...',\n        selected: false,\n        edit: false,\n        clone: false,\n        delete: false,\n      }\n    )\n  }\n\n  getDesignParams(type) {\n    const config = this.getStepConfig(type)\n    return {\n      readonly: params.readonly,\n      showSelectedButton: !!config.selected,\n      showEditButton: !!config.edit,\n      showCloneButton: !!config.clone,\n      showDeleteButton: !!config.delete,\n    }\n  }\n}\n","css":"","description":"","name":"rd:page--worker","packages":[{"id":"10843fbf-4f0c-416b-be7d-42d6bbd0ae68","text":"Window","v":"d4ce6dec568c3dc1"}],"template":"<section class=\"p-4\" v-if=\"locals.ready\" :key=\"'_CSS' + controller.currentStep.type\">\n  <div class=\"flex justify-between mb-12 items-center\">\n    <ae-layout\n      layout-id=\"f6bdd129-3852-4bac-9375-559b929486bc\"\n      param-text=\"Von vorne beginnen\"\n      @selected=\"controller.reset()\"\n      :param-disabled=\"locals.breadcrumbs.length === 1 && !controller.currentStep.selected\"\n    ></ae-layout>\n    <ae-layout\n      layout-id=\"f6bdd129-3852-4bac-9375-559b929486bc\"\n      param-text=\"Zurück\"\n      @selected=\"controller.goBack()\"\n      :param-disabled=\"locals.breadcrumbs.length === 1 && !controller.currentStep.selected\"\n    ></ae-layout>\n  </div>\n\n  <div v-if=\"locals.isVerwalter\" class=\"flex items-center gap-2 text-red-500\">\n    <ae-icon class=\"fa fa-ban\"></ae-icon>\n    <div>Bitte melden Sie sich mit einem Firmen-Account ohne Verwalter-Rechte an!</div>\n  </div>\n\n  <template v-else>\n    <!-- Breadcrumbs -->\n    <div v-if=\"locals.breadcrumbs.length > 1\" class=\"mb-6 flex flex-col gap-2\">\n      <template v-for=\"(step, index) in locals.breadcrumbs.slice(0, -1)\">\n        <template v-for=\"conf in [controller.getBreadcrumbConfig(index)]\">\n          <ae-design\n            :key=\"step.selected.id + index\"\n            name=\"rd:maintenance-card\"\n            :document=\"step.selected\"\n            :params=\"controller.getBreadcrumbConfig(index)\"\n            @edit=\"controller.editDocument(step.selected)\"\n          ></ae-design>\n        </template>\n      </template>\n    </div>\n\n    <!-- Picker for team -->\n    <div v-if=\"controller.currentStep.type === 'team'\">\n      <div v-if=\"locals.myTeam\" class=\"flex flex-col gap-4\">\n        <div class=\"flex gap-2 items-center\">\n        <ae-icon class=\"far fa-info-circle text-2xl\"></ae-icon>\n        Wir haben folgendes Team für Sie gefunden\n        </div>\n        \n        <ae-design\n          name=\"rd:maintenance-card\"\n          :document=\"locals.myTeam\"\n          @selected=\"controller.select(locals.myTeam, 'area')\"\n          :param-show-selected-button=\"true\"\n        ></ae-design>\n      </div>\n      <div v-else>\n        <div class=\"flex gap-2 items-center\">\n        <ae-icon class=\"far fa-circle-exclamation text-2xl text-red-500\"></ae-icon>\n        <span> Wir konnten für Sie kein Team finden. Versuchen Sie es erneut oder kontaktieren Sie Ihren Administrator. </span>\n      </div>\n      </div>\n    </div>\n\n    <!-- Picker for Parts -->\n    <template v-for=\"type in controller.Steps.slice(1, -1)\">\n      <template v-if=\"controller.currentStep.type === type\">\n        <template v-for=\"picker in [controller.getStepConfig(type)]\">\n          <ae-list\n            :key=\"type\"\n            list-id=\"2e798091-303f-406b-a42a-93aa1cd8425c\"\n            :documents=\"controller.currentStep.options\"\n            param-design=\"rd:maintenance-card\"\n            :param-title=\"picker.title\"\n            :param-empty-text=\"picker.emptyText\"\n            :param-design-params=\"controller.getDesignParams(type)\"\n            @selected=\"controller.select($event, controller.getNextType(type))\"\n            @edit=\"controller.editDocument($event)\"\n          ></ae-list>\n        </template>\n      </template>\n    </template>\n  </template>\n</section>"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"d0572c9e-547f-483e-8132-21ab448983f3","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-03-26T15:48:57+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"085a9bd9-963c-49fc-8497-20ba430ab6da","text":"rd:page--worker","v":"f3def36e67010c7d"},"p":"c6931d87-a1f3-4b34-bc1b-3f0bfe7398f8","previous":{"v":"8cbf885bc5ff7af7"},"stamps":[],"t":1774540137829,"v":"1639c97fd80578d2"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","46a28dfa-7518-4867-9519-a5f4cd9b9967"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"41bd0eb7-c83f-4b7b-a93e-22ba5b3c82f7","text":"rd:page--worker","v":"610e4a2ac06168de"},"created":{"at":"2025-10-21T11:33:45+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1761046425044,"data":{"aliases":[],"controller":"class Controller {\n  init() {\n    locals.view = {\n      only: {\n        fields: [\n          'comment',\n          'photos',\n          'signature',\n        ]\n      }\n    }\n    locals.error = ''\n  }\n\n  async abort() {\n    const result = await Aeppic.Commands.execute('eded7647-017c-4a69-8af0-334d613eccc1', document)\n\n    if (!result.ok) {\n      console.error(result)\n      return\n    }\n\n    await this.navigateToStartPage()\n  }\n\n  async setData(fieldName, value) {\n    if (params.readonly) {\n      return\n    }\n\n    const editable = await Aeppic.edit(document)\n    editable.data[fieldName] = value\n    Aeppic.save(editable)\n  }\n\n\n  get hatBemerkung() {\n    if (!document.data.comment || document.data.comment.trim() === '') {\n      return false\n    }\n\n    return true\n  }\n\n  // get bemerkungFehlt() {\n  //   return !this.hatBemerkung\n  // }\n\n  get isComplete() {\n    return this.hatBemerkung && this.isSigned\n  }\n\n  get canSign() {\n    return this.isComplete\n  }\n\n  get isSigned() {\n    return data.signature.dataUrl\n  }\n\n  get signatureMissing() {\n    return !this.isSigned\n  }\n\n  async navigateToStartPage() {\n    const anmeldung = await Aeppic.findOne(`p:${document.a[0]} f.id:941d2b8f-5694-4054-8c99-c51ad62f6c2f`)\n    if (anmeldung) {\n      Aeppic.navigateTo(anmeldung)\n    } else {\n      // should never happen\n      Aeppic.reload()\n    }\n  }\n\n  async finish() {\n    const result = await Aeppic.Commands.execute('eded7647-017c-4a69-8af0-334d613eccc1', document, { navigate: true })\n\n    if (Aeppic.Account?.data.isAdmin) {\n      packages.window.confirm(`[ADMIN only] Ergebnis der Beendung: ${result.value?.checkResultReadable}`)\n    }\n\n    if (!result.ok) {\n      locals.error = 'Es ist ein Fehler bei der Beendingung der Wartung aufgetreten.'\n      return\n    }\n\n    await this.navigateToStartPage()\n  }\n}\n","css":"","description":"","name":"rd:page--worker","packages":[],"template":"<div class=\"p-4 flex flex-col gap-6\">\n  <section v-if=\"data.status === 'STARTED'\" class=\"mt-4 rounded-lg bg-white p-2 border border-slate-200 flex flex-col\">\n    <div class=\"font-bold mb-2\">Diese Mängelmeldung wurde begonnen. Bitte dokumentieren Sie die Mängelbehebung.</div>\n  </section>\n\n  <section v-if=\"data.status === 'CANCELED'\" class=\"mt-4 rounded-lg bg-white p-2 border border-slate-200 flex flex-col\">\n    <div class=\"font-bold mb-2\">Diese Mängelmeldung wurde abgebrochen.</div>\n    <div class=\"text-sm\">\n        Sie können mit Wartung fortfahren.\n    </div>\n  </section>\n\n  <section v-if=\"data.status === 'COMPLETED'\" class=\"mt-4 rounded-lg bg-white p-2 border border-slate-200 flex flex-col\">\n    <div class=\"font-bold mb-2\">Diese Mängelmeldung wurde abgeschlossen.</div>\n    <div class=\"text-sm\">\n      Diese Mängelmeldung muss nun vom Betreiber zur Kenntnis genommen werden, bevor eine neue Wartung durchgeführt\n      werden kann.\n    </div>\n  </section>\n\n  <section v-if=\"data.status === 'ACKNOWLEDGED'\" class=\"mt-4 rounded-lg bg-white p-2 border border-slate-200 flex flex-col\">\n    <div class=\"font-bold mb-2\">Diese Mängelmeldung wurde zur Kenntnis genommen.</div>\n  </section>\n\n  <section class=\"my-4 rounded-lg bg-white p-2 border border-slate-200 flex flex-col\">\n    <ae-design name=\"rd:maintenance-card\" :document-id=\"data.object.id\"></ae-design>\n    <ae-design name=\"rd:building\" param-design=\"rd:card\" :document-id=\"data.location.id\"></ae-design>\n    <ae-design name=\"rd:building-part\"param-design=\"rd:card\"  :document-id=\"data.location.id\"></ae-design>\n    <ae-design name=\"rd:maintenance-card\" :document-id=\"data.location.id\"></ae-design>\n  </section>\n\n  <section class=\"mt-4 rounded-lg bg-white p-2 border border-slate-200 flex flex-col\">\n    <!-- FIXME: do not set readonly true or editor will flicker in height on edits -->\n    <ae-form\n      layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\"\n      :document=\"document\"\n      :view=\"{ only: { fields: ['name','informationTeam']}}\"\n      :watch=\"false\"\n      :readonly=\"true\"\n    ></ae-form>\n  </section>\n\n  <section class=\"mt-4 rounded-lg bg-white p-2 border border-slate-200 flex flex-col\">\n    <ae-form\n      :document=\"document\"\n      :view=\"locals.view\"\n      layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\"\n      :auto-save=\"true\"\n      :auto-save-after=\"1000\"\n      :readonly=\"data.status === 3 || data.status === 4\"\n    ></ae-form>\n  </section>\n\n  <div v-if=\"locals.error\" class=\"text-error-500 my-4\">\n    {{ locals.error}}\n  </div>\n\n  <section class=\"mt-12\" v-if=\"controller.isComplete\">\n    <ae-layout\n      layout-id=\"a2cd7699-9b46-494f-8f89-cb1f62151d82\"\n      param-text=\"Beenden\"\n      @selected=\"controller.finish()\"\n      param-classes=\"w-full\"\n      :param-disabled=\"params.readonly\"\n    ></ae-layout>\n  </section>\n  <section class=\"mt-12\" v-else>\n    <ae-layout\n      layout-id=\"a2cd7699-9b46-494f-8f89-cb1f62151d82\"\n      :param-text=\"controller.hatBemerkung && controller.signatureMissing ? 'Unterschrift erforderlich' : 'Abbrechen'\"\n      @selected=\"controller.abort()\"\n      param-classes=\"w-full\"\n      param-icon=\"fa fa-times\"\n      :param-disabled=\"params.readonly || (controller.isComplete && controller.signatureMissing)\"\n    ></ae-layout>\n  </section>\n\n  <!-- <ae-layout\n    class=\"w-full mt-6\"\n    layout-id=\"a2cd7699-9b46-494f-8f89-cb1f62151d82\"\n    param-text=\"Zurück zur Startseite\"\n    @selected=\"controller.abort()\"\n    param-classes=\"w-full\"\n    :param-disabled=\"params.readonly\"\n  ></ae-layout> -->\n</div>\n "},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"d50d6e71-2155-451e-b87d-24b25565cb77","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-03-02T11:00:25+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"41bd0eb7-c83f-4b7b-a93e-22ba5b3c82f7","text":"rd:page--worker","v":"610e4a2ac06168de"},"p":"46a28dfa-7518-4867-9519-a5f4cd9b9967","previous":{"v":"f5d39af07c36aca4"},"stamps":[],"t":1772449225587,"v":"b41d7e88b4230eb6"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","f5850e39-8581-4b62-8cfe-f4fa95009a1a"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2025-08-05T11:20:58+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1754394980178,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.ready = false\n    this.Forms = {\n      Wartung: '347d38c6-0bce-47ce-b271-9f924c56ac49',\n      Gebaeudeteil: '1e3214b4-b81e-4ac2-a788-c2051af016ab',\n      Gebaeudeteilfilter: '40f82be9-b7ea-4ce1-bd91-f39bdb22a011',\n    }\n    this.Commands = {\n      updateWartung: 'c3882878-17e5-4bc9-81fa-7c7d59986ded',\n      updateWartungsteil: '4ec5f9a8-0677-4885-aaf7-288e7971a0ce',\n    }\n\n    this.wartungId = document.a[document.a_forms.findIndex(aForm => aForm === this.Forms.Wartung)]\n\n    locals.signingView = {\n      only: {\n        fields: ['signature'],\n      },\n    }\n\n    locals.mustSign = false\n\n    locals.items = []\n    locals.itemsTodo = []\n    locals.filteredItems = []\n    locals.filteredItemsTodo = []\n    locals.activeItemId = null\n    this.wartungspunktIdToGebaeudeteil = new Map()\n\n    await this._resetBuildingpartFilter()\n\n    Aeppic.watch(document, async (doc) => await this.updateItems(doc))\n\n    await this.updateItems(document)\n\n    const readerMode = await Aeppic.Preferences.getSettingForDocument('keeptrack:settings:signatureMode', document)\n    locals.mustSign = readerMode === 'ANLAGE'\n\n    locals.ready = true\n  }\n\n  async updateItems(doc) {\n    locals.items = Aeppic.sort(await Aeppic.getAll(doc.data.items), { field: 'data.LfNr' })\n\n    this.wartungspunktIdToGebaeudeteil = new Map()\n    await Promise.all(locals.items.map(async (item) => {\n      if (!item?.id || !item?.data?.aggregate?.id) return\n\n      const gebaeudeteil = await Aeppic.resolve(item.data.aggregate.id, 'AppKeeptrack-Gebäudeteil').catch(() => null)\n      if (gebaeudeteil?.id) {\n        this.wartungspunktIdToGebaeudeteil.set(item.id, gebaeudeteil)\n      }\n    }))\n\n    locals.itemsTodo = locals.items.filter(\n      (item) => item.data.result === 'NOT_STARTED' || item.data.result === 'STARTED' || item.data.result === 'CANCELED'\n    )\n\n    this.setBuildingpartFilter(locals.buildingpartFilterEditableDocument?.data?.buildingParts || [])\n  }\n\n  async _resetBuildingpartFilter() {\n    locals.buildingpartFilterEditableDocument = await Aeppic.new(\n      this.Forms.Gebaeudeteilfilter,\n      document.id\n    )\n  }\n\n  setBuildingpartFilter(values) {\n    if (!values || values.length === 0) {\n      locals.filteredItems = [...locals.items]\n      locals.filteredItemsTodo = [...locals.itemsTodo]\n      this.ensureActiveItem()\n      return\n    }\n\n    const selectedGebaeudeteilIds = values.map(value => value.id)\n\n    locals.filteredItems = locals.items.filter(item => {\n      const gebaeudeteil = this.wartungspunktIdToGebaeudeteil.get(item.id)\n      return gebaeudeteil?.id && selectedGebaeudeteilIds.includes(gebaeudeteil.id)\n    })\n\n    locals.filteredItemsTodo = locals.itemsTodo.filter(item => {\n      const gebaeudeteil = this.wartungspunktIdToGebaeudeteil.get(item.id)\n      return gebaeudeteil?.id && selectedGebaeudeteilIds.includes(gebaeudeteil.id)\n    })\n\n    this.ensureActiveItem()\n  }\n\n  setActiveItem(item) {\n    if (!item?.id || !locals.filteredItemsTodo.some(todoItem => todoItem.id === item.id)) {\n      return\n    }\n\n    locals.activeItemId = item.id\n  }\n\n  ensureActiveItem() {\n    if (!locals.filteredItemsTodo.length) {\n      locals.activeItemId = null\n      return\n    }\n\n    if (!locals.filteredItemsTodo.some(item => item.id === locals.activeItemId)) {\n      locals.activeItemId = locals.filteredItemsTodo[0].id\n    }\n  }\n\n  get activeItem() {\n    return locals.filteredItemsTodo.find(item => item.id === locals.activeItemId) || locals.filteredItemsTodo[0] || null\n  }\n\n  get isComplete() {\n    return locals.itemsTodo.length === 0\n  }\n\n  get canSign() {\n    return locals.mustSign && this.isComplete\n  }\n\n  get isSigned() {\n    return !!data.signature.dataUrl\n  }\n\n  get mayChangeSignature() {\n    return !document.readonly && data.status !== 'COMPLETED'\n  }\n\n  get signatureMissing() {\n    return locals.mustSign && !this.isSigned\n  }\n\n  async handleConfirmation() {\n    await this.updateStatus()\n    Aeppic.navigateTo(this.wartungId)\n  }\n\n  async updateStatus() {\n    await Aeppic.Commands.execute(this.Commands.updateWartung, this.wartungId, {})\n    // await Aeppic.Commands.execute(this.Commands.updateWartungsteil, document, {}) // This just updates the Wartungsteil instead of the entire Wartung\n  }\n\n  get gobackButtonText() {\n    if (this.isComplete) {\n      if (this.signatureMissing) {\n        return  'Unterschrift erforderlich' \n      }\n\n      return 'Unterschrift bestätigen'\n    } \n    \n    return 'Zurück zur Auswahl'\n  }\n}\n","css":"","description":"","name":"rd:page--worker","packages":[],"template":"<div \n  v-if=\"locals.ready\"\n  class=\"p-4\"\n>\n  <section class=\"flex flex-wrap items-center justify-between mb-6\">\n    <div>\n      <div class=\"text-3xl flex flex-col\">\n        {{data.part}} \n        <!-- <ae-design v-if=\"data.facility.id\" name=\"title\" :document=\"data.facility\"></ae-design> -->\n        <!-- <div v-else class=\"text-red-500\">Keine Anlage gewählt</div> -->\n        <span class=\"mb-2 text-primary-500 font-mono\">{{ data.identifier }} </span>\n      </div>\n    </div>\n\n    <!-- <div class=\"ml-auto flex flex-col items-end text-primary-500\"> \n      <span class=\"font-mono flex flex-col items-end\"> \n        <ae-design name=\"rd:location-title\" :document=\"data.facility\"></ae-design>\n        <ae-design name=\"rd:location-address\" :document=\"data.facility\"></ae-design>\n      </span> \n    </div> -->\n    <div v-if=\"data.description.trim().length > 0\" class=\"whitespace-pre-line\">\n      {{data.description}}\n    </div>\n\n    <div v-if=\"data.images.length\">\n      <ae-list list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\"\n              :documents=\"data.images\"\n              :params=\"{ design: 'rd:card', horizontal: true, wrap: true, designParams: { square: true, hideMeta: true }}\"  \n              @selected=\"$refs.dialog.$emit('show', $event)\"\n      ></ae-list>\n\n      <ae-layout\n      ref=\"dialog\"\n      layout-id=\"dff662e9-9a83-44d1-97c5-6f7f7f124248\"\n    ></ae-layout>\n    </div>\n  </section>\n  \n  <section class=\"mb-6\">\n    <div class=\"ml-1 text-2xl mb-4 underline decoration-solid decoration-primary-400\">Filter</div>\n    <div class=\"w-1/3 flex flex-col xmin-h-20\">\n      <span class=\"text-neutral-600 mb-1\">Gebäudeteile filtern</span>\n      <ae-control\n        v-if=\"locals.buildingpartFilterEditableDocument\"\n        class=\"flex-1 bg-white rounded-md\"\n        :document=\"locals.buildingpartFilterEditableDocument\"\n        field-name=\"buildingParts\"\n        name=\"rd:ref\"\n        :params=\"{ \n          queryLimitCommand: '5b12bfd8-544d-41eb-baf3-373284babb34',\n          hidePath: true,\n          forms: controller.Forms.Gebaeudeteil,\n          handleRemove: true,\n          confirmRemove: false,\n        }\"\n        @field-updated=\"controller.setBuildingpartFilter($event.value)\"\n      ></ae-control>\n    </div>\n  </section>\n  \n  <section v-if=\"locals.filteredItemsTodo.length\" class=\"mb-6\" > \n    <div class=\"ml-1 text-2xl mb-4 underline decoration-solid decoration-primary-400\">Nächster Wartungspunkt</div>\n    <div xclass=\"ml-4\">\n      <ae-design name=\"rd:next,rd:list,title\" :document-id=\"controller.activeItem?.id\" :param-readonly=\"params.readonly\"></ae-design>\n    </div>\n  </section>\n\n  <section class=\"mb-6\">\n    <div class=\"ml-1 text-2xl mb-4 underline decoration-solid decoration-primary-400\">Übersicht aller Wartungspunkte</div>\n    <ae-list  class=\"ml-4\" \n              list-id=\"2e798091-303f-406b-a42a-93aa1cd8425c\" \n              :documents=\"locals.filteredItems\"\n              param-design=\"rd:list,title\" \n              :param-design-params=\"{ activeDocument: controller.activeItem, showSetActiveButton: true }\"\n              @selected=\"controller.setActiveItem($event)\"\n    ></ae-list>\n  </section>\n\n  <!-- <section v-if=\"!controller.isSigned && controller.canSign\" class=\"my-12\"> -->\n  <section v-if=\"controller.canSign\" class=\"my-12\">\n      <ae-form \n        :document=\"document\" \n        :view=\"locals.signingView\" \n        layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\" \n        :auto-save=\"true\"\n        :readonly=\"!controller.mayChangeSignature\"\n      ></ae-form>\n  </section>\n\n  <!-- <section class=\"my-12\" v-if=\"controller.isSigned\">\n    <div class=\"mb-2 font-bold\">\n      Ihre Unterschrift\n    </div>\n\n    <img class=\"w-[200px]\" v-if=\"data.signature.dataUrl\" :src=\"Aeppic.Content.getSrc(document, 'signature')\">\n  </section> -->\n\n  <section class=\"mt-12\">\n    <ae-layout  layout-id=\"a2cd7699-9b46-494f-8f89-cb1f62151d82\"\n                :param-text=\"controller.gobackButtonText\"\n                @selected=\"controller.handleConfirmation()\"\n                param-classes=\"w-full\"\n                :param-disabled=\"params.readonly || (controller.isComplete && controller.signatureMissing)\"\n    ></ae-layout> \n  </section>\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"dd57506d-57ac-40e5-a456-f70b092c12ff","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-06-09T06:37:52+00:00","backedBy":"","by":"09763886-6748-4a56-8e0e-54a2293ee96b","client":"server","from":"","impersonatedBy":""},"p":"f5850e39-8581-4b62-8cfe-f4fa95009a1a","previous":{"v":"71561a4171a15309"},"stamps":[],"t":1780987072839,"v":"0e30fdbac2a8a401"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","33e3b54d-6b4b-4aa3-8f70-2b834b27bf66"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"1626c180-1b64-467b-9873-54fbf2dbc07f","text":"rd:page--worker","v":"e2842a3b369f7e13"},"created":{"at":"2026-01-27T11:04:02+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"ct":1769511842244,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Aggregat: '31e6efab-61df-4b91-8250-3bfcfd491c6c',\n    }\n    \n    locals.tab = 'aggregates'\n    locals.components = []\n    locals.componentsByBaugruppe = []\n    locals.location = null\n\n    locals.location = await Aeppic.get(data.location)\n    await this.onUpdate()\n  }\n\n  async onUpdate() {\n    locals.components = await Aeppic.find(`f.id:${this.FORMS.Aggregat} data.facility.id:${document.id}`, { size: 999 })\n    locals.componentsByBaugruppe = locals.components.reduce((result, component) => {\n      if (!result[component.data.assembly]) {\n        result[component.data.assembly] = []\n      }\n\n      result[component.data.assembly].push(component)\n\n      return result\n    }, {})\n  }\n\n  async selectedComponent(component) {\n    console.log({\n      component\n    })\n\n    Aeppic.drillInto(component)\n  }\n\n\n  get dropdownFields() {\n    return [\n      {\n        identifier: 'option_1',\n        display: 'Anlage: Rückkühlwerk',\n      },\n      {\n        identifier: 'option_2',\n        display: 'Anlage: Zuluft',\n        divide: true\n      },\n      {\n        identifier: 'option_2',\n        display: 'Anlage: Abluft',\n        divide: true\n      }\n    ]\n  }\n}","css":"","description":"","name":"rd:page--worker old","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<div class=\"flex flex-col pt-2\">\n  <!-- <ae-form\n    layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\"\n    :document=\"document\"\n    :auto-save=\"true\"\n    :auto-save-after=\"1000\"\n  ></ae-form> -->\n\n  <!-- <ae-list\n      list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\"\n      :documents=\"locals.components\"\n      :params=\"{ title: 'Aggregate' }\"\n      @selected=\"controller.selectedComponent($event)\"\n    ></ae-list> -->\n\n  <!-- TODO: copy aggregate from Vorlage -->\n  <!-- TODO: neues aggregat -->\n  <div class=\"flex items-center\">\n    <span class=\"text-neutral-500 text-xl mr-2\">Technischer Platz: </span>\n    <ae-design name=\"title\" :document=\"data.location\" class=\"text-2xl\"></ae-design>\n  </div>\n  <div class=\"flex justify-between items-center gap-2\">\n    <ae-design\n      class=\"mb-2 flex-1\"\n      name=\"rd:tabs\"\n      :document=\"document\"\n      :param-identifier-allow-list=\"['aggregates', 'facility']\"\n      @selected=\"locals.tab = $event\"\n    ></ae-design>\n    <template v-if=\"locals.tab === 'aggregates'\">\n      <ae-layout\n        layout-id=\"8bc795f2-7ac8-4b95-9019-0b27b178a36e\"\n        :param-options=\"controller.dropdownFields\"\n        :param-button-params=\"{text: 'Aus Stammdaten auffüllen', primary: false, border: 'border-slate-200'}\"\n        class=\"\"\n      ></ae-layout>\n      <ae-layout\n        layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n        param-icon=\"far fa-plus\"\n        param-text=\"Neues Aggregat\"\n        :param-primary=\"true\"\n        @selected=\"\"\n      ></ae-layout>\n    </template>\n  </div>\n\n  <template v-if=\"locals.tab === 'aggregates'\">\n    \n    <section>\n      <div v-for=\"(components, baugruppe) in locals.componentsByBaugruppe\">\n        <div class=\"font-bold\">\n          {{baugruppe}}\n        </div>\n\n        <!-- TODO: add duplicate command to card -->\n        <!-- TODO: add delete command to card -->\n        <ae-list\n          list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\"\n          :documents=\"components\"\n          :params=\"{ design: 'rd:card' }\"\n          @selected=\"controller.selectedComponent($event)\"\n        ></ae-list>\n      </div>\n    </section>\n\n\n  </template>\n  <template v-if=\"locals.tab === 'facility'\">\n    <ae-form\n      layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\"\n      :document=\"document\"\n      :auto-save=\"true\"\n      :auto-save-after=\"1000\"\n      :view=\"{only: {fields: ['facility', 'identifier', 'hersteller', 'modell', 'artikelnummer', 'seriennummer', 'interneNummer', 'geraetFoto', 'notizen']}}\"\n    ></ae-form>\n  </template>\n  <ae-layout\n    layout-id=\"f6bdd129-3852-4bac-9375-559b929486bc\"\n    param-text=\"Zurück zur Auswahl\"\n    @selected=\"Aeppic.reload()\"\n    :param-disabled=\"params.readonly\"\n    class=\"self-center mt-8\"\n  ></ae-layout>\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"6101bd5c-a239-404b-ab87-c170bc706ae6","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-02-18T13:18:12+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"1626c180-1b64-467b-9873-54fbf2dbc07f","text":"rd:page--worker","v":"e2842a3b369f7e13"},"p":"33e3b54d-6b4b-4aa3-8f70-2b834b27bf66","previous":{"v":"2fd95f79d50a09b7"},"stamps":[],"t":1771420692266,"v":"a673aae7166de0ad"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","093f533e-9758-479c-97bc-8e4ba7dc3c2d"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"1626c180-1b64-467b-9873-54fbf2dbc07f","text":"rd:page--worker","v":"e1a3821cf52756d5"},"created":{"at":"2026-01-27T10:55:15+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"ct":1769511315172,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Anlage: '33e3b54d-6b4b-4aa3-8f70-2b834b27bf66',\n    }\n\n    locals.facilities = []\n    await this.onUpdate()\n  }\n\n  async onUpdate() {\n    locals.facilities = await Aeppic.find(`f.id:${this.FORMS.Anlage} data.location.id:${document.id}`, { size: 999 })\n  }\n\n  async selectedFacility(facility) {\n    console.log({\n      facility\n    })\n\n    Aeppic.drillInto(facility)\n  }\n}","css":"","description":"","name":"rd:page--worker old","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<div class=\"flex flex-col\">\n  <!-- TODO: new button (via rd:toolbar) --> \n\n  <div class=\"flex justify-between mt-2\">\n    <div class=\"flex items-center\">\n      <span class=\"text-neutral-500 text-xl mr-2\">Technischer Platz: </span>\n      <ae-design name=\"title\" :document=\"document\" class=\"text-2xl\"></ae-design>\n    </div>\n  </div>\n\n  <div class=\"flex justify-between items-center gap-2\">\n    <ae-design\n      class=\"mb-2 flex-1\"\n      name=\"rd:tabs\"\n      :document=\"document\"\n      :param-identifier-allow-list=\"['location', 'facilities']\"\n      @selected=\"locals.tab = $event\"\n    ></ae-design>\n    <template v-if=\"locals.tab === 'facilities'\">\n        <ae-layout\n      layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n      param-icon=\"far fa-plus\"\n      param-text=\"Neue Anlage\"\n      :param-primary=\"true\"\n      @selected=\"\"\n      ></ae-layout>\n    </template>\n  </div>\n\n<template v-if=\"locals.tab === 'location'\">\n    <ae-form\n      layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\"\n      :document=\"document\"\n      :auto-save=\"true\"\n      :auto-save-after=\"1000\"\n      :view=\"{only: {fields: ['type', 'location', 'address', 'bas', 'identityCode', 'image', 'type',]}}\"\n    ></ae-form>\n  </template>\n\n  <template v-if=\"locals.tab === 'facilities'\">\n\n    <!-- TODO: maintenance-card -->\n\n    <ae-list\n      list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\"\n      :documents=\"locals.facilities\"\n      :params=\"{ title: 'Anlagen', design: 'rd:maintenance-card,rd:card' }\"\n      @selected=\"controller.selectedFacility($event)\"\n    ></ae-list>\n  </template>\n\n\n  <!-- TODO: goback -->\n  <ae-layout\n    layout-id=\"f6bdd129-3852-4bac-9375-559b929486bc\"\n    param-text=\"Zurück zur Auswahl\"\n    @selected=\"Aeppic.reload()\"\n    :param-disabled=\"params.readonly\"\n    class=\"self-center mt-8\"\n  ></ae-layout>\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"bb956974-6ddc-4da9-a3ea-cd4b534c3e22","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-02-18T11:35:46+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"1626c180-1b64-467b-9873-54fbf2dbc07f","text":"rd:page--worker","v":"e1a3821cf52756d5"},"p":"093f533e-9758-479c-97bc-8e4ba7dc3c2d","previous":{"v":"4540752bb9146066"},"stamps":[],"t":1771414546647,"v":"c6fc590d500144a3"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","02132d06-c73b-4101-bde0-2fe98224a35a"],"a_depth":3,"a_forms":["folder","application-form","design-folder"],"cloneOf":{"id":"3f40b239-ef0e-4ab6-8470-5c2a24a91e0e","text":"rd:page--worker","v":"6aea9ada7ee562dd"},"created":{"at":"2026-02-18T09:09:38+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"ct":1771405778548,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      aggregate: '31e6efab-61df-4b91-8250-3bfcfd491c6c',\n      facility: '33e3b54d-6b4b-4aa3-8f70-2b834b27bf66',\n      technicalPlace: '093f533e-9758-479c-97bc-8e4ba7dc3c2d',\n    }\n    this.Commands = {\n      cloneFacility: '4759e913-aa6f-4c4a-b97f-ac7784cf385d',\n      cloneAggregate: 'bd103b5b-9cc6-4f43-a356-c07f847a7d69',\n    }\n\n    locals.tab = 'children'\n  }\n\n  get staticDesign() {\n    if (document.f.id === this.FORMS.aggregate) {\n      return 'aggregate'\n    }\n\n    return null\n  }\n\n  get buttons() {\n    const config = {\n      showSelectedButton: true,\n      showDeleteButton: true,\n      showCloneButton: false,\n      cloneCommandId: '',\n    }\n\n    if (this.FORMS.technicalPlace === document.f.id) {\n      return { ...config, cloneCommandId: this.Commands.cloneFacility, showCloneButton: true }\n    }\n\n    if (this.FORMS.facility === document.f.id) {\n      return { ...config, cloneCommandId: this.Commands.cloneAggregate, showCloneButton: true }\n    }\n\n    return {}\n  }\n\n  goToParent() {\n    Aeppic.navigateTo(document.p)\n  }\n}\n","css":"","description":"","name":"rd:page-building-part--worker","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<div class=\"flex flex-col w-full pt-4 gap-4\">\n  <!-- Tabs and Backbutton -->\n  <div class=\"flex w-full gap-2 items-center\">\n    <ae-design\n      v-if=\"!controller.staticDesign\"\n      class=\"flex-1\"\n      :document=\"document\"\n      name=\"rd:tabs\"\n      @selected=\"locals.tab = $event\"\n      :param-identifier-allow-list=\"['children', 'facility', 'technicalPlace']\"\n    ></ae-design>\n\n    <!-- {{'rd:' + (controller.staticDesign ?? locals.tab) + '--worker'}} -->\n    <div class=\"ml-auto flex items-center gap-2\">\n      <ae-layout\n        v-if=\"[controller.FORMS.facility].includes(document.f.id)\"\n        layout-id=\"f6bdd129-3852-4bac-9375-559b929486bc\"\n        @selected=\"$refs.copyPopup.toggle($event)\"\n        :params=\"{text: 'Kopieren aus ...'}\"\n      ></ae-layout>\n\n      <ae-design :document=\"document\" name=\"rd:button-navigate-to-aufnahme\"></ae-design>\n\n      <ae-layout\n        v-if=\"[controller.FORMS.aggregate, controller.FORMS.facility, controller.FORMS.technicalPlace].includes(document.f.id)\"\n        layout-id=\"f6bdd129-3852-4bac-9375-559b929486bc\"\n        @selected=\"controller.goToParent()\"\n        :params=\"{text: 'Zurück', icon: 'far fa-arrow-alt-up'}\"\n      ></ae-layout>\n    </div>\n  </div>\n\n  <!-- Body -->\n  <ae-design\n    v-if=\"locals.tab === 'children'\"\n    :document=\"document\"\n    :name=\"'rd:' + (controller.staticDesign ?? locals.tab) + '--worker'\"\n    :param-design-params=\"{\n      ...controller.buttons\n    }\"\n  ></ae-design>\n  <ae-design\n    v-else\n    :document=\"document\"\n    :name=\"'rd:' + (controller.staticDesign ?? locals.tab) + '--worker'\"\n  ></ae-design>\n</div>\n\n<ae-popup ref=\"copyPopup\" placement=\"bottom\">\n  <div class=\"p-2 flex flex-col gap-2 items-center\">\n    <ae-layout\n      v-if=\"[controller.FORMS.facility].includes(document.f.id)\"\n      layout-id=\"f6bdd129-3852-4bac-9375-559b929486bc\"\n      @selected=\"$refs.notimplemented.show($event)\"\n      @mouseleave.native=\"$refs.notimplemented.close()\"\n      :params=\"{text: 'Stammdaten'}\"\n      class=\"w-full\"\n    ></ae-layout>\n    <ae-layout\n      v-if=\"[controller.FORMS.facility].includes(document.f.id)\"\n      layout-id=\"f6bdd129-3852-4bac-9375-559b929486bc\"\n      @selected=\"$refs.notimplemented.show($event)\"\n      @mouseleave.native=\"$refs.notimplemented.close()\"\n      :params=\"{text: 'Anlage'}\"\n      class=\"w-full\"\n    ></ae-layout>\n  </div>\n</ae-popup>\n\n<ae-popup ref=\"notimplemented\">\n  <div class=\"p-2\">Diese Funktion ist noch nicht verfügbar.</div>\n</ae-popup>\n"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"f611bef5-d830-4db7-ba49-8aa44dcac6bf","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2026-02-27T15:58:34+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"3f40b239-ef0e-4ab6-8470-5c2a24a91e0e","text":"rd:page--worker","v":"6aea9ada7ee562dd"},"p":"02132d06-c73b-4101-bde0-2fe98224a35a","previous":{"v":"b63a1f2a76cf18ed"},"stamps":[],"t":1772207914659,"v":"b47b9872d14205dd"},{"id":"d729fdde-bafd-4c4f-b26a-14733eccf6cc","v":"43a58a49cbcf73fa","previous":{"v":"aa14a167226a7f1b","p":"fallback-designs","a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"]},"p":"1cc4b977-c14d-4587-af47-d6ac230f60b3","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-embedded","template":"<div class=\"flex flex-col h-full\" >\n  <div class=\"flex items-center h-[50px] bg-white py-2 px-4 border-b rounded-t-md\">\n    <ae-design class=\"w-[200px] max-w-[200px] font-semibold\"\n              name=\"rd:editable-title\"\n              :document=\"controller.document\"\n              :param-window-width=\"params.windowWidth\"\n    ></ae-design>\n\n    <ae-layout layout-id=\"e328702a-6cac-44eb-801b-e75fbd946a09\"\n                :param-document=\"controller.document\"\n    ></ae-layout>\n\n    <ae-design class=\"self-center \"\n              name=\"rd:path-button\"\n              :document=\"controller.document\"\n              @selected=\"Aeppic.navigateTo($event)\"\n    ></ae-design>  \n\n    <ae-layout    layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n                  @selected=\"Aeppic.navigateTo(controller.document, { view: undefined })\"\n                  param-icon=\"far fa-external-link\" \n                  param-title=\"Zum Document navigieren\" \n                  class=\"mr-2\"\n    ></ae-layout>  \n\n    <ae-design  name=\"rd:tabs\"\n              :document=\"controller.document\" \n              @selected=\"locals.tab = $event\" \n              class=\"flex-1\"\n              :params=\"params\"\n    ></ae-design>\n\n    <ae-design name=\"rd:page-toolbar\" :document=\"controller.document\" @toolbar=\"controller.dispatchEventChildren('inner', 'toolbar', $event)\"></ae-design> \n  </div>\n\n    <ae-design \n          ref=\"inner\"\n          name=\"rd:page-inner\"\n          :document=\"controller.document\" \n          @filter=\"locals.filter = $event\"\n          class=\"flex-1 rounded-b-md\"\n          :params=\"{ ...params, tab: locals.tab, showMoreActions: true }\"\n  ></ae-design>\n</div>\n ","css":"","controller":"class Controller {\n  init() {\n    locals.document = document\n\n    this.listner = async (event) => { \n      console.log(12312321, event) \n            event.preventDefault()\n            event.stopPropagation()\n      // Aeppic.navigateTo(event.detail.targetDocument)\n\n      locals.document = await Aeppic.get(event.detail.targetDocument)\n    }\n\n    this.options = { capture: true }\n\n    // packages.window.addEventListener('ae-drill-into', this.listner, this.options)\n  }\n\n  dispatchEventChildren(refName, eventName, eventValue) { \n    if (!$refs[refName] || !$refs[refName].$el || !$refs[refName].$el.children) {\n      return\n    }\n    const children = $refs[refName].$el.children\n    for (let i = 0; i < children.length; i++) {\n      children[i].dispatchEvent(new CustomEvent(eventName, {\n        detail: eventValue\n      }))\n    }\n    $refs[refName].$emit(eventName, eventValue)\n  }\n\n  get document() {\n    return locals.document || document\n  }\n\n  destroy() {\n    packages.window.removeEventListener('ae-drill-into', this.listner, this.options)\n  } \n}","packages":[{"id":"10843fbf-4f0c-416b-be7d-42d6bbd0ae68","v":"d4ce6dec568c3dc1","text":"Window"}],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-05-11T11:54:51+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-08-09T14:38:30+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1767870469088,"ct":1720684627136,"a_depth":3,"a":["apps","77ee8815-2c3a-4bb5-abd9-90541a545a24","1cc4b977-c14d-4587-af47-d6ac230f60b3"],"a_forms":["folder","application-form","design-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"meta":{"modified":{"at":"2026-01-08T11:07:49+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":"","impersonatedBy":"","from":"","client":"server"}}},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","cb8d198f-5aa3-4926-8419-0c667241b2bd"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2026-07-14T09:37:22+00:00","backedBy":"","by":"09763886-6748-4a56-8e0e-54a2293ee96b","client":"server","from":"","impersonatedBy":""},"ct":1784021842205,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    this.Forms = {\n      Areal: '5f4a87a7-5557-4004-bfdc-2fb26c71e0c9',\n      Gebaeude: '5a4fafb4-3c2b-4826-8a85-7c804ee4ac52',\n      Gebaeudeteil: '1e3214b4-b81e-4ac2-a788-c2051af016ab',\n      TechnischerPlatz: '093f533e-9758-479c-97bc-8e4ba7dc3c2d',\n      Anlage: '33e3b54d-6b4b-4aa3-8f70-2b834b27bf66',\n    }\n\n    this.ObjekteHubForm = '6138e497-f561-430e-b3f1-8c3c7db046a7'\n    this.ObjekteListeForm = '1a0affea-08fc-467f-8a09-0e170f5ea96e'\n\n    locals.ready = false\n\n    // Future extension point: let a caller pin where the drilldown starts.\n    // Not built yet - stays null, always falling back to the dynamically\n    // located Areal folder in Stammdaten.\n    const startingDocument = null\n\n    locals.startingDocument = startingDocument || await this.findDefaultStartingDocument()\n\n    // ?detail=<documentId> resumes the drilldown from a real document already\n    // inside the hierarchy - the drilldown itself validates and prefills the\n    // chain from it. Arrives either as a real URL query param (before the #,\n    // e.g. /?detail=xxx#/doc/<this page's id> - manual/bookmarked links) or as\n    // a router param (Aeppic.navigateTo(page, { detail: id }) - the command's\n    // own navigation path).\n    const detailId = params?.detail || Aeppic.Root?.params?.queryParams?.detail\n    locals.resumeFromDocument = detailId ? await Aeppic.get(detailId) : null\n\n    locals.ready = true\n  }\n\n  async findDefaultStartingDocument() {\n    const hub = await Aeppic.findOne(Aeppic.Query.children(document.a[0]).form(this.ObjekteHubForm))\n    return Aeppic.findOne(Aeppic.Query.children(hub.id).form(this.ObjekteListeForm))\n  }\n\n  get levels() {\n    return [\n      { form: this.Forms.Areal, label: 'Areal', fields: ['name', 'address', 'image'] },\n      { form: this.Forms.Gebaeude, label: 'Gebäude', fields: ['name', 'image', 'accessDescription', 'address'] },\n      { form: this.Forms.Gebaeudeteil, label: 'Gebäudeteil', fields: ['name', 'accessDescription', 'floorplan'] },\n      { form: this.Forms.TechnischerPlatz, label: 'Technischer Platz', fields: ['type', 'location', 'address', 'bas', 'identityCode', 'image'] },\n      { form: this.Forms.Anlage, label: 'Anlage', fields: ['facility', 'identifier', 'drawing', 'labels'] },\n    ]\n  }\n\n  onFinished(anlage) {\n    Aeppic.drillInto(anlage, { focus: true })\n  }\n}\n","css":"","description":"","name":"rd:page-inner","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<div v-if=\"locals.ready\" class=\"h-full w-full\">\n  <ae-layout\n    layout-id=\"3061199a-8356-4c4e-9ace-77523847678e\"\n    :params=\"{ levels: controller.levels, startingDocument: locals.startingDocument, resumeFromDocument: locals.resumeFromDocument }\"\n    @finished=\"controller.onFinished($event)\"\n  ></ae-layout>\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"00b87543-8d71-44d3-9e8f-758c8e8ac9ca","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-07-14T09:37:22+00:00","backedBy":"","by":"09763886-6748-4a56-8e0e-54a2293ee96b","client":"server","from":"","impersonatedBy":""},"p":"cb8d198f-5aa3-4926-8419-0c667241b2bd","stamps":[],"t":1784021842205,"v":"initial"},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","680a53ff-2457-41b4-aa4e-d832af3bce52","c56e7b2c-4092-4fa4-965b-d8befc9a998c"],"a_depth":5,"a_forms":["folder","application-form","form-folder","folder","form"],"created":{"at":"2026-05-11T08:04:40+00:00","backedBy":"","by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":""},"ct":1778486680316,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:page-inner","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<ae-design name=\"rd:page-list\" :document=\"document\" :params=\"{\n  ...params, \n  initialSort: 'created.at', \n  scrollerHeight: 110, \n  design: 'rd:card', \n  filterFormId: '7e6a5a0d-5328-44c2-853b-92269d1dc344', \n  divide: true,\n  filterFields: 'data.category,data.completed,data.expiryDate,data.responsible,data.responsibleBitm,created.at',\n  sortFields: 'data.category,data.completed,data.expiryDate,data.responsible,data.responsibleBitm,created.at',\n}\" v-on=\"$listeners\" class=\"size-full\"></ae-design>"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"02a8236e-e7e2-4e48-a722-3468bcd7bfdd","inheritedLocks":[null,null,null,null,null,null],"locks":[],"modified":{"at":"2026-05-12T12:45:15+00:00","backedBy":"","by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":""},"p":"c56e7b2c-4092-4fa4-965b-d8befc9a998c","previous":{"v":"926d937da3b43def"},"stamps":[],"t":1778589915902,"v":"62652407ec8fe880"},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","5beeae17-7bb1-4eeb-bcb6-cf0e6950e27c","030be2b6-fcad-4d3c-b44f-c40618e772c0"],"a_depth":5,"a_forms":["folder","application-form","form-folder","form","form"],"created":{"at":"2025-07-22T09:40:01+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1753177201908,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:page-inner","packages":[],"template":"<div class=\"hidden print:block flex gap-2 border rounded-md border-secondary-300 p-1\">\n  <ae-design  name=\"title\" :document-id=\"document.a.slice(-3)[0]\" class=\"text-primary-900 px-2 text-lg\"></ae-design>\n  <ae-design  name=\"title\" :document-id=\"document.a.slice(-2)[0]\" class=\"text-primary-900 px-2 text-lg\"></ae-design>\n</div> \n\n<ae-design class=\"h-full overflow-hidden\" name=\"rd:page-inner_default\" :document=\"document\"\n:params=\"params\" v-on=\"$listeners\"></ae-design> "},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"04961750-b1f2-475d-8f6a-f5ad76d9554a","inheritedLocks":[null,null,null,null,null,null],"locks":[],"meta":{"modified":{"at":"2025-07-22T11:20:47+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null}},"modified":{"at":"2025-07-22T11:14:26+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"030be2b6-fcad-4d3c-b44f-c40618e772c0","previous":{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","5beeae17-7bb1-4eeb-bcb6-cf0e6950e27c"],"a_forms":["folder","application-form","form-folder","form"],"p":"5beeae17-7bb1-4eeb-bcb6-cf0e6950e27c","v":"2164ee18f99ae992"},"stamps":[],"t":1753183247378,"v":"350c898f9a03f0b6"},{"id":"050ab704-be39-4105-ab0e-b18a2027894e","v":"3766e6a03d050b30","previous":{"v":"998423c6fee01cbd"},"p":"929d4384-92b3-4450-aa3b-0e7f20e2103c","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-inner","template":"<div class=\"flex h-full\" ref=\"container\">\n  <div class=\"flex-1 h-full overflow-auto basis-2/3 flex flex-col\">\n    <ae-form  :document=\"document\"\n              :auto-save=\"true\"\n              :auto-save-after=\"2500\"\n              layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\"\n              class=\"w-full\"\n              :readonly=\"params.readonly\"\n    ></ae-form>\n\n    <div class=\"w-full mx-auto max-w-5xl\">\n      <div class=\"w-full lg:my-2 lg:ml-2 flex flex-col\">\n        <ae-design name=\"rd:toolbar\" \n                  :document=\"document\" \n                    @filter=\"locals.filter = $event\"\n                    @sort=\"locals.sort = $event\"\n        ></ae-design>\n\n        <ae-list list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\"\n                :search=\"'p:'+ document.id + ' f.id:4b1bce8a-884e-44de-a2cd-352a7f89baa7'\"\n                :params=\"{ tableStyle: true }\"\n                :param-design-params=\"{ hidePath: true }\"\n                :sort=\"locals.sort\"\n                :filter=\"locals.filter\"\n                class=\"mx-4 px-2 \"\n                @selected=\"Aeppic.drillInto($event, arguments[1])\"\n        ></ae-list>\n      </div>\n    </div>\n  </div>\n  <template v-if=\"params.windowWidth >= 1280\">\n    <ae-layout  v-if=\"!locals.allowUndefinedFields\"\n                layout-id=\"0e6b3b93-8e22-4616-9389-a00a6a1a4f59\"\n                :param-document=\"document\"\n                :param-highlight-comment=\"params.highlightComment\"\n                :param-no-close=\"true\"\n                class=\"h-full w-full basis-1/3 max-w-[500px] lg:m-2\"\n    ></ae-layout>\n\n    <ae-design  v-if=\"locals.allowUndefinedFields\"\n                name=\"rd:undefined-fields\"\n                :document=\"document\"\n                class=\"h-full w-full basis-1/3 max-w-[500px] shadow lg:my-2 lg:ml-2\"\n    ></ae-design>\n  </template>\n</div>\n\n","css":"","controller":"class Controller {\n  async init() {\n    locals.sort = { field: 'data.name' }\n    locals.filter = ''\n\n\n    locals.form = null\n\n    locals.form = await Aeppic.getFormForDocument(document)\n\n    locals.allowUndefinedFields = locals.form.data.allowUndefinedFields === true\n  }\n} ","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-01-08T13:38:50+01:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2024-02-22T12:47:06+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1708606026625,"ct":1704717530177,"a_depth":4,"a":["apps","5ec4fefb-1235-484e-8d6f-4fd645bae372","75920050-07b1-4e79-9742-54abcc235e91","929d4384-92b3-4450-aa3b-0e7f20e2103c"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","94a64d89-d204-4918-b147-d717914fb03e","f254ce25-42f1-4333-8ee7-23554bf746c1","88b1f60e-71f6-46f5-94ea-3d7bbe972950"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"470eb2e9-35a6-4b7f-bee6-fc56904d8236","text":"rd:page-inner","v":"072a6519df44cb0e"},"created":{"at":"2024-05-02T11:45:47+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1714650347744,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:page-inner","packages":[{"id":"10843fbf-4f0c-416b-be7d-42d6bbd0ae68","text":"Window","v":"d4ce6dec568c3dc1"}],"template":"<div class=\"flex h-full gap-2\" ref=\"container\">\n  <div class=\"flex-1 h-full overflow-auto basis-2/3 lg:p-2\"> \n    <ae-form  :document=\"document\"\n              :auto-save=\"true\"\n              :auto-save-after=\"2500\"\n              layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\"\n              class=\"w-full\"\n              :readonly=\"params.readonly\" \n    ></ae-form> \n  </div>\n  <ae-layout  v-if=\"params.windowWidth >= 1280\"\n              layout-id=\"0e6b3b93-8e22-4616-9389-a00a6a1a4f59\"\n              :param-document=\"document\"\n              :param-highlight-comment=\"params.highlightComment\"\n              :param-open-comments=\"params.openComments\"\n              :param-no-close=\"true\"\n              class=\"h-full  min-h-full w-full basis-1/3 max-w-[500px] shadow lg:py-2 lg:pl-2\"\n  ></ae-layout>\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"c2d9ae57c7a46896"},"id":"069ddda7-b619-4519-b334-def25b4765e0","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-02-17T15:33:47+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"470eb2e9-35a6-4b7f-bee6-fc56904d8236","text":"rd:page-inner","v":"072a6519df44cb0e"},"p":"88b1f60e-71f6-46f5-94ea-3d7bbe972950","previous":{"v":"fdca4ac1421e25c0"},"stamps":[],"t":1739806427441,"v":"9bbfd1782cda8eb7"},{"id":"07a4b350-bca2-488a-8a42-956a589b9276","v":"e087e4f2ccaf012f","previous":{"v":"b14a06a8ddef63b0"},"p":"304e2bea-3a32-4f78-a58c-2f541d907356","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-inner","template":"<ae-design name=\"rd:page-list\" :document=\"document\"></ae-design>\n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-08-14T10:04:21+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-12-12T10:19:50+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1702376390966,"ct":1692007461856,"a_depth":4,"a":["apps","9d6ee173-26fe-4472-a271-7667f717094e","6743ef9a-c21b-443f-91b8-4dd86886ee8c","304e2bea-3a32-4f78-a58c-2f541d907356"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","edfe4a5d-1bd6-485a-b252-81dd8772c21c"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"b75be61a-1244-4344-ba9f-b52d7d1835a0","text":"rd:page-inner","v":"initial"},"created":{"at":"2025-08-04T11:11:01+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1754305861658,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:page-inner","packages":[],"template":"<ae-design name=\"rd:page-list\" :document=\"document\"\n:params=\"params\"></ae-design>"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"0e0d92ca-e7d2-4cf9-8c79-8a3f8bdf65ff","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-08-04T11:11:01+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"b75be61a-1244-4344-ba9f-b52d7d1835a0","text":"rd:page-inner","v":"initial"},"p":"edfe4a5d-1bd6-485a-b252-81dd8772c21c","stamps":[],"t":1754305861658,"v":"initial"},{"a":["apps","45ada186-e9fd-451d-9dbd-2defc0b4f86f","4ec6a0e5-cf2d-4095-9b70-2e31a64d5679","dbee6e16-d63a-493c-bba6-505f79918f9f"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2022-05-09T11:04:43+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1652094283626,"data":{"aliases":[],"controller":"class Controller {\n  init() {\n    locals.showDetails = false\n    locals.zoom = false\n\n    watchParam('windowWidth', (value) => {\n      if (value < 1280) {\n        locals.showDetails = false\n      }\n    })\n  }\n\n  onToolbar(event) {\n    const type = event.detail\n\n    if (type === 'show-details') {\n      locals.showDetails = !locals.showDetails\n    }\n\n    if (type === 'print') {\n      $refs.viewer.$emit('print')\n    } \n  }\n}\n","css":"","description":"","name":"rd:page-inner","packages":[],"template":"<div class=\"flex flex-col h-full relative\" @toolbar=\"controller.onToolbar($event)\">\n  <!-- <div class=\"flex justify-between items-center h-[50px] px-4 border-b\">\n    <ae-design class=\"w-full\" name=\"rd:toolbar\" :document=\"document\" @show-details=\"locals.showDetails = !locals.showDetails\"></ae-design> \n  </div> -->\n\n  <!-- <div class=\"text-sm flex justify-between items-center h-[35px] px-4 border-b\">\n    <ae-design name=\"rd:path\" :document=\"document\" @selected=\"Aeppic.navigateTo($event)\"></ae-design> \n  </div> -->\n  <div class=\"flex flex-1 h-full\">\n    <div class=\"flex-1 h-full overflow-auto basis-2/3\">\n      <ae-control\n        v-if=\"document.data.datei.dataUrl\"\n        class=\"flex-1\"\n        @toolbar.native=\"controller.toolbarEvent($event.detail)\"\n        ref=\"viewer\"\n        :key=\"document.id + document.data.datei.dataUrl\"\n        :document=\"document\"\n        :form=\"form\"\n        field-name=\"datei\"\n        name=\"file-viewer\"\n        :style=\"{ cursor: locals.zoom ? 'zoom-out' : 'zoom-in' }\"\n        :param-zoom=\"locals.zoom\"\n        @click.native=\"locals.zoom = !locals.zoom\"\n        :param-use-builtin-viewer=\"params.useBuiltinViewer\"\n      ></ae-control>\n      <div v-else class=\"flex-1 flex justify-center items-center\">\n        <ae-form\n          layout-id=\"f1600040-cfc6-445c-b61e-6dc68663a9d9\"\n          :document=\"document\"\n          :auto-save=\"true\"\n          :view=\"{ only: { fields: ['datei'] }}\"\n          :readonly=\"params.readonly\"\n        ></ae-form>\n      </div>\n    </div>\n\n    <div\n      v-if=\"params.windowWidth >= 1280\"\n      class=\"h-full w-full basis-1/3 max-w-[350px] border-l bg-white overflow-hidden flex flex-col\"\n    >\n      <ae-design\n        name=\"rd:details\"\n        :document=\"document\"\n        :param-readonly=\"params.readonly\"\n      ></ae-design>\n    </div>\n  </div>\n\n  <ae-design\n    class=\"absolute top-0 bottom-0 right-0\"\n    v-if=\"locals.showDetails\"\n    name=\"rd:details\"\n    :document=\"document\"\n    :param-readonly=\"params.readonly\"\n  ></ae-design>\n\n  <ae-design class=\"w-full\" name=\"rd:page-workflow\" :document=\"document\"></ae-design>\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"c2d9ae57c7a46896"},"id":"0f478706-2101-4627-ba2a-2061e9fe6c73","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-02-27T10:58:37+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"dbee6e16-d63a-493c-bba6-505f79918f9f","previous":{"v":"30a07c4951759fdb"},"stamps":[],"t":1740653917391,"v":"6c71141fff054c94"},{"id":"0fae6069-0d7d-4f79-a027-92c9786e1377","v":"8abd54bc147c9c0b","cloneOf":{"id":"0e52e382-b755-482d-aade-97fcde73ac20","v":"e2e3d422b587070c","text":"page"},"originalCloneOf":{"id":"0e52e382-b755-482d-aade-97fcde73ac20","v":"e2e3d422b587070c","text":"page"},"previous":{"v":"f22cc16a221165e8"},"p":"14931d03-c3bb-4cf7-9f62-747f94d8b01a","f":{"id":"design-form","v":"0061789efb5c5c29","text":"Design"},"data":{"name":"rd:page-inner","template":"<div v-if=\"locals.unterweisung\" class=\"flex flex-col p-4 gap-2\">\n  <div class=\"text-2xl font-bold\">{{ locals.unterweisung.data.name }}&nbsp;</div>\n\n  <small v-if=\"locals.unterweisung.data.fragen?.length\" class=\"text-sm\">Quiz mit {{ locals.unterweisung.data.fragen.length }} Fragen</small>\n  \n  <div v-if=\"data.gelesen\" class=\"py-4 bg-white p-4 shadow rounded-md\">\n    <ae-icon class=\"fa fa-check-circle text-green-500\"></ae-icon>\n    Bestätigt am {{ Aeppic.DateTime.fromISO(data.gelesenAm).toLocaleString(Aeppic.DateTime.DATETIME_SHORT) }}\n  </div>\n\n  <div v-if=\"document.data.bewertung\" class=\"py-4 bg-white p-4 shadow rounded-md flex gap-2 items-center\">\n    Bewertung: <ae-control class=\"flex-1\" name=\"rd:select\" field-name=\"bewertung\" :document=\"document\" :readonly=\"true\"></ae-control>\n  </div>\n\n  <div v-if=\"locals.unterweisung.data.kommentar\" class=\"py-4 bg-white p-4 shadow rounded-md\">{{ locals.unterweisung.data.kommentar }}</div>\n\n\n\n  <ae-design name=\"rd:page-inner\" :document=\"locals.folder\" :param-disable-new=\"true\" :param-readonly=\"true\"></ae-design>\n\n</div>","css":"","controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Ordner: 'a04c8913-db48-4e80-b20d-0f3cc17a778c'\n    }\n\n    locals.unterweisung = null\n    locals.unterweisung = await Aeppic.get(document.p)\n\n    locals.folder = await Aeppic.findOne(`p:${locals.unterweisung.id} f.id:${this.FORMS.Ordner}`)\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-10-16T12:24:11+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2024-02-08T15:59:15+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1707407955960,"ct":1697459051230,"a_depth":4,"a":["apps","f416e371-07cc-4987-a6de-5934ef5ff3e4","1096c5df-2773-4914-9455-dc54e0f3e0e5","14931d03-c3bb-4cf7-9f62-747f94d8b01a"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"10d749c8-7342-4440-b54c-8fdfcee60bb5","v":"2cc798918ad31a2b","previous":{"v":"d2ab1ee49defe116"},"p":"fbba64b7-a744-43b4-9359-0ab956d06f6c","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-inner","template":"<ae-design class=\"h-full w-full\" v-if=\"params.view === 'overview'\" name=\"rd:overview\" :document=\"document\" :params=\"params\"></ae-design>\n<ae-design class=\"h-full w-full\" v-if=\"params.view === 'employee'\" name=\"rd:page-inner\" :document=\"locals.employeeFolder\" :params=\"params\"></ae-design>\n<ae-design class=\"h-full w-full\" v-if=\"params.view === 'applicant'\" name=\"rd:page-inner\" :document=\"locals.applicantFolder\" :params=\"params\"></ae-design>","css":"","controller":"class Controller {\n  async init() {\n    const [ employeeFolder, applicantFolder ] = await Promise.all([\n      Aeppic.findOne(`a:${document.a[0]} f.id:df3870fe-b129-4535-9e52-c33a05fb4bce`),\n      Aeppic.findOne(`a:${document.a[0]} f.id:ebb00fab-fe96-4562-a7cd-1fac9a420d50`)\n    ])\n\n    locals.employeeFolder = employeeFolder\n    locals.applicantFolder = applicantFolder\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-04-20T13:19:14+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-04-24T10:27:15+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1682332035147,"ct":1681996754385,"a_depth":4,"a":["apps","a590ce5b-28fc-4f85-9049-d006e1b8f880","169e87e0-0379-48e1-8c94-8fadac5969bb","fbba64b7-a744-43b4-9359-0ab956d06f6c"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"1188e47f-7379-4bce-b86a-a6b897335ef6","v":"f2847c5d9ea652a6","previous":{"v":"0946149826ccea2b"},"p":"7be5f2c5-206b-4ab6-9d4d-c4834baf8e32","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-inner","template":"<div class=\"flex flex-col h-full w-full\" @toolbar=\"controller.dispatchEventChildren('inner', 'toolbar', $event.detail)\">\n  <div class=\"overflow-hidden w-full flex-1 flex\">\n    <ae-design  ref=\"inner\"\n                :name=\"'rd:' + data.type\"\n                :document=\"document\"\n                :params=\"params\"\n                :param-view=\"params.view\"\n                :param-tab=\"params.tab\"\n                :param-window-width=\"params.windowWidth\"\n                :param-table-style=\"true\"\n                class=\"flex-1 w-full h-full overflow-auto\"\n    ></ae-design>\n  </div>\n</div>   ","css":"","controller":"  dispatchEventChildren(refName, eventName, eventValue) { \n    if (!$refs[refName] || !$refs[refName].$el || !$refs[refName].$el.children) {\n      return\n    }\n    const children = $refs[refName].$el.children\n    for (let i = 0; i < children.length; i++) {\n      children[i].dispatchEvent(new CustomEvent(eventName, {\n        detail: eventValue\n      }))\n    }\n    $refs[refName].$emit(eventName, eventValue)\n  }","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-07-20T11:17:41+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2024-02-19T12:17:10+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1708345030708,"ct":1689851861372,"a_depth":4,"a":["apps","599db2de-4e07-4722-98bd-7f42d498b352","79718664-ed22-4b52-9c10-037881df3578","7be5f2c5-206b-4ab6-9d4d-c4834baf8e32"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","0bb3d600-faf0-4a5c-b49f-7994d234ae76"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2023-04-27T08:54:40+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1682585680925,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.activeDocuments = []\n    locals.inactiveDocuments = []\n\n    Aeppic.subscribe(`a:${document.id}`, { size: 9999, sort: 'data.name' }, async (documents) => {\n      // make the actual find. The subscription should just ensure that all stamp changes will also enqueue another check\n      const ensuredDocuments = await Aeppic.find(`p:${document.id}`, { size: 9999, sort: 'data.name '})\n\n      const activeDocuments = []\n      const inactiveDocuments = []\n\n      ensuredDocuments.forEach(doc => {\n        if (!(doc.stamps?.length)) {\n          return\n        }\n\n        if (!doc.readonly) {\n          activeDocuments.push(doc) \n        } else {\n          inactiveDocuments.push(doc)\n        }\n      })\n\n\n      locals.activeDocuments = activeDocuments\n      locals.inactiveDocuments = inactiveDocuments\n    })\n  }\n} ","css":"","description":"","name":"rd:page-inner","packages":[],"template":"<div class=\"flex flex-col\">\n  <ae-form :document=\"document\" \n            layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\"\n            :readonly=\"params.readonly\"\n  ></ae-form>\n\n  <div class=\"mx-auto w-full max-w-5xl\">\n    <div class=\"bg-white xl:rounded-md xl:shadow p-4 flex flex-col gap-4\">\n\n      <section class=\"flex flex-col\">\n        <div class=\"font-bold\">\n          Antrags-Formulare\n        </div>\n        <ae-list list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\"\n        :documents=\"locals.activeDocuments\"\n        param-design=\"itm:application-card\"\n        :param-divide=\"true\"\n        @selected=\"Aeppic.drillInto($event, arguments[1])\"\n        ></ae-list>\n      </section>\n\n      <ae-design class=\"w-full\" name=\"rd:page-workflow\" :document=\"document\"></ae-design>\n\n\n      <!-- <template>\n        <div class=\"font-bold mt-10\">\n          Inaktive Anträge \n        </div>\n        <ae-list list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\"\n                :documents=\"locals.inactiveDocuments\"\n                param-design=\"rd:card\"\n        ></ae-list>\n      </template> -->\n    </div>\n\n    <!-- <div class=\"w-full flex-1 flex flex-col gap-1\">\n      <div class=\"w-full flex-1 overflow-y-auto basis-2/3 pb-1 overflow-x-auto\">\n      </div>\n  \n    </div> -->\n  </div>\n</div>"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"1312c269-6368-4c65-abd5-2be7aeb2c460","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-07-04T12:04:36+00:00","backedBy":null,"by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":null},"p":"0bb3d600-faf0-4a5c-b49f-7994d234ae76","previous":{"v":"effa1e4af4ef7af0"},"stamps":[],"t":1751630676121,"v":"005e5ac8dedb9119"},{"id":"14ac8d9b-05c0-40be-9ad6-ab80a2f656b0","v":"8b5968c64b5c8f3c","cloneOf":{"id":"5c1a5183-8a8a-48f4-9898-f1f53f5d95ae","v":"b35db9cdb29a08da","text":"page"},"originalCloneOf":{"id":"5c1a5183-8a8a-48f4-9898-f1f53f5d95ae","v":"b35db9cdb29a08da","text":"page"},"previous":{"v":"initial"},"p":"522ca40d-810b-4021-835f-beeace3af7fa","f":{"id":"design-form","v":"3385ac6766f32638","text":"Design"},"data":{"name":"rd:page-inner","template":"<template v-if=\"locals.ready\">\n  <ae-design v-if=\"locals.isVerwalter\" ref=\"page\" @toolbar.native=\"controller.dispatchEventChildren('page', 'toolbar', $event.detail)\" name=\"rd:page--administator\" :document=\"document\" :params=\"params\" v-on=\"$listeners\"></ae-design>\n  <ae-design v-else name=\"rd:page--worker\" ref=\"page\" @toolbar.native=\"controller.dispatchEventChildren('page', 'toolbar', $event.detail)\" :document=\"document\" :params=\"params\" v-on=\"$listeners\"></ae-design>\n</template> ","css":"","controller":"class Controller {\n  async init() {\n    locals.ready = false\n    \n    locals.isVerwalter = false\n    locals.isVerwalter = (await Aeppic.Commands.execute('950f35d3-95ba-4d5a-a164-0074c767d600', document, { Account: Aeppic.Account })).value\n    \n    locals.ready = true\n  }\n\n   dispatchEventChildren(refName, eventName, eventValue) { \n    if (!$refs[refName] || !$refs[refName].$el || !$refs[refName].$el.children) {\n      return\n    }\n    const children = $refs[refName].$el.children\n    for (let i = 0; i < children.length; i++) {\n      children[i].dispatchEvent(new CustomEvent(eventName, {\n        detail: eventValue\n      }))\n    }\n    $refs[refName].$emit(eventName, eventValue)\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-05-23T09:56:50+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-05-23T09:57:12+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1716458232156,"ct":1716458210462,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","522ca40d-810b-4021-835f-beeace3af7fa"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","11eadb22-66ab-4417-8b51-298895b44d0d"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"70447c42-c855-4625-918d-f24d8b258d98","text":"rd:page-inner","v":"ad04c2901b0ce3cf"},"created":{"at":"2026-04-27T13:30:08+00:00","backedBy":"","by":"09763886-6748-4a56-8e0e-54a2293ee96b","client":"server","from":"","impersonatedBy":""},"ct":1777296608549,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:page-inner","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<div class=\"flex flex-col gap-4\">\n  <ae-design name=\"rd:page-inner_default\" :document=\"document\"></ae-design>\n  <ae-design name=\"rd:usage-list\" :document=\"document\" param-field-name=\"data.labels\"></ae-design>\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"1a85a469-1631-4775-a675-1eeb1f644bc2","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-04-27T13:30:08+00:00","backedBy":"","by":"09763886-6748-4a56-8e0e-54a2293ee96b","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"70447c42-c855-4625-918d-f24d8b258d98","text":"rd:page-inner","v":"ad04c2901b0ce3cf"},"p":"11eadb22-66ab-4417-8b51-298895b44d0d","stamps":[],"t":1777296608551,"v":"initial"},{"a":["apps","3fbe0efd-713a-457a-a34c-3a12aa19d6bb","0fb162f4-0f78-4c1e-aad2-43c27e6d98cb","e170bb6c-f326-446d-870a-ada9d9f67230"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2024-06-26T08:43:48+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1719391428919,"data":{"aliases":[],"controller":"async init() {\n  this.FORMS = {\n    Role: '8fef472f-9220-484b-99cd-bb80f208f795'\n  }\n\n  locals.sort = {\n    field: 'data.name',\n  }\n\n  locals.rolesQuery =  `p:${document.id} f.id:${this.FORMS.Role}`\n}\n","css":"","description":"","name":"rd:page-inner","packages":[],"template":"<div class=\"h-full flex\">\n  <div v-if=\"params.windowWidth >= 1024 || !params.tab || params.tab === 'roles'\" class=\"h-full p-4 bg-white flex flex-col flex-1 basis-2/3 overflow-auto\">\n    <ae-design name=\"closed-info\" :document=\"document\"></ae-design>\n      <div v-if=\"data.castingSheetPdfLanguage === ''\" class=\"h-full w-full text-error-600 flex items-center justify-center\">\n        <span>\n       \"Ausgabe-Sprache des Casting Sheet PDF\" auswählen!\n        </span>\n      </div>\n      <template v-else>\n      <label class=\"text-lg font-bold\">\n        Rollen\n      </label>\n      \n      <ae-design name=\"rd:toolbar\" :document=\"document\" \n                :params=\"{ disableSortFilter: true, readonly: data.castingSheetPdfLanguage === '' }\"\n      ></ae-design>\n\n\n      <ae-list  list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\"\n                :query-once=\"true\"\n                :root-document-id=\"document.id\"\n                :search=\"locals.rolesQuery\"\n                :sort=\"locals.sort\"\n                :search-options=\"{ searchAllFields: true, size: 9999 }\"\n                @selected=\"Aeppic.navigateTo($event, { tab: 'applications' })\"\n                param-empty-text=\"Keine Rollen erstellt\"\n                param-design=\"rd:card-inner\"\n                :param-design-params=\"{ hidePath: true, hideIcon: true, noBorder: true }\"\n                :param-divide=\"true\"\n                :param-no-watch=\"true\"\n      ></ae-list>\n      </template>\n  </div>\n\n\n  <div v-if=\"params.tab === 'project' || params.windowWidth >= 1024\" class=\"h-full w-full lg:max-w-[500px] border-l bg-white overflow-auto flex flex-col\">\n    <ae-form layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\"\n            :document=\"document\"\n            :auto-save=\"true\"\n    ></ae-form>\n  </div>\n</div>\n "},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"1affc283-37d1-4dd2-bac0-572a39a66952","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-07-30T11:26:29+00:00","backedBy":"","by":"b7485498-f1f3-4ab1-87d1-9cb63ea890c8","client":"server","from":"","impersonatedBy":""},"p":"e170bb6c-f326-446d-870a-ada9d9f67230","previous":{"v":"4e347d1c81b6d866"},"stamps":[],"t":1785410789578,"v":"93097ea7c92c4a6d"},{"a":["apps","f416e371-07cc-4987-a6de-5934ef5ff3e4","1096c5df-2773-4914-9455-dc54e0f3e0e5","06971b6e-2e82-40e0-9121-3bb78611fc4a"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"3ef3694c-a683-4466-a425-d8e44b8355ed","text":"page","v":"5454f19e97a920db"},"created":{"at":"2023-10-10T13:36:22+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1696944982016,"data":{"aliases":[],"controller":"class Controller {\n  init() {\n  }\n}","css":"","description":"","name":"rd:page-inner","packages":[],"template":""},"f":{"id":"design-form","text":"Design","v":"0061789efb5c5c29"},"id":"1b098cc9-53fc-40d0-a008-104b42424b84","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-12-04T15:03:10+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"3ef3694c-a683-4466-a425-d8e44b8355ed","text":"page","v":"5454f19e97a920db"},"p":"06971b6e-2e82-40e0-9121-3bb78611fc4a","previous":{"v":"3d8ade23fb23cbd3"},"stamps":[],"t":1764860590460,"v":"211179c61a83cc00"},{"a":["apps","75c6f72a-08a2-44f4-a29c-86b58be26f96","d0e84149-815a-4c38-a801-1664583fef16","73974d8e-7d35-4b59-acf0-84c529b194f1"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2024-11-21T13:02:34+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1732194158660,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    this.sub = null\n    locals.documents = []\n    // TODO: remove params.initialSortBy\n    locals.sort = {\n      field: data.sortBy || params.initialSortBy || 'data.name',\n      descending: typeof params.initialSortAsc === 'boolean' ? !params.initialSortAsc : null,\n    }\n    locals.filter = ''\n    locals.dateColumnsConfiguration = null\n\n    Aeppic.watch(document.id, () => this.update())\n\n    this.update()\n  }\n\n  async update() {\n    const result = await Aeppic.Actions.run(['7ccb0102-e758-48ea-a39f-6da70d72593c'], {\n      dateColumns: data.dateColumns,\n      dateFields: data.dateFields,\n      dateFieldColors: data.dateFieldColors,\n      form: data.form,\n    })\n\n    locals.dateColumnsConfiguration = result[0].value\n\n    const queryFieldsQuery = locals.dateColumnsConfiguration.queryFields.length\n      ? `(${locals.dateColumnsConfiguration.queryFields.join(' OR ')})`\n      : ''\n\n    const query = `p:${document.id} f.id:${data.form.id} ${queryFieldsQuery}`\n\n    console.log({ query, queryFieldsQuery })\n\n    this.sub = Aeppic.updateSubscription(this.sub, query, { sort: locals.sort, size: 9999 }, (docs) => {\n      locals.documents = this.filter(docs)\n    })\n  }\n\n  filter(docs) {\n    if (!locals.dateColumnsConfiguration.fields.length) {\n      return docs\n    }\n\n    return docs.filter((doc) => {\n      return locals.dateColumnsConfiguration.fields.some((fieldName) => {\n        const value = this.resolveField(doc, fieldName)\n        return value && value !== '{}'\n      })\n    })\n  }\n\n  async updateTableDates(dates) {\n    const editable = await Aeppic.edit(document)\n    editable.data.dateColumns = dates\n    Aeppic.save(editable)\n  }\n\n  resolveField(object, path) {\n    const parts = path.split('.')\n    let value = object\n\n    while (parts.length > 0) {\n      const part = parts.shift()\n\n      value = value[part]\n\n      if (value == null) {\n        if (part === 'raw') {\n          return [value]\n        }\n\n        return [undefined]\n      }\n\n      if (parts.length === 0) {\n        if (Array.isArray(value)) {\n          return value\n        } else {\n          return [value]\n        }\n      }\n\n      if (Array.isArray(value)) {\n        return value.map((v) => this.resolveField(v, parts.join('.')))\n      }\n    }\n\n    if (value === object) {\n      return [null]\n    } else {\n      return [value]\n    }\n  }\n\n  get sharedPageContextScopeName() {\n    return `layoutName:pageDocument,documentId:${document.id}`\n  }\n\n  setFilter(event) {\n    locals.filter = event\n    SharedContext.set(this.sharedPageContextScopeName, 'page', { filters: event })\n  }\n}\n","css":"","description":"","name":"rd:page-inner","packages":[],"template":"<div class=\"bg-white h-full w-full\">\n  <div class=\"h-full w-full flex flex-col overflow-hidden\">\n    <!-- <ae-layout  layout-id=\"2a8a4535-b320-4fa1-b1e3-2b6f583c6540\"\n                :param-document=\"document\"\n                @dates=\"controller.updateTableDates($event)\"\n                class=\"_CSS-dates-filter\"\n                v-if=\"locals.dateColumnsConfiguration && locals.dateColumnsConfiguration.queryFields.length\"\n    ></ae-layout>   --> \n    <div class=\"flex gap-2 justify-between\">\n      <ae-design name=\"rd:toolbar\" :document=\"document\"\n                :param-list-form-id=\"data.form.id\"\n                @filter=\"controller.setFilter($event)\"\n                @sort=\"locals.sort = $event\"\n                class=\"flex-1\"\n      ></ae-design>\n      <ae-layout v-if=\"data.additionalFilterLayout.id\" :layout-id=\"data.additionalFilterLayout.id\"\n                :param-document=\"document\"\n                class=\"flex-1 shrink-1\"\n      ></ae-layout>\n    </div>\n    <ae-list  :documents=\"locals.documents\" \n              xlist-id=\"table-list\"\n              list-id=\"a23ea6b1-92ed-4ebc-bd3f-cb4eb1ae6ee7\"\n              :filter=\"locals.filter\"  \n              @selected=\"Aeppic.drillInto($event, arguments[1])\"\n            :param-columns=\"data.displayTableColumns\"\n            :param-headers=\"data.displayTableHeaders\"\n            :param-designs=\"data.displayTableDesigns\"\n            :param-list-form-id=\"data.form.id\"\n            :sort=\"locals.sort\"\n            :param-initial-sort-by=\"data.sortBy\"\n            :param-initial-sort-asc=\"data.sortAsc\"\n            :param-show-reset-sorting=\"data.showResetSorting\"\n            :param-row-height=\"data.rowHeight\"\n            :watch-list=\"false\"\n            :search-options=\"{ searchAllFields: true, size: 2000 }\"\n            :param-contents-form=\"data.form\"\n            :param-filter-fields=\"data.filterFields\"\n            :param-sort-fields=\"data.sortFields\"\n            :param-list-document=\"document\"\n            :param-additional-filter-layout-id=\"data.additionalFilterLayout.id\"\n            :param-date-fields=\"data.dateFields\"\n            :param-date-columns=\"data.dateColumns\"\n            :param-date-field-colors=\"data.dateFieldColors\"\n            :param-date-field-designs=\"data.dateFieldDesigns\"\n            :param-min-column-widths=\"data.minColumnWidths\"\n            :param-fixed-column-widths=\"data.fixedColumnWidths\"\n            :param-show-sums=\"data.showSums\"\n            class=\"w-full h-full overflow-scroll\"\n    ></ae-list>\n  </div>\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"1c95bd64-9904-4078-9b45-f7e97e2c8596","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-04-13T12:53:15+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"p":"73974d8e-7d35-4b59-acf0-84c529b194f1","previous":{"v":"1b5d5e2a783292d0"},"stamps":[],"t":1776084795543,"v":"b2ed3a1133a9ae5d"},{"a":["apps","94a64d89-d204-4918-b147-d717914fb03e","f254ce25-42f1-4333-8ee7-23554bf746c1","98c77209-1245-43d6-90b5-8625183f470c"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2024-03-26T12:33:44+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1711456424723,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.view = null\n    locals.form = null\n\n    this.updateView(params.tab)\n    watchParam('tab', tab => this.updateView(tab))\n\n    locals.form = await Aeppic.getFormForDocument(document)\n\n    locals.allowUndefinedFields = locals.form.data.allowUndefinedFields === true\n  }\n\n  updateView(tab) {\n    const getIndex = (tab) => {\n      switch (tab) {\n        case 'project':\n          return {\n            startWithSection: 1\n          }\n        case 'services':\n          return {\n            startWithSection: 5,\n            only: {\n              fields: []\n            }\n          }\n        case 'tasks':\n          return {\n            startWithSection: 6,\n            // only: {\n            //   fields: []\n            // }\n          }\n  \n        case 'correspondence':\n          return {\n            startWithSection: 7\n          }\n  \n        case 'documents':\n          return {\n            startWithSection: 8\n          }\n  \n        case 'protocolls':\n          return {\n            startWithSection: 9\n          }\n        case 'contracts':\n          return {\n            startWithSection: 10\n          }\n  \n        default:\n          return null\n      }\n    }\n\n    locals.view = getIndex(tab)\n    $refs.form?.refreshViewCache()\n  }\n} ","css":"","description":"","name":"rd:page-inner","packages":[],"template":"<div class=\"flex h-full\" ref=\"container\">\n  <div class=\"flex-1 h-full overflow-auto basis-2/3\">\n    <ae-form  v-if=\"locals.view && locals.view.only?.fields.length != 0\"\n              :key=\"locals.view?.startWithSection\"\n              :document=\"document\"\n              :auto-save=\"true\"\n              :auto-save-after=\"2500\"\n              layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\"\n              class=\"w-full\"\n              :readonly=\"params.readonly\"\n              :view=\"locals.view\"\n    ></ae-form>\n    <!-- FIXME: name seems to not update correctly sometimes when chaning params.tab too fast? thus the key -->\n    <ae-design v-else :name=\"'rd:' + params.tab\" :document=\"document\" class=\"w-full\" :key=\"design.id + params.tab\"></ae-design>\n  </div>\n  <template v-if=\"params.windowWidth >= 1280\">\n    <ae-layout  v-if=\"!locals.allowUndefinedFields\"\n                layout-id=\"0e6b3b93-8e22-4616-9389-a00a6a1a4f59\"\n                :param-document=\"document\"\n                :param-highlight-comment=\"params.highlightComment\"\n                :param-no-close=\"true\"\n                class=\"h-full w-full basis-1/3 max-w-[500px] lg:mx-2\"\n    ></ae-layout>\n\n    <ae-design  v-if=\"locals.allowUndefinedFields\"\n                name=\"rd:undefined-fields\"\n                :document=\"document\"\n                class=\"h-full w-full basis-1/3 max-w-[500px] shadow lg:my-2 lg:ml-2\"\n                :param-readonly=\"params.readonly\"\n    ></ae-design>\n  </template>\n</div>\n\n"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"1cb579a2-d493-4b0c-a974-3f21189865f7","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-03-16T10:51:04+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"p":"98c77209-1245-43d6-90b5-8625183f470c","previous":{"v":"fca69afe93869980"},"stamps":[],"t":1773658264404,"v":"9015b76e980f5256"},{"id":"1cf5b4c3-6bdf-47c7-aee9-d98827c554cd","v":"f561d4eb346b59a8","previous":{"v":"initial"},"p":"192961fd-cab8-4fab-bfd8-6722dce765c8","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-inner","template":"<ae-design name=\"rd:page-list\" :document=\"document\"></ae-design>\n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-05-07T12:35:52+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-05-07T12:36:14+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1715085374235,"ct":1715085352767,"a_depth":4,"a":["apps","bc036ad0-6dbc-415b-b506-325fb0a44046","8ffb21f4-3d63-4824-a633-10a19d7aa7d8","192961fd-cab8-4fab-bfd8-6722dce765c8"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"1e0c6a0a-df38-4cc4-9b39-13ab07a8581b","v":"cdcf8645cec46356","previous":{"v":"initial"},"p":"43420696-8097-4fc1-88e5-c69df9821470","f":{"id":"design-form","v":"22a757f630104010","text":"Design"},"data":{"name":"rd:page-inner","template":"","css":"","controller":"class Controller {\n  init() {\n    Aeppic.navigateTo(document.p)\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-09-30T13:43:47+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-09-30T13:44:04+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1727703844205,"ct":1727703827525,"a_depth":4,"a":["apps","089481c4-a42f-4a98-9bc9-12e9f1131f4b","5fa71c32-0186-4007-92a9-f03a32b0ff33","43420696-8097-4fc1-88e5-c69df9821470"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"21c51054-390d-4bda-b84d-80d4255b7dae","v":"0b72319615ed1c09","previous":{"v":"4a4b67ef803a6c04"},"p":"766c24c5-542c-4887-bf65-43ad85e6c476","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"rd:page-inner","template":"<ae-form :document=\"document\" :auto-save=\"true\" :readonly=\"params.readonly\"></ae-form>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-06-02T12:34:14+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2024-02-22T12:46:19+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1708605979558,"ct":1654173254799,"a_depth":4,"a":["apps","59edbdbc-2cab-426a-bb42-6e57c5158e4f","3be7e887-1bcd-4c3c-979f-b20a986c4c48","766c24c5-542c-4887-bf65-43ad85e6c476"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"222980f1-6c5a-4a87-bb25-2dfb9d0aa67e","v":"02832f2c938e32fc","previous":{"v":"21ef235b40894cef"},"p":"71a3f943-571a-4e4f-a97c-dd809d6b10e4","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-inner","template":"<ae-design :name=\"'rd:' + (params.view || 'list')\" :document=\"document\" class=\"h-full\" :params=\"params\"></ae-design> ","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-06-15T12:31:54+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-11-24T12:55:28+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1700830528841,"ct":1686832313980,"a_depth":4,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","71a3f943-571a-4e4f-a97c-dd809d6b10e4"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"24da809e-5989-417d-abfe-0524a3daa212","v":"a1732c13443fb363","previous":{"v":"2748a0662c60b06d"},"p":"cf155969-ede1-43a4-9b10-3a697b19db91","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"rd:page-inner","template":"<ae-form :document=\"document\" \n          :auto-save=\"true\"\n          layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\"\n          :readonly=\"params.readonly\"\n></ae-form>\n ","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-07-05T15:12:55+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2024-02-22T12:48:53+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1708606133926,"ct":1657033975717,"a_depth":4,"a":["apps","14c27659-92d7-4b43-8c4f-25f4cceae591","2e759bfa-c685-48e8-81b4-cec70e93c521","cf155969-ede1-43a4-9b10-3a697b19db91"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"26ebae08-e7af-452f-b052-e98d6da080f0","v":"f6cb070ac747acd5","cloneOf":{"id":"07a4b350-bca2-488a-8a42-956a589b9276","v":"8cf152a11ef94d61","text":"rd:page-inner"},"originalCloneOf":{"id":"07a4b350-bca2-488a-8a42-956a589b9276","v":"8cf152a11ef94d61","text":"rd:page-inner"},"previous":{"v":"210f9299c0415ed5"},"p":"f8d9d7d9-bfb4-4555-8163-ae962ed41a38","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-inner","template":"<ae-design name=\"rd:page-list\" :document=\"document\"></ae-design>\n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-08-14T10:10:26+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-12-12T10:20:09+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1702376409748,"ct":1692007826760,"a_depth":4,"a":["apps","9d6ee173-26fe-4472-a271-7667f717094e","6743ef9a-c21b-443f-91b8-4dd86886ee8c","f8d9d7d9-bfb4-4555-8163-ae962ed41a38"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"277732cc-f527-40f7-9c9c-9c10a7960a48","v":"4340f1ab762fb444","previous":{"v":"616c50263cfaa38b"},"p":"fe4781b7-320b-4c17-99fc-8ba00a27f42b","f":{"id":"design-form","v":"22a757f630104010","text":"Design"},"data":{"name":"rd:page-inner","template":"<ae-design name=\"rd:page-list\" :document=\"document\"\n:params=\"params\" v-on=\"$listeners\" class=\"h-full\"></ae-design>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-11-03T13:44:36+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-11-03T13:45:46+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1730641546860,"ct":1730641476039,"a_depth":4,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","fe4781b7-320b-4c17-99fc-8ba00a27f42b"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"2778ed7f-64c6-41ce-bf02-5489f4888392","v":"513ed0bf12fd6972","cloneOf":{"id":"5aecde60-e2dc-4498-9b94-17d596047a74","v":"4d2366446183ec3e","text":"rd:page-inner"},"originalCloneOf":{"id":"5aecde60-e2dc-4498-9b94-17d596047a74","v":"4d2366446183ec3e","text":"rd:page-inner"},"previous":{"v":"74dd8327c2aef3ed"},"p":"e85fc64c-df8a-493a-a7ce-fefa6d85d608","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-inner","template":"<div class=\"flex flex-col h-full bg-white overflow-hidden md:flex-row\"> \n  <section class=\"\">  \n    <section class=\"flex flex-col gap-2 mb-2 md:mb-10 p-4\">\n      <div class=\"flex items-center gap-4\">\n        <div class=\"text-2xl\">\n          Ordner\n        </div>\n  \n        <ae-design name=\"rd:toolbar\"\n                  :document=\"document\"\n                  :params=\"{ disableFilter: true, disableSort: true, disableSearch: true, loadingText: 'Neu' }\"\n        ></ae-design> \n      </div>\n\n      <ae-design name=\"rd:folders-menu\"\n                :document-id=\"document.p\"\n                :param-active-document=\"document\"\n      ></ae-design> \n    </section>\n  </section>\n  <section class=\"w-full\">\n  <ae-list     list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\"\n              :root-document-id=\"document.id\"\n              query-id=\"71d5633a-9dbd-4c96-b6e0-1c6ffc5ef0f1\"\n              :filter=\"'f.id:' + locals.FORMS.Projekt\"\n              :search-options=\"{ searchAllFields: true }\"\n              :param-list-form-id=\"locals.FORMS.Projekt\"\n              :sort=\"[{ field: 'data.sofort', descending: true }, { field: 'data.express', descending: true }, 'data.termin', { fields: ['data.name', 'id'] }]\" \n              :param-debug=\"false\" \n              :param-design-params=\"{ hidePath: true }\"\n              @selected=\"Aeppic.drillInto($event, arguments[1])\"\n    ></ae-list> \n  </section>\n</div>  ","css":"","controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Projekt: '27a5cf6e-22f8-44d2-8107-400b27382690',\n      Board: 'b48189af-7305-4ee5-ab8b-e15cbcd55aa7',\n      Ordner: 'e85fc64c-df8a-493a-a7ce-fefa6d85d608',\n    }\n    locals.FORMS = this.FORMS\n\n    locals.filter = ''\n    locals.current = []\n    locals.retired = []\n    locals.all = []\n  }\n\n  async navigateToAllFolders() {\n    if (document.f.id === this.FORMS.Board) {\n      return\n    }\n\n    const verwaltung = await Aeppic.get(document.a_forms.findIndex(aForm => aForm === this.FORMS.Board))\n\n    Aeppic.navigateTo(verwaltung)\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-01-19T14:52:49+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-02-08T13:21:22+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1707398482575,"ct":1705675969272,"a_depth":4,"a":["apps","90a38bb1-5683-49d1-b519-203876cc6967","4bfbe5fd-cf64-4b07-b91f-17bade3f41f9","e85fc64c-df8a-493a-a7ce-fefa6d85d608"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"29481852-f429-4641-abc8-a120934bebe8","v":"91395acbc1a92e2a","previous":{"v":"7ca2416ae6f80b05"},"p":"5475727b-0e0c-412a-8452-23b9c5b242f2","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"rd:page-inner","template":"<ae-design :name=\"'rd:' + params.view\" :document=\"document\" class=\"h-full\" :params=\"params\"></ae-design>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-05-04T14:33:01+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-05-05T09:38:20+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1683279500881,"ct":1651674781105,"a_depth":4,"a":["apps","9d6ee173-26fe-4472-a271-7667f717094e","6743ef9a-c21b-443f-91b8-4dd86886ee8c","5475727b-0e0c-412a-8452-23b9c5b242f2"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["system","04632e3e-9132-4927-b91d-3c28d1afe3e9","a9dbf1ad-0428-403e-b88b-bd73c35cf381"],"a_depth":3,"a_forms":["system-folder-form","folder","form"],"created":{"at":"2025-10-07T13:45:09+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"ct":1759844709991,"data":{"aliases":[],"controller":"class Controller {\n  init() {\n    locals.theme = null\n  }\n  \n  mounted() {\n    locals.theme = SharedContext.get('ae:theme')\n  }\n\n}","css":".padded-scrollbar::-webkit-scrollbar-track {\n  margin-block: 1.5rem;\n}","description":"","name":"rd:page-inner","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<div\n  class=\"w-full h-full p-6 overflow-y-auto padded-scrollbar bg-surface-container-highest\"\n>\n  <ae-layout\n    layoutId=\"612df656-c4e8-412f-98fa-befecacc9302\"\n    class=\"w-full\"\n  >\n  </ae-layout>\n</div>"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"2b564bca-6038-4d85-ad2f-9e7c351d41af","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2025-10-07T13:45:48+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"a9dbf1ad-0428-403e-b88b-bd73c35cf381","previous":{"v":"initial"},"stamps":[],"t":1759844748050,"v":"45ad412bb2b5bdd7"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","31e6efab-61df-4b91-8250-3bfcfd491c6c"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"f118fe34-6019-44b6-abfa-8ff07aa75f25","text":"rd:page-inner","v":"initial"},"created":{"at":"2026-04-28T08:02:37+00:00","backedBy":"","by":"09763886-6748-4a56-8e0e-54a2293ee96b","client":"server","from":"","impersonatedBy":""},"ct":1777363357378,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:page-inner","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<ae-design \n  class=\"size-full\"\n  name=\"rd:page-inner_tabs\" \n  :document=\"document\"\n  :params=\"params\"\n></ae-design>"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"2e4a4fa9-4da2-4698-b611-99848b453cb6","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-04-28T08:02:37+00:00","backedBy":"","by":"09763886-6748-4a56-8e0e-54a2293ee96b","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"f118fe34-6019-44b6-abfa-8ff07aa75f25","text":"rd:page-inner","v":"initial"},"p":"31e6efab-61df-4b91-8250-3bfcfd491c6c","stamps":[],"t":1777363357378,"v":"initial"},{"a":["apps","f416e371-07cc-4987-a6de-5934ef5ff3e4","1096c5df-2773-4914-9455-dc54e0f3e0e5","df2289af-8af8-4a2f-a45d-debbdd3d6760"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2023-10-10T13:37:31+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1696945051101,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      UnterweisungenEinesProfiles: 'd1762f3d-541a-4100-bab3-3a4b74b2131a',\n    }\n\n    locals.ready = false\n\n    locals.acks = [] \n    locals.usersLinks = null \n    locals.usersLinks = await Aeppic.get(`${Aeppic.ProfilePage.id}_${this.FORMS.UnterweisungenEinesProfiles}`)\n\n    watchParam('tab', tab => this.update(tab))\n\n    await this.update(params.tab)\n\n    locals.ready = true\n  }\n\n  async update(tab) {\n    if (!locals.usersLinks) {\n      locals.acks = []\n      return\n    }\n\n    const sort = {\n      field: 'created.at',\n      descending: true\n    }\n\n    if (tab === 'unread' || !tab) {\n      locals.acks = Aeppic.sort((await Aeppic.getAll(locals.usersLinks.data.ungeleseneLesebestaetigungen)).filter(Boolean), sort)\n      return\n    } \n    \n    if (tab === 'read') {\n      locals.acks = Aeppic.sort((await Aeppic.getAll(locals.usersLinks.data.geleseneLesebestaetigungen)).filter(Boolean), sort)\n      return\n    }\n    \n    locals.acks = []\n  }\n}","css":"","description":"","name":"rd:page-inner","packages":[],"template":"\n<div class=\"h-full flex flex-col\"> \n  <div class=\"flex-1 flex flex-col\">\n    <div class=\"flex-1 mx-auto flex flex-col gap-4 w-full bg-white overflow-visible bg-white max-w-5xl px-4 py-2 my-2 lg:shadow-md lg:rounded-md\">\n      <ae-list  v-if=\"locals.ready\"\n                list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\"\n               :documents=\"locals.acks\"\n                param-empty-text=\"Keine Lesebestätigungen gefunden.\"\n                @selected=\"Aeppic.drillInto($event, arguments[1])\"\n                param-design=\"rd:card\"\n                :param-design-params=\"{ showProject: true}\"\n                param-title=\"Meine Lesebestätigungen\"\n      ></ae-list> \n      <!-- FIXME: sort breaks update documents -->\n                <!-- :sort=\"{ field: 'created.at', descending: true }\" -->\n    \n    </div>\n  </div>\n</div> "},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"320506f7-696d-40e3-824d-cd129dff385e","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-12-02T14:30:10+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"df2289af-8af8-4a2f-a45d-debbdd3d6760","previous":{"v":"83415850b34f889a"},"stamps":[],"t":1764685810748,"v":"18f012b4320c87dd"},{"a":["apps","0af4f8a7-729e-4318-8f82-7e976555004e","0ae4ef2a-62fc-4042-b07e-e93a134fe055","272f4c65-3d8b-4887-af77-f5fa817b87f1"],"a_depth":4,"a_forms":["folder","application-form","folder","form"],"created":{"at":"2025-08-15T14:36:54+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1755268614310,"data":{"aliases":[],"controller":"class Controller {\n  init() {\n    locals.showDetails = true\n    locals.document = document\n\n//     locals.components = {\n//       cards: [\n//         {\n//           name: 'rd:title',\n//           description: `\n// Render an identifying caption for the document as plain text. By default, the name field is rendered. The \\`title\\` design can be overridden to render the name of a linked or sub-document instead, or to render a name composed of several fields.\n// The \\`title\\` design should not contain any styling or markup (such as colors or font-sizes).\n//           `,\n//         },\n//         {\n//           name: 'rd:styled-title',\n//           description: `\n// Same as title, but can contain markup and styling such as \\`<strong>\\` or \\`<small>\\`\n//           `,\n//         },\n//         {\n//           name: 'rd:card',\n//           description: `\n// Eine Karte ohne Borders, welche den Inhalt darstellt. Sollte eine kompakte Darstellung anstreben (= eher länglich, nicht zu große Vertikale)\n// Nutzt \\`rd:styled-title,title\\`.\n//           `,\n//         },\n//         {\n//           name: 'rd:ref-card',\n//           description: `\n// wie rd:card, allerdings immer mit einer Möglichkeit des Entfernens/Löschens.\n\n// First row: \n\n//           `,\n//         },\n//         {\n//           name: 'rd:search-card',\n//           description: `\n// | Column A                         | Column B                                                | Column C         | Column D                      |\n// | -------------------------------- | ------------------------------------------------------- | ---------------- | ----------------------------- |\n// | \\`rd:title-action\\` oder \\`rd:icon\\` | \\`rd:card\\` und \\`rd:path\\` in Spalten-Layout/untereinander | rd:creation-info | Button 'far fa-chevron-right' |\n\n//           `,\n//         },\n//         {\n//           name: 'rd:tag',\n//           description: `\n// Eine \"Pille\" mit gerundeten Borders, einem Icon auf der linken Seite und einem Entfernen Button (X-Icon) auf der rechten Seite\n\n//           `,\n//         },\n//       ],\n//     }\n  }\n}\n","css":"._CSS-stripes {\n    background-color: #e879f91a;\n    background-image: linear-gradient(135deg, #d946ef80 10%, #0000 0, #0000 50%, #d946ef80 0, #d946ef80 60%, #0000 0, #0000);\n    background-size: 7.07px 7.07px;\n}","description":"","name":"rd:page-inner","packages":[],"template":"<div class=\"flex flex-col\" v-if=\"locals.document\">\n  <!-- <div class=\"mb-6\">\n    <pre>\nThe selected document: {{ locals.document.id }} {{ locals.document.f }} {{ locals.document.data.name }}\n    </pre>\n\n    <button @click.stop=\"locals.showDetails = !locals.showDetails\" class=\"bg-blue-500\">Toggle details</button>\n  </div>\n\n  <section class=\"flex flex-col\" v-for=\"(designs, componentsName) in locals.components\">\n    <div class=\"font-bold\">{{componentsName}}</div>\n\n    <section class=\"grid grid-cols-2 grid-rows-auto gap-8 _CSS-stripes p-4\">\n      <div v-for=\"design of designs\" class=\"flex flex-col gap-2\">\n        <div xv-if=\"locals.showDetails\" class=\"bg-white\">\n          {{design.name}}\n        </div>\n        <ae-design class=\"bg-white\"  :name=\"design.name\" :document=\"locals.document\"></ae-design>\n        <div v-if=\"locals.showDetails\" class=\"bg-white\">\n          {{ design.description }}\n        </div>\n      </div>\n    </section>\n  </section> -->\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"33ddcc3a-9095-48f1-b236-448cdb1479fe","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-08-18T10:18:32+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"272f4c65-3d8b-4887-af77-f5fa817b87f1","previous":{"v":"df88cc8eb32cb5ba"},"stamps":[],"t":1755512312327,"v":"0a70ff9f46da80bd"},{"a":["system","04632e3e-9132-4927-b91d-3c28d1afe3e9","7ae6e0d2-3c3d-4df1-93d0-a878624d77c4"],"a_depth":3,"a_forms":["system-folder-form","folder","form"],"created":{"at":"2025-10-10T13:10:58+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"ct":1760101858265,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:page-inner","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<div\n  class=\"flex flex-col\"\n  v-for=\"file in data.files\"\n>\n  <ae-design\n    name=\"rd:thumbnail - in progress\"\n    :document=\"file\"\n    class=\"border-4 border-red-500\"\n    :style=\"{\n      width: '300px',\n      height: '200px'\n    }\"\n  ></ae-design>\n</div>\n\n<div\n  class=\"flex flex-col\"\n  v-for=\"file in data.files\"\n>\n  <ae-design\n    name=\"rd:thumbnail - in progress\"\n    :document=\"file\"\n    class=\"border-4 border-red-500\"\n    :style=\"{\n      width: '200px',\n      height: '300px'\n    }\"\n  ></ae-design>\n</div>"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"35940c07-aa33-43fc-b08a-94fa094a3fe9","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2025-10-10T14:23:08+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"7ae6e0d2-3c3d-4df1-93d0-a878624d77c4","previous":{"v":"71b8a531f94a7e0e"},"stamps":[],"t":1760106188504,"v":"172961a481585abd"},{"id":"38792b58-b551-46da-a71e-08e76444f3fd","v":"0f8ab26ead9adfcf","cloneOf":{"id":"44e39f97-f90e-4a42-a368-230cf0462821","v":"afba8c4f4974e4bb","text":"page"},"originalCloneOf":{"id":"44e39f97-f90e-4a42-a368-230cf0462821","v":"afba8c4f4974e4bb","text":"page"},"previous":{"v":"e1fcc27a4cc731bb"},"p":"83204a3e-ce65-4c74-9c6c-ea659224610d","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"rd:page-inner","template":"<div class=\"p-1\">\n  <ae-design name=\"rd:toolbar\" :document=\"document\"></ae-design>\n\n  <ae-list list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\"\n            :root-document-id=\"document.id\"\n            query-id=\"f812861f-68c8-4818-9972-be7b5474c9b1\"\n            filter=\"f.id:3d678f2a-65f5-4dc1-a643-c5998fa33f32\"\n            @selected=\"Aeppic.drillInto($event, arguments[1])\"\n            param-design=\"search-card\"\n  ></ae-list>\n</div> ","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-05-23T09:51:23+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-05-23T10:57:46+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1716461866810,"ct":1716457883029,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","83204a3e-ce65-4c74-9c6c-ea659224610d"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"3a68a08c-b0a8-4bde-9dff-ed55fd0e1dac","v":"4375de8bcef89221","previous":{"v":"e77ff4ae4ef3e3a9"},"p":"da73bcf8-be71-46ca-9645-894b04e2bfd1","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-inner","template":"<ae-design name=\"rd:page-list\" :document=\"document\"></ae-design>\n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-08-14T12:10:45+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-12-12T10:25:50+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1702376750536,"ct":1692015045447,"a_depth":4,"a":["apps","4a58cfdb-e1ef-40a2-8a89-57157ddda7d0","fe411da7-3843-4c17-acf5-aaeba96d1a85","da73bcf8-be71-46ca-9645-894b04e2bfd1"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","b91e3079-75ae-49cd-981b-3053bf47208c","e7a0be94-cd94-4210-875e-0cceb7e8bc6c","320bbded-2e47-4772-b662-c54254627ac3"],"a_depth":4,"a_forms":["folder","application-form","folder","form"],"cloneOf":{"id":"cd22b168-edf3-4e58-952a-026e826e8578","text":"page","v":"10e3cb3c602e2888"},"created":{"at":"2022-10-21T13:10:37+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1666357837342,"data":{"applies":"","controller":"class controller {\r\n  init() {\r\n    locals.groups = []\r\n\r\n    Aeppic.subscribe(`p:${document.id} f.id:381e2c4e-9eed-42a5-b65c-ad72e25369f0`, { sort: { fields: ['data.name', 'id'] }}, (groups) => {\r\n      locals.groups = groups\r\n    })\r\n  }\r\n\r\n  scrollToTop() {\r\n    $refs.listContainer.scrollTo({\r\n      top: 0,\r\n      left: 0,\r\n      behavior: 'smooth'\r\n    })\r\n  }\r\n\r\n}\r\n\r\n","css":"","name":"rd:page-inner","packages":[],"template":"<div class=\"flex flex-col md:flex-row h-full bg-white overflow-hidden flex xflex-wrap\">\n  <section class=\"md:max-w-72 lg:max-w-96 basis-1/3\">\n    <section class=\"flex flex-col gap-2 mb-2 md:mb-10 p-4\">\n      <div class=\"flex items-center gap-4\">\n        <div class=\"text-2xl\">Ordner</div>\n\n        <ae-design\n          name=\"rd:toolbar\"\n          :document=\"document\"\n          :params=\"{ disableFilter: true, disableSort: true, disableSearch: true, loadingText: 'Neu' }\"\n        ></ae-design>\n      </div>\n\n      <ae-design\n        name=\"rd:folders-menu\"\n        :document=\"document\"\n        :param-active-document=\"document\"\n        :param-tab=\"params.tab\"\n        :param-readonly=\"params.readonly\"\n      ></ae-design>\n    </section>\n  </section>\n  \n  <section class=\"grow shrink-0 basis-1/3 w-full overflow-auto\" ref=\"listContainer\">\n    <ae-list list-id=\"f914c7de-072d-4e39-aa51-d55fe5391c76\"\n              :param-root=\"document.id\"\n              @selected=\"Aeppic.drillInto($event, arguments[1])\"\n              :param-design-params=\"{ expand: true }\"\n    ></ae-list> \n  </section>\n\n  <section class=\"absolute right-0 bottom-0 p-2\">\n    <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n          param-icon=\"far fa-chevron-up\"\n          :param-primary=\"true\"\n          class=\"text-xl\"\n          @selected=\"controller.scrollToTop()\"\n    ></ae-layout> \n  </section>\n\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"e3fe9ece11aabc5e"},"id":"3e5f6aef-4a8a-4b55-ae66-5aaac09b16ce","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-02-17T16:11:37+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"cd22b168-edf3-4e58-952a-026e826e8578","text":"page","v":"10e3cb3c602e2888"},"p":"320bbded-2e47-4772-b662-c54254627ac3","previous":{"v":"0007545160e6d85e"},"stamps":[],"t":1739808697942,"v":"ed92e57025dbae12"},{"a":["apps","a590ce5b-28fc-4f85-9049-d006e1b8f880","169e87e0-0379-48e1-8c94-8fadac5969bb","df3870fe-b129-4535-9e52-c33a05fb4bce"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2022-10-26T10:39:38+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1666780778732,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Personaldaten: '3090c06d-faea-41f6-a6ea-846b900faad5',\n      Personalverwaltung: 'df3870fe-b129-4535-9e52-c33a05fb4bce',\n      Personalordner: '4f3c48aa-8d12-4dfa-8a66-064d8a851a5b',\n    }\n    locals.FORMS = this.FORMS\n\n    locals.filter = ''\n    locals.current = []\n    locals.retired = []\n    locals.all = []\n\n\n    Aeppic.subscribe(`a:${document.id} f.id:${this.FORMS.Personaldaten}`, { size: 999 }, (documents) => {\n      const { current, retired } = this.filterDocuments(documents)\n\n      locals.current = current\n      locals.retired = retired\n\n      locals.all = [...current, ...retired]\n    })\n  }\n\n  filterDocuments(documents) {\n    const current = []\n    const retired = []\n\n    for (const doc of documents) {\n      if (!doc.data.austrittsdatum) {\n        current.push(doc)\n        continue\n      }\n\n      if (Aeppic.DateTime.fromISO(doc.data.austrittsdatum).diffNow('days') < 0) {\n        retired.push(doc)\n      } else {\n        current.push(doc)\n      }\n    }\n\n    return { current, retired }\n  }\n\n  async navigateToAllFolders() {\n    if (document.f.id === this.FORMS.Personalverwaltung) {\n      return\n    }\n\n    const verwaltung = await Aeppic.get(document.a_forms.findIndex(aForm => aForm === this.FORMS.Personalverwaltung))\n\n    Aeppic.navigateTo(verwaltung)\n  }\n}","css":"","description":"","name":"rd:page-inner","packages":[],"template":"<div class=\"flex flex-col md:flex-row h-full bg-white overflow-hidden flex xflex-wrap\">\n  <section class=\"md:max-w-72 lg:max-w-96 basis-1/3\">\n    <section class=\"flex flex-col gap-2 mb-2 md:mb-10 p-4\">\n      <div class=\"flex items-center gap-4\">\n        <div class=\"text-2xl\">Ordner</div>\n\n        <ae-design\n          name=\"rd:toolbar\"\n          :document=\"document\"\n          :params=\"{ disableFilter: true, disableSort: true, disableSearch: true, loadingText: 'Neu' }\"\n        ></ae-design>\n      </div>\n\n      <ae-design\n        name=\"rd:folders-menu\"\n        :document=\"document\"\n        :param-active-document=\"document\"\n        :param-tab=\"params.tab\"\n        :param-readonly=\"params.readonly\"\n      ></ae-design>\n    </section>\n  </section>\n  <section class=\"grow shrink-0 basis-1/3 w-full flex flex-col\">\n    <ae-design\n      name=\"rd:toolbar\"\n      :document=\"document\"\n      :params=\"{ listFormId: locals.FORMS.Personaldaten, \n              disableNew: true, \n              filterFields: 'data.vorname,data.nachname,data.eintrittsdatum,data.austrittsdatum,data.position', \n              sortFields: 'data.vorname,data.nachname,data.eintrittsdatum,data.austrittsdatum,data.position', \n              initialSort: 'data.nachname' \n      }\"\n      @sort=\"locals.sort = $event\"\n      @filter=\"locals.filter = $event\"\n    ></ae-design>\n    <ae-list\n      v-if=\"params.tab === 'active'\"\n      class=\"w-full flex-1\"\n      list-id=\"a23ea6b1-92ed-4ebc-bd3f-cb4eb1ae6ee7\"\n      :documents=\"locals.current\"\n      :params=\"{ \n        columns: 'data.vorname,data.nachname,data.position,data.eintrittsdatum,data.austrittsdatum,', \n        designs: ',,,day,day,table:number-of-files',\n        headers: ',,,,,Dateien',\n        listFormId: locals.FORMS.Personaldaten,\n      }\"\n      :search-options=\"{ searchAllFields: true }\"\n      :sort=\"locals.sort\"\n      :filter=\"locals.filter\"\n      @selected=\"Aeppic.drillInto($event, arguments[1])\"\n    ></ae-list>\n    <ae-list\n      v-else-if=\"params.tab === 'retired'\"\n      list-id=\"a23ea6b1-92ed-4ebc-bd3f-cb4eb1ae6ee7\"\n      class=\"w-full flex-1\"\n      :documents=\"locals.retired\"\n      :params=\"{ \n        columns: 'data.vorname,data.nachname,data.position,data.eintrittsdatum,data.austrittsdatum,', \n        designs: ',,,day,day,table:number-of-files',\n        headers: ',,,,,Dateien',\n        listFormId: locals.FORMS.Personaldaten,\n      }\"\n      :search-options=\"{ searchAllFields: true }\"\n      :sort=\"locals.sort\"\n      :filter=\"locals.filter\"\n      @selected=\"Aeppic.drillInto($event, arguments[1])\"\n    ></ae-list>\n  </section>\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"c2d9ae57c7a46896"},"id":"3edb2f2a-e31c-4658-943e-790fe4acc6e7","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-03-25T12:25:11+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"df3870fe-b129-4535-9e52-c33a05fb4bce","previous":{"v":"11e6bc3cc148f665"},"stamps":[],"t":1742905511116,"v":"3e866b3924138b5b"},{"a":["apps","3fbe0efd-713a-457a-a34c-3a12aa19d6bb","0fb162f4-0f78-4c1e-aad2-43c27e6d98cb","8fef472f-9220-484b-99cd-bb80f208f795"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2024-06-26T12:36:46+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1719405406614,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Application: '009c0da4-718f-43d0-964a-647e30074d94',\n      File: '8bf0fb31-716d-4b76-98d8-b7349f1d7529',\n    }\n\n    locals.sort = {\n      field: 'created.at',\n      descending: true\n    }\n\n    locals.applicationsQuery = `p:${document.id} f.id:${this.FORMS.Application} data.done:true`\n    locals.applications = []\n\n    // Aeppic.subscribe(`p:${document.id} f.id:${this.FORMS.Application} data.done:true`, { size: 9999 }, (applications) => {\n    //   locals.applications = applications\n    // })\n\n    Aeppic.watch(document, async (updatedRole) => {\n      const hasApplicationsUpdated = updatedRole.previous?.patch?.finishedApplications\n\nconsole.log({hasApplicationsUpdated})\n      if (hasApplicationsUpdated) {\n        await this.updateApplications()\n      }\n    })\n\n    await this.updateApplications()\n  }\n\n  async updateApplications() {\n    locals.applications = await Aeppic.find(locals.applicationsQuery, { size: 9999 })\n  }\n}","css":"","description":"","name":"rd:page-inner","packages":[],"template":"<div class=\"h-full flex\">\n  <div v-if=\"!params.tab || params.tab === 'applications'\" class=\"w-full h-full p-4 bg-white flex flex-col flex-1 overflow-auto\">\n    <ae-design name=\"closed-info\" :document-id=\"document.p\"></ae-design>\n\n    <div class=\"flex items-center gap-2\">\n      <label class=\"text-lg font-bold flex-1\" :class=\"{ 'text-red-500': !data.name }\">\n        {{data.name || 'Kein Name vergeben' }}\n      </label>\n\n      <!-- <ae-layout layout-id=\"d1bbb072-bf50-4d51-b1bd-685c1a9f7844\" :param-document=\"document\"></ae-layout> -->\n\n      <ae-design name=\"rd:ref-card\" :document-id=\"document.data.link.id\" :params=\"{ readonly: true}\"></ae-design>\n    </div>\n\n    <ae-list  list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\" \n              :xroot-document-id=\"document.id\"\n              :documents=\"locals.applications\" \n              :xsearch=\"locals.applicationsQuery\"\n              :sort=\"locals.sort\"\n              @selected=\"Aeppic.drillInto($event, arguments[1])\"\n              param-sort-fields=\"data.firstname,data.surname,data.agencyAbbreviation,created.at,modified.at\"\n              param-design=\"selectable\"\n              param-title=\"Bewerbungen\"\n              :search-options=\"{ searchAllFields: true, size: 9999 }\"\n              :param-selection-id=\"document.f.id\"\n              :param-selection-root-document=\"document\"\n              :param-enable-filter-bar=\"true\"\n              :param-design-params=\"{ designName: 'rd:card-inner', selectionId: document.f.id }\"\n              :param-horizontal=\"true\"\n              :param-wrap=\"true\"\n              :param-grid=\"true\"\n              param-grid-width=\"medium\"\n              param-gap=\"small\"\n              param-empty-text=\"Keine Bewerbungen gefunden.\"\n    ></ae-list>\n  </div>\n\n  <div v-if=\"params.tab === 'role'\" class=\"h-full w-full border-l bg-white overflow-auto flex flex-col\">\n    <ae-form layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\"\n            :document=\"document\"\n            :auto-save=\"true\"\n            class=\"h-full\"\n    ></ae-form>\n  </div>\n\n\n</div> "},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"404f5817-6f6a-442e-8bcc-5560f953ee42","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-07-28T07:39:26+00:00","backedBy":"","by":"b7485498-f1f3-4ab1-87d1-9cb63ea890c8","client":"server","from":"","impersonatedBy":""},"p":"8fef472f-9220-484b-99cd-bb80f208f795","previous":{"v":"4919f06de7de11a5"},"stamps":[],"t":1785224366315,"v":"642e1d22e35d7148"},{"id":"40c98e54-3037-4a7d-bc7a-b3f8cdec4698","v":"22c8ab5774ccecff","previous":{"v":"initial"},"p":"6cfeb343-afc3-48ed-8f48-6f6262f1361b","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-inner","template":"<ae-design name=\"rd:page-list\" :document=\"document\"></ae-design>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-04-05T08:33:23+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-04-05T08:41:07+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1712306467989,"ct":1712306003276,"a_depth":4,"a":["apps","0924db0f-7095-4b51-8966-bad1e45d68ec","a3b935e7-60bc-4996-9b18-668e4361067f","6cfeb343-afc3-48ed-8f48-6f6262f1361b"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"4167c0b3-5d18-4444-b194-eab3b1cf9cab","v":"0392d8af98f95a7a","previous":{"v":"67a01549f1b4b5c9"},"p":"1ec5237d-463a-417f-8dac-5bbbbc2e35b7","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"rd:page-inner","template":"<ae-list  list-id=\"40db6eb8-f486-4701-9bc5-e804be3fcaef\"\n          :filter=\"locals.filter ? 'f.id:' + locals.filter : null\"\n          :documents=\"locals.documents\"\n          :param-list-form-id=\"locals.FORMS.Mitarbeiter\"\n          :param-root-document-id=\"document.id\"\n          :param-columns=\"data.displayTableColumns\"\n          :param-headers=\"data.displayTableHeaders\"\n          :param-designs=\"data.displayTableDesigns\"\n          :sort=\"locals.sort\"\n          :param-initial-sort-by=\"data.sortBy\"\n          :param-initial-sort-asc=\"data.sortAsc\"\n          :param-show-reset-sorting=\"data.showResetSorting\"\n          :param-row-height=\"data.rowHeight\"\n          param-sort-fields=\"data.name,data.vorname,data.nachname\"\n          :search-options=\"{ searchAllFields: true }\"\n          class=\"h-full\"\n          param-seperator-field=\"nachname\"\n          :param-disable-new=\"true\" \n          :param-window-width=\"params.windowWidth\"\n          @toggle-hidden=\"controller.toggleHidden()\"\n></ae-list>\n   ","css":"","controller":"class Controller {\n  async init() {\n    this.subscription = null\n\n\n    locals.showHidden = false\n    locals.filter = ''\n\n    locals.FORMS = {\n      Mitarbeiter: 'd2ac3563-3c3f-4f02-b923-9b67abf98d10',\n    }\n\n    locals.documents = []\n\n    await this.update()\n  }\n\n  async update() {\n    const query = `p:${document.id} f.id:${locals.FORMS.Mitarbeiter}`\n    console.log(query)\n    const options = {\n      size: 3000,\n      sort: { fields: ['data.nachname', 'data.vorname'] },\n      includeHidden: locals.showHidden\n    }\n \n    this.subscription = Aeppic.updateSubscription(this.subscription, query, options, (documents) => locals.documents = documents)\n  }\n\n  toggleHidden() {\n    locals.showHidden = !locals.showHidden\n    this.update()\n  }\n}\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-10-25T14:39:50+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"modified":{"at":"2024-12-13T08:58:40+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1734080320935,"ct":1666708790226,"a_depth":4,"a":["apps","144e85c0-d7f9-4b20-8928-be30f0c78bda","8e6ee7d3-9122-4a2e-8aaf-9fb3bd204b23","1ec5237d-463a-417f-8dac-5bbbbc2e35b7"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","9b24d501-0752-4e13-95a8-065aa189bf1c"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"ca86694b-b8d5-496d-acc3-a56dc963e6e7","text":"rd:page-inner","v":"b461876722444773"},"created":{"at":"2026-04-15T08:47:16+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"ct":1776242836011,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    this.Forms = {\n      Planung: \"5011479f-3ef7-4c66-810b-3bb65f992712\",\n      PlanungenFolder: \"227504b7-05fe-4ad1-a5fc-027639abff29\",\n      \n    }\n\n    locals.ready = false\n    locals.newPlanung = null\n    locals.currentStepIndex = 0\n\n    const planungenFolder = await Aeppic.findOne(Aeppic.Query.children(document.a[0]).form(this.Forms.PlanungenFolder))\n    locals.newPlanung = await Aeppic.new(this.Forms.Planung, planungenFolder)\n    locals.newPlanung.hidden = true\n    Aeppic.save(locals.newPlanung)\n\n    locals.ready = true\n  }\n\n  get steps() {\n    return [\n      {\n        title: 'Allgemein',\n        // Alle Felder abzüglich facilities, labels und maintenance\n        // activeUi not listed because you shouldnt create an immediate active Wartung from the wizard\n        fields: ['name', 'interval', 'from', 'to', 'description'] \n      },\n      {\n        title: 'Anlagen',\n        fields: ['facilities']\n      },\n      {\n        title: 'Wartung',\n        fields: ['labels', 'maintenance']\n      }\n    ]\n  }\n\n  get currentStep() {\n    return this.steps[locals.currentStepIndex]\n  }\n\n  nextStep() {\n    if (locals.currentStepIndex < this.steps.length - 1) {\n      locals.currentStepIndex++\n    }\n  }\n\n  prevStep() {\n    if (locals.currentStepIndex > 0) {\n      locals.currentStepIndex--\n    }\n  }\n\n  handleDataChanged(event) {\n  }\n\n  async save() {\n    const editable = await Aeppic.edit(locals.newPlanung.id)\n    editable.hidden = false\n    Aeppic.save(editable)\n    \n    //TODO: change to navigat\n    Aeppic.drillInto(editable, { focus: true })\n  }\n}","css":"","description":"","name":"rd:page-inner","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<div v-if=\"locals.ready\" class=\"h-full w-full bg-transparent p-2 md:p-4\">\n  \n  <div class=\"mx-auto max-w-5xl w-full h-full overflow-y-auto relative flex flex-col gap-4 pb-2\">\n\n    <div class=\"sticky top-0 z-20 bg-white dark:bg-slate-800 rounded-md shadow-sm border border-neutral-200 flex items-center gap-2 shrink-0 px-4 py-3\">\n      <div \n        v-for=\"(step, index) in controller.steps\" \n        :key=\"index\"\n        class=\"flex items-center gap-2 text-sm font-semibold\"\n        :class=\"index === locals.currentStepIndex ? 'text-primary-600' : 'text-neutral-400'\"\n      >\n        <span class=\"w-6 h-6 flex items-center justify-center rounded-full border\" \n              :class=\"index === locals.currentStepIndex ? 'border-primary-500 bg-primary-50' : 'border-neutral-300'\">\n          {{ index + 1 }}\n        </span>\n        {{ step.title }}\n        <i v-if=\"index < controller.steps.length - 1\" class=\"fa fa-chevron-right text-neutral-300 text-xs mx-2\"></i>\n      </div>\n    </div>\n\n    <div class=\"shrink-0\">\n      <ae-form\n        :key=\"'wizard_step_' + locals.currentStepIndex\"\n        :document-id=\"locals.newPlanung.id\"\n        @data-changed=\"controller.handleDataChanged($event)\"\n        layout-id=\"5c8ac4b6-e1a9-4cdf-af03-553dbc4d80d5\"\n        :view=\"{only: {fields: controller.currentStep.fields, standaloneControls: []}}\"\n        :watch=\"true\"\n        :readonly=\"false\"\n        :auto-save=\"true\"\n        :auto-save-after=\"1000\"\n      ></ae-form>\n    </div>\n\n    <div class=\"sticky bottom-0 z-20 bg-white dark:bg-slate-800 rounded-md shadow-sm border border-neutral-200 flex justify-between shrink-0 px-4 py-3\">\n      <ae-layout \n        layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n        param-text=\"Zurück\"\n        param-icon=\"fa fa-arrow-left\"\n        :param-disabled=\"locals.currentStepIndex === 0\"\n        @selected=\"controller.prevStep()\"\n        param-border=\"border border-neutral-300\"\n      ></ae-layout>\n      \n      <ae-layout \n        v-if=\"locals.currentStepIndex < controller.steps.length - 1\"\n        layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n        param-text=\"Weiter\"\n        param-icon-right=\"fa fa-arrow-right\"\n        :param-primary=\"true\"\n        @selected=\"controller.nextStep()\"\n      ></ae-layout>\n      \n      <ae-layout \n        v-else\n        layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n        param-text=\"Speichern\"\n        param-icon=\"fa fa-check\"\n        :param-primary=\"true\"\n        @selected=\"controller.save()\"\n      ></ae-layout>\n    </div>\n\n  </div>\n</div>"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"42a3e109-62f9-435e-bcca-a1f4b4920208","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-07-10T09:38:00+00:00","backedBy":"","by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"ca86694b-b8d5-496d-acc3-a56dc963e6e7","text":"rd:page-inner","v":"b461876722444773"},"p":"9b24d501-0752-4e13-95a8-065aa189bf1c","previous":{"v":"c0a5cd94b533f217"},"stamps":[],"t":1783676280936,"v":"3c59aec152745e86"},{"a":["system","ce1b84c6-f411-40f5-9783-2dd35230fd5d","af333f9b-2d8e-4a62-bd6a-5b842a953e0d","cc1aba40-59e7-4e67-8eb5-9bdd51771ec9"],"a_depth":4,"a_forms":["system-folder-form","folder","form-folder","form"],"created":{"at":"2025-10-07T13:32:01+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"ct":1759843921677,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.ready = false\n\n    this.Color = {Convert: packages.Convert, Material: packages.Material, Scheme: packages.Scheme}\n    this.Hct = this.Color.Material.Hct.Hct\n    this.extendedColors = await Aeppic.getAll(data.extendedColors)\n    locals.currentThemeId = data.themes[0]?.id\n    locals.dropwdownOptions = await this.getDropDownOptions()\n    locals.previewContrast = 'normal'\n    locals.previewIsDark = false\n\n    locals.styleLight = {}\n    locals.styleDark = {}\n    this.updateCurrentThemeWatcher()\n\n    locals.ready = true\n  }\n\n  updateCurrentThemeId(id) {\n    locals.currentThemeId = id\n    this.updateCurrentThemeWatcher()\n  }\n\n  updateCurrentThemeWatcher() {\n    if (this.currentThemeWatcher) {\n      this.currentThemeWatcher.stop()\n    }\n\n    this.currentThemeWatcher = Aeppic.watch(locals.currentThemeId, async (doc) => {\n      this.currentTheme = doc\n      locals.styleLight = await this.generateStyle(false, locals.previewContrast)\n      locals.styleDark = await this.generateStyle(true, locals.previewContrast)\n      console.log(locals.styleLight['--color-primary'])\n      console.log(locals.styleLight['--color-on-primary'])\n    })\n  }\n\n  async getDropDownOptions() {\n    const themes = await Aeppic.getAll(data.themes)\n    const themeOptions = themes.map(theme => {\n      return {\n        identifier: theme.id,\n        display: theme.data.name,\n        icon: 'far fa-circle'\n    }})\n    return themeOptions\n  }\n\n  async recalculateThemeUniverse(){\n    const themes = await Aeppic.getAll(data.themes)\n    if (themes.length <= 0) {\n      throw Error('Need at least one theme')\n    }\n    this.recalculateSchemeBase(themes[0])\n    themes.forEach(theme => this.recalculateSchemes(theme))\n  }\n\n  async recalculateSchemeBase(theme){\n    debugger\n    const scheme = await this.Color.Scheme.dynamicSchemeFromDocument(false, 'normal', theme, document, Aeppic)\n    const editable = await Aeppic.edit(data.baseTheme)\n    editable.data.type = 'tailwind4'\n    editable.data.mode = 'JSON'\n    editable.data.theme = `@theme { \\n ${this.Color.Scheme.cssFromCssMap(this.Color.Scheme.cssMapFromDynamicScheme(scheme))} \\n }`\n    Aeppic.save(editable)\n  }\n\n  async recalculateSchemes(theme) {\n    const modes = [false, true]\n    const contrasts = ['normal', 'medium', 'high']\n\n    const dynamicSchemes = await Promise.all(modes.flatMap(isDark => \n        contrasts.map(contrastData => \n            this.Color.Scheme.dynamicSchemeFromDocument(isDark, contrastData, theme, document, Aeppic)\n        )\n    ))\n\n    const cssMaps = dynamicSchemes.map(scheme => this.Color.Scheme.cssFromCssMap(this.Color.Scheme.cssMapFromDynamicScheme(scheme)))\n\n    this._saveSchemesInLinkedTheme(theme, cssMaps[0], cssMaps[1], cssMaps[2], cssMaps[3], cssMaps[4], cssMaps[5])\n  }\n\n  async xcxreateScheme(theme, isDark, contrast) {\n    if (!theme.data.sourceColor) {\n      throw new Error('A Theme must have a source color.', theme)\n    }\n\n    const extendedColorOverwrites =  await Aeppic.getAll(theme.data.extendedColorOverwrites)\n\n    const scheme = new this.Color.Material.DynamicScheme({\n      sourceColorHct: this.Hct.fromHex(theme.data.sourceColor),\n      variant: theme.data.variant,\n      contrastLevel: contrast,\n      isDark: isDark,\n      platform: 'phone',\n      specVersion: theme.data.specVersion,\n      primaryPalette: this._tonalPaletteFromHex(theme.data.primaryPaletteKeyColor),\n      secondaryPalette: this._tonalPaletteFromHex(theme.data.secondaryPaletteKeyColor),\n      tertiaryPalette: this._tonalPaletteFromHex(theme.data.tertiaryPaletteKeyColor),\n      neutralPalette: this._tonalPaletteFromHex(theme.data.neutralPaletteKeyColor),\n      neutralVariantPalette: this._tonalPaletteFromHex(theme.data.neutralVariantPaletteKeyColor),\n      errorPalette: this._tonalPaletteFromHex(theme.data.errorPaletteKeyColor), \n      extendedColors: this.extendedColors.map(color => {\n        const overwritingColor = extendedColorOverwrites.find(potentiallyOverwrtingColor => potentiallyOverwrtingColor.data.name === color.data.name)\n        return {\n          name: color.data.name,\n          color: overwritingColor?.data?.color ? this.Hct.fromHex(overwritingColor.data.color) : this.Hct.fromHex(color.data.color),\n          harmonization: (overwritingColor?.data?.harmonization ? overwritingColor.data.harmonization : color.data.harmonization) === 'yes' ? true : false\n        }\n      })\n    })\n\n    return scheme\n  }\n\n  _tonalPaletteFromHex(hex) {\n    if (!hex) {\n      return null\n    }\n\n    const hct = this.Hct.fromHex(hex)\n    const tonalPalette = this.Color.Material.TonalPalette.fromHct(hct)\n    return tonalPalette\n  }\n\n  async _saveSchemesInLinkedTheme(theme, lightNormal, lightMedium, lightHigh, darkNormal, darkMedium, darkHigh) {\n    const editable = await Aeppic.edit(theme.data.themeDocument)\n    editable.data.type = 'material3'\n    editable.data.mode = 'raw'\n    editable.data.rawLightNormalContrast = lightNormal\n    editable.data.rawLightMediumContrast = lightMedium\n    editable.data.rawLightHighContrast = lightHigh\n    editable.data.rawDarkNormalContrast = darkNormal\n    editable.data.rawDarkMediumContrast = darkMedium\n    editable.data.rawDarkHighContrast = darkHigh\n    editable.data.name = theme.data.name\n    Aeppic.save(editable)\n  }\n\n  async createNewTheme(){\n    const newTheme = await Aeppic.new('023342a2-e9e0-48b5-bdd7-9d5b6aefe4f8', '460466bf-b183-4bc9-bc55-823ffbf3b293')\n    console.log(newTheme.data.sourceColor)\n  }\n\n  async generateStyle(isDark, contrastString) {\n    const themeDefinition = await Aeppic.get(locals.currentThemeId)\n    if (!themeDefinition) {\n      return {}\n    }\n\n    const scheme = await this.Color.Scheme.dynamicSchemeFromDocument(isDark, contrastString, themeDefinition, document, Aeppic)\n    const cssMap = this.Color.Scheme.cssMapFromDynamicScheme(scheme)\n    // const wraped = Object.fromEntries(Object.entries(cssMap).map(([key, value]) => [`var(${key})`, value]))\n    // debugger\n    return cssMap\n  }\n\n}","css":"","description":"","name":"rd:page-inner","packages":[{"id":"740716fd-9069-4a19-a16d-665a43894b7e","text":"Color","v":"5045a17b2de0a3c7"}],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<div\n  v-if=\"locals.ready\"\n  class=\"grid grid-cols-2 py-6 bg-surface text-on-surface h-full\"\n  :style=\"{...(locals.previewIsDark? locals.styleDark : locals.styleLight)}\"\n  data-theme\n>\n  <div\n    class=\"flex flex-col gap-4 overflow-y-auto\"\n  >\n    <ae-form  \n      :document=\"document\" \n      :auto-save=\"true\"\n      :auto-save-after=\"1000\"\n      layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\"\n      :readonly=\"params.readonly\"\n    ></ae-form>\n    <div class=\"flex items-center gap-4\">\n      <ae-layout \n        class=\"w-64\"\n        layout-id=\"6b4808fe-9df8-4c1b-8f68-0e60bc17dd15\" \n        @selected=\"controller.recalculateThemeUniverse()\"\n        param-label=\"Recalculate All Themes\"\n        param-color=\"tertiary\"\n        param-style=\"filled\"\n      ></ae-layout> \n      <ae-layout \n        class=\"w-64\"\n        layout-id=\"8bc795f2-7ac8-4b95-9019-0b27b178a36e\"\n        :param-selected-identifiers=\"[locals.currentThemeId]\"\n        :param-options=\"locals.dropwdownOptions\"\n        @selected=\"controller.updateCurrentThemeId($event.identifier)\"\n      ></ae-layout>\n      <ae-layout \n        class=\"w-64\"\n        layout-id=\"f8b28bc5-081c-4c39-aa9f-8ab9357f5466\" \n        @selected=\"locals.previewContrast = $event; controller.updateCurrentThemeWatcher()\"\n        param-color=\"tertiary\"\n        param-style=\"filled\"\n        param-mode=\"toggle\"\n        param-shape=\"square\"\n        :param-buttons=\"[\n            {\n              identifier: 'normal',\n              leftIcon: 'far fa-brightness-low',\n              leftIconAttached: true,\n              selected: locals.previewContrast === 'normal',\n            },\n            {\n              identifier: 'medium',\n              leftIcon: 'far fa-sun-bright',\n              leftIconAttached: true,\n              selected: locals.previewContrast === 'medium',\n            },\n            {\n              identifier: 'high',\n              leftIcon: 'far fa-sun',\n              leftIconAttached: true,\n              selected: locals.previewContrast === 'high',\n            },\n          ]\"\n      ></ae-layout>\n      <ae-layout \n        class=\"w-64\"\n        layout-id=\"f8b28bc5-081c-4c39-aa9f-8ab9357f5466\" \n        @selected=\"locals.previewIsDark = $event\"\n        param-color=\"tertiary\"\n        param-style=\"filled\"\n        param-mode=\"toggle\"\n        param-shape=\"square\"\n        :param-buttons=\"[\n            {\n              identifier: false,\n              leftIcon: 'far fa-sun',\n              leftIconAttached: true,\n              selected: locals.previewIsDark === false,\n            },\n            {\n              identifier: true,\n              leftIcon: 'far fa-moon-stars',\n              leftIconAttached: true,\n              selected: locals.previewIsDark === true,\n            },\n          ]\"\n      ></ae-layout>\n    </div>\n    <ae-form  \n      :documentId=\"locals.currentThemeId\"\n      :auto-save=\"true\"\n      :auto-save-after=\"1000\"\n      layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\"\n      class=\"\"\n      :readonly=\"params.readonly\"\n    ></ae-form>\n  </div>\n    <div class=\"w-full flex flex-col overflow-y-auto\">\n        <ae-layout\n          layout-id=\"87b0b799-2c06-4d89-ad71-f75835b6be4d\"\n          param-schema-title=\"Light\"\n          :style=\"{...locals.styleLight}\"\n          :param-extended-colors=\"controller.extendedColors.map(doc => doc.data.name)\"\n        ></ae-layout>\n        <ae-layout\n          layout-id=\"87b0b799-2c06-4d89-ad71-f75835b6be4d\"\n          param-schema-title=\"Dark\"\n          :style=\"{...locals.styleDark}\"\n          :param-extended-colors=\"controller.extendedColors.map(doc => doc.data.name)\"\n        ></ae-layout>\n    </div>\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"436f6e2e-006e-489a-a94a-0456efad643e","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-10-10T08:51:59+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"cc1aba40-59e7-4e67-8eb5-9bdd51771ec9","previous":{"v":"af54e35afba5a91d"},"stamps":[],"t":1760086319619,"v":"926121155c40b650"},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","5beeae17-7bb1-4eeb-bcb6-cf0e6950e27c","c04e4a56-2064-4663-9cad-1792a719db35"],"a_depth":5,"a_forms":["folder","application-form","form-folder","form","form"],"cloneOf":{"id":"55a187ca-ab2a-4246-9266-ff920efaa8a3","text":"rd:page-inner","v":"initial"},"created":{"at":"2025-07-22T11:20:36+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1753177201908,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:page-inner","packages":[],"template":"<div class=\"hidden print:block flex gap-2 border rounded-md border-secondary-300 p-1\">\n  <ae-design  name=\"title\" :document-id=\"document.a.slice(-3)[0]\" class=\"text-primary-900 px-2 text-lg\"></ae-design>\n  <ae-design  name=\"title\" :document-id=\"document.a.slice(-2)[0]\" class=\"text-primary-900 px-2 text-lg\"></ae-design>\n</div> \n\n<ae-design class=\"h-full overflow-hidden\" name=\"rd:page-inner_default\" :document=\"document\"\n:params=\"params\" v-on=\"$listeners\"></ae-design> "},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"44432dcf-f5f2-45dc-8b8f-8c501cdfd25e","inheritedLocks":[null,null,null,null,null,null],"locks":[],"meta":{"modified":{"at":"2025-07-22T11:20:50+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null}},"modified":{"at":"2025-07-22T11:20:36+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"04961750-b1f2-475d-8f6a-f5ad76d9554a","text":"rd:page-inner","v":"2164ee18f99ae992"},"p":"c04e4a56-2064-4663-9cad-1792a719db35","previous":{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","5beeae17-7bb1-4eeb-bcb6-cf0e6950e27c"],"a_forms":["folder","application-form","form-folder","form"],"p":"5beeae17-7bb1-4eeb-bcb6-cf0e6950e27c","v":"initial"},"stamps":[],"t":1753183250533,"v":"9b0bf97a13521b78"},{"id":"44eba947-a5f4-4a71-ad51-8fb600b5ffe8","v":"a729031733a8f1b8","cloneOf":{"id":"2a140f45-1b4f-4377-88e5-f2a9c7eda843","v":"0e84bb19d45b8a08","text":"page"},"originalCloneOf":{"id":"2a140f45-1b4f-4377-88e5-f2a9c7eda843","v":"0e84bb19d45b8a08","text":"page"},"previous":{"v":"c17f1fb172a6cd9e"},"p":"d60a5613-e046-4341-9bc9-34a241e8a28a","f":{"id":"design-form","v":"3385ac6766f32638","text":"Design"},"data":{"name":"rd:page-inner","template":"<ae-design name=\"rd:toolbar\" :document=\"document\"\n></ae-design>\n\n<ae-list  list-id=\"table-list\"\n          :root-document-id=\"document.id\"\n          query-id=\"f812861f-68c8-4818-9972-be7b5474c9b1\"\n          :filter=\"'f.id:' + locals.FORMS.Wartungsplan\"\n          :param-list-form-id=\"locals.FORMS.Wartungsplan\"\n          @selected=\"Aeppic.drillInto($event, arguments[1])\"\n          :search-options=\"{ searchAllFields: true, size: 9999 }\"\n          param-columns=\"data.name,data.beschreibung\"\n></ae-list>\n ","css":"","controller":"class Controller {\n  init() {\n    this.FORMS = {\n      Wartungsplan: '522ca40d-810b-4021-835f-beeace3af7fa'\n    }\n    locals.FORMS = this.FORMS\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-05-23T09:47:02+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-05-23T10:32:16+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1716460336563,"ct":1716457622663,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","d60a5613-e046-4341-9bc9-34a241e8a28a"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"452c7134-3166-4623-91d0-95afffe7f7e9","v":"6f80ed837b2368a1","cloneOf":{"id":"07ffaa6d-9963-4bb6-a80e-ac98c57bc6b3","v":"93b9822b5e51b25c","text":"page"},"originalCloneOf":{"id":"07ffaa6d-9963-4bb6-a80e-ac98c57bc6b3","v":"93b9822b5e51b25c","text":"page"},"previous":{"v":"initial"},"p":"3d678f2a-65f5-4dc1-a643-c5998fa33f32","f":{"id":"design-form","v":"3385ac6766f32638","text":"Design"},"data":{"name":"rd:page-inner","template":"<template v-if=\"locals.ready\">\n  <ae-design v-if=\"locals.isVerwalter\" ref=\"page\" @toolbar.native=\"controller.dispatchEventChildren('page', 'toolbar', $event.detail)\" name=\"rd:page--administator\" :document=\"document\" :params=\"params\" v-on=\"$listeners\"></ae-design>\n  <ae-design v-else name=\"rd:page--worker\" ref=\"page\" @toolbar.native=\"controller.dispatchEventChildren('page', 'toolbar', $event.detail)\" :document=\"document\" :params=\"params\" v-on=\"$listeners\"></ae-design>\n</template> ","css":"","controller":"class Controller {\n  async init() {\n    locals.ready = false\n    \n    locals.isVerwalter = false\n    locals.isVerwalter = (await Aeppic.Commands.execute('950f35d3-95ba-4d5a-a164-0074c767d600', document, { Account: Aeppic.Account })).value\n    \n    locals.ready = true\n  }\n\n   dispatchEventChildren(refName, eventName, eventValue) { \n    if (!$refs[refName] || !$refs[refName].$el || !$refs[refName].$el.children) {\n      return\n    }\n    const children = $refs[refName].$el.children\n    for (let i = 0; i < children.length; i++) {\n      children[i].dispatchEvent(new CustomEvent(eventName, {\n        detail: eventValue\n      }))\n    }\n    $refs[refName].$emit(eventName, eventValue)\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-05-23T09:54:08+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-05-23T09:54:29+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1716458069718,"ct":1716458048989,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","3d678f2a-65f5-4dc1-a643-c5998fa33f32"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","46a28dfa-7518-4867-9519-a5f4cd9b9967"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2025-11-13T14:15:37+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1763043337649,"data":{"aliases":[],"controller":"class Controller {\n\n  init() {\n    \n  }\n\n  get design() {\n    return `rd:tab-${params.tab || 'overview'}`\n  }\n}\n\n// class Controller {\n//   async init() {\n//     this.FORMS = { \n//       BCoreTask: '0deb4864-cbb6-420c-99ee-337c7444ab24',\n//     }\n\n//     locals.releasedViewReadonly = {\n//       only: {\n//         fields: [\n//           // 'done',\n//           // 'name',\n//           // 'inProgress',\n//           // 'priority',\n//           // 'dueStart',\n//           // 'responsible',\n//           // 'dueDateTime',\n//           // 'dueEnd',\n//           // 'description',\n//           // 'workflowStatus',\n//           // 'released',\n//           // 'type',\n//           // 'status',\n//           'maintenanceExecution',\n//           'facility',\n//           'location',\n//           'object',\n//           'workItems',\n//           'team',\n//           'informationTeam',\n//           'started',\n//           'ended',\n//           'comment',\n//           'photos',\n//           'signature',\n//           // 'acknowledgedBy',\n//           // 'acknowledgedAt',\n//         ],\n//       },\n//     }\n//     locals.releasedViewEditable = {\n//       only: {\n//         fields: [\n//           'done',\n//           'name',\n//           'inProgress',\n//           'priority',\n//           'dueStart',\n//           'responsible',\n//           'dueDateTime',\n//           'dueEnd',\n//           'description',\n//           'workflowStatus',\n//           'released',\n//           'type',\n//           'status',\n//           // 'maintenanceExecution',\n//           // 'facility',\n//           // 'location',\n//           // 'object',\n//           // 'workItems',\n//           // 'team',\n//           // 'informationTeam',\n//           // 'started',\n//           // 'ended',\n//           // 'comment',\n//           // 'photos',\n//           // 'signature',\n//           'acknowledgedBy',\n//           'acknowledgedAt',\n//         ],\n//       },\n//     }\n\n//     locals.task = await Aeppic.findOne(`p:${document.id} f.id:${this.FORMS.BCoreTask}`)\n//   }\n// }\n","css":"","description":"","name":"rd:page-inner","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"  <!-- :class=\"[params.tab !== '' && 'px-2 lg:px-6']\" -->\n<div \n  class=\"h-full flex flex-col w-full bg-gray-50\"\n>\n  <ae-design class=\"h-full overflow-auto\"\n            :name=\"controller.design\"\n            :document=\"document\"\n            :param-filter=\"locals.filter\"\n            :param-view=\"params.view\"\n            :param-tab=\"params.tab\"\n            :param-window-width=\"params.windowWidth\"\n  ></ae-design>\n</div>\n\n<!-- <div class=\"xh-full w-full\">\n  <div class=\"w-full flex gap-2\">\n    <ae-form\n      v-if=\"data.workflowStatus === 'PLANNED'\"\n      layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\"\n      :document=\"document\"\n      :auto-save=\"true\"\n      :auto-save-after=\"1000\"\n      class=\"flex-1\"\n    ></ae-form>\n    <template v-else>\n      <ae-form\n        layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\"\n        :document=\"document\"\n        :view=\"locals.releasedViewEditable\"\n        :auto-save=\"true\"\n        :auto-save-after=\"1000\"\n      class=\"flex-1\"\n      ></ae-form>\n\n      <ae-form layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\" :document=\"document\" :view=\"locals.releasedViewReadonly\" :readonly=\"true\"></ae-form>\n    </template>\n    <ae-form\n      v-if=\"locals.task\"\n      layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\"\n      :document=\"locals.task\"\n      :auto-save=\"true\"\n      :auto-save-after=\"1000\"\n      class=\"flex-1\"\n    ></ae-form>\n  </div>\n</div> -->\n"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"47a06ca5-d14a-4cfa-9c64-de04bccb360c","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-01-20T11:14:54+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"p":"46a28dfa-7518-4867-9519-a5f4cd9b9967","previous":{"v":"54df6e25a01d137e"},"stamps":[],"t":1768907694006,"v":"7fa5d0d885fb7b6a"},{"a":["apps","a590ce5b-28fc-4f85-9049-d006e1b8f880","169e87e0-0379-48e1-8c94-8fadac5969bb","4f3c48aa-8d12-4dfa-8a66-064d8a851a5b"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"3edb2f2a-e31c-4658-943e-790fe4acc6e7","text":"rd:page-inner","v":"f4fb2670690acebd"},"created":{"at":"2022-11-02T14:31:13+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1667399473096,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Personaldaten: '3090c06d-faea-41f6-a6ea-846b900faad5',\n      Personalverwaltung: 'df3870fe-b129-4535-9e52-c33a05fb4bce',\n      Personalordner: '4f3c48aa-8d12-4dfa-8a66-064d8a851a5b',\n    }\n    locals.FORMS = this.FORMS\n\n    locals.filter = ''\n    locals.current = []\n    locals.retired = []\n    locals.all = []\n\n    Aeppic.subscribe(`a:${document.id} f.id:${this.FORMS.Personaldaten}`, { size: 999 }, (documents) => {\n      const { current, retired } = this.filterDocuments(documents)\n\n      locals.current = current\n      locals.retired = retired\n\n      locals.all = [...current, ...retired]\n    })\n  }\n\n  filterDocuments(documents) {\n    const current = []\n    const retired = []\n\n    for (const doc of documents) {\n      if (!doc.data.austrittsdatum) {\n        current.push(doc)\n        continue\n      }\n\n      if (Aeppic.DateTime.fromISO(doc.data.austrittsdatum).diffNow('days') < 0) {\n        retired.push(doc)\n      } else {\n        current.push(doc)\n      }\n    }\n\n    return { current, retired }\n  }\n}","css":"","description":"","name":"rd:page-inner","packages":[],"template":"<div class=\"flex flex-col md:flex-row h-full bg-white overflow-hidden flex xflex-wrap\"> \n  <section class=\"md:max-w-72 lg:max-w-96 basis-1/3\">  \n    <section class=\"flex flex-col gap-2 mb-2 md:mb-10 p-4\">\n      <div class=\"flex items-center gap-4\">\n        <div class=\"text-2xl\">\n          Ordner\n        </div>\n  \n        <ae-design name=\"rd:toolbar\"\n                  :document=\"document\"\n                  :params=\"{ disableFilter: true, disableSort: true, disableSearch: true, loadingText: 'Neu' }\"\n        ></ae-design> \n      </div>\n\n      <ae-design name=\"rd:folders-menu\"\n              :document-id=\"document.p\"\n              :param-active-document=\"document\"\n              :param-tab=\"params.tab\"\n              :param-readonly=\"params.readonly\"\n      ></ae-design> \n\n    </section>\n  </section>\n  <section class=\"grow shrink-0 basis-1/3 w-full flex flex-col\">\n    <ae-list  v-if=\"params.tab === 'active'\"\n              list-id=\"a23ea6b1-92ed-4ebc-bd3f-cb4eb1ae6ee7\"\n              :documents=\"locals.current\"\n              :params=\"{ columns: 'data.vorname,data.nachname,data.position,data.eintrittsdatum,', designs: ',,,day,table:number-of-files', headers: ',,,,Dateien' }\"\n              :search-options=\"{ searchAllFields: true }\"\n              :param-list-form-id=\"locals.FORMS.Personaldaten\"\n              param-sort-fields=\"data.vorname,data.nachname,data.eintrittsdatum,data.position\"\n              param-filter-fields=\"data.vorname,data.nachname,data.eintrittsdatum,data.position\"\n              sort=\"data.nachname\" \n              :param-debug=\"false\" \n              class=\"w-full flex-1\"\n              @selected=\"Aeppic.drillInto($event, arguments[1])\"\n    ></ae-list> \n    <ae-list  v-else-if=\"params.tab === 'retired'\"\n          list-id=\"a23ea6b1-92ed-4ebc-bd3f-cb4eb1ae6ee7\"\n          :documents=\"locals.retired\"\n          :params=\"{ columns: 'data.vorname,data.nachname,data.position,data.eintrittsdatum,data.austrittsdatum,', designs: ',,,day,day,table:number-of-files', headers: ',,,,,Dateien' }\"\n          :search-options=\"{ searchAllFields: true }\"\n          :param-list-form-id=\"locals.FORMS.Personaldaten\"\n          param-sort-fields=\"data.vorname,data.nachname,data.eintrittsdatum,data.austrittsdatum,data.position\"\n          param-filter-fields=\"data.vorname,data.nachname,data.eintrittsdatum,data.austrittsdatum,data.position\"\n          sort=\"data.nachname\" \n          :param-debug=\"false\"  \n          class=\"w-full flex-1\"\n          @selected=\"Aeppic.drillInto($event, arguments[1])\"\n    ></ae-list> \n  </section>\n</div>  \n "},"f":{"id":"design-form","text":"Design","v":"c2d9ae57c7a46896"},"id":"48f88abd-d4d0-4820-8e8e-a387baa23d74","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-03-25T12:24:55+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"3edb2f2a-e31c-4658-943e-790fe4acc6e7","text":"rd:page-inner","v":"f4fb2670690acebd"},"p":"4f3c48aa-8d12-4dfa-8a66-064d8a851a5b","previous":{"v":"8a7d1a1af58a8290"},"stamps":[],"t":1742905495003,"v":"2ef102a6cf40188d"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","5a4fafb4-3c2b-4826-8a85-7c804ee4ac52"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"e60c8108-2533-4da6-912b-c72695265f4b","text":"rd:page-inner","v":"2ee3da60215a34e7"},"created":{"at":"2026-02-04T12:09:41+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"ct":1770206981846,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:page-inner","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<ae-design \n  class=\"size-full\"\n  name=\"rd:page-inner_tabs\" \n  :document=\"document\"\n  :params=\"params\"\n></ae-design>"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"499946b6-ffd1-4a58-8f71-9614bfca4670","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-02-04T12:09:41+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"e60c8108-2533-4da6-912b-c72695265f4b","text":"rd:page-inner","v":"2ee3da60215a34e7"},"p":"5a4fafb4-3c2b-4826-8a85-7c804ee4ac52","stamps":[],"t":1770206981847,"v":"initial"},{"id":"4df3c556-c890-4589-8e46-d0c6f99058b5","v":"initial","cloneOf":{"id":"21916a88-9d10-44b6-95b5-2bf4720a17c5","v":"dfe037036af031c7","text":"rd:page-inner"},"originalCloneOf":{"id":"21916a88-9d10-44b6-95b5-2bf4720a17c5","v":"dfe037036af031c7","text":"rd:page-inner"},"p":"2c729a18-4c85-4b7e-8c6c-358c8b9b1b3d","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-inner","template":"<ae-design class=\"h-full w-full\" name=\"rd:calendar\" :document=\"locals.document\" :params=\"params\"></ae-design>","css":"","controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      RepositoryFolder: 'repository-folder-form',\n      Schmiedekalender: '43f2603c-e6b0-4a91-9087-4f103c96a2b4'\n    }\n\n    locals.document = null\n\n    const documentsByView = {\n      smith: null,\n    }\n\n    const documents = await Aeppic.find(`p:${document.id}`)\n\n    for (const doc of documents) {\n      const identifier = doc.data.identifier?.trim()\n\n      if (identifier && identifier !== '') {\n        if (documentsByView[identifier]) {\n          throw new Error(`Identifier ${identifier} already used`)\n        }\n \n        documentsByView[identifier] = doc\n        continue\n      }\n\n      // ignore elsewise (could be locks or whatnot)\n    }\n\n    locals.document = documentsByView[params.view]\n\n    watchParam('view', (newView) => locals.document = documentsByView[newView])\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2025-02-07T16:05:49+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2025-02-07T16:05:49+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1738944349482,"ct":1738944349482,"a_depth":4,"a":["apps","49babc91-9123-4d92-b850-ce4d10f0e1b4","b6b5ad5b-124f-4b1c-8f55-74294451a2ba","2c729a18-4c85-4b7e-8c6c-358c8b9b1b3d"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"51d343d3-cf31-402d-9cd4-279913f166b4","v":"118063c5434ed444","previous":{"v":"initial"},"p":"6af8d180-b697-461d-afe7-d9277c1469a6","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-inner","template":"<ae-design name=\"rd:page-list\" :document=\"document\" :params=\"params\"></ae-design>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-06-26T08:35:23+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-06-26T08:35:37+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1719390937643,"ct":1719390923761,"a_depth":4,"a":["apps","3fbe0efd-713a-457a-a34c-3a12aa19d6bb","0fb162f4-0f78-4c1e-aad2-43c27e6d98cb","6af8d180-b697-461d-afe7-d9277c1469a6"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"525d609f-4a37-43dd-bb9f-c0f16dc5e781","v":"34863c5c222127fb","previous":{"v":"initial"},"p":"4d6bea01-8edd-45a6-b07f-2c48c47bbc2d","f":{"id":"design-form","v":"4b1c7a4912f80103","text":"Design"},"data":{"name":"rd:page-inner","template":"","css":"","controller":"class Controller {\n  init () {\n    Aeppic.navigateTo(document.p)\n  }\n}","packages":[],"parameters":[],"parametersDescriptions":[],"parametersTypes":[],"parametersControls":[],"parametersCardinalities":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2026-05-18T08:57:12+00:00","by":"09763886-6748-4a56-8e0e-54a2293ee96b","backedBy":"","impersonatedBy":"","from":"","client":"server"},"modified":{"at":"2026-05-18T08:58:26+00:00","by":"09763886-6748-4a56-8e0e-54a2293ee96b","backedBy":"","impersonatedBy":"","from":"","client":"server"},"t":1779094706810,"ct":1779094632605,"a_depth":4,"a":["apps","ddf56c14-1ba6-40cf-8b23-7e0ce10ac12d","cf902943-ef72-48e8-b64e-12204c5ca39b","4d6bea01-8edd-45a6-b07f-2c48c47bbc2d"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"529d6a3b-cf43-490c-95b2-a1929a27cf76","v":"959f74a9b5a673d4","previous":{"v":"initial"},"p":"folder","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-inner","template":"<ae-design name=\"rd:page-list\" :document=\"document\"></ae-design>\n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-04-02T14:07:59+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-04-02T14:08:18+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1712066898666,"ct":1712066879904,"a_depth":3,"a":["system","system-forms","folder"],"a_forms":["system-folder-form","repository-folder-form","form"],"inheritedLocks":[null,null,null,null],"stamps":[]},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","5beeae17-7bb1-4eeb-bcb6-cf0e6950e27c","374a4c32-b30e-4fa8-a134-bdc51a4605a8"],"a_depth":5,"a_forms":["folder","application-form","form-folder","form","form"],"cloneOf":{"id":"04961750-b1f2-475d-8f6a-f5ad76d9554a","text":"rd:page-inner","v":"2164ee18f99ae992"},"created":{"at":"2025-07-22T11:20:27+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1753177201908,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:page-inner","packages":[],"template":"<div class=\"hidden print:block flex gap-2 border rounded-md border-secondary-300 p-1\">\n  <ae-design  name=\"title\" :document-id=\"document.a.slice(-3)[0]\" class=\"text-primary-900 px-2 text-lg\"></ae-design>\n  <ae-design  name=\"title\" :document-id=\"document.a.slice(-2)[0]\" class=\"text-primary-900 px-2 text-lg\"></ae-design>\n</div> \n\n<ae-design class=\"h-full overflow-hidden\" name=\"rd:page-inner_default\" :document=\"document\"\n:params=\"params\" v-on=\"$listeners\"></ae-design> "},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"55a187ca-ab2a-4246-9266-ff920efaa8a3","inheritedLocks":[null,null,null,null,null,null],"locks":[],"meta":{"modified":{"at":"2025-07-22T11:20:56+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null}},"modified":{"at":"2025-07-22T11:20:27+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"04961750-b1f2-475d-8f6a-f5ad76d9554a","text":"rd:page-inner","v":"2164ee18f99ae992"},"p":"374a4c32-b30e-4fa8-a134-bdc51a4605a8","previous":{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","5beeae17-7bb1-4eeb-bcb6-cf0e6950e27c"],"a_forms":["folder","application-form","form-folder","form"],"p":"5beeae17-7bb1-4eeb-bcb6-cf0e6950e27c","v":"initial"},"stamps":[],"t":1753183256005,"v":"d1a32b04cf56b3fc"},{"a":["apps","bd4df555-2c56-4a5f-82f0-7e4745372f51","b42c9135-e564-4d50-abd1-4d753921120f","f0cf1b33-f840-4d4b-9335-c10daa7a335e"],"a_depth":4,"a_forms":["folder","application-form","folder","form"],"cloneOf":{"id":"7076fb3f-b810-4c1f-bc6f-45f33f2f20da","text":"page--left","v":"bdddbff08fa17b3d"},"created":{"at":"2022-12-01T13:30:23+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1669901423169,"data":{"aliases":[],"controller":"","css":"._CSS {\n  padding: var(--bp-page-content-padding);\n}","description":"","name":"rd:page-inner","packages":[],"template":"<div class=\"flex flex-col\">\n  <ae-form :document=\"document\" \n    layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\"\n    :auto-save=\"true\"\n    :auto-save-after=\"2500\"\n  ></ae-form>\n\n  <ae-design name=\"rd:toolbar\" :document=\"document\" @filter=\"locals.filter = $event\" :params=\"params\"></ae-design>\n\n  <ae-list\n    param-title=\"Prozesse\"\n    list-id=\"2dab232c-2c8a-4aa4-b3f9-6023a7116161\"\n    :root-document-id=\"document.id\"\n    query-id=\"f812861f-68c8-4818-9972-be7b5474c9b1\"\n    :filter=\"locals.filter\"\n  ></ae-list>\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"3385ac6766f32638"},"id":"55ddf600-7af4-4919-842f-8b4baaa7d913","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-02-17T14:51:21+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"7076fb3f-b810-4c1f-bc6f-45f33f2f20da","text":"page--left","v":"bdddbff08fa17b3d"},"p":"f0cf1b33-f840-4d4b-9335-c10daa7a335e","previous":{"v":"95c9c1c1bab4bd76"},"stamps":[],"t":1739803881019,"v":"3edcdfda69003d40"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","1a0affea-08fc-467f-8a09-0e170f5ea96e"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"b75be61a-1244-4344-ba9f-b52d7d1835a0","text":"rd:page-inner","v":"initial"},"created":{"at":"2025-08-05T10:07:26+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1754388446971,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:page-inner","packages":[],"template":"<ae-design name=\"rd:page-list\" :document=\"document\"\n:params=\"{ ...params, design: 'rd:card', scrollerHeight: 70 }\" @selected=\"Aeppic.navigateTo($event, { tab: 'page-inner_default' })\"></ae-design>"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"55f182ff-e4ff-409f-bec7-aadb72891468","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-02-06T14:48:37+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"b75be61a-1244-4344-ba9f-b52d7d1835a0","text":"rd:page-inner","v":"initial"},"p":"1a0affea-08fc-467f-8a09-0e170f5ea96e","previous":{"v":"421814f6df52cc51"},"stamps":[],"t":1770389317067,"v":"075fd8245d4d10e0"},{"id":"56b582e4-e7a1-40b5-8c56-a9943c8cb583","v":"initial","cloneOf":{"id":"e14dda99-d65a-49eb-a366-28a5a548dbd1","v":"00c5096f916fa94f","text":"rd:page-inner"},"originalCloneOf":{"id":"e14dda99-d65a-49eb-a366-28a5a548dbd1","v":"00c5096f916fa94f","text":"rd:page-inner"},"p":"80892429-568c-4d92-9631-655fb5b14e3a","f":{"id":"design-form","v":"4b1c7a4912f80103","text":"Design"},"data":{"name":"rd:page-inner","template":"<ae-design name=\"rd:page-list\" :document=\"document\"\n:params=\"params\"></ae-design>","css":"","controller":"","packages":[],"parameters":[],"parametersDescriptions":[],"parametersTypes":[],"parametersControls":[],"parametersCardinalities":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2026-04-27T13:30:26+00:00","by":"09763886-6748-4a56-8e0e-54a2293ee96b","backedBy":"","impersonatedBy":"","from":"","client":"server"},"modified":{"at":"2026-04-27T13:30:26+00:00","by":"09763886-6748-4a56-8e0e-54a2293ee96b","backedBy":"","impersonatedBy":"","from":"","client":"server"},"t":1777296626888,"ct":1768818932041,"a_depth":4,"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","80892429-568c-4d92-9631-655fb5b14e3a"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"59ddb402-a53a-4355-85f9-3faff192435d","v":"6c7a7f65d0695815","cloneOf":{"id":"c27446f1-7a4b-4cae-89bd-bb679a0f4c38","v":"f2a81eeb4f4e5d37","text":"page--left"},"originalCloneOf":{"id":"c27446f1-7a4b-4cae-89bd-bb679a0f4c38","v":"f2a81eeb4f4e5d37","text":"page--left"},"previous":{"v":"f15813d8d9849f93"},"p":"cb2adf77-7636-41a7-9a16-1610b06fa91e","f":{"id":"design-form","v":"0061789efb5c5c29","text":"Design"},"data":{"name":"rd:page-inner","template":"<ae-expandable class=\"_CSS-expandable h-full flex\"  ref=\"expander\">\r\n  <!-- NOTE: display:flex must be applied, because ae-expandable default styles superseeds tailwinds flex-class -->\r\n  <div class=\"flex-1 flex flex-col h-full w-full relative bg-white\"\r\n      :key=\"locals.rerender\"\r\n      v-if=\"locals.selected\" \r\n      style=\"display:flex\" \r\n  > \r\n    <div class=\"flex justify-between items-center h-[50px] px-4 border-b\">\r\n      <ae-design class=\"w-full\" \r\n                name=\"rd:toolbar\" \r\n                :document=\"document\" \r\n                @toolbar=\"controller.handleToolbarEvent($event)\"\r\n                 :param-readonly=\"!locals.canEdit\"\r\n      ></ae-design> \r\n    </div>\r\n    \r\n    <ae-design\r\n      ref=\"page\"\r\n      style=\"flex:1\"\r\n      :document=\"locals.selected\"\r\n      :key=\"'_CSS-editor'+ locals.selected.v + locals.rerenderKey\"\r\n      name=\"editor\"\r\n      :param-kb-root=\"params.kbRoot\"\r\n      :param-child-types=\"locals.childTypes\"\r\n      :param-readonly=\"!locals.canEdit\" \r\n      @toggle-expand=\"$refs.expander.toggle()\"\r\n      >\r\n    </ae-design>\r\n  </div>\r\n</ae-expandable>","css":"\r\n._CSS-expandable > .ae-expandable__header {\r\n  display: none !important;\r\n} ","controller":"class Controller {\r\n  async init() {\r\n    locals.rerenderKey = 1\r\n    locals.canEdit = false\r\n    locals.childTypes = params.childTypes\r\n    locals.selected = null\r\n\r\n    if (!locals.childTypes) {\r\n      const childTypes = await Aeppic.Preferences.getSettingForDocument('apps:cf914a7f-ff5f-4598-80f1-63c9129e0a71:childTypes', document)\r\n      const parsedChildTypes = childTypes && JSON.parse(childTypes)\r\n\r\n      if (parsedChildTypes?.length) {\r\n        locals.childTypes = parsedChildTypes\r\n      }\r\n    }\r\n\r\n    watchParam('childTypes', newParam => locals.childTypes = newParam)\r\n\r\n    const [ editable, canEdit ] = await Promise.all([\r\n      Aeppic.edit(document),\r\n      Aeppic.canEdit(document)\r\n    ])\r\n\r\n    locals.canEdit = Aeppic.Account?.data.isGroupAccount === false && canEdit === true\r\n    locals.selected = editable\r\n  }\r\n\r\n  handleToolbarEvent(event) {\r\n    const pageElement = $refs.page.$el.children[0]\r\n    pageElement.dispatchEvent(new CustomEvent('toolbar', {\r\n      detail: event\r\n    }))\r\n\r\n    if (event === 'reset') {\r\n      this.reset()\r\n    }\r\n  }\r\n\r\n  async reset() {\r\n    await Aeppic.nextRenderPass()\r\n    locals.selected = await Aeppic.edit(document)\r\n\r\n    locals.rerenderKey += 1\r\n  }\r\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-10-21T10:21:46+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-10-21T10:55:14+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1666349714931,"ct":1666347706367,"a_depth":4,"a":["apps","cf914a7f-ff5f-4598-80f1-63c9129e0a71","d69a62e9-a61f-42bf-9ae9-7983b87bf587","cb2adf77-7636-41a7-9a16-1610b06fa91e"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"5aecde60-e2dc-4498-9b94-17d596047a74","v":"b5a16dcbd2eb28b8","previous":{"v":"169739ece0b10ce8"},"p":"b48189af-7305-4ee5-ab8b-e15cbcd55aa7","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-inner","template":"<div class=\"flex flex-col h-full bg-white overflow-hidden md:flex-row\"> \n  <section class=\"\">  \n    <section class=\"flex flex-col gap-2 mb-2 md:mb-10 p-4\">\n      <div class=\"flex items-center gap-4\">\n        <div class=\"text-2xl\">\n          Ordner\n        </div>\n  \n        <ae-design name=\"rd:toolbar\"\n                  :document=\"document\"\n                  :params=\"{ disableFilter: true, disableSort: true, disableSearch: true, loadingText: 'Neu' }\"\n        ></ae-design>  \n      </div>\n\n      <ae-design name=\"rd:folders-menu\"\n                :document=\"document\"\n                :param-active-document=\"document\"\n      ></ae-design> \n    </section>\n  </section>\n  <section class=\"w-full overflow-auto\">\n    <ae-design name=\"rd:toolbar\"\n          :document=\"document\"\n          :params=\"{ disableNew: true, disableSort: true, xdisableSearch: true, formId: locals.FORMS.Projekt }\"\n          @filter=\"locals.filter = $event\"\n    ></ae-design>  \n\n    <!-- {{locals.query}} -->\n\n    <ae-list     list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\"\n                :search=\"locals.query\"\n                :filter=\"locals.filter\"\n                :search-options=\"{ searchAllFields: true }\"\n                :param-list-form-id=\"locals.FORMS.Projekt\"\n                :sort=\"[{ field: 'data.sofort', descending: true }, { field: 'data.express', descending: true }, 'data.termin', { fields: ['data.name', 'id'] }]\" \n                :param-debug=\"false\" \n                :param-design-params=\"{ hidePath: true }\"\n                @selected=\"Aeppic.drillInto($event, arguments[1])\" \n      ></ae-list> \n  </section>\n</div>          ","css":"","controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Projekt: '27a5cf6e-22f8-44d2-8107-400b27382690',\n      Board: 'b48189af-7305-4ee5-ab8b-e15cbcd55aa7',\n      Ordner: 'e85fc64c-df8a-493a-a7ce-fefa6d85d608',\n    }\n    locals.FORMS = this.FORMS\n\n    locals.filter = ''\n\n\n    const folders = await Aeppic.find(Aeppic.Query.children(document.id).form(this.FORMS.Ordner).where('data.archiv').is(false))\n \n    locals.query = `a:${document.id} f.id:${this.FORMS.Projekt} (${folders.map(f => `p:${f.id}`).join(' OR ')})`\n  }  \n}    ","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-01-19T14:34:16+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-01-23T09:06:29+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1706000789338,"ct":1705674856743,"a_depth":4,"a":["apps","90a38bb1-5683-49d1-b519-203876cc6967","4bfbe5fd-cf64-4b07-b91f-17bade3f41f9","b48189af-7305-4ee5-ab8b-e15cbcd55aa7"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","f416e371-07cc-4987-a6de-5934ef5ff3e4","1096c5df-2773-4914-9455-dc54e0f3e0e5","e88bffe7-d89d-4c6c-bdc4-2238e2ee4fee"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"320506f7-696d-40e3-824d-cd129dff385e","text":"rd:my-instructions","v":"25768df7aa28794d"},"created":{"at":"2023-10-10T13:49:58+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1696945798666,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      UnterweisungenEinesProfiles: 'd1762f3d-541a-4100-bab3-3a4b74b2131a',\n      Unterweisung: '94886126-c88d-4ea0-b088-8ea5ad155b08',\n    }\n  \n    locals.ready = false\n\n    locals.instructions = []\n    locals.isManager = null\n\n    locals.isManager = (await Aeppic.Actions.run(['7c4c6268-b24a-43c4-b876-a2a07f13942c'], { Account: Aeppic.Account, target: document }))[0].value\n\n    watchParam('tab', tab => this.update(tab))\n\n    await this.update(params.tab)\n\n    locals.ready = true\n  }\n\n  async update(tab) {\n    if (tab === 'todo' || !tab) {\n      locals.instructions = await Aeppic.find(`p:${document.p} f.id:${this.FORMS.Unterweisung} data.erledigt:false`, { size: 9999 })\n      return\n    } \n    \n    if (tab === 'done') {\n      locals.instructions = await Aeppic.find(`p:${document.p} f.id:${this.FORMS.Unterweisung}  data.erledigt:true`, { size: 9999 })\n      return\n    }\n\n    locals.instructions = []\n  }\n} ","css":"","description":"","name":"rd:page-inner","packages":[],"template":"<div class=\"h-full flex flex-col\"> \n  <div class=\"flex-1 flex flex-col\">\n    <div class=\"flex-1 mx-auto flex flex-col gap-4 w-full bg-white overflow-visible bg-white max-w-5xl px-4 py-2 my-2 lg:shadow-md lg:rounded-md\">\n      <template v-if=\"locals.isManager === true\">\n        <ae-design name=\"rd:toolbar\" :document-id=\"document.p\" :param-disable-sort-filter=\"true\"></ae-design>\n        \n        <ae-list  v-if=\"locals.ready\"\n                  :sort=\"{ field: 'created.at', descending: true }\"\n                  list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\"\n                  :documents=\"locals.instructions\"\n                  param-title=\"Alle Unterweisungen\"\n                  @selected=\"Aeppic.navigateTo($event)\"\n                  param-design=\"rd:card\"\n                  param-min-column-width=\"100%\"\n                  param-gap=\"small\"\n                  :param-enable-filter-bar=\"true\"\n                  param-sort-fields=\"data.name,data.versendet,data.versendetAm,data.bewertungAktiv,data.lesebestaetigungenPositiv,data.lesebestaetigungenNeutral,data.lesebestaetigungenNegativ,created.at,modified.at\"\n                  param-filter-fields=\"data.versendet,data.empfaenger\"\n                  param-empty-text=\"Keine Unterweisungen erstellt\"\n                  param-form-id=\"94886126-c88d-4ea0-b088-8ea5ad155b08\"\n                  :suspend=\"true\"\n        ></ae-list>\n      </template>\n      \n    </div>\n  </div>\n</div>"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"5d09a1f1-8999-4c6a-8cef-e6c2b4dc1193","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-12-04T08:39:03+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"320506f7-696d-40e3-824d-cd129dff385e","text":"rd:my-instructions","v":"25768df7aa28794d"},"p":"e88bffe7-d89d-4c6c-bdc4-2238e2ee4fee","previous":{"v":"f9d74122c0e3a763"},"stamps":[],"t":1764837543282,"v":"7b57d44193c4794e"},{"a":["apps","9d6ee173-26fe-4472-a271-7667f717094e","53b70eca-0cef-448b-9674-22a70a937eb1","8fc08287-dbcc-4e41-9d5d-28e4cd828943"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2022-05-05T07:36:56+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1651736216194,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:page-inner","packages":[],"template":"<ae-design class=\"h-full\" :name=\"'rd:' + params.tab\" :document=\"document\" :params=\"params\"></ae-design>"},"f":{"id":"design-form","text":"Design","v":"c2d9ae57c7a46896"},"id":"5dcb823d-8570-4d53-93e3-4baddc7e6e64","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-02-14T14:10:01+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"8fc08287-dbcc-4e41-9d5d-28e4cd828943","previous":{"v":"f4d50653e3dd8fba"},"stamps":[],"t":1739542201644,"v":"2a76fe0793fc5632"},{"id":"5e39f97b-40c5-443a-96fa-df354acaa686","v":"2983098f5730ba07","previous":{"v":"b78417823b740cfb"},"p":"43f2603c-e6b0-4a91-9087-4f103c96a2b4","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-inner","template":"<ae-design class=\"h-full w-full\" name=\"rd:calendar\" :document=\"document\" :params=\"params\"></ae-design>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-01-11T09:28:30+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-01-11T09:33:35+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1704965615680,"ct":1704965310169,"a_depth":4,"a":["apps","b3191869-9bcf-440c-92be-7b013944b450","3555bef3-1cf0-4f7d-b3ce-5346fb8cbff4","43f2603c-e6b0-4a91-9087-4f103c96a2b4"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"60daaeb7-36e9-493d-b18f-dbb8e8f04e31","v":"9e6c24769ad985a7","previous":{"v":"6be38c86602c854a"},"p":"582f2701-c678-4770-bcba-e5ff84e06752","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"rd:page-inner","template":"<!-- # Benachrichtigungen\n- Erwähungen\n- Pings\n- Kommentare\n- Zugewiesen\n- Freigabe\n- Andere -->\n\n<!-- {{locals.selectedEntryParams}} -->\n\n<div class=\"w-full h-full overflow-hidden flex\">\n<!-- {{locals.selectedEntryDocument}}   -->\n  <section class=\"w-[300px] h-full p-2 shadow flex flex-col gap-2 overflow-hidden\">\n    <div class=\"flex\">\n        <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n              :param-text=\"locals.showUnread ? 'Nur ungelesen' : 'Gelesen und ungelesen'\"\n              :param-icon=\"locals.showUnread ? 'fa fa-toggle-off' : 'fa fa-toggle-on'\"\n              @selected=\"controller.toggleReadFilter()\"\n              class=\"w-full\"\n              param-classes=\"w-full\"\n      ></ae-layout>\n    </div>\n\n    <ae-list class=\"flex-1 overflow-y-scroll overflow-x-hidden\" \n              list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\"\n            :documents=\"locals.entries\"\n            param-design=\"rd:notification-card\"\n            @selected=\"controller.selectedEntry($event)\" \n            @contextmenu=\"controller.showContextMenu($event)\"\n            :param-design-params=\"{ selectedDocument: locals.selectedEntry }\"\n    ></ae-list>\n\n    <!-- <div v-for=\"entry of locals.entries\"\n        class=\"flex gap-3 bg-white p-1 rounded-lg\"\n        :class=\"{ 'bg-blue-100': entry.id === locals.selectedEntryId }\"\n        @click.stop=\"controller.selectedEntry(entry)\"\n        @click.right.stop.prevent=\"controller.showContextMenu($event, entry)\"\n    >\n      <ae-design name=\"rd:creator-avatar\" :document=\"entry\" class=\"text-4xl\"></ae-design>\n\n      <div class=\"flex-1 flex flex-col overflow-hidden\">\n        <div class=\"flex-1 flex gap-2\" :class=\"{ 'font-bold': !entry.data.read }\">\n          <ae-design name=\"icon\" class=\"text-neutral-500\" :document=\"entry.data.document\"></ae-design>\n          <ae-design name=\"title\"  :document=\"entry\"></ae-design>\n\n          <div class=\"flex-1\"></div>\n\n          <ae-design name=\"rd:created-at\" :document=\"entry\" :param-format=\"{ day: '2-digit', month: '2-digit' }\"\n                      class=\"whitespace-nowrap text-neutral-500 text-sm\"\n          ></ae-design>\n        </div>\n\n        <ae-design name=\"path\" :document=\"entry.data.document\" class=\"text-xs\"></ae-design>\n        <ae-design name=\"title\" :document=\"entry.data.document\" class=\"text-sm\"></ae-design>\n      </div>\n    </div> -->\n\n    <ae-layout v-if=\"locals.entries.length === locals.searchSize\"\n            layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n            param-text=\"Weitere Nachrichten laden\"\n            param-icon=\"fa fa-redo\"\n            @selected=\"controller.increaseSearchSize()\"\n    ></ae-layout>\n\n    <ae-popup ref=\"contextmenu\">\n      <div class=\"flex flex-col gap-2 p-2\">\n        <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n                  param-text=\"Als ungelesen markieren\"\n                  param-icon=\"fa fa-envelope\"\n                  @selected=\"controller.markEntryUnread(locals.contextMenuEntry)\"\n        ></ae-layout>\n      </div>\n    </ae-popup>\n  </section>\n\n  <section class=\"flex-1 overflow-auto px-4 pt-2\">\n    <!-- <ae-design name=\"path\" :document=\"locals.selectedEntryDocument\"></ae-design>\n    <ae-design name=\"title\" :document=\"locals.selectedEntryDocument\"></ae-design>\n     -->\n    <div class=\"flex justify-center mt-10 gap-2\" v-if=\"locals.selectedEntryId && !locals.selectedEntryDocument\">\n      <ae-icon class=\"fa fa-times text-2xl\"></ae-icon>\n      <div>\n      Die Benachrichtigung verweist auf ein bereits gelöschtes Dokument.\n      </div>\n    </div>\n    <ae-layout v-else-if=\"locals.selectedEntryDocument\"\n          layout-id=\"0e40bb7a-7f76-425a-8b07-3dbb6208d277\"\n        :param-page-document=\"locals.selectedEntryDocument\"\n        class=\"h-full w-full overflow-hidden\"\n        :param-is-embedded=\"true\"\n        :param-window-width=\"params.windowWidth - 300\"\n        :param-more-actions-params=\"locals.selectedEntryParams\"\n    ></ae-layout>  \n    <!-- <ae-design v-else\n              name=\"rd:page-embedded\"\n              :document=\"locals.selectedEntryDocument\"\n              :params=\"locals.selectedEntryParams\"\n              class=\"h-full\"\n    ></ae-design> -->\n  </section>\n</div>","css":"","controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Notification: '6d164aff-df9b-470d-9632-cfb6f5892509',\n      PingAsNotificationCategory: '97902782-7315-4837-94fc-8e080c6cfbf3',\n      NotificationRequest: 'ddaa6921-770e-4a73-b8a4-b4a99abed24b',\n      Comment: 'cf155969-ede1-43a4-9b10-3a697b19db91',\n      Ping: '42cf6e7a-e304-49a6-86e1-c94d84f1d0d9',\n      Account: 'account',\n      Unterweisung: '94886126-c88d-4ea0-b088-8ea5ad155b08',\n    }\n\n    locals.searchSize = 50\n    locals.showUnread = true\n\n\n    locals.selectedEntry = null\n    locals.selectedEntryDocument = null\n    locals.selectedEntryParams = {}\n\n    locals.entries = []\n\n    this.subscription = Aeppic.updateSubscription(this.subscription, this.query, { sort: { field: 'created.at', descending: true }, size: locals.searchSize },\n    async (documents) => {\n      this._refresh(documents)\n      \n      if (Aeppic.Root.params.queryParams?.document) {\n        this.selectedEntry(await Aeppic.get(Aeppic.Root.params.queryParams.document))\n      }\n    })\n  }\n\n\n  get query() {\n    const parts = []\n    // const commentsQuery = `f.id:${this.FORMS.Comment} created.by:${Aeppic.Account.id}`\n    // const pingsQuery = `p:${Aeppic.Account.id} (f.id:${this.FORMS.NotificationRequest} data.category:${this.FORMS.PingAsNotificationCategory}) OR f.id:${this.FORMS.Ping}`\n    const notificationsQuery = `p:${Aeppic.Account.id} f.id:${this.FORMS.Notification}`\n    parts.push(notificationsQuery)\n\n    if (locals.showUnread) {\n      parts.push(`data.read:false`)\n    }\n// (${commentsQuery}) OR\n    // const query = ` (${pingsQuery}) OR (${notificationsQuery})`\n    return parts.join(' ')\n  }\n\n  increaseSearchSize() {\n    locals.searchSize += 50 \n\n    this._updateSub()\n  }\n\n  toggleReadFilter() {\n    locals.selectedEntry = null\n    locals.selectedEntryDocument = null\n    locals.selectedEntryParams = {}\n\n    locals.showUnread = !locals.showUnread\n\n    this._updateSub()\n  }\n\n  _updateSub() {\n    // FIXME: should not be needed? But without, the initial subscription callback is executed still (from init())\n    this.subscription?.cancel() \n    this.subscription = null\n\n    this._refresh([])\n\n    this.subscription = Aeppic.updateSubscription(this.subscription, this.query, { sort: { field: 'created.at', descending: true }, size: locals.searchSize }, (documents) => this._refresh(documents))\n  } \n\n  _refresh(docs) {\n    console.log('_frefresh', docs)\n\n    locals.entries = docs\n\n    // if (!locals.selectedEntry) {\n    //   this.selectedEntry(docs[0])\n\n    // }\n  }\n\n  async selectedEntry(entry) {\n    console.log('selectedEntry', entry)\n\n    if (!entry) {\n      return\n    }\n\n    locals.selectedEntry = entry\n    locals.selectedEntryDocument = null\n    locals.selectedEntryParams = {}\n\n    // if (entry.f.id === this.FORMS.Comment ) {\n    //   await this._selectComment(entry)\n    //   return\n    // }\n\n    // if (entry.f.id === this.FORMS.Ping) {\n    //   locals.selectedEntryDocument = await Aeppic.get(entry.data.document)\n    //   locals.selectedEntryParams = {\n    //     openComments: true,\n    //     highlightComment: entry.id, \n    //   }\n\n    //   return \n    // }\n\n    if (entry.f.id === this.FORMS.Notification) {\n      if (entry.data.category === this.FORMS.Comment) {\n        await this._selectComment(entry.data.document)\n      } else if (entry.data.category === this.FORMS.Ping) {\n        const document = await Aeppic.get(entry.data.document)\n        \n        if (document.a_forms.find(aForm => aForm === this.FORMS.Account)) {\n          // A (newer) ping is always a child of the target Account. To retrieve the acutual document, one has to examine the ping's target document\n          const ping = document\n\n          locals.selectedEntryDocument = await Aeppic.get(ping.data.document)\n          locals.selectedEntryParams = {\n            openComments: true,\n            highlightComment: ping.id, \n          }\n\n        } else {\n          // DEPRECATED: document at old form linked to target document, but not the actual PING document\n          locals.selectedEntryDocument = await Aeppic.get(document.p)\n        }\n      } else if (entry.data.category === this.FORMS.Unterweisung) {\n        const doc = await Aeppic.get(entry.data.document)\n        locals.selectedEntryDocument = await Aeppic.get(doc?.p)\n      } else {\n        locals.selectedEntryDocument = await Aeppic.get(entry.data.document)\n      }\n\n      if (!entry.data.read) {\n        const editable = await Aeppic.edit(entry)\n        editable.data.read = true\n        editable.data.readAt = Aeppic.DateTime.local().toISO()\n        Aeppic.save(editable)\n      }\n\n    } else {\n      console.error('TODO! not supported other things than notifications', entry)\n    }\n\n    \n    Aeppic.navigateTo(document, { document: entry.id })\n\n  }\n\n  async _selectComment(comment) {\n    const ensuredComment = await Aeppic.get(comment)\n\n    if (!ensuredComment) {\n      return\n    }\n\n    locals.selectedEntryDocument = await Aeppic.get(ensuredComment.p)\n    locals.selectedEntryParams = {\n      openComments: true,\n      highlightComment: ensuredComment.id, \n    }\n\n    return\n  }\n\n  showContextMenu(event) {\n    const { document , event: clickEvent } = event\n    locals.contextMenuEntry= document\n\n    $refs.contextmenu.show(clickEvent)\n  }\n\n  async markEntryUnread(entry) {\n    const editable = await Aeppic.edit(entry)\n\n    editable.data.read = false\n\n    Aeppic.save(editable)\n\n    $refs.contextmenu.close()\n\n  }\n}\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-05-20T12:48:27+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-04-05T15:04:02+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1680707042093,"ct":1653050907189,"a_depth":4,"a":["apps","c676e25c-4d28-48e3-9b60-811cde637ea5","fd2312bb-54bc-41a9-8fc7-b65b22ecb1d5","582f2701-c678-4770-bcba-e5ff84e06752"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","f5850e39-8581-4b62-8cfe-f4fa95009a1a"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2025-08-05T11:21:05+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1754394980178,"data":{"aliases":[],"controller":"class Controller {\n   dispatchEventChildren(refName, eventName, eventValue) { \n    if (!$refs[refName] || !$refs[refName].$el || !$refs[refName].$el.children) {\n      return\n    }\n    const children = $refs[refName].$el.children\n    for (let i = 0; i < children.length; i++) {\n      children[i].dispatchEvent(new CustomEvent(eventName, {\n        detail: eventValue\n      }))\n    }\n    $refs[refName].$emit(eventName, eventValue)\n  }\n}","css":"","description":"","name":"rd:page-inner","packages":[],"template":"<template>\n  <ae-design\n    ref=\"page\"\n    @toolbar.native=\"controller.dispatchEventChildren('page', 'toolbar', $event.detail)\"\n    name=\"rd:page--administator\"\n    :document=\"document\"\n    :params=\"params\"\n    v-on=\"$listeners\"\n  ></ae-design>\n</template>\n"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"63581a2f-1025-4934-a5c8-1855b67ee890","inheritedLocks":[null,null,null,null,null],"locks":[],"meta":{"modified":{"at":"2025-08-26T12:20:21+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null}},"modified":{"at":"2025-08-15T07:35:14+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"f5850e39-8581-4b62-8cfe-f4fa95009a1a","previous":{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","33e3b54d-6b4b-4aa3-8f70-2b834b27bf66"],"a_forms":["folder","application-form","form-folder","form"],"p":"33e3b54d-6b4b-4aa3-8f70-2b834b27bf66","v":"ddd072a4c4e2d188"},"stamps":[],"t":1756210821623,"v":"29360cb8248bdde9"},{"a":["apps","0af4f8a7-729e-4318-8f82-7e976555004e","0ae4ef2a-62fc-4042-b07e-e93a134fe055","14e2b48e-d2fb-4162-a89e-773a952a85d7"],"a_depth":4,"a_forms":["folder","application-form","folder","form"],"created":{"at":"2025-08-21T14:05:22+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1755785122987,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Design: 'design-form',\n      EpicPagesDesignFormFallbackDesign: '38b0b6a1-46f6-41ed-ac20-4144aee4d57f',\n      EpicPagesState: 'f62598b6-1cbf-433c-ad71-aca731261f42',\n      Form: 'form',\n    }\n\n    locals.rerenderKey = 0\n\n    locals.activeDesignDocument = null\n    locals.activeDesignNewStateLocation = ''\n    locals.activeDesignPlaceholderDocumentForm = ''\n    locals.designName = 'rd:epic-page'\n    locals.selectedDesign = null\n  }\n\n  async onMenuDrill(event) {\n    let designId = ''\n    let newStateLocation = ''\n    let state = null\n\n    const targetDocument = await Aeppic.get(event)\n\n    if (targetDocument.f.id === this.FORMS.EpicPagesState) {\n      state = targetDocument\n    }\n\n    console.log(123, targetDocument.data.name, state)\n\n    let designName = 'rd:epic-page'\n    let activeDesignPlaceholderDocumentForm = null\n\n    if (targetDocument.f.id === this.FORMS.Form) {\n      designId = targetDocument.id\n      designName = 'rd:form-new-epic-fallback-design'\n    } else if (targetDocument.f.id === this.FORMS.Design) {\n      designId = targetDocument.id\n\n      if (targetDocument.a_forms.slice(-1)[0] === this.FORMS.Form) {\n        // design is specific for a single form\n        activeDesignPlaceholderDocumentForm = targetDocument.p\n      }\n    } else if (targetDocument.f.id === this.FORMS.EpicPagesDesignFormFallbackDesign) {\n      newStateLocation = targetDocument.id\n      activeDesignPlaceholderDocumentForm = targetDocument.p\n      designId = targetDocument.data.design.id\n    } else if (targetDocument.a_forms.includes(this.FORMS.EpicPagesDesignFormFallbackDesign)) {\n      const parent = await Aeppic.get(targetDocument.p)\n      designId = parent.data.design.id\n    } else {\n      designId = targetDocument.p\n    }\n\n    locals.designName = designName\n    locals.activeDesignDocument = await Aeppic.get(designId)\n    locals.activeDesignDocumentState = state\n    locals.activeDesignNewStateLocation = newStateLocation\n    locals.activeDesignPlaceholderDocumentForm = activeDesignPlaceholderDocumentForm\n    console.log(locals.activeDesignDocument)\n\n    locals.rerenderKey += 1\n  }\n}\n","css":"","description":"","name":"rd:page-inner","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<div class=\"flex gap-2 w-full h-full\">\n  <div class=\"w-[200px] overflow-x-hidden overflow-y-scroll\">\n    <ae-design\n    class=\"w-full\"\n      name=\"rd:menu\"\n      document-id=\"88a42318-5cd6-429b-bc43-1eefeeb5e76f\"\n      :param-active-document-id=\"document.p\"\n      @selected=\"controller.onMenuDrill($event)\"\n    ></ae-design>\n  </div>\n\n  <ae-design\n    :key=\"'_CSS' + locals.rerenderKey\"\n    :name=\"locals.designName\"\n    :document=\"locals.activeDesignDocument\"\n    :param-state=\"locals.activeDesignDocumentState\"\n    :param-placeholder-document-form=\"locals.activeDesignPlaceholderDocumentForm\"\n    :param-new-state-location=\"locals.activeDesignNewStateLocation\"\n    class=\"flex-1 overflow-x-scroll overflow-y-scroll\"\n  ></ae-design>\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"a6b987f8c80dc07f"},"id":"6398e08b-bf7e-4c6b-91f7-3f7b4884291d","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-05-08T06:55:13+00:00","backedBy":"","by":"09763886-6748-4a56-8e0e-54a2293ee96b","client":"server","from":"","impersonatedBy":""},"p":"14e2b48e-d2fb-4162-a89e-773a952a85d7","previous":{"v":"f14bf5117f85f2d1"},"stamps":[],"t":1778223313145,"v":"4aca33ad138a2f45"},{"id":"6a10ee28-6e9b-4aa0-a585-f3ec17d44fb1","v":"f869be118a907ce0","cloneOf":{"id":"c81dac98-04c7-4b7c-8eb9-91b18109b360","v":"af85572381810d66","text":"rd:page-inner"},"originalCloneOf":{"id":"c81dac98-04c7-4b7c-8eb9-91b18109b360","v":"af85572381810d66","text":"rd:page-inner"},"previous":{"v":"c9a784bad901ccef"},"p":"b40fd5c3-1bc2-42b4-a269-f3cb2e9cf477","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-inner","template":"<ae-design name=\"rd:page-list\" :document=\"document\" class=\"h-full\" :params=\"params\"></ae-design> ","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-11-24T13:18:17+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-11-24T13:18:47+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1700831927618,"ct":1700831897370,"a_depth":4,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","b40fd5c3-1bc2-42b4-a269-f3cb2e9cf477"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","1b166603-d0f3-4f16-98c4-0534afbd6f5a"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2025-11-13T13:03:21+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1763039001293,"data":{"aliases":[],"controller":"class Controller {\n\n  init() {\n    \n  }\n\n  get design() {\n    if (params.tab === \"maintenance-execution\") {\n      return \"rd:page-inner_default\"\n    }\n\n    return `rd:tab-${params.tab || 'overview'}`\n  }\n}","css":"","description":"","name":"rd:page-inner","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<template v-if=\"params.tab !== 'old'\">  \n  <div \n    class=\"h-full flex flex-col w-full bg-gray-50\"\n    :class=\"[params.tab !== 'maintenance-execution' && 'px-2 lg:px-6']\"\n  >\n    <ae-design class=\"h-full overflow-auto\"\n              :name=\"controller.design\"\n              :document=\"document\"\n              :param-filter=\"locals.filter\"\n              :param-view=\"params.view\"\n              :param-tab=\"params.tab\"\n              :param-window-width=\"params.windowWidth\"\n              :param-readonly=\"params.readonly\"\n    ></ae-design>\n  </div> \n</template>\n<template v-else>\n  <ae-design class=\"h-full w-full\" v-if=\"data.workflowStatus === 'PLANNED'\" name=\"rd:page-inner_default\" :document=\"document\" :params=\"params\"></ae-design>\n  <ae-design class=\"h-full w-full\" v-else name=\"rd:performance-review\" :document=\"document\" :params=\"params\"></ae-design>\n</template>"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"6ca652bd-38ee-49cd-b5a6-e3be8e9b2658","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-03-27T12:42:13+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"p":"1b166603-d0f3-4f16-98c4-0534afbd6f5a","previous":{"v":"7209119dad4d6ae0"},"stamps":[],"t":1774615333588,"v":"6564a0cab603c4e5"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","3f88574e-aaec-484a-8dc4-bbdcb085186d"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2026-01-19T11:31:44+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"ct":1768822304329,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:page-inner","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<div class=\"flex flex-col gap-4\">\n  <ae-design name=\"rd:page-inner_default\" :document=\"document\"></ae-design>\n  <ae-design name=\"rd:usage-list\" :document=\"document\" param-field-name=\"data.labels\"></ae-design>\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"70447c42-c855-4625-918d-f24d8b258d98","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-01-19T12:40:57+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"p":"3f88574e-aaec-484a-8dc4-bbdcb085186d","previous":{"v":"d1db73e67780cf86"},"stamps":[],"t":1768826457510,"v":"ad04c2901b0ce3cf"},{"id":"70826047-8be3-4025-acce-7f50016bc5ff","v":"20e13c842bad3970","previous":{"v":"f645f4055dc6d663"},"p":"fdfaf800-858a-4b45-91c9-5bdad7a63672","f":{"id":"design-form","v":"22a757f630104010","text":"Design"},"data":{"name":"rd:page-inner","template":"<ae-design :name=\"'rd:' +  (params.view || 'board')\" :document=\"document\" class=\"h-full\" :params=\"params\"></ae-design>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2025-08-05T09:59:13+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"modified":{"at":"2026-06-30T13:18:22+00:00","by":"09763886-6748-4a56-8e0e-54a2293ee96b","backedBy":"","impersonatedBy":"","from":"","client":"server"},"t":1782825502693,"ct":1754387953649,"a_depth":4,"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","fdfaf800-858a-4b45-91c9-5bdad7a63672"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"73b9e270-ef3f-4de6-b123-604c538b0ab4","v":"fb8056c0aefca790","cloneOf":{"id":"c81dac98-04c7-4b7c-8eb9-91b18109b360","v":"af85572381810d66","text":"rd:page-inner"},"originalCloneOf":{"id":"c81dac98-04c7-4b7c-8eb9-91b18109b360","v":"af85572381810d66","text":"rd:page-inner"},"previous":{"v":"0a3dd13e5cb32697"},"p":"1795bc4e-b1b8-41c4-b235-136c3ff0e0af","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-inner","template":"<ae-design name=\"rd:page-list\" :document=\"document\" class=\"h-full\" :params=\"params\"></ae-design> ","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-11-24T13:18:18+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-11-24T13:18:35+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1700831915060,"ct":1700831898961,"a_depth":4,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","1795bc4e-b1b8-41c4-b235-136c3ff0e0af"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","a4f3e35e-f945-4c8b-a7a4-81e987585974","13525440-3a25-44be-851b-1bcd803bff80","24842415-3690-4cad-82b9-b959ae7621c6"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2022-07-15T13:53:50+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1657893230674,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.tabs = [\n      { id: 'personal', label: 'Mein Konto' },\n      { id: 'notifications', label: 'Benachrichtigungen' },\n      // { id: 'redesign', label: 'Redesign' },\n      { id: 'debug', label: 'Support' },\n    ]\n\n    locals.active = locals.tabs[0]\n  }\n}","css":"","description":"","name":"rd:page-inner","packages":[],"template":"<div class=\"h-full flex flex-col mt-2\">\n  <div class=\"px-4 flex border-b \">\n    <div v-for=\"tab of locals.tabs\"\n          class=\"p-4 cursor-pointer\"\n          :class=\"[locals.active === tab && 'bg-white rounded-t-lg border-t border-l border-r -mb-1']\"\n          @click.stop=\"locals.active = tab\"\n    >\n      {{ tab.label }}\n    </div>\n  </div>\n \n\n  <div class=\"bg-white flex-1 p-4\">\n    <ae-design :name=\"'rd:' + locals.active.id\" :document=\"document\"></ae-design>\n  </div>\n</div>"},"f":{"id":"design-form","text":"Design","v":"c2d9ae57c7a46896"},"id":"745d4d25-c3c2-415a-892f-8cadae73e4c0","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-01-05T16:01:14+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"p":"24842415-3690-4cad-82b9-b959ae7621c6","previous":{"v":"ce630c222951ad1e"},"stamps":[],"t":1767628874033,"v":"abb70d8c32c803b4"},{"a":["apps","b0eb4a71-010b-4d65-b79b-bb984a57c10f","a6c009e7-a2c9-4e84-a992-4ad09134d39d","24523534-125d-4ebe-9a83-bd7fed39ff92"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"706a8ce9-7beb-4d9d-a624-5bf51a1681e9","text":"page--left","v":"f75105b140099846"},"created":{"at":"2022-10-24T15:28:25+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1666625305224,"data":{"aliases":[],"controller":"class Controller {\n  init() {\n    locals.listKey = Aeppic.uuid()\n    this.FORMS = {\n      Folder: '24523534-125d-4ebe-9a83-bd7fed39ff92',\n      Page: 'd6f1cc99-f34e-4cb8-99b3-11f917485c25',\n    }\n\n    locals.foldersSize = 0\n\n    locals.FORMS = this.FORMS\n    locals.filter = ''\n    locals.filterBaseFolder = `(f.id:${this.FORMS.Folder}) `\n    locals.filterBasePage = `(f.id:${this.FORMS.Page}) `\n  }\n\n  updateSize(size) {\n    locals.foldersSize = size\n  }\n}  ","css":"._CSS {\n  padding: var(--bp-page-content-padding);\n}","description":"","name":"rd:page-inner","packages":[],"template":"<div class=\"h-full overflow-auto flex flex-col bg-white p-4 w-full gap-4\">\n  <header\n    class=\"flex justify-between items-center w-full\"\n  >\n    \n    <ae-design \n      class=\"w-full\"\n      name=\"rd:toolbar\"\n      :document=\"document\"\n      :param-disable-sort=\"true\"\n      @filter=\"locals.filter = $event\"\n      :param-list-form-id=\"locals.FORMS.ProtocolGroup\"\n      ></ae-design>\n  </header>\n  \n  <div class=\"flex flex-col gap-8 h-full w-full\">\n      <ae-list\n        :key=\"locals.listKey\"\n        list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\" \n        query-id=\"f812861f-68c8-4818-9972-be7b5474c9b1\" \n        :filter=\"locals.filterBaseFolder + locals.filter\"\n        :root-document-id=\"document.id\" \n        :sort=\"{ fields: ['data.name', 'id'] }\" \n        @selected=\"Aeppic.drillInto($event, arguments[1])\"\n        :param-design-params=\"{ size: 'large' }\"\n        class=\"\"\n        @size=\"controller.updateSize($event)\"\n        param-design=\"rd:tile\"\n        :param-horizontal=\"true\"\n        :param-wrap=\"true\"\n      ></ae-list>\n      <ae-list \n        class=\"grow shrink-0 basis-1/3 w-full\"\n        list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\" \n        query-id=\"f812861f-68c8-4818-9972-be7b5474c9b1\" \n        :filter=\"locals.filterBasePage + locals.filter\"\n        :root-document-id=\"document.id\" \n        :sort=\"{ fields: ['data.name', 'id'] }\" \n        @selected=\"Aeppic.drillInto($event, arguments[1])\"\n        param-design=\"rd:card-inner\"\n        :param-divide=\"true\"\n      ></ae-list>\n    </div>\n  </div> \n</div>\n  \n"},"f":{"id":"design-form","text":"Design","v":"0061789efb5c5c29"},"id":"750c6af6-fd85-4edd-8eb4-a02c44dac021","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-02-10T10:39:56+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"706a8ce9-7beb-4d9d-a624-5bf51a1681e9","text":"page--left","v":"f75105b140099846"},"p":"24523534-125d-4ebe-9a83-bd7fed39ff92","previous":{"v":"08edbe79b8f02c58"},"stamps":[],"t":1770719996048,"v":"c33cd0fa7386ae1a"},{"id":"7752a8af-c1d9-4173-8e11-ab758daf1e18","v":"7f156087a1782159","previous":{"v":"initial"},"p":"089eb68f-d2ec-4e30-a3bb-6549d72932ec","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-inner","template":"<ae-design name=\"rd:page-list\" :document=\"document\"></ae-design>\n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-04-02T13:52:04+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-04-02T13:52:08+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1712065928873,"ct":1712065924741,"a_depth":4,"a":["apps","94a64d89-d204-4918-b147-d717914fb03e","f254ce25-42f1-4333-8ee7-23554bf746c1","089eb68f-d2ec-4e30-a3bb-6549d72932ec"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","3fbe0efd-713a-457a-a34c-3a12aa19d6bb","0fb162f4-0f78-4c1e-aad2-43c27e6d98cb","e46efc75-6f35-4c70-9bfb-d0317a53ed04"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2024-06-25T13:11:19+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1719321079301,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:page-inner","packages":[],"template":"<ae-design name=\"rd:page-list\" \n      :document=\"document\"\n      :params=\"{ ...params, \n                queryOnce: true, \n                initialSort: { field: 'created.at', descending: true }, \n                design: 'rd:card-inner', \n                scrollerHeight: params.windowWidth < 768 ? 90 : 45,\n                noWatch: true,\n       }\" \n      class=\"h-full w-full\"\n      @selected=\"Aeppic.navigateTo($event, { tab: 'roles' })\"\n></ae-design>"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"776beecd-a544-477b-af05-2babffce020e","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-07-28T14:41:09+00:00","backedBy":"","by":"b7485498-f1f3-4ab1-87d1-9cb63ea890c8","client":"server","from":"","impersonatedBy":""},"p":"e46efc75-6f35-4c70-9bfb-d0317a53ed04","previous":{"v":"0632dbd6d396f8fe"},"stamps":[],"t":1785249669660,"v":"be6faf57c3a831eb"},{"id":"78be14db-c43c-4c0c-a346-68648f302ce7","v":"bc0b2951d533a5bf","cloneOf":{"id":"f1f5ad72-c371-4a87-90eb-c862f99b5dbe","v":"7235283b3ae6348f","text":"board"},"originalCloneOf":{"id":"f1f5ad72-c371-4a87-90eb-c862f99b5dbe","v":"7235283b3ae6348f","text":"board"},"previous":{"v":"dbd554e1b531ed1c"},"p":"7da8412c-01e9-4a42-a527-6339e2c25488","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"rd:page-inner","template":"          <!-- :root-document-id=\"document.id\" -->\n          <!-- query-id=\"f812861f-68c8-4818-9972-be7b5474c9b1\" -->\n<ae-list  list-id=\"bace3889-c006-47c5-9c57-7f4bbe9dfe02\"\n          :search=\"locals.search\"\n          @selected=\"Aeppic.drillInto($event)\"\n          :search-options=\"{ searchAllFields: true, size: 5000 }\"\n          :sort=\"['data.name', 'id']\"\n          class=\"_CSS-list\"\n          v-if=\"locals.settings && locals.search\"\n          :params=\"locals.settings.data\"\n          :param-readonly=\"true\" \n></ae-list>\n\n    <!-- :param-list-form-id=\"locals.FORMS.Kunde\" -->\n<!-- :params=\"{ columns: 'data.name,data.kontakt,data.kategorie,data.branche,data.kundennummer,data.interesseAn,data.verantwortlich', designs: ',,,,,,table:avatar--small', headers: '' }\" -->\n<!-- param-sort-fields=\"data.name,data.hotness,data.kategorie,data.kundennummer,data.auftragsvolumen\" -->\n<!-- param-filter-fields=\"data.kategorie,data.branche,data.verantwortlich,data.quelle,data.hotness\" -->\n","css":"._CSS-list {\n  height: 100%;\n}","controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Wartung: 'c211ffaa-14f8-4439-9126-f42f65ac4424',\n      BoardSettings: '43420696-8097-4fc1-88e5-c69df9821470',\n      Objekt: '3d678f2a-65f5-4dc1-a643-c5998fa33f32',\n    }\n\n    locals.settings = null\n    locals.search = ''\n\n    locals.search = `a:${document.a[0]} f.id:${this.FORMS.Wartung}`\n\n    await this.reloadToWartung()\n\n    Aeppic.subscribe(`p:${document.id} f.id:${this.FORMS.BoardSettings}`, { size: 1 }, (docs) => {\n      locals.settings = docs[0]\n    })\n  }\n\n  async reloadToWartung() {\n    locals.maintenanceUrl = ''\n    locals.maintenanceAccount = null\n\n    const route = await Aeppic.get('c121fbba-e7d9-4f9b-80dc-cb6f4816d086')\n\n    if (packages.window.location.href.includes(route.data.route)) {\n      Aeppic.reload()\n      return\n    }\n\n    locals.maintenanceUrl = `${packages.window.location.origin}${route.data.route}`\n\n    const isVerwalter = (await Aeppic.Commands.execute('950f35d3-95ba-4d5a-a164-0074c767d600', document, { Account: Aeppic.Account })).value\n\n    if (!isVerwalter) {\n      Aeppic.navigateTo(route.data.route)\n      Aeppic.reload()\n      return\n    }\n\n    locals.maintenanceAccount = await Aeppic.findOne(`a:${document.id} f.id:account data.disabled:false data.name:firma*`)\n  }\n}     ","packages":[{"id":"10843fbf-4f0c-416b-be7d-42d6bbd0ae68","v":"cc146accf5ec1930","text":"Window"}],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-05-23T10:02:37+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-06-11T13:10:53+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1718111453360,"ct":1716458557760,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","7da8412c-01e9-4a42-a527-6339e2c25488"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"79123858-1764-4594-a017-c1a36f4fbb13","v":"6b7a221077654a3e","previous":{"v":"initial"},"p":"5011479f-3ef7-4c66-810b-3bb65f992712","f":{"id":"design-form","v":"4b1c7a4912f80103","text":"Design"},"data":{"name":"rd:page-inner","template":"<ae-design class=\"h-full overflow-auto\"\n           :name=\"'rd:' + (params.tab || 'information')\"\n           :document=\"document\"\n           :params=\"params\"\n></ae-design>\n","css":"","controller":"","packages":[],"parameters":[],"parametersDescriptions":[],"parametersTypes":[],"parametersControls":[],"parametersCardinalities":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2026-08-06T13:50:26+00:00","by":"e24f1d78-6fbd-4f97-9fb0-b1af9bd6bd13","backedBy":"","impersonatedBy":"","from":"","client":"server"},"modified":{"at":"2026-08-06T13:56:38+00:00","by":"e24f1d78-6fbd-4f97-9fb0-b1af9bd6bd13","backedBy":"","impersonatedBy":"","from":"","client":"server"},"t":1786024598028,"ct":1786024226261,"a_depth":4,"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","5011479f-3ef7-4c66-810b-3bb65f992712"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"79f0df51-1720-4b04-9f3a-41c011bcdaaa","v":"96477b4b598ba755","cloneOf":{"id":"7ebfa27a-84c7-4668-b31b-b2d0f05112d2","v":"bb7e41dced51d236","text":"page"},"originalCloneOf":{"id":"7ebfa27a-84c7-4668-b31b-b2d0f05112d2","v":"bb7e41dced51d236","text":"page"},"previous":{"v":"initial"},"p":"816b2d0e-5158-4f0c-a5cf-6069bb76de69","f":{"id":"design-form","v":"3385ac6766f32638","text":"Design"},"data":{"name":"rd:page-inner","template":"<template v-if=\"locals.ready\">\n  <ae-design v-if=\"locals.isVerwalter\" ref=\"page\" @toolbar.native=\"controller.dispatchEventChildren('page', 'toolbar', $event.detail)\" name=\"rd:page--administator\" :document=\"document\" :params=\"params\" v-on=\"$listeners\"></ae-design>\n  <ae-design v-else name=\"rd:page--worker\" ref=\"page\" @toolbar.native=\"controller.dispatchEventChildren('page', 'toolbar', $event.detail)\" :document=\"document\" :params=\"params\" v-on=\"$listeners\"></ae-design>\n</template> ","css":"","controller":"class Controller {\n  async init() {\n    locals.ready = false\n    \n    locals.isVerwalter = false\n    locals.isVerwalter = (await Aeppic.Commands.execute('950f35d3-95ba-4d5a-a164-0074c767d600', document, { Account: Aeppic.Account })).value\n    \n    locals.ready = true\n  }\n\n   dispatchEventChildren(refName, eventName, eventValue) { \n    if (!$refs[refName] || !$refs[refName].$el || !$refs[refName].$el.children) {\n      return\n    }\n    const children = $refs[refName].$el.children\n    for (let i = 0; i < children.length; i++) {\n      children[i].dispatchEvent(new CustomEvent(eventName, {\n        detail: eventValue\n      }))\n    }\n    $refs[refName].$emit(eventName, eventValue)\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-05-23T09:58:12+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-05-23T09:58:35+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1716458315750,"ct":1716458292494,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","816b2d0e-5158-4f0c-a5cf-6069bb76de69"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["system","b2533f7b-ea85-4680-99ed-d8e11be641b9","0e6939d6-9b93-4165-b6bd-977e4da881f3","627f5b74-3baf-45f8-a1d3-a5936839b844","81939b86-a48e-480e-afd1-cb2907568550"],"a_depth":5,"a_forms":["system-folder-form","folder","application-form","form-folder","form"],"created":{"at":"2023-01-05T14:16:02+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1672928162080,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:page-inner","packages":[],"template":"<ae-design :name=\"'rd:' + params.view\" :document=\"document\" class=\"h-full\" :params=\"params\"></ae-design>"},"f":{"id":"design-form","text":"Design","v":"c2d9ae57c7a46896"},"id":"7a2c694a-e44d-4c06-937a-b786d3e62ab3","inheritedLocks":[null,null,null,null,null,null],"locks":[],"modified":{"at":"2024-11-12T10:43:14+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"81939b86-a48e-480e-afd1-cb2907568550","previous":{"v":"06e4df0361d15a76"},"stamps":[],"t":1731408194101,"v":"fc2c9b5c99e3d042"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","6ca8b149-5489-413d-9252-d2644019d53c"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"b75be61a-1244-4344-ba9f-b52d7d1835a0","text":"rd:page-inner","v":"initial"},"created":{"at":"2025-08-05T10:07:36+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1754388456019,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:page-inner","packages":[],"template":"<ae-design name=\"rd:page-list\" :document=\"document\"\n:params=\"params\"></ae-design>"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"7a79d379-fc2b-46b3-8146-c77e8843e3dd","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-08-05T10:07:36+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"b75be61a-1244-4344-ba9f-b52d7d1835a0","text":"rd:page-inner","v":"initial"},"p":"6ca8b149-5489-413d-9252-d2644019d53c","stamps":[],"t":1754388456020,"v":"initial"},{"id":"7b4811a6-5a12-4bd7-9c0b-e3ee6f5b8d28","v":"8d98e25e6d872770","previous":{"v":"d4222eaddf665f0a"},"p":"0b4fe19c-a550-46b7-ada0-6813a60e14bc","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"rd:page-inner","template":"<ae-design :name=\"'rd:' + (params.view || 'projects')\" :document=\"document\" class=\"h-full\" :params=\"params\"></ae-design> ","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-05-06T14:23:42+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-02-23T11:07:18+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1677150438358,"ct":1651847022568,"a_depth":4,"a":["apps","59edbdbc-2cab-426a-bb42-6e57c5158e4f","3be7e887-1bcd-4c3c-979f-b20a986c4c48","0b4fe19c-a550-46b7-ada0-6813a60e14bc"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"7c784ca9-6951-44d1-894b-51e8e81a535b","v":"c6e0442bfad4b9ab","cloneOf":{"id":"c0141b2e-473e-42c5-a291-5717230aebb4","v":"5c4238fb7d9a2ba5","text":"page"},"originalCloneOf":{"id":"c0141b2e-473e-42c5-a291-5717230aebb4","v":"5c4238fb7d9a2ba5","text":"page"},"previous":{"v":"eb87ed5c2b5bdb0b"},"p":"repository-folder-form","f":{"id":"design-form","v":"e3fe9ece11aabc5e","text":"Design"},"data":{"name":"rd:page-inner","applies":"","template":"<!-- <ae-layout  layout-id=\"f66a2fef-e019-4cc3-a3ce-9d6e1e16a7ab\"\n            :param-list-form=\"data.contentsForm\"\n            @filter=\"locals.filter = $event\"\n            @sort=\"locals.sort = $event\"\n            :param-initial-sort=\"locals.sort\"\n            :param-initial-filters=\"params.initialFilters\"\n            :param-document=\"document\"\n></ae-layout> -->\n<div class=\"h-full flex flex-col\">\n  <ae-design name=\"rd:toolbar\" \n            :document=\"document\" \n            :param-children-forms=\"data.contentsForm\" \n            :param-filter-fields=\"data.filterFields\"\n            :param-sort-fields=\"data.sortFields\"\n            :param-disable-filter=\"data.disableFilter\"\n            :param-disable-sort=\"data.disableSort\"\n            :param-list-form-id=\"data.contentsForm.id\"\n            :param-initial-sort=\"locals.initialSort\"\n            @filter=\"locals.filter = $event\"\n            @sort=\"locals.sort = $event\"\n  ></ae-design> \n\n  <ae-list  class=\"\"\n            list-id=\"table-list\"\n            :search=\"controller.fixedFilter\"\n            :root-document-id=\"document.id\" \n            :param-columns=\"data.displayTableColumns\"\n            :param-headers=\"data.displayTableHeaders\"\n            :param-designs=\"data.displayTableDesigns\"\n            :sort=\"locals.sort\"\n            :filter=\"locals.filter\"\n            :param-row-height=\"data.rowHeight\"\n            :watch-list=\"false\"\n            :search-options=\"{ searchAllFields: true, size: 2000 }\"\n            :param-contents-form=\"data.contentsForm\"\n            :param-disable-filter-bar=\"true\"\n            >\n  </ae-list>\n            <!-- :param-initial-sort-by=\"data.sortBy\"\n            :param-initial-sort-asc=\"data.sortAsc\" -->\n            <!-- :param-filter-fields=\"data.filterFields\"\n            :param-sort-fields=\"data.sortFields\"\n            :param-disable-filter=\"data.disableFilter\"\n            :param-disable-sort=\"data.disableSort\" -->\n</div>\n\n","css":"","controller":"class Controller  {\n  init() {\n    locals.filter = ''\n    // locals.sort = { field: data.sortBy || params.initialSortBy || 'data.name', descending: typeof params.initialSortAsc === 'boolean' ? !params.initialSortAsc : null }\n    locals.sort = null\n\n    locals.initialSort = null\n\n    if (data.sortBy ||  data.sortAsc) {\n      locals.initialSort = {\n        field: data.sortBy,\n        ascending: data.sortAsc\n      }\n    }\n  }\n  \n  get fixedFilter() {\n    const parts = [`p:${document.id}`]\n\n    // if (locals.filter) {\n    //   parts.push(locals.filter)\n    // }\n\n    if (data.contentsForm.id) {\n      parts.push('f.id:' + data.contentsForm.id)\n    }\n\n    return parts.join(' AND ')\n  }\n}","packages":[]},"locks":[],"created":{"at":"2022-12-01T14:31:23+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-10-11T11:58:49+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1697025529166,"ct":1669905083517,"a_depth":3,"a":["system","system-folder-forms-folder","repository-folder-form"],"a_forms":["system-folder-form","form-folder","form"],"inheritedLocks":[null,null,null,null],"stamps":[]},{"a":["apps","bd4df555-2c56-4a5f-82f0-7e4745372f51","b42c9135-e564-4d50-abd1-4d753921120f","527f9bb3-01bd-48cc-ad5b-08b1bba3af33"],"a_depth":4,"a_forms":["folder","application-form","folder","form"],"created":{"at":"2022-12-01T13:41:18+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1669902078665,"data":{"aliases":[],"controller":"init() {\n  locals.view = {\n    only: {\n      fields: ['prozess']\n    }\n  }\n}","css":"","description":"","name":"rd:page-inner","packages":[],"template":"<div class=\"h-full\">\n  <ae-form  :document=\"document\" \n            layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\"\n            :auto-save=\"true\"\n            :auto-save-after=\"2500\"\n            class=\"h-full flex-1\"\n            :readonly=\"params.readonly\"\n  ></ae-form>\n\n  <!-- <ae-form  :document=\"document\"\n            :auto-save=\"true\"\n            :auto-save-after=\"2500\"\n            layout-id=\"82ccae76-4329-4eac-92f8-85ba77bc362b\"\n            class=\"flex-1 h-full\"\n            :view=\"locals.view\"\n            :readonly=\"params.readonly\"\n  ></ae-form> -->\n</div>"},"f":{"id":"design-form","text":"Design","v":"c2d9ae57c7a46896"},"id":"80a1496e-b15f-4984-ab87-76e98c2edefc","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-02-17T14:54:42+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"527f9bb3-01bd-48cc-ad5b-08b1bba3af33","previous":{"v":"ed7c52cba112ad18"},"stamps":[],"t":1739804082246,"v":"9a6fc75819dc8b67"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","760efba8-d733-4a34-ada6-b7d6d5c6d637"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"70826047-8be3-4025-acce-7f50016bc5ff","text":"rd:page-inner","v":"0d57e59f87af9af1"},"created":{"at":"2025-10-24T14:54:55+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1761317695630,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:page-inner","packages":[],"template":"<ae-design :name=\"'rd:' + params.view\" :document=\"document\" class=\"h-full\" :params=\"params\"></ae-design>"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"80d885f6-c56a-43f8-8ad3-93309b1a157a","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-10-24T14:54:55+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"70826047-8be3-4025-acce-7f50016bc5ff","text":"rd:page-inner","v":"0d57e59f87af9af1"},"p":"760efba8-d733-4a34-ada6-b7d6d5c6d637","stamps":[],"t":1761317695631,"v":"initial"},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","5beeae17-7bb1-4eeb-bcb6-cf0e6950e27c"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"a842d714-5f70-4535-aa92-2b4c4502cbc5","text":"rd:page-inner","v":"initial"},"created":{"at":"2025-07-22T11:20:44+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1753177201908,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:page-inner","packages":[],"template":"<div class=\"hidden print:block flex gap-2 border rounded-md border-secondary-300 p-1\">\n  <ae-design  name=\"title\" :document-id=\"document.a.slice(-3)[0]\" class=\"text-primary-900 px-2 text-lg\"></ae-design>\n  <ae-design  name=\"title\" :document-id=\"document.a.slice(-2)[0]\" class=\"text-primary-900 px-2 text-lg\"></ae-design>\n</div> \n\n<ae-design class=\"h-full overflow-hidden\" name=\"rd:page-inner_default\" :document=\"document\"\n:params=\"params\" v-on=\"$listeners\"></ae-design> "},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"8150e80b-de40-403e-91fa-c3f76491fa6c","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-07-22T11:20:44+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"04961750-b1f2-475d-8f6a-f5ad76d9554a","text":"rd:page-inner","v":"2164ee18f99ae992"},"p":"5beeae17-7bb1-4eeb-bcb6-cf0e6950e27c","stamps":[],"t":1753183244295,"v":"initial"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","347d38c6-0bce-47ce-b271-9f924c56ac49"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2025-08-05T11:09:14+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1754394980178,"data":{"aliases":[],"controller":"class Controller {\n   dispatchEventChildren(refName, eventName, eventValue) { \n    if (!$refs[refName] || !$refs[refName].$el || !$refs[refName].$el.children) {\n      return\n    }\n    const children = $refs[refName].$el.children\n    for (let i = 0; i < children.length; i++) {\n      children[i].dispatchEvent(new CustomEvent(eventName, {\n        detail: eventValue\n      }))\n    }\n    $refs[refName].$emit(eventName, eventValue)\n  }\n}","css":"","description":"","name":"rd:page-inner","packages":[],"template":"<template>\n  <ae-design\n    ref=\"page\"\n    @toolbar.native=\"controller.dispatchEventChildren('page', 'toolbar', $event.detail)\"\n    name=\"rd:page--administator\"\n    :document=\"document\"\n    :params=\"params\"\n    v-on=\"$listeners\"\n    :watch=\"false\"\n  ></ae-design>\n</template>\n"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"82d89b11-5939-4742-9c92-36d49f3b5ea2","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-08-15T07:35:01+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"347d38c6-0bce-47ce-b271-9f924c56ac49","previous":{"v":"06ae7752a1fc368b"},"stamps":[],"t":1755243301791,"v":"c642f35d587589aa"},{"a":["system","b2533f7b-ea85-4680-99ed-d8e11be641b9","0e6939d6-9b93-4165-b6bd-977e4da881f3","627f5b74-3baf-45f8-a1d3-a5936839b844","account"],"a_depth":5,"a_forms":["system-folder-form","folder","application-form","form-folder","form"],"cloneOf":{"id":"8c9981d8-6471-44c1-a9a0-7b7fcac216b5","text":"page","v":"8c01aa4d7e970c0e"},"created":{"at":"2023-01-05T13:28:05+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1672925285086,"data":{"controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      RecentlyVisitedDocuments: '0a8dbc2a-384e-457b-ab48-57013109ba44'\n    }\n\n    locals.indirectGroupsMap = {}\n    locals.lastActive = null\n    locals.profilePage = null\n    locals.showAccessRights = false\n\n    locals.groupSearchSettings = {\n        filter: {\n          base: 'f.id:group',\n          targetDocument: document,\n          ancestorForm: 'c69a0c1c-6c53-40c2-87e8-5ace866bf1df',\n        },\n        search: { \n          size: 20,\n          sort: [{\n            field: 'data.name',\n          },\n          {\n            field: 'id',\n          }],\n          searchAllFields: false\n        },\n      }\n\n    const groups = (await Aeppic.getAll(data.groups)).filter(g => g !== null)\n    const indirectGroupsMap = await this._indirectGroupMemberships(groups)\n\n    for (const groupId in indirectGroupsMap) {\n      indirectGroupsMap[groupId] = [... new Set(indirectGroupsMap[groupId])]\n    }\n\n    locals.indirectGroupsMap = indirectGroupsMap\n\n    locals.allGroupsIds = [...groups.map(ref => ref.id), ...Object.keys(indirectGroupsMap)]\n\n    locals.profilePage = await Aeppic.getProfilePageForAccount(document)\n\n    // this.subscribeRecentlyVisitedDocument()\n  }\n\n  // async subscribeRecentlyVisitedDocument() {\n  //   const profilePage = await Aeppic.getProfilePageForAccount(document)\n\n  //   if (!profilePage) {\n  //     return\n  //   }\n\n  //   Aeppic.subscribe(`p:${profilePage.id} f.id:${this.FORMS.RecentlyVisitedDocuments}`, (documents) => {\n  //     const recentlyVisitedDocument = documents[0]\n\n  //     locals.lastActive = recentlyVisitedDocument.modified.at\n  //   })\n  // }\n\n  get directGroupMemberships() {\n    return data.groups\n  }\n\n  async _indirectGroupMemberships(groups, paramAlreadyProcessedGroupIds) {\n    const indirects = {}\n    const alreadyProcessedGroupIds = paramAlreadyProcessedGroupIds ? paramAlreadyProcessedGroupIds : []\n    \n    for (const group of groups) {\n      const containingGroup = group.data.group.id ? await Aeppic.get(group.data.group.id) : null\n\n      if (!containingGroup) {\n        continue\n      }\n\n      if (alreadyProcessedGroupIds.includes(containingGroup.id)) {\n        console.warn('alreadyProcessedGroupIds contains', containingGroup.id) \n        continue\n      }\n\n      if (!indirects[containingGroup.id]) {\n        indirects[containingGroup.id] = [] \n      }\n\n      indirects[containingGroup.id].push(group.id)\n\n      const upperIndirectMemberships = await this._indirectGroupMemberships([containingGroup], [...Object.keys(indirects), ...alreadyProcessedGroupIds])\n\n      if (upperIndirectMemberships) {\n        for (const key in upperIndirectMemberships) {\n          if (!indirects[key]) {\n            indirects[key] = []\n          }\n\n          indirects[key].push(...upperIndirectMemberships[key])\n        }\n      }\n    }\n\n    return indirects\n  }\n\n  async addUserToGroup(g) {\n    const group = await Aeppic.get(g)\n\n    const editable = await Aeppic.edit(document)\n\n    editable.addReference('groups', group)\n\n    Aeppic.save(editable)\n  }\n\n  async removeUserFromGroup(g) {\n    const group = await Aeppic.get(g)\n\n    const editable = await Aeppic.edit(document)\n\n    editable.removeReference('groups', group)\n\n    Aeppic.save(editable)\n  }\n\n}   ","css":"._CSS {\n  padding: var(--bp-page-content-padding);\n}\n\n._CSS-list {\n  grid-template-columns: repeat(auto-fill, minmax(10%, 400px));\n  grid-auto-rows: auto;\n  display: grid;\n  grid-gap: 4px;\n}\n\n._CSS-card {\n  background: white;\n}\n\n._CSS-groups {\n  display: flex;\n  flex-flow: column;\n  overflow: scroll;\n}\n\n._CSS-table {\n  background: var(--ae-background);\n  overflow: auto;\n  padding: 12px;\n  margin: 12px 0;\n}\n\n._CSS-header {\n  display: flex;\n  padding: 12px 0;\n  border-bottom: 1px solid var(--ae-background-d2);\n  font-weight: 700;\n  color: var(--ae-foreground-l2);\n}\n\n._CSS-header__cell {\n  min-width: 400px;\n  width: 400px;\n}\n\n._CSS-row {\n  display: flex;\n  padding: 12px 0;\n  border-bottom: 1px solid var(--ae-background-d2);\n}\n\n._CSS-row__cell {\n  min-width: 400px;\n  width: 400px;\n}\n\n._CSS-row:nth-child(odd) {\n  background: var(--ae-background-d1);\n}","description":"","name":"rd:page-inner","packages":[],"template":"\n<div class=\"flex flex-col gap-6\">\n  <div class=\"flex flex-col gap-6\">\n    <div class=\"flex\">\n      <div class=\"min-w-[300px]\">\n        Anmeldename\n      </div>\n      <div class=\"min-w-[300px]\">\n        {{ data.name }}\n      </div>\n    </div>\n\n    <div class=\"flex\">\n      <div class=\"min-w-[300px]\">\n        Benutzer-ID\n      </div>\n      <div class=\"min-w-[300px]\">\n        {{ document.id }}\n      </div>\n    </div>\n\n    <div class=\"flex\">\n      <div class=\"min-w-[300px]\">\n        E-Mail\n      </div>\n      <div class=\"min-w-[300px]\">\n        {{ data.email || '-' }}\n      </div>\n    </div>\n\n    <div class=\"flex\">\n      <div class=\"min-w-[300px]\">\n        Telefonnummer\n      </div>\n      <div class=\"min-w-[300px]\">\n        {{ data.mobilePhone || '-' }}\n      </div>\n    </div>\n\n    <div class=\"flex\">\n      <div class=\"min-w-[300px]\">\n        Account aktiv\n      </div>\n      <div class=\"min-w-[300px]\">\n        <ae-icon v-if=\"!data.disabled\" class=\"fa fa-check\"></ae-icon>\n        <ae-icon v-else class=\"fa fa-times\"></ae-icon>\n      </div>\n    </div>\n\n    <div class=\"flex\">\n      <div class=\"min-w-[300px]\">\n        Direktes Anmelden erlaubt\n      </div>\n      <div class=\"min-w-[300px]\">\n        <ae-icon v-if=\"data.allowDirectLogin\" class=\"fa fa-check\"></ae-icon>\n        <ae-icon v-else class=\"fa fa-times\"></ae-icon>\n      </div>\n    </div>\n    <div class=\"flex\">\n      <div class=\"min-w-[300px]\">\n        Ist ein Gruppenaccount\n      </div>\n      <div class=\"min-w-[300px]\">\n        <ae-icon v-if=\"data.isGroupAccount\" class=\"fa fa-check\"></ae-icon>\n        <ae-icon v-else class=\"fa fa-times\"></ae-icon>\n      </div>\n    </div>\n    <div class=\"flex\">\n      <div class=\"min-w-[300px]\">\n        Ist ein externer Account\n      </div>\n      <div class=\"min-w-[300px]\">\n        <ae-icon v-if=\"locals.profilePage?.data.externerMitarbeiter\" class=\"fa fa-check\"></ae-icon>\n        <ae-icon v-else class=\"fa fa-times\"></ae-icon>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"\">\n    <div class=\"font-bold\">\n      <div class=\"min-w-[300]\">\n        Gruppen des Benutzers\n      </div>\n      <!-- <div class=\"_CSS-header__cell\">\n        Indirekt Mitglied in Gruppen ...\n      </div> -->\n    </div>\n\n    <div class=\"flex flex-col\">\n      <div v-for=\"(group, index) of data.groups\" class=\"w-full\">\n        <ae-design name=\"security:rd-card\"\n                  :document=\"group\"\n                  :param-no-users=\"true\"\n                  :param-show-remove=\"true\"\n                  class=\"w-full\"\n                  @remove=\"controller.removeUserFromGroup($event)\"\n        ></ae-design>\n      </div>\n    </div>\n\n\n  <ae-layout    layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n                param-text=\"Einer Gruppe hinfügen\"\n                param-icon=\"far fa-users\"\n                @selected=\"$refs.selectionButton.$emit('show')\"\n                param-border=\"border\"\n  ></ae-layout> \n\n  <ae-layout  layout-id=\"ef23b6bd-ec74-4701-ab8d-71a6d67fd9e4\"\n              @selected=\"controller.addUserToGroup($event)\"\n              ref=\"selectionButton\"\n              :params=\"{ hidePath: true,\n                        settings: locals.groupSearchSettings,\n                        keepOpenAfterSelection: true,\n                        fullPath: false,\n                        icon: 'fa fa-angle-down', \n                        hideButton: true,\n              }\"\n  ></ae-layout>  \n\n    <!-- <div style=\"margin-top: 12px;\">\n      <button class=\"bp-button bp-button--transparent\">\n        Grupppe hinfügen\n      </button>\n    </div> -->\n  </div>\n\n  <!-- <div class=\"_CSS-table\">\n    <h3>Zusätzliche Zugriffsrechte des Benutzers (\"Schlüssel\")</h3>\n    <p>\n      <span>Legende</span><br>\n      <ae-icon class=\"fa fa-eye\"></ae-icon> - Betrachten<br>\n      <ae-icon class=\"fa fa-pencil\"></ae-icon> - Editieren\n    </p>\n    <ae-list  :search=\"'f.id:key-form AND data.accounts:' + document.id\"\n                list-id=\"2dab232c-2c8a-4aa4-b3f9-6023a7116161\"\n                @selected=\"Aeppic.navigateTo($event)\"\n                param-design=\"accessible-documents\"\n                param-min-column-width=\"1fr\"\n    ></ae-list>\n  </div> -->\n\n  <h3>Alle Zugriffsrechte des Benutzers</h3>\n\n  <ae-layout    layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n                :param-text=\"locals.showAccessRights ? 'Zugriffsrechte ausblenden' :  'Zugriffsrechte anzeigen' \"\n                param-icon=\"far fa-lock-alt\"\n                @selected=\"locals.showAccessRights = !locals.showAccessRights\"\n                param-border=\"border\"\n  ></ae-layout> \n\n  <ae-layout v-if=\"locals.showAccessRights && locals.allGroupsIds\" layout-id=\"d5255c05-8040-47e5-a2e3-0e499be8579d\" :param-document=\"document\" :param-account-id=\"document.id\" :param-groups-ids=\"locals.allGroupsIds\"></ae-layout>\n</div>\n "},"f":{"id":"design-form","text":"Design","v":"49954170df6a253b"},"id":"8841afcb-0a93-411a-9c68-f0f55253ea4e","inheritedLocks":[null,null,null,null,null,null],"locks":[],"modified":{"at":"2025-11-27T12:27:58+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"8c9981d8-6471-44c1-a9a0-7b7fcac216b5","text":"page","v":"8c01aa4d7e970c0e"},"p":"account","previous":{"v":"5decc97a21d0b5ff"},"stamps":[],"t":1764246478635,"v":"e8b7558afdc782b2"},{"id":"88ebfcd0-8f8e-439b-a5d9-b7842e382e6e","v":"2381a4a050f078ef","cloneOf":{"id":"c20df568-8e15-4090-82f8-d33e588bec45","v":"1802f5e2a6d0abdd","text":"page"},"originalCloneOf":{"id":"c20df568-8e15-4090-82f8-d33e588bec45","v":"1802f5e2a6d0abdd","text":"page"},"previous":{"v":"e3c4c2037ba8317b"},"p":"2b4d7b0d-1b7c-49b7-956c-ab1b701fbe3d","f":{"id":"design-form","v":"24435d748c76f819","text":"Design"},"data":{"name":"rd:page-inner","template":"<div class=\"_CSS-split\">\n  <div class=\"_CSS-buttons\">\n    <div class=\"ae-button _CSS-button\" v-for=\"button in locals.buttons\" @click=\"Aeppic.drillInto(button.data.target)\">\n      <ae-icon class=\"_CSS-button__icon\" :class=\"{ [button.data.namedIcon]: true }\"></ae-icon>\n      <span>{{ button.data.displayName || button.data.name }}</span>\n    </div>\n  </div>\n\n  <div class=\"_CSS-tablewrapper\">\n    <table class=\"_CSS-table\">\n      <tbody>\n        <tr>\n          <th rowspan=\"3\" class=\"_CSS-description-axis-y\">\n            <div>Eintrittswahrscheinlichkeit</div>\n          </th>\n          <th title=\"hoch\" class=\"_CSS-description-small-axis-y\"><ae-icon class=\"far fa-arrow-up\"/></th>\n          <td class=\"_CSS-risk _CSS-risk--warning\">{{ locals.counts['3 A'] }}</td>\n          <td class=\"_CSS-risk _CSS-risk--danger\">{{ locals.counts['3 B'] }}</td>\n          <td class=\"_CSS-risk _CSS-risk--danger\">{{ locals.counts['3 C'] }}</td>\n        </tr>\n        <tr>\n          <th title=\"mittel\" class=\"_CSS-description-small-axis-y\"><ae-icon class=\"far fa-circle\"/></th>\n          <td class=\"_CSS-risk _CSS-risk--ok\">{{ locals.counts['2 A'] }}</td>\n          <td class=\"_CSS-risk _CSS-risk--warning\">{{ locals.counts['2 B'] }}</td>\n          <td class=\"_CSS-risk _CSS-risk--danger\">{{ locals.counts['2 C'] }}</td>\n        </tr>\n        <tr>\n          <th title=\"gering\" class=\"_CSS-description-small-axis-y\"><ae-icon class=\"far fa-arrow-down\"/></th>\n          <td class=\"_CSS-risk _CSS-risk--ok\">{{ locals.counts['1 A'] }}</td>\n          <td class=\"_CSS-risk _CSS-risk--ok\">{{ locals.counts['1 B'] }}</td>\n          <td class=\"_CSS-risk _CSS-risk--warning\">{{ locals.counts['1 C'] }}</td>\n        </tr>\n        <tr>\n          <th></th>\n          <th></th>\n          <th title=\"gering\" class=\"_CSS-description-small-axis-x\"><ae-icon class=\"far fa-arrow-down\"/></th>\n          <th title=\"mittel\" class=\"_CSS-description-small-axis-x\"><ae-icon class=\"far fa-circle\"/></th>\n          <th title=\"schwer\" class=\"_CSS-description-small-axis-x\"><ae-icon class=\"far fa-arrow-up\"/></th>\n        </tr>\n        <tr>\n          <th></th>\n          <th></th>\n          <th class=\"_CSS-description-axis-x\" colspan=\"3\">Schwere der Auswirkung</th>\n        </tr>\n      </tbody>\n    </table>\n  </div>\n</div>\n\n<ae-list  list-id=\"table-list\"\n          v-if=\"locals.processingOperations\"\n          :root-document-id=\"locals.processingOperations.id\"\n          param-columns=\"data.name,data.verantwortlicher,data.risikoklasseAlsZahl\"\n          param-designs=\"title,,risk-color\"\n          query-id=\"f812861f-68c8-4818-9972-be7b5474c9b1\"\n          filter=\"f.id:7894afb7-cbf3-4c0d-96d7-8c48efc1e227\"\n          param-list-form-id=\"7894afb7-cbf3-4c0d-96d7-8c48efc1e227\"\n          sort=\"data.name\"\n          :param-disable-sort=\"true\"\n          :param-disable-filter=\"true\"\n>\n</ae-list>\n","css":"._CSS {\n  flex: 1;\n  display: flex;\n  flex-flow: column;\n\n  padding: var(--bp-page-content-padding);\n}\n\n._CSS-split {\n  /* overflow: auto; */\n\n  /* flex: 1; */\n  display: grid;\n  grid-template-columns: 1fr 1fr;\n  grid-column-gap: var(--ae-size-6);\n}\n\n._CSS-buttons {\n  padding: var(--bp-page-content-padding) var(--bp-page-content-padding) 0 var(--bp-page-content-padding);\n  display: grid;\n  grid-template-columns: repeat(2, minmax(15rem, 1fr));\n  grid-template-rows: repeat(auto-fill, 7rem);\n  grid-gap: 1rem;\n} \n\n\n._CSS ._CSS-button {\n  cursor: pointer;\n  display: flex;\n  flex-flow: column;\n  justify-content: center;\n  align-items: center;\n  text-align: center;\n  padding: 1em;\n\n  background: var(--ae-ui-card-background);\n\n  border: var(--ae-border-width) solid var(--ae-border-color);\n  border-radius: var(--ae-border-radius);\n}\n\n._CSS-button__icon  {\n  color: var(--ae-primary-700);\n  font-size: var(--ae-font-size-11);\n}\n\n._CSS-table {\n  display: table;\n  table-layout: fixed;\n\n  border-spacing: var(--ae-size-3);\n}\n\n._CSS-tablewrapper {\n  margin: 0 auto;\n  padding: var(--ae-size-2);\n}\n\n._CSS-table * {\n  text-align: center;\n}\n\n._CSS-description-small-axis-y {\n  width: var(--ae-size-6);\n  padding: 0 var(--ae-size-3) 0 var(--ae-size-3); \n} \n\n._CSS-description-small-axis-x {\n  width: var(--ae-size-6);\n  padding: 0 var(--ae-size-3) 0 var(--ae-size-3); \n} \n\n._CSS-description-axis-y {\n  color: var(--ae-foreground-l3);\n  width: var(--ae-size-6);\n}\n\n._CSS-description-axis-x {\n  color: var(--ae-foreground-l3);\n}\n\n._CSS-description-axis-y > div {\n  transform: \n    /* Magic Numbers */\n    translate(0px, var(--ae-size-9))\n    /* 45 is really 360 - 45 */\n    rotate(270deg);\n  width: var(--ae-size-5);\n}\n\n._CSS ._CSS-risk {\n  height: var(--ae-size-9);\n  min-width: var(--ae-size-9); \n  border: 1px solid lightgray;\n}\n\n._CSS-risk--ok {\n  background: var(--ae-accent-green-600);\n}\n\n._CSS-risk--warning {\n  background: var(--ae-accent-orange-500);\n}\n\n._CSS-risk--danger {\n  background: var(--ae-accent-red-500);\n}\n","controller":"class Controller {\n  async init() {\n    locals.counts = {}\n\n    Aeppic.subscribe(`a: ${document.id} AND f.id:7894afb7-cbf3-4c0d-96d7-8c48efc1e227`, (documents) => {\n      this.onUpdate(documents)\n    })\n\n    locals.processingOperations = (await Aeppic.find(`p:${document.id} data.contentsForm.id:7894afb7-cbf3-4c0d-96d7-8c48efc1e227`))[0]\n    const buttons = await Aeppic.getAll(data.buttons)\n    const availableButtons = await Promise.all(buttons.map(async (b) => {\n      const target = await Aeppic.get(b.data.target)\n      if (target) {\n        return b\n      }\n    }))\n\n    locals.buttons = availableButtons.filter(b => b != null)\n  }\n \n  onUpdate(documents) {\n    locals.counts = this.countPerRiskClass(documents)\n  }\n\n  countPerRiskClass(documents) {\n    const counts = {\n      '1 A': 0,\n      '2 A': 0,\n      '3 A': 0,\n      '1 B': 0,\n      '2 B': 0,\n      '3 B': 0,\n      '1 C': 0,\n      '2 C': 0,\n      '3 C': 0\n    }\n\n    for (const doc of documents) {\n      const risikoklasse = doc.data.risikoklasse\n      if (typeof counts[risikoklasse] !== 'undefined') {\n        counts[risikoklasse] += 1\n      } else {\n        console.warn(`Unknown riskoklasse \"${risikoklasse}\"`)\n      }\n    }\n\n    return counts\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-12-01T13:59:01+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-12-01T15:17:31+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1669907851355,"ct":1669903141167,"a_depth":5,"a":["apps","83c76376-420e-4231-9275-d0fe2ab47c32","ba440134-1703-495e-b869-0f0c8d447f75","91352b74-c5e5-4c05-aa68-f13b0b723f35","2b4d7b0d-1b7c-49b7-956c-ab1b701fbe3d"],"a_forms":["folder","application-form","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","aa49f5c2-0502-4b7e-8ffd-4ac90427420e"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"70447c42-c855-4625-918d-f24d8b258d98","text":"rd:page-inner","v":"ad04c2901b0ce3cf"},"created":{"at":"2026-01-19T12:48:02+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"ct":1768826882330,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:page-inner","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<div class=\"flex flex-col gap-4\">\n  <ae-design name=\"rd:page-inner_default\" :document=\"document\"></ae-design>\n  <ae-design\n    name=\"rd:usage-list\"\n    :document=\"document\"\n    param-field-name=\"data.team\"\n    :param-forms=\"['5011479f-3ef7-4c66-810b-3bb65f992712']\"\n  ></ae-design>\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"891bcb53-553c-4061-9fc2-0e3ef5551ed5","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-01-19T12:50:52+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"70447c42-c855-4625-918d-f24d8b258d98","text":"rd:page-inner","v":"ad04c2901b0ce3cf"},"p":"aa49f5c2-0502-4b7e-8ffd-4ac90427420e","previous":{"v":"062749eb9fd744f4"},"stamps":[],"t":1768827052642,"v":"a15d9b22fc9bdf1e"},{"a":["apps","bc036ad0-6dbc-415b-b506-325fb0a44046","8ffb21f4-3d63-4824-a633-10a19d7aa7d8","eccbf3d6-5fc6-473a-8b81-3049bac700e4"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2024-04-08T15:11:25+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1712589085259,"data":{"aliases":[],"controller":"class Controller {\n  init() {\n    this.FORMS = {\n      Kontakt: 'f8fd3176-4995-455f-a8a8-d2742a836816'\n    }\n\n    if ('kontakte' in data) {\n      locals.documents = data.kontakte\n    } else {\n      locals.search = `p:${document.id} f.id:${this.FORMS.Kontakt}`\n    }\n\n    locals.sort = ''\n    locals.filter = ''\n    locals.view = ''\n  }\n} ","css":"","description":"","name":"rd:page-inner","packages":[],"template":"<div class=\"h-full overflow-hidden flex flex-col bg-white dark:bg-slate-800\">\n\n  <ae-design  name=\"rd:toolbar\"\n              class=\"pb-2 mx-2\"\n              :document=\"document\"\n              @view=\"locals.view = $event\"\n              @filter=\"locals.filter = $event\"\n              @sort=\"locals.sort = $event\"\n              :params=\"{ ...params, listFormId: 'f8fd3176-4995-455f-a8a8-d2742a836816' }\"\n  ></ae-design> \n \n\n  <ae-list  v-if=\"locals.documents\"\n            list-id=\"a23ea6b1-92ed-4ebc-bd3f-cb4eb1ae6ee7\" \n            :documents=\"locals.documents\"\n            :sort=\"locals.sort\"\n            :local-filter=\"locals.filter\"\n            :search-options=\"{ size: 100, searchAllFields: true }\"\n            :param-infinite-scrolling=\"true\"\n            param-designs=\"rd:icon\"\n            :param-designs-params=\"[{size: '8'}]\"\n            param-columns=\",data.name,data.ansprechpartner,data.kategorie,data.bewertung,data.festnetz,data.mobil,data.email,modified.at\"\n            param-layouts=\",86863fd6-025c-4545-a1d0-400acbabab34\"\n            param-fixed-column-widths=\"50,,,,,,150\"\n            :param-debug=\"true\"\n            @selected=\"Aeppic.drillInto($event, arguments[1])\"\n  ></ae-list>\n  <ae-list  v-else\n             class=\"h-full\" \n            list-id=\"a23ea6b1-92ed-4ebc-bd3f-cb4eb1ae6ee7\" \n            :search=\"locals.search\"\n            :sort=\"locals.sort\"\n            :local-filter=\"locals.filter\"\n            :search-options=\"{ size: 100, searchAllFields: true }\"\n            :param-infinite-scrolling=\"true\"\n            param-designs=\"rd:icon\"\n            :param-designs-params=\"[{size: '8'}]\"\n            param-columns=\",data.name,data.ansprechpartner,data.kategorie,data.bewertung,data.festnetz,data.mobil,data.email,modified.at\"\n            param-layouts=\",86863fd6-025c-4545-a1d0-400acbabab34\"\n            param-fixed-column-widths=\"50,,,,,,150\"\n            :param-debug=\"true\"\n            @selected=\"Aeppic.drillInto($event, arguments[1])\"\n  ></ae-list>  \n</div>\n "},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"891ce2d1-e5b8-4c55-96b8-1fa9534dc620","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-02-19T13:23:52+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"p":"eccbf3d6-5fc6-473a-8b81-3049bac700e4","previous":{"v":"0944c06f53405e6c"},"stamps":[],"t":1771507432040,"v":"e95b1c03a68e7792"},{"id":"8e69ef4b-e8cb-4b8e-a094-b0f9a2a1bc5e","v":"0e0982ac56416ac9","cloneOf":{"id":"72e88935-0426-4a30-a354-eb2a8b12d795","v":"72398e2ce31830f9","text":"page"},"originalCloneOf":{"id":"72e88935-0426-4a30-a354-eb2a8b12d795","v":"72398e2ce31830f9","text":"page"},"previous":{"v":"7174f06fbc6192b8"},"p":"096cfb8f-bb8e-4a6e-87c2-2d1fac5e822a","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"rd:page-inner","template":"<ae-design name=\"rd:toolbar\" :document=\"document\"></ae-design>\n\n<ae-list :root-document-id=\"document.id\"\n          query-id=\"f812861f-68c8-4818-9972-be7b5474c9b1\"\n          list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\"\n          @selected=\"Aeppic.drillInto($event, arguments[0])\"\n          param-design=\"card\" \n          :param-design-params=\"{ xreadonly: true, xnoCommands: true }\"\n></ae-list>\n ","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-05-23T09:47:35+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-05-23T11:01:05+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1716462065648,"ct":1716457655227,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","096cfb8f-bb8e-4a6e-87c2-2d1fac5e822a"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"9154ab23-14ef-48f4-92c5-33240e32bf3a","v":"34235f101517adf8","previous":{"v":"initial"},"p":"83c74f6a-fe5c-483e-a2ef-0498bd4aeff6","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-inner","template":"<ae-design :name=\"'rd:' + (params.view || 'created')\" :document=\"document\" class=\"h-full\" :params=\"params\"></ae-design> ","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-07-19T11:41:46+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-07-19T11:42:13+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1689766933473,"ct":1689766906299,"a_depth":4,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","83c74f6a-fe5c-483e-a2ef-0498bd4aeff6"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","33e3b54d-6b4b-4aa3-8f70-2b834b27bf66"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"f118fe34-6019-44b6-abfa-8ff07aa75f25","text":"rd:page-inner","v":"initial"},"created":{"at":"2026-04-28T08:01:03+00:00","backedBy":"","by":"09763886-6748-4a56-8e0e-54a2293ee96b","client":"server","from":"","impersonatedBy":""},"ct":1777363263670,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:page-inner","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<ae-design \n  class=\"size-full\"\n  name=\"rd:page-inner_tabs\" \n  :document=\"document\"\n  :params=\"params\"\n></ae-design>"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"92043368-d323-4b45-a7f8-ded9b68dbdce","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-04-28T08:01:03+00:00","backedBy":"","by":"09763886-6748-4a56-8e0e-54a2293ee96b","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"f118fe34-6019-44b6-abfa-8ff07aa75f25","text":"rd:page-inner","v":"initial"},"p":"33e3b54d-6b4b-4aa3-8f70-2b834b27bf66","stamps":[],"t":1777363263672,"v":"initial"},{"a":["apps","37fafb3d-18da-4182-af74-082971d50956","c27d5f5f-22ff-4341-935c-02bfdc3e1ee0","51138ce9-66f4-44dd-9254-b8b744e88999"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2022-05-25T09:39:54+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1653471594408,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Kontakt: '6f641574-7cb6-424a-9657-4b8d652a2cf7',\n      Kunde: '8fc08287-dbcc-4e41-9d5d-28e4cd828943',\n    }\n    locals.FORMS = this.FORMS\n\n    locals.filter = ''\n    locals.sort = [\n      { field: 'data.nachname' }\n    ] \n\n\n    if ('kontakte' in data) {\n      locals.documents = data.kontakte\n    } else {\n      locals.search = `p:${document.id} f.id:${this.FORMS.Kontakt}`\n    }\n  }\n}\n  ","css":"","description":"","name":"rd:page-inner","packages":[],"template":"<section class=\"h-full  px-4 py-4 w-full\" ref=\"listContainer\">\n  <div class=\"h-full max-w-4xl m-auto overflow-hidden flex flex-col bg-white md:shadow-md md:rounded-md p-2\">\n    <ae-design name=\"rd:toolbar\"\n              :document=\"document\"\n              @filter=\"locals.filter = $event\"\n              @sort=\"locals.sort = $event\"\n              :param-initial-sort=\"locals.sort\"\n              :params=\"{ listFormId: locals.FORMS.Kontakt }\"\n    ></ae-design>\n \n    <div class=\"overflow-y-scroll\"> \n        <ae-list  v-if=\"locals.documents\"\n                list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\"\n                :documents=\"locals.documents\"\n                :filter=\"locals.filter\"\n                :sort=\"locals.sort\"\n                :param-list-form-id=\"locals.FORMS.Kontakt\"\n                :param-root-document-id=\"document.id\"\n                param-design=\"rd:table-card\"\n                @selected=\"Aeppic.drillInto($event, arguments[1])\"\n      ></ae-list>\n      <ae-list  v-else\n                list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\"\n                :filter=\"locals.filter\"\n                :search=\"locals.search\"\n                :sort=\"locals.sort\"\n                :param-list-form-id=\"locals.FORMS.Kontakt\"\n                :param-root-document-id=\"document.id\"\n                param-design=\"rd:table-card\"\n                @selected=\"Aeppic.drillInto($event, arguments[1])\"\n      ></ae-list>\n    </div>\n  </div>\n</section>\n\n<!-- FIXME: providing search-options like this will cause ae-documents-changed on every fetch because combinedSearchOptions supposedly changed -->\n<!-- :search-options=\"{ searchAllFields: true }\" -->\n    "},"f":{"id":"design-form","text":"Design","v":"c2d9ae57c7a46896"},"id":"928be514-4bbb-4dc6-85bb-71913c7fb7e8","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-11-27T11:18:18+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"51138ce9-66f4-44dd-9254-b8b744e88999","previous":{"v":"a11f21bc29709be0"},"stamps":[],"t":1764242298033,"v":"8938a60a1e24e87f"},{"id":"92ee659f-f949-4046-8e62-84baf86ea7aa","v":"49259e994f5bce72","cloneOf":{"id":"04348f9b-105c-42d9-bb95-18b611232548","v":"087670d764927fc7","text":"page"},"originalCloneOf":{"id":"04348f9b-105c-42d9-bb95-18b611232548","v":"087670d764927fc7","text":"page"},"previous":{"v":"e58050c6d1a92ea2"},"p":"c69a0c1c-6c53-40c2-87e8-5ace866bf1df","f":{"id":"design-form","v":"e3fe9ece11aabc5e","text":"Design"},"data":{"name":"rd:page-inner","applies":"","template":"\n<ae-design v-if=\"locals.ready && locals.hasRecentsDesign\"\n            :name=\"data.recentsDesign\"\n            :document=\"document\"\n            :params=\"params\"\n            v-on=\"$events\"\n></ae-design>\n ","css":"._CSS {\r\n  display: flex;\r\n  flex-direction: column;\r\n}\r\n\r\n._CSS-content {\r\n  flex: 1;\r\n  overflow: scroll;\r\n  padding: var(--bp-page-content-padding);\r\n}","controller":"async init() {\r\n  locals.ready = false\r\n  \r\n  locals.hasRecentsDesign = data.recentsDesign?.includes('rd:')\r\n\r\n  if (!locals.hasRecentsDesign) {\r\n    const dashboard = await Aeppic.findOne(`p:${document.id} f.id:7be5f2c5-206b-4ab6-9d4d-c4834baf8e32`)\r\n\r\n    if (dashboard) {\r\n      Aeppic.navigateTo(dashboard)\r\n    }\r\n\r\n    return\r\n  }\r\n  \r\n  locals.ready = true\r\n} ","packages":[]},"locks":[],"created":{"at":"2022-10-19T15:00:31+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-10-19T15:06:24+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1666191984931,"ct":1666191631658,"a_depth":4,"a":["apps","8f8c9ed7-a7ed-4150-b162-92d6f19a05b0","526d9710-b2bd-4fa7-9341-d780ead102c1","c69a0c1c-6c53-40c2-87e8-5ace866bf1df"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","a590ce5b-28fc-4f85-9049-d006e1b8f880","169e87e0-0379-48e1-8c94-8fadac5969bb","b2030eae-0210-474c-bf24-9b5c6f0a0d3b"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"bd634eb0-3fc1-42fc-9a50-573c2756a016","text":"rd:page-inner","v":"13841826c1f428f8"},"created":{"at":"2022-11-03T09:59:42+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1667469582748,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Unterlage: '764f746e-a836-4e9d-a770-1d8d5ccad49b',\n      Verwaltung: 'ebb00fab-fe96-4562-a7cd-1fac9a420d50',\n      Ordner: 'b2030eae-0210-474c-bf24-9b5c6f0a0d3b',\n    }\n    locals.FORMS = this.FORMS\n\n    locals.filter = ''\n    locals.sort = 'data.name'\n    locals.current = []\n    locals.retired = []\n    locals.pool = []\n    locals.all = []\n\n\n\n\n    Aeppic.subscribe(`a:${document.id} f.id:${this.FORMS.Unterlage}`, { size: 999 }, (documents) => {\n      const { current, closed, pool } = this.filterDocuments(documents)\n\n      locals.current = current\n      locals.closed = closed\n      locals.pool = pool\n\n      locals.all = [...current, ...closed, ...pool]\n    })\n  }\n\n// f.id:764f746e-a836-4e9d-a770-1d8d5ccad49b AND data.bewerbungsverfahrenAbgeschlossen:false AND data.bewerberpool:false\n  filterDocuments(documents) {\n    const current = []\n    const closed = []\n    const pool = []\n\n    for (const doc of documents) {\n      if (doc.data.bewerbungsverfahrenAbgeschlossen) {\n        closed.push(doc)\n        continue\n      } else if (doc.data.bewerberpool) {\n        pool.push(doc)\n      } else {\n        current.push(doc)\n      }\n    }\n\n    return { current, closed, pool }\n  }\n\n  async navigateToAllFolders() {\n    if (document.f.id === this.FORMS.Personalverwaltung) {\n      return\n    }\n\n    const verwaltung = await Aeppic.get(document.a_forms.findIndex(aForm => aForm === this.FORMS.Personalverwaltung))\n\n    Aeppic.navigateTo(verwaltung)\n  }\n}","css":"","description":"","name":"rd:page-inner","packages":[],"template":"<div class=\"flex flex-col h-full bg-white overflow-hidden md:flex-row\"> \n  <section class=\"\">  \n    <section class=\"flex flex-col gap-2 mb-2 md:mb-10 p-4\">\n      <div class=\"flex items-center gap-4\">\n        <div class=\"text-2xl\">\n          Ordner\n        </div>\n  \n        <ae-design name=\"rd:toolbar\"\n                  :document=\"document\"\n                  :params=\"{ disableFilter: true, disableSort: true, disableSearch: true, loadingText: 'Neu' }\"\n        ></ae-design> \n      </div>\n\n      <ae-design name=\"rd:folders-menu\"\n                :document-id=\"document.p\"\n                :param-active-document=\"document\"\n                :param-tab=\"params.tab\"\n      ></ae-design> \n    </section>\n  </section>\n  <section class=\"w-full flex flex-col\">\n    <ae-design\n      name=\"rd:toolbar\"\n      :document=\"document\"\n      :params=\"{ listFormId: locals.FORMS.Unterlage, \n              disableNew: true, \n              filterFields: 'data.vorname,data.nachname,data.bewerbungseingangsdatum,data.geplanterEinstellungstermin,data.bewerberpool', \n              sortFields: 'data.vorname,data.nachname,data.bewerbungseingangsdatum,data.geplanterEinstellungstermin,data.bewerberpool', \n              initialSort: 'data.nachname' \n      }\"\n      @sort=\"locals.sort = $event\"\n      @filter=\"locals.filter = $event\"\n    ></ae-design>\n    <ae-list  v-if=\"params.tab === 'active'\"\n              list-id=\"a23ea6b1-92ed-4ebc-bd3f-cb4eb1ae6ee7\"\n              class=\"w-full flex-1\"\n              :documents=\"locals.current\"\n              :params=\"{ columns: 'data.vorname,data.nachname,data.position,data.bewerbungseingangsdatum,', designs: ',,,,number-comments-and-commenter,', headers: ',,,,Kommentare' }\"\n              :search-options=\"{ searchAllFields: true }\"\n              :param-list-form-id=\"locals.FORMS.Unterlage\"\n                    :sort=\"locals.sort\"\n      :filter=\"locals.filter\"\n    ></ae-list> \n    <ae-list  v-else-if=\"params.tab === 'closed'\"\n          list-id=\"a23ea6b1-92ed-4ebc-bd3f-cb4eb1ae6ee7\"\n          class=\"w-full flex-1\"\n          :documents=\"locals.closed\"\n          :params=\"{ columns: 'data.vorname,data.nachname,data.position,data.bewerbungseingangsdatum,', designs: ',,,,number-comments-and-commenter,', headers: ',,,,Kommentare' }\"\n          :search-options=\"{ searchAllFields: true }\"\n          :param-list-form-id=\"locals.FORMS.Unterlage\"\n                :sort=\"locals.sort\"\n      :filter=\"locals.filter\"\n    ></ae-list> \n    <ae-list  v-else-if=\"params.tab === 'pool'\"\n          list-id=\"a23ea6b1-92ed-4ebc-bd3f-cb4eb1ae6ee7\"\n          class=\"w-full flex-1\"\n          :documents=\"locals.pool\"\n          :params=\"{ columns: 'data.vorname,data.nachname,data.position,data.bewerbungseingangsdatum,', designs: ',,,,number-comments-and-commenter,', headers: ',,,,Kommentare' }\"\n          :search-options=\"{ searchAllFields: true }\"\n          :param-list-form-id=\"locals.FORMS.Unterlage\"\n                :sort=\"locals.sort\"\n      :filter=\"locals.filter\"\n    ></ae-list> \n  </section>\n</div>  "},"f":{"id":"design-form","text":"Design","v":"c2d9ae57c7a46896"},"id":"92fa78b3-12cc-4755-8371-072572bf7a78","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-03-25T12:35:12+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"bd634eb0-3fc1-42fc-9a50-573c2756a016","text":"rd:page-inner","v":"13841826c1f428f8"},"p":"b2030eae-0210-474c-bf24-9b5c6f0a0d3b","previous":{"v":"41591da2d7d0461c"},"stamps":[],"t":1742906112691,"v":"1ba430d93c58b7d3"},{"id":"9334950e-75a4-4fe1-bf37-971e2c945d1f","v":"d43cb33740041b62","previous":{"v":"873d92eac87c066f"},"p":"a04c8913-db48-4e80-b20d-0f3cc17a778c","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"rd:page-inner","template":"<div class=\"flex flex-col overflow-hidden h-full\">\n  <!-- <div class=\"flex items-center h-[50px] border-b bg-white\">\n    <ae-design  class=\"flex-1\"\n                name=\"rd:toolbar\"\n                :document=\"document\" \n                :param-show-more-actions=\"params.showMoreActions\"\n    ></ae-design> \n  </div> -->\n\n  <!-- <div class=\"text-sm flex justify-between items-center h-[35px] px-4 border-b\">\n    <ae-design name=\"rd:path\" :document=\"document\" @selected=\"Aeppic.navigateTo($event)\"></ae-design> \n  </div> -->\n\n    <div class=\"fixed bg-yellow-50/50 z-50 \" v-if=\"Aeppic.LocalStorage.getItem('debug')\">\n  view: {{ params.view }}\n  </div> \n\n  <ae-design class=\"h-full\"\n            :name=\"'rd:' + (params.view || 'files')\"\n            :document=\"document\"\n            :params=\"{ ...params, filter: params.filter }\"\n  ></ae-design>\n</div>  ","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-05-09T10:52:24+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-09-26T14:48:07+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1695739687377,"ct":1652093544401,"a_depth":4,"a":["apps","45ada186-e9fd-451d-9dbd-2defc0b4f86f","4ec6a0e5-cf2d-4095-9b70-2e31a64d5679","a04c8913-db48-4e80-b20d-0f3cc17a778c"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","aa947792-4f31-40c9-9a6a-e1ad71697911"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2025-08-05T11:22:05+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1754394980178,"data":{"aliases":[],"controller":"class Controller {\n   dispatchEventChildren(refName, eventName, eventValue) { \n    if (!$refs[refName] || !$refs[refName].$el || !$refs[refName].$el.children) {\n      return\n    }\n    const children = $refs[refName].$el.children\n    for (let i = 0; i < children.length; i++) {\n      children[i].dispatchEvent(new CustomEvent(eventName, {\n        detail: eventValue\n      }))\n    }\n    $refs[refName].$emit(eventName, eventValue)\n  }\n}","css":"","description":"","name":"rd:page-inner","packages":[],"template":"<template>\n  <ae-design  ref=\"page\" @toolbar.native=\"controller.dispatchEventChildren('page', 'toolbar', $event.detail)\" name=\"rd:page--administator\" :document=\"document\" :params=\"params\" v-on=\"$listeners\"></ae-design>\n</template> "},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"97c34149-ff6c-4b63-a1f2-b659749d0fcd","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-08-15T07:35:23+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"aa947792-4f31-40c9-9a6a-e1ad71697911","previous":{"v":"0ba8a26d4f47bb04"},"stamps":[],"t":1755243323081,"v":"239d80d32804ed5e"},{"id":"98da6735-e14c-4f1a-92ab-8c29608900ce","v":"3f5c62c99dbebff0","previous":{"v":"2ef2c20ddd5bd011"},"p":"0d5701a6-537b-4690-b25c-69f8b01d14b1","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-inner","template":"<div class=\"flex flex-col h-full bg-white\">\n  <section class=\"\"> \n    <section class=\"flex flex-col gap-2 mb-10 p-4\">\n      <!-- <div class=\"flex items-center gap-4\">\n        <div class=\"text-2xl\">\n          Bestandseinträge\n        </div>\n\n      </div> -->\n\n      <ae-list list-id=\"table-list\"\n              :root-document-id=\"document.id\"\n              query-id=\"f812861f-68c8-4818-9972-be7b5474c9b1\"\n              filter=\"f.id:0c1ea2c5-516a-4b13-b6df-27cf1ebe309d\"\n              sort=\"created.at\"\n              @selected=\"Aeppic.drillInto($event)\"\n              :param-row-height=\"300\"\n              param-columns=\"data.arbeitsbereich,data.gefaehrdung,data.risikoklasse,data.schutzziele,data.bemerkungen,data.durchfuehrungWer,data.durchfuehrungWann,data.wirksamkeitInterval\"\n      ></ae-list>\n\n    </section>\n  </section>\n</div>   ","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-06-16T10:29:31+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-06-16T10:51:50+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1686912710542,"ct":1686911371391,"a_depth":4,"a":["apps","075a56a2-3d34-402e-82ef-bd1fc7df456a","efe6c460-ec94-41c6-994b-c27d08d74381","0d5701a6-537b-4690-b25c-69f8b01d14b1"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","59edbdbc-2cab-426a-bb42-6e57c5158e4f","3be7e887-1bcd-4c3c-979f-b20a986c4c48","7f3b01d8-68c9-4774-8e48-5dcc33a2f235"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2025-09-11T09:53:29+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1757584409046,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Employee: 'd2ac3563-3c3f-4f02-b923-9b67abf98d10',\n      Booking: '0938d0ef-d2ba-4aa3-9752-ddcf5a0085dc',\n    }\n\n    locals.COMMANDS = {\n      NewBooking: '1433e957-836e-446f-b866-bf293737d8c1',\n    }\n\n    locals.refButtonEmployee = {\n      filter: {\n        ancestorForm: 'c69a0c1c-6c53-40c2-87e8-5ace866bf1df',\n        targetDocument: document,\n        formIds: this.FORMS.Employee,\n      },\n      search: {\n        sort: [\n          {\n            field: 'data.nachname',\n          },\n          {\n            field: 'data.vorname',\n          },\n          {\n            field: 'id',\n          },\n        ],\n      },\n    }\n    locals.employeeInfos = []\n\n    locals.days = this._getDays()\n\n    const firstDayToQuery = locals.days[0].datetime.minus({ month: 1 }).toFormat('yyyy-MM-dd')\n    const lastDaytoQuery = locals.days[locals.days.length - 1].datetime.plus({ month: 1 }).toFormat('yyyy-MM-dd')\n\n    Aeppic.subscribe(\n      `p:${document.id} f.id:${this.FORMS.Booking} data.von:[${firstDayToQuery} TO ${lastDaytoQuery}]`,\n      async (bookings) => {\n        locals.employeeInfos = await this._getEmployees(bookings)\n      },\n    )\n\n    locals.employeeInfos = await this._getEmployees([])\n\n    // wait for locals.days to render the days row\n    await Aeppic.nextRenderPass()\n\n    $refs.days.find((ref) => ref.dataset?.isToday === 'true')?.scrollIntoView({ inline: 'center' })\n  }\n\n  toggleAllBookingsCollapsed() {\n    locals.employeeInfos.forEach((employeeInfo) => (employeeInfo.bookingsCollapsed = !employeeInfo.bookingsCollapsed))\n  }\n\n  async _getBookings() {\n    return await Aeppic.find(`a:${document.a[0]} f.id:${this.FORMS.Booking}`)\n  }\n\n  async _getEmployees(bookings) {\n    const employees = [...(await Aeppic.getAll(data.nutzer))]\n    // const employees = await Aeppic.find(`a:${document.a[0]} f.id:${this.FORMS.Employee}`)\n\n    // const firstDay = locals.days[0].datetime.minus({ month: 1 }).toFormat('yyyy-MM-dd')\n    // const lastDay = locals.days[locals.days.length - 1].datetime.plus({ month: 1 }).toFormat('yyyy-MM-dd')\n\n    // const bookings = await Aeppic.find(\n    //   `p:${document.id} f.id:${this.FORMS.Booking} data.von:[${firstDay} TO ${lastDay}]`\n    // )\n\n    // console.log(bookings)\n\n    //  1 is Monday and 7 is Sunday\n    const withWeekdayHours = employees.map((employee) => {\n      const personBookings = bookings.filter((b) => b.data.person.find((p) => p.id === employee.id) && b.data.von)\n\n      const workloadByMonthAndDay = {}\n      const absenceByMonthAndDay = {}\n      const bookingsByWeek = {}\n\n      for (const booking of personBookings) {\n        // add 1 day to interval end, interval is excluding end\n        const interval = Aeppic.DateTimeInterval.fromDateTimes(\n          Aeppic.DateTime.fromISO(booking.data.von),\n          Aeppic.DateTime.fromISO(booking.data.bis || booking.data.von)\n            .startOf('day')\n            .plus({ days: 1 }),\n        )\n        const intervalDays = interval.length('days')\n\n        const hours = Aeppic.DateTimeDuration.fromObject(booking.data.dauer).as('hours')\n        const hoursPerDay = Math.floor(hours / intervalDays)\n        console.log({ von: booking.data.von, bis: booking.data.bis, intervalDays })\n\n        const ensurePath = (targetObject, [first, second, third], startingValue) => {\n          if (!targetObject[first]) {\n            targetObject[first] = {}\n          }\n          if (second && !targetObject[first][second]) {\n            if (third) {\n              targetObject[first][second] = {}\n            } else {\n              targetObject[first][second] = startingValue\n            }\n          }\n          if (third && !targetObject[first][second][third]) {\n            targetObject[first][second][third] = startingValue\n          }\n        }\n\n        let day = Aeppic.DateTime.fromISO(booking.data.von)\n        for (let i = 0; i < intervalDays; i++) {\n          const year = day.year\n          const month = day.month\n          const dayOfMonth = day.day\n          const week = day.weekNumber\n          const weekday = day.weekday\n\n          console.log({ year, month, dayOfMonth, week })\n\n          if (booking.data.typ === 'BUCHUNG') {\n            ensurePath(workloadByMonthAndDay, [year, month, dayOfMonth], 0)\n            workloadByMonthAndDay[year][month][dayOfMonth] += hoursPerDay\n          } else if (booking.data.typ === 'ABWESENHEIT') {\n            ensurePath(absenceByMonthAndDay, [year, month, dayOfMonth], 0)\n            absenceByMonthAndDay[year][month][dayOfMonth] += hoursPerDay\n          } else {\n            console.error({ booking }, 'unknown booking type')\n          }\n\n          if (i === 0) {\n            // only add once\n            ensurePath(bookingsByWeek, [year, week], [])\n            bookingsByWeek[year][week].push(booking)\n          }\n\n          day = day.plus({ days: 1 })\n        }\n      }\n\n      console.log(employee.data.name, { workloadByMonthAndDay, bookingsByWeek, absenceByMonthAndDay })\n\n      const hoursByWeekday = [8, 8, 8, 8, 8, 0, 0]\n      const totalHours = hoursByWeekday.reduce((total, val) => (total += val))\n      const maxDayHour = Math.max(...hoursByWeekday)\n\n      return {\n        totalHours,\n        employee,\n        hoursByWeekday,\n        workloadByMonthAndDay,\n        absenceByMonthAndDay,\n        maxDayHour,\n        bookingsCollapsed: true,\n        bookingsByWeek,\n      }\n    })\n\n    return withWeekdayHours\n  }\n\n  async newBooking(options) {\n    const { from, to, employee } = options\n\n    const fromIso = from.toISO()\n    const toIso = to.toISO()\n\n    const result = await Aeppic.Commands.execute(locals.COMMANDS.NewBooking, document, {\n      from: fromIso,\n      to: toIso,\n      employee,\n      duration: { hours: 16 },\n    })\n\n    $refs.command.$emit('show', { document: result.value, command: 'ad68686d-1093-45e4-9eb9-69fd5d97e94b' })\n  }\n\n  _getDays() {\n    // Get days for the next 4 months using Luxon's DateTime\n    const days = []\n\n    const now = Aeppic.DateTime.local()\n\n    let current = {\n      datetime: now.minus({ weeks: 4 }).startOf('week').startOf('day'),\n    }\n\n    const end = current.datetime.plus({ months: 6 })\n\n    while (current.datetime < end) {\n      days.push({\n        display: current.datetime.day,\n        weekday: current.datetime.weekday,\n        datetime: current.datetime,\n        month: current.datetime.month,\n        monthDisplay: current.datetime.monthLong,\n        week: current.datetime.weekNumber,\n        year: current.datetime.year,\n        day: current.datetime.day,\n        isWeekend: current.datetime.weekday === 6 || current.datetime.weekday === 7, // current.datetime.isWeekend not working\n        isToday: current.datetime.hasSame(now, 'day'),\n        isDayInNewMonth: days.length > 0 && current.datetime.month !== days[days.length - 1].month,\n      })\n\n      current = {\n        datetime: current.datetime.plus({ days: 1 }),\n      }\n    }\n\n    return days\n  }\n\n  mapIndexToColorBlock(index) {\n    const values = [100, 200, 300, 400, 500, 600, 700, 800, 900]\n    const sequenceLength = values.length\n    return values[index % sequenceLength]\n  }\n}\n","css":"","description":"","name":"rd:page-inner","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<div class=\"h-full w-full flex flex-col overflow-x-scroll overflow-y-scroll\">\n  <section data-test=\"planner_days\" class=\"flex bg-white sticky top-0 z-30 w-max\">\n    <div class=\"w-[80px]\"></div>\n    <div v-for=\"(day, index) of locals.days\">\n      <div class=\"min-h-[2em] overflow-visible whitespace-nowrap min-w-[50px] w-[50px]\">\n        <template v-if=\"index >= 1\">\n          <template v-if=\"day.isDayInNewMonth\"> {{ day.monthDisplay }} </template>\n          <template v-else-if=\"day.week !== locals.days[index - 1].week\"> KW {{ day.week }} </template>\n        </template>\n      </div>\n      <div class=\"min-w-[50px] w-[50px] flex justify-center\" :class=\"{ 'text-neutral-500': day.isWeekend, 'bg-blue-500': day.isToday, 'bg-teal-300 border-l-4 border-l-teal-300': day.isDayInNewMonth }\" :data-is-today=\"day.isToday === true\" ref=\"days\">\n        {{ day.display }}\n      </div>\n    </div>\n  </section>\n\n  <section data-test=\"planner_workload\" class=\"w-max  \">\n    <div class=\"flex gap-2 items-center bg-white border rounded-md \" data-test=\"planner_workload_toolbar\">\n      <div class=\"sticky left-0 flex gap-4 \">\n        <label>Workload</label>\n        \n        <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\" param-icon=\"far fa-crab\" param-text=\"Alle Buchungen anzeigen\" @selected=\"controller.toggleAllBookingsCollapsed()\"></ae-layout>\n        \n        <ae-form  :document=\"document\" \n        :auto-save=\"true\"\n        :auto-save-after=\"1000\"\n        layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\"\n        :readonly=\"params.readonly\"\n        class=\"\"\n        ></ae-form>\n      </div>\n        \n      <!-- <ae-layout\n        layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n        param-icon=\"far fa-users\"\n        param-text=\"Nutzer auswählen\"\n        @selected=\"$refs.buttonEmployee.$emit('show')\"\n      ></ae-layout>\n\n      <ae-layout\n        ref=\"buttonEmployee\"\n        layout-id=\"ef23b6bd-ec74-4701-ab8d-71a6d67fd9e4\"\n        :param-hide-button=\"true\"\n        :param-settings=\"locals.refButtonEmployee\"\n      ></ae-layout> -->\n\n      <!-- <ae-layout\n        v-if=\"!params.readonly\"\n        layout-id=\"fde4ed81-1f72-4e27-b2bf-f1291c4ec7ea\"\n        :param-command=\"locals.COMMANDS.NewBooking\"\n        :param-options=\"{ position: document }\"\n        :param-target=\"document\"\n        class=\"text-xs\"\n      ></ae-layout> -->\n    </div>\n\n    <div data-test=\"planner_workload_users\" class=\"flex flex-col\">\n      <div v-for=\"employeeInfo of locals.employeeInfos\" class=\"flex flex-col\">\n        <div class=\"flex\">\n          <div class=\"flex gap-2 left-0 sticky z-20 w-[80px]\">\n            <ae-design name=\"avatar\" :document=\"employeeInfo.employee\" class=\"text-3xl\"></ae-design>\n\n            <ae-layout\n              layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n              param-icon=\"far fa-crab\"\n              param-title=\"Buchungen anzeigen\"\n              @selected=\"employeeInfo.bookingsCollapsed = !employeeInfo.bookingsCollapsed\"\n            ></ae-layout>\n          </div>\n\n          <div v-for=\"(day, index) of locals.days\" class=\"relative flex min-h-[100px] h-[100px\">\n            <div\n              class=\"min-w-[50px] w-[50px] border hover:bg-neutral-300\"\n              :class=\"{ 'bg-neutral-200': day.isWeekend, 'border-x-blue-500 border-x-4': day.isToday, 'bg-teal-300 border-l-4 border-l-teal-300': day.isDayInNewMonth }\"\n              :data-day=\"day.display\"\n              :data-weekday=\"day.weekday\"\n              @click.stop=\"controller.newBooking({ from: day.datetime, to: day.datetime.plus({days:1}), employee: employeeInfo.employee })\"\n            >\n              <div class=\"relative flex flex-col items-center gap-1 h-full\">\n                {{ day.day }}\n                <div\n                  class=\"z-0 absolute left-0 right-0 bottom-0 w-full h-full flex items-end justify-center border-dashed border-black\"\n                  :class=\"{ 'border-l': day.weekday === 1 && employeeInfo.hoursByWeekday[day.weekday - 1], 'border-t': employeeInfo.hoursByWeekday[day.weekday - 1], 'border-r': employeeInfo.hoursByWeekday[day.weekday - 1] && employeeInfo.hoursByWeekday[day.weekday] <= 0 }\"\n                  :style=\"{\n                  height: (80 / employeeInfo.maxDayHour) * employeeInfo.hoursByWeekday[day.weekday - 1] + 'px',\n                }\"\n                  :title=\"'Wochenstunden an diesem Tag: ' + employeeInfo.hoursByWeekday[day.weekday - 1]\"\n                >\n                </div>\n                <div\n                  class=\"z-10 absolute left-0 right-0 bottom-0 w-full h-full flex items-end justify-center bg-fuchsia-500/90 text-fuchsia-100 cursor hover:bg-fuchsia-600\"\n                  :style=\"{\n                  height: (80 / employeeInfo.maxDayHour) * (employeeInfo.workloadByMonthAndDay[day.year]?.[day.month]?.[day.day] || 0) + 'px',\n                  }\"\n                  :title=\"'Gebuchte Stunden an diesem Tag: ' + employeeInfo.workloadByMonthAndDay[day.year]?.[day.month]?.[day.day]\"\n                  @click.stop=\"employeeInfo.bookingsCollapsed = !employeeInfo.bookingsCollapsed\"\n                >\n                {{employeeInfo.workloadByMonthAndDay[day.year]?.[day.month]?.[day.day]}}\n                </div>\n                <div\n                  class=\"z-10 absolute left-0 right-0 bottom-0 w-full h-full flex items-end justify-center cursor bg-[repeating-linear-gradient(45deg,_#696969FF_0,_#696969FF_0_2px,_transparent_0,_transparent_50%)] bg-[size:12px_12px]\"\n                  :style=\"{\n                  height: (80 / employeeInfo.maxDayHour) * (employeeInfo.absenceByMonthAndDay[day.year]?.[day.month]?.[day.day] || 0) + 'px',\n                  }\"\n                  :title=\"'Gebuchte Stunden an diesem Tag: ' + employeeInfo.absenceByMonthAndDay[day.year]?.[day.month]?.[day.day]\"\n                  @click.stop=\"employeeInfo.bookingsCollapsed = !employeeInfo.bookingsCollapsed\"\n                >\n                {{employeeInfo.absenceByMonthAndDay[day.year]?.[day.month]?.[day.day]}}\n                </div>\n              </div>\n            </div>\n          </div>\n        </div>\n\n        <section v-if=\"!employeeInfo.bookingsCollapsed\" class=\"flex\">\n          <div class=\"w-[80px]\">\n            <!-- <div class=\"flex gap-2 left-0 sticky z-20\">\n              <ae-design name=\"avatar\" :document=\"employeeInfo.employee\" class=\"text-3xl\"></ae-design>\n              \n              <ae-layout class=\"invisible\"\n              layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n              param-icon=\"far fa-PLACEHOLDER\"\n              ></ae-layout>\n            </div> -->\n          </div>\n          <div v-for=\"(day, index) of locals.days\" v-if=\"day.weekday === 1\" class=\"relative flex min-h-[100px] \">\n            <!-- 50px * 7 days -->\n            <div class=\"min-w-[350px] w-[350px] px-2 border-l border-r\">\n              <ae-list\n                v-if=\"employeeInfo.bookingsByWeek[day.year]?.[day.week]?.length\"\n                list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\"\n                @selected=\"$refs.command.$emit('show', { document: $event, command: 'ad68686d-1093-45e4-9eb9-69fd5d97e94b' })\"\n                :documents=\"employeeInfo.bookingsByWeek[day.year]?.[day.week]\"\n                param-design=\"rd:card\"\n              ></ae-list>\n            </div>\n          </div>\n        </section>\n      </div>\n    </div>\n  </section>\n</div>\n\n<ae-layout\n  v-show=\"false\"\n  layout-id=\"262e95e6-f1f8-477c-834b-89d533027e1e\"\n  :param-commands=\"['ad68686d-1093-45e4-9eb9-69fd5d97e94b']\"\n  ref=\"command\"\n></ae-layout>\n"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"99a83379-214b-4ecf-9004-303d81dd12ba","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-03-27T14:45:13+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"p":"7f3b01d8-68c9-4774-8e48-5dcc33a2f235","previous":{"v":"0fc99f81b292f35a"},"stamps":[],"t":1774622713920,"v":"04559b22ef541176"},{"a":["apps","75c6f72a-08a2-44f4-a29c-86b58be26f96","d0e84149-815a-4c38-a801-1664583fef16","1d539cd5-fc27-4c9b-bcb0-8ddc01e6363a"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2024-11-21T11:48:35+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1732189715526,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:page-inner","packages":[],"template":"<ae-design name=\"rd:page-list\" :document=\"document\"\n:params=\"params\"\n></ae-design>"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"9bb05114-198c-419b-997e-76cf3191318c","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2024-11-21T13:01:43+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"1d539cd5-fc27-4c9b-bcb0-8ddc01e6363a","previous":{"v":"initial"},"stamps":[],"t":1732194103684,"v":"4cdea4fd228f1e28"},{"id":"9e7f6948-d60d-4a0a-9d92-70f7358bba75","v":"9008e5961814a520","previous":{"v":"bd0bfa9ff595efd6","p":"fallback-designs","a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"]},"p":"1cc4b977-c14d-4587-af47-d6ac230f60b3","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-inner","template":"<ae-design class=\"h-full overflow-hidden\" name=\"rd:page-inner_default\" :document=\"document\"\n:params=\"params\" v-on=\"$listeners\"></ae-design> ","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-05-20T14:37:37+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2024-10-25T09:26:41+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1767870469088,"ct":1720684627136,"a_depth":3,"a":["apps","77ee8815-2c3a-4bb5-abd9-90541a545a24","1cc4b977-c14d-4587-af47-d6ac230f60b3"],"a_forms":["folder","application-form","design-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"meta":{"modified":{"at":"2026-01-08T11:07:49+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":"","impersonatedBy":"","from":"","client":"server"}}},{"id":"9f5c2583-f142-4b91-8625-0883cfbe778e","v":"778d28729e07b7d0","previous":{"v":"1db005dfc9c93002"},"p":"d68e003c-a6b5-40c5-8420-4ea98e4cb533","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"rd:page-inner","template":"<div v-if=\"locals.ready\" class=\"bg-white h-full flex flex-wrap\">\n  <div class=\"p-4 max-w-xl flex flex-col gap-6 w-full\">\n    <section class=\"flex flex-col gap-1\">\n      <label class=\"font-semibold\">\n        Title\n      </label>\n      <input class=\"border rounded-md py-1 px-2\" v-model=\"locals.task.data.name\" placeholder=\"Titel\" />\n    </section>\n\n    <section class=\"flex flex-col gap-1\">\n      <label class=\"font-semibold\">\n        Priorität\n      </label>\n      \n      <div class=\"border rounded-md py-1 px-2 flex gap-1 items-center\">\n        <ae-icon v-if=\"locals.task.data.prioritaet === 0\" class=\"far fa-circle\"></ae-icon>\n        <ae-icon v-if=\"locals.task.data.prioritaet === 1\" class=\"far fa-arrow-circle-down text-slate-500\"></ae-icon>\n        <ae-icon v-if=\"locals.task.data.prioritaet === 2\" class=\"far fa-circle-right\"></ae-icon>\n        <ae-icon v-if=\"locals.task.data.prioritaet === 3\" class=\"far fa-arrow-circle-up text-red-500\"></ae-icon>\n\n        <div>\n          {{ locals.taskForm.getField('prioritaet').settings.options.find(o => o.value === locals.task.data.prioritaet).display || 'leer' }}\n        </div>\n\n        <div class=\"flex-1\"></div>  \n        \n        <div class=\"flex flex-col relative h-full text-neutral-400\">\n          <ae-icon class=\"fa fa-caret-up absolute top-0 right-0\"></ae-icon>\n          <ae-icon class=\"fa fa-caret-down absolute top-2 right-0\"></ae-icon>\n        </div>\n      </div> \n\n      <!-- <select class=\"border rounded-md py-1 px-2 bg-white\" v-model=\"locals.task.data.name\" placeholder=\"Titel\" /> -->\n    </section>\n  </div>\n  {{Object.keys(locals.task.data)}} \n</div>","css":"","controller":"class Controller {\n  async init() {\n    locals.ready = false\n\n    locals.customer = await Aeppic.get('231fc77d-2e12-4732-9b08-0675c239af36')\n    locals.task = await Aeppic.get('43c062a4-ef82-4dc0-9072-dac33a3414b2')\n    locals.taskForm = await Aeppic.getFormForDocument(locals.task)\n\n    locals.ready = true\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-08-19T14:11:44+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-08-22T13:17:43+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1661174263789,"ct":1660918304349,"a_depth":3,"a":["apps","30363d01-3c4c-407b-861e-c0ef1ca6be75","d68e003c-a6b5-40c5-8420-4ea98e4cb533"],"a_forms":["folder","application-form","form"],"inheritedLocks":[null,null,null,null],"stamps":[]},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","3df460b1-3b00-45c3-81f3-8dff891bcb45"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"c81dac98-04c7-4b7c-8eb9-91b18109b360","text":"rd:page-inner","v":"af85572381810d66"},"created":{"at":"2025-04-10T14:13:37+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1744294417182,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:page-inner","packages":[],"template":"<ae-design name=\"rd:page-list\" :document=\"document\" class=\"h-full\" :params=\"params\"></ae-design> "},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"9ff0c7fb-8f6c-4996-9b62-71a304cc806d","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-04-10T14:14:14+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"c81dac98-04c7-4b7c-8eb9-91b18109b360","text":"rd:page-inner","v":"af85572381810d66"},"p":"3df460b1-3b00-45c3-81f3-8dff891bcb45","previous":{"v":"bea895b09f4e80f0"},"stamps":[],"t":1744294454600,"v":"ab3c98fcde2d9bc2"},{"id":"a1a47dd6-8dca-484a-9a74-06c07c895c56","v":"741d38e2c4efc8a1","cloneOf":{"id":"07a4b350-bca2-488a-8a42-956a589b9276","v":"8cf152a11ef94d61","text":"rd:page-inner"},"originalCloneOf":{"id":"07a4b350-bca2-488a-8a42-956a589b9276","v":"8cf152a11ef94d61","text":"rd:page-inner"},"previous":{"v":"d7f559adb4c0113f"},"p":"9b0547f6-28c6-4bcf-90fd-bbaa1bf56db1","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-inner","template":"<ae-design name=\"rd:page-list\" :document=\"document\"></ae-design>\n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-08-14T10:10:16+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-12-12T10:19:58+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1702376398247,"ct":1692007816172,"a_depth":4,"a":["apps","9d6ee173-26fe-4472-a271-7667f717094e","6743ef9a-c21b-443f-91b8-4dd86886ee8c","9b0547f6-28c6-4bcf-90fd-bbaa1bf56db1"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"a2627b0e-9026-4b1b-ace7-9a9f51e16381","v":"7a2ebd4c8d2b6ac3","previous":{"v":"0649a601722240cf"},"p":"e0978a3d-9761-4849-8a44-d22d8a175f87","f":{"id":"design-form","v":"22a757f630104010","text":"Design"},"data":{"name":"rd:page-inner","template":"<div class=\"flex h-full flex-col w-full overflow-hidden\" ref=\"container\">\n  <ae-design class=\"w-full\" name=\"rd:page-inner_default\" :document=\"document\">\n  </ae-design>\n\n  <div class=\"p-2 bg-white overflow-hidden\">\n      <ae-list class=\"h-full\"\n              list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\"\n              :param-use-scroller=\"true\"\n              :param-scroller-height=\"100\"\n              :search=\"locals.search\"\n              param-title=\"Bestandseinträge dieses Herstellers\"\n              @selected=\"Aeppic.navigateTo($event, { tab: 'document' })\"\n              :sort=\"{ field: 'data.inventoryNumber' }\"\n      ></ae-list>\n  </div>\n</div>\n\n","css":"","controller":"class Controller {\n  init() {\n    this.FORMS = {\n      Bestandsliste: '71a3f943-571a-4e4f-a97c-dd809d6b10e4',\n      Bestandseintrag: '50c3c7c5-c3d4-460c-b34d-0d61a4cb09ae',\n    }\n\n    locals.search = `p:${document.a[document.a_forms.findIndex(aForm => aForm === this.FORMS.Bestandsliste)]} f.id:${this.FORMS.Bestandseintrag} data.manufacturer:${document.id}`\n  }\n} ","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-12-16T15:33:23+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-12-18T11:47:16+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1734522436195,"ct":1734363203685,"a_depth":4,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","e0978a3d-9761-4849-8a44-d22d8a175f87"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","4a58cfdb-e1ef-40a2-8a89-57157ddda7d0","7643c1eb-d4fa-4bb1-a4c4-b65838cf989d","43551782-1b7f-47ef-a694-9e9824c97091"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2025-10-13T13:31:51+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1760362311131,"data":{"aliases":[],"controller":"class Controller {\n  init() {\n    this.FORMS = {\n      Label: '43551782-1b7f-47ef-a694-9e9824c97091',\n    }\n\n    const formsWithLabels = {\n      Customer: '8fc08287-dbcc-4e41-9d5d-28e4cd828943',\n      Task: '0deb4864-cbb6-420c-99ee-337c7444ab24',\n    }\n\n    const query = Object.values(formsWithLabels)\n      .map((formId) => `(a:${document.a[0]} f.id:${formId} data.labels:${document.id})`)\n      .join(' OR ')\n\n    locals.documentWithLabelsSearch = query\n  }\n}\n","css":"","description":"","name":"rd:page-inner","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<div class=\"h-full w-full overflow-auto flex flex-col gap-6\">\n  <div class=\"w-full\">\n    <ae-form\n      :document=\"document\"\n      :auto-save=\"true\"\n      :auto-save-after=\"1000\"\n      layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\"\n      class=\"w-full\"\n      :readonly=\"params.readonly\"\n    ></ae-form>\n  </div>\n\n  <div class=\"w-full mx-auto max-w-5xl flex flex-col bg-white dark:bg-slate-800 rounded-md p-4 xl:shadow\">\n    <div class=\"font-bold\">Gelabelte Dokumente (maximal 100/sortiert bei Erstellungsdatum)</div>\n\n    <ae-list\n      list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\"\n      :search=\"locals.documentWithLabelsSearch\"\n      :search-options=\"{ size: 100, sort: { field: 'created.at', descending: true }}\"\n      @selected=\"Aeppic.drillInto($event, arguments[1])\"\n    ></ae-list>\n  </div>\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"a2a9c5d4-bb39-4a63-ac1b-664006bb80e3","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-10-13T13:53:36+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"43551782-1b7f-47ef-a694-9e9824c97091","previous":{"v":"146b841e564f5df3"},"stamps":[],"t":1760363616139,"v":"0e4e5ae8f2db3841"},{"a":["apps","f416e371-07cc-4987-a6de-5934ef5ff3e4","1096c5df-2773-4914-9455-dc54e0f3e0e5","94886126-c88d-4ea0-b088-8ea5ad155b08"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2023-10-11T07:31:39+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1724761153836,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    this._chart = null\n    this.FORMS = {\n      Folder: 'a04c8913-db48-4e80-b20d-0f3cc17a778c',\n      Acknowledge: '14931d03-c3bb-4cf7-9f62-747f94d8b01a',\n    }\n\n    locals.editorFieldsSidebar = {\n      only: {\n        fields: [\n          'empfaenger',\n        ]\n      }\n    }\n\n    locals.editorFieldsMainPage = {\n      only: {\n        fields: [\n          'name',\n          'fragen',\n          'erinnerung',\n          'kommentar',\n          'bewertungAktiv', \n          'kommentarAktiv',\n        ]\n      }\n    }\n\n    locals.acksFilters = {\n      unread: {\n        label: 'Ungelesen',\n        filter: 'data.gelesen:false',\n      },\n      read: {\n        label: 'Gelesen',\n        filter: 'data.gelesen:true',\n      },\n      positive: {\n        label: 'Gut',\n        filter: 'data.bewertung:GUT',\n      },\n      neutral: {\n        label: 'Ok',\n        filter: 'data.bewertung:OK',\n      },\n      negative: {\n        label: 'Schlecht',\n        filter: 'data.bewertung:SCHLECHT',\n      },\n      comment: {\n        label: 'Mit Kommentar',\n        filter: 'data.kommentar:*',\n      },\n    }\n\n    locals.acksFilter = ''\n\n    locals.acks = [] \n    locals.isManager = false\n\n    locals.isManager = (await Aeppic.Actions.run(['7c4c6268-b24a-43c4-b876-a2a07f13942c'], { Account: Aeppic.Account, target: document }))[0].value\n\n    if (!locals.isManager) {\n      Aeppic.navigateTo(document.p)\n      return\n    }\n\n    locals.folder = await Aeppic.findOne(`p:${document.id} f.id:${this.FORMS.Folder}`)\n\n\n\n\n    await Aeppic.nextRenderPass()\n\n    Aeppic.watch(document, (doc) => {\n      this.createDiagram(doc)\n    })\n\n    this.createDiagram(document)\n\n    locals.loaded = true\n  }\n\n  setAcksFilterFor(type) {\n    if (locals.selectedAcksFilter === type) {\n      locals.selectedAcksFilter = ''\n      locals.acksFilter = ''  \n      return\n    } \n\n    if (!this.acksSubscription) {\n      this.acksSubscription = Aeppic.subscribe(`p:${document.id} f.id:${this.FORMS.Acknowledge}`, { size: 99999, sort: [ { field: 'data.gelesen', descending: false }, 'data.empfaenger.text' ]}, (documents) => {\n        locals.acks = documents\n      })\n    }\n   \n    locals.selectedAcksFilter = type\n\n    if (!locals.acksFilters[type]) {\n      throw new Error('Unknown filter type: ' + type)\n    }\n\n    locals.acksFilter = locals.acksFilters[type].filter\n  }\n\n  createDiagram(doc) {\n    const unread = doc.data.lesebestaetigungenUngelesen\n    const read = doc.data.lesebestaetigungenGelesen\n\n    if (this._chart) {\n      this._chart.destroy()\n    }\n\n    if (!data.versendet) {\n      return\n    }\n\n    const labels = []\n    const chartData = [] \n    const backgroundColor = []\n    const borderColor = []\n\n    if (read > 0) {\n      labels.push('Gelesen')\n      chartData.push(read)\n      backgroundColor.push('hsl(120, 60%, 60%)')\n      borderColor.push('hsl(120, 60%, 60%)')\n    }\n\n    if (unread > 0) {\n      labels.push('Ungelesen')\n      chartData.push(unread)\n      backgroundColor.push('hsl(7, 80%, 60%)')\n      borderColor.push('hsl(7, 80%, 60%)')\n    }\n \n    this._chart = new Chart($refs.chart, { \n      options: {\n        responsive: false,\n        // onClick: () => {\n        //   console.warn('click')\n        // },\n        // events: ['click'],\n      },\n      type: 'pie',\n      data: {\n        labels,\n        datasets: [{\n          data: chartData,\n          backgroundColor,\n          borderColor,\n          borderWidth: 1\n        }]\n      } \n    })\n  }\n\n  destroy() {\n    if (this._chart) {\n      this._chart.destroy()\n    }\n  }\n}","css":"","description":"","name":"rd:page-inner","packages":[{"id":"4a6e27ae-e4a0-4e22-9997-b352899f86f5","text":"Chart.js","v":"f9636ca9470e9f81"}],"template":"<div class=\"h-full flex overflow-hidden p-2\">\n  <section class=\"flex-1 h-full overflow-auto basis-2/3\">\n\n    <section v-if=\"data.versendet\">\n      <div class=\"font-bold text-lg mb-2\">\n        {{data.name}}\n      </div>\n\n      <div class=\"grid grid-cols-1 gap-y-6 items-center p-3 bg-white rounded-md border border-neutral-200 \">\n        <div class=\"flex gap-10 flex-wrap\">\n          <canvas ref=\"chart\" width=\"200\" height=\"200\" class=\"w-[200px] h-[200px]\"></canvas>\n\n          <!-- {{ data.lesebestaetigungenUngelesen }} ungelesen / {{ data.lesebestaetigungenGelesen }} gelesen / {{ data.lesebestaetigungenUngelesen + data.lesebestaetigungenGelesen }} gesamt -->\n          <div class=\"h-max grid grid-cols-2 gap-x-4 gap-y-2\">\n            <section class=\"col-span-2 grid grid-cols-subgrid cursor-pointer\">\n              <div>\n                <ae-control name=\"rd:help\" :document=\"document\" param-text=\"Filter auswählen um Lesebestätigungen anzuzeigen.\"></ae-control>\n              </div>\n              <div class=\"text-center\">Anzahl</div>\n              <!-- <div></div> -->\n            </section>\n          \n            <section class=\"col-span-3 grid grid-cols-subgrid cursor-pointer hover:bg-secondary-200 rounded-md px-1\"\n                      :class=\"{ 'bg-secondary-100': locals.selectedAcksFilter === 'unread'}\"\n                      @click.stop=\"controller.setAcksFilterFor('unread')\">\n              <div>\n                <ae-icon class=\"far fa-paper-plane\"></ae-icon> Ungelesen\n              </div>\n          \n              <div class=\"text-center\" :class=\"{ 'text-neutral-400': data.lesebestaetigungenUngelesen === 0 }\">{{data.lesebestaetigungenUngelesen}}</div>\n              <!-- <div>\n                <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\" param-text=\"anzeigen\"></ae-layout>\n              </div> -->\n            </section>\n\n            <section class=\"col-span-3 grid grid-cols-subgrid cursor-pointer hover:bg-secondary-200 rounded-md px-1\"\n                      :class=\"{ 'bg-secondary-100': locals.selectedAcksFilter === 'read'}\"\n                      @click.stop=\"controller.setAcksFilterFor('read')\">\n              <div>\n                <ae-icon class=\"far fa-check-circle text-lime-500\"></ae-icon> Gelesen\n              </div>\n          \n              <div class=\"text-center\" :class=\"{ 'text-neutral-400': data.lesebestaetigungenGelesen === 0 }\">{{data.lesebestaetigungenGelesen}}</div>\n              <!-- <div>\n              <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\" param-text=\"anzeigen\"></ae-layout>\n              </div> -->\n            </section>\n\n            <template v-if=\"'lesebestaetigungenPositiv' in data\">\n              <section class=\"col-span-3 grid grid-cols-subgrid cursor-pointer hover:bg-secondary-200 rounded-md px-1 border-t border-neutral-200 pt-1\"\n                        :class=\"{ 'bg-secondary-100': locals.selectedAcksFilter === 'positive'}\"\n                        @click.stop=\"controller.setAcksFilterFor('positive')\">\n                <div>\n                  <ae-icon class=\"far fa-smile-beam text-lime-500\"></ae-icon>\n                  Positiv\n                </div>\n                <div class=\"text-center\" :class=\"{ 'text-neutral-400': data.lesebestaetigungenPositiv === 0 }\">{{ data.lesebestaetigungenPositiv }}</div>\n                <!-- <div>\n                  <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\" param-text=\"anzeigen\"></ae-layout>\n                </div> -->\n              </section>\n            \n              <section class=\"col-span-3 grid grid-cols-subgrid cursor-pointer hover:bg-secondary-200 rounded-md px-1\"\n                        :class=\"{ 'bg-secondary-100': locals.selectedAcksFilter === 'neutral'}\"\n                        @click.stop=\"controller.setAcksFilterFor('neutral')\">\n                <div>\n                  <ae-icon class=\"far fa-meh\"></ae-icon>\n                  Neutral\n                </div>\n                <div class=\"text-center\" :class=\"{ 'text-neutral-400': data.lesebestaetigungenNeutral === 0 }\">{{data.lesebestaetigungenNeutral}}</div>\n                <!-- <div>\n                  <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\" param-text=\"anzeigen\"></ae-layout>\n                </div> -->\n              </section>\n            \n              <section class=\"col-span-3 grid grid-cols-subgrid cursor-pointer hover:bg-secondary-200 rounded-md px-1\"\n                        :class=\"{ 'bg-secondary-100': locals.selectedAcksFilter === 'negative'}\"\n                        @click.stop=\"controller.setAcksFilterFor('negative')\">\n                <div>\n                  <ae-icon class=\"far fa-frown text-red-500\"></ae-icon>\n                  Negativ\n                </div>\n            \n                <div class=\"text-center\" :class=\"{ 'text-neutral-400': data.lesebestaetigungenNegativ === 0 }\">{{data.lesebestaetigungenNegativ}}</div>\n                <!-- <div>\n                  <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\" param-text=\"anzeigen\"></ae-layout>\n                </div> -->\n              </section>\n            \n              <section class=\"col-span-3 grid grid-cols-subgrid cursor-pointer hover:bg-secondary-200 rounded-md px-1\"\n                        :class=\"{ 'bg-secondary-100': locals.selectedAcksFilter === 'comment'}\"\n                        @click.stop=\"controller.setAcksFilterFor('comment')\">\n                <div>\n                  <ae-icon class=\"far fa-comments-alt\"></ae-icon> Kommentare\n                </div>\n            \n                <div class=\"text-center\" :class=\"{ 'text-neutral-400': data.lesebestaetigungenKommentare === 0 }\">{{data.lesebestaetigungenKommentare }}</div>\n                <!-- <div>\n                  <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\" param-text=\"anzeigen\"></ae-layout>\n                </div> -->\n              </section>\n            </template>\n          </div>\n\n          <!-- <div class=\"flex-1\"></div> -->\n\n          <ae-form layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\"\n                  :document=\"document\" \n                  :view=\"locals.editorFieldsMainPage\" \n                  :readonly=\"true\"\n                  class=\"flex-1\"\n          ></ae-form>  \n        </div>\n\n        <ae-list  v-if=\"locals.selectedAcksFilter\"\n                   list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\"\n                  :documents=\"locals.acks\"\n                  :filter=\"locals.acksFilter\"\n                  :param-title-text=\"'Liste (' + locals.acksFilters[locals.selectedAcksFilter].label + ')'\"\n                  param-design=\"rd:card\"\n                  :param-design-params=\"{ isManager: locals.isManager }\"\n                  param-empty-text=\"Keine Lesebestätigungen für den gewählten Filter gefunden.\"\n        ></ae-list>\n      </div>\n    </section>\n    <section v-else>\n      <ae-form  \n          layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\"\n          :document=\"document\" \n          :auto-save=\"true\"\n          :auto-save-after=\"3000\"\n          :view=\"locals.editorFieldsMainPage\" \n          :readonly=\"params.readonly\"\n      ></ae-form>  \n    </section>\n\n\n    <div class=\"mx-auto max-w-5xl flex flex-col\">\n      <div class=\"font-bold text-lg my-4\">\n        Unterlagen\n      </div>\n\n      <ae-design name=\"rd:page-inner\" :document=\"locals.folder\" :param-disable-new=\"data.versendet\" :param-readonly=\"data.versendet\"></ae-design>\n    </div>\n  </section>\n  <section v-if=\"params.windowWidth >= 1280\"\n    class=\"h-full w-full basis-1/3 max-w-[500px] border-l bg-white overflow-hidden flex flex-col\"\n  >\n    <ae-form  layout-id=\"6b954487-ceaa-4f19-aab6-5a7b23a74b63\"\n              xlayout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\"\n              :document=\"document\" \n              :auto-save=\"true\"\n              :auto-save-after=\"3000\"\n              :view=\"locals.editorFieldsSidebar\" \n              :readonly=\"params.readonly\"\n              class=\"h-full\"\n    ></ae-form>\n  </section>\n\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"a36ee02d-b1da-45ae-a9be-b2087f745573","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-09-22T11:39:14+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"94886126-c88d-4ea0-b088-8ea5ad155b08","previous":{"v":"6e9c6050c16687b0"},"stamps":[],"t":1758541154263,"v":"c901cbeb8b237ec9"},{"id":"a6dfa22b-2ffa-42b3-926a-402b28a914ca","v":"e3ee12fc4b760cf4","cloneOf":{"id":"050ab704-be39-4105-ab0e-b18a2027894e","v":"a09b13d5fbe37bb8","text":"rd:page-inner"},"originalCloneOf":{"id":"050ab704-be39-4105-ab0e-b18a2027894e","v":"a09b13d5fbe37bb8","text":"rd:page-inner"},"previous":{"v":"0b4055d134eccd60"},"p":"4b1bce8a-884e-44de-a2cd-352a7f89baa7","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-inner","template":"<div class=\"flex h-full\" ref=\"container\">\n  <div class=\"flex-1 h-full overflow-auto basis-2/3 flex flex-col\">\n    <ae-form  :document=\"document\"\n              :auto-save=\"true\"\n              :auto-save-after=\"2500\"\n              layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\"\n              class=\"w-full\"\n              :readonly=\"params.readonly\"\n    ></ae-form>\n\n    <div class=\"w-full mx-auto max-w-5xl\">\n      <div class=\"w-full lg:my-2 lg:ml-2 flex flex-col\">\n        <ae-design name=\"rd:toolbar\" \n                  :document=\"document\" \n                    @filter=\"locals.filter = $event\"\n                    @sort=\"locals.sort = $event\"\n        ></ae-design>\n\n        <ae-list list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\"\n                :search=\"'p:'+ document.id + ' f.id:3f5de83a-40e4-4662-b436-3ed4879edb10'\"\n                :params=\"{ tableStyle: true }\"\n                :param-design-params=\"{ hidePath: true }\"\n                :sort=\"locals.sort\"\n                :filter=\"locals.filter\"\n                class=\"mx-4 px-2 \"\n                @selected=\"Aeppic.drillInto($event, arguments[1])\"\n        ></ae-list>\n      </div>\n    </div>\n  </div>\n  <template v-if=\"params.windowWidth >= 1280\">\n    <ae-layout  v-if=\"!locals.allowUndefinedFields\"\n                layout-id=\"0e6b3b93-8e22-4616-9389-a00a6a1a4f59\"\n                :param-document=\"document\"\n                :param-highlight-comment=\"params.highlightComment\"\n                :param-no-close=\"true\"\n                class=\"h-full w-full basis-1/3 max-w-[500px] lg:m-2\"\n    ></ae-layout>\n\n    <ae-design  v-if=\"locals.allowUndefinedFields\"\n                name=\"rd:undefined-fields\"\n                :document=\"document\"\n                class=\"h-full w-full basis-1/3 max-w-[500px] shadow lg:my-2 lg:ml-2\"\n    ></ae-design>\n  </template>\n</div> \n\n","css":"","controller":"class Controller {\n  async init() {\n    locals.sort = { field: 'data.behandlungsdatum', descending: true }\n    locals.filter = ''\n\n    locals.form = null\n\n    locals.form = await Aeppic.getFormForDocument(document)\n\n    locals.allowUndefinedFields = locals.form.data.allowUndefinedFields === true\n  }\n} ","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-01-08T14:02:51+01:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2024-02-22T12:47:43+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1708606063763,"ct":1704718971344,"a_depth":4,"a":["apps","5ec4fefb-1235-484e-8d6f-4fd645bae372","75920050-07b1-4e79-9742-54abcc235e91","4b1bce8a-884e-44de-a2cd-352a7f89baa7"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","5beeae17-7bb1-4eeb-bcb6-cf0e6950e27c","cbdb17cb-885b-4e8b-bfa4-ee22f5c3122f"],"a_depth":5,"a_forms":["folder","application-form","form-folder","form","form"],"cloneOf":{"id":"55a187ca-ab2a-4246-9266-ff920efaa8a3","text":"rd:page-inner","v":"initial"},"created":{"at":"2025-07-22T11:20:38+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1753177201908,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:page-inner","packages":[],"template":"<div class=\"hidden print:block flex gap-2 border rounded-md border-secondary-300 p-1\">\n  <ae-design  name=\"title\" :document-id=\"document.a.slice(-3)[0]\" class=\"text-primary-900 px-2 text-lg\"></ae-design>\n  <ae-design  name=\"title\" :document-id=\"document.a.slice(-2)[0]\" class=\"text-primary-900 px-2 text-lg\"></ae-design>\n</div> \n\n<ae-design class=\"h-full overflow-hidden\" name=\"rd:page-inner_default\" :document=\"document\"\n:params=\"params\" v-on=\"$listeners\"></ae-design> "},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"a842d714-5f70-4535-aa92-2b4c4502cbc5","inheritedLocks":[null,null,null,null,null,null],"locks":[],"meta":{"modified":{"at":"2025-07-22T11:20:53+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null}},"modified":{"at":"2025-07-22T11:20:38+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"04961750-b1f2-475d-8f6a-f5ad76d9554a","text":"rd:page-inner","v":"2164ee18f99ae992"},"p":"cbdb17cb-885b-4e8b-bfa4-ee22f5c3122f","previous":{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","5beeae17-7bb1-4eeb-bcb6-cf0e6950e27c"],"a_forms":["folder","application-form","form-folder","form"],"p":"5beeae17-7bb1-4eeb-bcb6-cf0e6950e27c","v":"initial"},"stamps":[],"t":1753183253299,"v":"9c3a6555ade6164a"},{"a":["apps","59edbdbc-2cab-426a-bb42-6e57c5158e4f","3be7e887-1bcd-4c3c-979f-b20a986c4c48","0b6a2b21-9425-466e-9e8d-57ec39cc95e1"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2022-05-06T14:22:07+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1651846927682,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:page-inner","packages":[],"template":"<div class=\"h-full flex flex-col w-full bg-gray-50\">\n  <!-- <ae-design v-if=\"document.a_forms.find(aForm => aForm === document.f.id || '0b4fe19c-a550-46b7-ada0-6813a60e14bc')\"\n            name=\"rd:toolbar\"\n            :document=\"document\"\n            @filter=\"locals.filter = $event\"\n\n    ></ae-design> -->\n  <ae-design class=\"h-full overflow-auto\"\n            :name=\"'rd:' + (params.tab || 'tasks')\"\n            :document=\"document\"\n            :param-filter=\"locals.filter\"\n                            :param-view=\"params.view\"\n                :param-tab=\"params.tab\"\n                :param-window-width=\"params.windowWidth\"\n  ></ae-design>\n</div> "},"f":{"id":"design-form","text":"Design","v":"c2d9ae57c7a46896"},"id":"aad28050-155b-473e-8f28-b5818c35913d","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-03-24T09:43:30+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"p":"0b6a2b21-9425-466e-9e8d-57ec39cc95e1","previous":{"v":"d04b6d4ad1ae952f"},"stamps":[],"t":1774345410048,"v":"f307c8e9cb3a5410"},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","51563ea0-d4ac-4099-9a52-28e6e6b23cd2"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2023-07-14T13:48:36+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1689342516984,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:page-inner","packages":[],"template":"\n<div class=\"flex-1 mx-auto flex flex-col gap-4 w-full bg-white overflow-visible bg-white max-w-5xl px-4 py-2 my-2 xl:shadow-md xl:rounded-md\">\n  <div class=\"font-bold text-lg p-2\">\n    Formular Changes\n  </div>\n\n  <div class=\"whitespace-prewrap text-gray-700\">\n    <ae-icon class=\"far fa-info-circle\"></ae-icon>\n    Diese Seite stellt CSV-Exports bereit. Diese Exports enthalten alle aktuellen Datenfelder der genannten Formulare.\n  </div>\n\n\n  <div>\n<ae-layout layout-id=\"ff1d7dd5-188f-4277-bba2-85e2df54487a\"></ae-layout>\n  </div>\n</div>"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"abce02ba-d569-4d7c-b175-a8eefd1c42b9","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-05-23T14:56:47+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"51563ea0-d4ac-4099-9a52-28e6e6b23cd2","previous":{"v":"495f0a05fa259a8c"},"stamps":[],"t":1748012207284,"v":"d310ad6e72c8fb70"},{"id":"ade5b1f5-76b8-4bb1-b266-c5b92f42a517","v":"1f890bf288dd4fd1","previous":{"v":"5201198c6d3b44a8"},"p":"group","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"rd:page-inner","template":"<div  ref=\"container\" class=\"h-full flex flex-col  lg:pb-10 lg:pt-2\">\n  <ae-form  :document=\"document\"\n            :auto-save=\"true\"\n            :auto-save-after=\"2500\"\n            layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\"\n            class=\"flex-1\"\n            :view=\"locals.view\"\n  ></ae-form>\n\n  <div class=\"p-4 bg-white mx-auto max-w-5xl rounded-md w-full\">\n\n    <h3>Alle Zugriffsrechte der Gruppe</h3>\n\n    <ae-layout    layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n                  :param-text=\"locals.showAccessRights ? 'Zugriffsrechte ausblenden' :  'Zugriffsrechte anzeigen' \"\n                  param-icon=\"far fa-lock-alt\"\n                  @selected=\"locals.showAccessRights = !locals.showAccessRights\"\n                  param-border=\"border\"\n    ></ae-layout> \n\n    <ae-layout v-if=\"locals.showAccessRights\" layout-id=\"d5255c05-8040-47e5-a2e3-0e499be8579d\" :param-document=\"document\" :param-groups-ids=\"[document.id]\"></ae-layout> \n  </div>\n</div>\n\n","css":"","controller":"class Controller {\n  init() {\n    locals.showAccessRights = false\n\n    locals.view = {\n      only: {\n        fields: [\n          'name',\n          'description',\n          'systemManaged',\n          'group',\n          'users',\n        ]\n      }\n    }\n\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-01-06T14:44:38+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"modified":{"at":"2025-01-28T12:25:21+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1738067121543,"ct":1673016278349,"a_depth":5,"a":["system","b2533f7b-ea85-4680-99ed-d8e11be641b9","0e6939d6-9b93-4165-b6bd-977e4da881f3","627f5b74-3baf-45f8-a1d3-a5936839b844","group"],"a_forms":["system-folder-form","folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"b1097dbf-d418-4dd5-be6b-9d515d87e285","v":"initial","cloneOf":{"id":"e14dda99-d65a-49eb-a366-28a5a548dbd1","v":"00c5096f916fa94f","text":"rd:page-inner"},"originalCloneOf":{"id":"e14dda99-d65a-49eb-a366-28a5a548dbd1","v":"00c5096f916fa94f","text":"rd:page-inner"},"p":"83b7ea0a-f4c2-43b8-a4a7-09f1dbde62d1","f":{"id":"design-form","v":"4b1c7a4912f80103","text":"Design"},"data":{"name":"rd:page-inner","template":"<ae-design name=\"rd:page-list\" :document=\"document\"\n:params=\"params\"></ae-design>","css":"","controller":"","packages":[],"parameters":[],"parametersDescriptions":[],"parametersTypes":[],"parametersControls":[],"parametersCardinalities":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2026-05-04T09:24:43+00:00","by":"09763886-6748-4a56-8e0e-54a2293ee96b","backedBy":"","impersonatedBy":"","from":"","client":"server"},"modified":{"at":"2026-05-04T09:24:43+00:00","by":"09763886-6748-4a56-8e0e-54a2293ee96b","backedBy":"","impersonatedBy":"","from":"","client":"server"},"t":1777886683691,"ct":1777886683690,"a_depth":4,"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","83b7ea0a-f4c2-43b8-a4a7-09f1dbde62d1"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","5beeae17-7bb1-4eeb-bcb6-cf0e6950e27c","ee60c716-511c-4ef3-a6f6-2c5c8d5bde74"],"a_depth":5,"a_forms":["folder","application-form","form-folder","form","form"],"cloneOf":{"id":"a842d714-5f70-4535-aa92-2b4c4502cbc5","text":"rd:page-inner","v":"initial"},"created":{"at":"2025-07-22T11:20:42+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1753177201908,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:page-inner","packages":[],"template":"<div class=\"hidden print:block flex gap-2 border rounded-md border-secondary-300 p-1\">\n  <ae-design  name=\"title\" :document-id=\"document.a.slice(-3)[0]\" class=\"text-primary-900 px-2 text-lg\"></ae-design>\n  <ae-design  name=\"title\" :document-id=\"document.a.slice(-2)[0]\" class=\"text-primary-900 px-2 text-lg\"></ae-design>\n</div> \n\n<ae-design class=\"h-full overflow-hidden\" name=\"rd:page-inner_default\" :document=\"document\"\n:params=\"params\" v-on=\"$listeners\"></ae-design> "},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"b19b1507-b9f9-40f9-86d7-260ca4acb75e","inheritedLocks":[null,null,null,null,null,null],"locks":[],"meta":{"modified":{"at":"2025-07-22T11:20:58+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null}},"modified":{"at":"2025-07-22T11:20:42+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"04961750-b1f2-475d-8f6a-f5ad76d9554a","text":"rd:page-inner","v":"2164ee18f99ae992"},"p":"ee60c716-511c-4ef3-a6f6-2c5c8d5bde74","previous":{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","5beeae17-7bb1-4eeb-bcb6-cf0e6950e27c"],"a_forms":["folder","application-form","form-folder","form"],"p":"5beeae17-7bb1-4eeb-bcb6-cf0e6950e27c","v":"initial"},"stamps":[],"t":1753183258762,"v":"c599a74ab1a1135d"},{"a":["system","04632e3e-9132-4927-b91d-3c28d1afe3e9","185bdb84-b4e7-478a-848f-2a364eceb184"],"a_depth":3,"a_forms":["system-folder-form","folder","form"],"created":{"at":"2025-07-04T06:39:21+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"ct":1751611161065,"data":{"aliases":[],"controller":"class Controller{\n  async init() {\n    this.DOCUMENTS = {\n      folder1: 'a6deac47-ddd3-47f1-a349-238e5d23eeee',\n      folder2: '32da02cc-eb86-479a-8f86-cc1e12401dd2',\n      document3: '49224d59-65e2-4685-bbec-5415aa65e0ac',\n      document4: '6c259e11-efbd-4a59-8c77-e891e7a1847d',\n      document1: 'b2a18665-9d7c-4928-8246-2e57b6980afa',\n      document2: 'd911394b-3c20-468b-8036-5572dc1d05d9',\n      query1: '282f2464-bd3f-4cb7-8821-e918bb7106ff',\n      query2: '32da02cc-eb86-479a-8f86-cc1e12401dd2',\n    } \n\n    this.FORMS = {\n      document: '0deb4864-cbb6-420c-99ee-337c7444ab24',\n    }\n\n    const documents1 = [this.DOCUMENTS.document1, this.DOCUMENTS.document2]\n    const documents2 = [this.DOCUMENTS.document3, this.DOCUMENTS.document4]\n    this.query1 = {\n      queryDocument: this.DOCUMENTS.query1,\n      search: `p:${this.DOCUMENTS.folder1}`,\n      documents: documents1,\n      editableDocuments: await Promise.all(documents1.map(doc => Aeppic.edit(doc))),\n    }\n\n    this.query2 = {\n      queryDocument: this.DOCUMENTS.query2,\n      search: `p:${this.DOCUMENTS.folder2}`,\n      documents: documents2,\n      editableDocuments: await Promise.all(documents2.map(doc => {Aeppic.edit(doc)})),\n    }\n\n    locals.currentQuery = this.query1\n\n    locals.sort = []\n    locals.filter = ''\n    locals.localFilter = ''\n    locals.watchDocs = false\n    locals.queryOnce = false\n    locals.suspended = false\n    locals.modes = ['subscription', 'queryDocument', 'documents', 'editableDocuments']\n    locals.mode = 'subscription'\n\n  }\n\n  onDocumentsSwap() {\n    if (locals.currentQuery === this.query2) {\n      locals.currentQuery = this.query1\n    } else if (locals.currentQuery === this.query1) {\n      locals.currentQuery = this.query2\n    }\n  }\n\n  randomizeNames() {\n    console.log('randomize names')\n    if (locals.mode === 'editableDocuments') {\n      locals.currentQuery.editableDocuments.forEach(doc => this.randomizeName(doc))\n      locals.currentQuery.editableDocuments = [...locals.currentQuery.editableDocuments]\n    } else {\n      locals.currentQuery.documents.forEach(doc => this.randomizeName(doc))\n      // locals.currentQuery.documents = [...locals.currentQuery.documents]\n    }\n  }\n\n  async randomizeName(doc) {\n    if (locals.mode === 'editableDocuments') {\n      const name = Number(doc.data.name)\n      const number = isNaN(name) ? '0' : String(name + 1)\n      doc.data.name = number\n      Aeppic.commit(doc)\n    } else {\n      const editable = await Aeppic.edit(doc)\n      const name = Number(editable.data.name)\n      const number = isNaN(name) ? '0' : String(name + 1)\n      editable.data.name = number\n      Aeppic.save(editable)\n    }\n  }\n\n  async addDocumentToFolder() {\n    const editable = await Aeppic.new(this.FORMS.document, this.DOCUMENTS.folder1)\n    editable.data.name = '5'\n    Aeppic.save(editable)\n  }\n\n}","css":"","description":"","name":"rd:page-inner","packages":[],"template":"<div\n  class=\"flex flex-col gap-2 mb-8\"\n>\n  <div\n    class=\"flex gap-2\"\n  >\n    <ae-layout\n      v-for=\"mode of locals.modes\"\n      layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n      @selected=\"locals.mode = mode\"\n      :param-text=\"mode\"\n      param-border=\"border border-secondary-300\"\n      :param-primary=\"locals.mode === mode\"\n    ></ae-layout>\n  </div>\n\n  <div\n    class=\"flex gap-2\"\n  >\n    <ae-layout\n      layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n      @selected=\"locals.watchDocs = !locals.watchDocs\"\n      :param-text=\"'watchDocuments: ' + locals.watchDocs\"\n      param-border=\"border border-secondary-300\"\n    ></ae-layout>\n\n    <ae-layout\n      layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n      @selected=\"locals.queryOnce = !locals.queryOnce\"\n      :param-text=\"'queryOnce: ' + locals.queryOnce\"\n      param-border=\"border border-secondary-300\"\n    ></ae-layout>\n\n    <ae-layout\n      layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n      @selected=\"locals.suspended = !locals.suspended\"\n      :param-text=\"'List suspended: ' + locals.suspended\"\n      param-border=\"border border-secondary-300\"\n    ></ae-layout>\n  </div>\n\n  <div\n    class=\"flex gap-2\"\n  >\n    <ae-layout\n      layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n      @selected=\"controller.onDocumentsSwap()\"\n      param-text=\"Swappe dokumente\"\n      param-border=\"border border-secondary-300\"\n    ></ae-layout>\n\n    <ae-layout\n      layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n      @selected=\"controller.randomizeNames()\"\n      param-text=\"Randomize Names\"\n      param-border=\"border border-secondary-300\"\n    ></ae-layout>\n\n    <ae-layout\n      layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n      @selected=\"controller.addDocumentToFolder()\"\n      param-text=\"Add Document\"\n      param-border=\"border border-secondary-300\"\n    ></ae-layout>\n  </div>\n\n  <section\n    class=\"flex items-center\"\n  >\n    <span>\n      Filter and Sort:\n    </span>\n    {{locals.filter}}\n    <ae-design name=\"rd:toolbar\"\n                :document=\"layout\"\n                @filter=\"locals.filter = $event\"\n                @sort=\"locals.sort = $event\"\n                param-list-form-id=\"0deb4864-cbb6-420c-99ee-337c7444ab24\"\n                :param-window-width=\"params.windowWidth\"\n    ></ae-design>\n  </section>\n\n  <section\n    class=\"flex items-center\"\n  >\n    <span>\n      Local Filter:\n    </span>\n    <ae-design name=\"rd:toolbar\"\n                class=\"\"\n                :document=\"layout\"\n                @filter=\"locals.localFilter = $event\"\n                param-list-form-id=\"0deb4864-cbb6-420c-99ee-337c7444ab24\"\n                :param-window-width=\"params.windowWidth\"\n                :param-disable-sort=\"true\"\n    ></ae-design>\n  </section>\n\n</div>\n\n\n<ae-list\n  v-if=\"locals.mode === 'subscription'\"\n  list-id=\"06552a2d-9b3f-49f7-b9b1-7611b400d086\"\n  :sort=\"locals.sort\"\n  :search=\"locals.currentQuery.search\"\n  :queryOnce=\"locals.queryOnce\"\n  :suspend=\"locals.suspended\"\n  :watchDocuments=\"locals.watchDocs\"\n  :filter=\"locals.filter\"\n  :localFilter=\"locals.localFilter\"\n  :debug=\"true\"\n></ae-list>\n\n<ae-list\n  v-if=\"locals.mode === 'queryDocument'\"\n  list-id=\"06552a2d-9b3f-49f7-b9b1-7611b400d086\"\n  :query-id=\"locals.currentQuery.queryDocument\"\n  root-document-id=\"5294e7e7-4d9a-46cb-a7b2-156de084e2e7\"\n  :sort=\"locals.sort\"\n  :queryOnce=\"locals.queryOnce\"\n  :suspend=\"locals.suspended\"\n  :watchDocuments=\"locals.watchDocs\"\n  :filter=\"locals.filter\"\n  :localFilter=\"locals.localFilter\"\n  :debug=\"true\"\n></ae-list>\n\n<ae-list\n  v-if=\"locals.mode === 'documents'\"\n  list-id=\"06552a2d-9b3f-49f7-b9b1-7611b400d086\"\n  :documents=\"locals.currentQuery.documents\"\n  :sort=\"locals.sort\"\n  :queryOnce=\"locals.queryOnce\"\n  :suspend=\"locals.suspended\"\n  :watchDocuments=\"locals.watchDocs\"\n  :filter=\"locals.filter\"\n  :localFilter=\"locals.localFilter\"\n  :debug=\"true\"\n></ae-list>\n\n<ae-list\n  v-if=\"locals.mode === 'editableDocuments'\"\n  list-id=\"06552a2d-9b3f-49f7-b9b1-7611b400d086\"\n  :documents=\"locals.currentQuery.editableDocuments\"\n  :sort=\"locals.sort\"\n  :queryOnce=\"locals.queryOnce\"\n  :suspend=\"locals.suspended\"\n  :watchDocuments=\"locals.watchDocs\"\n  :filter=\"locals.filter\"\n  :localFilter=\"locals.localFilter\"\n  :debug=\"true\"\n  :detectDeepDocumentsChanges=\"true\"\n></ae-list>"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"b365e5a7-ab89-4dbb-8b42-1c6778aa6dee","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2025-07-25T11:32:11+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"185bdb84-b4e7-478a-848f-2a364eceb184","previous":{"v":"cc955bb73dfe92f1"},"stamps":[],"t":1753443131914,"v":"cbd5f211d3ada378"},{"a":["apps","b91e3079-75ae-49cd-981b-3053bf47208c","e7a0be94-cd94-4210-875e-0cceb7e8bc6c","381e2c4e-9eed-42a5-b65c-ad72e25369f0"],"a_depth":4,"a_forms":["folder","application-form","folder","form"],"cloneOf":{"id":"3e5f6aef-4a8a-4b55-ae66-5aaac09b16ce","text":"rd:page-inner","v":"d51706ede3c30555"},"created":{"at":"2022-10-21T14:55:47+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1666364147060,"data":{"applies":"","controller":"class controller {\r\n  init() {\r\n    if (!params.readonly) {\r\n      locals.buttonEditParams = {\r\n        icon: 'far fa-pencil text-sm text-neutral-600 hover:text-neutral-700',\r\n        border: 'border border-secondary-300',\r\n      }\r\n    }\r\n\r\n    locals.folders = []\r\n    locals.editableFolders = []\r\n\r\n    Aeppic.subscribe(`p:${document.p} f.id:381e2c4e-9eed-42a5-b65c-ad72e25369f0`, { sort: { fields: ['data.name', 'id'] }}, (folders) => {\r\n      locals.folders = folders\r\n      locals.editableFolders = new Array(folders.length).fill(null)\r\n    })\r\n  }\r\n\r\n  selected(folder) {\r\n    Aeppic.drillInto(folder, { tab: params.tab })\r\n  }\r\n\r\n  async editFolder(index) {\r\n    if (params.readonly) {\r\n      return\r\n    }\r\n\r\n    const folder = locals.folders[index]\r\n    locals.editableFolders = new Array(locals.folders.length).fill(null)\r\n    locals.editableFolders.splice(index, 1, await Aeppic.edit(folder))\r\n  }\r\n\r\n  async saveFolder(index) {\r\n    const folder = locals.editableFolders[index]\r\n    locals.editableFolders.splice(index, 1, null)\r\n    Aeppic.save(folder)\r\n  }\r\n\r\n  scrollToTop() {\r\n    $refs.listContainer.scrollTo({\r\n      top: 0,\r\n      left: 0,\r\n      behavior: 'smooth'\r\n    })\r\n  }\r\n}\r\n\r\n","css":"","name":"rd:page-inner","packages":[],"template":"<div class=\"flex flex-col md:flex-row h-full bg-white overflow-hidden flex xflex-wrap\">\n  <section class=\"md:max-w-72 lg:max-w-96 basis-1/3\">\n    <section class=\"flex flex-col gap-2 mb-2 md:mb-10 p-4\">\n      <div class=\"flex items-center gap-4\">\n        <div class=\"text-2xl\">Ordner</div>\n\n        <ae-design\n          name=\"rd:toolbar\"\n          :document=\"document\"\n          :params=\"{ disableFilter: true, disableSort: true, disableSearch: true, loadingText: 'Neu' }\"\n        ></ae-design>\n      </div>\n\n      <ae-design\n        name=\"rd:folders-menu\"\n        :document-id=\"document.p\"\n        :param-active-document=\"document\"\n        :param-tab=\"params.tab\"\n        :param-readonly=\"params.readonly\"\n      ></ae-design>\n    </section>\n  </section>\n\n  <section class=\"grow shrink-0 basis-1/3 w-full overflow-auto\" ref=\"listContainer\">\n    <ae-list list-id=\"f914c7de-072d-4e39-aa51-d55fe5391c76\"\n              :param-root=\"document.id\"\n              @selected=\"Aeppic.drillInto($event, arguments[1])\"\n              :param-design-params=\"{ expand: true }\"\n    ></ae-list> \n  </section>\n\n  <section class=\"absolute right-0 bottom-0 p-2\">\n    <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n          param-icon=\"far fa-chevron-up\"\n          :param-primary=\"true\"\n          class=\"text-xl\"\n          @selected=\"controller.scrollToTop()\"\n    ></ae-layout> \n  </section>\n\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"e3fe9ece11aabc5e"},"id":"b3bed1ef-86d9-465d-9512-8e21279b4741","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-02-17T16:11:58+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"3e5f6aef-4a8a-4b55-ae66-5aaac09b16ce","text":"rd:page-inner","v":"d51706ede3c30555"},"p":"381e2c4e-9eed-42a5-b65c-ad72e25369f0","previous":{"v":"bb7f4403c70fcea1"},"stamps":[],"t":1739808718504,"v":"ed31d81081915483"},{"a":["system","04632e3e-9132-4927-b91d-3c28d1afe3e9","e9f6cbce-0b0f-4ef3-a7cf-ae0b2ddbce03"],"a_depth":3,"a_forms":["system-folder-form","folder","form"],"created":{"at":"2025-11-18T07:50:46+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"ct":1763452246760,"data":{"aliases":[],"controller":"class Controller {\n  init() {\n\n  }\n\n  get layers() {\n    const header = {\n      layout: {\n        id: 'f67a5e19-1dba-40c2-88f3-90b924837899',\n        params: {\n          design: {\n            name: 'rd:header',\n            params: {}\n          },\n        },\n      },\n      groupFunction: (doc) => this.ref0(doc),\n    }\n\n    const subheader = {\n      layout: {\n        id: 'f67a5e19-1dba-40c2-88f3-90b924837899',\n        params: {\n          design: {\n            name: 'rd:subheader',\n            params: {}\n          },\n          list: {\n            params: {\n              design: 'rd:title',\n            },\n          },\n        },\n      },\n      groupFunction: (doc) => this.ref1(doc),\n    }\n\n    const list = {\n      list: {\n        id: null,\n        params: {\n          design: 'rd:title',\n        },\n      },\n    }\n\n    return [header, subheader, list]\n  }\n\n  ref0(doc) {\n    return doc.data.ref0.id\n  }\n\n  ref1(doc) {\n    return doc.data.ref1.id\n  }\n\n  ref2(doc) {\n    return doc.data.ref2.id\n  }\n\n  log(event) {\n    console.log(event)\n  }\n  \n}","css":"","description":"","name":"rd:page-inner","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<ae-list\n  list-id=\"e476f910-4a94-40a9-b815-dc5935b4b822\"\n  search=\"p:23de375c-7375-462d-b16c-25b63ef8a5a5\"\n  :param-layers=\"controller.layers\"\n  @selected=\"controller.log($event)\"\n></ae-list>"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"b600737e-4b85-4ab4-84e8-c8f33e75e4be","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2025-11-19T08:15:05+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"e9f6cbce-0b0f-4ef3-a7cf-ae0b2ddbce03","previous":{"v":"dad9104827ac45c6"},"stamps":[],"t":1763540105638,"v":"c5e1b784c86cbf73"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","6138e497-f561-430e-b3f1-8c3c7db046a7"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"4ab76ac4-c37b-4338-b13b-cef228230572","text":"rd:page-inner","v":"aa3add73127ac4a2"},"created":{"at":"2025-08-04T08:01:23+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1754294483072,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.listKey = Aeppic.uuid()\n    this.FORMS = {\n      Wartung: '347d38c6-0bce-47ce-b271-9f924c56ac49',\n    }\n    locals.FORMS = this.FORMS\n\n    locals.foldersSize = 0\n\n    const form = await Aeppic.get(document.f)\n\n    const { wartung, otherForms } = form.data.allowedChildrenForms.reduce((res, cur) => {\n      if (cur.id === this.FORMS.Wartung) {\n        res.wartung = cur\n      } else {\n        res.otherForms.push(cur)\n      }\n\n      return res\n    }, { wartung: null, otherForms: [] })\n\n    locals.FORMS = this.FORMS\n\n    locals.filter = ''\n    locals.filterVertical = `p:${document.id} f.id:${wartung?.id}`\n    locals.filterTiles = `p:${document.id} (${otherForms.map(x => `f.id:${x.id}`).join(' OR ')})`\n  }\n\n  updateSize(size) {\n    locals.foldersSize = size\n  }\n}  ","css":"","description":"","name":"rd:page-inner","packages":[],"template":"<div class=\"h-full overflow-auto flex flex-col bg-white p-4 w-full gap-4\">\n  <header\n    class=\"flex justify-between items-center w-full\"\n  >\n    <ae-design \n      class=\"w-full\"\n      name=\"rd:toolbar\"\n      :document=\"document\"\n      @filter=\"locals.filter = $event\"\n      :param-list-form-id=\"locals.FORMS.Wartung\"\n      ></ae-design>\n  </header>\n  \n  <div class=\"flex flex-col gap-8 h-full w-full\">\n      <ae-list\n        list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\" \n        :search=\"locals.filterTiles\"\n        :sort=\"{ fields: ['f.text', 'id'] }\" \n        @selected=\"Aeppic.drillInto($event, arguments[1])\"\n        :param-design-params=\"{ size: 'large' }\"\n        @size=\"controller.updateSize($event)\" \n        param-design=\"rd:tile\"\n        :param-horizontal=\"true\"\n        :param-wrap=\"true\"\n      ></ae-list> \n      <ae-list \n        class=\"grow shrink-0 basis-1/3 w-full\"\n        list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\" \n        :search=\"locals.filterVertical\"\n        :filter=\"locals.filter\"\n        :sort=\"{ fields: ['data.name', 'id'] }\" \n        @selected=\"Aeppic.drillInto($event, arguments[1])\"\n        param-design=\"rd:card\"\n        :param-design-params=\"{ noBorder: true }\"\n        :param-divide=\"true\"\n      ></ae-list>\n    </div>\n  </div> \n</div>\n  \n"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"b75be61a-1244-4344-ba9f-b52d7d1835a0","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-02-06T10:53:05+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"4ab76ac4-c37b-4338-b13b-cef228230572","text":"rd:page-inner","v":"aa3add73127ac4a2"},"p":"6138e497-f561-430e-b3f1-8c3c7db046a7","previous":{"v":"5b70e8337e6ed11b"},"stamps":[],"t":1770375185238,"v":"52b2d8d45f845077"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","c6931d87-a1f3-4b34-bc1b-3f0bfe7398f8"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"d75cbcdb-b727-462f-ba14-f23d128a8c9d","text":"rd:page-inner","v":"d018a6c4f28dea36"},"created":{"at":"2026-01-27T09:39:01+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"ct":1769506741191,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:page-inner","packages":[],"template":"<ae-design name=\"rd:page--worker\"\n:document=\"document\"\n:params=\"params\"\nv-on=\"$listeners\"\nclass=\"h-full w-full\"\n></ae-design>"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"bb777e98-50bc-4dd2-a47b-216d6f7beb25","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-01-27T09:39:01+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"d75cbcdb-b727-462f-ba14-f23d128a8c9d","text":"rd:page-inner","v":"d018a6c4f28dea36"},"p":"c6931d87-a1f3-4b34-bc1b-3f0bfe7398f8","stamps":[],"t":1769506741191,"v":"initial"},{"a":["apps","a590ce5b-28fc-4f85-9049-d006e1b8f880","169e87e0-0379-48e1-8c94-8fadac5969bb","ebb00fab-fe96-4562-a7cd-1fac9a420d50"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"3edb2f2a-e31c-4658-943e-790fe4acc6e7","text":"rd:page-inner","v":"556397eda697a004"},"created":{"at":"2022-11-03T09:45:05+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1667468705949,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Unterlage: '764f746e-a836-4e9d-a770-1d8d5ccad49b',\n      Verwaltung: 'ebb00fab-fe96-4562-a7cd-1fac9a420d50',\n      Ordner: 'b2030eae-0210-474c-bf24-9b5c6f0a0d3b',\n    }\n    locals.FORMS = this.FORMS\n\n    locals.filter = ''\n    locals.sort = 'data.name'\n    locals.current = []\n    locals.retired = []\n    locals.pool = []\n    locals.all = []\n\n\n\n\n    Aeppic.subscribe(`a:${document.id} f.id:${this.FORMS.Unterlage}`, { size: 999 }, (documents) => {\n      const { current, closed, pool } = this.filterDocuments(documents)\n\n      locals.current = current\n      locals.closed = closed\n      locals.pool = pool\n\n      locals.all = [...current, ...closed, ...pool]\n    })\n  }\n\n// f.id:764f746e-a836-4e9d-a770-1d8d5ccad49b AND data.bewerbungsverfahrenAbgeschlossen:false AND data.bewerberpool:false\n  filterDocuments(documents) {\n    const current = []\n    const closed = []\n    const pool = []\n\n    for (const doc of documents) {\n      if (doc.data.bewerbungsverfahrenAbgeschlossen) {\n        closed.push(doc)\n        continue\n      } else if (doc.data.bewerberpool) {\n        pool.push(doc)\n      } else {\n        current.push(doc)\n      }\n    }\n\n    return { current, closed, pool }\n  }\n\n  async navigateToAllFolders() {\n    if (document.f.id === this.FORMS.Personalverwaltung) {\n      return\n    }\n\n    const verwaltung = await Aeppic.get(document.a_forms.findIndex(aForm => aForm === this.FORMS.Personalverwaltung))\n\n    Aeppic.navigateTo(verwaltung)\n  }\n}","css":"","description":"","name":"rd:page-inner","packages":[],"template":"<div class=\"flex flex-col h-full bg-white overflow-hidden md:flex-row\"> \n  <section class=\"\">  \n    <section class=\"flex flex-col gap-2 mb-2 md:mb-10 p-4\">\n      <div class=\"flex items-center gap-4\">\n        <div class=\"text-2xl\">\n          Ordner\n        </div>\n  \n        <ae-design name=\"rd:toolbar\"\n                  :document=\"document\"\n                  :params=\"{ disableFilter: true, disableSort: true, disableSearch: true, loadingText: 'Neu' }\"\n        ></ae-design> \n      </div>\n\n      <ae-design name=\"rd:folders-menu\"\n                :document=\"document\"\n                :param-active-document=\"document\"\n                :param-tab=\"params.tab\"\n      ></ae-design> \n    </section>\n  </section>\n  <section class=\"w-full flex flex-col\">\n    <ae-design\n      name=\"rd:toolbar\"\n      :document=\"document\"\n      :params=\"{ listFormId: locals.FORMS.Unterlage, \n              disableNew: true, \n              filterFields: 'data.vorname,data.nachname,data.bewerbungseingangsdatum,data.geplanterEinstellungstermin,data.bewerberpool', \n              sortFields: 'data.vorname,data.nachname,data.bewerbungseingangsdatum,data.geplanterEinstellungstermin,data.bewerberpool', \n              initialSort: 'data.nachname' \n      }\"\n      @sort=\"locals.sort = $event\"\n      @filter=\"locals.filter = $event\"\n    ></ae-design>\n    <ae-list  v-if=\"params.tab === 'active'\"\n              list-id=\"a23ea6b1-92ed-4ebc-bd3f-cb4eb1ae6ee7\"\n              class=\"w-full flex-1\"\n              :documents=\"locals.current\"\n              :params=\"{ columns: 'data.vorname,data.nachname,data.position,data.bewerbungseingangsdatum,', designs: ',,,,number-comments-and-commenter,', headers: ',,,,Kommentare' }\"\n              :search-options=\"{ searchAllFields: true }\"\n              :param-list-form-id=\"locals.FORMS.Unterlage\"\n                    :sort=\"locals.sort\"\n      :filter=\"locals.filter\"\n            @selected=\"Aeppic.drillInto($event, arguments[1])\"\n\n    ></ae-list> \n    <ae-list  v-else-if=\"params.tab === 'closed'\"\n          list-id=\"a23ea6b1-92ed-4ebc-bd3f-cb4eb1ae6ee7\"\n          class=\"w-full flex-1\"\n          :documents=\"locals.closed\"\n          :params=\"{ columns: 'data.vorname,data.nachname,data.position,data.bewerbungseingangsdatum,', designs: ',,,,number-comments-and-commenter,', headers: ',,,,Kommentare' }\"\n          :search-options=\"{ searchAllFields: true }\"\n          :param-list-form-id=\"locals.FORMS.Unterlage\"\n                :sort=\"locals.sort\"\n      :filter=\"locals.filter\"\n            @selected=\"Aeppic.drillInto($event, arguments[1])\"\n\n    ></ae-list> \n    <ae-list  v-else-if=\"params.tab === 'pool'\"\n          list-id=\"a23ea6b1-92ed-4ebc-bd3f-cb4eb1ae6ee7\"\n          class=\"w-full flex-1\"\n          :documents=\"locals.pool\"\n          :params=\"{ columns: 'data.vorname,data.nachname,data.position,data.bewerbungseingangsdatum,', designs: ',,,,number-comments-and-commenter,', headers: ',,,,Kommentare' }\"\n          :search-options=\"{ searchAllFields: true }\"\n          :param-list-form-id=\"locals.FORMS.Unterlage\"\n                :sort=\"locals.sort\"\n      :filter=\"locals.filter\"\n            @selected=\"Aeppic.drillInto($event, arguments[1])\"\n\n    ></ae-list> \n  </section>\n</div>  "},"f":{"id":"design-form","text":"Design","v":"c2d9ae57c7a46896"},"id":"bd634eb0-3fc1-42fc-9a50-573c2756a016","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-08-04T12:49:03+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"3edb2f2a-e31c-4658-943e-790fe4acc6e7","text":"rd:page-inner","v":"556397eda697a004"},"p":"ebb00fab-fe96-4562-a7cd-1fac9a420d50","previous":{"v":"126e748a98574ec6"},"stamps":[],"t":1754311743355,"v":"689d11658bb205e4"},{"a":["apps","0924db0f-7095-4b51-8966-bad1e45d68ec","a3b935e7-60bc-4996-9b18-668e4361067f","54da686f-3f74-441b-b686-ed2b71dd35cc"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2023-03-03T15:27:26+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1677857246508,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.view = {}\n    locals.pdf = null\n\n    await this.updatePdfToDisplay(document)\n\n    Aeppic.watch(document.id, doc => this.updatePdfToDisplay(doc))\n  }\n\n  async updatePdfToDisplay(doc) {\n    if (data.erstellt) {\n      locals.pdf = await Aeppic.get(doc.data.pdf)\n    } else {\n      locals.pdf = await Aeppic.get(doc.data.pdfPreview)\n    }\n  }\n}\n\n","css":"","description":"","name":"rd:page-inner","packages":[],"template":"<div class=\"flex gap-4 h-full overflow-hidden\">\n  <ae-form  v-if=\"params.windowWidth > 1280 || params.tab === 'invoice'\"\n            :document=\"document\" \n            :view=\"locals.view\"\n            :auto-save=\"true\"\n            layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\"\n            class=\"py-0 lg:pt-2 lg:pb-10 flex-1 h-full overflow-auto basis-2/3 pr-2\" \n            :readonly=\"params.readonly\"\n  ></ae-form>\n\n  <div v-if=\"params.windowWidth > 1280 || params.tab === 'pdf'\"\n       class=\"h-full w-full  border-l bg-white overflow-hidden flex flex-col\"\n  >\n    <ae-layout v-if=\"locals.pdf\"\n                layout-id=\"0e40bb7a-7f76-425a-8b07-3dbb6208d277\"\n                :param-page-document=\"locals.pdf\"\n                class=\"h-full\"\n                :param-page-params=\"{ useBuiltinViewer: true, windowWidth: params.windowWidth, disableComments: true, disableDelete: true, readonly: true }\"\n                :param-window-width=\"params.windowWidth\"\n    ></ae-layout> \n    <!-- <div class=\" flex class flex flex-col  h-full\">\n      <section v-if=\"data.erstellt\" class=\"flex-1 flex flex-col\">\n        <div class=\"p-4 py-2 bg-fuchsia-100  flex justify-between items-baseline\">\n          <div class=\"text-lg text-fuchsia-900\">\n          PDF\n          </div>\n          <div class=\"flex gap-1\">\n          <ae-design name=\"rd:download-and-print-buttons\" :document-id=\"data.pdf[0]?.id\"></ae-design>\n\n          <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n                     param-icon=\"far fa-expand-arrows\"\n                     @selected=\"Aeppic.drillInto(data.pdfPreview)\"\n          ></ae-layout> \n          </div>\n        </div>\n        <div v-if=\"!data.pdf.length\" class=\"flex items-center gap-2 max-w-md m-auto\">\n          <ae-icon class=\"far fa-file-times text-6xl\"></ae-icon>\n          <div>\n            Wir benötigten noch weitere Daten um die Rechnungs-PDF erstellen können.\n          </div>\n        </div>\n        <ae-design v-else name=\"rd:page-inner\" :document-id=\"data.pdf[0]?.id\"\n                class=\"flex-1\"\n        ></ae-design>\n      </section>\n      <section v-else class=\"flex-1 flex flex-col\">\n        <div class=\"p-4 py-2 bg-fuchsia-100  flex justify-between items-baseline\">\n          <div class=\"text-lg text-fuchsia-900\">\n          PDF\n          </div>\n          <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n                     param-icon=\"far fa-expand-arrows\"\n                     @selected=\"Aeppic.drillInto(data.pdfPreview)\"\n          ></ae-layout>\n        </div>       \n        <ae-design v-if=\"data.pdfPreview.id\" name=\"rd:page\" \n        :document-id=\"data.pdfPreview.id\"\n        class=\"flex-1\"\n        ></ae-design>\n        <div v-else class=\"flex items-center gap-2 max-w-md m-auto\">\n          <ae-icon class=\"far fa-file-times text-6xl\"></ae-icon>\n          <div>\n            Wir benötigten noch weitere Daten um die Rechnungs-PDF erstellen können.\n          </div>\n        </div>\n      </section>\n    </div> -->\n  </div>\n</div>  \n"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"bf634ee9-8a22-45ad-a3ae-93150e989285","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-02-10T11:27:24+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"p":"54da686f-3f74-441b-b686-ed2b71dd35cc","previous":{"v":"67b435aab0eebe7f"},"stamps":[],"t":1770722844880,"v":"c64edc68edd0af11"},{"id":"c50654ba-61bc-4ee7-aa03-1580f6f7ae08","v":"05c12dd7b94312ea","previous":{"v":"initial"},"p":"3fe5922a-6eea-4918-a465-2c3b8b038338","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-inner","template":"<ae-design name=\"rd:page-list\" :document=\"document\"></ae-design>\n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-04-04T14:57:31+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-04-04T14:57:38+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1712242658449,"ct":1712242651834,"a_depth":4,"a":["apps","0924db0f-7095-4b51-8966-bad1e45d68ec","a3b935e7-60bc-4996-9b18-668e4361067f","3fe5922a-6eea-4918-a465-2c3b8b038338"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","deccf007-d235-43f7-83d4-28db0e01db02"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2026-03-27T09:53:30+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"ct":1774605210137,"data":{"aliases":[],"controller":"class Controller {\n  init() {\n    this.FORMS = {\n      Wartungsdurchfuehrung: '1b166603-d0f3-4f16-98c4-0534afbd6f5a',\n    }\n\n    locals.search = `a:${document.id} f.id:${this.FORMS.Wartungsdurchfuehrung}`\n  }\n}\n","css":"","description":"","name":"rd:page-inner","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<div class=\"size-full flex flex-col gap-4\">\n  <ae-form layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\" :document=\"document\" :auto-save=\"true\" :auto-save-after=\"1000\"></ae-form>\n  \n  <ae-design\n  name=\"rd:page-list\"\n  :document=\"document\"\n  :params=\"{ \n    ...params, initialSort: 'modified.at',\n    sortFields: 'modified.at,created.at,data.status,data.team,data.type,data.released,data.object', \n    filterFields: 'modified.at,created.at,data.status,data.team,data.type,data.released,data.maintenancePlan,data.location,data.object,data.acknowledgedBy,data.acknowledgedAt',\n    designParams: { hideIcon: true },\n    search: locals.search\n  }\"\n  ></ae-design> \n</div>"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"c64e6679-53e0-4533-a649-00005c0cbc74","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-03-27T11:51:08+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"p":"deccf007-d235-43f7-83d4-28db0e01db02","previous":{"v":"df47bf4d27a34079"},"stamps":[],"t":1774612268029,"v":"a6391f5db8c44a8e"},{"id":"c681a692-de36-4559-9dc7-037fe4a9ad3f","v":"f5aa3d0166e3ad98","cloneOf":{"id":"0f478706-2101-4627-ba2a-2061e9fe6c73","v":"3d9aefbab0d5e536","text":"rd:page-inner"},"originalCloneOf":{"id":"0f478706-2101-4627-ba2a-2061e9fe6c73","v":"3d9aefbab0d5e536","text":"rd:page-inner"},"previous":{"v":"0fe1fd3eda002283"},"p":"a37b2d75-d9d3-495a-a31c-52094d82e7bb","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"rd:page-inner","template":"\n<div class=\"flex flex-col h-full relative\" @toolbar=\"controller.onToolbar($event)\">\n  <ae-control\n    class=\"flex-1\"\n    v-if=\"document.data.generated.dataUrl\"\n    @toolbar.native=\"controller.toolbarEvent($event.detail)\"\n    ref=\"viewer\"\n    :key=\"document.id + document.v\"\n    :document=\"document\"\n    :form=\"form\"\n    field-name=\"generated\"\n    name=\"file-viewer\"\n    :style=\"{ cursor: locals.zoom ? 'zoom-out' : 'zoom-in' }\"\n    :param-zoom=\"locals.zoom\"\n    @click.native=\"locals.zoom = !locals.zoom\"\n    :param-use-builtin-viewer=\"params.useBuiltinViewer\"\n  ></ae-control>\n  <ae-control\n    class=\"flex-1\"\n    v-else-if=\"document.data.template.dataUrl\"\n    @toolbar.native=\"controller.toolbarEvent($event.detail)\"\n    ref=\"viewer\"\n    :key=\"document.id + document.v\"\n    :document=\"document\"\n    :form=\"form\"\n    field-name=\"template\"\n    name=\"file-viewer\"\n    :style=\"{ cursor: locals.zoom ? 'zoom-out' : 'zoom-in' }\"\n    :param-zoom=\"locals.zoom\"\n    @click.native=\"locals.zoom = !locals.zoom\"\n    :param-use-builtin-viewer=\"params.useBuiltinViewer\"\n  ></ae-control>\n  <div v-else class=\"flex-1 flex justify-center items-center\">\n    <ae-form  \n              layout-id=\"4315cb45-89a9-46cf-aa17-336eb1a19a61\"\n              :document=\"document\"\n              :auto-save=\"true\"\n              :view=\"{ only: { fields: ['template'] }}\"\n              :readonly=\"params.readonly\"\n    ></ae-form>\n  </div>\n\n  <ae-design class=\"absolute top-0 bottom-0 right-0\" v-if=\"locals.showDetails\" name=\"rd:details\" :document=\"document\"></ae-design>\n</div>\n","css":"","controller":"class Controller {\n  init() {\n    locals.showDetails = false\n    locals.zoom = false\n  }\n\n  onToolbar(event) {\n    const type = event.detail\n\n    if (type === 'show-details') {\n      locals.showDetails = !locals.showDetails\n    }\n\n    if (type === 'print') {\n      $refs.viewer.$emit('print')\n    } \n  }\n}\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-04-26T12:32:48+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-05-13T13:48:30+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":"5d3d91ef-8d41-441d-9b44-5fe9feb0e206","impersonatedBy":null,"from":"","client":"server"},"t":1715608110177,"ct":1714134768387,"a_depth":4,"a":["apps","fb62ad28-07b0-4a99-91bd-43c297656f12","4e988078-8eed-4c34-9cc2-9b6c3e2cdb2a","a37b2d75-d9d3-495a-a31c-52094d82e7bb"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","9d6ee173-26fe-4472-a271-7667f717094e","6743ef9a-c21b-443f-91b8-4dd86886ee8c","c6337671-7c10-4017-922c-4945b266c615"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2025-02-14T15:09:24+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1739545764560,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:page-inner","packages":[],"template":"<ae-design name=\"rd:billing\" :document-id=\"document.p\" :params=\"params\" v-on=\"$listeners\"\nclass=\"w-full h-full\"></ae-design>"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"c74348c9-8452-4055-8847-969040d716e0","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-02-14T15:11:35+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"c6337671-7c10-4017-922c-4945b266c615","previous":{"v":"d1b562dc57d03dde"},"stamps":[],"t":1739545895444,"v":"c341d8b4970d97a9"},{"id":"c81dac98-04c7-4b7c-8eb9-91b18109b360","v":"af85572381810d66","previous":{"v":"initial"},"p":"b8c15921-2825-48d6-951c-e7fce7133ab5","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-inner","template":"<ae-design name=\"rd:page-list\" :document=\"document\" class=\"h-full\" :params=\"params\"></ae-design> ","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-11-24T13:10:14+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-11-24T13:10:44+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1700831444009,"ct":1700831414788,"a_depth":4,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","b8c15921-2825-48d6-951c-e7fce7133ab5"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","1e3214b4-b81e-4ac2-a788-c2051af016ab"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"499946b6-ffd1-4a58-8f71-9614bfca4670","text":"rd:page-inner","v":"initial"},"created":{"at":"2026-02-04T12:35:40+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"ct":1770208540846,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:page-inner","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<ae-design \n  class=\"size-full\"\n  name=\"rd:page-inner_tabs\" \n  :document=\"document\"\n  :params=\"params\"\n></ae-design>"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"c8f583a2-d3ca-4956-af29-4c13eb9806e0","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-02-04T12:35:40+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"499946b6-ffd1-4a58-8f71-9614bfca4670","text":"rd:page-inner","v":"initial"},"p":"1e3214b4-b81e-4ac2-a788-c2051af016ab","stamps":[],"t":1770208540846,"v":"initial"},{"id":"c8f96671-f19c-4e0a-b5d9-a7842ae6ae34","v":"0b8f999ed2c9ccc0","cloneOf":{"id":"92e16b6c-9935-4cd3-9ad7-435aeed68e2f","v":"01f6805311e6c5b9","text":"page"},"originalCloneOf":{"id":"92e16b6c-9935-4cd3-9ad7-435aeed68e2f","v":"01f6805311e6c5b9","text":"page"},"previous":{"v":"initial"},"p":"page-form","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-inner","template":"<div class=\"_CSS-content\" v-html=\"Aeppic.Parser.markdown(data.content)\"></div>\n\n<!-- <ae-control name=\"markdown\" field-name=\"content\" :document=\"document\" :readonly=\"true\"></ae-control> -->","css":"@font-face {\r\n  font-family: octicons-link;\r\n  src: url(data:font/woff;charset=utf-8;base64,d09GRgABAAAAAAZwABAAAAAACFQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEU0lHAAAGaAAAAAgAAAAIAAAAAUdTVUIAAAZcAAAACgAAAAoAAQAAT1MvMgAAAyQAAABJAAAAYFYEU3RjbWFwAAADcAAAAEUAAACAAJThvmN2dCAAAATkAAAABAAAAAQAAAAAZnBnbQAAA7gAAACyAAABCUM+8IhnYXNwAAAGTAAAABAAAAAQABoAI2dseWYAAAFsAAABPAAAAZwcEq9taGVhZAAAAsgAAAA0AAAANgh4a91oaGVhAAADCAAAABoAAAAkCA8DRGhtdHgAAAL8AAAADAAAAAwGAACfbG9jYQAAAsAAAAAIAAAACABiATBtYXhwAAACqAAAABgAAAAgAA8ASm5hbWUAAAToAAABQgAAAlXu73sOcG9zdAAABiwAAAAeAAAAME3QpOBwcmVwAAAEbAAAAHYAAAB/aFGpk3jaTY6xa8JAGMW/O62BDi0tJLYQincXEypYIiGJjSgHniQ6umTsUEyLm5BV6NDBP8Tpts6F0v+k/0an2i+itHDw3v2+9+DBKTzsJNnWJNTgHEy4BgG3EMI9DCEDOGEXzDADU5hBKMIgNPZqoD3SilVaXZCER3/I7AtxEJLtzzuZfI+VVkprxTlXShWKb3TBecG11rwoNlmmn1P2WYcJczl32etSpKnziC7lQyWe1smVPy/Lt7Kc+0vWY/gAgIIEqAN9we0pwKXreiMasxvabDQMM4riO+qxM2ogwDGOZTXxwxDiycQIcoYFBLj5K3EIaSctAq2kTYiw+ymhce7vwM9jSqO8JyVd5RH9gyTt2+J/yUmYlIR0s04n6+7Vm1ozezUeLEaUjhaDSuXHwVRgvLJn1tQ7xiuVv/ocTRF42mNgZGBgYGbwZOBiAAFGJBIMAAizAFoAAABiAGIAznjaY2BkYGAA4in8zwXi+W2+MjCzMIDApSwvXzC97Z4Ig8N/BxYGZgcgl52BCSQKAA3jCV8CAABfAAAAAAQAAEB42mNgZGBg4f3vACQZQABIMjKgAmYAKEgBXgAAeNpjYGY6wTiBgZWBg2kmUxoDA4MPhGZMYzBi1AHygVLYQUCaawqDA4PChxhmh/8ODDEsvAwHgMKMIDnGL0x7gJQCAwMAJd4MFwAAAHjaY2BgYGaA4DAGRgYQkAHyGMF8NgYrIM3JIAGVYYDT+AEjAwuDFpBmA9KMDEwMCh9i/v8H8sH0/4dQc1iAmAkALaUKLgAAAHjaTY9LDsIgEIbtgqHUPpDi3gPoBVyRTmTddOmqTXThEXqrob2gQ1FjwpDvfwCBdmdXC5AVKFu3e5MfNFJ29KTQT48Ob9/lqYwOGZxeUelN2U2R6+cArgtCJpauW7UQBqnFkUsjAY/kOU1cP+DAgvxwn1chZDwUbd6CFimGXwzwF6tPbFIcjEl+vvmM/byA48e6tWrKArm4ZJlCbdsrxksL1AwWn/yBSJKpYbq8AXaaTb8AAHja28jAwOC00ZrBeQNDQOWO//sdBBgYGRiYWYAEELEwMTE4uzo5Zzo5b2BxdnFOcALxNjA6b2ByTswC8jYwg0VlNuoCTWAMqNzMzsoK1rEhNqByEyerg5PMJlYuVueETKcd/89uBpnpvIEVomeHLoMsAAe1Id4AAAAAAAB42oWQT07CQBTGv0JBhagk7HQzKxca2sJCE1hDt4QF+9JOS0nbaaYDCQfwCJ7Au3AHj+LO13FMmm6cl7785vven0kBjHCBhfpYuNa5Ph1c0e2Xu3jEvWG7UdPDLZ4N92nOm+EBXuAbHmIMSRMs+4aUEd4Nd3CHD8NdvOLTsA2GL8M9PODbcL+hD7C1xoaHeLJSEao0FEW14ckxC+TU8TxvsY6X0eLPmRhry2WVioLpkrbp84LLQPGI7c6sOiUzpWIWS5GzlSgUzzLBSikOPFTOXqly7rqx0Z1Q5BAIoZBSFihQYQOOBEdkCOgXTOHA07HAGjGWiIjaPZNW13/+lm6S9FT7rLHFJ6fQbkATOG1j2OFMucKJJsxIVfQORl+9Jyda6Sl1dUYhSCm1dyClfoeDve4qMYdLEbfqHf3O/AdDumsjAAB42mNgYoAAZQYjBmyAGYQZmdhL8zLdDEydARfoAqIAAAABAAMABwAKABMAB///AA8AAQAAAAAAAAAAAAAAAAABAAAAAA==) format('woff');\r\n}\r\n\r\n._CSS {\r\n  -ms-text-size-adjust: 100%;\r\n  -webkit-text-size-adjust: 100%;\r\n  color: #24292e;\r\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\r\n  font-size: 16px;\r\n  line-height: 1.5;\r\n  word-wrap: break-word;\r\n  padding:16px;\r\n}\r\n\r\n._CSS-content {\r\n  padding:15px;\r\n  background: var(--ae-ui-background);\r\n  border: var(--ae-border-width) solid var(--ae-border-color);\r\n  border-radius: var(--ae-border-radius);\r\n}\r\n\r\n._CSS .pl-c {\r\n  color: #6a737d;\r\n}\r\n\r\n._CSS .pl-c1,\r\n._CSS .pl-s .pl-v {\r\n  color: #005cc5;\r\n}\r\n\r\n._CSS .pl-e,\r\n._CSS .pl-en {\r\n  color: #6f42c1;\r\n}\r\n\r\n._CSS .pl-smi,\r\n._CSS .pl-s .pl-s1 {\r\n  color: #24292e;\r\n}\r\n\r\n._CSS .pl-ent {\r\n  color: #22863a;\r\n}\r\n\r\n._CSS .pl-k {\r\n  color: #d73a49;\r\n}\r\n\r\n._CSS .pl-s,\r\n._CSS .pl-pds,\r\n._CSS .pl-s .pl-pse .pl-s1,\r\n._CSS .pl-sr,\r\n._CSS .pl-sr .pl-cce,\r\n._CSS .pl-sr .pl-sre,\r\n._CSS .pl-sr .pl-sra {\r\n  color: #032f62;\r\n}\r\n\r\n._CSS .pl-v,\r\n._CSS .pl-smw {\r\n  color: #e36209;\r\n}\r\n\r\n._CSS .pl-bu {\r\n  color: #b31d28;\r\n}\r\n\r\n._CSS .pl-ii {\r\n  color: #fafbfc;\r\n  background-color: #b31d28;\r\n}\r\n\r\n._CSS .pl-c2 {\r\n  color: #fafbfc;\r\n  background-color: #d73a49;\r\n}\r\n\r\n._CSS .pl-c2::before {\r\n  content: \"^M\";\r\n}\r\n\r\n._CSS .pl-sr .pl-cce {\r\n  font-weight: bold;\r\n  color: #22863a;\r\n}\r\n\r\n._CSS .pl-ml {\r\n  color: #735c0f;\r\n}\r\n\r\n._CSS .pl-mh,\r\n._CSS .pl-mh .pl-en,\r\n._CSS .pl-ms {\r\n  font-weight: bold;\r\n  color: #005cc5;\r\n}\r\n\r\n._CSS .pl-mi {\r\n  font-style: italic;\r\n  color: #24292e;\r\n}\r\n\r\n._CSS .pl-mb {\r\n  font-weight: bold;\r\n  color: #24292e;\r\n}\r\n\r\n._CSS .pl-md {\r\n  color: #b31d28;\r\n  background-color: #ffeef0;\r\n}\r\n\r\n._CSS .pl-mi1 {\r\n  color: #22863a;\r\n  background-color: #f0fff4;\r\n}\r\n\r\n._CSS .pl-mc {\r\n  color: #e36209;\r\n  background-color: #ffebda;\r\n}\r\n\r\n._CSS .pl-mi2 {\r\n  color: #f6f8fa;\r\n  background-color: #005cc5;\r\n}\r\n\r\n._CSS .pl-mdr {\r\n  font-weight: bold;\r\n  color: #6f42c1;\r\n}\r\n\r\n._CSS .pl-ba {\r\n  color: #586069;\r\n}\r\n\r\n._CSS .pl-sg {\r\n  color: #959da5;\r\n}\r\n\r\n._CSS .pl-corl {\r\n  text-decoration: underline;\r\n  color: #032f62;\r\n}\r\n\r\n._CSS .octicon {\r\n  display: inline-block;\r\n  vertical-align: text-top;\r\n  fill: currentColor;\r\n}\r\n\r\n._CSS a {\r\n  background-color: transparent;\r\n}\r\n\r\n._CSS a:active,\r\n._CSS a:hover {\r\n  outline-width: 0;\r\n}\r\n\r\n._CSS strong {\r\n  font-weight: inherit;\r\n}\r\n\r\n._CSS strong {\r\n  font-weight: bolder;\r\n}\r\n\r\n._CSS h1 {\r\n  font-size: 2em;\r\n  margin: 0.67em 0;\r\n}\r\n\r\n._CSS img {\r\n  border-style: none;\r\n}\r\n\r\n._CSS code,\r\n._CSS kbd,\r\n._CSS pre {\r\n  font-family: monospace, monospace;\r\n  font-size: 1em;\r\n}\r\n\r\n._CSS hr {\r\n  box-sizing: content-box;\r\n  height: 0;\r\n  overflow: visible;\r\n}\r\n\r\n._CSS input {\r\n  font: inherit;\r\n  margin: 0;\r\n}\r\n\r\n._CSS input {\r\n  overflow: visible;\r\n}\r\n\r\n._CSS [type=\"checkbox\"] {\r\n  box-sizing: border-box;\r\n  padding: 0;\r\n}\r\n\r\n._CSS * {\r\n  box-sizing: border-box;\r\n}\r\n\r\n._CSS input {\r\n  font-family: inherit;\r\n  font-size: inherit;\r\n  line-height: inherit;\r\n}\r\n\r\n._CSS a {\r\n  color: #0366d6;\r\n  text-decoration: none;\r\n}\r\n\r\n._CSS a:hover {\r\n  text-decoration: underline;\r\n}\r\n\r\n._CSS strong {\r\n  font-weight: 600;\r\n}\r\n\r\n._CSS hr {\r\n  height: 0;\r\n  margin: 15px 0;\r\n  overflow: hidden;\r\n  background: transparent;\r\n  border: 0;\r\n  border-bottom: 1px solid #dfe2e5;\r\n}\r\n\r\n._CSS hr::before {\r\n  display: table;\r\n  content: \"\";\r\n}\r\n\r\n._CSS hr::after {\r\n  display: table;\r\n  clear: both;\r\n  content: \"\";\r\n}\r\n\r\n._CSS table {\r\n  border-spacing: 0;\r\n  border-collapse: collapse;\r\n}\r\n\r\n._CSS td,\r\n._CSS th {\r\n  padding: 0;\r\n}\r\n\r\n._CSS h1,\r\n._CSS h2,\r\n._CSS h3,\r\n._CSS h4,\r\n._CSS h5,\r\n._CSS h6 {\r\n  margin-top: 0;\r\n  margin-bottom: 0;\r\n}\r\n\r\n._CSS h1 {\r\n  font-size: 32px;\r\n  font-weight: 600;\r\n}\r\n\r\n._CSS h2 {\r\n  font-size: 24px;\r\n  font-weight: 600;\r\n}\r\n\r\n._CSS h3 {\r\n  font-size: 20px;\r\n  font-weight: 600;\r\n}\r\n\r\n._CSS h4 {\r\n  font-size: 16px;\r\n  font-weight: 600;\r\n}\r\n\r\n._CSS h5 {\r\n  font-size: 14px;\r\n  font-weight: 600;\r\n}\r\n\r\n._CSS h6 {\r\n  font-size: 12px;\r\n  font-weight: 600;\r\n}\r\n\r\n._CSS p {\r\n  margin-top: 0;\r\n  margin-bottom: 10px;\r\n}\r\n\r\n._CSS blockquote {\r\n  margin: 0;\r\n}\r\n\r\n._CSS ul,\r\n._CSS ol {\r\n  padding-left: 0;\r\n  margin-top: 0;\r\n  margin-bottom: 0;\r\n}\r\n\r\n._CSS ol ol,\r\n._CSS ul ol {\r\n  list-style-type: lower-roman;\r\n}\r\n\r\n._CSS ul ul ol,\r\n._CSS ul ol ol,\r\n._CSS ol ul ol,\r\n._CSS ol ol ol {\r\n  list-style-type: lower-alpha;\r\n}\r\n\r\n._CSS dd {\r\n  margin-left: 0;\r\n}\r\n\r\n._CSS code {\r\n  font-family: \"SFMono-Regular\", Consolas, \"Liberation Mono\", Menlo, Courier, monospace;\r\n  font-size: 12px;\r\n}\r\n\r\n._CSS pre {\r\n  margin-top: 0;\r\n  margin-bottom: 0;\r\n  font-family: \"SFMono-Regular\", Consolas, \"Liberation Mono\", Menlo, Courier, monospace;\r\n  font-size: 12px;\r\n}\r\n\r\n._CSS .octicon {\r\n  vertical-align: text-bottom;\r\n}\r\n\r\n._CSS .pl-0 {\r\n  padding-left: 0 !important;\r\n}\r\n\r\n._CSS .pl-1 {\r\n  padding-left: 4px !important;\r\n}\r\n\r\n._CSS .pl-2 {\r\n  padding-left: 8px !important;\r\n}\r\n\r\n._CSS .pl-3 {\r\n  padding-left: 16px !important;\r\n}\r\n\r\n._CSS .pl-4 {\r\n  padding-left: 24px !important;\r\n}\r\n\r\n._CSS .pl-5 {\r\n  padding-left: 32px !important;\r\n}\r\n\r\n._CSS .pl-6 {\r\n  padding-left: 40px !important;\r\n}\r\n\r\n._CSS::before {\r\n  display: table;\r\n  content: \"\";\r\n}\r\n\r\n._CSS::after {\r\n  display: table;\r\n  clear: both;\r\n  content: \"\";\r\n}\r\n\r\n._CSS>*:first-child {\r\n  margin-top: 0 !important;\r\n}\r\n\r\n._CSS>*:last-child {\r\n  margin-bottom: 0 !important;\r\n}\r\n\r\n._CSS a:not([href]) {\r\n  color: inherit;\r\n  text-decoration: none;\r\n}\r\n\r\n._CSS .anchor {\r\n  float: left;\r\n  padding-right: 4px;\r\n  margin-left: -20px;\r\n  line-height: 1;\r\n}\r\n\r\n._CSS .anchor:focus {\r\n  outline: none;\r\n}\r\n\r\n._CSS p,\r\n._CSS blockquote,\r\n._CSS ul,\r\n._CSS ol,\r\n._CSS dl,\r\n._CSS table,\r\n._CSS pre {\r\n  margin-top: 0;\r\n  margin-bottom: 16px;\r\n}\r\n\r\n._CSS hr {\r\n  height: 0.25em;\r\n  padding: 0;\r\n  margin: 24px 0;\r\n  background-color: #e1e4e8;\r\n  border: 0;\r\n}\r\n\r\n._CSS blockquote {\r\n  padding: 0 1em;\r\n  color: #6a737d;\r\n  border-left: 0.25em solid #dfe2e5;\r\n}\r\n\r\n._CSS blockquote>:first-child {\r\n  margin-top: 0;\r\n}\r\n\r\n._CSS blockquote>:last-child {\r\n  margin-bottom: 0;\r\n}\r\n\r\n._CSS kbd {\r\n  display: inline-block;\r\n  padding: 3px 5px;\r\n  font-size: 11px;\r\n  line-height: 10px;\r\n  color: #444d56;\r\n  vertical-align: middle;\r\n  background-color: #fafbfc;\r\n  border: solid 1px #c6cbd1;\r\n  border-bottom-color: #959da5;\r\n  border-radius: 3px;\r\n  box-shadow: inset 0 -1px 0 #959da5;\r\n}\r\n\r\n._CSS h1,\r\n._CSS h2,\r\n._CSS h3,\r\n._CSS h4,\r\n._CSS h5,\r\n._CSS h6 {\r\n  margin-top: 24px;\r\n  margin-bottom: 16px;\r\n  font-weight: 600;\r\n  line-height: 1.25;\r\n}\r\n\r\n._CSS h1 .octicon-link,\r\n._CSS h2 .octicon-link,\r\n._CSS h3 .octicon-link,\r\n._CSS h4 .octicon-link,\r\n._CSS h5 .octicon-link,\r\n._CSS h6 .octicon-link {\r\n  color: #1b1f23;\r\n  vertical-align: middle;\r\n  visibility: hidden;\r\n}\r\n\r\n._CSS h1:hover .anchor,\r\n._CSS h2:hover .anchor,\r\n._CSS h3:hover .anchor,\r\n._CSS h4:hover .anchor,\r\n._CSS h5:hover .anchor,\r\n._CSS h6:hover .anchor {\r\n  text-decoration: none;\r\n}\r\n\r\n._CSS h1:hover .anchor .octicon-link,\r\n._CSS h2:hover .anchor .octicon-link,\r\n._CSS h3:hover .anchor .octicon-link,\r\n._CSS h4:hover .anchor .octicon-link,\r\n._CSS h5:hover .anchor .octicon-link,\r\n._CSS h6:hover .anchor .octicon-link {\r\n  visibility: visible;\r\n}\r\n\r\n._CSS h1 {\r\n  padding-bottom: 0.3em;\r\n  font-size: 2em;\r\n  border-bottom: 1px solid #eaecef;\r\n}\r\n\r\n._CSS h2 {\r\n  padding-bottom: 0.3em;\r\n  font-size: 1.5em;\r\n  border-bottom: 1px solid #eaecef;\r\n}\r\n\r\n._CSS h3 {\r\n  font-size: 1.25em;\r\n}\r\n\r\n._CSS h4 {\r\n  font-size: 1em;\r\n}\r\n\r\n._CSS h5 {\r\n  font-size: 0.875em;\r\n}\r\n\r\n._CSS h6 {\r\n  font-size: 0.85em;\r\n  color: #6a737d;\r\n}\r\n\r\n._CSS ul,\r\n._CSS ol {\r\n  padding-left: 2em;\r\n}\r\n\r\n._CSS ul ul,\r\n._CSS ul ol,\r\n._CSS ol ol,\r\n._CSS ol ul {\r\n  margin-top: 0;\r\n  margin-bottom: 0;\r\n}\r\n\r\n._CSS li {\r\n  word-wrap: break-all;\r\n}\r\n\r\n._CSS li>p {\r\n  margin-top: 16px;\r\n}\r\n\r\n._CSS li+li {\r\n  margin-top: 0.25em;\r\n}\r\n\r\n._CSS dl {\r\n  padding: 0;\r\n}\r\n\r\n._CSS dl dt {\r\n  padding: 0;\r\n  margin-top: 16px;\r\n  font-size: 1em;\r\n  font-style: italic;\r\n  font-weight: 600;\r\n}\r\n\r\n._CSS dl dd {\r\n  padding: 0 16px;\r\n  margin-bottom: 16px;\r\n}\r\n\r\n._CSS table {\r\n  display: block;\r\n  width: 100%;\r\n  overflow: auto;\r\n}\r\n\r\n._CSS table th {\r\n  font-weight: 600;\r\n}\r\n\r\n._CSS table th,\r\n._CSS table td {\r\n  padding: 6px 13px;\r\n  border: 1px solid #dfe2e5;\r\n}\r\n\r\n._CSS table tr {\r\n  background-color: #fff;\r\n  border-top: 1px solid #c6cbd1;\r\n}\r\n\r\n._CSS table tr:nth-child(2n) {\r\n  background-color: #f6f8fa;\r\n}\r\n\r\n._CSS img {\r\n  max-width: 100%;\r\n  box-sizing: content-box;\r\n  background-color: #fff;\r\n}\r\n\r\n._CSS img[align=right] {\r\n  padding-left: 20px;\r\n}\r\n\r\n._CSS img[align=left] {\r\n  padding-right: 20px;\r\n}\r\n\r\n._CSS code {\r\n  padding: 0.2em 0.4em;\r\n  margin: 0;\r\n  font-size: 85%;\r\n  background-color: rgba(27,31,35,0.05);\r\n  border-radius: 3px;\r\n}\r\n\r\n._CSS pre {\r\n  word-wrap: normal;\r\n}\r\n\r\n._CSS pre>code {\r\n  padding: 0;\r\n  margin: 0;\r\n  font-size: 100%;\r\n  word-break: normal;\r\n  white-space: pre;\r\n  background: transparent;\r\n  border: 0;\r\n}\r\n\r\n._CSS .highlight {\r\n  margin-bottom: 16px;\r\n}\r\n\r\n._CSS .highlight pre {\r\n  margin-bottom: 0;\r\n  word-break: normal;\r\n}\r\n\r\n._CSS .highlight pre,\r\n._CSS pre {\r\n  padding: 16px;\r\n  overflow: auto;\r\n  font-size: 85%;\r\n  line-height: 1.45;\r\n  background-color: var(--ae-background-200);\r\n  border-radius: 3px;\r\n}\r\n\r\n._CSS pre code {\r\n  display: inline;\r\n  max-width: auto;\r\n  padding: 0;\r\n  margin: 0;\r\n  overflow: visible;\r\n  line-height: inherit;\r\n  word-wrap: normal;\r\n  background-color: transparent;\r\n  border: 0;\r\n}\r\n\r\n._CSS .full-commit .btn-outline:not(:disabled):hover {\r\n  color: #005cc5;\r\n  border-color: #005cc5;\r\n}\r\n\r\n._CSS kbd {\r\n  display: inline-block;\r\n  padding: 3px 5px;\r\n  font: 11px \"SFMono-Regular\", Consolas, \"Liberation Mono\", Menlo, Courier, monospace;\r\n  line-height: 10px;\r\n  color: #444d56;\r\n  vertical-align: middle;\r\n  background-color: #fafbfc;\r\n  border: solid 1px #d1d5da;\r\n  border-bottom-color: #c6cbd1;\r\n  border-radius: 3px;\r\n  box-shadow: inset 0 -1px 0 #c6cbd1;\r\n}\r\n\r\n._CSS :checked+.radio-label {\r\n  position: relative;\r\n  z-index: 1;\r\n  border-color: #0366d6;\r\n}\r\n\r\n._CSS .task-list-item {\r\n  list-style-type: none;\r\n}\r\n\r\n._CSS .task-list-item+.task-list-item {\r\n  margin-top: 3px;\r\n}\r\n\r\n._CSS .task-list-item input {\r\n  margin: 0 0.2em 0.25em -1.6em;\r\n  vertical-align: middle;\r\n}\r\n\r\n._CSS hr {\r\n  border-bottom-color: #eee;\r\n}","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2026-08-07T13:10:19+00:00","by":"b7485498-f1f3-4ab1-87d1-9cb63ea890c8","backedBy":"","impersonatedBy":"","from":"","client":"server"},"modified":{"at":"2026-08-07T13:10:28+00:00","by":"b7485498-f1f3-4ab1-87d1-9cb63ea890c8","backedBy":"","impersonatedBy":"","from":"","client":"server"},"t":1786108228167,"ct":1786108219134,"a_depth":3,"a":["system","system-forms","page-form"],"a_forms":["system-folder-form","repository-folder-form","form"],"inheritedLocks":[null,null,null,null],"stamps":[]},{"id":"c953de95-34dc-4edf-a99b-e2218b9d7716","v":"fff6cc6a701ee1aa","previous":{"v":"679ebcae80e87b82"},"p":"3f5de83a-40e4-4662-b436-3ed4879edb10","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-inner","template":"<div class=\"flex h-full\" ref=\"container\" @toolbar=\"controller.onToolbar($event)\">\n  <div class=\"flex-1 h-full overflow-auto basis-2/3 flex flex-col\">\n    <ae-form  :document=\"document\"\n              :auto-save=\"true\"\n              :auto-save-after=\"2500\"\n              layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\"\n              class=\"w-full\"\n              :readonly=\"params.readonly\"\n              :view=\"locals.view\"\n    ></ae-form>\n\n    <ae-control v-if=\"data.stallkarte.dataUrl\"\n                name=\"file-viewer\"\n                :document=\"document\"\n                field-name=\"stallkarte\"\n                ref=\"viewer\"\n    ></ae-control> \n    <ae-form  v-else-if=\"locals.canEdit\"\n              :document=\"document\"\n              :auto-save=\"true\"\n              :auto-save-after=\"2500\"\n              layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\"\n              class=\"w-full\"\n              :readonly=\"params.readonly\"\n              :view=\"{ only: { fields: ['stallkarte'] } }\"\n    ></ae-form>\n\n    <!-- <div class=\"w-full mx-auto max-w-5xl\">\n      <div class=\"w-full lg:my-2 lg:ml-2 flex flex-col\">\n        <ae-design name=\"rd:toolbar\" \n                  :document=\"document\" \n                    @filter=\"locals.filter = $event\"\n                    @sort=\"locals.sort = $event\"\n        ></ae-design>\n\n        <ae-list list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\"\n                :search=\"'p:'+ document.id + ' f.id:4b1bce8a-884e-44de-a2cd-352a7f89baa7'\"\n                :params=\"{ tableStyle: true }\"\n                :param-design-params=\"{ hidePath: true }\"\n                :sort=\"locals.sort\"\n                :filter=\"locals.filter\"\n                class=\"mx-4 px-2 \"\n                @selected=\"Aeppic.drillInto($event, arguments[1])\"\n        ></ae-list>\n      </div>\n    </div> --> \n  </div>\n  <template v-if=\"params.windowWidth >= 1280\">\n    <ae-layout  v-if=\"!locals.allowUndefinedFields\"\n                layout-id=\"0e6b3b93-8e22-4616-9389-a00a6a1a4f59\"\n                :param-document=\"document\"\n                :param-highlight-comment=\"params.highlightComment\"\n                :param-no-close=\"true\"\n                class=\"h-full w-full basis-1/3 max-w-[500px] lg:m-2\"\n    ></ae-layout>\n\n    <ae-design  v-if=\"locals.allowUndefinedFields\"\n                name=\"rd:undefined-fields\"\n                :document=\"document\"\n                class=\"h-full w-full basis-1/3 max-w-[500px] shadow lg:my-2 lg:ml-2\"\n    ></ae-design>\n  </template>\n</div>\n\n","css":"","controller":"class Controller {\n  async init() {\n    locals.sort = { field: 'data.name' }\n    locals.filter = ''\n\n    locals.view = {\n      only: {\n        fields: ['behandlungsdatum']\n      }\n    }\n\n    const canEdit = !document.readonly && await Aeppic.canEdit(document)\n    locals.canEdit = Aeppic.Account?.data.isGroupAccount === false && canEdit === true\n\n    locals.form = null\n    locals.form = await Aeppic.getFormForDocument(document)\n    locals.allowUndefinedFields = locals.form.data.allowUndefinedFields === true\n  }\n\n  onToolbar(event) {\n    const type = event.detail\n\n    // if (type === 'show-details') {\n    //   locals.showDetails = !locals.showDetails\n    // }\n\n    if (type === 'print') {\n      $refs.viewer.$emit('print')\n    } \n  }\n} ","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-01-08T14:22:29+01:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2024-02-22T12:47:26+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1708606046658,"ct":1704720149902,"a_depth":4,"a":["apps","5ec4fefb-1235-484e-8d6f-4fd645bae372","75920050-07b1-4e79-9742-54abcc235e91","3f5de83a-40e4-4662-b436-3ed4879edb10"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"cdbd9eb3-376c-4239-8979-c2c9916386ea","v":"ec47456a49da3ee7","cloneOf":{"id":"234a9bbb-bccd-438b-aeb9-0a5896a9408f","v":"d335cd178924597e","text":"page"},"originalCloneOf":{"id":"234a9bbb-bccd-438b-aeb9-0a5896a9408f","v":"d335cd178924597e","text":"page"},"previous":{"v":"initial"},"p":"3dc78392-be3d-4804-996e-df4bcd1c5ce4","f":{"id":"design-form","v":"49954170df6a253b","text":"Design"},"data":{"name":"rd:page-inner","template":"<ae-list  list-id=\"2dab232c-2c8a-4aa4-b3f9-6023a7116161\"\n          query-id=\"f812861f-68c8-4818-9972-be7b5474c9b1\"\n          :root-document-id=\"document.id\"\n          @selected=\"Aeppic.navigateTo($event)\"\n          param-min-column-width=\"1fr\"\n          param-design=\"search-card\"\n          :param-design-params=\"{ hidePath: true }\"\n          class=\"_CSS-list\"\n          param-gap=\"small\"\n          >\n</ae-list>\n","css":"._CSS {\n  padding: var(--bp-page-content-padding);\n}\n","controller":"","packages":[],"description":""},"locks":[],"created":{"at":"2022-12-01T15:47:23+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-12-01T15:47:30+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1669909650658,"ct":1669909643964,"a_depth":5,"a":["apps","83c76376-420e-4231-9275-d0fe2ab47c32","ba440134-1703-495e-b869-0f0c8d447f75","91352b74-c5e5-4c05-aa68-f13b0b723f35","3dc78392-be3d-4804-996e-df4bcd1c5ce4"],"a_forms":["folder","application-form","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"a":["apps","3fbe0efd-713a-457a-a34c-3a12aa19d6bb","0fb162f4-0f78-4c1e-aad2-43c27e6d98cb","dbdb4d4d-a16f-4c8c-b1ac-d9fdf4ebf491"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2024-09-27T14:40:25+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1727448025010,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:page-inner","packages":[],"template":"<ae-design name=\"rd:page-list\" :document=\"document\" :params=\"{queryOnce: true, ...params}\" v-on=\"$listeners\"></ae-design>"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"ce989097-33dc-4b25-98f8-a7c906ef4577","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-01-16T10:11:32+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"p":"dbdb4d4d-a16f-4c8c-b1ac-d9fdf4ebf491","previous":{"v":"0b30fbf2e788d41a"},"stamps":[],"t":1768558292826,"v":"2e15ca38a20191f1"},{"a":["system","system-forms","design-form"],"a_depth":3,"a_forms":["system-folder-form","repository-folder-form","form"],"created":{"at":"2025-08-18T14:39:03+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1755527943882,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:page-inner","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<div class=\"flex gap-2 w-full h-full\">\n  <div class=\"w-[200px] overflow-x-hidden overflow-y-scroll\">\n    <ae-design name=\"rd:menu\" document-id=\"88a42318-5cd6-429b-bc43-1eefeeb5e76f\" :param-active-document-id=\"document.id\"></ae-design>\n  </div>\n\n  <ae-design name=\"rd:epic-page\" :document=\"document\" class=\"flex-1 overflow-x-hidden overflow-y-scroll\"></ae-design>\n</div>"},"f":{"id":"design-form","text":"Design","v":"a6b987f8c80dc07f"},"id":"cea84c29-ae18-4400-828a-8cb134fd47ec","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2025-08-21T13:34:11+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"design-form","previous":{"v":"5aa4d8464eceffa2"},"stamps":[],"t":1755783251820,"v":"dcb44bca41fadb91"},{"id":"cf9b56e9-d3b4-4a24-b8db-a0592f6a20b4","v":"826be70ee9d7963c","cloneOf":{"id":"07a4b350-bca2-488a-8a42-956a589b9276","v":"8cf152a11ef94d61","text":"rd:page-inner"},"originalCloneOf":{"id":"07a4b350-bca2-488a-8a42-956a589b9276","v":"8cf152a11ef94d61","text":"rd:page-inner"},"previous":{"v":"17933f3fee32835e"},"p":"6d07adf2-7c05-4cea-ab5d-8fae3e024bb1","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-inner","template":"<ae-design name=\"rd:page-list\" :document=\"document\"></ae-design>\n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-08-14T10:10:23+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-12-12T10:20:04+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1702376404113,"ct":1692007823159,"a_depth":4,"a":["apps","9d6ee173-26fe-4472-a271-7667f717094e","6743ef9a-c21b-443f-91b8-4dd86886ee8c","6d07adf2-7c05-4cea-ab5d-8fae3e024bb1"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"d0d8a581-3e58-4945-a14b-e33a247e86d9","v":"9cb67e8ff758b205","cloneOf":{"id":"cbab18f5-6ab1-4514-876a-aa1898e94980","v":"77021b3d773c126f","text":"page"},"originalCloneOf":{"id":"cbab18f5-6ab1-4514-876a-aa1898e94980","v":"77021b3d773c126f","text":"page"},"previous":{"v":"b8256b4d92679604"},"p":"5150f703-e93a-4e54-a998-a06c0e962e71","f":{"id":"design-form","v":"3385ac6766f32638","text":"Design"},"data":{"name":"rd:page-inner","template":"<template v-if=\"locals.ready\">\n  <ae-design v-if=\"locals.isVerwalter\" ref=\"page\" @toolbar.native=\"controller.dispatchEventChildren('page', 'toolbar', $event.detail)\" name=\"rd:page--administator\" :document=\"document\" :params=\"params\" v-on=\"$listeners\"></ae-design>\n  <ae-design v-else name=\"rd:page--worker\" ref=\"page\" @toolbar.native=\"controller.dispatchEventChildren('page', 'toolbar', $event.detail)\" :document=\"document\" :params=\"params\" v-on=\"$listeners\"></ae-design>\n</template> ","css":"","controller":"class Controller {\n  async init() {\n    locals.ready = false\n    \n    locals.isVerwalter = false\n    locals.isVerwalter = (await Aeppic.Commands.execute('950f35d3-95ba-4d5a-a164-0074c767d600', document, { Account: Aeppic.Account })).value\n    \n    locals.ready = true\n  }\n\n   dispatchEventChildren(refName, eventName, eventValue) { \n    if (!$refs[refName] || !$refs[refName].$el || !$refs[refName].$el.children) {\n      return\n    }\n    const children = $refs[refName].$el.children\n    for (let i = 0; i < children.length; i++) {\n      children[i].dispatchEvent(new CustomEvent(eventName, {\n        detail: eventValue\n      }))\n    }\n    $refs[refName].$emit(eventName, eventValue)\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-05-23T09:59:51+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-05-23T10:00:33+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1716458433914,"ct":1716458391683,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","5150f703-e93a-4e54-a998-a06c0e962e71"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["system","system-forms","form"],"a_depth":3,"a_forms":["system-folder-form","repository-folder-form","form"],"created":{"at":"2024-09-27T13:32:37+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1727443957524,"data":{"aliases":[],"controller":"class Controller {\n  init() {\n    if (!document.a_forms.includes('c69a0c1c-6c53-40c2-87e8-5ace866bf1df')) {\n      if (!Aeppic.Account?.data.allowDevMode) {\n        Aeppic.navigateTo('/')\n      }\n    }\n  }\n}","css":"","description":"","name":"rd:page-inner","packages":[],"template":"<ae-design v-if=\"document.a_forms.includes('c69a0c1c-6c53-40c2-87e8-5ace866bf1df')\" \n             name=\"rd:form-builder\"\n             :document=\"document\"\n             :params=\"params\"\n             class=\"h-full w-full\"\n></ae-design> \n<div v-else class=\"flex gap-2 w-full h-full\">\n  <div class=\"w-[200px] overflow-x-hidden overflow-y-scroll\">\n    <ae-design name=\"rd:page-inner\" document-id=\"88a42318-5cd6-429b-bc43-1eefeeb5e76f\" :param-active-document-id=\"document.id\"></ae-design>\n  </div>\n\n  <ae-design name=\"rd:epic-page\" :document=\"document\" class=\"flex-1 overflow-x-hidden overflow-y-scroll\"></ae-design>\n</div>"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"d1823eb3-c792-445b-9c71-bdcbd2ca330c","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2025-08-19T09:46:00+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"form","previous":{"v":"b820d43836923215"},"stamps":[],"t":1755596760487,"v":"2e58ac5747c3e555"},{"a":["apps","1887a103-bf3b-473c-8cb7-4f1afad0286b","9b02b1b6-e32b-41ec-b451-dba59bc5847b","6e55b0af-03d5-414b-a26b-0854ec230a07"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2024-11-14T14:00:07+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1731592807807,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:page-inner","packages":[],"template":"<ae-design name=\"rd:page-list\"\n          :document=\"document\"\n          :params=\"{ ...params, ...{ designParams: { showAction: true } } }\"\n          class=\"h-full\"\n></ae-design>"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"d18a2507-f83f-4a69-9e59-a4b071f68979","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2024-11-15T11:01:54+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"6e55b0af-03d5-414b-a26b-0854ec230a07","previous":{"v":"82b5f01b299e9d7f"},"stamps":[],"t":1731668514637,"v":"983f5ac2ee856301"},{"a":["apps","d8c9a42b-e289-4c9a-97ea-801de8ab480a","db8e20d1-732c-4c6b-9cfc-b323f83fa378","c6237a67-b8cf-4107-92d8-afd460497f0e"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"9bcf6adc-e7bd-4c51-82fb-5df6724b6c30","text":"page","v":"f9c14600b4d3da0d"},"created":{"at":"2022-10-25T09:19:01+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1666689541499,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.loading = true\n    this.subscription = null\n\n    locals.calendars = []\n    locals.activeCalendars = []\n\n    locals.filterDocuments = []\n    locals.activeFilterDocuments = []\n\n    locals.filters = []\n    locals.activeFilters = []\n\n    const canEdit = await Aeppic.canEdit(document)\n    locals.canEdit = Aeppic.Account && Aeppic.Account.data.isGroupAccount === false && canEdit === true\n\n    locals.configuration = params.configuration || JSON.parse(data.configuration)\n\n    locals.calendars = this.getCalendars()\n    locals.activeCalendars = locals.calendars.concat()\n\n    locals.filters = this.getFilters()\n    locals.activeFilters = locals.filters.concat()\n\n    locals.filterDocuments = await this.getFilterDocuments()\n    locals.activeFilterDocuments = this.getActiveFilterDocuments()\n\n    locals.loading = false\n  }\n\n  getFilters() {\n    return locals.configuration.filters ?? []\n  }\n\n  async getFilterDocuments() {\n    if (!locals.configuration.filterDocuments) {\n      return []\n    }\n\n    return Aeppic.find(`a:${document.a[0]} ${locals.configuration.filterDocuments.query}`) \n  }\n\n  getActiveFilterDocuments() {\n    if (!locals.filterDocuments) {\n      return []\n    }\n\n    switch (locals.configuration.filterDocuments?.default) {\n      case 'Aeppic.ProfilePage':\n        return locals.filterDocuments.filter((doc) =>  doc.id === Aeppic.ProfilePage.id)\n      case 'first':\n        return locals.filterDocuments.length > 0 ? [locals.filterDocuments[0]] : []\n      case 'last': \n        return locals.filterDocuments.length > 0 ? [locals.filterDocuments[locals.filterDocuments.length - 1]] : []\n      default:\n        return []\n    }\n\n  }\n\n  getCalendars() {\n    const configuration = locals.configuration\n\n    if (Array.isArray(configuration)) {\n      return configuration\n    } else {\n      return configuration.calendars\n    }\n  }\n\n  mapDocumentToCalendar(appointment) {\n    return appointment.f.id\n  }\n\n  async removeCalendar(calendar) {\n    locals.activeCalendars = locals.activeCalendars.filter((r) => r.form !== calendar.form)\n  }\n\n  async addCalendar(calendar) {\n    locals.activeCalendars.push(calendar)\n  }\n\n  addFilter(filter) {\n    locals.activeFilters.push(filter)\n  }\n  removeFilter(filter) {\n    locals.activeFilters = locals.activeFilters.filter((r) => r !== filter)\n  }\n\n  addFilterDocument(filterDocument) {\n    locals.activeFilterDocuments.push(filterDocument)\n  }\n  removeFilterDocument(filterDocument) {\n    locals.activeFilterDocuments = locals.activeFilterDocuments.filter((r) => r !== filterDocument)\n  }\n}\n","css":"","description":"","name":"rd:page-inner","packages":[],"template":"<ae-list\n  v-if=\"locals.canEdit != null && !locals.loading\"\n  style=\"height: 100%\"\n  list-id=\"8ccba43a-bb15-4f1c-ac5e-e6967968e83a\"\n  param-title=\"Kalender\"\n  :root-document-id=\"document.a[0]\"\n  :param-document-to-calendar-mapper=\"(doc) => controller.mapDocumentToCalendar(doc)\"\n  :param-configuration=\"locals.configuration\"\n  :param-calendars=\"locals.calendars\"\n  :param-active-calendars=\"locals.activeCalendars\"\n  :param-filter-documents=\"locals.filterDocuments\"\n  :param-active-filter-documents=\"locals.activeFilterDocuments\"\n  :param-filters=\"locals.filter\"\n  :param-active-filters=\"locals.activeFilters\"\n  @calendar-remove=\"controller.removeCalendar($event)\"\n  @calendar-add=\"controller.addCalendar($event)\"\n  @filter-remove=\"controller.removeFilter($event)\"\n  @filter-add=\"controller.addFilter($event)\"\n  @filterdocument-remove=\"controller.removeFilterDocument($event)\"\n  @filterdocument-add=\"controller.addFilterDocument($event)\"\n  :param-readonly=\"!locals.canEdit\"\n  :param-debug=\"false\"\n  ></ae-list>"},"f":{"id":"design-form","text":"Design","v":"24435d748c76f819"},"id":"d298ed4b-cf99-4425-ab7a-64a61e91922d","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-12-09T10:49:03+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"9bcf6adc-e7bd-4c51-82fb-5df6724b6c30","text":"page","v":"f9c14600b4d3da0d"},"p":"c6237a67-b8cf-4107-92d8-afd460497f0e","previous":{"v":"19c67af19a3acfca"},"stamps":[],"t":1765277343364,"v":"ec6d7c6754972547"},{"id":"d44e6457-24f2-451a-b640-73246341e8ba","v":"215c4104b455d38b","previous":{"v":"ea9549ad4dddac25"},"p":"cfd3ce74-9fa5-46c8-a9e9-cba33a3b8e70","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-inner","template":"<ae-design :name=\"'rd:' + (params.view || 'list')\" :document=\"document\" class=\"h-full\" :params=\"params\"></ae-design>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-04-04T13:45:23+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-12-04T13:15:45+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1733318145062,"ct":1712238323030,"a_depth":4,"a":["apps","94a64d89-d204-4918-b147-d717914fb03e","f254ce25-42f1-4333-8ee7-23554bf746c1","cfd3ce74-9fa5-46c8-a9e9-cba33a3b8e70"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","49af721d-7068-4dd7-8df4-a5f79b3804cf"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"1312c269-6368-4c65-abd5-2be7aeb2c460","text":"rd:page-inner","v":"005e5ac8dedb9119"},"created":{"at":"2025-07-07T12:48:36+00:00","backedBy":null,"by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":null},"ct":1751892516863,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.activeDocuments = []\n    locals.inactiveDocuments = []\n\n    Aeppic.subscribe(`a:${document.id}`, { size: 9999, sort: 'data.name' }, async (documents) => {\n      // make the actual find. The subscription should just ensure that all stamp changes will also enqueue another check\n      const ensuredDocuments = await Aeppic.find(`p:${document.id}`, { size: 9999, sort: 'data.name '})\n\n      const activeDocuments = []\n      const inactiveDocuments = []\n\n      ensuredDocuments.forEach(doc => {\n        if (!(doc.stamps?.length)) {\n          return\n        }\n\n        if (!doc.readonly) {\n          activeDocuments.push(doc) \n        } else {\n          inactiveDocuments.push(doc)\n        }\n      })\n\n\n      locals.activeDocuments = activeDocuments\n      locals.inactiveDocuments = inactiveDocuments\n    })\n  }\n} ","css":"","description":"","name":"rd:page-inner","packages":[],"template":"<div class=\"flex flex-col\">\n  <ae-form :document=\"document\" \n            layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\"\n            :readonly=\"params.readonly\"\n  ></ae-form>\n\n  <div class=\"mx-auto w-full max-w-5xl\">\n    <div class=\"bg-white xl:rounded-md xl:shadow p-4 flex flex-col gap-4\">\n\n      <section class=\"flex flex-col\">\n        <div class=\"font-bold\">\n          Sammelinformation-Formulare\n        </div>\n        <ae-list list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\"\n        :documents=\"locals.activeDocuments\"\n        param-design=\"itm:information-card\"\n        :param-divide=\"true\"\n        @selected=\"Aeppic.drillInto($event, arguments[1])\"\n        ></ae-list>\n      </section>\n\n      <ae-design class=\"w-full\" name=\"rd:page-workflow\" :document=\"document\"></ae-design>\n\n\n      <!-- <template>\n        <div class=\"font-bold mt-10\">\n          Inaktive Anträge \n        </div>\n        <ae-list list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\"\n                :documents=\"locals.inactiveDocuments\"\n                param-design=\"rd:card\"\n        ></ae-list>\n      </template> -->\n    </div>\n\n    <!-- <div class=\"w-full flex-1 flex flex-col gap-1\">\n      <div class=\"w-full flex-1 overflow-y-auto basis-2/3 pb-1 overflow-x-auto\">\n      </div>\n  \n    </div> -->\n  </div>\n</div>"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"d6b0ab0d-9fa0-4e25-9c27-b662e0cf950a","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-07-07T12:59:19+00:00","backedBy":null,"by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"1312c269-6368-4c65-abd5-2be7aeb2c460","text":"rd:page-inner","v":"005e5ac8dedb9119"},"p":"49af721d-7068-4dd7-8df4-a5f79b3804cf","previous":{"v":"initial"},"stamps":[],"t":1751893159004,"v":"2b59ef9b566ce343"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","941d2b8f-5694-4054-8c99-c51ad62f6c2f"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2025-08-06T16:54:02+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1754499242242,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:page-inner","packages":[],"template":"<ae-design name=\"rd:page--worker\"\n:document=\"document\"\n:params=\"params\"\nv-on=\"$listeners\"\nclass=\"h-full w-full\"\n></ae-design>"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"d75cbcdb-b727-462f-ba14-f23d128a8c9d","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-08-15T07:46:21+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"941d2b8f-5694-4054-8c99-c51ad62f6c2f","previous":{"v":"0a20cc4835d3afbd"},"stamps":[],"t":1755243981832,"v":"d018a6c4f28dea36"},{"id":"dc490b57-2d78-4d43-af6f-298122d1a6b9","v":"bea3add59a6f8063","previous":{"v":"04e96e68360f6909"},"p":"ffa650cf-e351-462e-baef-29f7c8f22d1b","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-inner","template":"<ae-form :document=\"document\" \n          :auto-save=\"true\"\n          layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\"\n          :view=\"locals.view\"\n          :readonly=\"params.readonly\"\n></ae-form>","css":"","controller":"class Controller {\n  init() {\n    locals.view = {\n      only: {\n        fields: ['content']\n      }\n    }\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-12-14T11:26:55+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2024-02-16T11:04:57+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1708081497529,"ct":1702553215478,"a_depth":4,"a":["apps","45ada186-e9fd-451d-9dbd-2defc0b4f86f","4ec6a0e5-cf2d-4095-9b70-2e31a64d5679","ffa650cf-e351-462e-baef-29f7c8f22d1b"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","0924db0f-7095-4b51-8966-bad1e45d68ec","a3b935e7-60bc-4996-9b18-668e4361067f","e9f42b0b-50dd-4e21-9152-02c89b73c6d7"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"bf634ee9-8a22-45ad-a3ae-93150e989285","text":"rd:page-inner","v":"026d6b5803c892f0"},"created":{"at":"2023-03-09T13:55:03+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1678370103609,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.view = {}\n    locals.pdf = null\n\n    this.previousErstellt = null\n\n    await this.updatePdfToDisplay(document)\n\n    Aeppic.watch(document.id, doc => {\n      if (this.previousErstellt === doc.data.erstellt) {\n        return\n      }\n\n      this.previousErstellt = doc.data.erstellt\n      this.updatePdfToDisplay(doc)\n    })\n  }\n\n  async updatePdfToDisplay(doc) {\n    // old form had an array\n    const pdf = Array.isArray(data.pdf) ? data.pdf[0] : data.pdf\n\n    if (data.erstellt) {\n      locals.pdf = await Aeppic.get(pdf)\n    } else {\n      locals.pdf = await Aeppic.get(doc.data.pdfPreview)\n    }\n  }\n}\n\n","css":"","description":"","name":"rd:page-inner","packages":[],"template":"<div class=\"flex gap-4 h-full overflow-hidden\">\n  <ae-form  v-if=\"params.windowWidth > 1280 || params.tab === 'offer'\"\n            :document=\"document\" \n            :view=\"locals.view\"\n            :auto-save=\"true\"\n            :readonly=\"params.readonly\"\n            layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\"\n            class=\"py-0 lg:pt-2 lg:pb-10 flex-1 h-full overflow-auto basis-2/3 pr-2\"    \n  ></ae-form>\n\n  <div v-if=\"params.windowWidth > 1280 || params.tab === 'pdf'\"\n       class=\"h-full w-full  border-l bg-white overflow-hidden flex flex-col\"\n  >\n    <!-- set windowWidth to negative to disable sidebars from appearing -->\n    <ae-layout v-if=\"locals.pdf\"\n                layout-id=\"0e40bb7a-7f76-425a-8b07-3dbb6208d277\"\n                :param-page-document=\"locals.pdf\"\n                :param-page-params=\"{ useBuiltinViewer: true, disableComments: true, disableDelete: true, readonly: true  }\"\n                class=\"h-full\" \n                :param-window-width=\"-1\"\n    ></ae-layout>\n    <div v-else class=\"flex justify-center items-center h-full w-full\">\n      <ae-icon class=\"far fa-spinner-third fa-spin text-4xl\"></ae-icon>\n    </div>\n    <!-- <div class=\" flex class flex flex-col  h-full\">\n      <section v-if=\"data.erstellt\" class=\"flex-1 flex flex-col\">\n        <div class=\"p-4 py-2 bg-fuchsia-100  flex justify-between items-baseline\">\n          <div class=\"text-lg text-fuchsia-900\">\n          PDF\n          </div>\n          <div class=\"flex gap-1\">\n          <ae-design name=\"rd:download-and-print-buttons\" :document-id=\"data.pdf[0]?.id\"></ae-design>\n\n          <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n                     param-icon=\"far fa-expand-arrows\"\n                     @selected=\"Aeppic.drillInto(data.pdfPreview)\"\n          ></ae-layout> \n          </div>\n        </div>\n        <div v-if=\"!data.pdf.length\" class=\"flex items-center gap-2 max-w-md m-auto\">\n          <ae-icon class=\"far fa-file-times text-6xl\"></ae-icon>\n          <div>\n            Wir benötigten noch weitere Daten um die Rechnungs-PDF erstellen können.\n          </div>\n        </div>\n        <ae-design v-else name=\"rd:page-inner\" :document-id=\"data.pdf[0]?.id\"\n                class=\"flex-1\"\n        ></ae-design>\n      </section>\n      <section v-else class=\"flex-1 flex flex-col\">\n        <div class=\"p-4 py-2 bg-fuchsia-100  flex justify-between items-baseline\">\n          <div class=\"text-lg text-fuchsia-900\">\n          PDF\n          </div>\n          <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n                     param-icon=\"far fa-expand-arrows\"\n                     @selected=\"Aeppic.drillInto(data.pdfPreview)\"\n          ></ae-layout>\n        </div>       \n        <ae-design v-if=\"data.pdfPreview.id\" name=\"rd:page\" \n        :document-id=\"data.pdfPreview.id\"\n        class=\"flex-1\"\n        ></ae-design>\n        <div v-else class=\"flex items-center gap-2 max-w-md m-auto\">\n          <ae-icon class=\"far fa-file-times text-6xl\"></ae-icon>\n          <div>\n            Wir benötigten noch weitere Daten um die Rechnungs-PDF erstellen können.\n          </div>\n        </div>\n      </section>\n    </div> -->\n  </div>\n</div>  \n"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"dfb3a4a9-15a8-47c5-8096-f844ff76b65d","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-02-09T13:43:16+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"bf634ee9-8a22-45ad-a3ae-93150e989285","text":"rd:page-inner","v":"026d6b5803c892f0"},"p":"e9f42b0b-50dd-4e21-9152-02c89b73c6d7","previous":{"v":"1bc81a477666258f"},"stamps":[],"t":1770644596985,"v":"63d421b03435c9ba"},{"id":"e02ece05-9c87-4bfa-b3d3-2891725e83b3","v":"3ff999bb4cbb88d8","previous":{"v":"44faae9e8a6408ab"},"p":"3b0389d0-78b1-4e26-adf0-20086c87ae40","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-inner","template":"<ae-design name=\"rd:page-list\" :document=\"document\"></ae-design>\n<ae-layout layout-id=\"582baf96-ad3a-4e6a-a77c-84509a6f4a0a\"></ae-layout>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-04-02T13:52:36+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-04-02T13:53:07+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1712065987819,"ct":1712065956923,"a_depth":4,"a":["apps","94a64d89-d204-4918-b147-d717914fb03e","f254ce25-42f1-4333-8ee7-23554bf746c1","3b0389d0-78b1-4e26-adf0-20086c87ae40"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"e0391e35-fd18-487c-88f1-7a879f3ab138","v":"0b9887f79aadc768","cloneOf":{"id":"5a63232f-9d23-40d9-9e3d-542c4c759fbe","v":"f934ea7271bd1fa0","text":"page"},"originalCloneOf":{"id":"5a63232f-9d23-40d9-9e3d-542c4c759fbe","v":"f934ea7271bd1fa0","text":"page"},"previous":{"v":"e66ba821bc8ef30a"},"p":"cdf93f5b-9bea-494d-99e1-a7dd39d91586","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-inner","template":"<ae-design name=\"rd:toolbar\" :document=\"document\"></ae-design>\n\n\n<ae-list  list-id=\"table-list\"\n          :root-document-id=\"document.id\"\n          query-id=\"f812861f-68c8-4818-9972-be7b5474c9b1\"\n          :filter=\"'f.id:' + locals.FORMS.Teil\"\n          :param-list-form-id=\"locals.FORMS.Teil\"\n          @selected=\"Aeppic.drillInto($event, arguments[1])\"\n          :search-options=\"{ searchAllFields: true, size: 9999 }\"\n          param-columns=\"data.nummer,data.beschreibung\"\n          param-fixed-column-widths=\"100,\"\n></ae-list>\n ","css":"","controller":"class Controller {\n  init() {\n    this.FORMS = {\n      Teil: '0dfd4afd-f2ec-4ff0-9a79-811badf4fed5'\n    }\n    locals.FORMS = this.FORMS\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-05-23T09:55:55+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-05-23T10:57:25+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1716461845475,"ct":1716458155157,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","cdf93f5b-9bea-494d-99e1-a7dd39d91586"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","f416e371-07cc-4987-a6de-5934ef5ff3e4","1096c5df-2773-4914-9455-dc54e0f3e0e5","7462cae9-85cb-4a48-9698-7136b5ea6be2"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"320506f7-696d-40e3-824d-cd129dff385e","text":"rd:my-instructions","v":"25768df7aa28794d"},"created":{"at":"2023-10-10T13:43:02+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1696945382162,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.acksByEmpfaengerId = {}\n    locals.unreadAcksByEmpfaengerId = {}\n    locals.empfaengerById = {}\n\n    locals.DISABLED = true\n    if (locals.DISABLED) {\n      return\n    }\n\n    this.updateAcksByEmpfaengerId()\n\n    locals.isManager = null\n\n    locals.isManager = (await Aeppic.Actions.run(['7c4c6268-b24a-43c4-b876-a2a07f13942c'], { Account: Aeppic.Account, target: document }))[0].value\n  }\n\n  updateAcksByEmpfaengerId() {\n    this.receiverSub = Aeppic.updateSubscription(this.receiverSub, `a:${document.id} f.id:14931d03-c3bb-4cf7-9f62-747f94d8b01a`, {size:9999 }, (docs) => {\n      const { acksByEmpfaengerId, unreadAcksByEmpfaengerId } = docs.reduce((result, ack) => {\n        if (ack.data.gelesen) {\n          if (!result.acksByEmpfaengerId[ack.data.empfaenger.id]) {\n            result.acksByEmpfaengerId[ack.data.empfaenger.id] = []\n          } \n\n          result.acksByEmpfaengerId[ack.data.empfaenger.id].push(ack)\n\n        } else {\n          if (!result.unreadAcksByEmpfaengerId[ack.data.empfaenger.id]) {\n            result.unreadAcksByEmpfaengerId[ack.data.empfaenger.id] = []\n          } \n\n          result.unreadAcksByEmpfaengerId[ack.data.empfaenger.id].push(ack)\n        }\n\n        this.scheduleEmpfaengerLooup(ack.data.empfaenger)\n \n        return result\n      }, { acksByEmpfaengerId: {}, unreadAcksByEmpfaengerId: {} })\n\n      locals.acksByEmpfaengerId = acksByEmpfaengerId\n      locals.unreadAcksByEmpfaengerId = unreadAcksByEmpfaengerId\n    })\n  }\n\n  async scheduleEmpfaengerLooup(empfaenger) {\n    if (locals.empfaengerById[empfaenger.id] === 'loading') {\n      return\n    }\n\n    locals.empfaengerById[empfaenger.id] = 'loading'\n    locals.empfaengerById[empfaenger.id] = await Aeppic.get(empfaenger)\n\n    if (!locals.empfaengerById[empfaenger.id]) {\n      locals.empfaengerById[empfaenger.id] = empfaenger.text\n    }\n  }\n}\n ","css":"","description":"","name":"rd:page-inner","packages":[],"template":"<div v-if=\"locals.DISABLED\" class=\"text-red-500 text-lg text-center\">\n  <ae-icon class=\"far fa-triangle-exclamation\"></ae-icon> Diese Auswertung ist leider aktuell nicht verfügbar.\n</div>\n<template v-else>\n  <div class=\"h-full flex flex-col\"> \n    <div class=\"flex-1 flex flex-col\">\n      <div class=\"flex-1 mx-auto flex flex-col gap-4 w-full bg-white overflow-visible bg-white max-w-5xl px-4 py-2 my-2 lg:shadow-md lg:rounded-md\">\n        <template v-if=\"params.tab === 'unread'\">\n          <div v-if=\"!Object.keys(locals.unreadAcksByEmpfaengerId).length && !Object.keys(locals.acksByEmpfaengerId).length\" class=\"text-sm text-neutral-500\">\n            Lesen Sie eine erste Unterweisung an und versenden Sie diese um Statistiken anzeigen zu können.\n          </div>\n\n          <section class=\"flex flex-col\">\n            <div class=\"text-neutral-500\" v-if=\"!Object.keys(locals.unreadAcksByEmpfaengerId).length\">\n              <ae-icon class=\"far fa-sparkles\"></ae-icon>\n              Alle Lesebestätigungen wurden als gelesen markiert\n            </div>\n            <template v-else>\n              <div class=\"flex flex-col\" v-for=\"(acks, empfaengerId) in locals.unreadAcksByEmpfaengerId\">\n                <div class=\"p-2 text-2xl\">\n                  <template v-if=\"locals.empfaengerById[empfaengerId] !== 'loading'\">\n                    <ae-design v-if=\"typeof locals.empfaengerById[empfaengerId] !== 'string'\"  name=\"tag-title\" :document-id=\"empfaengerId\"></ae-design>\n                    <div v-else class=\"italic\" >{{ locals.empfaengerById[empfaengerId] }}</div> \n                  </template>\n                </div>\n\n                <ae-list  list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\"\n                          :documents=\"acks\"\n                          param-design=\"rd:card\"\n                          :param-design-params=\"{ showProject: true, isManager: locals.isManager }\"\n                          param-title-text=\"Offene Lesebestätigungen\"\n                ></ae-list>\n              </div>\n            </template>\n          </section>\n        </template>\n\n        <template v-if=\"params.tab === 'read'\">\n          <div v-if=\"!Object.keys(locals.unreadAcksByEmpfaengerId).length && !Object.keys(locals.acksByEmpfaengerId).length\" class=\"text-sm text-neutral-500\">\n            Lesen Sie eine erste Unterweisung an und versenden Sie diese um Statistiken anzeigen zu können.\n          </div>\n\n          <section class=\"flex flex-col\">\n            <div class=\"text-neutral-500\" v-if=\"!Object.keys(locals.acksByEmpfaengerId).length\">\n              <ae-icon class=\"far fa-exclamation-square\"></ae-icon> Alle Lesebestätigungen sind ungelesen\n            </div>\n            <template v-else>\n              <div class=\"flex flex-col\" v-for=\"(acks, empfaengerId) in locals.acksByEmpfaengerId\">\n                <div class=\"p-2 text-2xl\">\n                  <template v-if=\"locals.empfaengerById[empfaengerId] !== 'loading'\">\n                    <ae-design v-if=\"typeof locals.empfaengerById[empfaengerId] !== 'string'\"  name=\"tag-title\" :document-id=\"empfaengerId\"></ae-design>\n                    <div v-else class=\"italic\" >{{ locals.empfaengerById[empfaengerId] }}</div> \n                  </template>\n                </div>\n\n                <ae-list  list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\"\n                          :documents=\"acks\"\n                          param-design=\"rd:card\"\n                          :param-design-params=\"{ showProject: true, isManager: locals.isManager }\"\n                          param-title-text=\"Gelesene Lesebestätigungen\"\n                ></ae-list>\n              </div>\n            </template>\n          </section>\n        </template>\n      </div>\n    </div>\n  </div>\n  \n</template>\n"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"e07f5b77-50dc-4d6f-898c-374e1ca2e028","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-12-02T14:31:25+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"320506f7-696d-40e3-824d-cd129dff385e","text":"rd:my-instructions","v":"25768df7aa28794d"},"p":"7462cae9-85cb-4a48-9698-7136b5ea6be2","previous":{"v":"c9c6e7773f83b6ae"},"stamps":[],"t":1764685885320,"v":"d73e69ca645601fe"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","1451a42c-e8f9-430e-8fd0-b2209f389e84"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2026-01-19T13:42:34+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"ct":1768830154544,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:page-inner","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<ae-design \n  :name=\"'rd:' + (params.tab || 'facilities-list')\" \n  :document=\"document\"\n  :params=\"params\"\n  class=\"size-full\"\n></ae-design>"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"e112e66e-ca8e-4e86-9e36-5aa283b597ed","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-01-19T13:42:52+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"p":"1451a42c-e8f9-430e-8fd0-b2209f389e84","previous":{"v":"initial"},"stamps":[],"t":1768830172809,"v":"b1485ef386deaaf6"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","b270e94c-c223-4972-9db8-70b6750e740e"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2026-01-19T10:35:32+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"ct":1768818932041,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:page-inner","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<ae-design name=\"rd:page-list\" :document=\"document\"\n:params=\"params\"></ae-design>"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"e14dda99-d65a-49eb-a366-28a5a548dbd1","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-01-19T10:35:38+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"p":"b270e94c-c223-4972-9db8-70b6750e740e","previous":{"v":"initial"},"stamps":[],"t":1768818938442,"v":"00c5096f916fa94f"},{"a":["apps","91a90288-37bc-4f86-be38-4283833717d2","cb7a4c1b-703a-4b16-9190-aa2a26532688","007be343-6ea4-4ff7-b189-ad4bb4cf1c5a"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2022-10-25T14:55:06+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1666709706589,"data":{"aliases":[],"controller":"class Controller {\n  init() {\n    this.FORMS = {\n      ProtocolGroup: '954212d9-9cc7-4356-82e3-a80cf745da4d',\n    }\n\n    locals.FORMS = this.FORMS\n    locals.filter = ''\n    locals.filterBase = `(f.id:${this.FORMS.ProtocolGroup}) `\n  }\n}  ","css":"","description":"","name":"rd:page-inner","packages":[],"template":"<div>\n  <div class=\"px-4 py-2  max-w-5xl mx-auto w-full\">\n    <ae-design name=\"rd:toolbar\"\n                :document=\"document\"\n                :param-disable-sort=\"true\"\n                @filter=\"locals.filter = $event\"\n                :param-list-form-id=\"locals.FORMS.ProtocolGroup\"\n    ></ae-design>\n\n    <ae-list  list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\" \n              query-id=\"f812861f-68c8-4818-9972-be7b5474c9b1\" \n              :filter=\"locals.filterBase + locals.filter\"\n              :root-document-id=\"document.id\" \n              :sort=\"{ fields: ['data.name', 'id'] }\" \n              param-design=\"rd:card-inner\"\n              @selected=\"Aeppic.drillInto($event, arguments[1])\"\n    ></ae-list>\n  </div> \n</div>\n "},"f":{"id":"design-form","text":"Design","v":"c2d9ae57c7a46896"},"id":"e3b5ff92-e2ed-4105-9974-641655e97495","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-02-10T10:40:49+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"p":"007be343-6ea4-4ff7-b189-ad4bb4cf1c5a","previous":{"v":"53b43fdb7be0104c"},"stamps":[],"t":1770720049616,"v":"c8318ea54bef0d37"},{"id":"e4970e2a-9ae5-48c4-ad5b-6089786de98a","v":"ddf71e209bf577fc","cloneOf":{"id":"48266eb0-2ca9-4043-b5d9-882e5146da76","v":"a6f0f0211f0b3147","text":"page"},"originalCloneOf":{"id":"48266eb0-2ca9-4043-b5d9-882e5146da76","v":"a6f0f0211f0b3147","text":"page"},"previous":{"v":"d8b582dfa1e96096"},"p":"3592ceee-ae9a-47a9-8488-7bad5b0d9ff5","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"rd:page-inner","template":"<template v-if=\"locals.ready\">\n  <ae-design v-if=\"locals.isVerwalter\" ref=\"page\" @toolbar.native=\"controller.dispatchEventChildren('page', 'toolbar', $event.detail)\" name=\"rd:page--administator\" :document=\"document\" :params=\"params\" v-on=\"$listeners\"></ae-design>\n  <ae-design v-else name=\"rd:page--worker\" ref=\"page\" @toolbar.native=\"controller.dispatchEventChildren('page', 'toolbar', $event.detail)\" :document=\"document\" :params=\"params\" v-on=\"$listeners\"></ae-design>\n</template> ","css":"","controller":"class Controller {\n  async init() {\n    locals.ready = false\n    \n    locals.isVerwalter = false\n    locals.isVerwalter = (await Aeppic.Commands.execute('950f35d3-95ba-4d5a-a164-0074c767d600', document, { Account: Aeppic.Account })).value\n    \n    locals.ready = true\n  }\n\n   dispatchEventChildren(refName, eventName, eventValue) { \n    if (!$refs[refName] || !$refs[refName].$el || !$refs[refName].$el.children) {\n      return\n    }\n    const children = $refs[refName].$el.children\n    for (let i = 0; i < children.length; i++) {\n      children[i].dispatchEvent(new CustomEvent(eventName, {\n        detail: eventValue\n      }))\n    }\n    $refs[refName].$emit(eventName, eventValue)\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-05-23T09:48:39+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-05-23T09:50:15+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1716457815036,"ct":1716457719376,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","3592ceee-ae9a-47a9-8488-7bad5b0d9ff5"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","5f4a87a7-5557-4004-bfdc-2fb26c71e0c9"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"70447c42-c855-4625-918d-f24d8b258d98","text":"rd:page-inner","v":"0a563f7ecd91eb55"},"created":{"at":"2026-01-19T12:33:55+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"ct":1768826035197,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:page-inner","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<ae-design \n  class=\"size-full\"\n  name=\"rd:page-inner_tabs\" \n  :document=\"document\"\n  :params=\"params\"\n></ae-design>"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"e60c8108-2533-4da6-912b-c72695265f4b","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-02-04T12:06:01+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"70447c42-c855-4625-918d-f24d8b258d98","text":"rd:page-inner","v":"0a563f7ecd91eb55"},"p":"5f4a87a7-5557-4004-bfdc-2fb26c71e0c9","previous":{"v":"2ed932ebe92f3e1d"},"stamps":[],"t":1770206761035,"v":"2ee3da60215a34e7"},{"id":"e61cd546-16e5-4cd7-9381-05de9af0c3ab","v":"af372f6976ffb276","previous":{"v":"f66836cc849d2ed6"},"p":"1a899567-18c8-4428-a377-caa9b3ed6c9f","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-inner","template":"<ae-design name=\"rd:toolbar\" :document=\"document\"></ae-design>\n\n<ae-list  list-id=\"table-list\"\n          :root-document-id=\"document.id\"\n          query-id=\"f812861f-68c8-4818-9972-be7b5474c9b1\"\n          :filter=\"'f.id:' + locals.FORMS.ArbeitEintrag\"\n          :param-list-form-id=\"locals.FORMS.ArbeitEintrag\"\n          @selected=\"Aeppic.drillInto($event, arguments[1])\"\n          :search-options=\"{ searchAllFields: true, size: 9999 }\"\n          param-columns=\"data.nummer,data.beschreibung\"\n          param-fixed-column-widths=\"100,\"\n></ae-list>\n","css":"","controller":"class Controller {\n  init() {\n    this.FORMS = {\n      ArbeitEintrag: '204787ca-59c2-4b11-b866-aa05fa9c9891'\n    }\n    locals.FORMS = this.FORMS\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-05-23T09:56:21+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-05-23T10:57:13+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1716461833342,"ct":1716458183794,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","1a899567-18c8-4428-a377-caa9b3ed6c9f"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"e6940bd7-ba97-4451-beb9-0a711dbb95dd","v":"4b5cfc406b61aaf0","cloneOf":{"id":"9334950e-75a4-4fe1-bf37-971e2c945d1f","v":"d43cb33740041b62","text":"rd:page-inner"},"originalCloneOf":{"id":"9334950e-75a4-4fe1-bf37-971e2c945d1f","v":"d43cb33740041b62","text":"rd:page-inner"},"previous":{"v":"015a458827f2f656"},"p":"554234d4-1a0a-4f31-b6a1-7899ca841995","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"rd:page-inner","template":"<div class=\"flex flex-col overflow-hidden h-full\">\n  <!-- <div class=\"flex items-center h-[50px] border-b bg-white\">\n    <ae-design  class=\"flex-1\"\n                name=\"rd:toolbar\"\n                :document=\"document\" \n                :param-show-more-actions=\"params.showMoreActions\"\n    ></ae-design> \n  </div> -->\n\n  <!-- <div class=\"text-sm flex justify-between items-center h-[35px] px-4 border-b\">\n    <ae-design name=\"rd:path\" :document=\"document\" @selected=\"Aeppic.navigateTo($event)\"></ae-design> \n  </div> -->\n\n    <div class=\"fixed bg-yellow-50/50 z-50 \" v-if=\"Aeppic.LocalStorage.getItem('debug')\">\n  view: {{ params.view }}\n  </div> \n\n  <ae-design class=\"h-full\"\n            :name=\"'rd:' + (params.view || 'files')\"\n            :document=\"document\"\n            :params=\"{ ...params, filter: params.filter }\"\n  ></ae-design>\n</div>  ","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-10-09T11:52:08+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-10-09T11:55:18+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1696852518914,"ct":1696852328481,"a_depth":4,"a":["apps","45ada186-e9fd-451d-9dbd-2defc0b4f86f","4ec6a0e5-cf2d-4095-9b70-2e31a64d5679","554234d4-1a0a-4f31-b6a1-7899ca841995"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","91a90288-37bc-4f86-be38-4283833717d2","cb7a4c1b-703a-4b16-9190-aa2a26532688","954212d9-9cc7-4356-82e3-a80cf745da4d"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"e3b5ff92-e2ed-4105-9974-641655e97495","text":"rd:page-inner","v":"4b1fcad9a1bbdc3d"},"created":{"at":"2022-10-25T15:00:21+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1666710021942,"data":{"aliases":[],"controller":"class Controller {\n  init() {\n    this.FORMS = {\n      Folder: '24523534-125d-4ebe-9a83-bd7fed39ff92',\n      Page: 'd6f1cc99-f34e-4cb8-99b3-11f917485c25',\n    }\n\n    locals.FORMS = this.FORMS\n    locals.filter = ''\n    locals.filterBase = '(f.id:d6f1cc99-f34e-4cb8-99b3-11f917485c25 OR f.id:24523534-125d-4ebe-9a83-bd7fed39ff92)'\n\n    locals.sort = [{\n      fields: ['data.date', 'created.at'],\n      descending: true\n    }]\n  }\n} ","css":"","description":"","name":"rd:page-inner","packages":[],"template":"<div>\n  <div class=\"px-4 py-2  max-w-5xl mx-auto w-full bg-white rounded-md\">\n    <ae-form :document=\"document\" \n            layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\"\n            :auto-save=\"true\"\n            :auto-save-after=\"2500\"\n            :readonly=\"params.readonly\"\n    ></ae-form>\n\n    <ae-design name=\"rd:toolbar\"\n                :document=\"document\"\n                :param-disable-sort=\"true\"\n                @filter=\"locals.filter = $event\"\n    ></ae-design>\n\n\n    <ae-list  list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\" \n              query-id=\"2cc53ecb-aa99-4ccd-ad57-a083a66262d1\" \n              :root-document-id=\"document.id\" \n              :sort=\"locals.sort\" \n              param-design=\"rd:search-card\"\n              :param-design-params=\"{ hidePath: true }\"\n              @selected=\"Aeppic.drillInto($event, arguments[1])\"\n    ></ae-list>\n  </div> \n</div>\n \n "},"f":{"id":"design-form","text":"Design","v":"c2d9ae57c7a46896"},"id":"e7657c57-7291-4095-893f-a6551177457d","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-02-17T14:55:19+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"e3b5ff92-e2ed-4105-9974-641655e97495","text":"rd:page-inner","v":"4b1fcad9a1bbdc3d"},"p":"954212d9-9cc7-4356-82e3-a80cf745da4d","previous":{"v":"8b281b2bc3c1d6bb"},"stamps":[],"t":1739804119229,"v":"a6ec008775833877"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","227504b7-05fe-4ad1-a5fc-027639abff29"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"70826047-8be3-4025-acce-7f50016bc5ff","text":"rd:page-inner","v":"0d57e59f87af9af1"},"created":{"at":"2025-08-07T11:16:26+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1754387953649,"data":{"aliases":[],"controller":"class Controller {\n}","css":"","description":"","name":"rd:page-inner","packages":[],"template":"<ae-design :name=\"'rd:' + (params.view || 'list')\" :document=\"document\" class=\"h-full\" :params=\"params\"></ae-design>"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"ea828ad3-431c-409f-aa60-8c9bc27c7400","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-11-12T13:51:56+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"70826047-8be3-4025-acce-7f50016bc5ff","text":"rd:page-inner","v":"0d57e59f87af9af1"},"p":"227504b7-05fe-4ad1-a5fc-027639abff29","previous":{"v":"9b78571aea1a9608"},"stamps":[],"t":1762955516966,"v":"d9336536eb3ab87b"},{"a":["apps","94a64d89-d204-4918-b147-d717914fb03e","f254ce25-42f1-4333-8ee7-23554bf746c1","fb822f2f-880c-4676-be8b-cc557e822bc4"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2024-04-02T14:09:10+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1712066950186,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:page-inner","packages":[],"template":"<ae-form\n  layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\"\n  :document=\"document\"\n  :view=\"{ only: { fields: ['averageCostPerHour'] }}\"\n  :auto-save=\"true\"\n  :auto-save-after=\"1000\"\n></ae-form>\n\n<ae-design name=\"rd:page-list\" :document=\"document\"></ae-design>\n<ae-layout layout-id=\"582baf96-ad3a-4e6a-a77c-84509a6f4a0a\"></ae-layout>\n"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"eb1ea1f8-04ce-401b-b064-8d4f70192b98","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-03-06T10:45:40+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"p":"fb822f2f-880c-4676-be8b-cc557e822bc4","previous":{"v":"fb46c830e1a2e614"},"stamps":[],"t":1772793940154,"v":"9ebbce6fff209f14"},{"id":"ee34b586-d03f-4978-8e8a-68dc38058acd","v":"f5ddeab7b42eb4fb","previous":{"v":"initial"},"p":"a88e6030-17ca-4fe7-a1c0-128175a568ab","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-inner","template":" <ae-design class=\"h-full w-full\" name=\"rd:calendar\" :document=\"document\" :params=\"params\"></ae-design>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-01-11T09:35:35+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-01-11T09:35:48+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1704965748096,"ct":1704965735858,"a_depth":4,"a":["apps","49babc91-9123-4d92-b850-ce4d10f0e1b4","b6b5ad5b-124f-4b1c-8f55-74294451a2ba","a88e6030-17ca-4fe7-a1c0-128175a568ab"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","093f533e-9758-479c-97bc-8e4ba7dc3c2d"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"499946b6-ffd1-4a58-8f71-9614bfca4670","text":"rd:page-inner","v":"initial"},"created":{"at":"2026-02-04T12:40:55+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"ct":1770208855141,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:page-inner","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<ae-design \n  class=\"size-full\"\n  name=\"rd:page-inner_tabs\" \n  :document=\"document\"\n  :params=\"params\"\n></ae-design>"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"f118fe34-6019-44b6-abfa-8ff07aa75f25","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-02-04T12:40:55+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"499946b6-ffd1-4a58-8f71-9614bfca4670","text":"rd:page-inner","v":"initial"},"p":"093f533e-9758-479c-97bc-8e4ba7dc3c2d","stamps":[],"t":1770208855142,"v":"initial"},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","1f95980b-7afb-4968-94b3-e90a7865dcf5"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2025-07-09T16:31:51+00:00","backedBy":null,"by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":null},"ct":1752078711447,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Sammelinformation: '49af721d-7068-4dd7-8df4-a5f79b3804cf',\n    }\n\n    const stampsWhereUserHasToDoSth = [\n      '4bace9e6-9c80-4682-91b9-23f97d046e2c',\n      '71751199-53c5-459f-b5b9-c343ea507e53',\n      '591d7177-2ab2-4ac3-8321-d43461bcf1a3',\n    ]\n\n    locals.help = ''\n\n    locals.search = `f.id:${this.FORMS.Sammelinformation} (${stampsWhereUserHasToDoSth.map(s => `stamps.type:${s}`).join(' OR ')})`\n    locals.filter = ''\n\n    locals.sort = [\n      { field: 'data.creationTimestamp', descending: true },\n      { field: 'informationNumber', descending: true },\n      { field: 'id' },\n    ]\n\n    const stamps = await Aeppic.getAll(stampsWhereUserHasToDoSth)\n\n    locals.help = `Hier werden Sammelinformationen, welche Ihre Aktivität erfordern, gelistet.\n\n---\n\nSammelinformationen in folgendem Status werden angezeigt:\n\n${stamps.map(s => `- ${s.data.label || s.data.name}`).join('\\n')}  \n  `\n  }\n}\n   ","css":"","description":"","name":"rd:page-inner","packages":[],"template":"<div\n  class=\"flex-1 mx-auto flex flex-col gap-4 w-full bg-white overflow-visible bg-white max-w-5xl px-4 py-2 my-2 lg:shadow-md lg:rounded-md\"\n>\n  <div class=\"flex items-center\">\n    <div class=\"font-bold text-lg p-2\">Meine Sammelinformationen</div>\n\n    <ae-control name=\"rd:help\" :document=\"document\" :param-text=\"locals.help\"></ae-control>\n\n    <div class=\"flex-1\"></div>\n\n    <ae-design\n      name=\"rd:toolbar\"\n      :document=\"document\"\n      :param-initial-filter=\"locals.filter\"\n      :param-initial-sort=\"locals.sort\"\n      param-list-form-id=\"49af721d-7068-4dd7-8df4-a5f79b3804cf\"\n      param-sort-fields=\"data.informationNumber,data.informationWorkflowPhase,data.informationTitle\"\n      param-filter-fields=\"data.creationTimestamp,data.submissionTimestamp,data.acceptanceTimestamp,data.informationNumber,data.informationWorkflowPhase,data.informationTitle\"\n      @filter=\"locals.filter = $event\"\n      @sort=\"locals.sort = $event\"\n    ></ae-design>\n  </div>\n\n\n  <ae-list\n    list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\"\n    :search=\"locals.search\"\n    :filter=\"locals.filter\"\n    :sort=\"locals.sort\"\n    param-design=\"rd:card\"\n    :param-divide=\"true\"\n    @selected=\"Aeppic.drillInto($event, arguments[1])\"\n    :search-options=\"{ searchAllFields: true }\"\n    param-empty-text=\"Keine Sammelinformationen gefunden.\"\n  ></ae-list>\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"f17353da-2efd-4e88-8f75-1db9ac1f5762","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-07-17T14:10:14+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"1f95980b-7afb-4968-94b3-e90a7865dcf5","previous":{"v":"56e21eee6c844ac0"},"stamps":[],"t":1752761414766,"v":"f819586c63aeea36"},{"id":"f236170d-ae39-40ad-9886-d219450fcb92","v":"initial","cloneOf":{"id":"0e0d92ca-e7d2-4cf9-8c79-8a3f8bdf65ff","v":"initial","text":"rd:page-inner"},"originalCloneOf":{"id":"0e0d92ca-e7d2-4cf9-8c79-8a3f8bdf65ff","v":"initial","text":"rd:page-inner"},"p":"8477092b-5495-424d-a394-8234b0819882","f":{"id":"design-form","v":"22a757f630104010","text":"Design"},"data":{"name":"rd:page-inner","template":"<ae-design name=\"rd:page-list\" :document=\"document\"\n:params=\"params\"></ae-design>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2026-05-19T09:59:09+00:00","by":"09763886-6748-4a56-8e0e-54a2293ee96b","backedBy":"","impersonatedBy":"","from":"","client":"server"},"modified":{"at":"2026-05-19T09:59:09+00:00","by":"09763886-6748-4a56-8e0e-54a2293ee96b","backedBy":"","impersonatedBy":"","from":"","client":"server"},"t":1779184749261,"ct":1779184749261,"a_depth":4,"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","8477092b-5495-424d-a394-8234b0819882"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","bd4df555-2c56-4a5f-82f0-7e4745372f51","b42c9135-e564-4d50-abd1-4d753921120f","42e3adf4-96eb-4eaa-8e80-4bdd671540a3"],"a_depth":4,"a_forms":["folder","application-form","folder","form"],"cloneOf":{"id":"49757cf2-246d-47c0-a917-52a092a6a487","text":"page--left","v":"1f79a0cf6cbe9ce9"},"created":{"at":"2022-12-01T13:24:12+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1669901052230,"data":{"aliases":[],"controller":"class Controller {\n  init() {\n    this.FORMS = {\n      ProcessFolder: 'f0cf1b33-f840-4d4b-9335-c10daa7a335e',\n      Process: '527f9bb3-01bd-48cc-ad5b-08b1bba3af33',\n    }\n\n    locals.FORMS = this.FORMS\n    locals.filter = ''\n    locals.filterFolders = `(f.id:${this.FORMS.ProcessFolder}) `\n    locals.filterFoldersAndFiles = `(f.id:${this.FORMS.ProcessFolder} OR f.id:${this.FORMS.Process}) `\n  }\n}  ","css":"","description":"","name":"rd:page-inner","packages":[],"template":"<div>\n  <div class=\"px-4 py-2  max-w-5xl mx-auto w-full\">\n    <ae-design name=\"rd:toolbar\"\n                :document=\"document\"\n                :param-disable-sort=\"true\"\n                @filter=\"locals.filter = $event\"\n                :param-list-form-id=\"locals.FORMS.ProcessFolder\"\n    ></ae-design>\n\n    <ae-list  list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\" \n              query-id=\"71d5633a-9dbd-4c96-b6e0-1c6ffc5ef0f1\" \n              :filter=\"locals.filter? locals.filterFoldersAndFiles + locals.filter : locals.filterFolders\"\n              :root-document-id=\"document.id\" \n              :sort=\"{ fields: ['data.name', 'id'] }\" \n              :param-design=\"locals.filter ? 'rd:search-card' : 'rd:card-inner'\"\n              @selected=\"Aeppic.drillInto($event, arguments[1])\"\n    ></ae-list>\n  </div> \n</div>\n  "},"f":{"id":"design-form","text":"Design","v":"24435d748c76f819"},"id":"f5cd77f8-46db-4c18-ba4a-a72349e3b2e2","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-02-10T10:43:11+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"49757cf2-246d-47c0-a917-52a092a6a487","text":"page--left","v":"1f79a0cf6cbe9ce9"},"p":"42e3adf4-96eb-4eaa-8e80-4bdd671540a3","previous":{"v":"2e411ab730e89f5f"},"stamps":[],"t":1770720191591,"v":"a5c64b2b7a39b8ca"},{"id":"f7a627dd-0995-4fa2-9dbd-4e9dfb818467","v":"cb2a0dfab6bdd522","cloneOf":{"id":"d6faf3ee-de60-470b-a54c-4a5fa4d8dc2c","v":"c8b3c315b02b2495","text":"page"},"originalCloneOf":{"id":"d6faf3ee-de60-470b-a54c-4a5fa4d8dc2c","v":"c8b3c315b02b2495","text":"page"},"previous":{"v":"initial"},"p":"37f5737f-06e3-41db-8ce3-af2d42e5d61a","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"rd:page-inner","template":"<div class=\"p-2 flex flex-col h-full\">\n  <div class=\"flex flex-col h-min-[100px]\">\n    <div class=\"text-2xl\">NFC Verwaltung</div>\n    <template v-if=\"locals.available\">\n      <div v-if=\"locals.waiting\">\n        <ae-icon class=\"fa fa-spinner-third fa-spin\"></ae-icon> Warte auf NFC-Tag\n      </div>\n      <div v-else>\n        <ae-icon class=\"fa fa-info-circle\"></ae-icon> Wählen Sie einen Barcode zum Schreiben aus der Liste aus\n      \n        <div v-if=\"locals.success\" class=\"flex align-center gap-2\">\n          <ae-icon class=\"fa fa-check\"></ae-icon>\n          <div>\n          NFC-Tag erfolgreich beschrieben:\n          </div>\n          <ae-design class=\"inline font-mono\" name=\"barcode\" :document=\"locals.lastDocument\"></ae-design>\n        </div>\n        <div v-if=\"locals.error\" class=\"text-red-500 flex flex-col\">\n          <div class=\"flex gap-2\">\n            <ae-icon class=\"fa fa-times\"></ae-icon>\n            <div>Fehler beim Schreiben</div>\n          </div>\n\n          <div class=\"font-mono\">\n            {{locals.error}}\n          </div>\n        </div>\n      </div>\n    </template>\n    <div v-else class=\"flex gap-2 items-center text-red-500\">\n      <ae-icon class=\"fa fa-ban\"></ae-icon>\n      Ihr Gerät und/oder Browser unterstützt das Schreibes von NFC-Tags aus bizpin heraus nicht. (Support siehe <a href=\"https://caniuse.com/webnfc\" target=\"_blank\">caniuse.com</a>)\n    </div>\n  </div>\n\n  <div class=\"overflow-hidden overflow-y-scroll p-1 flex-1\">\n    <div v-for=\"anlage of locals.anlages\" class=\"p-2 bg-white border rounded-lg my-2 flex justify-between\">\n      <div class=\"flex flex-col\">\n        <ae-design class=\"text-lg\" name=\"title\" :document=\"anlage\"></ae-design> \n        <ae-design class=\"text-sm text-theme-500\" name=\"title\" :document-id=\"anlage.p\"></ae-design> \n      </div>\n      <ae-layout  layout-id=\"a2cd7699-9b46-494f-8f89-cb1f62151d82\"\n                  param-text=\"Codes anzeigen\"\n                  @selected=\"controller.getCodesForAnlage(anlage)\"\n                  :param-disabled=\"params.readonly\"\n      ></ae-layout>\n    </div>\n\n    <ae-list  v-if=\"locals.codes.length\"\n              list-id=\"2e798091-303f-406b-a42a-93aa1cd8425c\"\n              :documents=\"locals.codes\"\n              param-design=\"barcode-card,search-card\"\n              param-title=\"Codes der Anlagenteile\"\n              :param-design-params=\"{ usedDocumentIds: locals.usedDocumentIds, succededDocumentIds: locals.succededDocumentIds }\"\n              @selected=\"controller.write($event)\"\n    ></ae-list>  \n  </div>\n</div>","css":"","controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Wartungsplan: '522ca40d-810b-4021-835f-beeace3af7fa',\n      Anlagenteil: '816b2d0e-5158-4f0c-a5cf-6069bb76de69',\n      Anlage: '5150f703-e93a-4e54-a998-a06c0e962e71',\n    }\n\n    locals.available = typeof NDEFReader !== 'undefined' /* Scan and write NFC tags */ \n\n    locals.usedDocumentIds = []\n    locals.succededDocumentIds = []\n    locals.active = false\n    locals.success = false\n    locals.error = null\n    locals.lastDocument = null\n\n    locals.anlages = []\n    locals.codes = []\n\n    locals.anlages = await Aeppic.find(`a:${document.a[0]} a_forms:d60a5613-e046-4341-9bc9-34a241e8a28a f.id:${this.FORMS.Anlage}`, { size: 9999, sort: [{ field: 'p', }, { field: 'data.name' }, { field: 'id' }] })\n  }\n\n  async getCodesForAnlage(anlage) {\n    // const codes = await Aeppic.find(`p:${anlage.id} f.id:${this.FORMS.Anlagenteil}`, { size: 9999, sort: [{ field: 'data.name' }, { field: 'id' }] })\n    const codes = await Aeppic.getAll(anlage.data.anlagenteile)\n\n    locals.codes = codes\n  }\n\n  async write(doc) {\n    if (!locals.available) {\n      return\n    }\n\n    locals.lastDocument = doc\n    console.log(doc)\n\n    if (!doc?.data.barcode) {\n      locals.waiting = false\n      locals.success = false\n      locals.error = 'Kein Barcode hinterlegt'\n\n      return\n    }\n\n    if (!locals.usedDocumentIds.includes(doc.id)) {\n      locals.usedDocumentIds.push(doc.id)\n    }\n\n    locals.waiting = true\n    locals.error = null\n\n    try {\n      const ndef = new NDEFReader();\n      await ndef.write(doc.data.barcode)\n\n      locals.waiting = false\n      locals.success = true\n\n      locals.succededDocumentIds.push(doc.id)\n    } catch (error) {\n      const writeIsSuperseeded = error && `${error}`.includes('cancelled due to a new push request')\n\n      if (writeIsSuperseeded) {\n        return\n      }\n\n      locals.success = false\n      locals.error = `${error}`\n    }\n\n    locals.waiting = false\n  }\n} ","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-05-23T10:02:01+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-05-23T10:02:08+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1716458528148,"ct":1716458521630,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","37f5737f-06e3-41db-8ce3-af2d42e5d61a"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","1887a103-bf3b-473c-8cb7-4f1afad0286b","9b02b1b6-e32b-41ec-b451-dba59bc5847b","573419c5-1ab4-43c9-94ba-a831ae580d6a"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2024-11-14T14:27:26+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1731594446389,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:page-inner","packages":[],"template":"<ae-design name=\"rd:page-list\"\n          :document=\"document\"\n          :params=\"params\"\n></ae-design>"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"f988e1fa-24f1-4f02-8a7d-e3324288720b","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2024-11-14T14:27:35+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"573419c5-1ab4-43c9-94ba-a831ae580d6a","previous":{"v":"initial"},"stamps":[],"t":1731594455559,"v":"6b195a958e8d677c"},{"id":"fa1542bd-067d-428f-9212-dae08b93746f","v":"1a6044aa290121f2","previous":{"v":"7f7d5255208c4210"},"p":"50a934e0-859f-4d20-81c3-a91c38a4a982","f":{"id":"design-form","v":"22a757f630104010","text":"Design"},"data":{"name":"rd:page-inner","template":"<ae-design name=\"rd:page-list\" :document=\"document\"\n></ae-design>\n           <!-- @selected=\"Aeppic.navigateTo($event, { view: 'builder' })\" -->\n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-09-27T14:44:40+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-09-27T14:54:59+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1727448899784,"ct":1727448280574,"a_depth":4,"a":["apps","3fbe0efd-713a-457a-a34c-3a12aa19d6bb","0fb162f4-0f78-4c1e-aad2-43c27e6d98cb","50a934e0-859f-4d20-81c3-a91c38a4a982"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","d4d60ebf-b329-44dd-a97f-d1a905bddfc5"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"0e0d92ca-e7d2-4cf9-8c79-8a3f8bdf65ff","text":"rd:page-inner","v":"initial"},"created":{"at":"2025-08-04T11:40:50+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1754307650577,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:page-inner","packages":[],"template":"<ae-design name=\"rd:page-list\" :document=\"document\"\n:params=\"params\"></ae-design>"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"fb9cc786-b514-4287-a97d-b94364cecacb","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-08-04T11:40:50+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"0e0d92ca-e7d2-4cf9-8c79-8a3f8bdf65ff","text":"rd:page-inner","v":"initial"},"p":"d4d60ebf-b329-44dd-a97f-d1a905bddfc5","stamps":[],"t":1754307650577,"v":"initial"},{"id":"fc0faa42-728e-405e-b64a-8e233f0fa7bf","v":"initial","cloneOf":{"id":"1e0c6a0a-df38-4cc4-9b39-13ab07a8581b","v":"cdcf8645cec46356","text":"rd:page-inner"},"originalCloneOf":{"id":"1e0c6a0a-df38-4cc4-9b39-13ab07a8581b","v":"cdcf8645cec46356","text":"rd:page-inner"},"p":"4ef9e83e-1aa5-4709-bbd5-24e98ea0148c","f":{"id":"design-form","v":"22a757f630104010","text":"Design"},"data":{"name":"rd:page-inner","template":"","css":"","controller":"class Controller {\n  init() {\n    Aeppic.navigateTo(document.p)\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2026-03-23T13:30:09+00:00","by":"729fa027-7e7e-4b06-9602-f535c43824f0","backedBy":"","impersonatedBy":"","from":"","client":"server"},"modified":{"at":"2026-03-23T13:30:09+00:00","by":"729fa027-7e7e-4b06-9602-f535c43824f0","backedBy":"","impersonatedBy":"","from":"","client":"server"},"t":1774272609735,"ct":1774272609735,"a_depth":4,"a":["apps","e1bc93d1-b6c6-4711-a98f-675371c40326","1aaeb13c-eaeb-41f4-b07e-af972bef35bc","4ef9e83e-1aa5-4709-bbd5-24e98ea0148c"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","144e85c0-d7f9-4b20-8928-be30f0c78bda","8e6ee7d3-9122-4a2e-8aaf-9fb3bd204b23","d2ac3563-3c3f-4f02-b923-9b67abf98d10"],"a_depth":4,"a_forms":["folder","application-form","folder","form"],"created":{"at":"2023-02-21T09:31:36+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1676971896859,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:page-inner","packages":[],"template":"<div class=\"flex h-full\" ref=\"container\">\n  <div class=\"py-0 lg:pt-2 lg:pb-10 flex-1 h-full overflow-auto basis-2/3\">\n    <div class=\"flex flex-col max-w-5xl m-auto gap-5\">\n      <ae-form  :document=\"document\"\n                :auto-save=\"true\"\n                :auto-save-after=\"2500\"\n                layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\"\n                :readonly=\"params.readonly\"\n      ></ae-form>\n\n      <ae-layout layout-id=\"7213891a-dc5d-4580-9dca-1bd0412f0b60\"\n            :param-document=\"document\"\n      ></ae-layout> \n\n<!-- FIXME: add watchParam('document') to layout -->\n      <ae-layout layout-id=\"1eeebe3f-56cb-4737-97e4-15adde3ab4f9\"\n            :param-document=\"document\"\n            :key=\"id('workingtime' + document.id)\"\n      ></ae-layout> \n\n<!-- FIXME: add watchParam('document') to layout -->\n      <ae-layout layout-id=\"10590b76-115a-4539-a911-6994500ab02a\"\n            :param-document=\"document\"\n            :key=\"id('trackedtime' + document.id)\"\n      ></ae-layout> \n\n      <ae-layout layout-id=\"636104ed-aa41-4ba1-be77-928bb5de5b39\"\n            :param-document=\"document\"\n      ></ae-layout> \n    </div>\n  </div>\n\n  <ae-layout  v-if=\"params.windowWidth > 1280\"\n              layout-id=\"0e6b3b93-8e22-4616-9389-a00a6a1a4f59\"\n              :param-document=\"document\"\n              :param-highlight-comment=\"params.highlightComment\"\n              :param-no-close=\"true\"\n              class=\"h-full w-full basis-1/3 max-w-[500px] shadow\"\n  ></ae-layout>\n</div>\n\n   "},"f":{"id":"design-form","text":"Design","v":"5dbbefb312ab61e2"},"id":"fc4d6dc6-3de2-48a2-aab1-f3e3aacf7b6f","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2024-11-21T15:06:13+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"d2ac3563-3c3f-4f02-b923-9b67abf98d10","previous":{"v":"2c3cb3ba4b182a72"},"stamps":[],"t":1732201573129,"v":"d195e1422f35ca08"},{"id":"fc7c77b0-ee2f-4a5c-a79f-de88eea25245","v":"6d449745bfe14192","previous":{"v":"2dbf120c95ec7956"},"p":"59b7188e-1296-4466-a9c2-d6255496e7d6","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-inner","template":"<div class=\"flex h-full\" ref=\"container\">\n  <div class=\"flex-1 h-full overflow-auto\">\n    <!-- <button @click=\"locals.readonly = !locals.readonly\">\n      readonly\n    </button> -->\n    <ae-form  :document=\"document\"\n              layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\"\n              class=\"w-full\"\n              :readonly=\"true\"\n    ></ae-form>\n  </div> \n</div>   ","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-08-25T12:34:11+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2024-02-16T12:45:22+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1708087522217,"ct":1692966851272,"a_depth":4,"a":["apps","b9df606f-b33a-48ad-ba91-a82fa7868fa4","f0010376-2737-42c5-aaf8-f8b8e1cd0449","59b7188e-1296-4466-a9c2-d6255496e7d6"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","4338bec0-a02b-4126-9ba9-9d7bfbaf5bac"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"b75be61a-1244-4344-ba9f-b52d7d1835a0","text":"rd:page-inner","v":"initial"},"created":{"at":"2025-08-05T10:07:41+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1754388461352,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:page-inner","packages":[],"template":"<ae-design name=\"rd:page-list\" :document=\"document\"\n:params=\"params\"></ae-design>"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"fd859b8b-8f9c-40e7-961a-d5d4b80455fe","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-08-05T10:07:41+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"b75be61a-1244-4344-ba9f-b52d7d1835a0","text":"rd:page-inner","v":"initial"},"p":"4338bec0-a02b-4126-9ba9-9d7bfbaf5bac","stamps":[],"t":1754388461352,"v":"initial"},{"a":["apps","5093ea32-8d03-430d-afce-fd4f6c34675e","6f523f5c-5db0-4071-b16b-132f4cf642ac","b91dfd60-9bad-478b-92cb-c9abde2c8d36"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2025-12-09T11:38:02+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"ct":1765280282957,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      RessourcenKalender: 'a88e6030-17ca-4fe7-a1c0-128175a568ab',\n      Schmiedekalender: '43f2603c-e6b0-4a91-9087-4f103c96a2b4'\n    }\n\n    locals.documents = await Aeppic.find(Aeppic.Query.descendants(document.id).forms(Object.values(this.FORMS)))\n  }\n}","css":"","description":"","name":"rd:page-inner","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<ae-list\n  list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\"\n  :params=\"{}\"\n  @selected=\"Aeppic.navigateTo($event)\"\n  :documents=\"locals.documents\"\n></ae-list>\n"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"fe6fd0d8-d628-4dc4-83ae-ee73df0bf688","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-12-09T11:42:39+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"p":"b91dfd60-9bad-478b-92cb-c9abde2c8d36","previous":{"v":"be34aaafc0218df4"},"stamps":[],"t":1765280559372,"v":"7388c9ec8a0a87e6"},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","50c3c7c5-c3d4-460c-b34d-0d61a4cb09ae"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2023-05-02T13:14:00+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1683033240122,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:page-inner","packages":[],"template":"<ae-design class=\"h-full overflow-hidden\" v-if=\"params.tab === 'document'\" name=\"rd:page-inner_default\" :document=\"document\" :params=\"params\"></ae-design>\n<ae-design class=\"h-full overflow-auto\" v-else-if=\"params.tab === 'applications'\" name=\"rd:applications\" :document=\"document\" :params=\"params\"></ae-design>\n<ae-design class=\"h-full overflow-auto\" v-else-if=\"params.tab === 'collective'\" name=\"rd:collective\" :document=\"document\" :params=\"params\"></ae-design>\n"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"ffacaf34-a899-40eb-a420-80e97b7ef528","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-07-07T12:52:10+00:00","backedBy":null,"by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":null},"p":"50c3c7c5-c3d4-460c-b34d-0d61a4cb09ae","previous":{"v":"f7d7ed79847d4068"},"stamps":[],"t":1751892730362,"v":"7921dc562cb9e333"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","093f533e-9758-479c-97bc-8e4ba7dc3c2d"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"70447c42-c855-4625-918d-f24d8b258d98","text":"rd:page-inner","v":"0a563f7ecd91eb55"},"created":{"at":"2026-01-19T12:34:34+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"ct":1768826074854,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:page-inner old","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<div class=\"flex flex-col gap-4\">\n  <ae-design name=\"rd:page-inner_default\" :document=\"document\"></ae-design>\n  <ae-design name=\"rd:usage-list\" :document=\"document\" param-field-name=\"data.location\" :param-forms=\"['33e3b54d-6b4b-4aa3-8f70-2b834b27bf66','227504b7-05fe-4ad1-a5fc-027639abff29']\"></ae-design>\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"860fd7a1-0390-4223-8733-b4359bf6c073","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-02-04T12:41:21+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"70447c42-c855-4625-918d-f24d8b258d98","text":"rd:page-inner","v":"0a563f7ecd91eb55"},"p":"093f533e-9758-479c-97bc-8e4ba7dc3c2d","previous":{"v":"b839749c243a999b"},"stamps":[],"t":1770208881917,"v":"060cf8b0853f0797"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","33e3b54d-6b4b-4aa3-8f70-2b834b27bf66"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2025-09-30T13:56:52+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1759240612457,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:page-inner old","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<ae-design \n  :name=\"'rd:' + (params.tab || 'facility')\" \n  :document=\"document\"\n  :params=\"params\"\n  class=\"size-full\"\n></ae-design>"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"94421cfd-4df6-4009-8392-9ef0cbf2c4ab","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-04-28T07:47:27+00:00","backedBy":"","by":"09763886-6748-4a56-8e0e-54a2293ee96b","client":"server","from":"","impersonatedBy":""},"p":"33e3b54d-6b4b-4aa3-8f70-2b834b27bf66","previous":{"v":"a0ce755e1b3d45fc"},"stamps":[],"t":1777362447813,"v":"37bd19b09e4f08bd"},{"a":["apps","77ee8815-2c3a-4bb5-abd9-90541a545a24","1cc4b977-c14d-4587-af47-d6ac230f60b3"],"a_depth":3,"a_forms":["folder","application-form","design-folder"],"created":{"at":"2023-05-02T13:15:12+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1720684627136,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.form = null\n    locals.form = await Aeppic.getFormForDocument(document)\n\n    locals.allowUndefinedFields = locals.form.data.allowUndefinedFields === true\n  }\n} ","css":"","description":"","name":"rd:page-inner_default","packages":[],"template":"<div class=\"flex h-full overflow-hidden\" ref=\"container\">\n  <div class=\"w-full overflow-hidden flex-1 flex flex-col gap-1\">\n    <div class=\"w-full flex-1 overflow-y-auto basis-2/3 pb-1 overflow-x-auto\">\n    <!-- here is where i wnat to show the rd:page-inner_default desigh -->\n      <ae-form  :document=\"document\" \n                :auto-save=\"true\"\n                :auto-save-after=\"1000\"\n                layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\"\n                class=\"w-full\"\n                :readonly=\"params.readonly\"\n      ></ae-form>\n    </div>\n\n    <ae-design class=\"w-full\" name=\"rd:page-workflow\" :document=\"document\" :watch=\"false\"></ae-design>\n  </div>\n  <template v-if=\"params.windowWidth >= 1280\">\n    <!-- comments are here -->\n    <ae-layout  v-if=\"!locals.allowUndefinedFields && !params.disableComments\"\n                layout-id=\"0e6b3b93-8e22-4616-9389-a00a6a1a4f59\"\n                :param-document=\"document\"\n                :param-highlight-comment=\"params.highlightComment\"\n                :param-no-close=\"true\"\n                class=\"h-full w-full basis-1/3 min-w-[410px] max-w-[500px] lg:mx-2\"\n    ></ae-layout>\n\n<!-- this can go -->\n    <ae-design  v-if=\"locals.allowUndefinedFields\"\n                name=\"rd:undefined-fields\"\n                :document=\"document\"\n                class=\"h-full w-full basis-1/3 min-w-[410px] max-w-[500px] shadow lg:my-2 lg:ml-2\"\n                :param-readonly=\"params.readonly\"\n    ></ae-design>\n  </template>\n</div>\n\n"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"620246f6-c3e2-490c-8e80-86c6da45f835","inheritedLocks":[null,null,null,null],"locks":[],"meta":{},"modified":{"at":"2026-04-21T07:59:59+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"p":"1cc4b977-c14d-4587-af47-d6ac230f60b3","previous":{"v":"0a1839a495d85397"},"stamps":[],"t":1776758399276,"v":"a46001947a50a390"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","02132d06-c73b-4101-bde0-2fe98224a35a"],"a_depth":3,"a_forms":["folder","application-form","design-folder"],"cloneOf":{"id":"92880541-7d0c-48ce-b659-5f7bf0a716fd","text":"rd:direct child part","v":"3696b3a2672ac7c4"},"created":{"at":"2026-02-04T11:55:30+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"ct":1770206130395,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Areal: '5f4a87a7-5557-4004-bfdc-2fb26c71e0c9',\n      'Gebäude': '5a4fafb4-3c2b-4826-8a85-7c804ee4ac52',\n      'Gebäudeteil': '1e3214b4-b81e-4ac2-a788-c2051af016ab',\n      TechnischerPlatz: '093f533e-9758-479c-97bc-8e4ba7dc3c2d',\n      Anlage: '33e3b54d-6b4b-4aa3-8f70-2b834b27bf66',\n      Aggregat: '31e6efab-61df-4b91-8250-3bfcfd491c6c',\n    }\n    this.associations = {\n      Areal: 'Gebäude',\n      'Gebäude': 'Gebäudeteil',\n      'Gebäudeteil': 'TechnischerPlatz',\n      TechnischerPlatz: 'Anlage',\n      Anlage: 'Aggregat',\n    }\n    locals.ready = false\n\n    locals.childForm = await Aeppic.getForm(this.getChildFormId(document.f.id))\n    \n    locals.ready = true\n\n  }\n\n  getChildFormId(currentId) {\n    const currentName = Object.keys(this.FORMS).find(key => this.FORMS[key] === currentId);\n\n    if (!currentName) {\n      console.warn('Unknown Form ID:', currentId);\n      return null;\n    }\n\n    const childName = this.associations[currentName];\n\n    if (!childName) {\n      return null;\n    }\n\n    return this.FORMS[childName];\n  }\n\n  handleSelected(event, a) {\n    Aeppic.drillInto(event, a)\n  }\n}","css":"","description":"","name":"rd:page-inner_tabs","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<div class=\"h-full flex w-full bg-gray-50 gap-2\">\n  <ae-design \n    class=\"overflow-y-auto w-64 bg-white p-2 shadow-md m-2 rounded-md flex-shrink-0 overflow-x-auto min-w-64\"\n    name=\"rd:folder-tree\"\n    :document=\"document\"\n    :param-start-at-depth=\"2\"\n    :param-truncate=\"false\"\n    @selected=\"controller.handleSelected($event, arguments[1])\"\n  ></ae-design>\n  <ae-design \n    class=\"h-full overflow-auto flex-1\"\n    :name=\"'rd:' + (params.tab || 'page-inner_default')\"\n    :document=\"document\"\n    :param-filter=\"locals.filter\"\n    :param-view=\"params.view\"\n    :param-tab=\"params.tab\"\n    :param-window-width=\"params.windowWidth\"\n  ></ae-design>\n</div>  "},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"013c2fc7-4df4-4dc6-8ad3-dc44690028f4","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2026-05-07T13:27:08+00:00","backedBy":"","by":"09763886-6748-4a56-8e0e-54a2293ee96b","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"92880541-7d0c-48ce-b659-5f7bf0a716fd","text":"rd:direct child part","v":"3696b3a2672ac7c4"},"p":"02132d06-c73b-4101-bde0-2fe98224a35a","previous":{"v":"012e5a0dfa433f92"},"stamps":[],"t":1778160428758,"v":"9f4aeed6b9724643"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","5011479f-3ef7-4c66-810b-3bb65f992712"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2026-04-09T08:06:03+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"ct":1775721963011,"data":{"aliases":[],"controller":"class Controller {\n  init() {\n    locals.tab = this.initialTab\n  }\n\n  get initialTab() {\n    if (!this.anlageSelected) return 'selectAnlage'\n    else if (!this.wartungSelected) return 'selectWartung'\n    else return 'formView'\n  }\n\n  get anlageSelected() {\n    return document.data.facilities && document.data.facilities.length >= 1\n  }\n\n  get wartungSelected() {\n    return document.data.maintenance && document.data.maintenance.length >= 1\n  }\n\n  get tabs() {\n    return [\n      { \n        id: 'selectAnlage', \n        label: 'Anlage Wählen', \n        icon: 'fa fa-building', \n      },\n      { \n        id: 'selectWartung', \n        label: 'Wartung wählen', \n        icon: 'fa fa-wrench',\n      },\n      { \n        id: 'formView', \n        label: 'Details', \n        icon: 'fa fa-file-alt',\n      }\n    ]\n  }\n\n  async handleAnlageSelected(anlage) {\n    const editable = await Aeppic.edit(document)\n    editable.addReference('facilities', anlage)\n    Aeppic.save(editable)\n  }\n}","css":"","description":"","name":"rd:page-innera","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<div class=\"flex h-full overflow-hidden\" ref=\"container\">\n  \n  <div class=\"w-full overflow-hidden flex-1 flex flex-col gap-1\">\n    \n    <div class=\"flex gap-2 p-2 shrink-0\">\n      <ae-layout\n        v-for=\"tab in controller.tabs\"\n        :key=\"tab.id\"\n        layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n        @selected=\"locals.tab = tab.id\"\n        :param-text=\"tab.label\"\n        :param-icon=\"tab.icon\"\n        :param-primary=\"locals.tab === tab.id\"\n        :param-disabled=\"tab.disabled\"\n        param-border=\"border border-neutral-200\"\n      ></ae-layout>\n    </div>\n\n    <div class=\"w-full flex-1 overflow-y-auto pb-1 overflow-x-auto bg-slate-50 dark:bg-slate-900\">\n      \n      <template v-if=\"locals.tab === 'selectAnlage'\">\n        <div class=\"mx-auto max-w-5xl h-full p-2\">\n          <div class=\"bg-white dark:bg-slate-800 rounded-md p-4 xl:shadow flex flex-col overflow-auto h-full\">\n            <!-- <h2 class=\"text-lg font-bold mb-4\">Anlage auswählen</h2> -->\n            <ae-layout\n              layout-id=\"7bbea473-8b07-47de-950a-e93c996adaa2\"\n              :param-document=\"document\"\n              @selected=\"controller.handleAnlageSelected($event)\"\n            ></ae-layout>\n          </div> \n        </div>\n      </template>\n\n      <template v-else-if=\"locals.tab === 'selectWartung'\">\n        <div class=\"mx-auto max-w-5xl h-full p-2\">\n          <div class=\"bg-white dark:bg-slate-800 rounded-md p-4 xl:shadow flex flex-col overflow-auto h-full\">\n            <h2 class=\"text-lg font-bold mb-4\">Wartung auswählen</h2>\n          </div>\n        </div>\n      </template>\n\n      <template v-else>\n        <ae-design \n          :document=\"document\"\n          name=\"rd:page-inner_default\"\n        ></ae-design>\n      </template>\n\n    </div>\n  </div>\n\n  <template v-if=\"params.windowWidth >= 1280\">\n    <ae-layout  \n      v-if=\"!params.disableComments\"\n      layout-id=\"0e6b3b93-8e22-4616-9389-a00a6a1a4f59\"\n      :param-document=\"document\"\n      :param-highlight-comment=\"params.highlightComment\"\n      :param-no-close=\"true\"\n      class=\"h-full w-full basis-1/3 min-w-[410px] max-w-[500px] lg:m-2 shadow-sm rounded border border-neutral-200\"\n    ></ae-layout>\n  </template>\n\n</div>"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"ca86694b-b8d5-496d-acc3-a56dc963e6e7","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-04-17T07:26:15+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"p":"5011479f-3ef7-4c66-810b-3bb65f992712","previous":{"v":"b461876722444773"},"stamps":[],"t":1776410775307,"v":"d8daa201af266a7e"},{"a":["apps","77ee8815-2c3a-4bb5-abd9-90541a545a24","1cc4b977-c14d-4587-af47-d6ac230f60b3"],"a_depth":3,"a_forms":["folder","application-form","design-folder"],"created":{"at":"2023-11-24T13:09:51+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1700831391318,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.sort = params.initialSort || 'data.name'\n    locals.filter =''\n    locals.allowedChildrenForms = []\n    locals.commands = []\n    locals.listFormId = ''\n    locals.listeners = {\n      ...$listeners,\n      selected: (event, ...args) => {\n        if ($listeners?.selected) {\n          $emit('selected', event, ...args);\n        } else {\n          Aeppic.drillInto(event, ...args);\n        }\n      }\n    }\n\n    this.form = await Aeppic.getForm(document.f.id)\n    this.setSearch(params.search)\n\n    watchParam('search', (search) => { this.setSearch(search) })\n  }\n\n  setSearch(search) {\n    locals.allowedChildrenForms = this.form.data.allowedChildrenForms\n    locals.commands = this.form.data.commands\n    locals.listFormId = params.filterFormId || locals.allowedChildrenForms[0]?.id\n\n    if (search) {\n      locals.search = search\n    } else if (this.form.data.allowedChildrenForms.length) {\n      locals.search = `p:${document.id} (${this.form.data.allowedChildrenForms.map(f => `f.id:${f.id}`).join(' OR ')})`\n    } else {\n      locals.search = `p:${document.id}`\n    }\n  }\n} ","css":"","description":"","name":"rd:page-list","packages":[],"template":"<div\n  class=\"p-2 mx-auto flex flex-col gap-4 w-full h-full bg-white overflow-hidden bg-white max-w-5xl xl:shadow-md xl:rounded-md\"\n>\n  <ae-design\n    name=\"rd:toolbar\"\n    :document=\"document\"\n    @filter=\"locals.filter = $event\"\n    @sort=\"locals.sort = $event\"\n    :param-initial-sort=\"locals.sort\"\n    :param-list-form-id=\"locals.listFormId\"\n    :param-commands=\"locals.commands\"\n    :param-sort-fields=\"params.sortFields\"\n    :param-filter-fields=\"params.filterFields\"\n  ></ae-design>\n\n  <ae-list\n    class=\"flex-1 min-h-0 overflow-auto\"\n    list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\"\n    v-on=\"locals.listeners\"\n    :search=\"locals.search\"\n    :filter=\"locals.filter\"\n    :sort=\"locals.sort\"\n    :query-once=\"params.queryOnce\"\n    :search-options=\"{ searchAllFields: true, size: 9999 }\"\n    :param-design-params=\"{ showFormTitle: params.showFormTitle ?? true, hidePath: true, ...params.designParams }\"\n    :param-design=\"params.design || 'rd:search-card'\"\n    :param-use-scroller=\"true\"\n    :param-scroller-height=\"params.scrollerHeight\"\n    :param-divide=\"true\" \n    :param-no-watch=\"params.noWatch\"\n  ></ae-list>\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"0e9551f1-2fee-49f5-b6ec-0c5267f721e3","inheritedLocks":[null,null,null,null],"locks":[],"meta":{},"modified":{"at":"2026-07-28T14:38:55+00:00","backedBy":"","by":"b7485498-f1f3-4ab1-87d1-9cb63ea890c8","client":"server","from":"","impersonatedBy":""},"p":"1cc4b977-c14d-4587-af47-d6ac230f60b3","previous":{"v":"46d5fa68c36b1faf"},"stamps":[],"t":1785249535596,"v":"0f68d4cc37ce35f7"},{"id":"4f3098c9-2c8d-420e-83ea-9628264d845e","v":"6db64a3f80c152e0","cloneOf":{"id":"221f3084-f7c0-4ada-a71a-ae6e1eb61945","v":"34835ec39c3543e3","text":"page--shared"},"originalCloneOf":{"id":"221f3084-f7c0-4ada-a71a-ae6e1eb61945","v":"34835ec39c3543e3","text":"page--shared"},"previous":{"v":"initial"},"p":"5152f88f-3006-46f9-959a-423139accf79","f":{"id":"design-form","v":"24435d748c76f819","text":"Design"},"data":{"name":"rd:page-shared","template":"<div class=\"h-full w-full\">\n  <div class=\"\">\n    <div class=\"\">\n      <img v-if=\"locals.logoSrc\" :src=\"locals.logoSrc\" style=\"max-height:100px;\">\n    </div>\n\n    <h1>Vielen Dank für Ihr Vertrauen!</h1>\n    \n    <h3>\n      Nun ist noch Folgendes zu tun:\n    </h3>\n\n    <ol >\n      <li>Laden Sie unten stehende Datei(en) herunter.</li>\n\n      <ae-layout  layout-id=\"d9ac7381-bec7-498d-ab29-7f24b5a30fe9\"\n                  :param-document=\"document\"\n                  :param-readonly=\"true\"\n                  :param-fields-to-display=\"['anhaenge']\"\n                  :param-design-params=\"{ showDownload: true }\"\n      ></ae-layout>\n                  <!-- :param-force-tab-index=\"0\" -->\n\n\n      <li style=\"padding-bottom: var(--ae-size-3);\">Unterschreiben Sie diese.</li>\n      <li>Wählen Sie die unterschriebene Datei aus.</li>\n\n      <ae-control name=\"attachment\" :params=\"form.getFieldControlParams('uploads')\" :document=\"document\" field-name=\"uploads\" style=\"padding: var(--bp-page-content-padding);\"></ae-control>\n\n      <li style=\"padding-bottom: var(--ae-size-3);\">\n        <button class=\"ae-button ae-button--primary\" @click=\"controller.save()\" :disabled=\"!data.uploads.length\">\n          Uploads speichern\n        </button>\n      </li>\n    </ol>\n\n  </div>\n</div>\n\n<ae-dialog ref=\"dialog\" :full-screen=\"true\" :dialog-classes=\"{ '_CSS-dialog': true }\">\n  <div slot=\"header\" class=\"_CSS-popup__uploading-bar\" v-show=\"locals.showDialog && Aeppic.Uploads.isUploading\">\n    <div>Uploading...</div>\n    <ae-layout class=\"_CSS-spinner\"  layout-id=\"fefa8352-0e9a-4ba8-8349-c9402ac8aefa\" title=\"Uploading...\" param-color=\"rgb(42, 71, 171)\" :param-show-text=\"true\"></ae-layout>\n  </div>\n  <div slot=\"body\" v-if=\"locals.showDialog\">\n    <div class=\"_CSS-body-container\">\n      <div class=\"_CSS-body\">\n        <div class=\"_CSS-logo-container\">\n          <img v-if=\"locals.logoSrc\" :src=\"locals.logoSrc\"  style=\"max-height:100px;\">\n        </div>\n\n\n        <p v-if=\"Aeppic.Uploads.isUploading\" style=\"font-weight: strong; color: red;\">\n          Bitte warten Sie bis alle Uploads abgeschlossen sind!\n          <ae-layout layout-id=\"fefa8352-0e9a-4ba8-8349-c9402ac8aefa\" title=\"Uploading...\" param-color=\"rgb(42, 71, 171)\"></ae-layout>\n        </p>\n        <template v-else>\n          <p>\n            Vielen Dank für das Hochladen der Dateien. \n          </p>\n          <p>\n            Wir erhalten automatisch eine Benachrichtigung. Sie müssen nichts mehr tun.\n          </p>\n\n          <p>\n            Sie können die Seite nun schließen.\n          </p>\n        </template>\n\n        <h2>Hochgeladene Dateien</h2>\n\n        <ae-list  list-id=\"2dab232c-2c8a-4aa4-b3f9-6023a7116161\"\n                  :documents=\"document.data.uploads\"\n                  param-design=\"ref-card\"\n                  :param-design-params=\"{readonly: true, noRemove: true }\"\n                  :watch-documents=\"true\"\n        ></ae-list>\n      </div>\n    </div>\n  </div>\n</ae-dialog>\n","css":"","controller":"class Controller {\n  async init() {\n    locals.designParams = {\n      preview: true\n    }\n\n    locals.logoSrc = await this.getLogo()\n\n    await Aeppic.nextRenderPass()\n\n    startEditing()\n  }\n\n  async getLogo() {\n    const company = await Aeppic.get(document.a[0])\n\n    if (!company || company.f.id !== 'c69a0c1c-6c53-40c2-87e8-5ace866bf1df') {\n      return\n    }\n\n    return Aeppic.Content.getSrc(company, 'logo')\n  }\n\n  async save() {\n    save()\n\n    locals.showDialog = true;\n    $refs.dialog.show()\n\n    await this._deleteShare()\n  }\n\n\n  async _deleteShare() {\n    Aeppic.delete(params.share)\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-05-07T14:51:35+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-05-07T14:52:33+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1715093553256,"ct":1715093495625,"a_depth":4,"a":["apps","94a64d89-d204-4918-b147-d717914fb03e","f254ce25-42f1-4333-8ee7-23554bf746c1","5152f88f-3006-46f9-959a-423139accf79"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","3fbe0efd-713a-457a-a34c-3a12aa19d6bb","0fb162f4-0f78-4c1e-aad2-43c27e6d98cb","009c0da4-718f-43d0-964a-647e30074d94"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2024-10-09T09:31:19+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1728466279415,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      PdfCreatorJob: '79cc17e7-87af-48e3-9183-519823d7453b',\n    }\n\n    locals.zipDownloadUrl = `/api/services/18047369-674f-4ba5-bf5d-bba493f4f9bb/v2/zip?modelIds=${document.id}`\n\n    locals.castingSheet = null\n    locals.downloadTitle = ''\n    locals.url = ''\n\n    const { sheet, url, title }= await this.getSheet()\n    locals.castingSheet = sheet\n    locals.url = url\n    locals.downloadTitle = title\n  }\n\n  async getSheet() {\n    if (document.data.castingSheet.length === 0) {\n      return {}\n    }\n\n    // const sheet = await Aeppic.findOne(`p:${document.id} f.id:${this.FORMS.PdfCreatorJob} data.name:\"castingSheet\"`)\n    const sheet = await Aeppic.get(document.data.castingSheet[0])\n    if (!sheet) {\n      return {} \n    }\n    \n    const title = sheet.data.datei.name || (document.data.name && `${document.data.name}.pdf`)  || `application-${new Date().toLocaleString()}.pdf`\n    const url = Aeppic.Content.getUrl(sheet, 'datei')\n\n    return {\n      sheet,\n      url,\n      title,\n    }\n  }\n}","css":"","description":"","name":"rd:page-toolbar","packages":[],"template":"<div class=\"h-full flex gap-1 items-center\">\n<template v-if=\"data.castingSheetDocument.length > 0\">\n  <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\" param-icon=\"far fa-file-pdf\" param-text=\"Casting Sheet\"\n    @selected=\"$refs.castingSheet.click()\" param-border=\"border\" :param-disabled=\"document.data.castingSheet.length === 0\"></ae-layout>\n  <a ref=\"castingSheet\" :href=\"locals.url\" :download=\"locals.downloadTitle\" target=\"_blank\"></a>\n</template>\n\n\n<ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\" param-icon=\"far fa-file-archive\" param-text=\"ZIP\"\n    @selected=\"$refs.zip.click()\" param-border=\"border\"></ae-layout>\n  <a ref=\"zip\" :href=\"locals.zipDownloadUrl\" target=\"_blank\"></a>\n</div>"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"02d485bd-6e16-4089-b5ec-b88dae7c41a6","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-06-18T12:21:10+00:00","backedBy":"","by":"b7485498-f1f3-4ab1-87d1-9cb63ea890c8","client":"server","from":"","impersonatedBy":""},"p":"009c0da4-718f-43d0-964a-647e30074d94","previous":{"v":"582f1d3e542df715"},"stamps":[],"t":1781785270142,"v":"39b550ac28cc71bc"},{"a":["apps","45ada186-e9fd-451d-9dbd-2defc0b4f86f","4ec6a0e5-cf2d-4095-9b70-2e31a64d5679","a04c8913-db48-4e80-b20d-0f3cc17a778c"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2023-08-10T08:35:43+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1691656543352,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:page-toolbar","packages":[],"template":"<div class=\"flex gap-2 items-center h-full\">\n  <div v-if=\"data.project.id\">\n      <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n              param-icon=\"far fa-external-link\"\n              param-border=\"border\"\n              param-text=\"Projekt\"\n              @selected=\"Aeppic.navigateTo(data.project.id, { tab: 'project' })\"\n              param-title=\"Zum Projekt navigieren\"\n    ></ae-layout>\n  </div>\n  <div v-if=\"data.client.id\">\n    <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n              param-icon=\"far fa-external-link\"\n              param-border=\"border\"\n              param-text=\"Kunde\"\n              @selected=\"Aeppic.navigateTo(data.client.id, { tab: 'customer' })\"\n              param-title=\"Zum Kunden navigieren\"\n    ></ae-layout>\n  </div>\n</div>   "},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"17577035-1976-42e1-9d97-9fbe416f10a5","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-03-27T09:35:05+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"a04c8913-db48-4e80-b20d-0f3cc17a778c","previous":{"v":"8b571c08923645e1"},"stamps":[],"t":1743068105343,"v":"567585377f9462e7"},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","71a3f943-571a-4e4f-a97c-dd809d6b10e4"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2023-06-15T13:41:25+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1686836485876,"data":{"aliases":[],"controller":"class Controller {\n  init() {\n    this._initImport()\n  }\n\n  async _initImport() {\n    if (!Aeppic.Account?.data.isAdmin) {\n      return\n    }\n\n    locals.formId = '50c3c7c5-c3d4-460c-b34d-0d61a4cb09ae'\n    locals.fields = [\n      'inventoryNumber',\n      'internalName',\n      'description',\n      'systemName',\n      'moduleNames',\n      'softwareVersion',\n      'importSp',\n      'importSpStaging',\n      'manufacturer',\n      'notes',\n    ]\n\n    this.manufacturersFolder = await Aeppic.findOne(`a:${document.id} f.id:b40fd5c3-1bc2-42b4-a269-f3cb2e9cf477`)\n\n    if (!this.manufacturersFolder) {\n      throw new Error('Manufacturers folder not found')\n    }\n\n    this.manufacturerNameToDocument = new Map()\n\n    locals.newReferences = []\n\n    this.STAMPS = {\n      ImportSp: 'ae61b87f-177d-485a-91fb-182be9925291',\n      ImportSpStaging: 'bed4efad-b4ae-4d65-99ef-cb810e593e97',\n    }\n\n    this.stampIdToDocumentIds = {\n      ImportSp: [], \n      ImportSpStaging: [],\n    }\n  }\n\n  _sanitzeText(text, o) {\n    const options = { removeZero: true, ...o }\n\n    let t = text.trim()\n    \n    if (!t) {\n      return ''\n    }\n\n    if (t === '0' && options.removeZero) {\n      return ''\n    }\n\n    return t\n  }\n\n  async onImported() {\n    console.log('Will now stamp imported documents with their respective stamps')\n\n    const documentsImportSp = await Aeppic.getAll(this.stampIdToDocumentIds.ImportSp)\n    const documentsImportSpStaging = await Aeppic.getAll(this.stampIdToDocumentIds.ImportSpStaging)\n\n    documentsImportSp.forEach(document => {\n      Aeppic.stamp(document, this.STAMPS.ImportSp)\n    })\n\n    documentsImportSpStaging.forEach(document => {\n      Aeppic.stamp(document, this.STAMPS.ImportSpStaging)\n    })\n  }\n\n  async mapEntryToDocumentData(entry, newDocumentPartial) {\n    if (Object.values(entry).filter(value => value != null && value !== '').length === 0) {\n      console.log('Skipping entry because all values are empty', { entry })\n      return null \n    }\n\n    // check imports to allow stamping afterwards\n    const isImport = entry.importSp.trim() === '1' \n    const isImportStaging = entry.importSpStaging.trim() === '1'\n\n    if (isImport) {\n      this.stampIdToDocumentIds.ImportSp.push(newDocumentPartial.id)\n    }\n    if (isImportStaging) {\n      this.stampIdToDocumentIds.ImportSpStaging.push(newDocumentPartial.id)\n    }\n\n    const data = {}\n\n    data.oldDataImport = true\n\n    data.inventoryNumberTitle = entry.inventoryNumber ? entry.inventoryNumber.trim() : ''\n\n    if (data.inventoryNumberTitle) {\n      const parsed = Number(data.inventoryNumberTitle.replace('BL_',''))\n\n      if (!Number.isNaN(parsed)) {\n        data.inventoryNumber = parsed\n      }\n    }\n\n    data.description = this._sanitzeText(entry.description)\n    data.internalName = this._sanitzeText(entry.internalName)\n    data.systemName = this._sanitzeText(entry.systemName)\n    data.moduleNames = this._sanitzeText(entry.moduleNames)\n    data.softwareVersion = this._sanitzeText(entry.softwareVersion, { removeZero: false })\n\n    data.notes = this._sanitzeText(entry.notes)\n\n    let manufacturer = this._sanitzeText(entry.manufacturer)\n\n    if (manufacturer) {\n      let skip = false\n\n      if (manufacturer === '0') {\n        // manufacturer is not set\n        skip = true\n      }\n\n      if (!skip) {\n        // sanitize some common manufacturer names\n        manufacturer = manufacturer.replace(/n\\/a/i, 'n/a')\n\n        const manufacturerKey = manufacturer.toLowerCase()\n        \n        let manufacturerDocument = this.manufacturerNameToDocument.get(manufacturerKey)\n        \n        if (!manufacturerDocument) {\n          manufacturerDocument = await Aeppic.new('e0978a3d-9761-4849-8a44-d22d8a175f87', this.manufacturersFolder)\n          manufacturerDocument.data.name = manufacturer\n\n          this.manufacturerNameToDocument.set(manufacturerKey, manufacturerDocument)\n\n          locals.newReferences.push(manufacturerDocument)\n        }\n        \n        data.manufacturer = [{ id: manufacturerDocument.id, v: manufacturerDocument.v, text: manufacturerDocument.data.name, }]\n      }\n    }\n    \n    console.log(entry, '=>', data)\n\n    return data\n  }\n}","css":"","description":"","name":"rd:page-toolbar","packages":[],"template":"<div class=\"h-full flex gap-1 items-center\">\n  <ae-layout v-if=\"Aeppic.Account && Aeppic.Account.data.isAdmin\" \n            layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n            @selected=\"$refs.dialog.$emit('show')\"\n            param-icon=\"far fa-file-import\"\n            param-title=\"csv-Datei importieren\"\n            param-border=\"border border-secondary-200\"\n  ></ae-layout>\n\n  <ae-design name=\"rd:toolbar\" \n            :document=\"document\"\n            :param-disable-sort-filter=\"true\"\n  ></ae-design> \n</div>  \n\n<ae-layout v-if=\"Aeppic.Account && Aeppic.Account.data.isAdmin\"\n          ref=\"dialog\"\n          layout-id=\"5ea858d8-1941-44cf-9002-9658f6183085\"\n          :param-document=\"document\"\n          :param-form-id=\"locals.formId\"\n          :param-csv-column-names=\"locals.fields\"\n          :param-map-entry-to-document-data-function=\"(...args) => controller.mapEntryToDocumentData(...args)\"\n          :param-new-references=\"locals.newReferences\"\n          @done=\"controller.onImported()\"\n></ae-layout>"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"1a14fc86-46ea-457a-b9d1-fbe0e4d9edf7","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-04-24T15:20:44+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"71a3f943-571a-4e4f-a97c-dd809d6b10e4","previous":{"v":"29d51626cee0b1fd"},"stamps":[],"t":1745508044126,"v":"cfdcc95574485ce0"},{"id":"21f5e5b4-4f33-460b-881b-56f61c570017","v":"f6be0cfdb45a7977","previous":{"v":"initial"},"p":"764f746e-a836-4e9d-a770-1d8d5ccad49b","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"rd:page-toolbar","template":"<div class=\"flex items-center gap-4\">\n  <ae-layout layout-id=\"262e95e6-f1f8-477c-834b-89d533027e1e\"\n            :param-document=\"document\"\n  ></ae-layout>\n</div>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-11-04T12:50:18+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-11-04T12:50:22+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1667566222635,"ct":1667566218489,"a_depth":4,"a":["apps","a590ce5b-28fc-4f85-9049-d006e1b8f880","169e87e0-0379-48e1-8c94-8fadac5969bb","764f746e-a836-4e9d-a770-1d8d5ccad49b"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"2238bfbf-7845-4dcd-8ddb-33bc320e50df","v":"9fe19c5056cdfaac","cloneOf":{"id":"6cf89a1a-2900-4217-a46b-ecb6a3657888","v":"e320918b17ce5770","text":"additional-toolbar-informations"},"originalCloneOf":{"id":"6cf89a1a-2900-4217-a46b-ecb6a3657888","v":"e320918b17ce5770","text":"additional-toolbar-informations"},"previous":{"v":"d7039c0ef295c958"},"p":"94886126-c88d-4ea0-b088-8ea5ad155b08","f":{"id":"design-form","v":"0061789efb5c5c29","text":"Design"},"data":{"name":"rd:page-toolbar","template":"<template v-if=\"!data.versendet\">\n  <div v-if=\"!data.empfaenger.length || document.a_forms.includes('f85fbba8-1232-4ec7-9ca8-da9fc5b14109')\"\n    class=\"h-full flex items-center truncate text-xs border border-amber-500 bg-amber-50 text-amber-900 p-1 rounded-md \">\n    <div v-if=\"document.a_forms.includes('f85fbba8-1232-4ec7-9ca8-da9fc5b14109')\">\n      Eine Vorlage kann nicht versendet werden.\n    </div>\n    <div v-else-if=\"!data.empfaenger.length\">\n      <ae-control name=\"rd:help\" :document=\"document\" :param-text=\"locals.help\"></ae-control>\n      Versenden inaktiv\n    </div>\n\n  </div>\n</template>","css":"","controller":"class Controller {\n  async init() {\n    locals.help = `Eine Unterweisung kann erst dann versendet werden, wenn auch Empfänger ausgewählt wurden.\n`\n    locals.isManager = false\n    const results = await Aeppic.Actions.run(['7c4c6268-b24a-43c4-b876-a2a07f13942c'], { Account: Aeppic.Account, target: document })\n    locals.isManager = results[0].value === true\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-10-11T07:32:02+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-10-17T08:55:49+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1697532949925,"ct":1697009522113,"a_depth":4,"a":["apps","f416e371-07cc-4987-a6de-5934ef5ff3e4","1096c5df-2773-4914-9455-dc54e0f3e0e5","94886126-c88d-4ea0-b088-8ea5ad155b08"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"32b2dd20-a60c-4b25-b19c-768f4920051f","v":"b4ed3143ed092cdd","cloneOf":{"id":"65a47cf3-dd3e-45b1-bac2-eb80e0ea15e6","v":"5e533478e627173f","text":"rd:page-toolbar"},"originalCloneOf":{"id":"65a47cf3-dd3e-45b1-bac2-eb80e0ea15e6","v":"5e533478e627173f","text":"rd:page-toolbar"},"previous":{"v":"344d3dc4153b35a9"},"p":"3f5de83a-40e4-4662-b436-3ed4879edb10","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-toolbar","template":"<div class=\"flex items-center gap-2 p-1\">\n   <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n                param-text=\"Datei\"\n                param-icon=\"far fa-file-alt\"\n                param-icon-right=\"far fa-angle-down\" \n                @selected=\"$refs.popup.show($event)\"\n                param-border=\"border\"\n    ></ae-layout>\n</div>  \n\n<ae-popup ref=\"popup\" placement=\"bottom\">\n  <template #default=\"scope\">\n    <div class=\"flex gap-1 flex-col p-1\" > \n      <ae-form layout-id=\"56a218a1-cac0-4566-92be-ba91a4569c11\"\n                :document=\"document\"\n                :auto-save=\"true\"\n                v-if=\"locals.canEdit\"\n                @click.native.capture=\"scope.close()\"\n      ></ae-form>\n\n      <ae-design name=\"rd:download-and-print-buttons\"\n                :document=\"document\"\n                @toolbar=\"{ $emit('toolbar', $event); scope.close() }\"\n                @click.native.capture=\"scope.close()\"\n                :param-display-column=\"true\"\n      ></ae-design>\n\n      <!-- <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n                  :param-icon=\"locals.editingRequested ? 'far fa-spinner fa-spin text-sky-600' : 'far fa-laptop-code'\"\n                  param-text=\"Bearbeiten\"\n                  param-title=\"Mit dem bizpin Client im installierten Standardprogramm Ihres Computers bearbeiten\"\n                  @selected=\"controller.editFile()\"\n                  :param-disabled=\"!locals.canEdit\"\n                  :param-classes=\"[locals.editingRequested && 'animate-pulse' ]\"\n      ></ae-layout> -->\n    </div>\n  </template>\n</ae-popup>\n\n\n<ae-dialog ref=\"dialog\" :dialog-size=\"{ width: '400px'}\"> \n  <template #header=\"scope\">\n    <div class=\"flex justify-between items-center\">\n      <div>\n      Client wird benötigt\n      </div>\n\n    <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n                param-icon=\"far fa-times\"\n                @selected=\"scope.close()\"\n    ></ae-layout>\n    </div>\n  </template>\n  <template #body=\"scope\">\n     <div class=\"flex flex-col gap-6\">\n      <div class=\"mb-2\">Sie benötigen den Bizpin Client um Dateien mit dem installierten Standardprogramm Ihres Computers bearbeiten zu können.</div>\n      <div>Dies ermöglicht beispielsweise eine Microsoft Word Datei direkt mit dem installierten Word-Programm zu bearbeiten. Änderungen an dieser Datei werden dann auch automatisch beim Speichern wieder in Bizpin hochgeladen.</div>\n\n      <div class=\"my-2 text-sm\">(bizpin Client aktuell für Windows-, MacOS- und Linux-Betriebsysteme verfügbar)</div>\n\n      <a :href=\"locals.href\" target=\"_blank\" class=\"self-center\">\n          <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n                    param-icon=\"far fa-download\"\n                    param-text=\"Client jetzt herunterladen\"\n                    :param-primary=\"true\"\n        ></ae-layout>\n      </a>\n    </div>\n  </template>\n</ae-dialog>","css":"","controller":"class Controller {\n  async init() {\n    //  locals.buttons = [\n    //   { identifier: 'details', text: 'Details', icon: 'far fa-info' },\n    //   { identifier: 'download', text: 'Download', icon: 'far fa-download', },\n    //   { identifier: 'upload', formLayoutId: '14753f85-5c12-42bb-b763-590b583f68cc'},\n    //   { identifier: 'edit', text: 'Bearbeiten (nur Client)', icon: 'far fa-laptop-code', },\n    //   { identifier: 'print', text: 'Drucken', icon: 'far fa-print', },\n    // ] \n\n    locals.editingRequested = false\n    locals.href= `https://bizpin.de/client?utm_source=${packages.window.location.host}`\n    \n    const canEdit = !document.readonly && await Aeppic.canEdit(document)\n    locals.canEdit = Aeppic.Account?.data.isGroupAccount === false && canEdit === true\n  }\n\n  isElectron() {\n    return typeof navigator === 'object' && typeof navigator.userAgent === 'string' && navigator.userAgent.indexOf('Electron') >= 0\n  }\n\n  editFile() {\n    if(this.isElectron()) {\n      locals.editingRequested = true\n\n      Aeppic.editFile(Aeppic.Content.getSrc(document, 'datei'), data.datei.name, {\n        id: document.id,\n        v: document.v,\n        fieldName: 'datei',\n        mimeType: data.datei.type\n      })\n\n      Aeppic.setTimeout(() => {\n        locals.editingRequested = false\n      }, 5000)\n    } else {\n      $refs.dialog.show()\n    }\n  }\n}\n","packages":[{"id":"10843fbf-4f0c-416b-be7d-42d6bbd0ae68","v":"d4ce6dec568c3dc1","text":"Window"}],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-01-08T14:39:47+01:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2024-01-08T14:52:35+01:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1704721955205,"ct":1704721187745,"a_depth":4,"a":["apps","5ec4fefb-1235-484e-8d6f-4fd645bae372","75920050-07b1-4e79-9742-54abcc235e91","3f5de83a-40e4-4662-b436-3ed4879edb10"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","1b166603-d0f3-4f16-98c4-0534afbd6f5a"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"dc782dd0-b48d-4938-9d09-93a6dd0b57d4","text":"rd:page-toolbar","v":"bda2a1eb806d4141"},"created":{"at":"2025-08-07T09:52:26+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1754311777555,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:page-toolbar","packages":[],"template":"<div class=\"h-full flex items-center gap-4\">\n  <ae-layout layout-id=\"262e95e6-f1f8-477c-834b-89d533027e1e\"\n            :param-document=\"document\"\n  ></ae-layout>\n</div>"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"341d79bc-3623-4925-be08-48c6512cf5ee","inheritedLocks":[null,null,null,null,null],"locks":[],"meta":{"modified":{"at":"2025-08-07T09:52:29+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null}},"modified":{"at":"2025-08-07T09:52:26+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"dc782dd0-b48d-4938-9d09-93a6dd0b57d4","text":"rd:page-toolbar","v":"bda2a1eb806d4141"},"p":"1b166603-d0f3-4f16-98c4-0534afbd6f5a","previous":{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","5011479f-3ef7-4c66-810b-3bb65f992712"],"a_forms":["folder","application-form","form-folder","form"],"p":"5011479f-3ef7-4c66-810b-3bb65f992712","v":"initial"},"stamps":[],"t":1754560349261,"v":"e6c3087953fbf932"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","6138e497-f561-430e-b3f1-8c3c7db046a7"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2025-11-25T15:28:00+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1764084480549,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:page-toolbar","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<ae-layout v-if=\"Aeppic.Account && Aeppic.Account.data.isAdmin\" layout-id=\"276421ac-73bb-4e98-8d8f-1b35b6214b85\"\n:param-document=\"document\"></ae-layout>"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"3c8426ba-e1e5-4fc9-8ff0-e415d9c41808","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-11-25T15:48:31+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"6138e497-f561-430e-b3f1-8c3c7db046a7","previous":{"v":"ab37425f7bf5a125"},"stamps":[],"t":1764085711894,"v":"bf15f8c9d397d506"},{"id":"3dbb3cfb-a65e-4d42-80f0-740a13266b40","v":"9d68db0f60ee3223","previous":{"v":"c61badaf89313859"},"p":"43f2603c-e6b0-4a91-9087-4f103c96a2b4","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-toolbar","template":"<ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\r\n           @selected=\"controller.generateTodaysList()\"\r\n           param-icon=\"far fa-calendar-day\"\r\n           param-border=\"border-slate\"\r\n           param-text=\"Tagesliste\"\r\n></ae-layout>\r\n\r\n<ae-dialog ref=\"todaysList\" title=\"Tagesliste\" :full-screen=\"true\">\r\n  <div slot=\"header\" slot-scope=\"scope\" class=\"_CSS-dialog__header\">\r\n    <button class=\"ae-button\" @click.stop=\"scope.close()\" title=\"Back\">\r\n        <ae-icon class=\"fa fa-arrow-left\"></ae-icon>\r\n      </button>\r\n    <span>Tagesliste <strong>{{locals.day}}</strong></span>\r\n    <div class=\"_CSS-buttons\" xstyle=\"opacity:0.5\">\r\n      <button class=\"ae-button\" title=\"Drucken\" @click=\"controller.print()\">\r\n        <ae-icon class=\"fad fa-print\"></ae-icon>\r\n      </button>  \r\n      <button class=\"ae-button\" title=\"Herunterladen\" :disabled=\"!locals.blob\" @click=\"Aeppic.Modules.FileSaver.saveAs(locals.blob, locals.filename)\">\r\n        <ae-icon class=\"fad fa-download\"></ae-icon>\r\n      </button>  \r\n      <button class=\"ae-button\" style=\"margin-left:20px;\" @click.stop=\"scope.close()\" title=\"Schließen\">\r\n        <ae-icon class=\"fa fa-times\"></ae-icon>\r\n      </button>\r\n    </div>\r\n  </div>  \r\n  <div slot=\"body\" style=\"display:flex;height:100%;\">\r\n    <iframe ref=\"pdfFrame\" class=\"_CSS-iframe\" v-if=\"locals.url\" :src=\"locals.url\" type=\"application/pdf\"></iframe>\r\n  </div>\r\n</ae-dialog>","css":"._CSS {\r\n  display: flex;\r\n  align-items: center;\r\n  justify-items: center;\r\n}\r\n\r\n._CSS-dialog__header {\r\n  display: flex;\r\n  align-items: center;\r\n  justify-content: space-between;\r\n}\r\n\r\n._CSS-buttons {\r\n  display: flex;\r\n  align-items: center;\r\n}\r\n\r\n@media print {\r\n  ._CSS-buttons {\r\n    display:none;\r\n  }\r\n}\r\n\r\n._CSS-iframe {\r\n  flex:1;\r\n}","controller":"class Controller {\r\n  init() {\r\n    this.fonts = {\r\n      Roboto: {\r\n        normal: 'https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.66/fonts/Roboto/Roboto-Regular.ttf',\r\n        bold: 'https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.66/fonts/Roboto/Roboto-Medium.ttf',\r\n        italics: 'https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.66/fonts/Roboto/Roboto-Italic.ttf',\r\n        bolditalics: 'https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.66/fonts/Roboto/Roboto-MediumItalic.ttf'\r\n      },\r\n    }\r\n    this.baseUrl = packages.window.location.origin\r\n    this.pdfMake = packages.pdfMake\r\n    \r\n    locals.url = ''\r\n    locals.blob = null\r\n    locals.day = DateTime.local().setLocale('de-de').toLocaleString(DateTime.DATE_FULL)\r\n    this.title = `Tagesliste ${locals.day}`\r\n    locals.filename = this.title + '.pdf'\r\n\r\n    this.FORMS = {\r\n      APPOINTMENT_FORM_ID: '0aedd37c-75c9-4724-ab7e-a3de888870b5'\r\n    }\r\n  }\r\n\r\n  async _findTodaysEvents() {\r\n    const today = DateTime.local()\r\n    const todayMin = today.startOf('day')\r\n    const todayMax = today.endOf('day')\r\n\r\n    const eventQuery = Aeppic.Query.children().form(this.FORMS.APPOINTMENT_FORM_ID)\r\n      .subQuery(q =>\r\n        q.where('data.start').isInRange('now/d', 'now+1d/d')\r\n          .or\r\n          .where('data.end').isInRange('now/d', 'now+1d/d')\r\n      )\r\n      .or\r\n      .where('data.daysOfWeek').isInRange('*', '*')\r\n\r\n    console.dir(eventQuery)\r\n\r\n    let events = await Aeppic.find(eventQuery)\r\n    events = events.filter(d => d.data.start)\r\n      \r\n    // console.dir(events)\r\n\r\n    function isRepeatedEventInRange(event, rangeStart, rangeEnd) {\r\n      const start = DateTime.fromISO(event.data.start)\r\n      const end = DateTime.fromISO(event.data.end || event.data.start)\r\n\r\n      const interval1 = Aeppic.DateTimeInterval.fromDateTimes(rangeStart, rangeEnd)\r\n      const interval2 = Aeppic.DateTimeInterval.fromDateTimes(start, end)\r\n      \r\n      return interval1.overlaps(interval2)\r\n    }\r\n\r\n    for (let i=0; i < events.length; i++) {\r\n      const event = events[i]\r\n\r\n      try {\r\n        if (event.data.daysOfWeek.length > 0) {\r\n          if (!isRepeatedEventInRange(event, todayMin, todayMax)) {\r\n            events[i] = null\r\n            continue\r\n          }\r\n\r\n          const start = DateTime.fromISO(event.data.start)\r\n          const todaysWeekday = DateTime.local().weekday\r\n\r\n          if (!event.data.daysOfWeek.includes(todaysWeekday)) {\r\n            events[i] = null\r\n            continue\r\n          }\r\n\r\n          const newStart = DateTime.local().set({\r\n            hour: start.get('hour'),\r\n            minute: start.get('minute'),\r\n            second: start.get('second'), \r\n            millisecond: start.get('millisecond'),\r\n          }).toISO()\r\n          \r\n          const newEvent = JSON.parse(JSON.stringify(event))\r\n          newEvent.data.start = newStart\r\n          events[i] = newEvent\r\n        }\r\n      } catch (error) {\r\n        console.error('Error handling event', event, error)\r\n      }\r\n    }\r\n\r\n    events = events.filter(e => !!e)\r\n\r\n    events = events.sort((a, b) => {\r\n      const startA = DateTime.fromISO(a.data.start)\r\n      const startB = DateTime.fromISO(b.data.start)\r\n\r\n      const aTime = startA.get('hour') * 60 + startA.get('minute')\r\n      const bTime = startB.get('hour') * 60 + startB.get('minute')\r\n\r\n      return aTime - bTime\r\n    })\r\n\r\n    return events\r\n  }\r\n\r\n  async generateTodaysList() {\r\n    const events = await this._findTodaysEvents()\r\n\r\n    $refs.todaysList.show()\r\n    await Aeppic.nextRenderPass()\r\n    \r\n    const docDefinition = {\r\n      info: {\r\n        title: this.title\r\n      },\r\n      pageSize: 'A4',\r\n      pageOrientation: 'landscape',\r\n      pageMargins: [40, 40, 40, 40],\r\n      footer: { \r\n        margin: [0, 10], \r\n        style: 'footer', \r\n        alignment: 'center',\r\n        columns: ['', '', DateTime.local().setLocale('de-de').toLocaleString(DateTime.DATETIME_MED)]\r\n      },\r\n      content: [\r\n        {\r\n          margin: [0, 0, 0, 0],\r\n          style: 'header',\r\n          text: this.title,\r\n        },\r\n        // {\r\n        //   ul: events.map(e => `${e.data.start} ${e.data.name}`)\r\n        // },\r\n        {\r\n          margin: [10, 10],\r\n          alignment: 'left',\r\n          layout: 'noBorder',\r\n          table: {\r\n            headerRows: 1,\r\n            widths: [\r\n              'auto',\r\n              'auto',\r\n              '*',\r\n              '*',\r\n              '*',\r\n              'auto',\r\n            ],\r\n            heights: function(row) {\r\n              if (row === 0) {\r\n                return null\r\n              }\r\n\r\n              return 30\r\n            },  \r\n            body: [ [\r\n              {\r\n                fontSize: 9,\r\n                text: 'Von',\r\n                alignment: 'left',\r\n                color: '#666',\r\n                border: true\r\n              },\r\n              {\r\n                fontSize: 9,\r\n                text: 'Bis',\r\n                alignment: 'left',\r\n                color: '#AAA',\r\n                border: true\r\n              },\r\n              {\r\n                fontSize: 9,\r\n                text: 'Name',\r\n                alignment: 'left',\r\n                color: '#666',\r\n                border: true\r\n              },\r\n              {\r\n                fontSize: 9,\r\n                text: 'Beschreibung',\r\n                alignment: 'left',\r\n                color: '#666',\r\n                border: true\r\n              },\r\n              {\r\n                text: 'Sedation',\r\n                border: true,\r\n                color: '#666',\r\n              },\r\n              {\r\n                text: 'Wiederholt',\r\n                italics: true,\r\n                border: true,\r\n                color: '#666',\r\n              },\r\n            ],\r\n            ...events.map(e => \r\n              [\r\n                { \r\n                  text: e.data.start ? DateTime.fromISO(e.data.start).setLocale('de-de').toLocaleString(DateTime.TIME_SIMPLE) : '',\r\n                },\r\n                {\r\n                  fontSize: 10,\r\n                  text: e.data.end ? DateTime.fromISO(e.data.end).setLocale('de-de').toLocaleString(DateTime.TIME_SIMPLE): '',\r\n                  color: '#AAA',\r\n                },\r\n                e.data.name,\r\n                {\r\n                  fontSize: 8,\r\n                  color: '#444',\r\n                  text: e.data.description,\r\n                },\r\n                '',\r\n                {\r\n                  fontSize: 8,\r\n                  italics: true,\r\n                  text: toDaysOfWeek(e.data.daysOfWeek)\r\n                },\r\n              ]\r\n            )\r\n            ]\r\n          }\r\n        },\r\n      ],\r\n      defaultStyle: {\r\n        font: 'Roboto',\r\n        fontSize: 10,\r\n      },\r\n      styles: {\r\n        header: {\r\n          fontSize: 13,\r\n          bold: true,\r\n        },\r\n        tableHeader: {\r\n          bold: true,\r\n          fillColor: '#ededed'\r\n        },\r\n        footer: {\r\n          fontSize: 8,\r\n        },\r\n      },\r\n      // images: {\r\n      //   companyLogo: this.settings.unternehmensLogoUrl\r\n      // }\r\n    }\r\n\r\n    function toDaysOfWeek(daysOfWeek) {\r\n      const copy = [...daysOfWeek].sort()\r\n      return copy.map(d => toDayOfWeek(d)).join(', ')\r\n    }\r\n\r\n    function toDayOfWeek(dayOfWeek) {\r\n      return ['Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa', 'So'][dayOfWeek - 1]\r\n    }\r\n\r\n    const { url, blob } = await this._renderPdf(docDefinition, { title: this.title })\r\n    locals.url = url\r\n    locals.blob = blob\r\n\r\n    await Aeppic.nextRenderPass()    \r\n  }\r\n\r\n  print() {\r\n    if ($refs.pdfFrame) {\r\n      $refs.pdfFrame.contentWindow.print()\r\n    }\r\n  }\r\n\r\n  async _renderPdf(docDefinition, options) {\r\n    const pdf = await this.pdfMake.createPdf(docDefinition, null, this.fonts)\r\n    return this._convertPdf(pdf)\r\n  }\r\n\r\n  _convertPdf(pdfData) {\r\n    return new Promise((resolve) => {\r\n      pdfData.getBlob((blob) => {\r\n        const objectUrl = URL.createObjectURL(blob)\r\n        resolve({ url: objectUrl, blob })\r\n        // $emit('file-blob', { blob, title: options.title })\r\n      })\r\n    })\r\n  }\r\n}","packages":[{"id":"6d4d5df8-bc1e-42ae-aa48-f0cfdc009ff7","v":"b0c5aef3a774d0f1","text":"pdfmake"},{"id":"10843fbf-4f0c-416b-be7d-42d6bbd0ae68","v":"d4ce6dec568c3dc1","text":"Window"}],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-10-10T12:19:49+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2024-06-20T12:44:20+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1718887460023,"ct":1696940697496,"a_depth":4,"a":["apps","b3191869-9bcf-440c-92be-7b013944b450","3555bef3-1cf0-4f7d-b3ce-5346fb8cbff4","43f2603c-e6b0-4a91-9087-4f103c96a2b4"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","46a28dfa-7518-4867-9519-a5f4cd9b9967"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"341d79bc-3623-4925-be08-48c6512cf5ee","text":"rd:page-toolbar","v":"e6c3087953fbf932"},"created":{"at":"2025-11-13T15:12:03+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1763046723034,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:page-toolbar","packages":[],"template":"<div class=\"h-full flex items-center gap-4\">\n  <ae-layout layout-id=\"262e95e6-f1f8-477c-834b-89d533027e1e\"\n            :param-document=\"document\"\n  ></ae-layout>\n</div>"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"41e84d76-0724-4ef3-9647-622080ccdd78","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-11-13T15:12:03+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"341d79bc-3623-4925-be08-48c6512cf5ee","text":"rd:page-toolbar","v":"e6c3087953fbf932"},"p":"46a28dfa-7518-4867-9519-a5f4cd9b9967","stamps":[],"t":1763046723034,"v":"initial"},{"id":"5b9b650e-c1f0-4217-9c26-89355e25caee","v":"ec556c44c23fdf19","cloneOf":{"id":"1a14fc86-46ea-457a-b9d1-fbe0e4d9edf7","v":"b7c6b11fad22fbaa","text":"rd:page-toolbar"},"originalCloneOf":{"id":"1a14fc86-46ea-457a-b9d1-fbe0e4d9edf7","v":"b7c6b11fad22fbaa","text":"rd:page-toolbar"},"previous":{"v":"bf1e0501742339a8"},"p":"0d5701a6-537b-4690-b25c-69f8b01d14b1","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-toolbar","template":"  <ae-design name=\"rd:toolbar\" \n  :document=\"document\"\n  :param-disable-sort-filter=\"true\"\n  ></ae-design>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-06-16T10:27:55+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-06-16T10:28:18+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1686911298441,"ct":1686911275934,"a_depth":4,"a":["apps","075a56a2-3d34-402e-82ef-bd1fc7df456a","efe6c460-ec94-41c6-994b-c27d08d74381","0d5701a6-537b-4690-b25c-69f8b01d14b1"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"61eded75-9ff0-4e79-ac9c-eff707b67488","v":"7d7c8b3363e948fd","previous":{"v":"ea9c33e2fe0068ec"},"p":"8d8f6fdb-6f78-4e2a-b585-bd80f4dbaa1d","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-toolbar","template":"<ae-design name=\"rd:abstract-share-as-mail-buttons\" :document=\"document\" :param-buttons=\"locals.buttons\"></ae-design>\n ","css":"","controller":"class Controller {\n  init() {\n    locals.buttons = [\n      { identifier: 'call-notice', \n        text: 'E-Mail ', \n        title: 'Als neue E-Mail in lokalem E-Mail Programm öffnen', \n        icon: 'far fa-envelope-open',\n        tokenTemplateFormId: '9fcbed35-0759-4c2d-848b-aaa1f968f3ff'\n      }\n    ]\n  }\n}\n ","packages":[{"id":"10843fbf-4f0c-416b-be7d-42d6bbd0ae68","v":"cc146accf5ec1930","text":"Window"}],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-04-03T12:05:33+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-05-15T12:55:52+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1715777752277,"ct":1712145933521,"a_depth":4,"a":["apps","94a64d89-d204-4918-b147-d717914fb03e","f254ce25-42f1-4333-8ee7-23554bf746c1","8d8f6fdb-6f78-4e2a-b585-bd80f4dbaa1d"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","45ada186-e9fd-451d-9dbd-2defc0b4f86f","4ec6a0e5-cf2d-4095-9b70-2e31a64d5679","dbee6e16-d63a-493c-bba6-505f79918f9f"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2022-05-09T12:17:58+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1697615885040,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.editingRequested = false\n    this.debug = true\n    locals.href= `https://bizpin.de/client?utm_source=${packages.window.location.host}`\n    \n    const canEdit = !params.readonly && !document.readonly && await Aeppic.canEdit(document)\n    locals.canEdit = Aeppic.Account?.data.isGroupAccount === false && canEdit === true\n  }\n\n  get tauriFunctions() {\n    return $el.ownerDocument.defaultView?.host?.files\n  }\n\n  _log(message, ...args) {\n    if (this.debug) {\n      console.log(message, ...args)\n    }\n  }\n\n  isElectron() {\n    return typeof navigator === 'object' && typeof navigator.userAgent === 'string' && navigator.userAgent.indexOf('Electron') >= 0\n  }\n\n  isHostedInClient() {\n    return this.isElectron() || !!this.tauriFunctions?.editFile\n  }\n\n  async editFile() {\n    this._log(\"Sent request to edit file.\")\n    if (this.isHostedInClient()) {\n      locals.editingRequested = true\n\n      try {\n        await this._attemptEditFile()\n      } finally {\n        locals.editingRequested = false\n      }\n\n    } else {\n      $refs.dialog.show()\n    }\n  }\n\n\n  async _attemptEditFile(isRetry = false) {\n    try {\n      const result = await Aeppic.editFile(\n        Aeppic.Content.getSrc(document, 'datei'), \n        data.datei.name, \n        {\n          id: document.id,\n          v: document.v,\n          fieldName: 'datei',\n          mimeType: data.datei.type\n        }\n      )\n      this._log('editing', document)\n\n    } catch (error) {\n      let errData = error\n      if (typeof error === 'string') {\n        try { errData = JSON.parse(error) } catch (e) {}\n      }\n\n      if (errData?.DataUrlOutOfSync) {\n        const extension = data.datei.name.split('.').pop()\n        const suggestedSaveName = `${data.name}.${extension}`\n\n        const conflictInfo = {\n          id: document.id,\n          v: document.v,\n          fieldName: 'datei',\n          fileNameOnDisk: data.datei.name,\n          suggestedSaveName: suggestedSaveName\n        }\n\n        const sameUserAsLastEditor = !isRetry\n          && document.modified?.by\n          && Aeppic.Account?.id\n          && document.modified.by === Aeppic.Account.id\n\n        if (sameUserAsLastEditor) {\n          console.warn(\"Caught DataUrlOutOfSync but last edit was by the current user. Auto-resolving without prompting.\", document.modified)\n\n          try {\n            if (this.tauriFunctions?.delete) {\n              await this.tauriFunctions.delete({\n                id: conflictInfo.id,\n                v: conflictInfo.v,\n                fieldName: conflictInfo.fieldName\n              })\n            }\n\n            await this._attemptEditFile(true)\n            return\n\n          } catch (retryError) {\n            console.error(\"Failed to auto-resolve DataUrlOutOfSync for same user. Falling back to conflict dialog.\", retryError)\n          }\n        }\n\n        console.warn(\"Caught DataUrlOutOfSync! Handling out-of-sync state...\")\n        locals.conflictDocumentInfo = conflictInfo\n        $refs.dialogForEditingConflict.show()\n\n      } else {\n        console.error(\"An unexpected error occurred while editing:\", error)\n      }\n    }\n  }\n\n  async _deleteLocalCache() {\n    if (locals.conflictDocumentInfo && this.tauriFunctions?.delete) {\n      await this.tauriFunctions.delete({\n        id: locals.conflictDocumentInfo.id,\n        v: locals.conflictDocumentInfo.v,\n        fieldName: locals.conflictDocumentInfo.fieldName\n      })\n    }\n  }\n\n  async saveLocalCopy(scope) {\n    if (!locals.conflictDocumentInfo) return\n\n    try {\n      this._log(\"Requesting backend to save local copy for:\", locals.conflictDocumentInfo)\n      \n      if (this.tauriFunctions?.saveLocalCopy) {\n        const wasSaved = await this.tauriFunctions.saveLocalCopy(locals.conflictDocumentInfo) \n        \n        if (wasSaved) {\n          await this._deleteLocalCache()\n          scope.close()\n        } else {\n          this._log(\"User cancelled the save dialog. Keeping the cache and dialog open.\")\n        }\n      } else {\n        this._log(\"Couldn't find tauri endpoint saveLocalCopy\")\n      }\n    } catch (error) {\n      console.error(\"Failed to save local copy:\", error)\n    }\n  }\n\n  async discardLocalCache(scope) {\n    if (!locals.conflictDocumentInfo) return\n\n    try {\n      await this._deleteLocalCache()\n      \n      scope.close()\n    } catch (error) {\n      console.error(\"Failed to discard local cache:\", error)\n    }\n  }\n}","css":"","description":"","name":"rd:page-toolbar","packages":[{"id":"10843fbf-4f0c-416b-be7d-42d6bbd0ae68","text":"Window","v":"d4ce6dec568c3dc1"}],"template":"<div ref=\"root\" class=\"h-full flex items-center gap-2 p-1\">\n   <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n                param-text=\"Datei\"\n                param-icon=\"far fa-file-alt\"\n                param-icon-right=\"far fa-angle-down\" \n                @selected=\"$refs.popup.toggle($event)\"\n                param-border=\"border\"\n    ></ae-layout>\n    <!-- {{!!controller.isHostedInClient() }} -->\n</div>  \n\n<ae-popup ref=\"popup\" placement=\"bottom\">\n  <template #default=\"scope\">\n    <div class=\"flex gap-1 flex-col p-1\" > \n      <ae-layout v-if=\"params.windowWidth < 1280\"\n                  layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n                  param-icon=\"far fa-info\"\n                  param-text=\"Details\"\n                  @selected=\"{ $emit('toolbar', 'show-details'); scope.close() }\"\n                  :param-primary=\"true\"\n      ></ae-layout> \n\n      <ae-form layout-id=\"14753f85-5c12-42bb-b763-590b583f68cc\"\n                :document=\"document\"\n                :auto-save=\"true\"\n                v-if=\"locals.canEdit\"\n                @click.native.capture=\"scope.close()\"\n      ></ae-form>\n\n      <ae-design name=\"rd:abstract_download-and-print-buttons\"\n                :document=\"document\"\n                @toolbar=\"{ $emit('toolbar', $event); scope.close() }\"\n                @click.native.capture=\"scope.close()\"\n                :param-display-column=\"true\"\n                param-field-name=\"datei\" \n      ></ae-design>\n\n      <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n                  :param-icon=\"locals.editingRequested ? 'far fa-spinner fa-spin text-sky-600' : 'far fa-laptop-code'\"\n                  param-text=\"Bearbeiten\"\n                  param-title=\"Mit dem bizpin Client im installierten Standardprogramm Ihres Computers bearbeiten\"\n                  @selected=\"controller.editFile()\"\n                  v-if=\"locals.canEdit\"\n                  :param-classes=\"[locals.editingRequested && 'animate-pulse' ]\"\n      ></ae-layout>\n    </div>\n  </template>\n</ae-popup>\n\n\n<ae-dialog ref=\"dialog\" :dialog-size=\"{ width: '400px'}\"> \n  <template #header=\"scope\">\n    <div class=\"flex justify-between items-center\">\n      <div>\n      Client wird benötigt\n      </div>\n\n    <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n                param-icon=\"far fa-times\"\n                @selected=\"scope.close()\"\n    ></ae-layout>\n    </div>\n  </template>\n  <template #body=\"scope\">\n     <div class=\"flex flex-col gap-6\">\n      <div class=\"mb-2\">Sie benötigen den Bizpin Client um Dateien mit dem installierten Standardprogramm Ihres Computers bearbeiten zu können.</div>\n      <div>Dies ermöglicht beispielsweise eine Microsoft Word Datei direkt mit dem installierten Word-Programm zu bearbeiten. Änderungen an dieser Datei werden dann auch automatisch beim Speichern wieder in Bizpin hochgeladen.</div>\n\n      <div class=\"my-2 text-sm\">(bizpin Client aktuell für Windows-, MacOS- und Linux-Betriebsysteme verfügbar)</div>\n\n      <a :href=\"locals.href\" target=\"_blank\" class=\"self-center\">\n          <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n                    param-icon=\"far fa-download\"\n                    param-text=\"Client jetzt herunterladen\"\n                    :param-primary=\"true\"\n        ></ae-layout>\n      </a>\n    </div>\n  </template>\n</ae-dialog>\n\n<ae-dialog ref=\"dialogForEditingConflict\" :dialog-size=\"{ width: '700px'}\"> \n  <template #header=\"scope\">\n    <div class=\"flex justify-between items-center w-full\">\n      <div class=\"font-bold text-red-600\">\n        <ae-icon class=\"far fa-exclamation-triangle mr-2\"></ae-icon> Versionskonflikt\n      </div>\n      <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n                 param-icon=\"far fa-times\"\n                 @selected=\"scope.close()\"\n      ></ae-layout>\n    </div>\n  </template>\n  <template #body=\"scope\">\n     <div class=\"flex flex-col gap-4\">\n      <div>\n        Die Datei wurde in der Zwischenzeit auf dem Server geändert.\n      </div>\n      <div>\n        Um Datenverlust zu verhindern, wurde die Bearbeitung zurückgehalten.\n      </div>\n      <div class=\"font-semibold\">\n        Sichern Sie Ihre lokale Version an einem anderen Ort oder verwerfen Sie diese, um den Konflikt aufzulösen. Danach können Sie die aktuelle Server-Version über \"Bearbeiten\" neu öffnen.\n      </div>\n\n      <div class=\"flex justify-end gap-2 mt-4\">\n        <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n                   param-text=\"Abbrechen\"\n                   @selected=\"scope.close()\"\n        ></ae-layout>\n        <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n                   param-icon=\"far fa-trash-alt\"\n                   param-text=\"Lokale Version löschen\"\n                   @selected=\"controller.discardLocalCache(scope)\"\n        ></ae-layout>\n        <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n                   param-icon=\"far fa-save\"\n                   param-text=\"Lokale Version als Kopie speichern\"\n                   :param-primary=\"true\"\n                   @selected=\"controller.saveLocalCopy(scope)\"\n        ></ae-layout>\n      </div>\n    </div>\n  </template>\n</ae-dialog>"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"65a47cf3-dd3e-45b1-bac2-eb80e0ea15e6","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-07-22T08:36:10+00:00","backedBy":"","by":"09763886-6748-4a56-8e0e-54a2293ee96b","client":"server","from":"","impersonatedBy":""},"p":"dbee6e16-d63a-493c-bba6-505f79918f9f","previous":{"v":"c2bc6c7afacfd076"},"stamps":[],"t":1784709370996,"v":"636d6496b86c9472"},{"a":["apps","59edbdbc-2cab-426a-bb42-6e57c5158e4f","3be7e887-1bcd-4c3c-979f-b20a986c4c48","0b6a2b21-9425-466e-9e8d-57ec39cc95e1"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2023-08-10T09:37:58+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1691660278644,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:page-toolbar","packages":[],"template":"<div class=\"h-full flex gap-2 items-center\">\n  <div v-if=\"data.dmsFolder.id\">\n      <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n              param-icon=\"far fa-external-link\"\n              param-border=\"border\"\n              param-text=\"Dateien\"\n              @selected=\"Aeppic.navigateTo(data.dmsFolder.id)\"\n              param-title=\"Zum Dateien Ordner navigieren\"\n    ></ae-layout>\n    <!-- @selected=\"Aeppic.navigateTo(data.dmsFolder.id, { view: 'files' })\" -->\n  </div>\n  <div v-if=\"data.client.id\">\n    <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n                param-icon=\"far fa-external-link\"\n              param-border=\"border\"\n              param-text=\"Kunde\"\n              @selected=\"Aeppic.navigateTo(data.client.id, { tab: 'customer' })\"\n              param-title=\"Zum Kunden navigieren\"\n    ></ae-layout>\n    <!-- @selected=\"Aeppic.navigateTo(data.client.id, { tab: 'customer' })\" -->\n  </div>\n</div> "},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"6aa5a803-ba73-4c44-b1f9-7f8b11a01b6d","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-05-13T10:59:05+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"0b6a2b21-9425-466e-9e8d-57ec39cc95e1","previous":{"v":"71d244eacb7a4413"},"stamps":[],"t":1747133945947,"v":"c4720cf74cca859c"},{"id":"6cf3d941-7663-4bc3-badc-210f774c34a0","v":"0af2fbdb775e3c92","previous":{"v":"b8db5feccfc4a9ed"},"p":"b48189af-7305-4ee5-ab8b-e15cbcd55aa7","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-toolbar","template":"<ae-layout v-if=\"Aeppic.Account?.data.allowDevMode\" layout-id=\"95874087-d16c-46b7-bdc8-38854c466a35\" param-form-id=\"27a5cf6e-22f8-44d2-8107-400b27382690\" :param-parent=\"document\"></ae-layout>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-01-22T10:51:57+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-02-09T13:50:29+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1707486629337,"ct":1705920717979,"a_depth":4,"a":["apps","90a38bb1-5683-49d1-b519-203876cc6967","4bfbe5fd-cf64-4b07-b91f-17bade3f41f9","b48189af-7305-4ee5-ab8b-e15cbcd55aa7"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","3fbe0efd-713a-457a-a34c-3a12aa19d6bb","0fb162f4-0f78-4c1e-aad2-43c27e6d98cb","8fef472f-9220-484b-99cd-bb80f208f795"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2024-06-26T12:38:54+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1719405543899,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      DownloadInfo: '81265a15-9225-4401-8ccf-c041b8502537',\n      Application: '009c0da4-718f-43d0-964a-647e30074d94',\n    }\n\n    // this.COMMANDS = {\n    //   CopyMails: '757368da-33b2-4a07-9845-9810074a8c86',\n    // }\n    // locals.COMMANDS = this.COMMANDS\n\n\n    locals.loading = true\n\n    locals.downloadRunning = false\n    this.applicationsSub = null\n\n    this.baseZipUrl = '/api/services/18047369-674f-4ba5-bf5d-bba493f4f9bb/v2/zip'\n    this.baseXlsUrl = '/api/services/6085956b-0346-4b85-8cfe-1cb9cc1d1303/v1/models'\n\n    locals.zipDownloadUrl = `${this.baseZipUrl}?projectId=${document.id}`\n    locals.zipDownloadUrlNew = `${this.baseZipUrl}?projectId=${document.id}&onlyNew=true`\n    locals.zipDownloadUrlSelection = ''\n    locals.xlsDownloadUrl = `${this.baseXlsUrl}?projectId=${document.id}`\n    locals.xlsDownloadUrlSelection = ''\n\n    locals.downloadInfo = null\n    locals.statistics = {\n      changed: 0,\n      selected: 0,\n    }\n\n    locals.buttons = this.getButtons()\n\n    this.debouncedUpdatedSelectedUrl = Aeppic.debounce(this.updateSelectedUrl, 250, this)\n\n    this.onChange = () => this.onSelectionsChange()\n    packages.Selections.addOnChangeHandler(this.onChange)\n\n    this.onSelectionsChange()\n\n    this.downloadInfoQuery = `p:${document.id} f.id:${this.FORMS.DownloadInfo} data.account.id:${Aeppic.Account.id}`\n\n    this._updateStatistics(await Aeppic.findOne(this.downloadInfoQuery))\n\n    locals.loading = false\n  }\n\n  getButtons() {\n    return [\n      {\n        identifier: 'all',\n        text: locals.statistics.selected > 900 ? 'zu groß (max 900)' : locals.statistics.selected ? 'Auswahl (' + locals.statistics.selected + ')' : 'Alle (' + data.finishedApplications + ')',\n        icon: locals.statistics.selected ? 'far fa-download' : 'far fa-download',\n        disabled: !data.finishedApplications || locals.statistics.selected > 900,\n      },\n      {\n        identifier: 'new',\n        text: 'Neue (' + locals.statistics.changed + ')',\n        icon: locals.loading || locals.downloadRunning ? 'far fa-circle-notch fa-spin' : 'far fa-download',\n        disabled: locals.loading || locals.downloadRunning || !locals.statistics.changed,\n        title: 'Neue (' + locals.statistics.changed + ') seit ' + (locals.downloadInfo && locals.downloadInfo?.data.lastDownloadDate ? Aeppic.DateTime.fromISO(locals.downloadInfo.data.lastDownloadDate).toLocaleString(Aeppic.DateTime.DATETIME_SHORT_WITH_SECONDS) : ''),\n        primary: true,\n      },\n      { identifier: 'excel',\n        text: locals.statistics.selected > 900 ? 'zu groß (max 900)' : locals.statistics.selected ? 'Auswahl (' + locals.statistics.selected + ')' : 'Alle (' + data.finishedApplications + ')',\n        icon: 'far fa-file-excel',\n        disabled: !data.finishedApplications || locals.statistics.selected > 900\n      },\n      // {\n      //   identifier: 'mails',\n      //   text: 'Mails kopieren',\n      //   icon: 'far fa-envelope-open',\n      //   disabled: locals.statistics.selected === 0,\n      // }\n    ]\n  }\n\n  selectedButton(button) {\n    if (button.identifier === 'new') {\n      this.downloadChanged()\n    } else if (button.identifier === 'all') {\n      $refs.linkZip.click()\n    } else if (button.identifier === 'excel') {\n      $refs.linkXlsxExport.click()\n    }\n    // else if (button.identifier === 'mails') {\n    //   $refs.copyMails.$emit('show')\n    // }\n  }\n\n  _updateStatistics(downloadInfo) {\n    const finishedApplications = document.data.finishedApplications || 0\n    const downloadedApplications = downloadInfo?.data.downloadedApplications || 0\n\n    const changed = finishedApplications - downloadedApplications\n\n    locals.statistics.changed = changed\n  }\n\n  downloadChanged() {\n    this.downloadInfoSub?.cancel()\n\n    this.downloadInfoSub = Aeppic.subscribe(this.downloadInfoQuery, { size: 1 }, async (docs) => {\n      const info = docs[0]\n\n      // FIXME: subscribe is broken!!! got an event with the correct info, then an empty docs array. so try to guard against that behaviour\n      if (!info && locals.downloadInfo) {\n        console.warn('FIXME: broken subscription')\n        return\n      }\n\n      locals.downloadInfo = info\n      this._updateStatistics(locals.downloadInfo)\n\n      locals.downloadRunning = false\n      this.downloadInfoSub = null\n    })\n\n    locals.downloadRunning = true\n\n    $refs.linkChanged.click()\n  }\n\n  async updateSelectedUrl() {\n    console.log('updateSelectedUrl')\n    const queryString = this.selection?.result()\n\n    if (queryString) {\n      const applications = await Aeppic.find(queryString, { size: 9999 })\n      locals.statistics.selected = applications.length\n\n      if (locals.statistics.all === locals.statistics.selected) {\n        locals.zipDownloadUrlSelection = locals.zipDownloadUrl\n        locals.xlsDownloadUrlSelection = locals.xlsDownloadUrl\n        return\n      }\n\n      const urlString = applications.map(application => `modelIds=${application.id}`).join('&')\n      locals.zipDownloadUrlSelection = `${this.baseZipUrl}?${urlString}`\n      locals.xlsDownloadUrlSelection = `${this.baseXlsUrl}?${urlString}`\n    } else {\n      locals.statistics.selected = 0\n      locals.zipDownloadUrlSelection = ''\n      locals.xlsDownloadUrlSelection = ''\n    }\n  }\n\n\n  onSelectionsChange() {\n    const selection = this.selection\n\n    if (selection) {\n      this.onEntiresChange = () => {\n        this.debouncedUpdatedSelectedUrl()\n      }\n\n      selection.addOnChangeHandler(this.onEntiresChange)\n    }\n  }\n\n  get selection() {\n    return packages.Selections.get(document.f.id)\n  }\n\n  destroy() {\n    if (packages.Selections) {\n      packages.Selections.removeOnChangeHandler(this.onChange)\n    }\n\n    if (this.selection) {\n      this.selection.removeOnChangeHandler(this.onEntiresChange)\n    }\n  }\n}\n","css":"._CSS {\n  display: flex;\n  xalign-items: center;\n  padding: 1px 0;\n}\n\n._CSS-value {\n  margin: 0 var(--ae-space-2);\n}\n\n._CSS-statistics {\n  background: var(--ae-background-100);\n  margin-left: var(--ae-space-6);\n}\n._CSS-statistics__label {\n  font-size: var(--ae-font-size-3);\n  margin-right: var(--ae-space-2);\n}\n\n._CSS ._CSS-button--new-uploads {\n  display: flex;\n  flex-flow: column;\n  justify-content: center;\n}\n\n._CSS-button--new-uploads__time {\n  font-size: var(--ae-font-size-1);\n}","description":"","name":"rd:page-toolbar","packages":[{"id":"9fbc0645-b97a-4b98-8520-02670f21ac0b","text":"Aeppic Search Helpers","v":"262622e3b5ee4583"},{"id":"d648078c-4579-4023-a4ec-b7b9cf639b70","text":"Selection Manager v2","v":"7b447f9cef26ec92"}],"template":" <div class=\"flex gap-1 items-center\">\n    <ae-layout\n      layout-id=\"017828fa-4448-499d-bfaf-45ef6b470b43\"\n      :param-buttons=\"controller.getButtons()\"\n      :param-collapsed=\"params.windowWidth <= 1280\"\n      param-border=\"border\"\n      @selected=\"controller.selectedButton($event)\"\n      param-selected-identifier=\"new\"\n    ></ae-layout>\n\n    <a v-show=\"false\" ref=\"linkChanged\" :href=\"locals.zipDownloadUrlNew\" target=\"_blank\"></a>\n\n    <a\n      v-show=\"false\"\n      v-if=\"locals.statistics.selected\"\n      :href=\"locals.zipDownloadUrlSelection\"\n      target=\"_blank\"\n      ref=\"linkZip\"\n    >\n    </a>\n    <a v-show=\"false\" v-else :href=\"locals.zipDownloadUrl\" target=\"_blank\" ref=\"linkZip\"> </a>\n \n    <a\n      v-show=\"false\"\n      v-if=\"locals.statistics.selected\"\n      :href=\"locals.xlsDownloadUrlSelection\"\n      target=\"_blank\"\n      ref=\"linkXlsxExport\"\n    >\n    </a>\n    <a v-show=\"false\" :href=\"locals.xlsDownloadUrl\" target=\"_blank\" ref=\"linkXlsxExport\"> </a>\n\n    <div class=\"flex border rounded-full py-1 px-2 gap-1 items-center bg-white overflow-hidden\" title=\"Statistiken\">\n      <!-- <div v-if=\"data.startedApplications\" class=\"flex items-center\" title=\"Gestartete, aber nicht beendete, Bewerbungen\">\n        <ae-icon class=\"far fa-user-times mr-1 text-amber-600\"></ae-icon> {{ data.startedApplications }}\n      </div> -->\n      <div class=\"flex items-center\" title=\"AKTUELL DEAKTIVIERT: Gestartete, aber nicht beendete, Bewerbungen\">\n        <ae-icon class=\"far fa-user-times mr-1 text-amber-600\"></ae-icon> ??\n      </div>\n\n      <ae-icon class=\"far fa-angle-double-right\"></ae-icon>\n\n      <div v-if=\"data.finishedApplications\" class=\"flex items-center\" title=\"Gestartete und beendete Bewerbungen\">\n        <ae-icon class=\"far fa-user-check mr-1 text-lime-600\"></ae-icon> {{ data.finishedApplications }}\n      </div>\n    </div>\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"8ee7bfb6-6eeb-4747-a82c-9f5b1e34c0a9","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-07-28T10:07:43+00:00","backedBy":"","by":"b7485498-f1f3-4ab1-87d1-9cb63ea890c8","client":"server","from":"","impersonatedBy":""},"p":"8fef472f-9220-484b-99cd-bb80f208f795","previous":{"v":"d01dd97aa4124db5"},"stamps":[],"t":1785233263757,"v":"95f6e01552f24990"},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","0bb3d600-faf0-4a5c-b49f-7994d234ae76"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2026-06-09T12:16:28+00:00","backedBy":"","by":"b7485498-f1f3-4ab1-87d1-9cb63ea890c8","client":"server","from":"","impersonatedBy":""},"ct":1781007388320,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:page-toolbar","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<div class=\"h-full flex gap-1 items-center\">\n  <ae-design name=\"rd:toolbar\" \n            :document=\"document\"\n            :param-disable-sort-filter=\"true\"\n  ></ae-design> \n</div>  "},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"8f04da16-4d90-49cb-b51f-8df26a3321aa","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-06-09T12:20:59+00:00","backedBy":"","by":"b7485498-f1f3-4ab1-87d1-9cb63ea890c8","client":"server","from":"","impersonatedBy":""},"p":"0bb3d600-faf0-4a5c-b49f-7994d234ae76","previous":{"v":"initial"},"stamps":[],"t":1781007659852,"v":"d9cdde40b295443a"},{"id":"9106e581-7bfb-458c-9ae2-4912e7adc2bd","v":"9a8cc784ce5c3bd9","previous":{"v":"initial"},"p":"0deb4864-cbb6-420c-99ee-337c7444ab24","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-toolbar","template":"<div class=\"flex items-center gap-4\">\n  <ae-layout layout-id=\"262e95e6-f1f8-477c-834b-89d533027e1e\"\n            :param-document=\"document\"\n  ></ae-layout>\n</div>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-04-25T12:36:04+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-04-25T12:37:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1714048652967,"ct":1714048564023,"a_depth":4,"a":["apps","59edbdbc-2cab-426a-bb42-6e57c5158e4f","3be7e887-1bcd-4c3c-979f-b20a986c4c48","0deb4864-cbb6-420c-99ee-337c7444ab24"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"9181fbfc-54ce-40af-a9ec-6b7e77dbbb52","v":"281f0096191048a3","previous":{"v":"initial"},"p":"account","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"rd:page-toolbar","template":"<div class=\"flex items-center gap-4\">\n  <ae-layout layout-id=\"262e95e6-f1f8-477c-834b-89d533027e1e\"\n            :param-document=\"document\"\n  ></ae-layout>\n</div>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-01-06T13:12:39+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-01-06T13:12:43+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1673010763093,"ct":1673010759104,"a_depth":5,"a":["system","b2533f7b-ea85-4680-99ed-d8e11be641b9","0e6939d6-9b93-4165-b6bd-977e4da881f3","627f5b74-3baf-45f8-a1d3-a5936839b844","account"],"a_forms":["system-folder-form","folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"a":["apps","94a64d89-d204-4918-b147-d717914fb03e","f254ce25-42f1-4333-8ee7-23554bf746c1","c6349b48-9561-4c06-9200-fe9df9b6fb3e"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2024-04-11T08:41:12+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1712825868167,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    this.SHARE_PREFIX = 'shared'\n    this.TEMPLATE_FORM_KUNDE = 'aba69172-0a71-41ed-8d72-8ef7a3cb016e'\n    this.TEMPLATE_FORM_BAUSTELLE = '82d9d875-0f38-4201-a44b-8a1fe7a5fefa'\n\n    this.STAMMDATEN_FORM = '089eb68f-d2ec-4e30-a3bb-6549d72932ec'\n    this.FORMS = {\n      SharedDocument: '804bed89-803a-4090-8b1b-857cab8ec6dd',\n    }\n\n    locals.hrefCustomer = ''\n    locals.hrefBaustelle = ''\n    locals.hrefDownload = ''\n    locals.hasFullAccess = false\n\n    locals.dropdownOptions = [\n      { identifier: 'mail', display: 'In E-Mail Client öffnen' },\n      { identifier: 'clipboard', display: 'In Zwischenablage kopieren' }, \n    ]\n\n    const commandResult = await Aeppic.Commands.execute('3a13cdaf-95f4-43d0-a8e5-6a02e5d8ffc1', document, { Account: Aeppic.Account })\n    locals.hasFullAccess = !!commandResult.value\n  }\n\n  async selectedCustomerOption(option) {\n    if (option.identifier === 'mail') { \n      this.clickCustomerLink()\n    } else {\n      const body = await this.getTokenizedTemplate('kunde', this.TEMPLATE_FORM_KUNDE, 'passwortKunde')\n\n      Aeppic.copyToClipboard(body)\n    }\n  }\n\n  async selectedBaustelleOption(option) {\n    if (option.identifier === 'mail') { \n      this.clickBaustelleLink()\n    } else {\n      const body = await this.getTokenizedTemplate('baustelle', this.TEMPLATE_FORM_BAUSTELLE, 'passwortBaustelle')\n\n      Aeppic.copyToClipboard(body)\n    }\n  }\n \n  async clickDownloadLink() {\n    let href = `/api/services/41e10b87-b2e2-4534-a224-ebe1b728ff29/v1/zip?folderId=${document.id}`\n\n    const templateFiles = await Aeppic.getAll([...data.gesendeteProjektFormulare, ...data.hochgeladeneProjektFormulare])\n    const ids = templateFiles.filter(d => !!d).map(d => `fileIds=${d.id}`).join('&')\n\n    href = `${href}&${ids}`\n\n    console.log({href, ids })\n    \n    locals.hrefDownload = href\n\n    await Aeppic.nextRenderPass()\n\n    $refs.linkDownload.click()\n}\n\n  async clickCustomerLink() {\n    locals.hrefCustomer = await this.mailto('kunde', this.TEMPLATE_FORM_KUNDE, 'passwortKunde')\n\n    await Aeppic.nextRenderPass()\n\n    $refs.mailtoCustomer.click()\n  }\n\n  async clickBaustelleLink() {\n    locals.hrefCustomer = await this.mailto('baustelle', this.TEMPLATE_FORM_BAUSTELLE, 'passwortBaustelle')\n\n    await Aeppic.nextRenderPass()\n\n    $refs.mailtoCustomer.click()\n  }\n\n  async mailto(nameOfShare, tokenTemplateFormId, passwordFieldName) {\n    const parts = []\n\n    const recipients = (await Aeppic.getAll(data.empfaenger)).filter(d => d != null)\n\n    for (let i = 0; i < recipients.length; i += 1) {\n      const recipient = recipients[i]\n\n      if (recipient && recipient.data.email) {\n        parts.push(recipient.data.email)\n\n        if (recipients.length > 1 && i < recipients.length) {\n          parts.push(',')\n        }\n      }\n    }\n\n    if (!parts.length) {\n      // add placeholder spacer if no recipient email added. Without mail-clients will not be able to parse complete mail\n      parts.push('%20')\n    }\n\n    if (data.name) {\n      parts.push(`?subject=${encodeURIComponent(data.name)}`)\n    }\n \n    const body = encodeURIComponent(await this.getTokenizedTemplate(nameOfShare, tokenTemplateFormId, passwordFieldName, true))\n\n    if (parts.length < 1) {\n      parts.push(`?body=${body}`)\n    } else {\n      parts.push(`&body=${body}`)\n    }\n  \n    return `mailto:${parts.join('')}`\n  }\n\n  async getTokenizedTemplate(nameOfShare, tokenTemplateFormId, passwordFieldName, shortenTemplate) {\n    const share = await Aeppic.findOne(`p:${document.id} f.id:${this.FORMS.SharedDocument} data.identifier:\"${nameOfShare}\"`)\n\n    if (!share) {\n      throw new Error('No share found for name ' + nameOfShare)\n    }\n\n    const baseUrl = packages.window.location.origin \n    const urlSuffix = !data[passwordFieldName] ? '' : ''\n    \n    const url = `${baseUrl}/${this.SHARE_PREFIX}/${share.id}${urlSuffix}`\n\n    const readableShare = await Aeppic.new('e60d2d83-e63b-4786-87c7-6f932b62f6bb', document.id)\n    readableShare.data.url = url\n\n    const tokenizedTemplate = await this.buildTokenTemplate(readableShare, tokenTemplateFormId, shortenTemplate)\n\n    return tokenizedTemplate\n  }\n\n  async buildTokenTemplate(share, tokenTemplateFormId, shortenTemplate) {\n    const tokenTemplateDocument = await Aeppic.findOne(`a:${document.a[0]} a_forms:${this.STAMMDATEN_FORM} f.id:${tokenTemplateFormId}`)\n    const template = tokenTemplateDocument.data.template\n\n    const parent = await Aeppic.get(document.p)\n    const empfaenger = await Aeppic.get(document.data.empfaenger[0])\n\n    const dataDocuments = [parent, empfaenger, share, document].filter(d => d != null)\n\n    const reportData = await this._generateReportData(dataDocuments)\n\n    const tokenizedTemplate = this._replaceTokensInXml(template, reportData)\n    console.log('-> token template', reportData, tokenizedTemplate)\n\n    // FIXME: if string gets too long, it cannot be opened in Outlook. Thunderbird works just fine\n    if (shortenTemplate && tokenizedTemplate.length > 900) {\n      const minimalReportData = {\n        'dokumenten-share_name': reportData['dokumenten-share_name'],\n        'dokumenten-share_passwortbaustelle': reportData['dokumenten-share_passwortbaustelle'],\n        'dokumenten-share_passwortkunde': reportData['dokumenten-share_passwortkunde'],\n        'projekt_name': reportData['projekt_name'],\n        'share_url': reportData['share_url'],\n        'kontakt_ansprechpartner': reportData['kontakt_ansprechpartner'],\n      }\n\n      const minimalTokenizedTemplate = this._replaceTokensInXml(template, minimalReportData)\n\n      console.log('-> MINIMAL token template', minimalReportData, minimalTokenizedTemplate.length, minimalTokenizedTemplate)\n\n      return minimalTokenizedTemplate\n    }\n \n    return tokenizedTemplate\n  }\n\n  async _generateReportData(dataDocuments) {\n    const reportData = {}\n    const usedFormNames = []\n\n    for (const document of dataDocuments) {\n      const form = await Aeppic.getFormForDocument(document)\n\n      const formName = form.data.name.replace(/\\s/g, '-')\n\n      if (usedFormNames.includes(formName)) {\n        log.warn(\n          'duplicate form name \"%s\" referenced. Ignoring',\n          formName,\n          document\n        )\n\n        continue\n      }\n\n      usedFormNames.push(formName)\n\n      for (const field of form.fields) {\n        const { type, subType, name } = field\n        const value = document.data[name]\n        const fieldName = this._uniformToken(`${formName}_${name}`)\n\n        if (type === 'string' || type === 'number') {\n          reportData[fieldName] = `${value}`\n          \n          continue\n        }\n\n        if (type === 'object' && subType === 'address') {\n          for (const key of Object.keys(value)) {\n            const subFieldName = `${fieldName}_${key}`\n            const subValue = value[key]\n            \n            reportData[subFieldName] = `${subValue}`\n          }\n        }\n\n      }\n    }\n\n    return reportData\n  }\n\n  _replaceTokensInXml(template, documentData) {\n    if (!documentData) {\n      return template\n    }\n\n    for (const token in documentData) {\n      if (!(typeof token === 'string' || typeof token === 'number')) {\n        continue\n      }\n\n      const tokenExp = `$${token}$`\n      \n      const value = documentData[token] ? String(documentData[token]) : ''\n\n      template = template.replace(tokenExp, value)\n    }\n\n    return template\n  }\n\n  _uniformToken(token) {\n    let sanitized = token\n\n    // Ü, ü     \\u00dc, \\u00fc\n    // Ä, ä     \\u00c4, \\u00e4\n    // Ö, ö     \\u00d6, \\u00f6\n    // ß        \\u00df\n    sanitized = sanitized.replace(/\\u00dc/g, 'Ue')\n    sanitized = sanitized.replace(/\\u00fc/g, 'ue')\n    sanitized = sanitized.replace(/\\u00c4/g, 'Ae')\n    sanitized = sanitized.replace(/\\u00e4/g, 'ae')\n    sanitized = sanitized.replace(/\\u00d6/g, 'Oe')\n    sanitized = sanitized.replace(/\\u00f6/g, 'oe')\n    sanitized = sanitized.replace(/\\u00df/g, 'ss')\n\n    return sanitized.toLowerCase()\n  }\n}\n","css":"","description":"","name":"rd:page-toolbar","packages":[{"id":"10843fbf-4f0c-416b-be7d-42d6bbd0ae68","text":"Window","v":"5f748569e59edddc"}],"template":"<div v-if=\"locals.hasFullAccess\" class=\"h-full flex gap-2 items-center\" >\n  <ae-layout layout-id=\"8bc795f2-7ac8-4b95-9019-0b27b178a36e\"\n              :param-options=\"locals.dropdownOptions\"\n              :param-button-params=\"{ text: 'Kunde', icon: 'far fa-envelope-open-text', border: 'border border-secondary-200' }\"\n              @selected=\"controller.selectedCustomerOption($event)\"\n  ></ae-layout>\n\n  <ae-layout layout-id=\"8bc795f2-7ac8-4b95-9019-0b27b178a36e\"\n            :param-options=\"locals.dropdownOptions\"\n            :param-button-params=\"{ text: 'Baustelle', icon: 'far fa-envelope-open-text', border: 'border border-secondary-200' }\"\n            @selected=\"controller.selectedBaustelleOption($event)\"\n></ae-layout>\n\n\n\n    <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n              param-icon=\"far fa-file-download\"\n              param-text=\"Download\"\n              param-title=\"Alle Kunden-Dateien herunterladen ('Gesendete Formulare an Auftraggeber', 'Uploads des Auftraggebers')\"\n              @selected=\"controller.clickDownloadLink()\"\n              param-border=\"param-border\"\n  ></ae-layout> \n\n  <a ref=\"mailtoCustomer\" v-show=\"false\" :href=\"locals.hrefCustomer\" target=\"_blank\"></a>\n  <a ref=\"mailtoBaustelle\" v-show=\"false\" :href=\"locals.hrefBaustelle\" target=\"_blank\"></a>\n  <a ref=\"linkDownload\" v-show=\"false\" :href=\"locals.hrefDownload\" target=\"_blank\"></a>\n</div>\n\n  "},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"9ceca729-9de5-4944-bdf5-3e21e3f389f2","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-02-17T15:36:14+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"c6349b48-9561-4c06-9200-fe9df9b6fb3e","previous":{"v":"8562bfeab6e849dd"},"stamps":[],"t":1739806574015,"v":"3bcb5527a5a7fdc2"},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","50c3c7c5-c3d4-460c-b34d-0d61a4cb09ae"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2023-04-27T09:52:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1682589152257,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:page-toolbar","packages":[],"template":"<div class=\"h-full flex items-stretch gap-1\">\n  <!-- only icon when smaller than @tailwind/xl -->\n  <ae-design class=\"overflow-hidden flex-1\" \n            name=\"rd:workflow\" \n            :document=\"document\" \n            param-workflow-definition-id=\"974a8580-3e16-42f5-96aa-d73216190e89\"\n            :param-only-icon=\"params.windowWidth < 1280\" \n  ></ae-design>\n\n  <ae-design name=\"rd:toolbar\" \n            :document=\"document\"\n            :param-disable-sort-filter=\"true\"\n  ></ae-design>\n</div> \n "},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"a028e32a-1392-4586-b863-820b9f52072d","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-04-07T12:01:42+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"50c3c7c5-c3d4-460c-b34d-0d61a4cb09ae","previous":{"v":"4fc3acf79768465e"},"stamps":[],"t":1744027302990,"v":"a36860182fd70e4b"},{"id":"bc80008b-ea36-4091-8fcc-0f2d9a931c6f","v":"ffa46143e3de4900","cloneOf":{"id":"65a47cf3-dd3e-45b1-bac2-eb80e0ea15e6","v":"faad5513fcad0710","text":"rd:page-toolbar"},"originalCloneOf":{"id":"65a47cf3-dd3e-45b1-bac2-eb80e0ea15e6","v":"faad5513fcad0710","text":"rd:page-toolbar"},"previous":{"v":"e871d00f8a188806"},"p":"a37b2d75-d9d3-495a-a31c-52094d82e7bb","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-toolbar","template":"<div ref=\"root\" class=\"flex items-center gap-2 p-1\">\n   <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n                param-text=\"Datei\"\n                param-icon=\"far fa-file-alt\"\n                param-icon-right=\"far fa-angle-down\" \n                @selected=\"$refs.popup.show($event)\"\n                param-border=\"border\"\n    ></ae-layout>\n</div>  \n\n<ae-popup ref=\"popup\" placement=\"bottom\">\n  <template #default=\"scope\">\n    <div class=\"flex gap-1 flex-col p-1\" > \n      <!-- <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n                  param-icon=\"far fa-info\"\n                  param-text=\"Details\"\n                  @selected=\"{ $emit('toolbar', 'show-details'); scope.close() }\"\n                  :param-primary=\"true\"\n      ></ae-layout>  -->\n\n      <ae-form layout-id=\"782e2e58-19cb-4648-a0ad-74bdf5bfef0e\"\n                :document=\"document\"\n                :auto-save=\"true\"\n                v-if=\"locals.canEdit\"\n                @click.native.capture=\"scope.close()\"\n      ></ae-form>\n\n      <ae-design name=\"rd:abstract_download-and-print-buttons\"\n                :document=\"document\"\n                @toolbar=\"{ $emit('toolbar', $event); scope.close() }\"\n                @click.native.capture=\"scope.close()\"\n                param-field-name=\"generated\"\n                :param-display-column=\"true\"\n                :param-no-original=\"true\"\n      ></ae-design>\n    </div>\n  </template>\n</ae-popup> \n ","css":"","controller":"class Controller {\n  async init() {\n    const canEdit = !document.readonly && await Aeppic.canEdit(document)\n    locals.canEdit = Aeppic.Account?.data.isGroupAccount === false && canEdit === true\n  }\n}\n","packages":[{"id":"10843fbf-4f0c-416b-be7d-42d6bbd0ae68","v":"d4ce6dec568c3dc1","text":"Window"}],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-04-26T13:42:28+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-04-26T14:17:45+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1714141065943,"ct":1714138948816,"a_depth":4,"a":["apps","fb62ad28-07b0-4a99-91bd-43c297656f12","4e988078-8eed-4c34-9cc2-9b6c3e2cdb2a","a37b2d75-d9d3-495a-a31c-52094d82e7bb"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"bcc33a36-b0fa-4cb5-9c1a-91efb1ef88d1","v":"d0fdbaa1a15d8ad7","previous":{"v":"97cafe8994969ccc"},"p":"7be5f2c5-206b-4ab6-9d4d-c4834baf8e32","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-toolbar","template":"<div class=\"flex items-center h-full\" v-if=\"data.type === 'BIZPIN_CORE'\">\n  <ae-layout layout-id=\"8bc795f2-7ac8-4b95-9019-0b27b178a36e\"\n              :param-options=\"locals.options\"\n              :param-selected-identifiers=\"[locals.selectedOption?.identifier]\"\n              @selected=\"controller.viewEmployee($event)\"\n              class=\"w-[200px]\"\n  ></ae-layout>\n</div>\n","css":"","controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Employee: 'd2ac3563-3c3f-4f02-b923-9b67abf98d10'\n    }\n\n    locals.options = this.transformOptions([Aeppic.ProfilePage])\n    locals.selectedOption = this.transformOptions([Aeppic.ProfilePage])[0]\n    \n    locals.options = this.transformOptions([\n      ...(await Aeppic.find(`p:${Aeppic.ProfilePage.p} f.id:${this.FORMS.Employee}`))\n    ]).sort(d => d.display || d.id)\n  }\n\n  transformOptions(employees) {\n    return employees.map(e => {\n      return {\n        identifier: e.id,\n        display: e.data.name,\n        iconDesign: true,\n        documentId: e.id,\n      }\n    })\n  }\n\n  viewEmployee(selectedOption) {\n    locals.selectedOption = selectedOption\n\n    $emit('toolbar', `employee-${selectedOption.documentId}`)\n  }\n}  ","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-03-13T14:51:24+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-10-11T09:52:41+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1697017961373,"ct":1678719084537,"a_depth":4,"a":["apps","599db2de-4e07-4722-98bd-7f42d498b352","79718664-ed22-4b52-9c10-037881df3578","7be5f2c5-206b-4ab6-9d4d-c4834baf8e32"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","94a64d89-d204-4918-b147-d717914fb03e","f254ce25-42f1-4333-8ee7-23554bf746c1","5152f88f-3006-46f9-959a-423139accf79"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"1f607bae-249e-491f-a5fc-1c94a47ce591","text":"additional-toolbar-buttons","v":"a27884b1e5b56421"},"created":{"at":"2024-04-12T13:08:31+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1712927311912,"data":{"aliases":[],"controller":"class Controller {\n  init() {\n    locals.buttons = [\n      { identifier: 'forms-to-send', \n        text: 'E-Mail ', \n        title: 'Als neue E-Mail in lokalem E-Mail Programm öffnen', \n        icon: 'far fa-envelope-open',\n        tokenTemplateFormId: '10b3d98f-08ea-4423-945a-0d1650321b09'\n      }\n    ]\n  }\n}\n ","css":"","description":"","name":"rd:page-toolbar","packages":[{"id":"10843fbf-4f0c-416b-be7d-42d6bbd0ae68","text":"Window","v":"5f748569e59edddc"}],"template":"<ae-design class=\"h-full\" name=\"rd:abstract-share-as-mail-buttons\" :document=\"document\" :param-buttons=\"locals.buttons\"></ae-design>\n "},"f":{"id":"design-form","text":"Design","v":"24435d748c76f819"},"id":"c4069ffb-a39a-41b5-bb24-b6e30075f679","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-02-17T15:34:34+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"1f607bae-249e-491f-a5fc-1c94a47ce591","text":"additional-toolbar-buttons","v":"a27884b1e5b56421"},"p":"5152f88f-3006-46f9-959a-423139accf79","previous":{"v":"b118e1cd2b0389cd"},"stamps":[],"t":1739806474007,"v":"c00fe16cabcc62fd"},{"a":["apps","0924db0f-7095-4b51-8966-bad1e45d68ec","a3b935e7-60bc-4996-9b18-668e4361067f","e9f42b0b-50dd-4e21-9152-02c89b73c6d7"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"db003854-c6b4-4cb8-8548-c3644e070bc8","text":"rd:page-toolbar","v":"a0db65b6a039e2c1"},"created":{"at":"2023-03-09T13:54:55+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1678370095998,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:page-toolbar","packages":[],"template":"<div class=\"h-full flex items-center gap-4\">\n  <ae-layout layout-id=\"262e95e6-f1f8-477c-834b-89d533027e1e\"\n            :param-document=\"document\"\n  ></ae-layout>\n</div>"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"c48916a2-2f6f-4a79-ad3a-723770ca61f6","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-09-25T11:40:42+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"db003854-c6b4-4cb8-8548-c3644e070bc8","text":"rd:page-toolbar","v":"a0db65b6a039e2c1"},"p":"e9f42b0b-50dd-4e21-9152-02c89b73c6d7","previous":{"v":"ae6056c44001a76e"},"stamps":[],"t":1758800442343,"v":"0812a7a87c7fb2e3"},{"id":"c4962c40-aa7b-4efe-b647-2cce8521f3e7","v":"initial","cloneOf":{"id":"5fe6c3e8-30f5-47bd-bb08-32cc65e1c890","v":"bba8d37326da8ba5","text":"rd:page-toolbar"},"originalCloneOf":{"id":"5fe6c3e8-30f5-47bd-bb08-32cc65e1c890","v":"bba8d37326da8ba5","text":"rd:page-toolbar"},"p":"2c729a18-4c85-4b7e-8c6c-358c8b9b1b3d","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-toolbar","template":"<ae-design class=\"h-full w-full\" name=\"rd:page-toolbar\" :document=\"locals.document\" :params=\"params\"></ae-design>\n","css":"","controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      RepositoryFolder: 'repository-folder-form',\n      Schmiedekalender: '43f2603c-e6b0-4a91-9087-4f103c96a2b4'\n    }\n\n    locals.document = null\n\n    const documentsByView = {\n      smith: null,\n    }\n\n    const documents = await Aeppic.find(`p:${document.id}`)   \n\n    for (const doc of documents) {\n      // if (doc.f.id === this.FORMS.RepositoryFolder) {\n      //   if (doc.data.contentsForm?.id === this.FORMS.MedikamentTierklinik || doc.data.contentsForm?.id === this.FORMS.MedikamentPferdeklinik) {\n      //     documentsByView.drugs = doc\n      //   } else if (doc.data.contentsForm?.id === this.FORMS.Desinfektionsmittel) {\n      //     documentsByView.disinfection = doc\n      //   } else if (doc.data.contentsForm?.id === this.FORMS.FuttermittelTierklinik || doc.data.contentsForm?.id === this.FORMS.FuttermittelPferdeklinik) {\n      //     documentsByView.feed = doc\n      //   } else if (doc.data.contentsForm?.id === this.FORMS.InternerTelefoneintrag) {\n      //     documentsByView['phone-internal'] = doc\n      //   } else if (doc.data.contentsForm?.id === this.FORMS.ExternerTelefoneintrag) {\n      //     documentsByView['phone-external'] = doc\n      //   }\n\n      //   continue\n      // }\n\n      if (doc.f.id === this.FORMS.Schmiedekalender) {\n        documentsByView.smith = doc \n        continue\n      }\n\n      // ignore elsewise (could be locks or whatnot)\n    }\n\n    console.warn(documentsByView)\n\n    locals.document = documentsByView[params.view]\n\n    watchParam('view', (newView) => locals.document = documentsByView[newView])\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2025-02-07T16:06:28+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2025-02-07T16:06:28+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1738944388554,"ct":1738944388553,"a_depth":4,"a":["apps","49babc91-9123-4d92-b850-ce4d10f0e1b4","b6b5ad5b-124f-4b1c-8f55-74294451a2ba","2c729a18-4c85-4b7e-8c6c-358c8b9b1b3d"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","b9df606f-b33a-48ad-ba91-a82fa7868fa4","f0010376-2737-42c5-aaf8-f8b8e1cd0449","59b7188e-1296-4466-a9c2-d6255496e7d6"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"dfeaf9d5-febc-4dd3-9b24-4b6d6a7f086f","text":"additional-toolbar-buttons","v":"c9c0f46b8c4749ce"},"created":{"at":"2023-02-28T09:27:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1677576452757,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:page-toolbar","packages":[],"template":"<div class=\"flex gap-2 items-center h-full\">\n  <a v-if=\"data.emlFile && data.emlFile.dataUrl\" :href=\"Aeppic.Content.getUrl(document, 'emlFile')\" :download=\"document.data.emlFile.name\">\n    <ae-layout  layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n                param-icon=\"far fa-download\"\n                param-text=\"EML-Datei\"\n                class=\"w-full\"\n                param-classes=\"w-full\"\n                param-border=\"border border-secondary-200\"\n    ></ae-layout>\n  </a>\n\n  <a v-if=\"data.msgFile && data.msgFile.dataUrl\" :href=\"Aeppic.Content.getUrl(document, 'msgFile')\" :download=\"document.data.msgFile.name\">\n      <ae-layout  layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n                param-icon=\"far fa-download\"\n                param-text=\"MSG-Datei\"\n                class=\"w-full\"\n                param-classes=\"w-full\"\n                param-border=\"border border-secondary-200\"\n    ></ae-layout>\n  </a> \n</div>\n"},"f":{"id":"design-form","text":"Design","v":"0a6757fa85895d29"},"id":"caf430c5-0f4b-42b5-988c-3a5a9c536a6f","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-05-08T12:39:59+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"dfeaf9d5-febc-4dd3-9b24-4b6d6a7f086f","text":"additional-toolbar-buttons","v":"c9c0f46b8c4749ce"},"p":"59b7188e-1296-4466-a9c2-d6255496e7d6","previous":{"v":"2386ae5517301db3"},"stamps":[],"t":1746707999904,"v":"169d158ec156d00a"},{"a":["apps","9d6ee173-26fe-4472-a271-7667f717094e","53b70eca-0cef-448b-9674-22a70a937eb1","8fc08287-dbcc-4e41-9d5d-28e4cd828943"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2023-12-18T14:11:07+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1702908667410,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:page-toolbar","packages":[],"template":"<div class=\"h-full flex gap-2 items-center\">\n  <div v-if=\"data.dmsFolder.id\">\n      <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n              param-icon=\"far fa-external-link\"\n              param-border=\"border\"\n              param-text=\"Dateien\"\n              @selected=\"Aeppic.navigateTo(data.dmsFolder.id)\"\n              param-title=\"Zum Dateien Ordner navigieren\"\n    ></ae-layout>\n  </div>\n  <div v-if=\"data.project.id\">\n    <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n              param-icon=\"far fa-external-link\"\n              param-border=\"border\"\n              param-text=\"Projekt\"\n              @selected=\"Aeppic.navigateTo(data.project.id, { tab: 'project' })\"\n              param-title=\"Zum Projekt und Aufgaben navigieren\"\n    ></ae-layout>\n  </div>\n</div> "},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"cb433f2b-9770-4cf6-bcee-ff28caa57acb","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-05-08T13:24:24+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"8fc08287-dbcc-4e41-9d5d-28e4cd828943","previous":{"v":"645072f798de92e2"},"stamps":[],"t":1746710664041,"v":"9591fc35a3705ab1"},{"a":["apps","f416e371-07cc-4987-a6de-5934ef5ff3e4","1096c5df-2773-4914-9455-dc54e0f3e0e5","14931d03-c3bb-4cf7-9f62-747f94d8b01a"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2023-10-16T12:49:52+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1697460592446,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:page-toolbar","packages":[],"template":"<div class=\"h-full flex items-center gap-4\">\n  <ae-layout layout-id=\"262e95e6-f1f8-477c-834b-89d533027e1e\"\n            :param-document=\"document\"\n  ></ae-layout>\n</div>"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"cb44b3dc-482b-439a-82ae-d6f3c206034a","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-09-19T14:18:25+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"14931d03-c3bb-4cf7-9f62-747f94d8b01a","previous":{"v":"c9405cbc52f63293"},"stamps":[],"t":1758291505926,"v":"e2b2fc2bf31e0bb3"},{"id":"d0bc59f4-0095-4dce-8d4f-800841748702","v":"751024431502a635","previous":{"v":"0703373141c25e15"},"p":"f0cf1b33-f840-4d4b-9335-c10daa7a335e","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-toolbar","template":"<ae-layout v-if=\"Aeppic.Account?.data.allowDevMode\" layout-id=\"95874087-d16c-46b7-bdc8-38854c466a35\" param-form-id=\"527f9bb3-01bd-48cc-ad5b-08b1bba3af33\" :param-parent=\"document\"></ae-layout>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-02-09T10:05:54+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-02-09T13:52:40+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1707486760291,"ct":1707473154964,"a_depth":4,"a":["apps","bd4df555-2c56-4a5f-82f0-7e4745372f51","b42c9135-e564-4d50-abd1-4d753921120f","f0cf1b33-f840-4d4b-9335-c10daa7a335e"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","bd4df555-2c56-4a5f-82f0-7e4745372f51","b42c9135-e564-4d50-abd1-4d753921120f","527f9bb3-01bd-48cc-ad5b-08b1bba3af33"],"a_depth":4,"a_forms":["folder","application-form","folder","form"],"cloneOf":{"id":"2110aad6-5387-4aca-820d-9da029e2fff4","text":"additional-toolbar-buttons","v":"3eaab945d2cdfd7e"},"created":{"at":"2023-03-23T09:38:46+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1679564326567,"data":{"aliases":[],"controller":"init() {\n  locals.url = null\n  \n  locals.help = `\nProzesse werden im bpmn.io-Dateiformat erstellt und gespeichert.\nDer Download der Datei für folgende Anwendungsfälle nützlich.\n\n<br>\n\n### Transport in einen anderen Prozess in bizpin\n\nDazu die heruntergeladene bpmn-Datei einfach per Drag&Drop auf einen leeren Prozess ziehen\n\n<br>\n\n### Nutzung mit der Demo-Anwendung des OpenSource Editor-Herstellers\n\n(bpmn.io): https://demo.bpmn.io/\n`\n} \n\nasync download(clickEvent) {\n  const blob = new Blob([ data.prozess ], { type: 'application/xml'} )\n\n  const objectUrl = URL.createObjectURL(blob)\n\n  locals.url = objectUrl\n\n  await Aeppic.nextRenderPass()\n\n  $refs.a.click()\n}\n  ","css":"","description":"","name":"rd:page-toolbar","packages":[],"template":"<!-- <div @click.capture.prevent=\"controller.download()\" class=\"ae-button\">\n    <ae-icon class=\"fa fa-download\"></ae-icon>\n</div> -->\n\n\n<div class=\"flex items-center gap-2 h-full\">\n  <ae-control name=\"rd:help\" :document=\"document\"\n              :param-text=\"locals.help\"\n  ></ae-control>\n\n  <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n            param-icon=\"far fa-download\"\n            @selected=\"controller.download()\"\n            param-border=\"border border-secondary-200\"\n  ></ae-layout>\n</div> \n\n<a v-if=\"locals.url\" ref=\"a\"  :href=\"locals.url\" :download=\"data.name + '.bpmn'\" target=\"_blank\"></a>"},"f":{"id":"design-form","text":"Design","v":"24435d748c76f819"},"id":"d7123296-71be-4587-8cb9-4ed8608a478e","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-02-17T14:59:56+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"2110aad6-5387-4aca-820d-9da029e2fff4","text":"additional-toolbar-buttons","v":"3eaab945d2cdfd7e"},"p":"527f9bb3-01bd-48cc-ad5b-08b1bba3af33","previous":{"v":"b90903b372c4ef0d"},"stamps":[],"t":1739804396265,"v":"c0672e2c36ea5b6a"},{"id":"d802d248-4338-4997-a32a-40ab0bbbb435","v":"9f874af02e0878c0","previous":{"v":"0b3ef3a2166ccd18"},"p":"42e3adf4-96eb-4eaa-8e80-4bdd671540a3","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-toolbar","template":"<ae-layout v-if=\"Aeppic.Account?.data.allowDevMode\" layout-id=\"95874087-d16c-46b7-bdc8-38854c466a35\" param-form-id=\"f0cf1b33-f840-4d4b-9335-c10daa7a335e\" :param-parent=\"document\"></ae-layout>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-02-09T10:37:01+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-02-09T13:51:26+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1707486686224,"ct":1707475021872,"a_depth":4,"a":["apps","bd4df555-2c56-4a5f-82f0-7e4745372f51","b42c9135-e564-4d50-abd1-4d753921120f","42e3adf4-96eb-4eaa-8e80-4bdd671540a3"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","0924db0f-7095-4b51-8966-bad1e45d68ec","a3b935e7-60bc-4996-9b18-668e4361067f","54da686f-3f74-441b-b686-ed2b71dd35cc"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2023-03-07T12:47:09+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1678193229549,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:page-toolbar","packages":[],"template":"<div class=\"h-full flex items-center gap-4\">\n  <ae-layout layout-id=\"262e95e6-f1f8-477c-834b-89d533027e1e\"\n            :param-document=\"document\"\n  ></ae-layout>\n</div>"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"db003854-c6b4-4cb8-8548-c3644e070bc8","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-02-17T15:37:20+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"54da686f-3f74-441b-b686-ed2b71dd35cc","previous":{"v":"a0db65b6a039e2c1"},"stamps":[],"t":1739806640538,"v":"ec250996612e319a"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","5011479f-3ef7-4c66-810b-3bb65f992712"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2025-08-04T12:49:37+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1754311777555,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:page-toolbar","packages":[],"template":"<div class=\"h-full flex items-center gap-4\">\n  <ae-layout layout-id=\"262e95e6-f1f8-477c-834b-89d533027e1e\"\n            :param-document=\"document\"\n  ></ae-layout>\n</div>"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"dc782dd0-b48d-4938-9d09-93a6dd0b57d4","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-08-04T12:50:13+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"5011479f-3ef7-4c66-810b-3bb65f992712","previous":{"v":"34be75bae9decd5b"},"stamps":[],"t":1754311813230,"v":"bda2a1eb806d4141"},{"a":["apps","0af4f8a7-729e-4318-8f82-7e976555004e","0ae4ef2a-62fc-4042-b07e-e93a134fe055","14e2b48e-d2fb-4162-a89e-773a952a85d7"],"a_depth":4,"a_forms":["folder","application-form","folder","form"],"created":{"at":"2025-08-22T08:01:57+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1755849717866,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.params = { \n      options: [],\n      buttonParams: {\n        text: 'Goto...'\n      }\n    }\n\n    locals.children = await Aeppic.find(`p:${document.id}`)\n\n    locals.params.options = locals.children.map(child => ({ documentId:child.id, display: child.data.name || child.f.text }))\n  }\n}","css":"","description":"","name":"rd:page-toolbar","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<div class=\"h-full flex items-center\">\n  <ae-layout layout-id=\"8bc795f2-7ac8-4b95-9019-0b27b178a36e\"\\\n      :params=\"locals.params\"\n      @selected=\"Aeppic.drillInto($event.documentId)\"\n  ></ae-layout>\n</div>"},"f":{"id":"design-form","text":"Design","v":"a6b987f8c80dc07f"},"id":"dd78b248-18f7-4276-b315-7f3fa6e3b4dc","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-08-22T08:11:24+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"14e2b48e-d2fb-4162-a89e-773a952a85d7","previous":{"v":"359da3d9c22c4925"},"stamps":[],"t":1755850284582,"v":"03504823f1e51340"},{"a":["system","system-forms","form"],"a_depth":3,"a_forms":["system-folder-form","repository-folder-form","form"],"created":{"at":"2025-12-08T08:28:27+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"ct":1765182507841,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:page-toolbar","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<div class=\"h-full flex items-center gap-4\">\n  <ae-layout layout-id=\"262e95e6-f1f8-477c-834b-89d533027e1e\"\n            :param-document=\"document\"\n  ></ae-layout>\n</div>"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"de817387-3be5-4a4a-8cee-40b53db3c003","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2025-12-08T08:28:36+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"p":"form","previous":{"v":"initial"},"stamps":[],"t":1765182516286,"v":"39aa50c0ed1b1ae8"},{"a":["apps","3fbe0efd-713a-457a-a34c-3a12aa19d6bb","0fb162f4-0f78-4c1e-aad2-43c27e6d98cb","e170bb6c-f326-446d-870a-ada9d9f67230"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2021-07-23T11:05:33+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":""},"ct":1627038333874,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Application: '009c0da4-718f-43d0-964a-647e30074d94',\n    }\n\n    this.applicationsSub = null\n\n    this.baseXlsUrl = '/api/services/6085956b-0346-4b85-8cfe-1cb9cc1d1303/v1/models'\n    locals.xlsDownloadUrl = `${this.baseXlsUrl}?projectId=${document.id}`\n\n    locals.statistics = {\n      selected: 0,\n    }\n  }\n}\n","css":"._CSS {\n  display: flex;\n  padding: 1px 0;\n}\n\n._CSS-value {\n  margin: 0 var(--ae-space-2);\n}\n\n._CSS-statistics {\n  background: var(--ae-background-100);\n  margin-left: var(--ae-space-6);\n}\n._CSS-statistics__label {\n  font-size: var(--ae-font-size-3);\n  margin-right: var(--ae-space-2);\n}\n\n._CSS ._CSS-button--new-uploads {\n  display: flex;\n  flex-flow: column;\n  justify-content: center;\n}\n\n._CSS-button--new-uploads__time {\n  font-size: var(--ae-font-size-1);\n}","description":"","name":"rd:page-toolbar","packages":[{"id":"d648078c-4579-4023-a4ec-b7b9cf639b70","text":"Selection Manager v2","v":"7b447f9cef26ec92"}],"template":"<div class=\"flex items-center gap-1\">\n  <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\" \n    :param-disabled=\"!data.finishedApplications || locals.statistics.selected > 900\" \n    @selected=\"$refs.linkXlsxExport.click()\"\n    param-icon=\"far fa-file-excel\"\n    :param-text=\"locals.statistics.selected > 900 ? 'zu groß (max 900)' : locals.statistics.selected ? 'Auswahl (' + locals.statistics.selected + ')' : 'Alle (' + data.finishedApplications + ')'\"\n    param-border=\"border\"\n  >\n  </ae-layout>\n\n  <a v-show=\"false\" v-if=\"locals.statistics.selected\" :href=\"locals.xlsDownloadUrlSelection\" target=\"_blank\" ref=\"linkXlsxExport\"> </a> \n  <a v-show=\"false\" v-else :href=\"locals.xlsDownloadUrl\" target=\"_blank\" ref=\"linkXlsxExport\"> </a> \n\n  <div class=\"flex truncate border rounded-full py-1 px-2 gap-1 items-center bg-white\">\n    <label class=\"font-bold mr-1\">Statistiken</label>\n\n    <!-- <div v-if=\"data.startedApplications\" class=\"\" title=\"Gestartete, aber nicht beendete, Bewerbungen\">\n      <ae-icon class=\"far fa-user-times mr-1 text-amber-600\"></ae-icon> {{ data.startedApplications }}\n    </div>  -->\n    <div class=\"flex items-center\" title=\"AKTUELL DEAKTIVIERT: Gestartete, aber nicht beendete, Bewerbungen\">\n      <ae-icon class=\"far fa-user-times mr-1 text-amber-600\"></ae-icon> ??\n    </div>\n\n    <ae-icon class=\"far fa-angle-double-right\"></ae-icon>\n\n    <div v-if=\"data.finishedApplications\" class=\"\" title=\"Gestartete und beendete Bewerbungen\">\n      <ae-icon class=\"far fa-user-check mr-1 text-lime-600\"></ae-icon> {{ data.finishedApplications }}\n    </div>\n  </div>\n</div>"},"f":{"id":"design-form","text":"Design","v":"e37099c040ec46e9"},"id":"e19d2a0b-dca1-4ad6-8c12-4cf4f575ab1b","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-07-28T08:06:29+00:00","backedBy":"","by":"b7485498-f1f3-4ab1-87d1-9cb63ea890c8","client":"server","from":"","impersonatedBy":""},"p":"e170bb6c-f326-446d-870a-ada9d9f67230","previous":{"v":"57dfc90cbd9b5d43"},"stamps":[],"t":1785225989111,"v":"45dceeb6dbbd6f75"},{"id":"e520efc9-0b59-449a-886e-123f5754d79d","v":"09ed82258855d0a8","cloneOf":{"id":"a028e32a-1392-4586-b863-820b9f52072d","v":"583ac148ebb26263","text":"rd:page-toolbar"},"originalCloneOf":{"id":"a028e32a-1392-4586-b863-820b9f52072d","v":"583ac148ebb26263","text":"rd:page-toolbar"},"previous":{"v":"66803ca78e16567b"},"p":"1b6ab907-537e-4ea0-a262-13a4852e0cb2","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-toolbar","template":"<div class=\"h-full flex items-stretch gap-2\">\n  <ae-design name=\"rd:workflow\" :document=\"document\" param-workflow-definition-id=\"62c551ae-ffd9-484b-a76f-609691946e40\"></ae-design>\n  \n  <ae-design name=\"rd:toolbar\" \n  :document=\"document\"\n  :param-disable-sort-filter=\"true\"\n  ></ae-design>\n</div> \n  ","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-07-28T14:30:19+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-07-28T14:30:54+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1690554654010,"ct":1690554619750,"a_depth":5,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","50c3c7c5-c3d4-460c-b34d-0d61a4cb09ae","1b6ab907-537e-4ea0-a262-13a4852e0cb2"],"a_forms":["folder","application-form","form-folder","form","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"fc3e9d4a-e841-4d6f-9c58-efbf423b718b","v":"9cf9e0967b983366","previous":{"v":"f9a8f862eec71437"},"p":"73974d8e-7d35-4b59-acf0-84c529b194f1","f":{"id":"design-form","v":"22a757f630104010","text":"Design"},"data":{"name":"rd:page-toolbar","template":"<div class=\"h-full flex gap-2 items-center\">\n  <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\" param-icon=\"far fa-file-csv\" param-text=\"csv-Datei\" @selected=\"$refs.dialog.show()\" param-border=\"border border-secondary-200\"></ae-layout>\n\n  <ae-layout layout-id=\"6611846e-c4bc-4d29-bb20-9c2efb8eb2bb\"\n            :param-document=\"document\"\n            :param-form-id=\"data.form.id\"\n            v-show=\"false\"\n            ref=\"csvExporter\"\n  ></ae-layout>\n\n\n  <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\" param-icon=\"far fa-repeat\" param-text=\"Aktualisieren\" @selected=\"controller.rebuild()\" :param-disabled=\"locals.rebuildedOnce || locals.isOneTimeRun\" :param-title=\"locals.lastRebuild ? 'Aktualisiert am '+ Aeppic.DateTime.fromISO(locals.lastRebuild.created.at).toLocaleString(Aeppic.DateTime.DATETIME_SHORT) : 'Noch nicht aktualisiert'\" param-border=\"border border-secondary-200\"></ae-layout>\n\n  <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\" param-icon=\"far fa-info\" param-text=\"Hilfe\" @selected=\"$refs.helpDialog.show()\" param-border=\"border border-secondary-200\" :param-disabled=\"!locals.documentation\"></ae-layout>\n\n<ae-dialog ref=\"helpDialog\">\n    <template #header=\"scope\">\n    <div class=\"_CSS-dialog__header\">\n      <div>Hilfe zur Auswertung</div>\n      <button class=\"ae-button\" @click.stop=\"scope.close()\">\n        <ae-icon class=\"fa fa-times\"></ae-icon>\n      </button>\n    </div>\n  </template>\n\n    <template #body>\n      <ae-design name=\"rd:page-inner\" :document=\"locals.documentation\"></ae-design>\n    </template>\n</ae-dialog>\n\n \n  <template v-if=\"Aeppic.Account.data.isAdmin\">\n    <button class=\"text-xs text-red-500\" @click.stop=\"controller._run()\">\n      DEVELOPER (run WITH SAVES)\n    </button>\n  </template>\n</div> \n \n<ae-dialog ref=\"dialog\" :dialog-size=\"{ height: 'var(--ae-dialog__height--medium)' }\">\n  <template #header=\"scope\">\n    <div class=\"_CSS-dialog__header\">\n      <div>Daten exportieren</div>\n      <button class=\"ae-button\" @click.stop=\"scope.close()\">\n        <ae-icon class=\"fa fa-times\"></ae-icon>\n      </button>\n    </div>\n  </template>\n  <template #body>\n    <div v-if=\"locals.exportConfig\">\n      <div class=\"ae-form-cell\" style=\"margin-bottom:var(--ae-space-3)\">\n        <label class=\"ae-form-cell__label\">\n          Export Datenfelder\n        </label>\n        <!-- fid {{ data.form.id }}\n        dtc {{ data.displayTableColumns }} \n        df {{ data.dateFields}} --> \n        <ae-control name=\"rd:field-picker\" :document=\"locals.exportConfig\" field-name=\"fields\" :param-source-form-id=\"data.form.id\" :param-fields=\"data.displayTableColumns + ',' + data.dateFields\"></ae-control>\n      </div> \n \n      <!-- {{locals.exportConfig}} -->\n\n      <button class=\"ae-button ae-button--primary\" @click.stop=\"controller.createExport()\" :disabled=\"!locals.exportConfig.data.fields.length\">\n        <ae-icon class=\"fa fa-file-csv\"></ae-icon>\n        csv-Datei herunterladen\n      </button>\n    </div>\n  </template>\n</ae-dialog>   \n ","css":"._CSS-actions {\n  display: flex;\n  justify-content: flex-end;\n  xmargin-bottom: var(--ae-size-3);\n}\n\n._CSS-dialog__header {\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n}","controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Rebuild: '8ff9b052-45ad-41c7-9a86-978cad07eda2',\n      ExportConfig: '5f45d067-3bee-4a5b-84ec-e4156ec04603',\n      EvaluationsFolder: 'd6f5f171-30fd-4ac8-b3b1-908298bdc71d',\n      MarkdownDocumentation: 'page-form',\n    }\n\n    this.NAMES = {\n      DocumentationCustomer: 'customer-documentation',\n    }\n\n    locals.documentation = null\n    locals.rebuildedOnce = false\n    locals.lastRebuild = null\n    locals.exportConfig = null\n    locals.isOneTimeRun = document.a_forms.find((aForm) => aForm === this.FORMS.EvaluationsFolder)\n\n    locals.lastRebuild = await Aeppic.findOne(`p:${document.id} f.id:${this.FORMS.Rebuild}`, {\n      sort: { field: 'created.at', descending: true },\n    })\n    locals.exportConfig = await Aeppic.new(this.FORMS.ExportConfig, document)\n    \n    const form = await Aeppic.get(document.data.form)  \n    if (form) {\n      locals.documentation = await Aeppic.findOne(`p:${form.p} data.name:\"${this.NAMES.DocumentationCustomer}\"`)\n    }\n  }\n\n  get sharedPageContextScopeName() {\n    return `layoutName:pageDocument,documentId:${document.id}`\n  }\n\n  mounted() {\n    locals.pageContext = SharedContext.get(this.sharedPageContextScopeName, 'page') \n  }\n\n  async rebuild() {\n    locals.rebuildedOnce = true\n    const rebuildDocument = await Aeppic.new(this.FORMS.Rebuild, document)\n    Aeppic.save(rebuildDocument)\n\n    locals.lastRebuild = rebuildDocument\n  }\n\n  async createExport() {\n    const result = await Aeppic.Actions.run(['7ccb0102-e758-48ea-a39f-6da70d72593c'], {\n      dateColumns: data.dateColumns,\n      dateFields: data.dateFields,\n      dateFieldColors: data.dateFieldColors,\n      form: data.form,\n    })\n\n    const dateColumnsConfiguration = result[0].value\n\n    const queryFieldsQuery = dateColumnsConfiguration.queryFields?.length\n      ? `(${dateColumnsConfiguration.queryFields.join(' OR ')})`\n      : ''\n\n    const pageFilters = locals.pageContext?.filters?.trim() ?? ''\n    const query = `p:${document.id} f.id:${data.form.id} ${queryFieldsQuery} ${pageFilters}`\n\n    const documents = await Aeppic.find(query, { sort: 'data.projekt', size: 9999 })\n\n    const [fields, dateFields] = locals.exportConfig.data.fields.reduce(\n      (result, field) => {\n        const isDateField = dateColumnsConfiguration.fields.find((f) => f === field)\n\n        console.log({ field }, { isDateField })\n\n        if (isDateField) {\n          result[1].push(field)\n        } else {\n          result[0].push(field)\n        }\n\n        return result\n      },\n      [[], []],\n    )\n\n    // const fieldsToInclude = [\n    //   'data.projekt.text',\n    //   // 'data.projektStatusDisplay',\n    //   ...dateColumnsConfiguration.tableColumns.filter(c => c.includes('planung'))\n    // ]\n\n    const dateColumnsToInclude = []\n    const dateColumnLabelsToInclude = []\n\n    for (let i = 0; i <= dateColumnsConfiguration.tableColumns.length; i++) {\n      const field = dateColumnsConfiguration.fields[i] //?.replace('data.', '')\n\n      if (dateFields.includes(field)) {\n        dateColumnsToInclude.push(dateColumnsConfiguration.tableColumns[i])\n        dateColumnLabelsToInclude.push(dateColumnsConfiguration.labels[i])\n      }\n    }\n\n    console.log(\n      { dateColumnsConfiguration },\n      { fields },\n      { dateFields },\n      { dateColumnsToInclude },\n      { dateColumnLabelsToInclude },\n    )\n\n    const additionalHeaders = dateColumnLabelsToInclude\n\n    const numberFormatter = new Intl.NumberFormat('de-DE', { style: 'decimal' })\n\n    const additionalColumns = documents.map((document) => {\n      const row = dateColumnsToInclude.map((dateColumn) => {\n        const dateColumnIndex = dateColumnsConfiguration.tableColumns.findIndex((c) => c === dateColumn)\n\n        const actualField = dateColumnsConfiguration.fields[dateColumnIndex]\n        const accessor = dateColumnsConfiguration.fieldAccesors[dateColumnIndex]\n\n        const value = this.resolveField(document, actualField)[0]\n        console.log(actualField, value, accessor)\n\n        if (!value || value === '{}') {\n          return null\n        }\n\n        const parsed = JSON.parse(value)[accessor]\n        return parsed ? numberFormatter.format(parsed) : parsed\n      })\n\n      return row\n    })\n\n    console.log('additional-toolbar-buttons', documents.length, additionalColumns)\n\n    $refs.csvExporter.$emit('export', {\n      // headers,\n      // rows,\n      documents,\n      additionalHeaders,\n      additionalColumns,\n      includeFields: fields,\n    })\n  }\n\n  async _run() {\n    const form = await Aeppic.get(document.data.form)\n\n    const command = await Aeppic.Commands.execute(document.data.command.id, document, { form, result: {} })\n\n    console.log(document.data.command.id, command)\n    // const steps = await Aeppic.getAll(document.data.steps)\n    // if (steps.some(step => !step)) {\n    //   throw new Error(`At least 1 document step is missing`)\n    // }\n\n    // const form = await Aeppic.get(document.data.form)\n    // if (!form) {\n    //   throw new Error(`Missing form`)\n    // }\n\n    // const [actions, paramsByStep, params] = steps.reduce((result, step) => {\n    //   result[0].push(step.data.action)\n\n    //   const parsedParams = step.data.parameters ? JSON.parse(step.data.parameters) : {}\n    //   result[1][step.id] = parsedParams\n    //   result[2] = { ...result[2], ...parsedParams }\n\n    //   return result\n    // }, ([[], {}, {}]))\n\n    // const actionGlobalResult = {}\n    // const actionResults = await Aeppic.Actions.run(actions, {\n    //   evaluation: document,\n    //   result: actionGlobalResult,\n    //   form,\n    //   params,\n    //   paramsByStep,\n    // })\n\n    // console.log('actionResults')\n    // console.table(actionResults)\n\n    // const errorIndex = actionResults.findIndex(result => !result.ok)\n    // if (errorIndex !== -1) {\n    //   throw new Error(`Error running steps: ${actionResults[errorIndex].error}`)\n    // }\n\n    // const lastActionResultWrites = actionResults.slice(-1)[0].writes\n\n    // console.log('lastActionResultWrites')\n    // console.table(lastActionResultWrites)\n    // await Aeppic.applyWrites(lastActionResultWrites)\n  }\n\n  resolveField(object, path) {\n    const parts = path.split('.')\n    let value = object\n\n    while (parts.length > 0) {\n      const part = parts.shift()\n\n      value = value[part]\n\n      if (value == null) {\n        if (part === 'raw') {\n          return [value]\n        }\n\n        return [undefined]\n      }\n\n      if (parts.length === 0) {\n        if (Array.isArray(value)) {\n          return value\n        } else {\n          return [value]\n        }\n      }\n\n      if (Array.isArray(value)) {\n        return value.map((v) => this.resolveField(v, parts.join('.')))\n      }\n    }\n\n    if (value === object) {\n      return [null]\n    } else {\n      return [value]\n    }\n  }\n}\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-11-21T14:03:34+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"modified":{"at":"2026-08-07T14:00:14+00:00","by":"b7485498-f1f3-4ab1-87d1-9cb63ea890c8","backedBy":"","impersonatedBy":"","from":"","client":"server"},"t":1786111214713,"ct":1732197817864,"a_depth":4,"a":["apps","75c6f72a-08a2-44f4-a29c-86b58be26f96","d0e84149-815a-4c38-a801-1664583fef16","73974d8e-7d35-4b59-acf0-84c529b194f1"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","c881dec7-95f5-434f-9423-93143aaa976b","530c1e59-195c-4714-a31a-f8f292bd79c8"],"a_depth":5,"a_forms":["folder","application-form","form-folder","form","form"],"created":{"at":"2025-07-09T11:47:36+00:00","backedBy":null,"by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":null},"ct":1752061656634,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:page-workflow","packages":[],"template":"<ae-design\n  class=\"h-full w-full\"\n  name=\"rd:workflow-graph\"\n  :document-id=\"document.p\"\n  param-workflow-definition-id=\"0a79a3bf-0c7d-4d67-81a5-12eb74e25a8e\"\n  :watch=\"false\"\n></ae-design>\n"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"00eb1205-a93e-49da-8811-2f30c0d52f49","inheritedLocks":[null,null,null,null,null,null],"locks":[],"modified":{"at":"2025-07-09T11:47:47+00:00","backedBy":null,"by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":null},"p":"530c1e59-195c-4714-a31a-f8f292bd79c8","previous":{"v":"initial"},"stamps":[],"t":1752061667107,"v":"51145dc15eeca64e"},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","5beeae17-7bb1-4eeb-bcb6-cf0e6950e27c","374a4c32-b30e-4fa8-a134-bdc51a4605a8"],"a_depth":5,"a_forms":["folder","application-form","form-folder","form","form"],"cloneOf":{"id":"5949445a-e647-4ce5-8cc7-30fcfe511e10","text":"rd:page-workflow","v":"5c31b4b790ff2f30"},"created":{"at":"2025-05-26T14:51:59+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1748271119081,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:page-workflow","packages":[],"template":"<ae-design\n  class=\"h-full w-full\"\n  name=\"rd:workflow-graph\"\n  :document-id=\"document.a.slice(-2)[0]\"\n  param-workflow-definition-id=\"50fed9fd-9a25-4420-9e1c-3546b937bb6b\"\n  :watch=\"false\"\n></ae-design>\n"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"03a9c019-721d-468c-9790-7316a412d985","inheritedLocks":[null,null,null,null,null,null],"locks":[],"modified":{"at":"2025-05-26T14:51:59+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"5949445a-e647-4ce5-8cc7-30fcfe511e10","text":"rd:page-workflow","v":"5c31b4b790ff2f30"},"p":"374a4c32-b30e-4fa8-a134-bdc51a4605a8","stamps":[],"t":1748271119081,"v":"initial"},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","c881dec7-95f5-434f-9423-93143aaa976b","136b5b34-7b9f-4566-9f40-799296868765"],"a_depth":5,"a_forms":["folder","application-form","form-folder","form","form"],"cloneOf":{"id":"00eb1205-a93e-49da-8811-2f30c0d52f49","text":"rd:page-workflow","v":"51145dc15eeca64e"},"created":{"at":"2025-07-09T11:48:12+00:00","backedBy":null,"by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":null},"ct":1752061656634,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:page-workflow","packages":[],"template":"<ae-design\n  class=\"h-full w-full\"\n  name=\"rd:workflow-graph\"\n  :document-id=\"document.p\"\n  param-workflow-definition-id=\"0a79a3bf-0c7d-4d67-81a5-12eb74e25a8e\"\n  :watch=\"false\"\n></ae-design>\n"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"03c17a9f-175d-418c-937c-015f102e33d5","inheritedLocks":[null,null,null,null,null,null],"locks":[],"meta":{"modified":{"at":"2025-07-09T11:48:48+00:00","backedBy":null,"by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":null}},"modified":{"at":"2025-07-09T11:48:12+00:00","backedBy":null,"by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"00eb1205-a93e-49da-8811-2f30c0d52f49","text":"rd:page-workflow","v":"51145dc15eeca64e"},"p":"136b5b34-7b9f-4566-9f40-799296868765","previous":{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","c881dec7-95f5-434f-9423-93143aaa976b","530c1e59-195c-4714-a31a-f8f292bd79c8"],"a_forms":["folder","application-form","form-folder","form","form"],"p":"530c1e59-195c-4714-a31a-f8f292bd79c8","v":"initial"},"stamps":[],"t":1752061728277,"v":"6c15a6b3d75a3509"},{"id":"0d05803c-c165-4650-a0c9-d24d1cd02929","v":"d31d7129b773aa2f","cloneOf":{"id":"5949445a-e647-4ce5-8cc7-30fcfe511e10","v":"741885522f4a4c25","text":"rd:page-workflow"},"originalCloneOf":{"id":"5949445a-e647-4ce5-8cc7-30fcfe511e10","v":"741885522f4a4c25","text":"rd:page-workflow"},"previous":{"v":"initial"},"p":"50aa592e-2979-4e6a-aaac-efbab2f0e665","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-workflow","template":"<ae-design\n  class=\"h-full w-full\"\n  name=\"rd:workflow-graph\"\n  :document-id=\"document.p\"\n  param-workflow-definition-id=\"50fed9fd-9a25-4420-9e1c-3546b937bb6b\"\n  :watch=\"false\"\n></ae-design>\n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-06-11T14:49:28+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2025-04-07T13:51:45+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1744033905470,"ct":1718117368315,"a_depth":5,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f","50aa592e-2979-4e6a-aaac-efbab2f0e665"],"a_forms":["folder","application-form","form-folder","form","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"0ebeeaa1-20eb-46c1-b0a6-ef4bf773fb18","v":"initial","cloneOf":{"id":"2d0840aa-43fb-400a-bbf9-5e209cc55c8f","v":"2c6a3a73cc948e23","text":"rd:page-workflow"},"originalCloneOf":{"id":"2d0840aa-43fb-400a-bbf9-5e209cc55c8f","v":"2c6a3a73cc948e23","text":"rd:page-workflow"},"p":"1fc12c11-7c26-41e4-9250-b8e3ff306cc5","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-workflow","template":"<ae-design class=\"h-full w-full\" name=\"rd:workflow-graph\" :document-id=\"document.a.slice(-2)[0]\" param-workflow-definition-id=\"50fed9fd-9a25-4420-9e1c-3546b937bb6b\"></ae-design>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2025-07-07T09:53:58+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2025-07-07T09:53:58+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1751882038857,"ct":1751882038855,"a_depth":5,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","50c3c7c5-c3d4-460c-b34d-0d61a4cb09ae","1fc12c11-7c26-41e4-9250-b8e3ff306cc5"],"a_forms":["folder","application-form","form-folder","form","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","c881dec7-95f5-434f-9423-93143aaa976b","7e43e773-d6fa-4d97-9054-6ab6d21f1904"],"a_depth":5,"a_forms":["folder","application-form","form-folder","form","form"],"cloneOf":{"id":"00eb1205-a93e-49da-8811-2f30c0d52f49","text":"rd:page-workflow","v":"51145dc15eeca64e"},"created":{"at":"2025-07-09T11:48:10+00:00","backedBy":null,"by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":null},"ct":1752061656634,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:page-workflow","packages":[],"template":"<ae-design\n  class=\"h-full w-full\"\n  name=\"rd:workflow-graph\"\n  :document-id=\"document.p\"\n  param-workflow-definition-id=\"0a79a3bf-0c7d-4d67-81a5-12eb74e25a8e\"\n  :watch=\"false\"\n></ae-design>\n"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"1110ae31-9bdf-4d24-9054-d70ad94aad0b","inheritedLocks":[null,null,null,null,null,null],"locks":[],"meta":{"modified":{"at":"2025-07-09T11:48:50+00:00","backedBy":null,"by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":null}},"modified":{"at":"2025-07-09T11:48:10+00:00","backedBy":null,"by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"00eb1205-a93e-49da-8811-2f30c0d52f49","text":"rd:page-workflow","v":"51145dc15eeca64e"},"p":"7e43e773-d6fa-4d97-9054-6ab6d21f1904","previous":{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","c881dec7-95f5-434f-9423-93143aaa976b","530c1e59-195c-4714-a31a-f8f292bd79c8"],"a_forms":["folder","application-form","form-folder","form","form"],"p":"530c1e59-195c-4714-a31a-f8f292bd79c8","v":"initial"},"stamps":[],"t":1752061730846,"v":"e6c975eb7c99258f"},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","5beeae17-7bb1-4eeb-bcb6-cf0e6950e27c","ee60c716-511c-4ef3-a6f6-2c5c8d5bde74"],"a_depth":5,"a_forms":["folder","application-form","form-folder","form","form"],"cloneOf":{"id":"5949445a-e647-4ce5-8cc7-30fcfe511e10","text":"rd:page-workflow","v":"5c31b4b790ff2f30"},"created":{"at":"2025-05-26T14:52:04+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1748271124873,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:page-workflow","packages":[],"template":"<ae-design\n  class=\"h-full w-full\"\n  name=\"rd:workflow-graph\"\n  :document-id=\"document.a.slice(-2)[0]\"\n  param-workflow-definition-id=\"50fed9fd-9a25-4420-9e1c-3546b937bb6b\"\n  :watch=\"false\"\n></ae-design>\n"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"1385f750-d197-4a5a-9d6f-72c2a98f77fa","inheritedLocks":[null,null,null,null,null,null],"locks":[],"modified":{"at":"2025-05-26T14:52:04+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"5949445a-e647-4ce5-8cc7-30fcfe511e10","text":"rd:page-workflow","v":"5c31b4b790ff2f30"},"p":"ee60c716-511c-4ef3-a6f6-2c5c8d5bde74","stamps":[],"t":1748271124873,"v":"initial"},{"id":"141f529a-9b33-4e3a-ad96-79d0e7afe61f","v":"099448e4f6dd1049","cloneOf":{"id":"5949445a-e647-4ce5-8cc7-30fcfe511e10","v":"741885522f4a4c25","text":"rd:page-workflow"},"originalCloneOf":{"id":"5949445a-e647-4ce5-8cc7-30fcfe511e10","v":"741885522f4a4c25","text":"rd:page-workflow"},"previous":{"v":"initial"},"p":"652365db-adf2-49d8-b1b8-f4d826d3f270","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-workflow","template":"<ae-design\n  class=\"h-full w-full\"\n  name=\"rd:workflow-graph\"\n  :document-id=\"document.p\"\n  param-workflow-definition-id=\"50fed9fd-9a25-4420-9e1c-3546b937bb6b\"\n  :watch=\"false\"\n></ae-design>\n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-06-11T14:49:34+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2025-04-07T13:51:45+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1744033905464,"ct":1718117374725,"a_depth":5,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f","652365db-adf2-49d8-b1b8-f4d826d3f270"],"a_forms":["folder","application-form","form-folder","form","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"14e3ee96-1f52-43fb-a172-dec01cd9336a","v":"b3cdb9c2b251f2ac","cloneOf":{"id":"5949445a-e647-4ce5-8cc7-30fcfe511e10","v":"741885522f4a4c25","text":"rd:page-workflow"},"originalCloneOf":{"id":"5949445a-e647-4ce5-8cc7-30fcfe511e10","v":"741885522f4a4c25","text":"rd:page-workflow"},"previous":{"v":"initial"},"p":"58a5a63d-794a-4233-b294-f8e731a9251e","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-workflow","template":"<ae-design\n  class=\"h-full w-full\"\n  name=\"rd:workflow-graph\"\n  :document-id=\"document.p\"\n  param-workflow-definition-id=\"50fed9fd-9a25-4420-9e1c-3546b937bb6b\"\n  :watch=\"false\"\n></ae-design>\n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-06-11T14:49:29+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2025-04-07T13:51:45+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1744033905467,"ct":1718117369663,"a_depth":5,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f","58a5a63d-794a-4233-b294-f8e731a9251e"],"a_forms":["folder","application-form","form-folder","form","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"18d1bcdf-be94-4db9-84e3-04367b3341a7","v":"4a2c1014fb06ac07","cloneOf":{"id":"5949445a-e647-4ce5-8cc7-30fcfe511e10","v":"741885522f4a4c25","text":"rd:page-workflow"},"originalCloneOf":{"id":"5949445a-e647-4ce5-8cc7-30fcfe511e10","v":"741885522f4a4c25","text":"rd:page-workflow"},"previous":{"v":"initial"},"p":"40e67965-2ce0-4fa0-b0d9-6afa7a584886","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-workflow","template":"<ae-design\n  class=\"h-full w-full\"\n  name=\"rd:workflow-graph\"\n  :document-id=\"document.p\"\n  param-workflow-definition-id=\"50fed9fd-9a25-4420-9e1c-3546b937bb6b\"\n  :watch=\"false\"\n></ae-design>\n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-06-11T14:49:39+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2025-04-07T13:51:45+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1744033905311,"ct":1718117379643,"a_depth":5,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f","40e67965-2ce0-4fa0-b0d9-6afa7a584886"],"a_forms":["folder","application-form","form-folder","form","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"1bb27050-0254-47e9-8818-0a2118d8d4fb","v":"01d3d0ebf1f7ed98","cloneOf":{"id":"5949445a-e647-4ce5-8cc7-30fcfe511e10","v":"741885522f4a4c25","text":"rd:page-workflow"},"originalCloneOf":{"id":"5949445a-e647-4ce5-8cc7-30fcfe511e10","v":"741885522f4a4c25","text":"rd:page-workflow"},"previous":{"v":"initial"},"p":"afa8ae9e-ca0b-4e96-8ddb-c6147c6549ac","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-workflow","template":"<ae-design\n  class=\"h-full w-full\"\n  name=\"rd:workflow-graph\"\n  :document-id=\"document.p\"\n  param-workflow-definition-id=\"50fed9fd-9a25-4420-9e1c-3546b937bb6b\"\n  :watch=\"false\"\n></ae-design>\n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-06-11T14:49:24+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2025-04-07T13:51:45+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1744033905471,"ct":1718117364847,"a_depth":5,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f","afa8ae9e-ca0b-4e96-8ddb-c6147c6549ac"],"a_forms":["folder","application-form","form-folder","form","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"1e2967ba-0c1f-4540-9602-4715594a0785","v":"755b1941ac216b3e","cloneOf":{"id":"5949445a-e647-4ce5-8cc7-30fcfe511e10","v":"741885522f4a4c25","text":"rd:page-workflow"},"originalCloneOf":{"id":"5949445a-e647-4ce5-8cc7-30fcfe511e10","v":"741885522f4a4c25","text":"rd:page-workflow"},"previous":{"v":"initial"},"p":"20634b91-66ce-4399-a680-d34549dd7923","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-workflow","template":"<ae-design\n  class=\"h-full w-full\"\n  name=\"rd:workflow-graph\"\n  :document-id=\"document.p\"\n  param-workflow-definition-id=\"50fed9fd-9a25-4420-9e1c-3546b937bb6b\"\n  :watch=\"false\"\n></ae-design>\n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-06-11T14:49:23+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2025-04-07T13:51:45+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1744033905472,"ct":1718117363658,"a_depth":5,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f","20634b91-66ce-4399-a680-d34549dd7923"],"a_forms":["folder","application-form","form-folder","form","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"211218ad-1e03-4fc6-8911-614fdde75f18","v":"4991fe03a92f99b0","cloneOf":{"id":"5949445a-e647-4ce5-8cc7-30fcfe511e10","v":"741885522f4a4c25","text":"rd:page-workflow"},"originalCloneOf":{"id":"5949445a-e647-4ce5-8cc7-30fcfe511e10","v":"741885522f4a4c25","text":"rd:page-workflow"},"previous":{"v":"initial"},"p":"4a02737d-d9fb-43d8-9065-a7071730ffc4","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-workflow","template":"<ae-design\n  class=\"h-full w-full\"\n  name=\"rd:workflow-graph\"\n  :document-id=\"document.p\"\n  param-workflow-definition-id=\"50fed9fd-9a25-4420-9e1c-3546b937bb6b\"\n  :watch=\"false\"\n></ae-design>\n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-06-11T14:49:33+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2025-04-07T13:51:45+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1744033905465,"ct":1718117373939,"a_depth":5,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f","4a02737d-d9fb-43d8-9065-a7071730ffc4"],"a_forms":["folder","application-form","form-folder","form","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","49af721d-7068-4dd7-8df4-a5f79b3804cf"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"a04bce3e-2f8a-4562-b79e-e6465eb3dc2f","text":"rd:page-workflow","v":"0944b60c1a4815d7"},"created":{"at":"2025-07-07T12:48:33+00:00","backedBy":null,"by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":null},"ct":1751892513882,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:page-workflow","packages":[],"template":"<ae-design class=\"h-full w-full\" name=\"rd:workflow-graph\" :document=\"document\" param-workflow-definition-id=\"0a79a3bf-0c7d-4d67-81a5-12eb74e25a8e\"></ae-design>"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"224928fa-bb35-4b12-9e7a-844e0ffda66b","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-07-09T11:46:50+00:00","backedBy":null,"by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"a04bce3e-2f8a-4562-b79e-e6465eb3dc2f","text":"rd:page-workflow","v":"0944b60c1a4815d7"},"p":"49af721d-7068-4dd7-8df4-a5f79b3804cf","previous":{"v":"initial"},"stamps":[],"t":1752061610169,"v":"39dbebcf2f82b6ed"},{"id":"26129be5-4bd6-4419-af95-3d8173277731","v":"ae7da9e980d8668e","cloneOf":{"id":"5949445a-e647-4ce5-8cc7-30fcfe511e10","v":"741885522f4a4c25","text":"rd:page-workflow"},"originalCloneOf":{"id":"5949445a-e647-4ce5-8cc7-30fcfe511e10","v":"741885522f4a4c25","text":"rd:page-workflow"},"previous":{"v":"initial"},"p":"6866160a-3fd8-4e3c-b60e-c7f7577a7458","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-workflow","template":"<ae-design\n  class=\"h-full w-full\"\n  name=\"rd:workflow-graph\"\n  :document-id=\"document.p\"\n  param-workflow-definition-id=\"50fed9fd-9a25-4420-9e1c-3546b937bb6b\"\n  :watch=\"false\"\n></ae-design>\n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-06-11T14:49:30+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2025-04-07T13:51:45+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1744033905466,"ct":1718117370331,"a_depth":5,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f","6866160a-3fd8-4e3c-b60e-c7f7577a7458"],"a_forms":["folder","application-form","form-folder","form","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"26c38415-5773-4ae9-b3b4-09138b48da02","v":"36f4e986f054ed71","cloneOf":{"id":"41a73680-223f-4d92-a591-17fa037c963b","v":"initial","text":"rd:page-workflow"},"originalCloneOf":{"id":"41a73680-223f-4d92-a591-17fa037c963b","v":"initial","text":"rd:page-workflow"},"previous":{"v":"initial"},"p":"0098b97d-15a5-4f5a-951a-29d815f2db73","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-workflow","template":"<ae-design\n  class=\"h-full w-full\"\n  name=\"rd:workflow-graph\"\n  :document-id=\"document.p\"\n  param-workflow-definition-id=\"50fed9fd-9a25-4420-9e1c-3546b937bb6b\"\n  :watch=\"false\"\n></ae-design>\n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-11-27T09:50:02+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2025-04-07T13:51:45+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1744033905464,"ct":1732701002810,"a_depth":5,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f","0098b97d-15a5-4f5a-951a-29d815f2db73"],"a_forms":["folder","application-form","form-folder","form","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"27855857-c77b-4352-848c-1214bb03ffcf","v":"0ed904497e52bf43","cloneOf":{"id":"5949445a-e647-4ce5-8cc7-30fcfe511e10","v":"741885522f4a4c25","text":"rd:page-workflow"},"originalCloneOf":{"id":"5949445a-e647-4ce5-8cc7-30fcfe511e10","v":"741885522f4a4c25","text":"rd:page-workflow"},"previous":{"v":"initial"},"p":"f4b55907-9baf-4f12-8d3c-c4b1379c5596","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-workflow","template":"<ae-design\n  class=\"h-full w-full\"\n  name=\"rd:workflow-graph\"\n  :document-id=\"document.p\"\n  param-workflow-definition-id=\"50fed9fd-9a25-4420-9e1c-3546b937bb6b\"\n  :watch=\"false\"\n></ae-design>\n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-06-11T14:49:37+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2025-04-07T13:51:45+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1744033905463,"ct":1718117377158,"a_depth":5,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f","f4b55907-9baf-4f12-8d3c-c4b1379c5596"],"a_forms":["folder","application-form","form-folder","form","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"2cf938c1-09ac-4223-92da-4bfe70ac7fa5","v":"cbb95c452dd60950","cloneOf":{"id":"5949445a-e647-4ce5-8cc7-30fcfe511e10","v":"741885522f4a4c25","text":"rd:page-workflow"},"originalCloneOf":{"id":"5949445a-e647-4ce5-8cc7-30fcfe511e10","v":"741885522f4a4c25","text":"rd:page-workflow"},"previous":{"v":"initial"},"p":"a71ed848-5126-4abc-bbd7-86791c96a82f","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-workflow","template":"<ae-design\n  class=\"h-full w-full\"\n  name=\"rd:workflow-graph\"\n  :document-id=\"document.p\"\n  param-workflow-definition-id=\"50fed9fd-9a25-4420-9e1c-3546b937bb6b\"\n  :watch=\"false\"\n></ae-design>\n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-06-11T14:49:30+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2025-04-07T13:51:45+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1744033905467,"ct":1718117370017,"a_depth":5,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f","a71ed848-5126-4abc-bbd7-86791c96a82f"],"a_forms":["folder","application-form","form-folder","form","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"2d0840aa-43fb-400a-bbf9-5e209cc55c8f","v":"2c6a3a73cc948e23","cloneOf":{"id":"e253255f-6cf7-4ff6-94d5-157d480a0339","v":"initial","text":"rd:page-workflow"},"originalCloneOf":{"id":"e253255f-6cf7-4ff6-94d5-157d480a0339","v":"initial","text":"rd:page-workflow"},"previous":{"v":"2136ba92873e482d"},"p":"0572195f-176d-40d5-920a-f5b5505e2ef6","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-workflow","template":"<ae-design class=\"h-full w-full\" name=\"rd:workflow-graph\" :document-id=\"document.a.slice(-2)[0]\" param-workflow-definition-id=\"50fed9fd-9a25-4420-9e1c-3546b937bb6b\"></ae-design>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-09-20T08:58:45+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-09-20T09:01:33+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1726822893787,"ct":1726822725353,"a_depth":5,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","50c3c7c5-c3d4-460c-b34d-0d61a4cb09ae","0572195f-176d-40d5-920a-f5b5505e2ef6"],"a_forms":["folder","application-form","form-folder","form","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"30d5020f-5746-4e4e-9ae6-b6ef1c715384","v":"ebd43a5bdb172565","cloneOf":{"id":"e253255f-6cf7-4ff6-94d5-157d480a0339","v":"de1e226242e4e1da","text":"rd:page-workflow"},"originalCloneOf":{"id":"e253255f-6cf7-4ff6-94d5-157d480a0339","v":"de1e226242e4e1da","text":"rd:page-workflow"},"previous":{"v":"d0441ebff2ff6a6b"},"p":"13adf1b7-9d42-4d26-85db-a0a210fba556","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-workflow","template":"<ae-design class=\"h-full w-full\" name=\"rd:workflow-graph\" :document-id=\"document.a.slice(-2)[0]\" param-workflow-definition-id=\"50fed9fd-9a25-4420-9e1c-3546b937bb6b\"></ae-design>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-09-20T08:59:45+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-09-20T09:01:25+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1726822885355,"ct":1726822785239,"a_depth":5,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","50c3c7c5-c3d4-460c-b34d-0d61a4cb09ae","13adf1b7-9d42-4d26-85db-a0a210fba556"],"a_forms":["folder","application-form","form-folder","form","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"3438f876-4778-42d7-aecf-4c3ac06cf852","v":"a9ea473785a7029a","cloneOf":{"id":"91dd1b42-68cc-43aa-a7dc-cd6abcf71c66","v":"initial","text":"rd:page-workflow"},"originalCloneOf":{"id":"91dd1b42-68cc-43aa-a7dc-cd6abcf71c66","v":"initial","text":"rd:page-workflow"},"previous":{"v":"initial"},"p":"8b9a2285-5e60-448c-8d79-c1a321e13e49","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-workflow","template":"<ae-design\n  class=\"h-full w-full\"\n  name=\"rd:workflow-graph\"\n  :document-id=\"document.p\"\n  param-workflow-definition-id=\"50fed9fd-9a25-4420-9e1c-3546b937bb6b\"\n  :watch=\"false\"\n></ae-design>\n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-11-27T09:49:46+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2025-04-07T13:51:45+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1744033905466,"ct":1732700986296,"a_depth":5,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f","8b9a2285-5e60-448c-8d79-c1a321e13e49"],"a_forms":["folder","application-form","form-folder","form","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","5beeae17-7bb1-4eeb-bcb6-cf0e6950e27c","c04e4a56-2064-4663-9cad-1792a719db35"],"a_depth":5,"a_forms":["folder","application-form","form-folder","form","form"],"cloneOf":{"id":"5949445a-e647-4ce5-8cc7-30fcfe511e10","text":"rd:page-workflow","v":"5c31b4b790ff2f30"},"created":{"at":"2025-05-26T14:51:42+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1748271102475,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:page-workflow","packages":[],"template":"<ae-design\n  class=\"h-full w-full\"\n  name=\"rd:workflow-graph\"\n  :document-id=\"document.a.slice(-2)[0]\"\n  param-workflow-definition-id=\"50fed9fd-9a25-4420-9e1c-3546b937bb6b\"\n  :watch=\"false\"\n></ae-design>\n"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"372506c7-ab37-4558-a3bd-c52c87ad4e88","inheritedLocks":[null,null,null,null,null,null],"locks":[],"modified":{"at":"2025-05-26T14:51:42+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"5949445a-e647-4ce5-8cc7-30fcfe511e10","text":"rd:page-workflow","v":"5c31b4b790ff2f30"},"p":"c04e4a56-2064-4663-9cad-1792a719db35","stamps":[],"t":1748271102476,"v":"initial"},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","c881dec7-95f5-434f-9423-93143aaa976b","c7380d56-a3ef-42bc-9b98-9e4ac6d4d53f"],"a_depth":5,"a_forms":["folder","application-form","form-folder","form","form"],"cloneOf":{"id":"00eb1205-a93e-49da-8811-2f30c0d52f49","text":"rd:page-workflow","v":"51145dc15eeca64e"},"created":{"at":"2025-07-09T11:48:23+00:00","backedBy":null,"by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":null},"ct":1752061656634,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:page-workflow","packages":[],"template":"<ae-design\n  class=\"h-full w-full\"\n  name=\"rd:workflow-graph\"\n  :document-id=\"document.p\"\n  param-workflow-definition-id=\"0a79a3bf-0c7d-4d67-81a5-12eb74e25a8e\"\n  :watch=\"false\"\n></ae-design>\n"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"3782120d-d679-43f0-9986-c9f181cb5428","inheritedLocks":[null,null,null,null,null,null],"locks":[],"meta":{"modified":{"at":"2025-07-09T11:48:35+00:00","backedBy":null,"by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":null}},"modified":{"at":"2025-07-09T11:48:23+00:00","backedBy":null,"by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"00eb1205-a93e-49da-8811-2f30c0d52f49","text":"rd:page-workflow","v":"51145dc15eeca64e"},"p":"c7380d56-a3ef-42bc-9b98-9e4ac6d4d53f","previous":{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","c881dec7-95f5-434f-9423-93143aaa976b","530c1e59-195c-4714-a31a-f8f292bd79c8"],"a_forms":["folder","application-form","form-folder","form","form"],"p":"530c1e59-195c-4714-a31a-f8f292bd79c8","v":"initial"},"stamps":[],"t":1752061715132,"v":"bf02ed7e60e8d934"},{"id":"37e593f6-18d2-4f43-9b36-45b97fa0fe74","v":"4db6d518f7bd6342","cloneOf":{"id":"5949445a-e647-4ce5-8cc7-30fcfe511e10","v":"741885522f4a4c25","text":"rd:page-workflow"},"originalCloneOf":{"id":"5949445a-e647-4ce5-8cc7-30fcfe511e10","v":"741885522f4a4c25","text":"rd:page-workflow"},"previous":{"v":"initial"},"p":"e5da9f31-b1bc-4562-ba5d-b165c1d017b4","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-workflow","template":"<ae-design\n  class=\"h-full w-full\"\n  name=\"rd:workflow-graph\"\n  :document-id=\"document.p\"\n  param-workflow-definition-id=\"50fed9fd-9a25-4420-9e1c-3546b937bb6b\"\n  :watch=\"false\"\n></ae-design>\n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-06-11T14:49:23+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2025-04-07T13:51:45+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1744033905472,"ct":1718117363334,"a_depth":5,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f","e5da9f31-b1bc-4562-ba5d-b165c1d017b4"],"a_forms":["folder","application-form","form-folder","form","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","5beeae17-7bb1-4eeb-bcb6-cf0e6950e27c","cbdb17cb-885b-4e8b-bfa4-ee22f5c3122f"],"a_depth":5,"a_forms":["folder","application-form","form-folder","form","form"],"cloneOf":{"id":"5949445a-e647-4ce5-8cc7-30fcfe511e10","text":"rd:page-workflow","v":"5c31b4b790ff2f30"},"created":{"at":"2025-05-26T14:51:51+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1748271111609,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:page-workflow","packages":[],"template":"<ae-design\n  class=\"h-full w-full\"\n  name=\"rd:workflow-graph\"\n  :document-id=\"document.a.slice(-2)[0]\"\n  param-workflow-definition-id=\"50fed9fd-9a25-4420-9e1c-3546b937bb6b\"\n  :watch=\"false\"\n></ae-design>\n"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"389614e5-d185-4437-8c41-afaeebc6b4c5","inheritedLocks":[null,null,null,null,null,null],"locks":[],"modified":{"at":"2025-05-26T14:51:51+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"5949445a-e647-4ce5-8cc7-30fcfe511e10","text":"rd:page-workflow","v":"5c31b4b790ff2f30"},"p":"cbdb17cb-885b-4e8b-bfa4-ee22f5c3122f","stamps":[],"t":1748271111609,"v":"initial"},{"id":"3d61b661-f7b2-41ea-8f20-091a4525766e","v":"ca8a63b349408c85","cloneOf":{"id":"5949445a-e647-4ce5-8cc7-30fcfe511e10","v":"741885522f4a4c25","text":"rd:page-workflow"},"originalCloneOf":{"id":"5949445a-e647-4ce5-8cc7-30fcfe511e10","v":"741885522f4a4c25","text":"rd:page-workflow"},"previous":{"v":"initial"},"p":"bb6854fe-25ae-448c-bd33-58d0ecd66c5b","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-workflow","template":"<ae-design\n  class=\"h-full w-full\"\n  name=\"rd:workflow-graph\"\n  :document-id=\"document.p\"\n  param-workflow-definition-id=\"50fed9fd-9a25-4420-9e1c-3546b937bb6b\"\n  :watch=\"false\"\n></ae-design>\n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-06-11T14:49:33+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2025-04-07T13:51:45+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1744033905465,"ct":1718117373234,"a_depth":5,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f","bb6854fe-25ae-448c-bd33-58d0ecd66c5b"],"a_forms":["folder","application-form","form-folder","form","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"41a73680-223f-4d92-a591-17fa037c963b","v":"b5f5db76b3b76c02","cloneOf":{"id":"5949445a-e647-4ce5-8cc7-30fcfe511e10","v":"741885522f4a4c25","text":"rd:page-workflow"},"originalCloneOf":{"id":"5949445a-e647-4ce5-8cc7-30fcfe511e10","v":"741885522f4a4c25","text":"rd:page-workflow"},"previous":{"v":"initial"},"p":"a70e0efb-a4e8-4508-9d75-974537ca72c1","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-workflow","template":"<ae-design\n  class=\"h-full w-full\"\n  name=\"rd:workflow-graph\"\n  :document-id=\"document.p\"\n  param-workflow-definition-id=\"50fed9fd-9a25-4420-9e1c-3546b937bb6b\"\n  :watch=\"false\"\n></ae-design>\n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-06-11T14:49:38+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2025-04-07T13:51:45+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1744033905312,"ct":1718117378551,"a_depth":5,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f","a70e0efb-a4e8-4508-9d75-974537ca72c1"],"a_forms":["folder","application-form","form-folder","form","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","c881dec7-95f5-434f-9423-93143aaa976b","cbf33a14-e8c8-40d4-b4b1-2006f6831376"],"a_depth":5,"a_forms":["folder","application-form","form-folder","form","form"],"cloneOf":{"id":"00eb1205-a93e-49da-8811-2f30c0d52f49","text":"rd:page-workflow","v":"51145dc15eeca64e"},"created":{"at":"2025-07-09T11:48:24+00:00","backedBy":null,"by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":null},"ct":1752061656634,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:page-workflow","packages":[],"template":"<ae-design\n  class=\"h-full w-full\"\n  name=\"rd:workflow-graph\"\n  :document-id=\"document.p\"\n  param-workflow-definition-id=\"0a79a3bf-0c7d-4d67-81a5-12eb74e25a8e\"\n  :watch=\"false\"\n></ae-design>\n"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"42571838-b588-4052-a49d-f0fe5ed006b4","inheritedLocks":[null,null,null,null,null,null],"locks":[],"meta":{"modified":{"at":"2025-07-09T11:48:38+00:00","backedBy":null,"by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":null}},"modified":{"at":"2025-07-09T11:48:24+00:00","backedBy":null,"by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"00eb1205-a93e-49da-8811-2f30c0d52f49","text":"rd:page-workflow","v":"51145dc15eeca64e"},"p":"cbf33a14-e8c8-40d4-b4b1-2006f6831376","previous":{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","c881dec7-95f5-434f-9423-93143aaa976b","530c1e59-195c-4714-a31a-f8f292bd79c8"],"a_forms":["folder","application-form","form-folder","form","form"],"p":"530c1e59-195c-4714-a31a-f8f292bd79c8","v":"initial"},"stamps":[],"t":1752061718438,"v":"9acf1305a6d2aaf1"},{"id":"4f4d6add-9b05-4057-9818-c4d04717efee","v":"4f7dca44c5c596b2","cloneOf":{"id":"5949445a-e647-4ce5-8cc7-30fcfe511e10","v":"741885522f4a4c25","text":"rd:page-workflow"},"originalCloneOf":{"id":"5949445a-e647-4ce5-8cc7-30fcfe511e10","v":"741885522f4a4c25","text":"rd:page-workflow"},"previous":{"v":"initial"},"p":"a64625f3-92f8-4c0b-935a-d93891ecfcd4","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-workflow","template":"<ae-design\n  class=\"h-full w-full\"\n  name=\"rd:workflow-graph\"\n  :document-id=\"document.p\"\n  param-workflow-definition-id=\"50fed9fd-9a25-4420-9e1c-3546b937bb6b\"\n  :watch=\"false\"\n></ae-design>\n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-06-11T14:49:22+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2025-04-07T13:51:45+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1744033905472,"ct":1718117362818,"a_depth":5,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f","a64625f3-92f8-4c0b-935a-d93891ecfcd4"],"a_forms":["folder","application-form","form-folder","form","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"4fe09793-7eb7-415f-ba3b-9739fe057c4a","v":"ece454f63a09e93b","cloneOf":{"id":"c1c07405-1091-4371-bb31-409faf743a0f","v":"initial","text":"rd:page-workflow"},"originalCloneOf":{"id":"c1c07405-1091-4371-bb31-409faf743a0f","v":"initial","text":"rd:page-workflow"},"previous":{"v":"initial"},"p":"a1e357c4-2adf-46a5-8e40-c9d824270342","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-workflow","template":"<ae-design\n  class=\"h-full w-full\"\n  name=\"rd:workflow-graph\"\n  :document-id=\"document.p\"\n  param-workflow-definition-id=\"50fed9fd-9a25-4420-9e1c-3546b937bb6b\"\n  :watch=\"false\"\n></ae-design>\n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-11-27T09:49:54+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2025-04-07T13:51:45+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1744033905465,"ct":1732700994637,"a_depth":5,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f","a1e357c4-2adf-46a5-8e40-c9d824270342"],"a_forms":["folder","application-form","form-folder","form","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","5beeae17-7bb1-4eeb-bcb6-cf0e6950e27c","030be2b6-fcad-4d3c-b44f-c40618e772c0"],"a_depth":5,"a_forms":["folder","application-form","form-folder","form","form"],"cloneOf":{"id":"5949445a-e647-4ce5-8cc7-30fcfe511e10","text":"rd:page-workflow","v":"5c31b4b790ff2f30"},"created":{"at":"2025-05-26T14:51:29+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1748271089168,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:page-workflow","packages":[],"template":"<ae-design\n  class=\"h-full w-full\"\n  name=\"rd:workflow-graph\"\n  :document-id=\"document.a.slice(-2)[0]\"\n  param-workflow-definition-id=\"50fed9fd-9a25-4420-9e1c-3546b937bb6b\"\n  :watch=\"false\"\n></ae-design>\n"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"500ac4db-6210-4fa7-8f8e-38d70bcdacaf","inheritedLocks":[null,null,null,null,null,null],"locks":[],"modified":{"at":"2025-05-26T14:51:29+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"5949445a-e647-4ce5-8cc7-30fcfe511e10","text":"rd:page-workflow","v":"5c31b4b790ff2f30"},"p":"030be2b6-fcad-4d3c-b44f-c40618e772c0","stamps":[],"t":1748271089169,"v":"initial"},{"id":"553c6abf-9c47-45dd-a52c-0e624dc17535","v":"7b587196d10d0666","cloneOf":{"id":"5949445a-e647-4ce5-8cc7-30fcfe511e10","v":"741885522f4a4c25","text":"rd:page-workflow"},"originalCloneOf":{"id":"5949445a-e647-4ce5-8cc7-30fcfe511e10","v":"741885522f4a4c25","text":"rd:page-workflow"},"previous":{"v":"initial"},"p":"200a3064-a0ef-45a7-9aa3-a60d68977b7d","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-workflow","template":"<ae-design\n  class=\"h-full w-full\"\n  name=\"rd:workflow-graph\"\n  :document-id=\"document.p\"\n  param-workflow-definition-id=\"50fed9fd-9a25-4420-9e1c-3546b937bb6b\"\n  :watch=\"false\"\n></ae-design>\n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-06-11T14:49:39+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2025-04-07T13:51:45+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1744033905312,"ct":1718117379011,"a_depth":5,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f","200a3064-a0ef-45a7-9aa3-a60d68977b7d"],"a_forms":["folder","application-form","form-folder","form","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"5556d398-4cff-4cf6-9cad-cfb13121bdad","v":"649945ed61a22b8b","cloneOf":{"id":"5949445a-e647-4ce5-8cc7-30fcfe511e10","v":"741885522f4a4c25","text":"rd:page-workflow"},"originalCloneOf":{"id":"5949445a-e647-4ce5-8cc7-30fcfe511e10","v":"741885522f4a4c25","text":"rd:page-workflow"},"previous":{"v":"initial"},"p":"753d7f68-252e-44de-96f0-4794cfb361aa","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-workflow","template":"<ae-design\n  class=\"h-full w-full\"\n  name=\"rd:workflow-graph\"\n  :document-id=\"document.p\"\n  param-workflow-definition-id=\"50fed9fd-9a25-4420-9e1c-3546b937bb6b\"\n  :watch=\"false\"\n></ae-design>\n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-06-11T14:52:46+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2025-04-07T13:51:45+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1744033905309,"ct":1718117566437,"a_depth":5,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f","753d7f68-252e-44de-96f0-4794cfb361aa"],"a_forms":["folder","application-form","form-folder","form","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","b5dcdd5b-6a84-4e13-92a2-052a1f1d1492"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"a04bce3e-2f8a-4562-b79e-e6465eb3dc2f","text":"rd:page-workflow","v":"0944b60c1a4815d7"},"created":{"at":"2024-06-11T14:48:06+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1718117286846,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:page-workflow","packages":[],"template":"<ae-design\n  class=\"h-full w-full\"\n  name=\"rd:workflow-graph\"\n  :document-id=\"document.a.slice(-2)[0]\"\n  param-workflow-definition-id=\"50fed9fd-9a25-4420-9e1c-3546b937bb6b\"\n  :watch=\"false\"\n></ae-design>\n"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"5949445a-e647-4ce5-8cc7-30fcfe511e10","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-04-11T08:45:23+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"a04bce3e-2f8a-4562-b79e-e6465eb3dc2f","text":"rd:page-workflow","v":"0944b60c1a4815d7"},"p":"b5dcdd5b-6a84-4e13-92a2-052a1f1d1492","previous":{"v":"0f290a8a6c6c6e84"},"stamps":[],"t":1744361123003,"v":"5c31b4b790ff2f30"},{"id":"5c7f5530-14c8-4f3e-b830-d2deea8b567c","v":"initial","cloneOf":{"id":"7ddf2ebe-5e6e-460a-b45a-b4cbc992735e","v":"0210f0a2a2b1f1d6","text":"rd:page-workflow"},"originalCloneOf":{"id":"7ddf2ebe-5e6e-460a-b45a-b4cbc992735e","v":"0210f0a2a2b1f1d6","text":"rd:page-workflow"},"p":"1d5daf59-8391-41e2-b814-8cc922ebb39c","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-workflow","template":"<ae-design\n  class=\"h-full w-full\"\n  name=\"rd:workflow-graph\"\n  :document-id=\"document.p\"\n  param-workflow-definition-id=\"50fed9fd-9a25-4420-9e1c-3546b937bb6b\"\n  :watch=\"false\"\n></ae-design>\n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2025-10-13T12:05:43+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2025-10-13T12:05:43+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1760357143031,"ct":1760357143031,"a_depth":5,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f","1d5daf59-8391-41e2-b814-8cc922ebb39c"],"a_forms":["folder","application-form","form-folder","form","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"5ca502d3-a672-4d4c-87be-0aa45e49eaaa","v":"300197709a4af756","cloneOf":{"id":"5949445a-e647-4ce5-8cc7-30fcfe511e10","v":"741885522f4a4c25","text":"rd:page-workflow"},"originalCloneOf":{"id":"5949445a-e647-4ce5-8cc7-30fcfe511e10","v":"741885522f4a4c25","text":"rd:page-workflow"},"previous":{"v":"initial"},"p":"98a077cd-4317-409d-9aa6-628648d6413e","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-workflow","template":"<ae-design\n  class=\"h-full w-full\"\n  name=\"rd:workflow-graph\"\n  :document-id=\"document.p\"\n  param-workflow-definition-id=\"50fed9fd-9a25-4420-9e1c-3546b937bb6b\"\n  :watch=\"false\"\n></ae-design>\n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-06-11T14:49:36+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2025-04-07T13:51:45+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1744033905464,"ct":1718117376768,"a_depth":5,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f","98a077cd-4317-409d-9aa6-628648d6413e"],"a_forms":["folder","application-form","form-folder","form","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"61dba432-11fe-491d-bb7e-519894db437d","v":"6b168b35c627b7f3","cloneOf":{"id":"5949445a-e647-4ce5-8cc7-30fcfe511e10","v":"741885522f4a4c25","text":"rd:page-workflow"},"originalCloneOf":{"id":"5949445a-e647-4ce5-8cc7-30fcfe511e10","v":"741885522f4a4c25","text":"rd:page-workflow"},"previous":{"v":"initial"},"p":"24820f19-ae1f-48b2-89e4-f71a2849b5f6","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-workflow","template":"<ae-design\n  class=\"h-full w-full\"\n  name=\"rd:workflow-graph\"\n  :document-id=\"document.p\"\n  param-workflow-definition-id=\"50fed9fd-9a25-4420-9e1c-3546b937bb6b\"\n  :watch=\"false\"\n></ae-design>\n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-06-11T14:49:24+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2025-04-07T13:51:45+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1744033905472,"ct":1718117364398,"a_depth":5,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f","24820f19-ae1f-48b2-89e4-f71a2849b5f6"],"a_forms":["folder","application-form","form-folder","form","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"69cd9efc-a4f4-436e-b836-744da85e96c5","v":"e521fec882e47c6d","cloneOf":{"id":"5949445a-e647-4ce5-8cc7-30fcfe511e10","v":"741885522f4a4c25","text":"rd:page-workflow"},"originalCloneOf":{"id":"5949445a-e647-4ce5-8cc7-30fcfe511e10","v":"741885522f4a4c25","text":"rd:page-workflow"},"previous":{"v":"initial"},"p":"8938270d-0c2f-46b4-a91a-1345e1866879","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-workflow","template":"<ae-design\n  class=\"h-full w-full\"\n  name=\"rd:workflow-graph\"\n  :document-id=\"document.p\"\n  param-workflow-definition-id=\"50fed9fd-9a25-4420-9e1c-3546b937bb6b\"\n  :watch=\"false\"\n></ae-design>\n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-06-11T14:49:31+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2025-04-07T13:51:45+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1744033905466,"ct":1718117371835,"a_depth":5,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f","8938270d-0c2f-46b4-a91a-1345e1866879"],"a_forms":["folder","application-form","form-folder","form","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"69d595c0-049b-45fc-9027-f351a5d5fd91","v":"0c3cd653481db6bd","cloneOf":{"id":"faa271cd-da8c-4caa-9302-0ad331f19150","v":"initial","text":"rd:page-workflow"},"originalCloneOf":{"id":"faa271cd-da8c-4caa-9302-0ad331f19150","v":"initial","text":"rd:page-workflow"},"previous":{"v":"initial"},"p":"01e6f087-b221-4df6-a3a6-4bac0a1b36b6","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-workflow","template":"<ae-design\n  class=\"h-full w-full\"\n  name=\"rd:workflow-graph\"\n  :document-id=\"document.p\"\n  param-workflow-definition-id=\"50fed9fd-9a25-4420-9e1c-3546b937bb6b\"\n  :watch=\"false\"\n></ae-design>\n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-11-27T09:48:47+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2025-04-07T13:51:45+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1744033905471,"ct":1732700927092,"a_depth":5,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f","01e6f087-b221-4df6-a3a6-4bac0a1b36b6"],"a_forms":["folder","application-form","form-folder","form","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"6a2eb140-8c40-42d5-8f35-c985248aa574","v":"17ecb3618959ead7","cloneOf":{"id":"5949445a-e647-4ce5-8cc7-30fcfe511e10","v":"741885522f4a4c25","text":"rd:page-workflow"},"originalCloneOf":{"id":"5949445a-e647-4ce5-8cc7-30fcfe511e10","v":"741885522f4a4c25","text":"rd:page-workflow"},"previous":{"v":"initial"},"p":"cc7efcd9-e932-455a-8a77-cb1338b057b7","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-workflow","template":"<ae-design\n  class=\"h-full w-full\"\n  name=\"rd:workflow-graph\"\n  :document-id=\"document.p\"\n  param-workflow-definition-id=\"50fed9fd-9a25-4420-9e1c-3546b937bb6b\"\n  :watch=\"false\"\n></ae-design>\n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-06-11T14:49:35+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2025-04-07T13:51:45+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1744033905464,"ct":1718117375606,"a_depth":5,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f","cc7efcd9-e932-455a-8a77-cb1338b057b7"],"a_forms":["folder","application-form","form-folder","form","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"70bc13ac-8a85-4ad5-a7ab-2346552050ab","v":"61e4230164ec401b","cloneOf":{"id":"5949445a-e647-4ce5-8cc7-30fcfe511e10","v":"741885522f4a4c25","text":"rd:page-workflow"},"originalCloneOf":{"id":"5949445a-e647-4ce5-8cc7-30fcfe511e10","v":"741885522f4a4c25","text":"rd:page-workflow"},"previous":{"v":"initial"},"p":"e2898c99-bb67-48a5-8ee9-6ee5dfbea0be","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-workflow","template":"<ae-design\n  class=\"h-full w-full\"\n  name=\"rd:workflow-graph\"\n  :document-id=\"document.p\"\n  param-workflow-definition-id=\"50fed9fd-9a25-4420-9e1c-3546b937bb6b\"\n  :watch=\"false\"\n></ae-design>\n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-06-11T14:51:34+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2025-04-07T13:51:45+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1744033905310,"ct":1718117494882,"a_depth":5,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f","e2898c99-bb67-48a5-8ee9-6ee5dfbea0be"],"a_forms":["folder","application-form","form-folder","form","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"73b4188c-f2fb-4aef-9baa-a38b550bc225","v":"0ea0532829c0f771","cloneOf":{"id":"e253255f-6cf7-4ff6-94d5-157d480a0339","v":"initial","text":"rd:page-workflow"},"originalCloneOf":{"id":"e253255f-6cf7-4ff6-94d5-157d480a0339","v":"initial","text":"rd:page-workflow"},"previous":{"v":"b26106f5d133de58"},"p":"91f74438-399a-4397-a599-a5f386ea0ed8","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-workflow","template":"<ae-design class=\"h-full w-full\" name=\"rd:workflow-graph\" :document-id=\"document.a.slice(-2)[0]\" param-workflow-definition-id=\"50fed9fd-9a25-4420-9e1c-3546b937bb6b\"></ae-design>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-09-20T08:58:48+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-09-20T09:01:36+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1726822896996,"ct":1726822728762,"a_depth":5,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","50c3c7c5-c3d4-460c-b34d-0d61a4cb09ae","91f74438-399a-4397-a599-a5f386ea0ed8"],"a_forms":["folder","application-form","form-folder","form","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f","cd3a1d65-8fe9-45f2-9b8e-1146b3926be5"],"a_depth":5,"a_forms":["folder","application-form","form-folder","form","form"],"cloneOf":{"id":"5949445a-e647-4ce5-8cc7-30fcfe511e10","text":"rd:page-workflow","v":"741885522f4a4c25"},"created":{"at":"2024-06-11T14:49:28+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1718117368636,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:page-workflow","packages":[],"template":"<ae-design\n  class=\"h-full w-full\"\n  name=\"rd:workflow-graph\"\n  :document-id=\"document.p\"\n  param-workflow-definition-id=\"50fed9fd-9a25-4420-9e1c-3546b937bb6b\"\n  :watch=\"false\"\n></ae-design>\n"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"7453016c-d822-4904-991a-010b490fc093","inheritedLocks":[null,null,null,null,null,null],"locks":[],"modified":{"at":"2025-04-07T13:26:52+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"5949445a-e647-4ce5-8cc7-30fcfe511e10","text":"rd:page-workflow","v":"741885522f4a4c25"},"p":"cd3a1d65-8fe9-45f2-9b8e-1146b3926be5","previous":{"v":"initial"},"stamps":[],"t":1744032412270,"v":"608189737f81dac0"},{"id":"7ddf2ebe-5e6e-460a-b45a-b4cbc992735e","v":"0210f0a2a2b1f1d6","cloneOf":{"id":"5949445a-e647-4ce5-8cc7-30fcfe511e10","v":"741885522f4a4c25","text":"rd:page-workflow"},"originalCloneOf":{"id":"5949445a-e647-4ce5-8cc7-30fcfe511e10","v":"741885522f4a4c25","text":"rd:page-workflow"},"previous":{"v":"initial"},"p":"2c5ec2e2-a72a-43ac-9a30-d5ebacb26c10","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-workflow","template":"<ae-design\n  class=\"h-full w-full\"\n  name=\"rd:workflow-graph\"\n  :document-id=\"document.p\"\n  param-workflow-definition-id=\"50fed9fd-9a25-4420-9e1c-3546b937bb6b\"\n  :watch=\"false\"\n></ae-design>\n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-06-11T14:49:30+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2025-04-07T13:51:45+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1744033905466,"ct":1718117370574,"a_depth":5,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f","2c5ec2e2-a72a-43ac-9a30-d5ebacb26c10"],"a_forms":["folder","application-form","form-folder","form","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"7fda3c8c-d3ea-431a-9e2a-24a2f69e5b37","v":"2442dfc59d391718","cloneOf":{"id":"905bbb02-7cb3-4e5d-a9cd-b53526a9ed03","v":"initial","text":"rd:page-workflow"},"originalCloneOf":{"id":"905bbb02-7cb3-4e5d-a9cd-b53526a9ed03","v":"initial","text":"rd:page-workflow"},"previous":{"v":"initial"},"p":"565b1bc2-c2fd-4f1b-8095-b434a5d79e38","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-workflow","template":"<ae-design\n  class=\"h-full w-full\"\n  name=\"rd:workflow-graph\"\n  :document-id=\"document.p\"\n  param-workflow-definition-id=\"50fed9fd-9a25-4420-9e1c-3546b937bb6b\"\n  :watch=\"false\"\n></ae-design>\n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-11-27T09:47:00+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2025-04-07T13:51:45+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1744033905473,"ct":1732700820634,"a_depth":5,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f","565b1bc2-c2fd-4f1b-8095-b434a5d79e38"],"a_forms":["folder","application-form","form-folder","form","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"80264c9e-d671-4f20-b102-ff673226a4fb","v":"initial","cloneOf":{"id":"14e3ee96-1f52-43fb-a172-dec01cd9336a","v":"b3cdb9c2b251f2ac","text":"rd:page-workflow"},"originalCloneOf":{"id":"14e3ee96-1f52-43fb-a172-dec01cd9336a","v":"b3cdb9c2b251f2ac","text":"rd:page-workflow"},"p":"2447cc27-9da7-43e1-a459-76210a050354","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-workflow","template":"<ae-design\n  class=\"h-full w-full\"\n  name=\"rd:workflow-graph\"\n  :document-id=\"document.p\"\n  param-workflow-definition-id=\"50fed9fd-9a25-4420-9e1c-3546b937bb6b\"\n  :watch=\"false\"\n></ae-design>\n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2025-10-13T11:58:00+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2025-10-13T11:58:00+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1760356680273,"ct":1760356680273,"a_depth":5,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f","2447cc27-9da7-43e1-a459-76210a050354"],"a_forms":["folder","application-form","form-folder","form","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"83861877-acd5-4b1c-bec6-74001393a4ae","v":"74e62a71ddaef203","cloneOf":{"id":"5949445a-e647-4ce5-8cc7-30fcfe511e10","v":"741885522f4a4c25","text":"rd:page-workflow"},"originalCloneOf":{"id":"5949445a-e647-4ce5-8cc7-30fcfe511e10","v":"741885522f4a4c25","text":"rd:page-workflow"},"previous":{"v":"initial"},"p":"b96c95e6-bda3-4599-abfd-95186e405d37","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-workflow","template":"<ae-design\n  class=\"h-full w-full\"\n  name=\"rd:workflow-graph\"\n  :document-id=\"document.p\"\n  param-workflow-definition-id=\"50fed9fd-9a25-4420-9e1c-3546b937bb6b\"\n  :watch=\"false\"\n></ae-design>\n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-06-11T14:49:25+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2025-04-07T13:51:45+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1744033905471,"ct":1718117365235,"a_depth":5,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f","b96c95e6-bda3-4599-abfd-95186e405d37"],"a_forms":["folder","application-form","form-folder","form","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"86ad065b-cac6-4616-8e54-eb2610c7cf0a","v":"097db62a5de2b992","cloneOf":{"id":"5949445a-e647-4ce5-8cc7-30fcfe511e10","v":"741885522f4a4c25","text":"rd:page-workflow"},"originalCloneOf":{"id":"5949445a-e647-4ce5-8cc7-30fcfe511e10","v":"741885522f4a4c25","text":"rd:page-workflow"},"previous":{"v":"initial"},"p":"4c040433-48aa-48cf-b126-5fe78abd1b27","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-workflow","template":"<ae-design\n  class=\"h-full w-full\"\n  name=\"rd:workflow-graph\"\n  :document-id=\"document.p\"\n  param-workflow-definition-id=\"50fed9fd-9a25-4420-9e1c-3546b937bb6b\"\n  :watch=\"false\"\n></ae-design>\n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-06-11T14:49:37+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2025-04-07T13:51:45+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1744033905313,"ct":1718117377651,"a_depth":5,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f","4c040433-48aa-48cf-b126-5fe78abd1b27"],"a_forms":["folder","application-form","form-folder","form","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","c881dec7-95f5-434f-9423-93143aaa976b","8d3c96d8-d246-412d-9f7b-3f70cff3860c"],"a_depth":5,"a_forms":["folder","application-form","form-folder","form","form"],"cloneOf":{"id":"00eb1205-a93e-49da-8811-2f30c0d52f49","text":"rd:page-workflow","v":"51145dc15eeca64e"},"created":{"at":"2025-07-09T11:48:27+00:00","backedBy":null,"by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":null},"ct":1752061656634,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:page-workflow","packages":[],"template":"<ae-design\n  class=\"h-full w-full\"\n  name=\"rd:workflow-graph\"\n  :document-id=\"document.p\"\n  param-workflow-definition-id=\"0a79a3bf-0c7d-4d67-81a5-12eb74e25a8e\"\n  :watch=\"false\"\n></ae-design>\n"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"88e26072-a69b-4a82-a84e-ebf543aeffb8","inheritedLocks":[null,null,null,null,null,null],"locks":[],"meta":{"modified":{"at":"2025-07-09T11:48:30+00:00","backedBy":null,"by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":null}},"modified":{"at":"2025-07-09T11:48:27+00:00","backedBy":null,"by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"00eb1205-a93e-49da-8811-2f30c0d52f49","text":"rd:page-workflow","v":"51145dc15eeca64e"},"p":"8d3c96d8-d246-412d-9f7b-3f70cff3860c","previous":{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","c881dec7-95f5-434f-9423-93143aaa976b","530c1e59-195c-4714-a31a-f8f292bd79c8"],"a_forms":["folder","application-form","form-folder","form","form"],"p":"530c1e59-195c-4714-a31a-f8f292bd79c8","v":"initial"},"stamps":[],"t":1752061710379,"v":"545c7344b012608b"},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","c881dec7-95f5-434f-9423-93143aaa976b","a5a1eee5-1b9f-4360-af4c-e8e80dc4d5e1"],"a_depth":5,"a_forms":["folder","application-form","form-folder","form","form"],"cloneOf":{"id":"00eb1205-a93e-49da-8811-2f30c0d52f49","text":"rd:page-workflow","v":"51145dc15eeca64e"},"created":{"at":"2025-07-09T11:48:26+00:00","backedBy":null,"by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":null},"ct":1752061656634,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:page-workflow","packages":[],"template":"<ae-design\n  class=\"h-full w-full\"\n  name=\"rd:workflow-graph\"\n  :document-id=\"document.p\"\n  param-workflow-definition-id=\"0a79a3bf-0c7d-4d67-81a5-12eb74e25a8e\"\n  :watch=\"false\"\n></ae-design>\n"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"8cb58464-f1b5-4bf4-bd2d-d7376bf9b12e","inheritedLocks":[null,null,null,null,null,null],"locks":[],"meta":{"modified":{"at":"2025-07-09T11:48:32+00:00","backedBy":null,"by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":null}},"modified":{"at":"2025-07-09T11:48:26+00:00","backedBy":null,"by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"00eb1205-a93e-49da-8811-2f30c0d52f49","text":"rd:page-workflow","v":"51145dc15eeca64e"},"p":"a5a1eee5-1b9f-4360-af4c-e8e80dc4d5e1","previous":{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","c881dec7-95f5-434f-9423-93143aaa976b","530c1e59-195c-4714-a31a-f8f292bd79c8"],"a_forms":["folder","application-form","form-folder","form","form"],"p":"530c1e59-195c-4714-a31a-f8f292bd79c8","v":"initial"},"stamps":[],"t":1752061712845,"v":"602b9b5d9a8bd8fc"},{"id":"8e4b877f-40da-47b2-921b-d07c4be48b1c","v":"5be0cac272449b28","cloneOf":{"id":"5949445a-e647-4ce5-8cc7-30fcfe511e10","v":"741885522f4a4c25","text":"rd:page-workflow"},"originalCloneOf":{"id":"5949445a-e647-4ce5-8cc7-30fcfe511e10","v":"741885522f4a4c25","text":"rd:page-workflow"},"previous":{"v":"initial"},"p":"7665f38b-e1a1-4708-9173-70d015272792","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-workflow","template":"<ae-design\n  class=\"h-full w-full\"\n  name=\"rd:workflow-graph\"\n  :document-id=\"document.p\"\n  param-workflow-definition-id=\"50fed9fd-9a25-4420-9e1c-3546b937bb6b\"\n  :watch=\"false\"\n></ae-design>\n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-06-11T14:49:34+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2025-04-07T13:51:45+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1744033905465,"ct":1718117374177,"a_depth":5,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f","7665f38b-e1a1-4708-9173-70d015272792"],"a_forms":["folder","application-form","form-folder","form","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"9012b0ca-4695-4621-b386-842e9f543eee","v":"initial","cloneOf":{"id":"1bb27050-0254-47e9-8818-0a2118d8d4fb","v":"01d3d0ebf1f7ed98","text":"rd:page-workflow"},"originalCloneOf":{"id":"1bb27050-0254-47e9-8818-0a2118d8d4fb","v":"01d3d0ebf1f7ed98","text":"rd:page-workflow"},"p":"5076beba-8e94-4503-bfcb-8694df11f4e5","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-workflow","template":"<ae-design\n  class=\"h-full w-full\"\n  name=\"rd:workflow-graph\"\n  :document-id=\"document.p\"\n  param-workflow-definition-id=\"50fed9fd-9a25-4420-9e1c-3546b937bb6b\"\n  :watch=\"false\"\n></ae-design>\n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2025-05-19T12:35:19+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2025-05-19T12:35:19+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1747658119346,"ct":1747658119346,"a_depth":5,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f","5076beba-8e94-4503-bfcb-8694df11f4e5"],"a_forms":["folder","application-form","form-folder","form","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"90185a65-ba8c-4e65-8052-ac74eebabdfc","v":"initial","cloneOf":{"id":"4f4d6add-9b05-4057-9818-c4d04717efee","v":"4f7dca44c5c596b2","text":"rd:page-workflow"},"originalCloneOf":{"id":"4f4d6add-9b05-4057-9818-c4d04717efee","v":"4f7dca44c5c596b2","text":"rd:page-workflow"},"p":"823f49b2-ea5e-4ce2-8c1b-4eab59f04281","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-workflow","template":"<ae-design\n  class=\"h-full w-full\"\n  name=\"rd:workflow-graph\"\n  :document-id=\"document.p\"\n  param-workflow-definition-id=\"50fed9fd-9a25-4420-9e1c-3546b937bb6b\"\n  :watch=\"false\"\n></ae-design>\n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2025-05-19T12:35:16+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2025-05-19T12:35:16+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1747658116178,"ct":1747658116178,"a_depth":5,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f","823f49b2-ea5e-4ce2-8c1b-4eab59f04281"],"a_forms":["folder","application-form","form-folder","form","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f","7343f86d-bfd2-4768-a26a-d4229c603418"],"a_depth":5,"a_forms":["folder","application-form","form-folder","form","form"],"cloneOf":{"id":"5949445a-e647-4ce5-8cc7-30fcfe511e10","text":"rd:page-workflow","v":"741885522f4a4c25"},"created":{"at":"2024-06-11T14:49:22+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1718117362526,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:page-workflow","packages":[],"template":"<ae-design\n  class=\"h-full w-full\"\n  name=\"rd:workflow-graph\"\n  :document-id=\"document.p\"\n  param-workflow-definition-id=\"50fed9fd-9a25-4420-9e1c-3546b937bb6b\"\n  :watch=\"false\"\n></ae-design>\n"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"905bbb02-7cb3-4e5d-a9cd-b53526a9ed03","inheritedLocks":[null,null,null,null,null,null],"locks":[],"modified":{"at":"2025-04-07T13:41:05+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"5949445a-e647-4ce5-8cc7-30fcfe511e10","text":"rd:page-workflow","v":"741885522f4a4c25"},"p":"7343f86d-bfd2-4768-a26a-d4229c603418","previous":{"v":"initial"},"stamps":[],"t":1744033265211,"v":"8be10f2f12eca925"},{"id":"91dd1b42-68cc-43aa-a7dc-cd6abcf71c66","v":"b3c0ab6581d217de","cloneOf":{"id":"5949445a-e647-4ce5-8cc7-30fcfe511e10","v":"741885522f4a4c25","text":"rd:page-workflow"},"originalCloneOf":{"id":"5949445a-e647-4ce5-8cc7-30fcfe511e10","v":"741885522f4a4c25","text":"rd:page-workflow"},"previous":{"v":"initial"},"p":"dcdf4048-fd75-42ce-bbb0-e2594a0a3e07","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-workflow","template":"<ae-design\n  class=\"h-full w-full\"\n  name=\"rd:workflow-graph\"\n  :document-id=\"document.p\"\n  param-workflow-definition-id=\"50fed9fd-9a25-4420-9e1c-3546b937bb6b\"\n  :watch=\"false\"\n></ae-design>\n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-06-11T14:49:33+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2025-04-07T13:51:45+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1744033905465,"ct":1718117373606,"a_depth":5,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f","dcdf4048-fd75-42ce-bbb0-e2594a0a3e07"],"a_forms":["folder","application-form","form-folder","form","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"a04bce3e-2f8a-4562-b79e-e6465eb3dc2f","v":"0944b60c1a4815d7","previous":{"v":"c1d6069d28df5d22"},"p":"0bb3d600-faf0-4a5c-b49f-7994d234ae76","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-workflow","template":"<ae-design class=\"h-full w-full\" name=\"rd:workflow-graph\" :document=\"document\" param-workflow-definition-id=\"50fed9fd-9a25-4420-9e1c-3546b937bb6b\"></ae-design>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-04-27T08:25:46+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2024-06-10T14:59:05+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1718031545199,"ct":1682583946414,"a_depth":4,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","0bb3d600-faf0-4a5c-b49f-7994d234ae76"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","c881dec7-95f5-434f-9423-93143aaa976b","dae29199-d0fc-42f3-bc0c-e9dc3a7238d0"],"a_depth":5,"a_forms":["folder","application-form","form-folder","form","form"],"cloneOf":{"id":"00eb1205-a93e-49da-8811-2f30c0d52f49","text":"rd:page-workflow","v":"51145dc15eeca64e"},"created":{"at":"2025-07-09T11:48:14+00:00","backedBy":null,"by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":null},"ct":1752061656634,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:page-workflow","packages":[],"template":"<ae-design\n  class=\"h-full w-full\"\n  name=\"rd:workflow-graph\"\n  :document-id=\"document.p\"\n  param-workflow-definition-id=\"0a79a3bf-0c7d-4d67-81a5-12eb74e25a8e\"\n  :watch=\"false\"\n></ae-design>\n"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"a20da79b-5e01-48cb-b8d0-a6b3ab3a6cfc","inheritedLocks":[null,null,null,null,null,null],"locks":[],"meta":{"modified":{"at":"2025-07-09T11:48:45+00:00","backedBy":null,"by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":null}},"modified":{"at":"2025-07-09T11:48:14+00:00","backedBy":null,"by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"00eb1205-a93e-49da-8811-2f30c0d52f49","text":"rd:page-workflow","v":"51145dc15eeca64e"},"p":"dae29199-d0fc-42f3-bc0c-e9dc3a7238d0","previous":{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","c881dec7-95f5-434f-9423-93143aaa976b","530c1e59-195c-4714-a31a-f8f292bd79c8"],"a_forms":["folder","application-form","form-folder","form","form"],"p":"530c1e59-195c-4714-a31a-f8f292bd79c8","v":"initial"},"stamps":[],"t":1752061725585,"v":"e2f42186b0a04b7c"},{"id":"a7a88f83-491a-47a8-a1e4-28c45ac1549f","v":"07777542d756b144","cloneOf":{"id":"2cf938c1-09ac-4223-92da-4bfe70ac7fa5","v":"initial","text":"rd:page-workflow"},"originalCloneOf":{"id":"2cf938c1-09ac-4223-92da-4bfe70ac7fa5","v":"initial","text":"rd:page-workflow"},"previous":{"v":"initial"},"p":"8748ffd7-2c37-4640-86ea-7fd63fab410c","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-workflow","template":"<ae-design\n  class=\"h-full w-full\"\n  name=\"rd:workflow-graph\"\n  :document-id=\"document.p\"\n  param-workflow-definition-id=\"50fed9fd-9a25-4420-9e1c-3546b937bb6b\"\n  :watch=\"false\"\n></ae-design>\n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-11-27T09:49:24+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2025-04-07T13:51:45+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1744033905470,"ct":1732700964456,"a_depth":5,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f","8748ffd7-2c37-4640-86ea-7fd63fab410c"],"a_forms":["folder","application-form","form-folder","form","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"b002a32b-b84c-427e-8dca-b41c771d2549","v":"6804285a998a0a35","previous":{"v":"83c8baa511e0ae51"},"p":"dbee6e16-d63a-493c-bba6-505f79918f9f","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-workflow","template":" <ae-design class=\"h-full w-full\" \n            name=\"rd:workflow-graph\" \n            :document=\"document\" \n            param-workflow-definition-id=\"bbd555c5-a65d-484e-9fed-7564a1c21ebc\"\n            :param-hide-graph=\"true\"\n></ae-design>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-06-19T13:09:58+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-06-19T13:21:58+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1718803318853,"ct":1718802598254,"a_depth":4,"a":["apps","45ada186-e9fd-451d-9dbd-2defc0b4f86f","4ec6a0e5-cf2d-4095-9b70-2e31a64d5679","dbee6e16-d63a-493c-bba6-505f79918f9f"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"b09c2c1f-9de1-43ac-8733-fdb06ac1f83f","v":"543f8fe3e202924b","cloneOf":{"id":"5949445a-e647-4ce5-8cc7-30fcfe511e10","v":"741885522f4a4c25","text":"rd:page-workflow"},"originalCloneOf":{"id":"5949445a-e647-4ce5-8cc7-30fcfe511e10","v":"741885522f4a4c25","text":"rd:page-workflow"},"previous":{"v":"initial"},"p":"e79a992e-0495-4257-bad0-d97b0b882ccb","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-workflow","template":"<ae-design\n  class=\"h-full w-full\"\n  name=\"rd:workflow-graph\"\n  :document-id=\"document.p\"\n  param-workflow-definition-id=\"50fed9fd-9a25-4420-9e1c-3546b937bb6b\"\n  :watch=\"false\"\n></ae-design>\n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-06-11T14:49:25+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2025-04-07T13:51:45+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1744033905471,"ct":1718117365912,"a_depth":5,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f","e79a992e-0495-4257-bad0-d97b0b882ccb"],"a_forms":["folder","application-form","form-folder","form","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"bcea5eee-6915-48e5-addb-3e3cd4be4af8","v":"9211ea1f37a8b3e3","cloneOf":{"id":"5949445a-e647-4ce5-8cc7-30fcfe511e10","v":"741885522f4a4c25","text":"rd:page-workflow"},"originalCloneOf":{"id":"5949445a-e647-4ce5-8cc7-30fcfe511e10","v":"741885522f4a4c25","text":"rd:page-workflow"},"previous":{"v":"initial"},"p":"02566e34-c497-4002-96aa-745e406c5439","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-workflow","template":"<ae-design\n  class=\"h-full w-full\"\n  name=\"rd:workflow-graph\"\n  :document-id=\"document.p\"\n  param-workflow-definition-id=\"50fed9fd-9a25-4420-9e1c-3546b937bb6b\"\n  :watch=\"false\"\n></ae-design>\n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-06-11T14:49:40+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2025-04-07T13:51:45+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1744033905311,"ct":1718117380018,"a_depth":5,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f","02566e34-c497-4002-96aa-745e406c5439"],"a_forms":["folder","application-form","form-folder","form","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"bd4b0af8-27ed-45f2-b6ea-790763581d12","v":"0362c5365364973d","cloneOf":{"id":"5949445a-e647-4ce5-8cc7-30fcfe511e10","v":"741885522f4a4c25","text":"rd:page-workflow"},"originalCloneOf":{"id":"5949445a-e647-4ce5-8cc7-30fcfe511e10","v":"741885522f4a4c25","text":"rd:page-workflow"},"previous":{"v":"initial"},"p":"85b423da-a5e7-4012-8992-29ac8505ecca","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-workflow","template":"<ae-design\n  class=\"h-full w-full\"\n  name=\"rd:workflow-graph\"\n  :document-id=\"document.p\"\n  param-workflow-definition-id=\"50fed9fd-9a25-4420-9e1c-3546b937bb6b\"\n  :watch=\"false\"\n></ae-design>\n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-06-11T14:49:29+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2025-04-07T13:51:45+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1744033905467,"ct":1718117369184,"a_depth":5,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f","85b423da-a5e7-4012-8992-29ac8505ecca"],"a_forms":["folder","application-form","form-folder","form","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"c1c07405-1091-4371-bb31-409faf743a0f","v":"784a304645b15e8f","cloneOf":{"id":"5949445a-e647-4ce5-8cc7-30fcfe511e10","v":"741885522f4a4c25","text":"rd:page-workflow"},"originalCloneOf":{"id":"5949445a-e647-4ce5-8cc7-30fcfe511e10","v":"741885522f4a4c25","text":"rd:page-workflow"},"previous":{"v":"initial"},"p":"bbd108c5-a15b-448a-8302-0c97cc5688ab","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-workflow","template":"<ae-design\n  class=\"h-full w-full\"\n  name=\"rd:workflow-graph\"\n  :document-id=\"document.p\"\n  param-workflow-definition-id=\"50fed9fd-9a25-4420-9e1c-3546b937bb6b\"\n  :watch=\"false\"\n></ae-design>\n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-06-11T14:49:35+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2025-04-07T13:51:45+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1744033905464,"ct":1718117375140,"a_depth":5,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f","bbd108c5-a15b-448a-8302-0c97cc5688ab"],"a_forms":["folder","application-form","form-folder","form","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"c5d0436b-ee09-4d70-b77e-ec3cad934dfc","v":"initial","cloneOf":{"id":"03c17a9f-175d-418c-937c-015f102e33d5","v":"6c15a6b3d75a3509","text":"rd:page-workflow"},"originalCloneOf":{"id":"03c17a9f-175d-418c-937c-015f102e33d5","v":"6c15a6b3d75a3509","text":"rd:page-workflow"},"p":"4f9156b5-edad-4770-9451-312a3065174f","f":{"id":"design-form","v":"22a757f630104010","text":"Design"},"data":{"name":"rd:page-workflow","template":"<ae-design\n  class=\"h-full w-full\"\n  name=\"rd:workflow-graph\"\n  :document-id=\"document.p\"\n  param-workflow-definition-id=\"0a79a3bf-0c7d-4d67-81a5-12eb74e25a8e\"\n  :watch=\"false\"\n></ae-design>\n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2026-05-07T11:26:32+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":"","impersonatedBy":"","from":"","client":"server"},"modified":{"at":"2026-05-07T11:26:32+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":"","impersonatedBy":"","from":"","client":"server"},"t":1778153192551,"ct":1778153192550,"a_depth":5,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","c881dec7-95f5-434f-9423-93143aaa976b","4f9156b5-edad-4770-9451-312a3065174f"],"a_forms":["folder","application-form","form-folder","form","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","c881dec7-95f5-434f-9423-93143aaa976b","0bca16a9-0f48-4b63-8cd2-9abd142246f0"],"a_depth":5,"a_forms":["folder","application-form","form-folder","form","form"],"cloneOf":{"id":"00eb1205-a93e-49da-8811-2f30c0d52f49","text":"rd:page-workflow","v":"51145dc15eeca64e"},"created":{"at":"2025-07-09T11:48:18+00:00","backedBy":null,"by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":null},"ct":1752061656634,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:page-workflow","packages":[],"template":"<ae-design\n  class=\"h-full w-full\"\n  name=\"rd:workflow-graph\"\n  :document-id=\"document.p\"\n  param-workflow-definition-id=\"0a79a3bf-0c7d-4d67-81a5-12eb74e25a8e\"\n  :watch=\"false\"\n></ae-design>\n"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"cd3c414d-8bff-4f4c-8120-93b42eda485f","inheritedLocks":[null,null,null,null,null,null],"locks":[],"meta":{"modified":{"at":"2025-07-09T11:48:40+00:00","backedBy":null,"by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":null}},"modified":{"at":"2025-07-09T11:48:18+00:00","backedBy":null,"by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"00eb1205-a93e-49da-8811-2f30c0d52f49","text":"rd:page-workflow","v":"51145dc15eeca64e"},"p":"0bca16a9-0f48-4b63-8cd2-9abd142246f0","previous":{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","c881dec7-95f5-434f-9423-93143aaa976b","530c1e59-195c-4714-a31a-f8f292bd79c8"],"a_forms":["folder","application-form","form-folder","form","form"],"p":"530c1e59-195c-4714-a31a-f8f292bd79c8","v":"initial"},"stamps":[],"t":1752061720701,"v":"69ce2e00f36f5b9d"},{"id":"cd9e6fd5-4310-43dd-9efe-25c1d3c724bc","v":"initial","cloneOf":{"id":"37e593f6-18d2-4f43-9b36-45b97fa0fe74","v":"4db6d518f7bd6342","text":"rd:page-workflow"},"originalCloneOf":{"id":"37e593f6-18d2-4f43-9b36-45b97fa0fe74","v":"4db6d518f7bd6342","text":"rd:page-workflow"},"p":"6c649473-bbea-4eb8-82fd-714a97b185cd","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-workflow","template":"<ae-design\n  class=\"h-full w-full\"\n  name=\"rd:workflow-graph\"\n  :document-id=\"document.p\"\n  param-workflow-definition-id=\"50fed9fd-9a25-4420-9e1c-3546b937bb6b\"\n  :watch=\"false\"\n></ae-design>\n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2025-05-19T11:54:11+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2025-05-19T11:54:11+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1747655651956,"ct":1747655651956,"a_depth":5,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f","6c649473-bbea-4eb8-82fd-714a97b185cd"],"a_forms":["folder","application-form","form-folder","form","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"d7458d8c-971a-4166-80da-aa08bbcff9b1","v":"084e773a18d0c351","cloneOf":{"id":"5949445a-e647-4ce5-8cc7-30fcfe511e10","v":"741885522f4a4c25","text":"rd:page-workflow"},"originalCloneOf":{"id":"5949445a-e647-4ce5-8cc7-30fcfe511e10","v":"741885522f4a4c25","text":"rd:page-workflow"},"previous":{"v":"initial"},"p":"b100456f-0d74-4ef5-a76c-9855bddd64cb","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-workflow","template":"<ae-design\n  class=\"h-full w-full\"\n  name=\"rd:workflow-graph\"\n  :document-id=\"document.p\"\n  param-workflow-definition-id=\"50fed9fd-9a25-4420-9e1c-3546b937bb6b\"\n  :watch=\"false\"\n></ae-design>\n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-06-11T14:49:38+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2025-04-07T13:51:45+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1744033905312,"ct":1718117378206,"a_depth":5,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f","b100456f-0d74-4ef5-a76c-9855bddd64cb"],"a_forms":["folder","application-form","form-folder","form","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","c881dec7-95f5-434f-9423-93143aaa976b","19b56bb6-fa63-4238-8c13-5439b507edc2"],"a_depth":5,"a_forms":["folder","application-form","form-folder","form","form"],"cloneOf":{"id":"00eb1205-a93e-49da-8811-2f30c0d52f49","text":"rd:page-workflow","v":"51145dc15eeca64e"},"created":{"at":"2025-07-09T11:48:16+00:00","backedBy":null,"by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":null},"ct":1752061656634,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:page-workflow","packages":[],"template":"<ae-design\n  class=\"h-full w-full\"\n  name=\"rd:workflow-graph\"\n  :document-id=\"document.p\"\n  param-workflow-definition-id=\"0a79a3bf-0c7d-4d67-81a5-12eb74e25a8e\"\n  :watch=\"false\"\n></ae-design>\n"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"d89dc239-4909-4f40-a536-3d9ea8d511c5","inheritedLocks":[null,null,null,null,null,null],"locks":[],"meta":{"modified":{"at":"2025-07-09T11:48:43+00:00","backedBy":null,"by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":null}},"modified":{"at":"2025-07-09T11:48:16+00:00","backedBy":null,"by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"00eb1205-a93e-49da-8811-2f30c0d52f49","text":"rd:page-workflow","v":"51145dc15eeca64e"},"p":"19b56bb6-fa63-4238-8c13-5439b507edc2","previous":{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","c881dec7-95f5-434f-9423-93143aaa976b","530c1e59-195c-4714-a31a-f8f292bd79c8"],"a_forms":["folder","application-form","form-folder","form","form"],"p":"530c1e59-195c-4714-a31a-f8f292bd79c8","v":"initial"},"stamps":[],"t":1752061723202,"v":"30c2618f91046616"},{"id":"db1f59ae-7548-49dd-8927-e17a02576832","v":"80dcde31a2c60d6d","cloneOf":{"id":"5949445a-e647-4ce5-8cc7-30fcfe511e10","v":"741885522f4a4c25","text":"rd:page-workflow"},"originalCloneOf":{"id":"5949445a-e647-4ce5-8cc7-30fcfe511e10","v":"741885522f4a4c25","text":"rd:page-workflow"},"previous":{"v":"initial"},"p":"4dc0da6b-1dd9-44cc-bcc7-28f4a79b3bbf","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-workflow","template":"<ae-design\n  class=\"h-full w-full\"\n  name=\"rd:workflow-graph\"\n  :document-id=\"document.p\"\n  param-workflow-definition-id=\"50fed9fd-9a25-4420-9e1c-3546b937bb6b\"\n  :watch=\"false\"\n></ae-design>\n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-06-11T14:49:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2025-04-07T13:51:45+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1744033905466,"ct":1718117372445,"a_depth":5,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f","4dc0da6b-1dd9-44cc-bcc7-28f4a79b3bbf"],"a_forms":["folder","application-form","form-folder","form","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"e253255f-6cf7-4ff6-94d5-157d480a0339","v":"078d043c60fc72c0","cloneOf":{"id":"905bbb02-7cb3-4e5d-a9cd-b53526a9ed03","v":"initial","text":"rd:page-workflow"},"originalCloneOf":{"id":"905bbb02-7cb3-4e5d-a9cd-b53526a9ed03","v":"initial","text":"rd:page-workflow"},"previous":{"v":"de1e226242e4e1da"},"p":"dd51bf3c-69df-4bcd-a630-1a8e0f7dba2e","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-workflow","template":"<ae-design class=\"h-full w-full\" name=\"rd:workflow-graph\" :document-id=\"document.a.slice(-2)[0]\" param-workflow-definition-id=\"50fed9fd-9a25-4420-9e1c-3546b937bb6b\"></ae-design>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-09-20T08:58:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-09-20T09:01:28+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1726822888072,"ct":1726822712549,"a_depth":5,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","50c3c7c5-c3d4-460c-b34d-0d61a4cb09ae","dd51bf3c-69df-4bcd-a630-1a8e0f7dba2e"],"a_forms":["folder","application-form","form-folder","form","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"e32b17f7-608b-40fe-acbb-2a221c74102e","v":"be12d327874aa2c6","cloneOf":{"id":"e253255f-6cf7-4ff6-94d5-157d480a0339","v":"initial","text":"rd:page-workflow"},"originalCloneOf":{"id":"e253255f-6cf7-4ff6-94d5-157d480a0339","v":"initial","text":"rd:page-workflow"},"previous":{"v":"9bf3ee60c5cfe06d"},"p":"11452ef0-a6c2-49e9-845e-73133019ba59","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-workflow","template":"<ae-design class=\"h-full w-full\" name=\"rd:workflow-graph\" :document-id=\"document.a.slice(-2)[0]\" param-workflow-definition-id=\"50fed9fd-9a25-4420-9e1c-3546b937bb6b\"></ae-design>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-09-20T08:58:50+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-09-20T09:01:17+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1726822877226,"ct":1726822730118,"a_depth":5,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","50c3c7c5-c3d4-460c-b34d-0d61a4cb09ae","11452ef0-a6c2-49e9-845e-73133019ba59"],"a_forms":["folder","application-form","form-folder","form","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"e3975e05-568c-40e0-ab77-a9101bae29e2","v":"c207e84de2278293","cloneOf":{"id":"5556d398-4cff-4cf6-9cad-cfb13121bdad","v":"initial","text":"rd:page-workflow"},"originalCloneOf":{"id":"5556d398-4cff-4cf6-9cad-cfb13121bdad","v":"initial","text":"rd:page-workflow"},"previous":{"v":"initial"},"p":"435abfe0-01e2-4bae-a38d-9f7b80978fb1","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-workflow","template":"<ae-design\n  class=\"h-full w-full\"\n  name=\"rd:workflow-graph\"\n  :document-id=\"document.p\"\n  param-workflow-definition-id=\"50fed9fd-9a25-4420-9e1c-3546b937bb6b\"\n  :watch=\"false\"\n></ae-design>\n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-11-27T09:50:06+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2025-04-07T13:51:45+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1744033905311,"ct":1732701006471,"a_depth":5,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f","435abfe0-01e2-4bae-a38d-9f7b80978fb1"],"a_forms":["folder","application-form","form-folder","form","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"e6b87da0-038a-4021-b442-efbf78e6999c","v":"initial","cloneOf":{"id":"1110ae31-9bdf-4d24-9054-d70ad94aad0b","v":"e6c975eb7c99258f","text":"rd:page-workflow"},"originalCloneOf":{"id":"1110ae31-9bdf-4d24-9054-d70ad94aad0b","v":"e6c975eb7c99258f","text":"rd:page-workflow"},"p":"1dd7f11b-2b76-4545-a9dc-776db2ebd88c","f":{"id":"design-form","v":"22a757f630104010","text":"Design"},"data":{"name":"rd:page-workflow","template":"<ae-design\n  class=\"h-full w-full\"\n  name=\"rd:workflow-graph\"\n  :document-id=\"document.p\"\n  param-workflow-definition-id=\"0a79a3bf-0c7d-4d67-81a5-12eb74e25a8e\"\n  :watch=\"false\"\n></ae-design>\n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2026-05-07T11:26:34+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":"","impersonatedBy":"","from":"","client":"server"},"modified":{"at":"2026-05-07T11:26:34+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":"","impersonatedBy":"","from":"","client":"server"},"t":1778153194497,"ct":1778153194497,"a_depth":5,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","c881dec7-95f5-434f-9423-93143aaa976b","1dd7f11b-2b76-4545-a9dc-776db2ebd88c"],"a_forms":["folder","application-form","form-folder","form","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"e946606b-8735-46dd-9581-b06a60b6e2d3","v":"initial","cloneOf":{"id":"bd4b0af8-27ed-45f2-b6ea-790763581d12","v":"0362c5365364973d","text":"rd:page-workflow"},"originalCloneOf":{"id":"bd4b0af8-27ed-45f2-b6ea-790763581d12","v":"0362c5365364973d","text":"rd:page-workflow"},"p":"eba0ee74-e3ba-4445-a61b-ea7e962a7f82","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-workflow","template":"<ae-design\n  class=\"h-full w-full\"\n  name=\"rd:workflow-graph\"\n  :document-id=\"document.p\"\n  param-workflow-definition-id=\"50fed9fd-9a25-4420-9e1c-3546b937bb6b\"\n  :watch=\"false\"\n></ae-design>\n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2025-05-20T14:17:03+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2025-05-20T14:17:03+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1747750623135,"ct":1747750623134,"a_depth":5,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f","eba0ee74-e3ba-4445-a61b-ea7e962a7f82"],"a_forms":["folder","application-form","form-folder","form","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"ece09a9c-c765-4702-8e77-f05799cdded8","v":"initial","cloneOf":{"id":"e32b17f7-608b-40fe-acbb-2a221c74102e","v":"be12d327874aa2c6","text":"rd:page-workflow"},"originalCloneOf":{"id":"e32b17f7-608b-40fe-acbb-2a221c74102e","v":"be12d327874aa2c6","text":"rd:page-workflow"},"p":"312af864-b1e6-42cf-b6b1-8ebba22707cb","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-workflow","template":"<ae-design class=\"h-full w-full\" name=\"rd:workflow-graph\" :document-id=\"document.a.slice(-2)[0]\" param-workflow-definition-id=\"50fed9fd-9a25-4420-9e1c-3546b937bb6b\"></ae-design>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2025-07-08T08:24:38+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2025-07-08T08:24:38+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1751963078109,"ct":1751963078105,"a_depth":5,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","50c3c7c5-c3d4-460c-b34d-0d61a4cb09ae","312af864-b1e6-42cf-b6b1-8ebba22707cb"],"a_forms":["folder","application-form","form-folder","form","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"f57528e7-3a7d-4a94-8a53-41ffe4f1127b","v":"f6c98bc4c03a8c2d","cloneOf":{"id":"e253255f-6cf7-4ff6-94d5-157d480a0339","v":"initial","text":"rd:page-workflow"},"originalCloneOf":{"id":"e253255f-6cf7-4ff6-94d5-157d480a0339","v":"initial","text":"rd:page-workflow"},"previous":{"v":"0a70bbbb24750abc"},"p":"51a7fc42-06e5-4100-836d-1ba43f6604e1","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-workflow","template":"<ae-design class=\"h-full w-full\" name=\"rd:workflow-graph\" :document-id=\"document.a.slice(-2)[0]\" param-workflow-definition-id=\"50fed9fd-9a25-4420-9e1c-3546b937bb6b\"></ae-design>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-09-20T08:58:46+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-09-20T09:01:30+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1726822890971,"ct":1726822726689,"a_depth":5,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","50c3c7c5-c3d4-460c-b34d-0d61a4cb09ae","51a7fc42-06e5-4100-836d-1ba43f6604e1"],"a_forms":["folder","application-form","form-folder","form","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"f9a7631b-5510-4841-9578-49e629102928","v":"a5d01f08189b96c5","cloneOf":{"id":"61dba432-11fe-491d-bb7e-519894db437d","v":"initial","text":"rd:page-workflow"},"originalCloneOf":{"id":"61dba432-11fe-491d-bb7e-519894db437d","v":"initial","text":"rd:page-workflow"},"previous":{"v":"initial"},"p":"7ee1cdda-663b-4b04-ad47-dc22aae18a3f","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-workflow","template":"<ae-design\n  class=\"h-full w-full\"\n  name=\"rd:workflow-graph\"\n  :document-id=\"document.p\"\n  param-workflow-definition-id=\"50fed9fd-9a25-4420-9e1c-3546b937bb6b\"\n  :watch=\"false\"\n></ae-design>\n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-11-27T09:47:35+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2025-04-07T13:51:45+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1744033905472,"ct":1732700855765,"a_depth":5,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f","7ee1cdda-663b-4b04-ad47-dc22aae18a3f"],"a_forms":["folder","application-form","form-folder","form","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"faa271cd-da8c-4caa-9302-0ad331f19150","v":"37485f5cc4148f67","cloneOf":{"id":"5949445a-e647-4ce5-8cc7-30fcfe511e10","v":"741885522f4a4c25","text":"rd:page-workflow"},"originalCloneOf":{"id":"5949445a-e647-4ce5-8cc7-30fcfe511e10","v":"741885522f4a4c25","text":"rd:page-workflow"},"previous":{"v":"initial"},"p":"0b71e123-3a9b-4cba-b6fd-0d92e77067d2","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:page-workflow","template":"<ae-design\n  class=\"h-full w-full\"\n  name=\"rd:workflow-graph\"\n  :document-id=\"document.p\"\n  param-workflow-definition-id=\"50fed9fd-9a25-4420-9e1c-3546b937bb6b\"\n  :watch=\"false\"\n></ae-design>\n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-06-11T14:49:27+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2025-04-07T13:51:45+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1744033905470,"ct":1718117367414,"a_depth":5,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f","0b71e123-3a9b-4cba-b6fd-0d92e77067d2"],"a_forms":["folder","application-form","form-folder","form","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","5beeae17-7bb1-4eeb-bcb6-cf0e6950e27c"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"5949445a-e647-4ce5-8cc7-30fcfe511e10","text":"rd:page-workflow","v":"5c31b4b790ff2f30"},"created":{"at":"2025-05-26T14:51:22+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1748271082555,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:page-workflow","packages":[],"template":"<ae-design\n  class=\"h-full w-full print:hidden\"\n  name=\"rd:workflow-graph\"\n  :document-id=\"document.a.slice(-2)[0]\"\n  param-workflow-definition-id=\"50fed9fd-9a25-4420-9e1c-3546b937bb6b\"\n  :watch=\"false\"\n></ae-design>\n"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"ff74ffb1-adeb-44a6-bdcb-cb271ba61ecd","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-07-22T11:14:51+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"5949445a-e647-4ce5-8cc7-30fcfe511e10","text":"rd:page-workflow","v":"5c31b4b790ff2f30"},"p":"5beeae17-7bb1-4eeb-bcb6-cf0e6950e27c","previous":{"v":"initial"},"stamps":[],"t":1753182891003,"v":"2416de926f1ef6c9"},{"id":"f7790bc4-27b9-40a4-b2c3-d301ba4b87b7","v":"009aba9379451e1b","previous":{"v":"f65600132cf7dc73","p":"fallback-designs","a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"]},"p":"1cc4b977-c14d-4587-af47-d6ac230f60b3","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:path","template":"<div v-if=\"document.a_depth > 2\" :title=\"locals.fullTitle\" class=\"flex gap-1 items-center\">\n  <ae-design name=\"rd:icon\" :document-id=\"document.a[1]\" :param-use-form-icon=\"true\"></ae-design>\n\n  <template v-for=\"(ancestor, index) of document.a\" v-if=\"index > 1\">\n    <template v-if=\"params.fullPath || index === 1 || index >= document.a.length - 2\">\n      <span v-if=\"index > 1\">\n        <ae-icon class=\"fal fa-angle-right\"></ae-icon>\n      </span>\n\n      <ae-design name=\"title\" :document-id=\"ancestor\" class=\"max-w-[180px]\"></ae-design>\n    </template>\n    <template v-else-if=\"!params.fullPath && index === 2\">\n      <span>\n        <ae-icon class=\"fal fa-angle-right\"></ae-icon>\n      </span>\n\n      <span>...</span>\n    </template>\n  </template>\n</div>\n\n<!-- <template v-for=\"(ancestor, index) in document.a\"\n          v-if=\"(index !== 0 || params.showRoot) && document.a_forms[index] !== 'account'\"\n>\n  <a @click.stop.prevent=\"$emit('selected', ancestor)\">\n    <span v-if=\"(index === 1 && params.showRoot) || index >= 2\">\n      <ae-icon class=\"fal fa-angle-right\"></ae-icon>\n    </span>\n    \n    <ae-design :document-id=\"ancestor\" name=\"title\"></ae-design>\n  </a>\n</template> -->\n","css":"._CSS {\n  display: flex;\n  align-items: flex-start;\n}\n\n._CSS > a {\n  display: flex;\n}","controller":"class Controller {\n  async init() {\n    locals.fullTitle = (await Aeppic.getAll(document.a.slice(1))).map(d => d.data.name || d.f.text).join(' /> ')\n  }\n} ","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-05-09T12:57:01+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2025-10-02T12:00:02+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1767870469088,"ct":1720684627136,"a_depth":3,"a":["apps","77ee8815-2c3a-4bb5-abd9-90541a545a24","1cc4b977-c14d-4587-af47-d6ac230f60b3"],"a_forms":["folder","application-form","design-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"meta":{"modified":{"at":"2026-01-08T11:07:49+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":"","impersonatedBy":"","from":"","client":"server"}}},{"a":["apps","77ee8815-2c3a-4bb5-abd9-90541a545a24","1cc4b977-c14d-4587-af47-d6ac230f60b3"],"a_depth":3,"a_forms":["folder","application-form","design-folder"],"created":{"at":"2022-07-04T11:49:13+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1720684627136,"data":{"aliases":[],"controller":"","css":"._CSS {\n  display: flex;\n  align-items: flex-start;\n}\n\n._CSS > a {\n  display: flex;\n}","description":"","name":"rd:path-button","packages":[],"template":"\n<div @mouseenter=\"document.a_depth > 1 && $refs.popup.show({ target: $refs.button.$el })\"\n      class=\"flex gap-2\"\n> \n  <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n            param-icon=\"far fa-folder-tree\"\n            @selected=\"$refs.popup.show({ target: $refs.button.$el })\"\n            :param-disabled=\"document.a_depth <= 1\"\n            param-title=\"Pfad anzeigen\"\n            ref=\"button\"\n\n  ></ae-layout> \n\n  <ae-popup ref=\"popup\" @mouseenter.native=\"$refs.popup.cancelClose()\" @xmouseleave.native=\"$refs.popup.close({ target: $refs.button.$el })\" :xclose-delay=\"1500\">\n    <div class=\"flex flex-col p-2\">\n      <template v-for=\"(ancestor, index) in document.a\"\n                v-if=\"index !== 0 && document.a_forms[index] !== 'account'\"\n      >\n        <a :href=\"'/' + ancestor\" @click.stop.prevent=\"$emit('selected', ancestor)\" class=\"ae-link flex gap-2\">\n          <ae-design :document-id=\"ancestor\" name=\"icon\"></ae-design>\n          <ae-design :document-id=\"ancestor\" name=\"title\"></ae-design>\n        </a>\n      </template>\n\n\n    </div>\n  </ae-popup> \n</div> \n\n \n "},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"d0a136ad-e0ed-4406-b302-92249698a1c0","inheritedLocks":[null,null,null,null],"locks":[],"meta":{},"modified":{"at":"2026-07-21T10:10:40+00:00","backedBy":"","by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":""},"p":"1cc4b977-c14d-4587-af47-d6ac230f60b3","previous":{"v":"528fd3b5129aed10"},"stamps":[],"t":1784628640539,"v":"a3635a05a25501fe"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","1b166603-d0f3-4f16-98c4-0534afbd6f5a"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2025-08-07T13:59:24+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1754575164107,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.ready = false\n\n    locals.maintenance = await Aeppic.get(data.maintenance)\n    locals.newRepair = null\n\n    locals.ready = true\n  }\n\n  createNewRepair() {\n    \n  }\n}","css":"","description":"","name":"rd:performance-review","packages":[],"template":"<div class=\"min-h-screen\">\n  <template v-if=\"locals.ready\">\n    <section class=\"flex flex-col gap-2\">\n      <div class=\"flex justify-end\">\n        <!-- PDF export -->\n        <ae-layout layout-id=\"20a6dabd-5c89-4fb9-a12b-5bc63a48e7ca\" :param-document=\"document\"></ae-layout>\n      </div>\n    </section>\n  \n    <div class=\"bg-white p-4\">\n      \n      <div class=\"grid grid-cols-1 md:grid-cols-2 gap-6\">\n\n        <section class=\"flex flex-col gap-3\">\n          <header class=\"flex items-center gap-2 text-neutral-600 font-medium text-sm uppercase tracking-wider\">\n            <ae-icon class=\"far fa-clock\"></ae-icon>\n            Zeitraum\n          </header>\n\n          <template>\n            <div v-if=\"!locals.maintenance.data.started\" class=\"text-neutral-500 italic\">\n              Wartung noch nicht gestartet.\n            </div>\n\n            <div v-else class=\"flex flex-col gap-2\">\n              <div>\n                <span class=\"text-xs text-neutral-600 block\">Start</span>\n                <span class=\"text-neutral-900 font-semibold\">\n                  {{ Aeppic.DateTime.fromISO(locals.maintenance.data.started).toLocaleString(Aeppic.DateTime.DATETIME_SHORT) }}\n                </span>\n              </div>\n\n              <div v-if=\"locals.maintenance.data.ended\">\n                <span class=\"text-xs text-neutral-600 block\">Ende</span>\n                <span class=\"text-neutral-900 font-semibold\">\n                  {{ Aeppic.DateTime.fromISO(locals.maintenance.data.ended).toLocaleString(Aeppic.DateTime.DATETIME_SHORT) }}\n                </span>\n              </div>\n\n              <div v-if=\"locals.maintenance.data.duration\" class=\"mt-1\">\n                <span class=\"inline-flex items-center gap-1 px-2 py-1 bg-neutral-100 rounded text-neutral-900 text-sm font-medium\">\n                  <ae-icon class=\"far fa-hourglass-half text-neutral-600 text-xs\"></ae-icon>\n                  <!-- FIXME: toHuman not available -->\n                  {{ Aeppic.DateTimeDuration.fromObject(locals.maintenance.data.duration).hours }}h \n                  {{ Aeppic.DateTimeDuration.fromObject(locals.maintenance.data.duration).minutes }}m\n                </span>\n              </div>\n            </div>\n          </template>\n        </section>\n\n        <section class=\"flex flex-col gap-3 border-t pt-4 border-neutral-100 md:border-t-0 md:pt-0 md:border-l md:pl-6\">\n          <header class=\"flex items-center gap-2 text-neutral-600 font-medium text-sm uppercase tracking-wider\">\n            <ae-icon class=\"far fa-map-marker-alt\"></ae-icon>\n            Ort & Objekt\n          </header>\n\n          <div class=\"flex flex-col gap-3\">\n            <div class=\"flex flex-col\">\n              <span class=\"text-xs text-neutral-600 mb-0.5\">Objekt</span>\n              <div v-if=\"data.object.id\" class=\"text-neutral-900 font-semibold\">\n                <ae-design name=\"title\" :document=\"data.object\" :param-no-commands=\"true\"></ae-design>\n              </div>\n              <div v-else class=\"text-red-600 text-sm flex items-center gap-1\">\n                <ae-icon class=\"far fa-exclamation-circle\"></ae-icon> Nicht verknüpft\n              </div>\n            </div>\n\n            <div class=\"flex flex-col\">\n              <span class=\"text-xs text-neutral-600 mb-0.5\">Standort</span>\n              <div v-if=\"data.location.id\" class=\"text-neutral-900\">\n                <ae-design name=\"title\" :document=\"data.location\" :param-no-commands=\"true\"></ae-design>\n              </div>\n              <div v-else class=\"text-red-600 text-sm flex items-center gap-1\">\n                <ae-icon class=\"far fa-exclamation-circle\"></ae-icon> Nicht verknüpft\n              </div>\n            </div>\n          </div>\n        </section>\n\n      </div>\n\n      <div class=\"h-px bg-neutral-100 my-4\"></div>\n\n      <section class=\"flex flex-col gap-3\">\n        <header class=\"flex items-center gap-2 text-neutral-600 font-medium text-sm uppercase tracking-wider\">\n          <ae-icon class=\"far fa-users\"></ae-icon>\n          Zuständig\n        </header>\n\n        <template>\n          <div v-if=\"data.team && data.team.length > 0\">\n            <ae-design\n              v-for=\"team of data.team\"\n              :key=\"team.id\"\n              name=\"rd:maintenance-card\"\n              :document=\"team\"\n              :param-no-commands=\"true\"\n              class=\"text-neutral-900\"\n            ></ae-design>\n          </div>\n          <div v-else class=\"text-neutral-500 italic text-sm\">\n            Kein Team zugewiesen\n          </div>\n        </template>\n      </section>\n\n    </div>\n\n\n    <section class=\"mt-6 bg-white p-2 border rounded-lg flex flex-col gap-2\">\n      <div class=\"flex gap-2\" v-if=\"data.status !== 'ACKNOWLEDGED'\">\n        <ae-icon class=\"fa fa-info-circle\"></ae-icon>\n        <div>\n          Die Kenntnisnahme einer Wartung ändert den Status auf <span class=\"font-bold\">Zur Kenntnisnahme</span> und\n          entfernt diese Wartung aus der Wartungsansicht des Teams.\n        </div>\n      </div>\n\n      <div v-if=\"data.acknowledgedAt\" class=\"flex gap-2 items-center\">\n        <ae-design name=\"avatar\" :document-id=\"data.acknowledgedBy.id\" class=\"text-lg\"></ae-design>\n        <span class=\"\"\n          >Wartung zur Kenntnis genommen am {{\n          Aeppic.DateTime.fromISO(data.acknowledgedAt).toLocaleString(Aeppic.DateTime.DATETIME_SHORT) }}</span\n        >\n      </div>\n    </section>\n\n    <section class=\"mt-6 bg-white p-2 border rounded-lg\">\n      <ae-design name=\"rd:review\" :document=\"locals.maintenance\"></ae-design>\n    </section>\n\n    <section class=\"mt-6 bg-white p-2 border rounded-lg\">\n      <ae-design name=\"rd:defects-list\" :document=\"document\" @create-new-repair=\"controller.createNewRepair()\"></ae-design>\n    </section>\n\n    <section class=\"mt-6 bg-white p-2 border rounded-lg\">\n      <ae-design name=\"rd:create-defects WIP\" :document=\"document\"></ae-design>\n    </section>\n  </template>\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"5b4f311c-08a8-4625-929c-6c7e9c7dfe3f","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-01-16T07:58:00+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"p":"1b166603-d0f3-4f16-98c4-0534afbd6f5a","previous":{"v":"f0206698869bb750"},"stamps":[],"t":1768550280567,"v":"8822f688700bea42"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","46a28dfa-7518-4867-9519-a5f4cd9b9967"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"5b4f311c-08a8-4625-929c-6c7e9c7dfe3f","text":"rd:performance-review","v":"403d8833e8f36109"},"created":{"at":"2025-10-21T11:32:13+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1761046333586,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:performance-review","packages":[],"template":"<div class=\"min-h-screen\">\n    <section class=\"flex flex-col gap-2\">\n      <div class=\"flex justify-end\">\n        <!-- PDF export -->\n        <!-- <ae-layout layout-id=\"aac11114-46bb-4f29-a280-51d889a8aaca\" :param-document=\"document\"></ae-layout> -->\n      </div>\n      <div v-if=\"document.data.started\" class=\"bg-white p-2 border rounded-lg\">\n        Beginn der Mängelmeldung: {{\n        Aeppic.DateTime.fromISO(document.data.started).toLocaleString(Aeppic.DateTime.DATETIME_SHORT) }}\n        <div v-if=\"document.data.ended\">\n          Ende der Mängelmeldung: {{\n          Aeppic.DateTime.fromISO(document.data.ended).toLocaleString(Aeppic.DateTime.DATETIME_SHORT) }}\n        </div>\n      </div>\n      <div v-else>Mängelmeldung noch nicht gestartet.</div>\n\n        <ae-design v-for=\"team of data.team\" name=\"rd:maintenance-card\" :document=\"team\" :param-no-commands=\"true\"></ae-design>\n        <ae-design name=\"rd:maintenance-card\" :document=\"data.object\" :param-no-commands=\"true\"></ae-design>\n    </section>\n\n    <section class=\"mt-6 bg-white p-2 border rounded-lg flex flex-col gap-2\">\n      <div class=\"flex gap-2\" v-if=\"data.status !== 4\">\n        <ae-icon class=\"fa fa-info-circle\"></ae-icon>\n        <div>\n          Die Kenntnisnahme einer Wartung ändert den Status auf <span class=\"font-bold\">Zur Kenntnisnahme</span> und\n          entfernt diese Wartung aus der Wartungsansicht des Teams.\n        </div>\n      </div>\n\n      <div v-if=\"data.acknowledgedAt\" class=\"flex gap-2 items-center\">\n        <ae-design name=\"avatar\" :document-id=\"data.acknowledgedBy.id\" class=\"text-lg\"></ae-design>\n        <span class=\"\"\n          >Wartung zur Kenntnis genommen am {{\n          Aeppic.DateTime.fromISO(data.acknowledgedAt).toLocaleString(Aeppic.DateTime.DATETIME_SHORT) }}</span\n        >\n      </div>\n    </section>\n\n    <section class=\"mt-6 bg-white p-2 border rounded-lg\">\n      <ae-design name=\"rd:review\" :document=\"document\" :params=\"{ showDetails: true }\"></ae-design>\n    </section>\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"d8839567-791e-4ad7-88cf-27ac7d852cd4","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-11-13T14:07:45+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"5b4f311c-08a8-4625-929c-6c7e9c7dfe3f","text":"rd:performance-review","v":"403d8833e8f36109"},"p":"46a28dfa-7518-4867-9519-a5f4cd9b9967","previous":{"v":"3504d1b7b4804590"},"stamps":[],"t":1763042865016,"v":"b105c3047d4969c7"},{"id":"ccc27ea0-bac4-49ad-8a41-dc96ec6b2264","v":"60fb0b0dbef76019","previous":{"v":"a43c63a6a3dc0461"},"p":"24842415-3690-4cad-82b9-b959ae7621c6","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"rd:personal","template":"<div class=\"flex flex-col gap-4 max-w-[800px]\" v-if=\"locals.account\">\n  <!-- <button class=\"ae-button a\" @click.stop=\"locals.edit = !locals.edit\">\n    edit\n  </button>  -->\n  <section class=\"text-lg font-bold\">\n    Profil \n  </section>\n<!-- \n  <section class=\"flex justify-between items-center\">\n    <div>Profilbild</div>\n    <ae-design v-if=\"!locals.edit\" name=\"avatar--resizes-with-font\" :document=\"locals.profile\" class=\"text-8xl\"></ae-design>\n    <ae-control v-else class=\"\" :document=\"locals.profile\" field-name=\"foto\" :readonly=\"!locals.edit\"></ae-control>\n  </section>\n\n  <section class=\"flex justify-between\">\n    <div>Name</div>\n    \n    <div class=\"flex flex-col justify-end\">\n      <ae-control class=\"\" :document=\"locals.profile\" field-name=\"vorname\" :readonly=\"!locals.edit\"></ae-control> \n      <ae-control class=\"\" :document=\"locals.profile\" field-name=\"nachname\" :readonly=\"!locals.edit\"></ae-control> \n    </div>\n  </section> -->\n\n\n  <ae-form  layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\"\n              :document=\"Aeppic.ProfilePage\"     \n              :auto-save=\"true\"  \n  ></ae-form> \n  \n  <div class=\"mt-10 flex justify-between items-center gap-4\">\n    <section class=\"text-lg font-bold\"> \n      Login \n    </section>\n    <ae-layout layout-id=\"262e95e6-f1f8-477c-834b-89d533027e1e\"\n              :param-document=\"locals.account\"\n              :param-commands=\"['3191894b-c997-45fa-b4bc-2105f54f23a2']\"\n    ></ae-layout> \n  </div>\n\n  <section class=\"flex justify-between\">\n      <div class=\"_CSS-row__cell\">\n        Anmeldename\n      </div>\n      <div class=\"_CSS-row__cell\">\n        {{ locals.account.data.name }}\n      </div>\n  </section>\n\n  <section class=\"flex justify-between\">\n    <div class=\"_CSS-row__cell\">\n      Benutzer-ID\n    </div>\n    <div class=\"_CSS-row__cell\">\n      {{ locals.account.id }}\n    </div>\n  </section>\n\n  <section class=\"flex justify-between\">\n    <div class=\"_CSS-row__cell\">\n      E-Mail\n    </div>\n    <div class=\"_CSS-row__cell\">\n      {{ locals.account.data.email || '-' }}\n    </div>\n  </section>\n\n  <section class=\"flex justify-between\">\n    <div class=\"_CSS-row__cell\">\n      Telefonnummer\n    </div>\n    <div class=\"_CSS-row__cell\">\n      {{ locals.account.data.mobilePhone || '-' }}\n    </div>\n  </section>\n\n  <section>\n  </section>\n</div>","css":"","controller":"class Controller {\n  async init() {\n    locals.edit = false\n    locals.account = await Aeppic.Account\n\n    Aeppic.watch(Aeppic.Account, (account) => {\n      locals.account = account\n    })\n  }\n}\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-07-19T13:28:56+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-08-22T13:51:07+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1692712267567,"ct":1658237336557,"a_depth":4,"a":["apps","a4f3e35e-f945-4c8b-a7a4-81e987585974","13525440-3a25-44be-851b-1bcd803bff80","24842415-3690-4cad-82b9-b959ae7621c6"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"1ae8a489-298a-4c4d-bc74-aebb8ad4a3e5","v":"586b385520550ec0","previous":{"v":"d1b14b6eb0c6c39c","p":"fallback-designs","a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"]},"p":"1cc4b977-c14d-4587-af47-d6ac230f60b3","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:pinned","template":"<div class=\"flex items-center gap-2 p-1 xtext-sm rounded-lg\" @click.stop=\"$emit('selected', document)\">\n  <!-- TODO: pinsDocument is now managed in bizpinAppLayout. Need to pass that in -->\n  <!-- <ae-layout layout-id=\"e328702a-6cac-44eb-801b-e75fbd946a09\"\n            :param-document=\"document\"\n  ></ae-layout> -->\n  <ae-design name=\"rd:icon\" :document=\"document\"></ae-design>\n  <ae-design name=\"title\" :document=\"document\"></ae-design>\n</div>   ","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-05-17T13:41:16+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2025-10-31T12:49:39+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1767870469088,"ct":1720684627136,"a_depth":3,"a":["apps","77ee8815-2c3a-4bb5-abd9-90541a545a24","1cc4b977-c14d-4587-af47-d6ac230f60b3"],"a_forms":["folder","application-form","design-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"meta":{"modified":{"at":"2026-01-08T11:07:49+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":"","impersonatedBy":"","from":"","client":"server"}}},{"a":["apps","599db2de-4e07-4722-98bd-7f42d498b352","79718664-ed22-4b52-9c10-037881df3578","7be5f2c5-206b-4ab6-9d4d-c4834baf8e32"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2024-07-09T11:14:28+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1720523668940,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:pins","packages":[],"template":"<div class=\"flex flex-col\">\n  <label class=\"font-bold\">\n    Meine Pins\n  </label>\n\n  <ae-layout layout-id=\"12ef5790-dfe1-478c-ab9d-c46496936f8f\"\n              @selected=\"Aeppic.drillInto($event, arguments[1])\"\n  ></ae-layout>\n</div>"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"e2c5a2f9-d721-4816-ae3b-8c89942497a6","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2024-07-15T10:26:39+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"7be5f2c5-206b-4ab6-9d4d-c4834baf8e32","previous":{"v":"19f067afe619e6c4"},"stamps":[],"t":1721039199220,"v":"805bad6c4e486c59"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","33e3b54d-6b4b-4aa3-8f70-2b834b27bf66"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"c6fb125e-a8bd-40b8-8e43-478bb6bc03b7","text":"rd:facility","v":"635f64f4237847cf"},"created":{"at":"2026-01-15T15:03:43+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"ct":1768489423002,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Wartungsduerchfuerhung: '1b166603-d0f3-4f16-98c4-0534afbd6f5a',\n      Arbeit: '8c113cd0-af90-42fa-aa05-f67809d0a9a5',\n      Reparatur: '46a28dfa-7518-4867-9519-a5f4cd9b9967',\n      Planung: '5011479f-3ef7-4c66-810b-3bb65f992712',\n    }\n\n    locals.view = {\n      startWithSection: 2\n    }\n  }\n}","css":"","description":"","name":"rd:plannings","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<div class=\"h-full w-full flex flex-col gap-2\">\n  <ae-form\n    :document=\"document\"\n    :auto-save=\"true\"\n    :auto-save-after=\"1000\"\n    layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\"\n    class=\"w-full\"\n    :readonly=\"params.readonly\"\n    :view=\"locals.view\"\n  ></ae-form>\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"61471788-f819-4480-ab5c-fdee1f2a64f8","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-01-15T15:04:33+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"c6fb125e-a8bd-40b8-8e43-478bb6bc03b7","text":"rd:facility","v":"635f64f4237847cf"},"p":"33e3b54d-6b4b-4aa3-8f70-2b834b27bf66","previous":{"v":"initial"},"stamps":[],"t":1768489473639,"v":"c943b97bcc9a01a6"},{"a":["apps","b3191869-9bcf-440c-92be-7b013944b450","3555bef3-1cf0-4f7d-b3ce-5346fb8cbff4","0aedd37c-75c9-4724-ab7e-a3de888870b5"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2021-11-09T16:06:43+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","client":"server","from":""},"ct":1636474003207,"data":{"aliases":[],"controller":"init() {\r\n  locals.daysOfWeek = toDaysOfWeek(document.data.daysOfWeek)\r\n\r\n  function toDaysOfWeek(daysOfWeek) {\r\n    const copy = [...daysOfWeek].sort()\r\n    return copy.map(d => toDayOfWeek(d)).join(', ')\r\n  }\r\n\r\n  function toDayOfWeek(dayOfWeek) {\r\n    return ['Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa', 'So'][dayOfWeek - 1]\r\n  }\r\n}","css":"._CSS {\r\n  padding: 8px;\r\n}\r\n\r\n._CSS h4,h5 {\r\n  padding: 0;\r\n  margin:0;\r\n}\r\n\r\n._CSS ._CSS-tag {\r\n  padding: 4px;\r\n  border-radius: 4px;\r\n  background: rgba(0,255,0.0,0.5);\r\n  border: 1px solid darkgoldenrod;\r\n}","description":"","name":"rd:popup-info","packages":[],"template":"<div style=\"max-width:500px\">\r\n    <h4 style=\"position:relative;display:flex;align-items:center\">\r\n      <span style=\"flex:1\">{{document.data.name}}</span>\r\n      <small v-if=\"locals.daysOfWeek\" >\r\n        <ae-icon class=\"fa fa-repeat\"></ae-icon>\r\n        <span>{{locals.daysOfWeek}}</span>\r\n      </small>\r\n    </h4>\r\n    <h5 v-if=\"document.data.tierarzt.id\" style=\"display:flex;opacity:0.8;padding-bottom:8px;\">\r\n      <ae-design name=\"icon\" :document=\"document.data.tierarzt\"></ae-design>\r\n      <ae-design name=\"title\" :document=\"document.data.tierarzt\"></ae-design>\r\n    </h5>\r\n    \r\n    <h5>\r\n        <span v-if=\"!document.data.allday\">\r\n            {{document.data.start && DateTime.fromISO(document.data.start).toLocaleString(DateTime.DATETIME_MED)}}\r\n            <span v-if=\"document.data.end\">- {{DateTime.fromISO(document.data.end).toLocaleString(DateTime.DATETIME_MED)}}</span>\r\n        </span>\r\n        <span v-if=\"document.data.allday\">\r\n            {{document.data.start && DateTime.fromISO(document.data.start).toLocaleString(DateTime.DATETIME_MED)}} \r\n            <span v-if=\"document.data.end\">- {{DateTime.fromISO(document.data.end).toLocaleString(DateTime.DATE_MED)}}</span>\r\n        </span>\r\n    </h5>\r\n    <p>{{document.data.description}}</p>\r\n    <p v-if=\"document.data.aufnahme\"><span class=\"_CSS-tag\">{{document.data.aufnahme}}</span></p>\r\n</div>"},"f":{"id":"design-form","text":"Design","v":"0a6757fa85895d29"},"id":"5a95e99b-fc98-4eae-b43e-cdbbcd5e97e9","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-05-12T12:02:15+00:00","backedBy":"","by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":""},"p":"0aedd37c-75c9-4724-ab7e-a3de888870b5","previous":{"v":"6b52ffa2fd98e43b"},"stamps":[],"t":1778587335999,"v":"8374d0c027bb0c89"},{"a":["apps","49babc91-9123-4d92-b850-ce4d10f0e1b4","b6b5ad5b-124f-4b1c-8f55-74294451a2ba","941dad3f-07ee-401d-a7f5-244eba256937"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2020-05-08T08:51:41+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":""},"ct":1588927901378,"data":{"aliases":[],"controller":"get isMoreThanOneDay() {\n  if (!data.start || !data.end) {\n    return false\n  }\n\n  const startDateTime = Aeppic.DateTime.fromISO(data.start)\n  const endDateTime = Aeppic.DateTime.fromISO(data.end)\n\n  return endDateTime.diff(startDateTime, 'days').toObject().days >=1\n}","css":"._CSS-info {\n  padding: var(--ae-size-1);\n}\n\n._CSS-line {\n  display: flex;\n}\n\n._CSS-line ~ ._CSS-line {\n  margin: var(--ae-size-2) 0;\n}\n\n._CSS-line__icon {\n  flex: 1;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n}\n\n._CSS-line__content {\n  flex: 7;\n}","description":"","name":"rd:popup-info","packages":[],"template":"<div class=\"_CSS-info\">\n  <div class=\"_CSS-line\">\n    <div class=\"_CSS-line__icon\" title=\"Kalender\">\n      <ae-icon class=\"fa fa-calendar\"></ae-icon>\n    </div>\n    <div class=\"_CSS-line__content\">\n      <ae-design name=\"title\" :document-id=\"document.p\"></ae-design>\n    </div>\n  </div>\n  <div class=\"_CSS-line\">\n    <div class=\"_CSS-line__icon\" title=\"Termin\">\n      <ae-icon class=\"fa fa-circle\"></ae-icon>\n    </div>\n    <div class=\"_CSS-line__content _CSS-headline\">\n      {{ data.name }}\n\n      <div v-if=\"data.allday\">\n        <template v-if=\"data.start\">\n          {{ Aeppic.DateTime.fromISO(data.start).toLocaleString(Aeppic.DateTime.DATE_MED) }}\n        </template>\n        -\n        <template v-if=\"data.end\">\n          {{ Aeppic.DateTime.fromISO(data.end).toLocaleString(Aeppic.DateTime.DATE_MED) }}\n        </template>\n      </div>\n\n      <div v-else>\n        <template v-if=\"controller.isMoreThanOneDay\">\n          <template v-if=\"data.start\">\n            {{ Aeppic.DateTime.fromISO(data.start).toLocaleString(Aeppic.DateTime.DATETIME_MED) }}\n          </template>\n          -\n          <template v-if=\"data.end\">\n            {{ Aeppic.DateTime.fromISO(data.end).toLocaleString(Aeppic.DateTime.DATETIME_MED) }}\n          </template>\n        </template>\n        <template v-else>\n          <template v-if=\"data.start\">\n            {{ Aeppic.DateTime.fromISO(data.start).toLocaleString(Aeppic.DateTime.TIME_24_SIMPLE) }}\n          </template>\n          -\n          <template v-if=\"data.end\">\n            {{ Aeppic.DateTime.fromISO(data.end).toLocaleString(Aeppic.DateTime.TIME_24_SIMPLE) }}\n          </template>\n        </template>\n      </div>\n    </div>\n  </div>\n  <div class=\"_CSS-line\"  v-if=\"data.description\">\n    <div class=\"_CSS-line__icon\" title=\"Beschreibung\">\n      <ae-icon class=\"fa fa-text\"></ae-icon>\n    </div>\n    <div class=\"_CSS-line__content _CSS-description\">\n      {{ data.description }}\n    </div>\n  </div>\n\n  <div class=\"_CSS-line\"  v-if=\"data.attendees.length\">\n    <div class=\"_CSS-line__icon\" title=\"Teilnehmer\">\n      <ae-icon class=\"fa fa-users\"></ae-icon>\n    </div>\n    <div class=\"_CSS-line__content _CSS-attendees\">\n      <ae-design name=\"avatar--tiny\" v-for=\"attendee of data.attendees\" :document=\"attendee\"></ae-design>\n    </div>\n  </div>\n</div>\n\n"},"f":{"id":"design-form","text":"Design","v":"24435d748c76f819"},"id":"5da148da-d3fb-403f-b666-68a83b95866a","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-05-12T12:02:26+00:00","backedBy":"","by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":""},"p":"941dad3f-07ee-401d-a7f5-244eba256937","previous":{"v":"7df44be53cc26283"},"stamps":[],"t":1778587346529,"v":"2915aa11bb8903a4"},{"a":["apps","94a64d89-d204-4918-b147-d717914fb03e","f254ce25-42f1-4333-8ee7-23554bf746c1","88b1f60e-71f6-46f5-94ea-3d7bbe972950"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2020-03-25T14:11:06+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":""},"ct":1585145466671,"data":{"controller":"","css":"","description":"","name":"rd:popup-info","packages":[],"template":"<ae-design name=\"search-card\" :document=\"document\" :param-hide-overdue=\"true\" :param-readonly=\"true\" @selected=\"$emit('selected', $event)\"></ae-design>"},"f":{"id":"design-form","text":"Design","v":"49954170df6a253b"},"id":"8ee263c9-b350-465f-a468-1ba39b4850ec","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-05-12T12:02:00+00:00","backedBy":"","by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":""},"p":"88b1f60e-71f6-46f5-94ea-3d7bbe972950","previous":{"v":"fd3b5a66a9153690"},"stamps":[],"t":1778587320360,"v":"4977d5c0be2867a0"},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","680a53ff-2457-41b4-aa4e-d832af3bce52","7bcd74d7-106e-4076-8d36-cdff37d162b9"],"a_depth":5,"a_forms":["folder","application-form","form-folder","folder","form"],"created":{"at":"2026-05-12T12:51:15+00:00","backedBy":"","by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":""},"ct":1778590275321,"data":{"aliases":[],"controller":"\n\nclass Controller {\n  /**\n   * Format an ISO date for display. Returns '' when the input is missing\n   * or unparseable so the template can rely on truthiness checks.\n   */\n  formatDate(iso) {\n    if (!iso) return ''\n    try {\n      const dt = DateTime.fromISO(iso)\n      if (!dt.isValid) return ''\n      return dt.toLocaleString(DateTime.DATE_MED)\n    } catch (e) {\n      return ''\n    }\n  }\n\n  /**\n   * Map a category enum key (e.g. 'ABLAUF_PILOTIERUNG') to its display label.\n   * Returns '' for the sentinel 'NONE' / empty values so the meta line hides.\n   * Unknown keys fall back to the raw value rather than vanishing silently.\n   */\n  categoryLabel(category) {\n    const CATEGORY_LABELS = {\n      ABLAUF_PILOTIERUNG: 'Ablauf Pilotierung',\n      AUFLAGENERFUELLUNG: 'Auflagenerfüllung',\n      WIEDERVORSTELLUNG: 'Wiedervorstellung',\n      ANDERES: 'Anderes'\n    }\n\n    if (!category || category === 'NONE') return ''\n    return CATEGORY_LABELS[category] || category\n  }\n}","css":"","description":"","name":"rd:popup-info","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<div class=\"@container flex flex-col gap-3 p-2 text-sm text-gray-800\">\n  <!-- Parent / context title (e.g. the dossier or project this document belongs to) -->\n  <div class=\"flex gap-3 items-start\" v-if=\"document.p\">\n    <div class=\"w-5 flex-shrink-0 text-gray-500 text-center pt-0.5\" title=\"Kontext\">\n      <ae-icon class=\"fa fa-folder\"></ae-icon>\n    </div>\n    <div class=\"flex-1 min-w-0\">\n      <ae-design name=\"title\" :document-id=\"document.p\"></ae-design>\n    </div>\n  </div>\n\n  <!-- Title line: status icon + name + category -->\n  <div class=\"flex gap-3 items-start\">\n    <div class=\"w-5 flex-shrink-0 text-gray-500 text-center pt-0.5\" :title=\"data.completed ? 'Erledigt' : 'Offen'\">\n      <ae-icon :class=\"data.completed ? 'fa fa-check-circle' : 'fa fa-circle'\"></ae-icon>\n    </div>\n    <div\n      class=\"flex-1 min-w-0 font-semibold text-base leading-tight\"\n      :class=\"{ 'line-through text-gray-500': data.completed }\"\n    >\n      <div data-test=\"popup-info-name\">{{ data.name }}</div>\n      <div\n        v-if=\"controller.categoryLabel(data.category)\"\n        class=\"text-xs text-gray-500 font-normal mt-0.5\"\n        data-test=\"popup-info-category\"\n      >\n        {{ controller.categoryLabel(data.category) }}\n      </div>\n    </div>\n  </div>\n\n  <!-- Expiry date -->\n  <div class=\"flex gap-3 items-start\" v-if=\"data.expiryDate\">\n    <div class=\"w-5 flex-shrink-0 text-gray-500 text-center pt-0.5\" title=\"Ablaufdatum\">\n      <ae-icon class=\"fa fa-calendar\"></ae-icon>\n    </div>\n    <div class=\"flex-1 min-w-0\" data-test=\"popup-info-expiry\">\n      {{ controller.formatDate(data.expiryDate) }}\n    </div>\n  </div>\n\n  <!-- Responsible person(s) -->\n  <div class=\"flex gap-3 items-start\" v-if=\"data.responsible && data.responsible.length\">\n    <div class=\"w-5 flex-shrink-0 text-gray-500 text-center pt-0.5\" title=\"Verantwortliche Person\">\n      <ae-icon class=\"fa fa-user\"></ae-icon>\n    </div>\n    <div class=\"flex-1 min-w-0 flex flex-wrap gap-1.5 items-center\">\n      <ae-design\n        name=\"avatar--tiny\"\n        v-for=\"person of data.responsible\"\n        :key=\"person.id\"\n        :document=\"person\"\n      ></ae-design>\n    </div>\n  </div>\n\n  <!-- Responsible BITM -->\n  <div class=\"flex gap-3 items-start\" v-if=\"data.responsibleBitm && data.responsibleBitm.length\">\n    <div class=\"w-5 flex-shrink-0 text-gray-500 text-center pt-0.5\" title=\"Zuständiger BITM\">\n      <ae-icon class=\"fa fa-user-tie\"></ae-icon>\n    </div>\n    <div class=\"flex-1 min-w-0 flex flex-wrap gap-1.5 items-center\">\n      <ae-design\n        name=\"avatar--tiny\"\n        v-for=\"person of data.responsibleBitm\"\n        :key=\"person.id\"\n        :document=\"person\"\n      ></ae-design>\n    </div>\n  </div>\n\n  <!-- Description / Beschlusstext -->\n  <div class=\"flex gap-3 items-start\" v-if=\"data.description\">\n    <div class=\"w-5 flex-shrink-0 text-gray-500 text-center pt-0.5\" title=\"Beschreibung\">\n      <ae-icon class=\"fa fa-align-left\"></ae-icon>\n    </div>\n    <div class=\"flex-1 min-w-0 whitespace-pre-wrap text-gray-700\" data-test=\"popup-info-description\">{{ data.description.slice(0,200) }}...\n    </div>\n  </div>\n\n  <!-- Result comment -->\n  <div class=\"flex gap-3 items-start\" v-if=\"data.resultComment\">\n    <div class=\"w-5 flex-shrink-0 text-gray-500 text-center pt-0.5\" title=\"Ergebniskommentar\">\n      <ae-icon class=\"fa fa-comment\"></ae-icon>\n    </div> \n    <div class=\"flex-1 min-w-0 whitespace-pre-wrap text-gray-700\" data-test=\"popup-info-result\">{{ data.resultComment.slice(0,200) }}...\n    </div>\n  </div>\n</div>"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"e380d0f0-e326-45bf-b7a1-4db82e1de6dc","inheritedLocks":[null,null,null,null,null,null],"locks":[],"modified":{"at":"2026-05-12T13:26:21+00:00","backedBy":"","by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":""},"p":"7bcd74d7-106e-4076-8d36-cdff37d162b9","previous":{"v":"324505c8e2148444"},"stamps":[],"t":1778592381329,"v":"64c0536fbe246ed1"},{"a":["apps","d8c9a42b-e289-4c9a-97ea-801de8ab480a","db8e20d1-732c-4c6b-9cfc-b323f83fa378","e6b7aced-aaa0-49a4-b573-cfa307595402"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2020-08-10T12:13:08+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","client":"server","from":""},"ct":1642428571518,"data":{"aliases":[],"controller":"get isMoreThanOneDay() {\n  if (!data.start || !data.end) {\n    return false\n  }\n\n  const startDateTime = Aeppic.DateTime.fromISO(data.start)\n  const endDateTime = Aeppic.DateTime.fromISO(data.end)\n\n  return endDateTime.diff(startDateTime, 'days').toObject().days >=1\n}","css":"._CSS-info {\n  padding: var(--ae-size-1);\n}\n\n._CSS-line {\n  display: flex;\n}\n\n._CSS-line ~ ._CSS-line {\n  margin: var(--ae-size-2) 0;\n}\n\n._CSS-line__icon {\n  flex: 1;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n}\n\n._CSS-line__content {\n  flex: 7;\n}\n\n._CSS-attendees {\n  display: flex;\n  flex-wrap: wrap;\n}","description":"","name":"rd:popup-info","packages":[],"template":"<div class=\"_CSS-info\">\n  <div class=\"_CSS-line\">\n    <div class=\"_CSS-line__icon\">\n      <ae-icon class=\"fa fa-circle\"></ae-icon>\n    </div>\n    <div class=\"_CSS-line__content _CSS-headline\">\n      {{ data.name }}\n\n      <div v-if=\"data.allday\">\n        <template v-if=\"data.start\">\n          {{ Aeppic.DateTime.fromISO(data.start).toLocaleString(Aeppic.DateTime.DATE_MED) }}\n        </template>\n        -\n        <template v-if=\"data.end\">\n          {{ Aeppic.DateTime.fromISO(data.end).toLocaleString(Aeppic.DateTime.DATE_MED) }}\n        </template>\n      </div>\n\n      <div v-else>\n        <template v-if=\"controller.isMoreThanOneDay\">\n          <template v-if=\"data.start\">\n            {{ Aeppic.DateTime.fromISO(data.start).toLocaleString(Aeppic.DateTime.DATETIME_MED) }}\n          </template>\n          -\n          <template v-if=\"data.end\">\n            {{ Aeppic.DateTime.fromISO(data.end).toLocaleString(Aeppic.DateTime.DATETIME_MED) }}\n          </template>\n        </template>\n        <template v-else>\n          <template v-if=\"data.start\">\n            {{ Aeppic.DateTime.fromISO(data.start).toLocaleString(Aeppic.DateTime.TIME_24_SIMPLE) }}\n          </template>\n          -\n          <template v-if=\"data.end\">\n            {{ Aeppic.DateTime.fromISO(data.end).toLocaleString(Aeppic.DateTime.TIME_24_SIMPLE) }}\n          </template>\n        </template>\n      </div>\n    </div>\n  </div>\n  <div class=\"_CSS-line\" v-if=\"data.linkedDocument.id\">\n    <div class=\"_CSS-line__icon\">\n      <ae-icon class=\"fa fa-link\"></ae-icon>\n    </div>\n    <div class=\"_CSS-line__content _CSS-description\">\n      <ae-design name=\"title\" :document-id=\"data.linkedDocument.id\"></ae-design>\n      <ae-design name=\"path\" :document-id=\"data.linkedDocument.id\"></ae-design>\n    </div>\n  </div>\n  <div class=\"_CSS-line\"  v-if=\"data.description\">\n    <div class=\"_CSS-line__icon\">\n      <ae-icon class=\"fa fa-text\"></ae-icon>\n    </div>\n    <div class=\"_CSS-line__content _CSS-description\">\n      {{ data.description }}\n    </div>\n  </div>\n\n  <div class=\"_CSS-line\"  v-if=\"data.attendees.length\">\n    <div class=\"_CSS-line__icon\">\n      <ae-icon class=\"fa fa-users\"></ae-icon>\n    </div>\n    <div class=\"_CSS-line__content _CSS-attendees\">\n      <ae-design name=\"avatar--tiny\" v-for=\"attendee of data.attendees\" :document=\"attendee\"></ae-design>\n    </div>\n  </div>\n</div>\n\n"},"f":{"id":"design-form","text":"Design","v":"0a6757fa85895d29"},"id":"e4667bad-c28a-429b-844d-510b393f4a7c","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-05-12T11:58:17+00:00","backedBy":"","by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":""},"p":"e6b7aced-aaa0-49a4-b573-cfa307595402","previous":{"v":"092a6011e135afaa"},"stamps":[],"t":1778587097303,"v":"a12b528d8bc43328"},{"a":["apps","59edbdbc-2cab-426a-bb42-6e57c5158e4f","3be7e887-1bcd-4c3c-979f-b20a986c4c48","0deb4864-cbb6-420c-99ee-337c7444ab24"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"0721560b-ac41-4bed-ac5e-626cc1ea5cc1","text":"popup-info","v":"681bf1bd9b1b5e36"},"created":{"at":"2020-07-01T14:40:04+00:00","backedBy":null,"by":"870fac1f-b0d7-4925-b191-a43166960419","client":"server","from":"","impersonatedBy":null},"ct":1593614404555,"data":{"controller":"","css":"","description":"","name":"rd:popup-info","packages":[],"template":"<div class=\"_CSS-container\">\n  <ae-design name=\"ref-card\" :document=\"document\" :param-hide-overdue=\"true\"></ae-design>\n</div>"},"f":{"id":"design-form","text":"Design","v":"49954170df6a253b"},"id":"ebdfb713-9566-4551-8889-347489db43fb","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-05-12T12:01:32+00:00","backedBy":"","by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"0721560b-ac41-4bed-ac5e-626cc1ea5cc1","text":"popup-info","v":"681bf1bd9b1b5e36"},"p":"0deb4864-cbb6-420c-99ee-337c7444ab24","previous":{"v":"initial"},"stamps":[],"t":1778587292802,"v":"d4fdf1d51db7d126"},{"a":["apps","59edbdbc-2cab-426a-bb42-6e57c5158e4f","3be7e887-1bcd-4c3c-979f-b20a986c4c48","0b6a2b21-9425-466e-9e8d-57ec39cc95e1"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2022-05-10T14:59:45+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1758283883554,"data":{"aliases":[],"controller":"class Controller {\n  init() {\n    locals.view = { \n      only: {\n        fields: ['name', 'verantwortlich', 'beschreibung', 'bisStart', 'anhaenge', 'pins'] \n      }\n    }\n  }\n}   ","css":"","description":"","name":"rd:project","packages":[],"parameters":["windowWidth","highlightComment"],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":["number","boolean"],"template":"<div class=\"flex h-full\" ref=\"container\">\n    <div class=\"flex-1 h-full overflow-auto basis-2/3 flex flex-col\">\n      <!-- <div class=\"flex gap-2\">\n        <div v-if=\"data.dmsFolder.id\">\n            <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n                    param-icon=\"far fa-tasks\"\n                    param-text=\"Projekt\"\n                    @selected=\"Aeppic.drillInto(data.dmsFolder.id)\"\n                    param-title=\"Zum Projekt navigieren\"\n          ></ae-layout>\n        </div>\n        <div v-if=\"data.client.id\">\n          <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n                    param-icon=\"far fa-user-tag\"\n                    param-text=\"Kunde\"\n                    @selected=\"Aeppic.drillInto(data.client.id)\"\n                    param-title=\"Zum Kunden navigieren\"\n          ></ae-layout>\n        </div>\n      </div> -->\n\n      <!-- <div v-if=\"data.client.id\"\n            class=\"w-full p-4\">\n        <div class=\"text-xl mb-2\" title=\"Dies ist ein Kunden-Projekt\">\n          <ae-icon class=\"fa fa-user-tag\"></ae-icon>\n        </div>\n        <ae-design class=\"flex-1\" name=\"board-card\" :document-id=\"data.client.id\"></ae-design>\n      </div> -->\n\n      <ae-form  :document=\"document\"\n                :auto-save=\"true\"\n                :auto-save-after=\"1000\"\n                layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\"\n                :view=\"locals.view\"\n      ></ae-form>\n    </div> \n    \n  <ae-layout  v-if=\"params.windowWidth >= 1280\"\n              layout-id=\"0e6b3b93-8e22-4616-9389-a00a6a1a4f59\"\n              :param-document=\"document\"\n              :param-highlight-comment=\"params.highlightComment\"\n              :param-no-close=\"true\"\n              class=\"h-full w-full basis-1/3 max-w-[500px] shadow\"\n  ></ae-layout>\n\n</div>\n<!-- \n<div class=\"p-2 flex flex-col\">\n  <div v-if=\"data.client.id\" class=\"flex gap-2 mb-4 items-center\">\n    <div class=\"text-xl mb-2\" title=\"Dies ist ein Kunden-Projekt\">\n      <ae-icon class=\"fa fa-user-tag\"></ae-icon>\n    </div>\n    <ae-design class=\"flex-1\" name=\"board-card\" :document-id=\"data.client.id\"></ae-design>\n  </div>\n\n\n\n  <ae-form :document=\"document\" layout-id=\"6c39f2cc-6059-42b2-8796-5c803899367c\" \n  :auto-save=\"true\" :view=\"locals.view\"\n  ></ae-form>\n</div> \n  -->\n\n "},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"b8a16c4c-c5d5-4b3d-afa4-19bc97ea9dd3","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-10-20T10:43:53+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"0b6a2b21-9425-466e-9e8d-57ec39cc95e1","previous":{"v":"56512015110518fa"},"stamps":[],"t":1760957033531,"v":"5168cd2246e4a1b6"},{"a":["apps","59edbdbc-2cab-426a-bb42-6e57c5158e4f","3be7e887-1bcd-4c3c-979f-b20a986c4c48","0b4fe19c-a550-46b7-ada0-6813a60e14bc"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2022-05-11T10:34:43+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1652265283317,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.ready = false\n    this.LOCATIONS = {\n      BoardLocation: document.id,\n      NewDocumentLocation: document.id\n    }\n    this.DOCUMENTS = {\n      NewBoardTemplate: '5e6c9dda-7b43-4657-872f-ccb2dbe71119',\n    }\n    this.FORMS = {\n      Projekt: '0b6a2b21-9425-466e-9e8d-57ec39cc95e1',\n      Board: '4ef9e83e-1aa5-4709-bbd5-24e98ea0148c',\n      OldBoard: '43420696-8097-4fc1-88e5-c69df9821470',\n    }\n    this.COMMANDS= {\n      NeuesProjektCommandId: '656b6f8c-5766-44cd-ad01-af059d4fe383',\n    }\n    locals.LOCATIONS = this.LOCATIONS\n    locals.DOCUMENTS = this.DOCUMENTS\n    locals.FORMS = this.FORMS\n    locals.COMMANDS = this.COMMANDS\n\n    locals.filter = ''\n    locals.sort = []\n    locals.views = [\n      {\n        identifier: 'list',\n        text: 'Liste',\n        icon: 'far fa-list',\n      },\n      {\n        identifier: 'board',\n        text: 'Board',\n        icon: 'far fa-columns',\n      }\n    ]\n    locals.documents = []\n    locals.localStorageKey = `user-pref@design=${design.id}@document=${document.id}`\n\n    Aeppic.subscribe(this.search, {size: 99999}, newDocuments => {\n      const hasChanged = !this.documentsAreEqual(locals.documents, newDocuments)\n      if (hasChanged) {\n        locals.documents = newDocuments\n      }\n    })\n    await this.setBoard()\n    locals.ready = true\n  }\n\n  get filter() {\n    // return [locals.filter, 'data.verantwortlich:' + Aeppic.ProfilePage.id].join(' ')\n    return [locals.filter].join(' ')\n  }\n\n  get search() {\n    const base = `p:${document.id} f.id:${locals.FORMS.Projekt}`\n\n    if (this.filter) {\n      return `${base} ${this.filter.trim()}`\n    }\n    return base\n  }\n\n  async setBoard() {\n    // Find existing board\n    locals.board = await Aeppic.findOne(`p:${this.LOCATIONS.BoardLocation} f:${this.FORMS.Board} data.form:${this.FORMS.Projekt} data.key:${locals.localStorageKey}`)\n    if (locals.board) {\n      return\n    }\n    // Find old board to migrate\n    locals.oldBoard = await Aeppic.findOne(`p:${this.LOCATIONS.BoardLocation} f:${this.FORMS.OldBoard} data.form:${this.FORMS.Projekt} data.key:${locals.localStorageKey}`)\n    if (locals.oldBoard) {\n      await Aeppic.Commands.execute('2123d205-09aa-462e-a271-8f70624bd407', locals.oldBoard.id)\n      return\n    }\n    // Clone new board from template\n    const boardAndComponents = (await Aeppic.cloneDeep(this.DOCUMENTS.NewBoardTemplate, this.LOCATIONS.BoardLocation))\n    boardAndComponents.root.data.key = locals.localStorageKey\n    Aeppic.saveAll(boardAndComponents.documents)\n    locals.board = boardAndComponents.root\n  }\n\n  documentsAreEqual(arr1, arr2) {\n    if (!arr1 || !arr2 || arr1.length !== arr2.length) {\n      return false\n    }\n    for (let i = 0; i < arr1.length; i++) {\n      if (\n        arr1[i]?.id !== arr2[i]?.id ||\n        arr1[i]?.v?.id !== arr2[i]?.v?.id\n      ) {\n        return false\n      }\n    }\n    return true\n  }\n}","css":"","description":"","name":"rd:projects","packages":[],"template":"<div \n  v-if=\"locals.ready\"\n  class=\"h-full flex flex-col overflow-x-auto overflow-y-hidden\"\n>\n  <ae-design \n    name=\"rd:toolbar\"\n    class=\"mb-2 ml-2\"\n    :document=\"document\"\n    :param-disable-sort=\"locals.view === 'list' ? false : true\"\n    :param-list-form-id=\"locals.FORMS.Projekt\"\n    param-command-group=\"2a647eb1-6177-48f3-8dc8-1894d4b299fa\"\n    :param-views=\"locals.views\"\n    :param-persist-view=\"true\"\n    :param-view-persistance-key=\"locals.localStorageKey\"\n    @filter=\"locals.filter = $event\"\n    @view=\"locals.view = $event\"\n    @sort=\"locals.sort = $event\"\n  ></ae-design>\n\n  <div\n    v-if=\"locals.view === 'list'\"\n    class=\"flex-1 mx-auto w-full bg-white dark:bg-slate-800 overflow-visible max-w-5xl px-4 py-2 my-2 lg:shadow-md lg:rounded-md overflow-y-auto\"\n  >\n    <ae-list\n      list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\"\n      class=\"h-full\"\n      :documents=\"locals.documents\"\n      :filter=\"locals.filter\"\n      :sort=\"locals.sort\"\n      param-design=\"rd:card-inner\"\n      :param-design-params=\"params.listDesignParams\"\n      :param-divide=\"true\"\n      @selected=\"Aeppic.drillInto($event)\"\n    ></ae-list> \n  </div>\n  <ae-layout\n    v-if=\"locals.view === 'board'\"\n    class=\"flex-1 min-h-0 pt-1\"\n    layout-id=\"1d3dc097-ae91-409d-99cb-43c236be89aa\"\n    :watch=\"false\"\n    :document=\"locals.board\"\n    :param-board=\"locals.board\"\n    :param-documents=\"locals.documents\"\n    :param-new-document-location-id=\"locals.LOCATIONS.NewDocumentLocation\"\n    :param-new-document-command-ids=\"[controller.COMMANDS.NeuesProjektCommandId]\"\n    :param-filter=\"locals.filter\"\n    :param-hide-filter=\"true\"\n    :param-default-view=\"{mode: 'manual'}\"\n    :param-board-card-params=\"{showFormNameHeader: false}\"\n    @selected=\"Aeppic.drillInto($event, arguments[1])\"\n  ></ae-layout>\n</div>"},"f":{"id":"design-form","text":"Design","v":"c2d9ae57c7a46896"},"id":"3b806777-5c0f-45fd-946c-c7f9e50d5844","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-03-26T10:33:06+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"p":"0b4fe19c-a550-46b7-ada0-6813a60e14bc","previous":{"v":"bfebc250bcd1c515"},"stamps":[],"t":1774521186046,"v":"00f069aa665b3090"},{"id":"aa10068f-8e38-4fc6-8a36-f9c621767991","v":"ddcd8e0fa5ef0ed9","cloneOf":{"id":"9fd70df8-d554-4048-be70-6f344c32a5a4","v":"91fc268917c220dd","text":"rd:diagrams"},"originalCloneOf":{"id":"9fd70df8-d554-4048-be70-6f344c32a5a4","v":"91fc268917c220dd","text":"rd:diagrams"},"previous":{"v":"6395ef819b6851c7"},"p":"0b6a2b21-9425-466e-9e8d-57ec39cc95e1","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"rd:protocols","template":"<div class=\"flex flex-col h-full\">\n  <ae-design name=\"rd:toolbar\" \n  :document=\"document\"\n  :param-commands=\"locals.commands\"\n  ></ae-design>\n\n  <ae-list list-id=\"2e798091-303f-406b-a42a-93aa1cd8425c\"\n           :documents=\"data.protokolle\"\n           param-design=\"ref-card\"\n           @selected=\"Aeppic.drillInto($event)\"\n  ></ae-list>\n</div> ","css":"","controller":"class Controller {\n  async init() {\n    locals.commands = ['bf4c73ce-46a7-430b-8240-f024ae36041c']\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-01-09T12:10:21+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-01-09T13:31:29+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1673271089439,"ct":1673266221113,"a_depth":4,"a":["apps","59edbdbc-2cab-426a-bb42-6e57c5158e4f","3be7e887-1bcd-4c3c-979f-b20a986c4c48","0b6a2b21-9425-466e-9e8d-57ec39cc95e1"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","b0eb4a71-010b-4d65-b79b-bb984a57c10f","a6c009e7-a2c9-4e84-a992-4ad09134d39d","24523534-125d-4ebe-9a83-bd7fed39ff92"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2025-09-18T10:14:35+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"ct":1758190475189,"data":{"aliases":[],"controller":"class Controller {\n  init() {\n\n  }\n\n  toggleQuickEdit(event) {\n    $refs.quickEdit.toggle({...event, target: params.target ?? event.target})\n  }\n}","css":"","description":"","name":"rd:quick-edit","packages":[],"parameters":["target"],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":["Html Element that should be the popup target"],"parametersTypes":["object"],"template":"<div\n>\n  <ae-layout\n    ref\n    layoutId=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n    @selected=\"$emit('selected', controller.toggleQuickEdit($event))\"\n    param-icon=\"far fa-edit\"\n    param-classes=\"border-secondary-200\"\n  ></ae-layout>\n\n  <ae-popup \n    ref=\"quickEdit\" \n    placement=\"bottom\"\n    max-width=\"400px\"  \n  >\n    <template #default=\"scope\">\n      <ae-form\n        :document=\"document\"\n        layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\"\n        :view=\"{only: {fields: ['name', 'namedIconColor', 'namedIcon']}}\"\n        :auto-save=\"true\"\n        :auto-save-after=\"1000\"\n        :readonly=\"params.readonly\"\n      ></ae-form>\n    </template>\n  </ae-popup>\n</div>"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"18afa411-b653-4fd7-b291-9659e7fe68ea","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-10-09T06:41:02+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"24523534-125d-4ebe-9a83-bd7fed39ff92","previous":{"v":"479dda0b6b764180"},"stamps":[],"t":1759992062260,"v":"fb206662eac7da47"},{"a":["apps","45ada186-e9fd-451d-9dbd-2defc0b4f86f","4ec6a0e5-cf2d-4095-9b70-2e31a64d5679","ffa650cf-e351-462e-baef-29f7c8f22d1b"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"40376246-0e43-4c23-b29f-684091b8d55a","text":"rd:quick-edit","v":"433f6a57ac65e71f"},"created":{"at":"2025-12-02T08:23:07+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1764663787930,"data":{"aliases":[],"controller":"class Controller {\n  init() {  \n    locals.view ={\n      only: {\n        fields: ['name',]\n      }\n    }\n  }\n\n  toggle(clickEvent) {\n    $refs.popup.toggle(clickEvent)\n  }\n}","css":"","description":"","name":"rd:quick-edit","packages":[],"template":"<template v-if=\"document.a_depth > 1\">\n  <ae-layout \n              layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n              :xparam-icon-design-document-id=\"document.id\"\n              param-icon=\"far fa-edit\"\n              param-text=\"Bearbeiten\"\n              param-border=\"border border-secondary-200\"\n              @selected=\"controller.toggle($event)\"\n              :param-disabled=\"params.readonly\"\n  ></ae-layout>  \n\n  <ae-popup ref=\"popup\">\n    <template #default>\n      <div>\n        <ae-form :document=\"document\"\n                :auto-save=\"true\"\n                :auto-save-after=\"2500\"\n                layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\"\n                :view=\"locals.view\"\n        ></ae-form>\n      </div>\n    </template>\n  </ae-popup> \n</template>"},"f":{"id":"design-form","text":"Design","v":"c2d9ae57c7a46896"},"id":"3e2e0a08-95cc-45f6-a08e-cc06a8f30b6f","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-12-02T08:23:39+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"40376246-0e43-4c23-b29f-684091b8d55a","text":"rd:quick-edit","v":"433f6a57ac65e71f"},"p":"ffa650cf-e351-462e-baef-29f7c8f22d1b","previous":{"v":"initial"},"stamps":[],"t":1764663819820,"v":"b7c8adc810909f1c"},{"a":["apps","45ada186-e9fd-451d-9dbd-2defc0b4f86f","4ec6a0e5-cf2d-4095-9b70-2e31a64d5679","a04c8913-db48-4e80-b20d-0f3cc17a778c"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"34491a0a-fc25-40f5-860b-022df66bb794","text":"rd:title-action","v":"be7e409953437ede"},"created":{"at":"2023-01-17T10:32:22+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1673951542525,"data":{"aliases":[],"controller":"class Controller {\n  init() {  \n    locals.view ={\n      only: {\n        fields: ['namedIconColor', 'namedIcon', 'name','beschreibung']\n      }\n    }\n  }\n\n  toggle(clickEvent) {\n    $refs.popup.toggle(clickEvent)\n  }\n}","css":"","description":"","name":"rd:quick-edit","packages":[],"template":"<template v-if=\"document.a_depth > 1\">\n  <ae-layout \n              layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n              :xparam-icon-design-document-id=\"document.id\"\n              param-icon=\"far fa-edit\"\n              param-text=\"Bearbeiten\"\n              param-border=\"border border-secondary-200\"\n              @selected=\"controller.toggle($event)\"\n              :param-disabled=\"params.readonly\"\n  ></ae-layout>  \n\n  <ae-popup ref=\"popup\">\n    <template #default>\n      <div>\n        <ae-form :document=\"document\"\n                :auto-save=\"true\"\n                :auto-save-after=\"2500\"\n                layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\"\n                :view=\"locals.view\"\n        ></ae-form>\n      </div>\n    </template>\n  </ae-popup> \n</template>"},"f":{"id":"design-form","text":"Design","v":"c2d9ae57c7a46896"},"id":"40376246-0e43-4c23-b29f-684091b8d55a","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-09-18T10:04:15+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"34491a0a-fc25-40f5-860b-022df66bb794","text":"rd:title-action","v":"be7e409953437ede"},"p":"a04c8913-db48-4e80-b20d-0f3cc17a778c","previous":{"v":"7cabdfb0c3b2c03c"},"stamps":[],"t":1758189855884,"v":"433f6a57ac65e71f"},{"a":["apps","77ee8815-2c3a-4bb5-abd9-90541a545a24","1cc4b977-c14d-4587-af47-d6ac230f60b3"],"a_depth":3,"a_forms":["folder","application-form","design-folder"],"created":{"at":"2026-03-05T12:30:27+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"ct":1772713827925,"data":{"aliases":[],"controller":"class Controller {\n  get duration() {\n    if (!params.fieldName) {\n      console.error('provide params.fieldName')\n      return\n    }\n\n    if ((params.fieldName in data) === false || !data[params.fieldName] || !Object.keys(data[params.fieldName]).length) {\n      return\n    }\n\n    return Aeppic.DateTimeDuration.fromObject(data[params.fieldName]).toFormat(`h'h' m'm'`)\n  }\n\n}","css":"","description":"","name":"rd:readable-duration","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<div class=\"flex items-center\">\n  <span v-if=\"controller.duration\" :title=\"[params.title, controller.duration].join(' ')\">\n    <ae-icon v-if=\"!params.hideIcon\" \n    :class=\"params.icon || 'far fa-sigma'\"></ae-icon>\n    {{ controller.duration }}\n  </span>\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"b5cec270-107b-4792-987a-b806cf3abfd0","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2026-07-21T08:08:06+00:00","backedBy":"","by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":""},"p":"1cc4b977-c14d-4587-af47-d6ac230f60b3","previous":{"v":"166b4c7d63c25d3e"},"stamps":[],"t":1784621286053,"v":"9793a9b2b26be29a"},{"a":["apps","0c440c7a-219d-4465-9cbe-2d0eff6ec7ad","9ee77d5e-cff4-42a8-a86e-447a18bbceba"],"a_depth":3,"a_forms":["folder","application-form","design-folder"],"created":{"at":"2023-09-19T10:37:14+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1740666014603,"data":{"aliases":[],"controller":"get duration() {\n  if (!Object.keys(data.dauer).length) {\n    return\n  }\n\n  return Aeppic.DateTimeDuration.fromObject(data.dauer).toFormat(`h'h' m'm'`)\n}\n","css":"._CSS-duration--not-billable {\n  font-style:italic;\n}","description":"","name":"rd:recorded-time-readable-duration","packages":[],"template":"<div class=\"flex items-center\">\n  <span v-if=\"controller.duration\" :title=\"data.abrechenbar ? '' : 'Nicht abrechenbar'\" :class=\"{ '_CSS-duration--not-billable': !data.abrechenbar }\">\n    {{ controller.duration }}\n  </span> \n\n  <div class=\"flex-1\"></div>\n\n  <template v-if=\"'abgerechnet' in data\">\n    <span v-if=\"!data.abgerechnet\"\n          title=\"nicht abgerechnet\" \n          class=\"text-red-400 ml-auto\"\n    >\n      <ae-icon class=\"far fa-coins\"></ae-icon>\n    </span> \n    <span v-else\n          class=\"flex items-center text-green-500 ml-auto\"\n          title=\"abgerechnet\" \n    >\n      <ae-icon class=\"far fa-coins\"></ae-icon>\n      <ae-icon class=\"far fa-check\"></ae-icon>\n    </span> \n\n  </template>\n</div> "},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"2e238454-2166-4330-a963-74fd293a5d2a","inheritedLocks":[null,null,null,null],"locks":[],"meta":{},"modified":{"at":"2026-03-05T15:02:29+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"p":"9ee77d5e-cff4-42a8-a86e-447a18bbceba","previous":{"v":"9cef10c2af04672c"},"stamps":[],"t":1772722949625,"v":"a1cc09231323f57b"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","02132d06-c73b-4101-bde0-2fe98224a35a"],"a_depth":3,"a_forms":["folder","application-form","design-folder"],"created":{"at":"2025-08-06T13:09:17+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1762858086391,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.parent = null\n    locals.parent = await Aeppic.get(document.p)\n  }\n}","css":"","description":"","name":"rd:recording","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"\n<ae-control v-if=\"locals.parent\"\n            name=\"rd:children-add\"\n            :document=\"locals.parent\"\n            field-name=\"recordings\"\n            :params=\"{ formField: 'recordingForm', onlyAdd: true }\"\n            :readonly=\"params.readonly\"\n></ae-control>"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"7bb8d2a0-a653-46c6-a920-c6876061f9c5","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2025-11-11T12:41:55+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"02132d06-c73b-4101-bde0-2fe98224a35a","previous":{"v":"be95ca5d51bac5fc"},"stamps":[],"t":1762864915341,"v":"1c1beb3351c4a424"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","02132d06-c73b-4101-bde0-2fe98224a35a"],"a_depth":3,"a_forms":["folder","application-form","design-folder"],"created":{"at":"2025-08-06T13:09:17+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1762858086392,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.parent = null\n    locals.parent = await Aeppic.get(document.p)\n  }\n}","css":"","description":"","name":"rd:recordings","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<ae-design v-if=\"locals.parent\" :document=\"locals.parent\" name=\"rd:recordings-as-columns\" :params=\"params\"></ae-design>"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"2e2cd5de-2195-4753-a9b5-e042ae3454b0","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2025-11-11T10:56:11+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"02132d06-c73b-4101-bde0-2fe98224a35a","previous":{"v":"d6e03fba5eceacc8"},"stamps":[],"t":1762858571052,"v":"90b8f547637b7b41"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","8c113cd0-af90-42fa-aa05-f67809d0a9a5"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"55afbde6-4eed-473c-af5d-ada776a93b1e","text":"erfassungen-als-spalten","v":"0e35fcdd9a5473c8"},"created":{"at":"2025-11-11T10:52:31+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1762858360175,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.modes = [ 'regular', 'labels-left',]\n    locals.mode = locals.modes[0]\n\n    locals.form = null\n    locals.erfassungen = []\n    locals.form = await Aeppic.getForm(data.recordingForm.id)\n    locals.fields = locals.form.fields\n    locals.fieldsControlParams = locals.form.fields.map(field => locals.form.getFieldControlParams(field.name))\n\n    locals.erfassungen = (await Aeppic.getAll(data.recordings)).filter(d => !!d)\n\n    Aeppic.watch(document, async (newDocument) => {\n      locals.erfassungen = (await Aeppic.getAll(newDocument.data.recordings)).filter(d => !!d)\n    })\n  }\n\n  edit(erfassung, index) {\n    if (params.readonly) {\n      return\n    }\n\n    Aeppic.drillInto(erfassung, { documents: locals.erfassungen, documentsIndex: index })\n  }\n} ","css":"","description":"","name":"rd:recordings-as-columns","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<template v-if=\"locals.form\">\n  <div v-if=\"locals.mode === 'labels-left'\" class=\"flex overflow-auto\">\n    <div class=\"flex flex-col min-w-[150px] overflow-hidden text-sm gap-1 border-r\">\n      <div v-for=\"field of locals.form.fields\" class=\"h-14 border-b p-2\">\n        {{ locals.form.getPlaceholder(field.name).label }}\n      </div>\n    </div>\n\n    <div\n      v-for=\"(erfassung, index) of locals.erfassungen\"\n      class=\"flex flex-col border-r gap-1\"\n      @click.stop=\"controller.edit(erfassung, index)\"\n    >\n      <div v-for=\"field of locals.form.fields\" class=\"h-14 max-w-[150px] border-b truncate p-2\">\n        {{ erfassung.data[field.name] }}\n      </div>\n\n      <button @click.stop=\"controller.edit(erfassung, index)\" :disabled=\"params.readonly\">\n        <ae-icon class=\"fa fa-edit\"></ae-icon>\n      </button>\n    </div>\n\n    <div v-if=\"locals.erfassungen.length === 0\" class=\"italic flex items-center w-full justify-center\">\n      Keine Daten erfasst.\n    </div>\n  </div>\n  <div v-else-if=\"locals.mode === 'regular'\" class=\"w-full overflow-auto\">\n    <table class=\"table-auto w-full\">\n      <thead>\n        <tr class=\"bg-slate-100 text-slate-900\">\n          <th class=\"w-20\">\n            <!-- edit button -->\n          </th>\n          <th v-for=\"field of locals.form.fields\" class=\"p-2 border-b border-r border-slate-200\">\n            {{ locals.form.getPlaceholder(field.name).label }}\n          </th>\n        </tr>\n      </thead>\n\n      <tbody>\n        <tr\n          v-for=\"(erfassung, index) of locals.erfassungen\"\n          class=\"border-b border-r border-slate-200\"\n          @click.stop=\"controller.edit(erfassung, index)\"\n        >\n          <td class=\"\">\n            <button class=\"w-full h-full\" @click.stop=\"controller.edit(erfassung, index)\" :disabled=\"params.readonly\">\n              <ae-icon class=\"fa fa-edit\"></ae-icon>\n            </button>\n          </td>\n\n          <td\n            v-for=\"(field, fieldIndex) of locals.fields\"\n            class=\"p-2\"\n            :class=\"{'text-center': field.type === 'number'}\"\n          >\n            <ae-design\n              v-if=\"field.subType === 'date'\"\n              name=\"rd:date\"\n              :document=\"erfassung\"\n              :params=\"{ type: locals.fieldsControlParams[fieldIndex]?.type, fieldName: field.name }\"\n            ></ae-design>\n            <span v-else>{{ erfassung.data[field.name] }}</span>\n          </td>\n        </tr>\n      </tbody>\n    </table>\n  </div>\n  <div v-else>ERROR: UNKNOWN MODE</div>\n</template>\n"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"2b7be78d-946e-4967-95e8-a7478f48e22c","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-11-11T14:13:52+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"55afbde6-4eed-473c-af5d-ada776a93b1e","text":"erfassungen-als-spalten","v":"0e35fcdd9a5473c8"},"p":"8c113cd0-af90-42fa-aa05-f67809d0a9a5","previous":{"v":"8d543bd13bea1d9e"},"stamps":[],"t":1762870432841,"v":"b8e199c4ad27da98"},{"id":"f395a79c-79f3-4a18-ae54-d0ff1332156f","v":"8798300d1b310a85","cloneOf":{"id":"edfed5b4-28b7-4d41-95d4-fdc65b2d2d8a","v":"bf0b975ff0bc62c8","text":"rd:notifications"},"originalCloneOf":{"id":"edfed5b4-28b7-4d41-95d4-fdc65b2d2d8a","v":"bf0b975ff0bc62c8","text":"rd:notifications"},"previous":{"v":"df97dd12e64faad8"},"p":"24842415-3690-4cad-82b9-b959ae7621c6","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"rd:redesign","template":"<div class=\"flex flex-col gap-4 max-w-[800px]\">\n  <section class=\"text-lg font-bold\">\n    Redesign Einstellungen\n  </section>\n\n  <div class=\"bg-slate-100 p-4 rounded-lg flex flex-col gap-6\">\n    <div class=\"flex flex-col\">\n      <div>\n        <ae-icon class=\"far fa-info-circle\">\n        </ae-icon>\n        Während der Redesign Beta können an dieser Stelle experimentelle Funktionen aktiviert werden.\n      </div>\n    </div>\n  </div>\n\n  <div class=\"p-2 flex flex-col\" :key=\"id(locals.rerender)\">\n    <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n               param-icon=\"far fa-eclipse-alt\"\n               param-text=\"Dunkelmodus unterstützen\"\n               param-title=\"Ist\"\n               :param-primary=\"Aeppic.LocalStorage.getValue('redesign-allow-darkmode')\"\n              @selected=\"controller.toggleDarkMode()\"\n    ></ae-layout>\n  </div>\n</div> ","css":"","controller":"class Controller {\n  async init() {\n    locals.rerender = 0\n  }\n\n  toggleDarkMode() {\n    const value = Aeppic.LocalStorage.getValue('redesign-allow-darkmode')\n    Aeppic.LocalStorage.setValue('redesign-allow-darkmode', value != null ? !value : true)\n    locals.rerender += 1\n\n    const reload = packages.window.confirm('Um die Änderungen zu übernehmen muss bizpin neugeladen werden. Soll jetzt neugeladen werden?')\n    if (reload) {\n      Aeppic.reload()\n    }\n  }\n}","packages":[{"id":"10843fbf-4f0c-416b-be7d-42d6bbd0ae68","v":"cc146accf5ec1930","text":"Window"}],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-02-19T10:27:11+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-02-19T10:36:06+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1708338966441,"ct":1708338431855,"a_depth":4,"a":["apps","a4f3e35e-f945-4c8b-a7a4-81e987585974","13525440-3a25-44be-851b-1bcd803bff80","24842415-3690-4cad-82b9-b959ae7621c6"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","b9df606f-b33a-48ad-ba91-a82fa7868fa4","f0010376-2737-42c5-aaf8-f8b8e1cd0449","59b7188e-1296-4466-a9c2-d6255496e7d6"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2022-08-29T08:29:43+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1692962290175,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:ref-card","packages":[],"template":"<div @click.stop=\"$emit('selected', document)\" class=\"flex flex-col w-full p-1\">\n  <div class=\"flex gap-2 items-center\">\n    <ae-design name=\"rd:icon\" :document=\"document\"></ae-design>\n    <ae-design name=\"rd:title-as-link\" :document=\"document\" class=\"truncate\"></ae-design>\n\n    <div class=\"flex-1\"></div>\n\n    <div v-if=\"data.anhaenge.length\" class=\"mx-4 flex items-center\">\n      <ae-icon class=\"far fa-paperclip mr-1 text-neutral-500 dark:text-neutral-300\"></ae-icon>\n      <div>{{ data.anhaenge.length }}</div>\n    </div>\n\n    <ae-layout\n      layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n      param-icon=\"far fa-trash\"\n      @selected=\"$emit('remove', document)\"\n      ref=\"button\"\n      :param-disabled=\"params.readonly\"\n      class=\"text-neutral-600 dark:text-neutral-400 shrink-0\"\n    ></ae-layout>\n\n    <!-- <ae-design name=\"ref-attachments\" :document=\"document\"></ae-design> -->\n  </div>\n\n  <div class=\"truncate text-xs text-neutral-600 dark:text-neutral-400 my-1\" :title=\"data.text\">\n    {{data.text?.slice(0,100) }}\n  </div>\n\n  <section class=\"flex flex-wrap gap-2 overflow-hidden\">\n    <div class=\"flex gap-2 items-center text-neutral-600 dark:text-neutral-400\">\n      <!-- <ae-icon class=\"fa fa-arrow-right text-xs\"></ae-icon> -->\n      <div class=\"text-xs\">von</div>\n\n      <div v-if=\"data.absender.id\">\n        <ae-design name=\"title\" :document-id=\"data.absender.id\"></ae-design>\n      </div>\n      <div v-else-if=\"data.von\" :title=\"data.von\">{{ data.von.split('<')[0] }}</div>\n      <div v-else class=\"italic\">Kein Absender auslesbar</div>\n    </div>\n\n    <div class=\"flex gap-2 items-center text-neutral-600 dark:text-neutral-400\">\n      <!-- <ae-icon class=\"fa fa-arrow-right text-xs\"></ae-icon> -->\n      <div class=\"text-xs\">an</div>\n\n      <div v-if=\"data.an?.length\" class=\"flex gap-1 flex-wrap\" data-an>\n        <div v-for=\"(an, i) of data.an\" :title=\"an\">\n          {{ an.split('<')[0] }}<template v-if=\"i + 1 < data.an.length\">,</template>\n        </div>\n      </div>\n      <div v-else-if=\"data.empfaenger.length\" class=\"flex gap-1 flex-wrap\" data-empfaenger>\n        <div v-for=\"(empfaenger, i) of data.empfaenger\" class=\"flex\">\n          <ae-design name=\"title\" :document-id=\"empfaenger.id\"></ae-design\n          ><template v-if=\"i + 1 < data.empfaenger.length\">,</template>\n        </div>\n      </div>\n      <div v-else class=\"italic\">Kein Empfänger auslesbar</div>\n    </div>\n    <div class=\"flex-1\"></div>\n    <div v-if=\"data.gesendet || document.created.at\" class=\"text-xs self-end\" data-gesendet>\n      {{ Aeppic.DateTime.fromISO(data.gesendet || document.created.at).toLocaleString(Aeppic.DateTime.DATETIME_SHORT)\n      }}\n    </div>\n  </section>\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"39983298-1f1e-4f66-912a-2514da70ae93","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-03-11T10:41:28+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"p":"59b7188e-1296-4466-a9c2-d6255496e7d6","previous":{"v":"9a35010b3fa933fa"},"stamps":[],"t":1773225688747,"v":"75c09f0a98b8ca16"},{"id":"5d2890a2-5489-47c8-9b35-416cabf812d2","v":"f248e4f45d2f8559","previous":{"v":"initial"},"p":"a40633b4-c769-4457-a267-830738d4b549","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:ref-card","template":"<div class=\"group w-full flex flex-col\"\n      @click.stop=\"$emit('selected', document)\"\n    :class=\"{ 'opacity-60': data.erledigt }\"\n>\n  <div class=\"flex gap-2  items-center\">\n    <ae-design name=\"rd:icon\" :document=\"document\" param-icon-field-name=\"typ\"\n              param-size=\"8\"\n    ></ae-design> \n\n    <ae-design class=\"flex-1 \" name=\"rd:styled-title,title\" :document=\"document\"></ae-design>\n\n    <div v-if=\"data.datum\" class=\"text-neutral-600\">\n      {{ Aeppic.DateTime.fromISO(data.datum).toLocaleString(Aeppic.DateTime.DATE_SHORT) }}\n    </div>\n\n\n    <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n            v-if=\"!params.readonly && (!params.inline || !document.hidden)\"\n            param-icon=\"far fa-trash\"\n            @selected=\"$emit('remove', document)\"\n            ref=\"button\"\n            :param-disabled=\"params.readonly \"\n            class=\"text-neutral-600 invisible group-hover:visible\"\n  ></ae-layout> \n  </div>\n</div>\n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-04-13T10:02:53+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-04-13T10:06:54+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1681380414674,"ct":1681380173245,"a_depth":4,"a":["apps","0924db0f-7095-4b51-8966-bad1e45d68ec","a3b935e7-60bc-4996-9b18-668e4361067f","a40633b4-c769-4457-a267-830738d4b549"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"7d2b5032-d918-4046-a90a-dfc81afca287","v":"d14796de99eb1170","previous":{"v":"061223504c1895b4"},"p":"2cea1044-a33a-4d05-9139-12c9a4fe0627","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:ref-card","template":" \n<div class=\"group w-full flex flex-col bg-white rounded-md p-1\" @click.stop=\"$emit('selected', document)\">\n  <div class=\"w-full flex gap-2 items-center\">\n    <!-- <ae-design v-if=\"params.inline\" name=\"rd:title-action\" :document=\"document\"  \n                :param-disabled=\"params.inlineAdd\" class=\"xoverflow-hidden\"\n    ></ae-design> \n    <ae-design v-else name=\"rd:icon\" :document=\"document\"></ae-design> -->\n\n\n    <div class=\"flex flex-col\">\n      <ae-control class=\"-mx-4 -mt-4\" name=\"rd:editor\" :document=\"document\" field-name=\"beschreibung\" :readonly=\"true\" :param-without-border=\"true\"></ae-control>\n      <div class=\"flex justify-between\">\n        <div v-if=\"data.datum\" class=\"\">\n          <ae-icon class=\"far fa-calendar\"></ae-icon>\n          {{ Aeppic.DateTime.fromISO(data.datum).toLocaleString() }}\n        </div>\n        <ae-design class=\"self-end\" name=\"rd:creation-info\" :document=\"document\"></ae-design>\n      </div>\n    </div>\n    \n    <!-- <div class=\"flex-1\"></div>   -->\n\n    <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n              v-if=\"!params.readonly && (!params.inline || !document.hidden)\"\n              param-icon=\"far fa-trash\"\n              @selected=\"$emit('remove', document)\"\n              ref=\"button\"\n              :param-disabled=\"params.readonly \"\n              class=\"text-neutral-600 invisible group-hover:visible\"\n    ></ae-layout> \n  </div>\n\n  <div v-if=\"locals.upload\" style=\"display:flex\">\n    <div class=\"ae-progress\" :style=\"{ 'padding-left': (locals.upload.progressPercent * 100).toString() + '%' }\" ></div>\n  </div>\n</div>\n ","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-02-23T13:06:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-02-23T13:52:04+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1708696324815,"ct":1708693592198,"a_depth":4,"a":["apps","cf08a83c-2872-47fb-8886-6009ac1e19e5","b8fe3038-b9dc-4eb6-a141-8b80ed39748e","2cea1044-a33a-4d05-9139-12c9a4fe0627"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","59edbdbc-2cab-426a-bb42-6e57c5158e4f","3be7e887-1bcd-4c3c-979f-b20a986c4c48","0deb4864-cbb6-420c-99ee-337c7444ab24"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2026-02-10T11:06:27+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"ct":1770721587455,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:ref-card","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<ae-design\n  class=\"size-full\"\n  name=\"rd:card-inner\"\n  :document=\"document\"\n  :params=\"params\"\n  v-on=\"$listeners\"\n  :data-test=\"'design' + '_' + design.data.name + '_' + 'documentForm_' + document.f.text\"\n></ae-design>"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"7fd2ca12-22af-4d56-ae68-8211b7ce455f","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-02-10T15:12:39+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"p":"0deb4864-cbb6-420c-99ee-337c7444ab24","previous":{"v":"133b2fa54032e290"},"stamps":[],"t":1770736359371,"v":"a8b754c76a65095e"},{"a":["apps","45ada186-e9fd-451d-9dbd-2defc0b4f86f","4ec6a0e5-cf2d-4095-9b70-2e31a64d5679","dbee6e16-d63a-493c-bba6-505f79918f9f"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"4ec55d6c-4415-42bc-ae7d-2f35b4ee304a","text":"ref-card","v":"initial"},"created":{"at":"2022-08-24T12:03:30+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1661342609975,"data":{"applies":"","controller":"","css":"","name":"rd:ref-card","packages":[],"template":"<div class=\"w-full flex gap-2 items-center\" @click.stop=\"$emit('selected', document)\">\n  <ae-design class=\"overflow-hidden flex-1\" name=\"rd:card-inner\" :document=\"document\" \n            :params=\"{ ...params, size: '64px' }\"\n              @selected=\"$emit('selected', $event)\"\n  ></ae-design>\n \n  <ae-layout v-if=\"!params.readonly\"\n             layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n            param-icon=\"far fa-trash\"\n            @selected=\"$emit('remove', document)\"\n            ref=\"button\"\n            :param-disabled=\"params.readonly\"\n            class=\"text-neutral-600\"\n  ></ae-layout> \n</div>\n  "},"f":{"id":"design-form","text":"Design","v":"e3fe9ece11aabc5e"},"id":"8a79fdd6-5404-4526-9753-bc3b7ac0cecc","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-02-10T10:47:46+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"4ec55d6c-4415-42bc-ae7d-2f35b4ee304a","text":"ref-card","v":"initial"},"p":"dbee6e16-d63a-493c-bba6-505f79918f9f","previous":{"v":"81a6fe95abb19f31"},"stamps":[],"t":1770720466010,"v":"a3eb45502e65025f"},{"a":["apps","69555db0-1399-48c4-b87f-d8fa2f7b656f","ca4c359f-4705-4ab0-b018-b39e0d324486","bddf496c-822a-4eff-b294-5e6085fedaa7"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"50102892-0079-47c7-b519-5c762339d507","text":"ref-card","v":"initial"},"created":{"at":"2022-10-26T08:57:47+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1666774667905,"data":{"aliases":[],"controller":"class Controller {\r\n  async init() {\r\n    locals.canEdit = false\r\n    locals.image = null\r\n    locals.meetingRoomUrl = ''\r\n\r\n    const canEdit = await Aeppic.canEdit(document)\r\n    locals.canEdit = Aeppic.Account && Aeppic.Account.data.isGroupAccount === false && canEdit === true\r\n\r\n    const { data:{ server: serverBaseUrl, prefix } } = await Aeppic.get(document.p)\r\n    \r\n    Aeppic.watch(document, (d) => {\r\n      const trimmedUrl = (serverBaseUrl || 'https://meet.bizpin.de').trim()\r\n      const baseUrl = trimmedUrl.replace(/\\/+$/,'')\r\n      locals.meetingRoomUrl = `${baseUrl}/${prefix}` + this._encodeRoomName(d.data.name)\r\n    })\r\n  }\r\n\r\n  _encodeRoomName(name) {\r\n    const newNameChars = []\r\n\r\n    let capitalize = true\r\n    for (let c of name) {\r\n      if (!c.match(/[a-z0-9]/i)) {\r\n        capitalize = true\r\n        continue\r\n      }\r\n      \r\n      if (capitalize) {\r\n        c = c.toUpperCase()\r\n        capitalize = false\r\n      }\r\n      newNameChars.push(c)\r\n    }\r\n\r\n    return newNameChars.join('')\r\n  }\r\n\r\n  get link() { \r\n    return locals.meetingRoomUrl\r\n  }\r\n\r\n  copy(event) {\r\n    Aeppic.copyToClipboard(this.link)\r\n\r\n    $refs.popup.show(event)\r\n  }\r\n}","css":"._CSS {\r\n  flex: 1;\r\n  display: flex;\r\n}\r\n\r\n._CSS-container {\r\n  flex: 1;\r\n}\r\n\r\n._CSS-card {\r\n  background: var(--ae-primary-300);\r\n  width: var(--ae-size-13);\r\n  height: var(--ae-size-11);\r\n  border-radius: var(--ae-border-radius);\r\n  position: relative;\r\n}\r\n\r\n._CSS-card__img {\r\n  position: absolute;\r\n  top: var(--ae-size-6);\r\n  left: var(--ae-size-5);\r\n  z-index: 0;\r\n}\r\n\r\n._CSS-card__title {\r\n  color: var(--ae-ui-background);\r\n  padding: var(--ae-size-1) 0 0 var(--ae-size-3);\r\n  font-size: var(--ae-size-6);\r\n  z-index: 1;\r\n  width: 90%;\r\n  white-space: nowrap;\r\n  text-overflow: ellipsis;\r\n  overflow: hidden;\r\n}\r\n\r\n._CSS-card__button {\r\n  font-size: var(--ae-font-size-5);\r\n  background: var(--ae-primary-700);\r\n  border-radius: var(--ae-border-radius);\r\n  width:  var(--ae-size-10);\r\n  height: var(--ae-size-6);\r\n  display: flex;\r\n  align-items: center;\r\n  justify-content: center;\r\n  align-self: flex-end;\r\n  margin: 0 var(--ae-size-3) var(--ae-size-3) 0; \r\n  z-index: 1;\r\n}\r\n\r\n._CSS-card__copy-button {\r\n  margin: 2px;\r\n  width: var(--ae-size-6);\r\n  height: var(--ae-size-6);\r\n  padding: 17.5px 20px;\r\n  border-radius: var(--ae-border-radius);\r\n  cursor: pointer; \r\n}\r\n\r\n._CSS-card__copy-button:hover {\r\n  background: var(--ae-background-200);\r\n  color: var(--ae-primary-700);\r\n}\r\n\r\n._CSS-card__button-title {\r\n  text-decoration: none;\r\n  color: var(--ae-ui-background);\r\n}\r\n\r\n._CSS-popup__body {\r\n  padding: 0.5rem;\r\n  background: var(--ae-ui-background);\r\n  box-shadow: var(--ae-shadow-2);\r\n  border-radius: var(--ae-border-radius);\r\n}","description":"","name":"rd:ref-card","packages":[],"template":"<div class=\"w-full flex flex-col\" @click.stop>\r\n  <div class=\"flex gap-2  items-center\">\r\n    <ae-design name=\"rd:icon\" :document=\"document\"></ae-design>\r\n    <ae-design class=\"text-neutral-600\" name=\"rd:styled-title,title\" :document=\"document\"></ae-design>\r\n\r\n    <div class=\"flex-1\"></div> \r\n    \r\n    <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\r\n              param-icon=\"far fa-clipboard\"\r\n              @selected=\"controller.copy($event)\"\r\n              param-title=\"Link in die Zwischenablage kopieren\"\r\n              ref=\"button\"\r\n              :param-disabled=\"params.readonly\"\r\n    ></ae-layout> \r\n\r\n\r\n    <a target=\"_blank\" :href=\"locals.meetingRoomUrl\" @click.stop class=\"mr-6\">\r\n    <!-- <a target=\"_blank\" :href=\"locals.meetingRoomUrl\" @click class=\"mr-6\"> -->\r\n      <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\r\n                xparam-icon=\"far fa-webcam\"\r\n                param-text=\"Teilnehmen\"\r\n                ref=\"button\"\r\n                :param-disabled=\"params.readonly\"\r\n                :param-primary=\"true\"\r\n      ></ae-layout> \r\n    </a>\r\n\r\n\r\n    <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\r\n              param-icon=\"far fa-trash\"\r\n              @selected=\"$emit('remove', document)\"\r\n              ref=\"button\"\r\n              class=\"text-neutral-600\"\r\n    ></ae-layout> \r\n  </div>\r\n\r\n  <div v-if=\"locals.upload\" style=\"display:flex\">\r\n    <div class=\"ae-progress\" :style=\"{ 'padding-left': (locals.upload.progressPercent * 100).toString() + '%' }\" ></div>\r\n  </div>\r\n</div>\r\n\r\n \r\n<ae-popup ref=\"popup\" :close-delay=\"200\">\r\n  <div slot=\"popup\" class=\"flex flex-col p-2 gap-2\">\r\n    <div v-if=\"Aeppic.Device === 'Desktop'\">\r\n        Der Link wurde in die Zwischenablage kopiert!\r\n    </div>\r\n    <input type=\"text\" :value=\"controller.link\" class=\"w-full\" @keydown.prevent>\r\n  </div>\r\n</ae-popup>\r\n\r\n"},"f":{"id":"design-form","text":"Design","v":"24435d748c76f819"},"id":"c745d8d7-7ef3-4c3b-b17d-e2cce1db7b20","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-01-07T11:51:57+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"50102892-0079-47c7-b519-5c762339d507","text":"ref-card","v":"initial"},"p":"bddf496c-822a-4eff-b294-5e6085fedaa7","previous":{"v":"e40cbf0b9eb2cabe"},"stamps":[],"t":1767786717460,"v":"46eed3971847087b"},{"a":["apps","0924db0f-7095-4b51-8966-bad1e45d68ec","a3b935e7-60bc-4996-9b18-668e4361067f","8d1804b0-c5c6-4acf-a15f-1b02872e792e"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"5d2890a2-5489-47c8-9b35-416cabf812d2","text":"rd:ref-card","v":"f248e4f45d2f8559"},"created":{"at":"2023-04-13T12:34:42+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1681389282002,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:ref-card","packages":[],"template":"<div class=\"group w-full flex flex-col\"\n      @click.stop=\"$emit('selected', document)\"\n    :class=\"{ 'opacity-60': data.erledigt }\"\n>\n  <div class=\"flex gap-2  items-center\">\n    <ae-design name=\"rd:icon\" :document=\"document\" param-icon-field-name=\"typ\"\n              param-size=\"8\"\n    ></ae-design> \n\n    <ae-design class=\"flex-1 truncate\" name=\"rd:styled-title,title\" :document=\"document\"></ae-design>\n\n    <div v-if=\"data.datum && data.datum !== 'UNDEFINED'\" class=\"text-neutral-600\">\n      {{ Aeppic.DateTime.fromISO(data.datum).toLocaleString(Aeppic.DateTime.DATE_SHORT) }}\n    </div>\n\n\n    <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n            v-if=\"!params.readonly && (!params.inline || !document.hidden)\"\n            param-icon=\"far fa-trash\"\n            @selected=\"$emit('remove', document)\"\n            ref=\"button\"\n            :param-disabled=\"params.readonly \"\n            class=\"text-neutral-600 invisible group-hover:visible\"\n  ></ae-layout> \n  </div>\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"de63c13a-f256-4765-b95e-56b6607022a2","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-02-09T12:15:33+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"5d2890a2-5489-47c8-9b35-416cabf812d2","text":"rd:ref-card","v":"f248e4f45d2f8559"},"p":"8d1804b0-c5c6-4acf-a15f-1b02872e792e","previous":{"v":"3bb07da2a850dfc0"},"stamps":[],"t":1770639333517,"v":"8a177334469e0e65"},{"a":["apps","77ee8815-2c3a-4bb5-abd9-90541a545a24","1cc4b977-c14d-4587-af47-d6ac230f60b3"],"a_depth":3,"a_forms":["folder","application-form","design-folder"],"created":{"at":"2022-08-25T08:50:48+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1755518241954,"data":{"aliases":[],"controller":"class Controller {\r\n  init() {\r\n    locals.upload = null //{progressPercent:0.3,status:'started'}\r\n    locals.deletePending = false\r\n\r\n    this._updateUploadStatus()\r\n  }\r\n\r\n  _updateUploadStatus() {\r\n    const status = Aeppic.Uploads.getUploadStatusForDocument(document)\r\n    locals.upload = status ? status[0] : null\r\n\r\n    if (locals.upload && !this._uploadPollInterval) {\r\n      this._uploadPollInterval = setInterval(() => this._updateUploadStatus(), 500)\r\n    } else if (!locals.upload && this._uploadPollInterval) {\r\n      clearInterval(this._uploadPollInterval)\r\n      this._uploadPollInterval = null\r\n    }\r\n  }\r\n\r\n  destroy() {\r\n    if (this._uploadPollInterval) {\r\n      clearInterval(this._uploadPollInterval)\r\n      this._uploadPollInterval = null\r\n    }\r\n  }\r\n\r\n  handleSelected(event){\r\n    if (params.confirmRemove) {\r\n      $emit('remove', document)\r\n    } else {\r\n      if (locals.deletePending) {\r\n        $emit('remove', document)\r\n      } else {\r\n        locals.deletePending = true\r\n      }\r\n    }\r\n    \r\n  }\r\n  \r\n\r\n  get isUploading() {\r\n    return !!locals.upload\r\n  }\r\n\r\n  onSaved() {\r\n  }\r\n}","css":"","description":"","name":"rd:ref-card","packages":[],"parameters":["showActions","inline","thumbnail","readonly","disableRemove","max"],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":["Shows the title-action design","Shows the editable-title design","if not showActions, shows the thumbnail","readonly","hides remove button","test "],"parametersTypes":["boolean","boolean","boolean","boolean","boolean","number"],"template":"<div class=\"group w-full flex flex-col p-1\" @click.stop=\"$emit('selected', document)\">\n  <div class=\"w-full flex gap-2 items-start\"\n       @mouseleave=\"locals.deletePending = false\">\n    <ae-design class=\"h-full\" name=\"rd:card-left-decorator\" :document=\"document\"></ae-design>\n\n    <ae-design v-if=\"params.showActions || params.inline\" name=\"rd:title-action\" :document=\"document\"  \n                :param-disabled=\"params.inlineAdd\" :param-readonly=\"params.readonly\"\n    ></ae-design> \n    <ae-design v-else-if=\"params.thumbnail\" name=\"rd:overwrite-thumbnail,rd:thumbnail\" :document=\"document\" \n              :params=\"{ size: '64px' }\"></ae-design>\n    <ae-design v-else-if=\"params.icon !== false\" name=\"rd:icon\" :document=\"document\"></ae-design>\n\n    <!-- <div class=\"text-red-400\">{{ document.id }} {{ params.editImmediately }}</div> -->\n    <ae-design v-if=\"params.inline\"\n                class=\" w-0 flex-1\"\n                name=\"rd:editable-title\"\n                :document=\"document\"\n                :param-placeholder=\"document.hidden === true ? 'Neu erstellen' : ''\"\n                :param-edit-immediately=\"params.editImmediately\"\n                @saved=\"controller.onSaved()\"\n    ></ae-design>\n    <div class=\"flex-1 flex flex-col overflow-hidden\" v-else>\n      <ae-design  class=\"flex-1 text-neutral-600\" name=\"rd:styled-title,title\" :document=\"document\"></ae-design>\n      <ae-design  class=\"flex-1 text-neutral-600 text-sm\" name=\"rd:subtitle\" :document=\"document\"></ae-design>\n    </div>\n    \n    <!-- <div class=\"flex-1\"></div>   -->\n\n    <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n              v-if=\"!params.readonly && !params.disableRemove && (!params.inline || !document.hidden)\"\n              param-icon=\"far fa-trash\"\n              @selected=\"controller.handleSelected($event)\"\n              ref=\"button\"\n              :param-disabled=\"params.readonly \"\n              :param-primary=\"false\"\n              class=\"invisible group-hover:visible self-center\"\n              :class=\"locals.deletePending ? 'text-red-500' : 'text-neutral-600'\"\n    ></ae-layout>\n\n    <ae-icon v-if=\"locals.justSaved\" name=\"far fa-check\"></ae-icon>\n\n    <ae-design class=\"h-full\" name=\"rd:card-right-decorator\" :document=\"document\"></ae-design>\n  </div>\n\n  <div v-if=\"locals.upload\" style=\"display:flex\">\n    <div class=\"ae-progress\" :style=\"{ 'padding-left': (locals.upload.progressPercent * 100).toString() + '%' }\" ></div>\n  </div>\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"a6b987f8c80dc07f"},"id":"e300fae3-1f9d-4ed3-b68e-883a14de51bf","inheritedLocks":[null,null,null,null],"locks":[],"meta":{},"modified":{"at":"2026-07-21T09:49:07+00:00","backedBy":"","by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":""},"p":"1cc4b977-c14d-4587-af47-d6ac230f60b3","previous":{"v":"846749512b98aaa1"},"stamps":[],"t":1784627347206,"v":"e44fea8189b7f080"},{"id":"64eec3c8-4982-4835-884a-f0f28d5a27bf","v":"5f26fe9950ecc14e","previous":{"v":"0082a926d0d0c1d5"},"p":"account","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:regenerate-login","template":"<div class=\"flex flex-col gap-2\">\n  <div class=\"whitespace-pre-line\">Der Anmeldename wird von bizpin automatisch aus Vorname und Nachname generiert.\n  Eine Neu-Generierung ist sinnvoll, wenn beispielsweise der Nachname aufgrund von Heirat geändert wurde.\n  </div>\n\n  <div class=\"font-bold\">\n    Achtung: Dem Nutzer wird nach erfolgreicher Änderung automatisch eine E-Mail zugesendet.\n  </div>\n\n  <div class=\"whitespace-pre-line\">\n    Ihr neuer Anmeldename ist <span class=\"font-bold underline\">vorrausichtlich</span>:\n    <div class=\"italic\">{{ locals.newUsername }}</div>\n    <span class=\"text-xs\">(eine Kollisionsprüfung erfolgt erst bei Ausführung auf dem Server)\n    </span>\n  </div>\n</div>","css":"","controller":"class Controller {\n  async init() {\n    locals.newUsername = ''\n\n    locals.newUsername = await this.generateUsername(await Aeppic.getProfilePageForAccount(document))\n  }\n\n\n  async generateUsername(profile) {\n    let firstName = profile.data.vorname.slice(0,1)\n    let lastName = profile.data.nachname\n    const fullName = `${firstName ? firstName + '.' : ''}${lastName}`.toLowerCase().replace(/\\s/gi, '')\n\n    return fullName\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-08-22T12:14:48+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2024-01-15T13:58:30+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1705327110217,"ct":1692706488453,"a_depth":5,"a":["system","b2533f7b-ea85-4680-99ed-d8e11be641b9","0e6939d6-9b93-4165-b6bd-977e4da881f3","627f5b74-3baf-45f8-a1d3-a5936839b844","account"],"a_forms":["system-folder-form","folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"23506e3f-9bc7-4563-8445-e1eed80bbf81","v":"b96952733d28f69b","previous":{"v":"8cf8655971b9e2a7"},"p":"a04c8913-db48-4e80-b20d-0f3cc17a778c","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"rd:releases","template":"<div class=\"h-full flex flex-col\">\n  <section class=\"flex-1 mx-auto flex flex-col gap-4 w-full bg-white overflow-visible bg-white max-w-5xl px-4 py-2 my-2 lg:shadow-md lg:rounded-md\">\n    <div class=\"p-2\">\n      <div class=\"flex items-center mb-2\">\n        <div class=\"font-bold text-lg p-2\">\n        Freigaben\n        </div>\n\n\n        <ae-control name=\"rd:help\" :document=\"document\" param-text=\"Hier werden austehende Datei-Freigaben angezeigt.\"></ae-control>\n      </div>\n\n      <div class=\"flex gap-2 items-center\">\n        <ae-icon class=\"far fa-construction text-5xl\"></ae-icon>\n        <div>\n          Diese Funktion ist noch nicht im bizpin redesign verfügbar.\n        </div>\n      </div>\n    </div>\n  </section>\n</div> \n\n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-06-02T10:25:51+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-12-13T11:44:31+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1702467871086,"ct":1654165551606,"a_depth":4,"a":["apps","45ada186-e9fd-451d-9dbd-2defc0b4f86f","4ec6a0e5-cf2d-4095-9b70-2e31a64d5679","a04c8913-db48-4e80-b20d-0f3cc17a778c"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","45ada186-e9fd-451d-9dbd-2defc0b4f86f","4ec6a0e5-cf2d-4095-9b70-2e31a64d5679","554234d4-1a0a-4f31-b6a1-7899ca841995"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"23506e3f-9bc7-4563-8445-e1eed80bbf81","text":"rd:releases","v":"b96952733d28f69b"},"created":{"at":"2023-12-13T13:32:58+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1702474378184,"data":{"aliases":[],"controller":"class Controller {\n  init() {\n    const stampsWhichNeedAttention = [\n      // NOTE: new could be displayed, but only for editors (who did most likely create those)\n      // {\n      //   \"id\": \"a32f65e7-25f9-4af3-8cb3-68e580bf1bf5\",\n      //   \"v\": \"initial\",\n      //   \"text\": \"New\"\n      // },\n      {\n        \"id\": \"dcb9041f-ce16-422c-ac3d-f61b6b3502b5\",\n        \"v\": \"initial\",\n        \"text\": \"\"\n      },\n      {\n        \"id\": \"a373cb83-6c19-45e3-b411-c8114158b536\",\n        \"v\": \"initial\",\n        \"text\": \"\"\n      },\n      // {\n      //   \"id\": \"97f07cfd-28e2-44c5-8feb-2d106ffef2a7\",\n      //   \"v\": \"ff432c2078a679d1\",\n      //   \"text\": \"Freigeben\"\n      // },\n      // {\n      //   \"id\": \"0b67fed3-e01b-495b-ac91-720350b10ea9\",\n      //   \"v\": \"initial\",\n      //   \"text\": \"Working Copy\"\n      // },\n      {\n        \"id\": \"1751e1d5-bda7-44d3-b5f6-e0af0087e818\",\n        \"v\": \"initial\",\n        \"text\": \"Working Copy Proposed for Release\"\n      },\n      {\n        \"id\": \"76c87a07-af28-433a-b897-45fcb19f4349\",\n        \"v\": \"initial\",\n        \"text\": \"Working Copy Revision Needed\"\n      }\n    ]\n\n    locals.count = 0\n\n    locals.query = `a:${document.id} f.id:dbee6e16-d63a-493c-bba6-505f79918f9f (${stampsWhichNeedAttention.map(s => `stamps.type.id:${s.id}`).join(' OR ')})`\n    \n    locals.documents = []\n\n    Aeppic.subscribe(locals.query, async (documents) => {\n      const activeDocChecks = documents.map(d => this._isWorkflowActive(d));\n      const checkedDocs = await Promise.all(activeDocChecks)\n\n      const onlyActiveDocs = []\n\n      for (let i=0; i<documents.length; i++) {\n        if (checkedDocs[i]) {\n          onlyActiveDocs.push(documents[i])\n        } else {\n          //console.log('removed ', i)\n        }\n      }\n\n      locals.documents = onlyActiveDocs\n      \n      locals.count = locals.documents.length\n      //console.log(locals.count)\n    })  \n  }\n \n  async _isWorkflowActive(doc) {\n    const FREIGABE_PROZESS = 'bbd555c5-a65d-484e-9fed-7564a1c21ebc'\n    const  workflow = new packages.DocumentWorkflow(doc.id, { workflow: FREIGABE_PROZESS, Aeppic })\n    //console.log('wf', workflow, workflow.isAvailable(), workflow.isActive())\n\n    return await workflow.isAvailable() && await workflow.isActive()\n  }\n}","css":"","description":"","name":"rd:releases","packages":[{"id":"9980d952-e898-413a-af84-051795281aca","text":"Workflow","v":"57de45af509a3c86"}],"template":"<div class=\"h-full flex flex-col overflow-auto\">\n  <section class=\"flex-1 mx-auto flex flex-col gap-4 w-full bg-white overflow-visible bg-white max-w-5xl px-4 py-2 my-2 lg:shadow-md lg:rounded-md\">\n    <div class=\"p-2\">\n      <div class=\"flex items-center mb-2\">\n        <div class=\"font-bold text-lg p-2\">\n        Ausstehende Freigaben <small>{{locals.count}}</small>\n        </div>\n\n\n        <ae-control name=\"rd:help\" :document=\"document\" param-text=\"Hier werden austehende Datei-Freigaben angezeigt.\"></ae-control>\n      </div>\n\n      <div class=\"flex gap-2 items-center w-full\">\n        <!-- <ae-icon class=\"far fa-construction text-5xl\"></ae-icon>\n        <div>\n          Diese Funktion ist noch nicht im bizpin redesign verfügbar.\n        </div> -->\n\n        <ae-list list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\"\n                  class=\"w-full\"\n                  :xsearch=\"locals.query\"\n                  :documents=\"locals.documents\"\n                  param-design=\"rd:card-inner\"\n                  param-empty-text=\"Keine austehenden Freigaben\"\n                  @selected=\"Aeppic.drillInto($event)\"\n                  :sort=\"{ field: 'modified.at', decending: true }\"\n        ></ae-list>\n      </div>\n    </div>\n  </section>\n</div> \n\n"},"f":{"id":"design-form","text":"Design","v":"c2d9ae57c7a46896"},"id":"37f27ddf-159a-4200-9f6f-6e700c0fadb2","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-02-10T12:21:42+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"23506e3f-9bc7-4563-8445-e1eed80bbf81","text":"rd:releases","v":"b96952733d28f69b"},"p":"554234d4-1a0a-4f31-b6a1-7899ca841995","previous":{"v":"e79d4b7f535e0dc3"},"stamps":[],"t":1770726102630,"v":"2e14bfa6a4fd4235"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","f5850e39-8581-4b62-8cfe-f4fa95009a1a"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2025-08-07T14:14:42+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1754576082920,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:review","packages":[],"template":"<div class=\"\">\n  <div class=\"flex\">\n    <ae-design class=\"text-lg\" name=\"rd:work-status\" :document=\"document\"></ae-design>\n  </div>\n\n  <div \n    v-if=\"!params.isDialog\"\n    class=\"pl-4\"\n  >\n    <ae-list list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\" :documents=\"data.items\" param-design=\"rd:review\"></ae-list>\n  </div>\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"11da19de-cf09-41bb-abca-892d7e521453","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-01-20T11:58:42+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"p":"f5850e39-8581-4b62-8cfe-f4fa95009a1a","previous":{"v":"3ff2454937ed9f21"},"stamps":[],"t":1768910322564,"v":"405ea5556001759a"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","46a28dfa-7518-4867-9519-a5f4cd9b9967"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"dd51faac-22ba-4385-ab0b-45b38aa69e3c","text":"rd:review","v":"00921f91da1bc8b2"},"created":{"at":"2025-10-21T13:43:24+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1761054204560,"data":{"aliases":[],"controller":"class Controller {\n  init() {\n    locals.showDetails = false\n  }\n}","css":"","description":"","name":"rd:review","packages":[],"template":"<div class=\"\">\n  <section v-if=\"!params.showDetails\" class=\"flex gap-2 items-center\" @click.stop=\"locals.showDetails = !locals.showDetails\">\n    <ae-layout\n      layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n      :param-icon=\"locals.showDetails ? 'fa fa-chevron-circle-up' : 'fa fa-chevron-circle-down'\"\n      @selected=\"locals.showDetails = !locals.showDetails\"\n      :param-disabled=\"params.readonly\"\n    ></ae-layout>\n\n    <ae-design name=\"title\" :document=\"document\" :params=\"params\"></ae-design>\n\n    \n  </section>\n\n  <section \n    v-if=\"locals.showDetails || params.showDetails\"\n    class=\"px-2\"\n  >\n    <ae-form\n      layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\"\n      :document=\"document\"\n      :readonly=\"true\"\n      :view=\"{ only: { fields: ['name', 'responsible']} }\"\n    ></ae-form>\n    <ae-form\n      layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\"\n      :document=\"document\"\n      :readonly=\"true\"\n      :view=\"{ startWithSection: 3 }\"\n    ></ae-form>\n  </section>\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"492f7201-062e-4a47-bfeb-9d8996954fc2","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-11-13T15:27:03+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"dd51faac-22ba-4385-ab0b-45b38aa69e3c","text":"rd:review","v":"00921f91da1bc8b2"},"p":"46a28dfa-7518-4867-9519-a5f4cd9b9967","previous":{"v":"071632f77900a3c3"},"stamps":[],"t":1763047623688,"v":"e2579464aa887388"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","347d38c6-0bce-47ce-b271-9f924c56ac49"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2025-08-07T14:11:09+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1754575869375,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:review","packages":[],"template":"<ae-list list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\"\n          :documents=\"data.parts\"\n          param-design=\"rd:review\"\n          :param-design-params=\"{isDialog: params.isDialog}\"\n></ae-list> \n"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"60f46022-f13e-4118-b2ae-96c01b30af50","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-01-20T11:57:58+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"p":"347d38c6-0bce-47ce-b271-9f924c56ac49","previous":{"v":"1657f729db8fc267"},"stamps":[],"t":1768910278044,"v":"2adf610965583b53"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","aa947792-4f31-40c9-9a6a-e1ad71697911"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2025-08-07T14:15:07+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1754576107166,"data":{"aliases":[],"controller":"class Controller {\n  init() {\n    locals.showDetails = false\n  }\n}","css":"","description":"","name":"rd:review","packages":[],"template":"<div class=\"w-full flex flex-col\">\n  <section class=\"flex gap-2 items-center\" @click.stop=\"locals.showDetails = !locals.showDetails\">\n    <ae-layout\n      layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n      :param-icon=\"locals.showDetails ? 'fa fa-chevron-circle-up' : 'fa fa-chevron-circle-down'\"\n      @selected=\"locals.showDetails = !locals.showDetails\"\n      :param-disabled=\"params.readonly\"\n    ></ae-layout>\n\n    <ae-design name=\"rd:list\" :document=\"document\" :params=\"params\" class=\"flex-1\"></ae-design>\n  </section>\n\n  <section v-if=\"locals.showDetails || params.showDetails\">\n    <ae-list\n      list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\"\n      :documents=\"data.workItems\"\n      param-design=\"rd:work\"\n      :param-divide=\"true\"\n      param-gap=\"medium\"\n      :param-design-params=\"{ readonly: true }\"\n    ></ae-list>\n    <!-- <ae-list\n      list-id=\"2e798091-303f-406b-a42a-93aa1cd8425c\"\n      :documents=\"data.workItems\"\n      param-design=\"rd:work\"\n      :param-design-params=\"{ readonly: true }\"\n    ></ae-list> -->\n  </section>\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"dd51faac-22ba-4385-ab0b-45b38aa69e3c","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-11-17T08:25:43+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"aa947792-4f31-40c9-9a6a-e1ad71697911","previous":{"v":"9d013999e2876a25"},"stamps":[],"t":1763367943787,"v":"7d070ccf66dbe335"},{"id":"3cfe8a87-24a8-4f92-bffc-109dde52257a","v":"59d39fd124cb2706","previous":{"v":"0daf6cc44ee2ada1","p":"fallback-designs","a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"]},"p":"1cc4b977-c14d-4587-af47-d6ac230f60b3","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:save-watcher","template":"<!-- {rd:save-watcher} -->\n<!-- {{ locals.counter }} -->\n<!-- {{locals.show}} -->\n<!-- {{locals.toasts.length}} -->\n\n<!-- <div class=\"flex\">\n  <ae-icon v-if=\"locals.show\" class=\"fa fa-circle-notch animate-spin\"></ae-icon>\n</div> -->\n\n<div class=\"fixed bottom-0 xleft-0 xright-0 z-50 flex flex-col\">\n  <!-- <div >\n    test\n  </div> -->\n    <transition-group name=\"slide\" tag=\"div\" class=\"flex flex-col\">\n      <template v-if=\"locals.toasts.length\">\n        <div class=\"self-center shadow bg-slate-900 text-slate-100 border border-slate-800 rounded-lg mt-1 p-2 w-[400px] flex gap-2\" \n              v-for=\"toast of locals.toasts\" :key=\"toast.id\"  \n        > \n         \n          <div class=\"flex-1 flex gap-2 items-center overflow-hidden\"> \n            <div>\n              <ae-icon class=\"fal fa-check-circle text-green-400\"></ae-icon>\n            </div>\n\n            <div class=\"flex-1 flex justify-center gap-2 overflow-hidden\">\n              <ae-design name=\"title\" :document=\"toast.document\" class=\"truncate mx-1\"></ae-design>\n              <div>\n                gespeichert\n              </div>\n            </div> \n          </div>\n\n          <!-- \n            <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n                    param-icon=\"fa fa-times text-xs\"\n                    @selected=\"controller.openComments()\"\n          ></ae-layout>\n          -->\n\n        </div>\n      </template>\n    </transition-group>\n</div> \n","css":".slide-leave-active,\n.slide-enter-active {\n  transition: all 0.5s;\n}\n\n.slide-enter {\n  transform: translateY(-4);\n}\n.slide-leave-to {\n  transform: translateY(0);\n}\n","controller":"class Controller {\n  async init() {\n    this.watcher = null\n\n    locals.counter = 0\n    locals.show = false\n    locals.toasts = []\n \n    // locals.toasts.push({ id: Aeppic.uuid(), document: await Aeppic.get('51879fba-7088-40d3-a734-c4b048d7ed38') })\n    // locals.toasts.push({ id: Aeppic.uuid() })\n    // locals.toasts.push({ id: Aeppic.uuid(), document: await Aeppic.get('21789513-04e0-4439-9f20-388524256448') })\n    // locals.toasts.push({ id: Aeppic.uuid() })\n\n    this.lastVersion = document.v\n\n    if (!Aeppic.Account) { \n      return \n    }\n\n    this.watcher = Aeppic.watch(document, newDocument => {\n      const updateViaWebsocket = !!newDocument.t\n      // console.log('watcher', document, newDocument, { updateViaWebsocket })\n      \n      if (newDocument.modified.by !== Aeppic.Account.id || updateViaWebsocket) {\n        return \n      }\n\n \n      if (this.lastVersion === newDocument.v) {\n        // console.log('skip', newDocument.v)\n        return\n      }\n      // console.log('willshow!', Date.now(), document, newDocument)\n\n      locals.toasts.push({ id: Aeppic.uuid(), document: newDocument })\n\n      this.lastVersion = newDocument.v\n      locals.counter += 1\n\n      locals.show = true\n\n      const timeout = 4500\n\n      // if (this.timeout) {\n      //   clearTimeout(this.timeout)\n      // }\n \n      Aeppic.setTimeout(() => { \n        locals.toasts.splice(0,1)\n\n        if (!locals.toasts.length) {\n          locals.show = false\n        }\n      }, timeout)\n    })\n  }\n\n  destroy() {\n    this.watcher?.stop()\n    this.watcher = null\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-05-10T14:15:05+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"modified":{"at":"2024-11-08T13:24:45+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"t":1767870469088,"ct":1720684627137,"a_depth":3,"a":["apps","77ee8815-2c3a-4bb5-abd9-90541a545a24","1cc4b977-c14d-4587-af47-d6ac230f60b3"],"a_forms":["folder","application-form","design-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"meta":{"modified":{"at":"2026-01-08T11:07:49+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":"","impersonatedBy":"","from":"","client":"server"}}},{"a":["apps","77ee8815-2c3a-4bb5-abd9-90541a545a24","1cc4b977-c14d-4587-af47-d6ac230f60b3"],"a_depth":3,"a_forms":["folder","application-form","design-folder"],"created":{"at":"2023-02-28T15:36:39+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1677598599554,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:search-card","packages":[],"template":"<div @click.stop=\"$emit('selected', document)\" class=\"flex gap-6 items-center overflow-hidden h-full\">\n  <div class=\"\" v-if=\"!params.hideIcon || params.showAction\">\n    <ae-design v-if=\"params.showAction\" name=\"rd:title-action\" :document=\"document\"></ae-design>\n    <ae-design v-else name=\"rd:icon\" :document=\"document\" :param-use-form-icon=\"!params.useDocumentIcon\"></ae-design>\n  </div>\n\n  <div class=\"h-full flex flex-col flex-1 overflow-hidden\">\n    <ae-design\n      name=\"rd:card-inner\"\n      :document=\"document\"\n      :params=\"params\"\n      class=\"flex-1\"\n      @selected=\"$emit('selected', $event)\"\n    ></ae-design>\n\n    <div v-if=\"!params.hidePath\" class=\"text-neutral-600 text-sm w-full flex justify-between px-2\">\n      <ae-design name=\"rd:path\" :document=\"document\"></ae-design>\n    </div>\n  </div>\n\n  <ae-design v-if=\"params.showCreationInfo\" name=\"rd:creation-info\" :document=\"document\"></ae-design>\n\n  <ae-layout\n    layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n    v-if=\"$listeners['button-right']\"\n    param-icon=\"fal fa-chevron-right\"\n    @selected=\"$emit('button-right', document)\"\n  ></ae-layout>\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"b0e8ae65-5a7d-4e3d-bfd3-546d57edc5fd","inheritedLocks":[null,null,null,null],"locks":[],"meta":{},"modified":{"at":"2026-02-20T12:17:07+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"p":"1cc4b977-c14d-4587-af47-d6ac230f60b3","previous":{"v":"da43f8cac609fdef"},"stamps":[],"t":1771589827472,"v":"5561c0ebc6c70587"},{"a":["apps","77ee8815-2c3a-4bb5-abd9-90541a545a24","1cc4b977-c14d-4587-af47-d6ac230f60b3"],"a_depth":3,"a_forms":["folder","application-form","design-folder"],"created":{"at":"2023-12-22T10:22:17+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1720684627137,"data":{"aliases":[],"controller":"class Controller {\r\n  async init() {\r\n    locals.ready = false\r\n    // find manual lock \r\n    \r\n    locals.canLockIndividually = false\r\n    locals.canEditSecurity = false\r\n    \r\n    locals.individualLock = null\r\n    locals.individualLockTemplate = null\r\n    locals.applicableKeys = []\r\n    locals.securityAdministratorsGroups = []\r\n\r\n    await this._discoverApplicableSecurity()\r\n\r\n    const securityAdministratorsGroup = await this._findSecurityAdministratorsGroup()\r\n    locals.securityAdministratorsGroups = [securityAdministratorsGroup]\r\n\r\n    Aeppic.watch(document.id, async (document) => {\r\n      const allLocks = await Aeppic.getAll(document.locks)\r\n      locals.otherLocks = allLocks.filter(l => !locals.individualLock || !l.originalCloneOf || l.originalCloneOf.id  !== locals.individualLockTemplate.id)\r\n    })\r\n\r\n    if (Aeppic.Account.data.isAdmin) {\r\n      locals.canEditSecurity = true\r\n    } else {\r\n      const securityFolder = await this._findSecurityFolder()\r\n\r\n      const canEdit = await Aeppic.canEdit(document)\r\n      \r\n      if (!Aeppic.Account || Aeppic.Account.data.isGroupAccount || !canEdit) {\r\n        locals.canEditSecurity = false\r\n      } else {\r\n        if (securityFolder && securityFolder.data.manageAccessAdminOnly) {\r\n          const isSecurityAdministrator = !!(await Aeppic.findOne(`id:${Aeppic.Account.id} AND data.groups:${securityAdministratorsGroup.id}`))\r\n          locals.canEditSecurity = isSecurityAdministrator\r\n        } else {\r\n          locals.canEditSecurity = true\r\n        }\r\n      }\r\n    }\r\n\r\n    if (locals.canEditSecurity) {\r\n      await this.showSecurity()\r\n    }\r\n\r\n    locals.ready = true\r\n  } \r\n\r\n  async showSecurity() {\r\n    if (!locals.individualLock) {\r\n      console.log('no individual lock found yet, building one')\r\n      const clonedLock = await Aeppic.clone(locals.individualLockTemplate, document.id)\r\n\r\n      locals.individualLock = clonedLock\r\n    }\r\n  }\r\n\r\n  async _findSecurityAdministratorsGroup() {\r\n    const securityFolder = await this._findSecurityFolder()    \r\n\r\n    if (!securityFolder) {\r\n      return\r\n    }\r\n\r\n    return Aeppic.get(securityFolder.data.securityGroup.id)\r\n  }\r\n\r\n  async _findSecurityFolder() {\r\n    if (!document.a) {\r\n      return null\r\n    }\r\n\r\n    const securityFolders = (await Aeppic.find(`a:${document.a[0]} AND f.id:81939b86-a48e-480e-afd1-cb2907568550`))\r\n\r\n    if (!securityFolders.length) {\r\n      return null\r\n    }\r\n\r\n    if (securityFolders.length > 1) {\r\n      console.error('Found more than 1 security folder')\r\n      return null\r\n    }\r\n\r\n    return securityFolders[0]\r\n  }\r\n\r\n  async _discoverApplicableSecurity() {\r\n    // if (!await this._discoverCloneLockCapabilities()) {\r\n    await this._discoverFormBasedLockCapabilities()\r\n    // }\r\n\r\n    if (locals.individualLockTemplate) {\r\n      locals.canLockIndividually = true\r\n       \r\n      const existingLocks = await Aeppic.getAll(document.locks)\r\n      \r\n      for (const lock of existingLocks) {\r\n        if (!lock) {\r\n          continue\r\n        }\r\n        \r\n        const templateOfLock = lock.originalCloneOf\r\n\r\n        if (templateOfLock && templateOfLock.id === locals.individualLockTemplate.id) {\r\n          locals.individualLock = await Aeppic.edit(lock)\r\n          break\r\n        } \r\n      }\r\n    } else {\r\n      locals.canLockIndividually = false\r\n    }\r\n  }\r\n\r\n  async getRootTemplate(documentToFindRootTemplateOf) {\r\n    let current = documentToFindRootTemplateOf\r\n \r\n    while (current.cloneOf) {\r\n      current = await Aeppic.get(current.cloneOf)\r\n    }\r\n\r\n    return current !== documentToFindRootTemplateOf ? current : null\r\n  }\r\n\r\n\r\n  _discoverCloneLockCapabilities() {\r\n    return false\r\n  }\r\n\r\n  async _discoverFormBasedLockCapabilities() {    \r\n    const defaultLockToUse = await Aeppic.findOne(`p:${document.f.id} f.id:lock-form`)\r\n\r\n    locals.individualLockTemplate = defaultLockToUse\r\n    \r\n    if (locals.individualLockTemplate) {\r\n      locals.applicableKeys = await Aeppic.find(`a:${document.f.id} f.id:key-form data.lock.id:${defaultLockToUse.id}`)\r\n    } else {\r\n      locals.applicableKeys = []\r\n    }\r\n  }\r\n\r\n  async confirmIndividualLockDeletion() {\r\n    const ok = packages.window.confirm('Zugriffsbeschränkung löschen? Das Document ist damit wieder frei lesbar/schreibar.')\r\n\r\n    if (!ok) {\r\n      return\r\n    }\r\n\r\n    const editableDocument = await Aeppic.edit(document)\r\n\r\n    const locks = await Aeppic.getAll(document.locks)\r\n\r\n    for (let i = 0; i < locks.length; i+=1) {\r\n      const lock = locks[i]\r\n      \r\n      if (lock?.data.shared || lock?.p !== document.id) {\r\n        continue\r\n      }\r\n\r\n      const lockDocumentOfReference = lock || document.locks[i]\r\n\r\n      editableDocument.removeLock(lockDocumentOfReference)\r\n    }\r\n\r\n    Aeppic.save(editableDocument)\r\n\r\n  }\r\n}","css":"._CSS-lock-title {\r\n  color: #777;\r\n  text-align:center;\r\n}\r\n\r\n._CSS-fa--fa-lock:before {\r\n  content: \"\\f023\"; }\r\n\r\n._CSS-fa--fa-lock-alt:before {\r\n  content: \"\\f30d\"; }\r\n\r\n._CSS-fa--fa-lock-open:before {\r\n  content: \"\\f3c1\"; }\r\n\r\n._CSS-fa--fa-lock-open-alt:before {\r\n  content: \"\\f3c2\"; }\r\n\r\n\r\n._CSS-fa--fa-toggle-on:before {\r\n  /* content: \"\\f14a\"; */\r\n  content: \"\\f205\";\r\n  color: var(--ae-primary);\r\n  /* font-weight: bold; */\r\n}\r\n\r\n._CSS-fa--fa-toggle-off:before {\r\n  /* content: \"\\f0c8\"; */\r\n  content: \"\\f204\";  \r\n  opacity:0.5;\r\n  color: var(--ae-primary);\r\n  /* font-weight: bold; */\r\n}\r\n\r\n\r\n._CSS-icon {\r\n  font-size:25px;\r\n}\r\n\r\n._CSS-matrix {\r\n  display: table;\r\n  width:100%;\r\n}\r\n\r\n._CSS-cell {\r\n  flex: 1;\r\n  min-width:0px;\r\n  overflow: auto;\r\n}\r\n\r\n._CSS-cell:not(:first-of-type) {\r\n  text-align: center;\r\n}\r\n\r\n._CSS-cell:first-of-type {\r\n  min-width: 12em;\r\n}\r\n \r\n._CSS-cell--header {\r\n  padding-bottom: 1em;\r\n}\r\n\r\n._CSS-row--header {\r\n  min-height: 2em;\r\n}\r\n\r\n._CSS-row {\r\n  display: flex;\r\n}\r\n\r\n._CSS-row > * {\r\n  /* flex: 1; */\r\n  min-width: 1em;\r\n}\r\n","description":"","name":"rd:security-access","packages":[{"id":"10843fbf-4f0c-416b-be7d-42d6bbd0ae68","text":"Window","v":"d4ce6dec568c3dc1"}],"template":"<template v-if=\"locals.ready\">\r\n  <div v-if=\"locals.canEditSecurity\" class=\"p-2\">\r\n    <template v-if=\"locals.otherLocks && locals.otherLocks.length > 0\">\r\n      <div class=\"font-bold\">Zugriff durch System verwaltet</div >\r\n      <p v-for=\"lock of locals.otherLocks\">\r\n        <ae-design name=\"title\" :document-id=\"lock.id\"></ae-design>\r\n      </p> \r\n    </template>\r\n\r\n    <ae-design v-if=\"locals.individualLock\" :document=\"locals.individualLock\" name=\"editor\" :watch=\"false\" param-title=\"Custom Lock\" :param-applicable-keys=\"locals.applicableKeys\" :param-security-administrators-groups=\"locals.securityAdministratorsGroups\" @save=\"scope.close()\"></ae-design>\r\n    \r\n    <div v-if=\"locals.individualLock\" class=\"\">\r\n        <hr style=\"margin: var(--ae-space-4) 0\">\r\n        <div>\r\n          Mit dem Zurücksetzen der Zugriffsbeschränkung ist dieses Document wieder frei lesbar/bearbeitbar.\r\n        </div>\r\n        <button class=\"ae-button\" @click.stop=\"controller.confirmIndividualLockDeletion()\">\r\n          <ae-icon class=\"fa fa-trash\"></ae-icon>\r\n          Zugriffsbeschränkung löschen und zurücksetzen\r\n        </button>\r\n    </div>\r\n  </div>\r\n  <section v-else>\r\n    <ae-icon class=\"far fa-ban\"></ae-icon> Sie können die Zugriffsbeschränkung nicht ändern.\r\n  </section>\r\n</template>\r\n<div v-else>\r\n  <ae-icon class=\"far fa-spinner fa-spin\"></ae-icon>\r\n</div>\r\n"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"653cd342-ba22-42fc-99ab-be1cca71ee81","inheritedLocks":[null,null,null,null],"locks":[],"meta":{},"modified":{"at":"2026-07-21T08:09:54+00:00","backedBy":"","by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":""},"p":"1cc4b977-c14d-4587-af47-d6ac230f60b3","previous":{"v":"d782b5d7ef8aec50"},"stamps":[],"t":1784621394893,"v":"2cc5accc9aec9d0b"},{"a":["apps","77ee8815-2c3a-4bb5-abd9-90541a545a24","1cc4b977-c14d-4587-af47-d6ac230f60b3"],"a_depth":3,"a_forms":["folder","application-form","design-folder"],"created":{"at":"2022-09-19T09:21:16+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1720684627137,"data":{"aliases":[],"controller":"class Controller {\r\n  async init() {\r\n    // find manual lock\r\n    locals.dialog = false\r\n    \r\n    locals.canLockIndividually = false\r\n    locals.canEditSecurity = false\r\n    \r\n    locals.individualLock = null\r\n    locals.individualLockTemplate = null\r\n    locals.applicableKeys = []\r\n    locals.securityAdministratorsGroups = []\r\n    locals.otherLocks = []\r\n\r\n    await this._discoverApplicableSecurity()\r\n\r\n    const securityAdministratorsGroup = await this._findSecurityAdministratorsGroup()\r\n    locals.securityAdministratorsGroups = [securityAdministratorsGroup]\r\n\r\n    Aeppic.watch(document.id, async (document) => {\r\n      const allLocks = await Aeppic.getAll(document.locks)\r\n      locals.otherLocks = allLocks.filter(l => !locals.individualLock || !l.originalCloneOf || l.originalCloneOf.id  !== locals.individualLockTemplate.id)\r\n    })\r\n\r\n    if (Aeppic.Account.data.isAdmin) {\r\n      locals.canEditSecurity = true\r\n      return\r\n    }\r\n\r\n    const securityFolder = await this._findSecurityFolder()\r\n\r\n    const canEdit = await Aeppic.canEdit(document)\r\n    \r\n    if (!Aeppic.Account || Aeppic.Account.data.isGroupAccount || !canEdit) {\r\n      locals.canEditSecurity = false\r\n      return\r\n    }\r\n\r\n    if (Aeppic.Account && Aeppic.Account.data.isAdmin) {\r\n      locals.canEditSecurity = true\r\n      return\r\n    }\r\n\r\n    if (securityFolder && securityFolder.data.manageAccessAdminOnly) {\r\n      const isSecurityAdministrator = !!(await Aeppic.findOne(`id:${Aeppic.Account.id} AND data.groups:${securityAdministratorsGroup.id}`))\r\n      locals.canEditSecurity = isSecurityAdministrator\r\n    } else {\r\n      locals.canEditSecurity = true\r\n    }\r\n\r\n    // this.showHandler = () => {\r\n    // if (this.canEdit) {\r\n    //   this.showSecurity()\r\n    //   }\r\n    // }\r\n\r\n    // $on('show', this.showHandler)\r\n  } \r\n\r\n  async showSecurity() {\r\n    if (!locals.individualLock) {\r\n      console.log('no individual lock found yet, building one')\r\n      const clonedLock = await Aeppic.clone(locals.individualLockTemplate, document.id)\r\n\r\n      locals.individualLock = clonedLock\r\n    }\r\n\r\n    locals.dialog = true\r\n\r\n    await Aeppic.nextRenderPass()\r\n    \r\n    $refs.secureAccessDialog.show() \r\n\r\n    $emit('open')\r\n\r\n  }\r\n\r\n  async _findSecurityAdministratorsGroup() {\r\n    const securityFolder = await this._findSecurityFolder()    \r\n\r\n    if (!securityFolder) {\r\n      return\r\n    }\r\n\r\n    return Aeppic.get(securityFolder.data.securityGroup.id)\r\n  }\r\n\r\n  async _findSecurityFolder() {\r\n    if (!document.a) {\r\n      return null\r\n    }\r\n\r\n    const securityFolders = (await Aeppic.find(`a:${document.a[0]} AND f.id:81939b86-a48e-480e-afd1-cb2907568550`))\r\n\r\n    if (!securityFolders.length) {\r\n      return null\r\n    }\r\n\r\n    if (securityFolders.length > 1) {\r\n      console.error('Found more than 1 security folder')\r\n      return null\r\n    }\r\n\r\n    return securityFolders[0]\r\n  }\r\n\r\n  async _discoverApplicableSecurity() {\r\n    // if (!await this._discoverCloneLockCapabilities()) {\r\n    await this._discoverFormBasedLockCapabilities()\r\n    // }\r\n\r\n    if (locals.individualLockTemplate) {\r\n      locals.canLockIndividually = true\r\n       \r\n      const existingLocks = await Aeppic.getAll(document.locks)\r\n      \r\n      for (const lock of existingLocks) {\r\n        if (!lock) {\r\n          continue\r\n        }\r\n        \r\n        const templateOfLock = lock.originalCloneOf\r\n\r\n        if (templateOfLock && templateOfLock.id === locals.individualLockTemplate.id) {\r\n          locals.individualLock = await Aeppic.edit(lock)\r\n          break\r\n        } \r\n      }\r\n    } else {\r\n      locals.canLockIndividually = false\r\n    }\r\n  }\r\n\r\n  async getRootTemplate(documentToFindRootTemplateOf) {\r\n    let current = documentToFindRootTemplateOf\r\n \r\n    while (current.cloneOf) {\r\n      current = await Aeppic.get(current.cloneOf)\r\n    }\r\n\r\n    return current !== documentToFindRootTemplateOf ? current : null\r\n  }\r\n\r\n\r\n  _discoverCloneLockCapabilities() {\r\n    return false\r\n  }\r\n\r\n  async _discoverFormBasedLockCapabilities() {    \r\n    const defaultLockToUse = await Aeppic.findOne(`p:${document.f.id} f.id:lock-form`)\r\n\r\n    locals.individualLockTemplate = defaultLockToUse\r\n    \r\n    if (locals.individualLockTemplate) {\r\n      locals.applicableKeys = await Aeppic.find(`a:${document.f.id} f.id:key-form data.lock.id:${defaultLockToUse.id}`)\r\n    } else {\r\n      locals.applicableKeys = []\r\n    }\r\n  }\r\n\r\n  async confirmIndividualLockDeletion() {\r\n    const ok = packages.window.confirm('Zugriffsbeschränkung löschen? Das Document ist damit wieder frei lesbar/schreibar.')\r\n\r\n    if (!ok) {\r\n      return\r\n    }\r\n\r\n    const editableDocument = await Aeppic.edit(document)\r\n\r\n    const locks = await Aeppic.getAll(document.locks)\r\n\r\n    for (let i = 0; i < locks.length; i+=1) {\r\n      const lock = locks[i]\r\n      \r\n      if (lock?.data.shared || lock?.p !== document.id) {\r\n        continue\r\n      }\r\n\r\n      const lockDocumentOfReference = lock || document.locks[i]\r\n\r\n      editableDocument.removeLock(lockDocumentOfReference)\r\n    }\r\n\r\n    Aeppic.save(editableDocument)\r\n\r\n    locals.dialog = false\r\n  }\r\n}","css":"._CSS-lock-title {\r\n  color: #777;\r\n  text-align:center;\r\n}\r\n\r\n._CSS-fa--fa-lock:before {\r\n  content: \"\\f023\"; }\r\n\r\n._CSS-fa--fa-lock-alt:before {\r\n  content: \"\\f30d\"; }\r\n\r\n._CSS-fa--fa-lock-open:before {\r\n  content: \"\\f3c1\"; }\r\n\r\n._CSS-fa--fa-lock-open-alt:before {\r\n  content: \"\\f3c2\"; }\r\n\r\n\r\n._CSS-fa--fa-toggle-on:before {\r\n  /* content: \"\\f14a\"; */\r\n  content: \"\\f205\";\r\n  color: var(--ae-primary);\r\n  /* font-weight: bold; */\r\n}\r\n\r\n._CSS-fa--fa-toggle-off:before {\r\n  /* content: \"\\f0c8\"; */\r\n  content: \"\\f204\";  \r\n  opacity:0.5;\r\n  color: var(--ae-primary);\r\n  /* font-weight: bold; */\r\n}\r\n\r\n\r\n._CSS-icon {\r\n  font-size:25px;\r\n}\r\n\r\n._CSS-header { \r\n  display:flex;\r\n  align-items: center;\r\n  justify-content: space-between; \r\n}\r\n\r\n._CSS-ae-dialog {\r\n  border:none;\r\n}\r\n\r\n\r\n._CSS-dialog__header {\r\n  flex: 1;\r\n  display: flex;\r\n  justify-content: space-between;\r\n}\r\n\r\n._CSS-dialog-footer {\r\n  flex: 1;\r\n  display: flex;\r\n  justify-content: flex-end;\r\n}\r\n\r\n._CSS-dialog-footer > * {\r\n  margin-left:12px;\r\n}\r\n\r\n._CSS-matrix {\r\n  display: table;\r\n  width:100%;\r\n}\r\n\r\n._CSS-cell {\r\n  flex: 1;\r\n  min-width:0px;\r\n  overflow: auto;\r\n}\r\n\r\n._CSS-cell:not(:first-of-type) {\r\n  text-align: center;\r\n}\r\n\r\n._CSS-cell:first-of-type {\r\n  min-width: 12em;\r\n}\r\n \r\n._CSS-cell--header {\r\n  padding-bottom: 1em;\r\n}\r\n\r\n._CSS-row--header {\r\n  min-height: 2em;\r\n}\r\n\r\n._CSS-row {\r\n  display: flex;\r\n}\r\n\r\n._CSS-row > * {\r\n  /* flex: 1; */\r\n  min-width: 1em;\r\n}\r\n","description":"","name":"rd:security-access-button","packages":[{"id":"10843fbf-4f0c-416b-be7d-42d6bbd0ae68","text":"Window","v":"d4ce6dec568c3dc1"}],"template":"<ae-layout\r\n  layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\r\n  :param-icon=\"document.locks.length ? 'far fa-lock': 'far fa-lock-open'\"\r\n  @selected=\"controller.showSecurity()\"\r\n  :param-disabled=\"!(locals.canLockIndividually && locals.canEditSecurity)\"\r\n  param-text=\"Zugriffe verwalten\"\r\n  :param-title=\"document.locks.length ? 'Zugriff gesichert' : 'Nicht abgeschlossen'\"\r\n  param-classes=\"w-full\"\r\n></ae-layout>\r\n\r\n<ae-dialog\r\nv-if=\"locals.dialog\"\r\n  ref=\"secureAccessDialog\"\r\n  :open=\"false\"\r\n  :full-screen=\"Aeppic.Device !== 'Desktop'\"\r\n  :backdrop-close=\"false\"\r\n  :dialog-size=\"{ height: '80vh' }\"\r\n  @close=\"locals.dialog = false\"\r\n>\r\n  <div slot=\"header\" class=\"_CSS-header\" slot-scope=\"headerScope\">\r\n    <ae-design :document=\"document\" name=\"search-title\" :param-minimized-info=\"true\"></ae-design>\r\n    <button @click=\"headerScope.close()\" class=\"ae-button\">\r\n      <ae-icon class=\"far fa-times\"></ae-icon>\r\n    </button>\r\n  </div>\r\n  <div slot=\"body\" slot-scope=\"scope\">\r\n    <div v-if=\"locals.otherLocks.length > 0\" class=\"border border-amber-500 rounded-md p-2 mb-4\">\r\n      <div class=\"font-bold\">\r\n        Zugriff durch System verwaltet\r\n        <ae-control\r\n          name=\"rd:help\"\r\n          :document=\"document\"\r\n          param-text=\"Diese Zugriffe können Sie nicht editieren oder hier einsehen. Bizpin hat bei diesem Document automatisiert eine Berechtigung erstellt.\"\r\n        ></ae-control>\r\n      </div>\r\n      <div v-for=\"lock of locals.otherLocks\" class=\"flex gap-4\">\r\n        <div class=\"w-32 truncate\">{{lock.data.name}}</div>\r\n        <div class=\"truncate flex-1\" :title=\"lock.data.description\">{{lock.data.description || '-'}}</div>\r\n      </div>\r\n    </div>\r\n\r\n    <ae-design\r\n      v-if=\"locals.individualLock\"\r\n      :document=\"locals.individualLock\"\r\n      name=\"rd:editor\"\r\n      :watch=\"false\"\r\n      param-title=\"Custom Lock\"\r\n      :param-applicable-keys=\"locals.applicableKeys\"\r\n      :param-security-administrators-groups=\"locals.securityAdministratorsGroups\"\r\n      @save=\"scope.close()\"\r\n    ></ae-design>\r\n\r\n    <div v-if=\"locals.individualLock\">\r\n      <hr style=\"margin: var(--ae-space-4) 0\" />\r\n      <div>\r\n        Mit dem Zurücksetzen der Zugriffsbeschränkung ist dieses Document wieder frei lesbar/bearbeitbar. Diese Löschung\r\n        betrifft keine \"System verwalteten Schlösser\".\r\n      </div>\r\n      <ae-layout\r\n        layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\r\n        param-icon=\"far fa-trash\"\r\n        param-text=\"Zugriffsbeschränkung löschen und zurücksetzen\"\r\n        :param-disabled=\"locals.individualLock.t == null\"\r\n        @selected=\"controller.confirmIndividualLockDeletion()\"\r\n      ></ae-layout>\r\n    </div>\r\n  </div>\r\n</ae-dialog>\r\n"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"e9038925-570a-456e-86bf-1d358139b409","inheritedLocks":[null,null,null,null],"locks":[],"meta":{},"modified":{"at":"2026-07-21T08:09:13+00:00","backedBy":"","by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":""},"p":"1cc4b977-c14d-4587-af47-d6ac230f60b3","previous":{"v":"e447a111d83548e4"},"stamps":[],"t":1784621353112,"v":"9d202bc0b2bd2141"},{"a":["apps","144e85c0-d7f9-4b20-8928-be30f0c78bda","8e6ee7d3-9122-4a2e-8aaf-9fb3bd204b23","d2ac3563-3c3f-4f02-b923-9b67abf98d10"],"a_depth":4,"a_forms":["folder","application-form","folder","form"],"created":{"at":"2023-01-05T12:58:27+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1672923510997,"data":{"aliases":[],"controller":"class Controller {\n  init() {\n    locals.account = null\n    locals.account = this.getAccount(document)\n\n    Aeppic.watch(document, (doc) => {\n      locals.account = this.getAccount(doc)\n    })\n  }\n\n  getAccount(profile) {\n    return params.accounts?.find(account => account.p === profile.id)\n  }\n}\n\n// async getAccount(profile) {\n//   const asProfileRef = await Aeppic.findOne(`a:${document.a[0]} f.id:account account.data.profilePage.id:${profile.id}`, { includeHidden: true })\n\n//   if (asProfileRef) {\n//     return asProfileRef\n//   }\n\n//   const asProfileParent = await Aeppic.findOne(`a:${document.a[0]} f.id:account p:${profile.id}`, { includeHidden: true })\n\n//   if (asProfileParent) {\n//     return asProfileParent\n//   }\n\n//   return null\n// }\n ","css":"","description":"","name":"rd:security-table-card","packages":[],"template":"<div class=\"flex\" \n    :class=\"[locals.account?.data.disabled && 'text-neutral-500 line-through italic', params.selected && 'bg-blue-50']\"\n    @click.stop=\"$emit('selected', document)\"\n>\n  <ae-design name=\"rd:table-card\" :document=\"document\"\n          @selected=\"$emit('selected', document)\"\n          class=\"flex-1\"\n  ></ae-design>\n\n  <div class=\"flex flex-col p-1\">\n    <div v-if=\"locals.account?.data.disabled\" title=\"Account/Anmeldung deaktiviert\">\n      <ae-icon class=\"fa fa-ban text-red-500\"></ae-icon>\n    </div>\n    <div v-if=\"locals.account?.data.allowDirectLogin\" title=\"Direkte Anmeldung erlaubt\">\n      <ae-icon  class=\"fa fa-sign-in\"></ae-icon>\n    </div>\n    <div v-if=\"data.externerMitarbeiter\" title=\"Externer Mitarbeiter\">\n      <ae-icon  class=\"fa fa-globe\"></ae-icon>\n    </div>\n  </div>\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"c2d9ae57c7a46896"},"id":"071f6f2a-e60e-40cb-85d8-8b2d07b38c49","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-11-27T12:13:21+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"d2ac3563-3c3f-4f02-b923-9b67abf98d10","previous":{"v":"f0d92a568c6eeeb4"},"stamps":[],"t":1764245601123,"v":"718bb0af9ad65a7b"},{"a":["apps","77ee8815-2c3a-4bb5-abd9-90541a545a24","1cc4b977-c14d-4587-af47-d6ac230f60b3"],"a_depth":3,"a_forms":["folder","application-form","design-folder"],"created":{"at":"2023-12-18T15:39:01+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1720684627137,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    this.MOVE_SETTINGS_FORM = 'f55ad852-a338-4c03-97aa-5f172a68d437'\n\n    this._touchTimer = null\n    this._touchMoveHandler = null\n\n    if (params.name) {\n      console.warn('[design:selectable] param name is deprecated, use designName')\n    }\n\n    locals.availableMenuEntries = []\n    locals.isSelected = false\n\n    this._onSelectionChange = async () => {\n      await this._updateIsSelected()\n    }\n\n    const selected = await this._updateIsSelected()\n\n    if (selected) {\n      packages.SelectionManager.addOnChangeHandler(this._onSelectionChange)\n    }\n\n    watchParam('forceWatchSelection', () => {\n      if (params.forceWatchSelection === true) {\n        packages.SelectionManager.addOnChangeHandler(this._onSelectionChange)\n        return\n      }\n      \n      if (!locals.isSelected) {\n        packages.SelectionManager.removeOnChangeHandler(this._onSelectionChange)\n      }\n    })\n\n    watchParam('forceSelection', (newValue) => {\n      locals.isSelected = newValue\n    })\n\n    this.watchTouchmove()\n  }\n\nasync watchTouchmove() {\n  await Aeppic.nextRenderPass()\n  await Aeppic.nextRenderPass()\n  \n  this._touchMoveHandler = (event) => {\n    if (this._touchTimer) {\n      clearTimeout(this._touchTimer)\n      this._touchTimer = null\n    }\n\n    this.closeContextMenu()\n  }\n\n  $refs.move && $refs.move.$root && $refs.move.$root.$el && $refs.move.$root.$el.addEventListener('touchmove', this._touchMoveHandler)\n}\n\n  _handlerHandledByThisInstance() {\n    return !params.forceWatchSelection\n  }\n\n  async _updateIsSelected() {\n    const isSelected = await packages.SelectionManager.includes(document.id)\n\n    locals.isSelected = isSelected\n\n    return isSelected\n  }\n\n  async _hasAccess() {\n    // check Vollberechtigung first (for non workflow documents)\n    if (await Aeppic.canEdit(document)) {\n      return true\n    }\n\n    // then check documents in RELEASE_PROCESS workflow \n    const RELEASE_PROCESS = 'bbd555c5-a65d-484e-9fed-7564a1c21ebc'\n    locals.workflow = new packages.DocumentWorkflow(document.id, { workflow: RELEASE_PROCESS, Aeppic })\n \n    if (!(await locals.workflow.isAvailable())) {\n      return false\n    }\n\n    const configuration = await locals.workflow._getWorkflowConfiguration()\n\n    const actorEditorId = '09dfd0d2-08b5-41dd-965d-329c3807ecd2'\n    const right = await Aeppic.findOne(`p:${configuration.id} f.id:d4d31804-1519-4866-8808-52a4f656a041 data.actors:${actorEditorId}`)\n\n    return await Aeppic.hasAccess(document, right)\n  }\n\n  async toggleSelection() {\n    console.log('toggleSelection', params.selectionId)\n    if (await this._hasAccess() === false) {\n      return\n    }\n\n    if (params.selectionId) {\n      const selection = packages.Selections.create(params.selectionId)\n\n      if (selection.includes(document.id)) {\n        locals.isSelected = false\n        selection.remove(document.id)\n      } else {\n        selection.add(document.id)\n        locals.isSelected = true\n      }\n\n      if (!selection.result()) {\n        packages.Selections.delete(params.selectionId)\n      }\n\n      return\n    }\n\n    const canMove = await this.canMove(document)\n\n    if (!canMove) {\n      return\n    }\n\n    if (locals.isSelected) {\n      locals.isSelected = false\n      \n      packages.SelectionManager.remove(document.id)\n\n      if (this._handlerHandledByThisInstance()) {\n        packages.SelectionManager.removeOnChangeHandler(this._onSelectionChange)\n      }\n    } else {\n      locals.isSelected = true\n\n      packages.SelectionManager.add(document.id)\n\n      if (this._handlerHandledByThisInstance()) {\n        packages.SelectionManager.addOnChangeHandler(this._onSelectionChange)\n      }\n    }\n  }\n\n  touchStart(event) {\n    if (this._touchTimer) {\n      clearTimeout(this._touchTimer)\n    }\n\n    if (!event.touches[0]) {\n      return\n    }\n\n    // FIXME: preventDefault will prevent any native (desktop) contextmenu BUT also prevents scrolling\n    // event.preventDefault()\n\n    this._touchTimer = setTimeout(() => {\n      this._touchTimer = null\n\n      event.preventDefault()\n      this.showContextmenu(event.touches[0])\n    }, 500)\n  }\n\n  touchEnd(event) {\n    if (this._touchTimer) {\n      clearTimeout(this._touchTimer)\n      this._touchTimer = null\n\n      $emit('selected', document)\n    }\n  }\n\n  async showContextmenu(clickEvent) {\n   if (await this._hasAccess() === false) {\n      return\n    }\n\n    // TODO: make move and select independant of each other. A selection could also be used for deletion\n    const [ canMove, hasContextMenuDesign ] = await Promise.all([this.canMove(document), Aeppic.findOne(`p:${document.f.id} f.id:design-form data.name:contextmenu__entries`)])\n\n    if (canMove) {\n      locals.availableMenuEntries.push('move')\n      locals.availableMenuEntries.push('select')\n    }\n\n    if (canMove || hasContextMenuDesign) {\n      $refs.contextmenu.showAtPosition(clickEvent)\n    }\n  }\n\n  async canMove(targetDocument) {\n    const moveSettings = await Aeppic.findOne(`p:${document.f.id} f.id:${this.MOVE_SETTINGS_FORM}`)\n    if (!moveSettings) {\n      return false\n    }\n\n    if (moveSettings.data.actions && moveSettings.data.actions.length) {\n      const results = await Aeppic.Actions.run(moveSettings.data.actions, { document: document })\n      const canMove = results.every(actionResult => actionResult.ok && actionResult.value)\n\n      return canMove\n    }\n\n    return true\n  }\n\n  closeContextMenu() {\n    $refs.contextmenu && $refs.contextmenu.close()\n  }\n\n  destroy() {\n    packages.SelectionManager.removeOnChangeHandler(this._onSelectionChange)\n\n    if (this._touchMoveHandler) {\n      $refs.move && $refs.move.$root && $refs.move.$root.$el && $refs.move.$root.$el.removeEventListener('touchmove', this._touchMoveHandler)\n    }\n\n    this.closeContextMenu()\n\n    if (params.selectionId) {\n      const selection = packages.Selections.get(params.selectionId)\n      if (selection) {\n        selection.remove(document.id)\n      }\n    }\n  }\n}\n\n","css":"._CSS-ae-menu {\n  background: var(--ae-ui-card-background);\n  font-size: 1rem;\n  border: var(--ae-border-width) solid var(--ae-border-color);\n  border-radius: var(--ae-border-radius);\n  padding: var(--ae-size-2) 0;\n  box-shadow: var(--ae-shadow-2);\n  transition: opacity .15s, visibility 1s;\n}\n\n._CSS-ae-menu-list {\n  list-style: none;\n  padding: var(--ae-size-1) 0;\n  margin: 0;\n}\n._CSS-ae-menu-item {\n  padding:var(--ae-size-1); \n  margin:0;\n  font-size: var(--ae-font-size-3);\n}\n._CSS-ae-menu:focus {\n  outline: none;\n}\n._CSS-ae-menu-item:hover {\n  background: var(--ae-background-200);\n  cursor: pointer;\n}\n\n._CSS {\n  border-radius: var(--ae-border-radius);\n  position: relative;\n}\n\n._CSS-selectable {\n  width: 100%;\n}","description":"# Description\n\nThis design is a wrapper-design which manages its state within the global SelectionManager. \n\n# Usage\n\n> Making the card-design selectable \n\n```html\n<ae-design :document=\"document\" name=\"selectable\" param-name=\"card\"></ae-design>\n```\n\n```html\n<div class=\"_CSS-card\" :style=\"{ background: params.isSelected ? 'blue' : '' }\">\n</div>\n```\n\nThe card design gets a parameter `isSelected` and should change is appearance accordingly, e.g. showing a blueish overlay if isSelected === true.","name":"rd:selectable","packages":[{"id":"d648078c-4579-4023-a4ec-b7b9cf639b70","text":"Selection Manager v2","v":"d74941012254b9c7"},{"id":"9980d952-e898-413a-af84-051795281aca","text":"Workflow","v":"0160c43d3c878c2a"}],"template":"<ae-design  v-if=\"params.name || params.designName\"\n            :name=\"params.name || params.designName\"\n            :document=\"document\"\n            ref=\"selectable\"\n            class=\"_CSS-selectable\"\n            :class=\"{ 'ae-selected': locals.isSelected }\"\n            @touchstart.native.stop=\"controller.touchStart($event)\"\n            @touchend.native.stop=\"controller.touchEnd($event)\"\n            @click.right.stop.prevent.native=\"controller.showContextmenu($event)\"\n            @click.meta.stop.capture.native=\"controller.toggleSelection()\"\n            @click.ctrl.stop.capture.native=\"controller.toggleSelection()\"\n            :params=\"{ ...params, isSelected: locals.isSelected }\"\n            v-on=\"$listeners\"\n></ae-design>\n<!-- @click.meta.stop.capture.native=\"controller.toggleSelection()\"\n@click.ctrl.stop.capture.native=\"controller.toggleSelection()\" -->\n<div v-else>\n  Provide param-design-name\n</div>\n\n<ae-popup ref=\"contextmenu\" placement=\"bottom-start\">\n\t<div class=\"_CSS-ae-menu\" slot=\"popup\" slot-scope=\"menu\">\n\t\t<ul class=\"_CSS-ae-menu-list\" style=\"min-width: 10rem;\">\n\t\t\t<li v-if=\"locals.availableMenuEntries.includes('select')\" class=\"_CSS-ae-menu-item\" @click.stop=\"controller.toggleSelection();menu.close()\">Auswählen</li>\n\t\t\t<li v-if=\"locals.availableMenuEntries.includes('move')\" class=\"_CSS-ae-menu-item\" @click.stop=\"$refs.move.$emit('show', document);menu.close()\">Verschieben</li>\n      <ae-design name=\"contextmenu__entries\" :document=\"document\"></ae-design>\n      <!-- <li class=\"_CSS-ae-menu-item\">\n        <ae-layout layout-id=\"0ded34c5-1221-4511-af93-d897a79f1369\" :param-document=\"document\"></ae-layout> \n      </li> -->\n\t\t</ul>\n\t</div>\n</ae-popup>\n\n<ae-layout ref=\"move\" layout-id=\"6de540a9-0130-4fa6-839b-647b8bd33dc5\"></ae-layout>\n"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"29108a8b-6483-4511-9bda-bbc3a964bf5b","inheritedLocks":[null,null,null,null],"locks":[],"meta":{},"modified":{"at":"2026-07-21T08:29:39+00:00","backedBy":"","by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":""},"p":"1cc4b977-c14d-4587-af47-d6ac230f60b3","previous":{"v":"d628f36042f53ec0"},"stamps":[],"t":1784622579355,"v":"6a160af08c0e850f"},{"id":"47ba2316-c288-4e72-bb72-01d932e44e0e","v":"e07f83cc99a17846","previous":{"v":"786f1435a9f14ead"},"p":"8fef472f-9220-484b-99cd-bb80f208f795","f":{"id":"design-form","v":"22a757f630104010","text":"Design"},"data":{"name":"rd:selection_copyable-mailtos","template":"<div class=\"flex flex-col gap-1\">\n  <section class=\"full border rounded-md py-1 px-2 flex flex-col gap-1 bg-white\">\n    <label class=\"font-medium flex-1 text-neutral-600\">\n      Alle ({{ locals.mailtos.allEntries.length }})\n    </label>\n    <textarea class=\"min-h-[10px] rounded-md p-1 bg-white\" readonly=\"true\" :value=\"locals.mailtos.all\" rows=\"5\"></textarea>\n  </section>\n\n  <section class=\"full border rounded-md py-1 px-2 flex flex-col gap-1 bg-white\">\n    <label class=\"font-medium flex-1 text-neutral-600\">\n      Ohne Agentur ({{ locals.mailtos.withoutAgencyEntries.length }})\n    </label>\n    <textarea class=\"min-h-[10px] rounded-md p-1 bg-white\" readonly=\"true\" :value=\"locals.mailtos.withoutAgency\" rows=\"5\"></textarea>\n  </section>\n  <section class=\"full border rounded-md py-1 px-2 flex flex-col gap-1 bg-white\">\n    <label class=\"font-medium flex-1 text-neutral-600\">\n      Agenturen ({{ locals.mailtos.agencysEntries.size }})\n    </label>\n    <textarea class=\"min-h-[10px] rounded-md p-1 bg-white\" readonly=\"true\" :value=\"locals.mailtos.agencys\" rows=\"5\"></textarea>\n  </section> \n\n  <section class=\"full border rounded-md py-1 px-2 flex flex-col gap-1 bg-white\">\n    <label class=\"font-medium flex-1 text-neutral-600\">\n      Agenturen (von Talents) ({{ locals.mailtos.agencysByTalentsEntries.length }})\n    </label>\n    <textarea class=\"min-h-[10px] rounded-md p-1 bg-white\" readonly=\"true\" :value=\"locals.mailtos.agencysByTalents\" rows=\"5\"></textarea>\n  </section> \n\n  <section class=\"full border rounded-md py-1 px-2 flex flex-col gap-1 bg-white\">\n    <label class=\"font-medium flex-1 text-neutral-600\">\n      Agenturen OHNE E-MAIL ({{ locals.mailtos.agencysMissingEntries.size }})\n    </label>\n    <textarea class=\"min-h-[10px] rounded-md p-1 bg-white\" readonly=\"true\" :value=\"locals.mailtos.agencysMissing\" rows=\"5\"></textarea>\n  </section> \n</div>\n","css":"","controller":"class Controller {\n  init() {\n    this.FORMS = {\n      Application: '009c0da4-718f-43d0-964a-647e30074d94',\n      AgencyAbbreviation: '2168bcf2-5523-4f2f-8053-7e7f8c3ceba8',\n    }\n  \n    locals.documents = []\n    locals.mailtos = {\n      allEntries: [],\n      all: '',\n      withoutAgencyEntries: [],\n      withoutAgency: '',\n      agencys: '',\n      agencysEntries: [],\n      agencysByTalents: '',\n      agencysByTalentsEntries: [],\n      agencysMissing: '',\n      agencysMissingEntries: []\n    }\n\n    this.update()\n  }\n\n  async update() {\n    const selection = packages.Selections.get(document.f.id)\n    if (!selection) {\n      locals.documents = []\n      return\n    }\n\n    const documents = await Aeppic.find(selection.result(), { size: 9999 })\n    console.log(documents)\n    locals.documents = documents.filter(d => d && d.f.id === this.FORMS.Application)\n\n    locals.mailtos = await this.getMailtos()\n    console.log(locals.mailtos)\n  }\n\n  async getMailtos() {\n    const abbrs = await Aeppic.find(`a:${document.a[0]} f.id:${this.FORMS.AgencyAbbreviation} `, { size: 9999 })\n\n    const result = {\n      all: '',\n      allEntries: [],\n      withoutAgencyEntries: [],\n      withoutAgency: '',\n      agencys: '',\n      agencysEntries: new Set(),\n      agencysMissing: '',\n      agencysMissingEntries: new Set(),\n      agencysByTalents: '',\n      agencysByTalentsEntries: [],\n    }\n\n    for (const doc of locals.documents) {\n      const { email, agencyAbbreviation, name, agencyEmail, agencyName, agencyEmailByTalent, agencyEmailByTalentNone } = doc.data\n      console.log({email, agencyAbbreviation, name, agencyEmail, agencyEmailByTalent })\n\n      if (!agencyEmailByTalentNone && agencyEmailByTalent) {\n        const formattedAgencyEmailByTalent = `${agencyName}<${agencyEmailByTalent}>`\n\n        result.agencysByTalentsEntries.push(formattedAgencyEmailByTalent)\n      }\n\n      const formattedEmail = `${name}<${email}>`\n\n      if (!formattedEmail) {\n        continue\n      }\n\n      result.allEntries.push(formattedEmail)\n\n      \n      let documentWithEmailAndAbbr = doc\n\n      const isZavModel = agencyAbbreviation && agencyAbbreviation.trim() === 'ZAV'\n\n      if (!isZavModel) {\n        documentWithEmailAndAbbr =  abbrs.find(abbr => abbr.data.agencyAbbreviation === agencyAbbreviation) || doc\n      }\n\n      console.log({documentWithEmailAndAbbr})\n\n      if (isZavModel) {\n        result.withoutAgencyEntries.push(formattedEmail)\n      } else {\n        const agencyEmailByAbbr = documentWithEmailAndAbbr.data.agencyEmail\n        const agencyAbbr = documentWithEmailAndAbbr.data.agencyAbbreviation\n\n        if (agencyEmailByAbbr) {\n          const formattedAgencyEmail = `${agencyAbbr}<${agencyEmailByAbbr}>`\n          result.agencysEntries.add(formattedAgencyEmail)\n        } else {\n          result.agencysMissingEntries.add(agencyAbbr || documentWithEmailAndAbbr.data.agencyName)\n        }\n      }\n    }\n\n    for (const key of ['all', 'withoutAgency', 'agencys', 'agencysMissing', 'agencysByTalents']) {\n      result[key] = [...result[`${key}Entries`]].join(',')\n    }\n\n    return result\n  }\n\n  async toggleAgencyMail() {\n    locals.useLatestAgencyMail = !locals.useLatestAgencyMail\n\n    await this.update()\n  }\n}\n","packages":[{"id":"d648078c-4579-4023-a4ec-b7b9cf639b70","v":"2717577f8f96b28a","text":"Selection Manager v2"}],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-07-01T12:45:19+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-10-02T14:26:27+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1727879187635,"ct":1727876098976,"a_depth":4,"a":["apps","3fbe0efd-713a-457a-a34c-3a12aa19d6bb","0fb162f4-0f78-4c1e-aad2-43c27e6d98cb","8fef472f-9220-484b-99cd-bb80f208f795"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","94a64d89-d204-4918-b147-d717914fb03e","f254ce25-42f1-4333-8ee7-23554bf746c1","98c77209-1245-43d6-90b5-8625183f470c"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2024-03-26T15:06:51+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1711465611340,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.servicesFields = [\n      'kfwEnev',\n      'enev',\n      'energieausweis',\n      'blowerDoorTest',\n      'brandschutz',\n      'brandschutzbauleitung',\n      'schallschutz',\n      'schallschutzKontrollen',\n      'schallschutzmessung',\n      'simulation',\n      'architektur',\n      'wohngebaeudeSanierung',\n      'nichtWohngebaeudeSanierung',\n      'wohngebaeudeNeubau',\n      'nichtWohngebaeudeNeubau',\n      'elektrotechnik',\n      'heizungLueftungSanitaer',\n      'tragwerksplanung',\n      'nachhaltigkeit',\n'sachverstaendige',\n    ]\n\n    locals.canEdit = false\n    locals.view = {\n      only: {\n        fields: [\n          'leistungen'\n        ]\n      }\n    }\n\n    const commandResult = await Aeppic.Commands.execute('a127d2a2-d04b-406c-b9ed-a5b29f79f9fa', document, { Account: Aeppic.Account })\n\n    if (commandResult.ok) {\n      const isReadonly = commandResult.value\n      locals.canEdit = !isReadonly\n    }\n  }\n}","css":"","description":"","name":"rd:services","packages":[],"template":"<!-- NOTE: this design is actually a fancy field and intended to be used a replacement for 'leistungen' field control -->\n<div class=\"h-full flex flex-col gap-4\" ref=\"container\"\n    data-test=\"leistungen\"\n>\n    <ae-form :document=\"document\"\n              :view=\"locals.view\"\n              layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\"\n              class=\"w-full\"\n  ></ae-form>\n  <!-- <ae-design name=\"rd:toolbar\" :document=\"document\" :params=\"{ disableSortFilter: true, commands: [] }\"></ae-design> -->\n\n\n<div class=\"w-full mx-auto max-w-5xl\">\n  <div class=\"bg-white dark:bg-slate-800 rounded-md p-4 xl:shadow flex flex-col gap-6\">\n\n    <template v-if=\"Array.isArray(data[locals.servicesFields[0]])\">\n      <!-- Newly upgraded form -->\n      <template v-for=\"fieldName of locals.servicesFields\" v-if=\"data[fieldName]?.length\">\n        \n        <ae-layout v-for=\"ref of data[fieldName]\"\n                    layout-id=\"586680e3-9456-4391-a265-dcde8995f49a\"\n                  :param-document-id=\"ref.id\"\n                  :param-field-name=\"fieldName\"\n                  :data-test=\"'leistungen_' + fieldName\"\n        ></ae-layout>\n      </template>\n    </template>\n    <template v-else>\n      <!-- Old form with no cardinality -->\n      <div v-for=\"fieldName of locals.servicesFields\" v-if=\"data[fieldName]?.id\">\n        <ae-layout layout-id=\"586680e3-9456-4391-a265-dcde8995f49a\"\n                  :param-document-id=\"data[fieldName].id\"\n                  :param-field-name=\"fieldName\"\n        ></ae-layout>\n      </div>\n    </template>\n  </div>\n  </div>\n</div>   "},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"9c73bb99-490f-4243-b8a2-470410933ae2","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-03-06T12:56:33+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"p":"98c77209-1245-43d6-90b5-8625183f470c","previous":{"v":"3ab49c7fb90a8d90"},"stamps":[],"t":1772801793858,"v":"e93b6e3fe31eb002"},{"a":["apps","77ee8815-2c3a-4bb5-abd9-90541a545a24","1cc4b977-c14d-4587-af47-d6ac230f60b3"],"a_depth":3,"a_forms":["folder","application-form","design-folder"],"created":{"at":"2024-06-26T12:12:18+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1719403938771,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      SharedDocument: '804bed89-803a-4090-8b1b-857cab8ec6dd'\n    }\n\n    locals.copiedText = ''\n    locals.baseUrl = `${packages.window.location.origin}/shared/`\n\n    locals.links = []\n\n    const linksQuery = `p:${document.id} f.id:${this.FORMS.SharedDocument}`\n\n    Aeppic.watch(document, async () => {\n      locals.links = await Aeppic.find(linksQuery)  \n    })\n \n    locals.links = await Aeppic.find(linksQuery)\n  }\n\n\n  copyToClipboard(link, refsIndex) {\n    // const hasPassword = !!link.data.targetInfo.split(',')[0]?.trim()\n\n    const text = [\n      locals.baseUrl,\n      link.id,\n      // !hasPassword && '?auto'\n    ]\n\n    Aeppic.copyToClipboard(text.filter(Boolean).join(''))\n    \n    $refs.popup.show({ target: $refs.buttons[refsIndex]?.$el })\n  }\n}","css":"","description":"","name":"rd:shared-document-links","packages":[{"id":"10843fbf-4f0c-416b-be7d-42d6bbd0ae68","text":"Window","v":"cc146accf5ec1930"}],"template":"<div>\n  <div class=\"flex gap-1 flex-wrap\">\n    <div v-for=\"(link, index) of locals.links\">\n      <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n                :params=\"{\n                  icon: 'far fa-clipboard',\n                  text: 'Link in Zwischenablage kopieren',\n                  title: 'Link in Zwischenablage kopieren',\n                }\"\n                @selected=\"controller.copyToClipboard(link, index)\"\n                ref=\"buttons\" \n      ></ae-layout>\n      <!-- <input type=\"text\" :value=\"locals.baseUrl + link.id\" style=\"width:100%;background:var(--ae-ui-background);\" readonly> -->\n    </div>\n  </div>\n\n  <ae-popup ref=\"popup\" :close-delay=\"2000\">\n    <div class=\"p-1\">\n      <p>Link in Zwischenablage kopiert</p>\n    </div>\n  </ae-popup>\n</div>"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"ec34e0f7-e1e0-46c8-a209-46a71d29a6f0","inheritedLocks":[null,null,null,null],"locks":[],"meta":{},"modified":{"at":"2026-07-28T08:23:39+00:00","backedBy":"","by":"b7485498-f1f3-4ab1-87d1-9cb63ea890c8","client":"server","from":"","impersonatedBy":""},"p":"1cc4b977-c14d-4587-af47-d6ac230f60b3","previous":{"v":"73621b9d9313f1d6"},"stamps":[],"t":1785227019973,"v":"81b68a7b403a1b4f"},{"id":"4e540f89-ec69-44d9-b597-76cf245b706b","v":"c737950ebb348f1a","previous":{"v":"dd5386b288ec6741"},"p":"dbee6e16-d63a-493c-bba6-505f79918f9f","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:size","template":"<div>\n  {{ controller.size().size }}\n\n  <span v-if=\"controller.size().ordinal\" class=\"ml-1\">\n    10\n    <sup class=\"-ml-1\" v-if=\"controller.size().ordinal\">\n      {{ controller.size().ordinal }}\n    </sup>\n  </span>\n  {{ controller.size().prefix }}\n</div> ","css":"","controller":"class Controller {\n  size(precision = 0) {\n    const size = Number(data.datei.size)\n\n    if (!size || Number.isNaN(size)) {\n      return '-'\n    }\n\n    const i = size == 0 ? 0 : Math.floor(Math.log(size) / Math.log(1024))\n    const prefix = ['B', 'KB', 'MB', 'GB', 'TB'][i]\n    const readableSize = (size / Math.pow(1024, i)).toFixed(precision) * 1\n\n    if (prefix) {\n      return {\n        size: readableSize,\n        prefix: prefix\n      }\n    }\n\n    return {\n      size: readableSize ,\n      ordinal: i + 10,\n      prefix: 'B'\n\n    }\n  }\n} \n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-08-23T09:19:06+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-08-23T09:41:30+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1692783690259,"ct":1692782346382,"a_depth":4,"a":["apps","45ada186-e9fd-451d-9dbd-2defc0b4f86f","4ec6a0e5-cf2d-4095-9b70-2e31a64d5679","dbee6e16-d63a-493c-bba6-505f79918f9f"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"74f2f855-8872-454c-9153-85f62a1a8145","v":"9ee7a7078d024269","previous":{"v":"34b3f44120c14d95"},"p":"5011479f-3ef7-4c66-810b-3bb65f992712","f":{"id":"design-form","v":"4b1c7a4912f80103","text":"Design"},"data":{"name":"rd:statistics","template":"<div class=\"h-full w-full max-w-5xl mx-auto overflow-y-auto p-4\">\n  <div class=\"bg-white dark:bg-slate-800 rounded-md p-4 xl:shadow\">\n    <ae-layout layout-id=\"175d2914-d624-4185-b8ac-a26423269d27\"\n               class=\"size-full\"\n               param-title=\"Abschluss-Trend\"\n               :param-document=\"document\"\n               :param-fetch-series=\"(from, to) => controller.fetchSeries(from, to)\"\n    ></ae-layout>\n  </div>\n</div>\n","css":"","controller":"class Controller {\n  async fetchSeries(from, to) {\n    const companyId = document.a[0]\n    const interval = { start: from.toISO(), end: to.toISO() } // fieldName defaults to 'created.at'\n\n    const planQuery = `a:${companyId} f.id:1b166603-d0f3-4f16-98c4-0534afbd6f5a data.maintenancePlan.id:${document.id}`\n    const executions = await packages.SearchHelpers.findInterval(Aeppic, interval, planQuery, { size: 1000 })\n\n    const completed = executions.filter((e) => e.data.workflowStatus === 'COMPLETED' || e.data.workflowStatus === 'ACKNOWLEDGED')\n    const canceled = executions.filter((e) => e.data.workflowStatus === 'CANCELED')\n    const planned = executions.filter((e) => e.data.workflowStatus === 'PLANNED' || e.data.workflowStatus === 'RELEASED' || e.data.workflowStatus === 'STARTED')\n\n    const facilityIds = [...new Set((document.data.facilities || []).map((f) => f.id).filter(Boolean))]\n\n    let repairs = []\n    if (facilityIds.length > 0) {\n      const facilityClause = facilityIds.map((id) => `data.facility.id:${id}`).join(' OR ')\n      const repairQuery = `a:${companyId} f.id:46a28dfa-7518-4867-9519-a5f4cd9b9967 (${facilityClause})`\n      repairs = await packages.SearchHelpers.findInterval(Aeppic, interval, repairQuery, { size: 1000 })\n    }\n\n    return [\n      { documents: completed, label: 'Abgeschlossen', backgroundColor: '#22c55e99', borderColor: '#16a34a' },\n      { documents: planned, label: 'Geplant', backgroundColor: '#94a3b899', borderColor: '#64748b' },\n      { documents: canceled, label: 'Abgebrochen', backgroundColor: '#ef444499', borderColor: '#dc2626' },\n      { documents: repairs, label: 'Reparaturen', backgroundColor: '#f9731699', borderColor: '#ea580c' },\n    ]\n  }\n}\n","packages":[],"parameters":[],"parametersDescriptions":[],"parametersTypes":[],"parametersControls":[],"parametersCardinalities":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2026-08-06T13:50:25+00:00","by":"e24f1d78-6fbd-4f97-9fb0-b1af9bd6bd13","backedBy":"","impersonatedBy":"","from":"","client":"server"},"modified":{"at":"2026-08-06T13:56:34+00:00","by":"e24f1d78-6fbd-4f97-9fb0-b1af9bd6bd13","backedBy":"","impersonatedBy":"","from":"","client":"server"},"t":1786024594360,"ct":1786024225668,"a_depth":4,"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","5011479f-3ef7-4c66-810b-3bb65f992712"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","f416e371-07cc-4987-a6de-5934ef5ff3e4","1096c5df-2773-4914-9455-dc54e0f3e0e5","14931d03-c3bb-4cf7-9f62-747f94d8b01a"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"8107f623-8164-419b-85a4-dd330f1480c5","text":"study-quiz","v":"e4a16ee3dd7add5e"},"created":{"at":"2023-10-16T12:52:35+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1697460755910,"data":{"aliases":[],"controller":"class Controller {\r\n  async init() {\r\n    locals.ready = false\r\n\r\n    const trainingMaterial = await Aeppic.get(document.p)\r\n    locals.questions = await Aeppic.getAll(trainingMaterial.data.fragen)\r\n    locals.currentQuestion = null\r\n    locals.check = false\r\n    locals.end = false\r\n\r\n    this.nextQuestionIndex = 0\r\n    await this.moveToNextQuestion()\r\n\r\n    locals.ready = true\r\n  }\r\n\r\n  async moveToNextQuestion() {\r\n    // locals.check = false\r\n    // locals.currentQuestion = null\r\n    \r\n    if (this.nextQuestionIndex >= locals.questions.length) {\r\n      locals.check = false\r\n      return\r\n    } \r\n\r\n    const question = locals.questions[this.nextQuestionIndex]\r\n    this.nextQuestionIndex ++\r\n    \r\n    const answers = await Aeppic.getAll(question.data.antworten)\r\n    const wrongAnswers = await Aeppic.getAll(question.data.falscheAntworten)\r\n\r\n    const allAnwsers = randomize([...answers, ...wrongAnswers])\r\n\r\n    // for (let i=0;i<50;i++) {\r\n    //   console.log(randomize([...answers, ...wrongAnswers]).slice(-1)[0].data.name) \r\n    //     } \r\n    const selected = []\r\n    \r\n    locals.check = false\r\n    locals.currentQuestion = {\r\n      question,\r\n      selected,\r\n      answers,\r\n      allAnwsers,\r\n    }    \r\n\r\n    function randomize(items) {\r\n      const randomizedOrderOfItems = []\r\n\r\n      while (items.length > 0) {\r\n        const nextItemIndex = randomNumber(0, items.length)\r\n        const nextItem = items.splice(nextItemIndex, 1)[0]\r\n        randomizedOrderOfItems.push(nextItem)\r\n      }\r\n      \r\n      return randomizedOrderOfItems\r\n    }\r\n\r\n    function randomNumber(min, max){\r\n      const r = Math.random()*(max-min) + min\r\n      return Math.floor(r)\r\n    }\r\n  }\r\n\r\n  toggleSelection(anwser) {\r\n    if (!locals.currentQuestion) {\r\n      return\r\n    }\r\n\r\n    locals.check = false\r\n\r\n    const indexInSelection = locals.currentQuestion.selected.indexOf(anwser)\r\n\r\n    if (indexInSelection < 0) {\r\n      locals.currentQuestion.selected.push(anwser)\r\n    } else {\r\n      locals.currentQuestion.selected.splice(indexInSelection, 1)\r\n    }\r\n  }\r\n\r\n  isSelected(anwser) {\r\n    if (!locals.currentQuestion) {\r\n      return false\r\n    }\r\n\r\n    return locals.currentQuestion.selected.indexOf(anwser) >= 0\r\n  }\r\n\r\n  isCorrectlySelected(answer) {\r\n    if (!this.isSelected(answer)) {\r\n      return false \r\n    }\r\n\r\n    return (locals.currentQuestion.answers.indexOf(answer) >= 0)\r\n  }\r\n\r\n  isIncorrectlySelected(answer) {\r\n    if (!this.isSelected(answer)) {\r\n      return false\r\n    }\r\n\r\n    return !this.isCorrectlySelected(answer)\r\n  }\r\n\r\n  allCorrectlySelected() {\r\n    if (!locals.currentQuestion) {\r\n      return false\r\n    }\r\n\r\n    if (locals.currentQuestion.selected.length !== locals.currentQuestion.answers.length) {\r\n      return false\r\n    }\r\n\r\n    for (const anwser of locals.currentQuestion.selected) {\r\n      if (this.isIncorrectlySelected(anwser)) {\r\n        return false\r\n      }\r\n    }\r\n\r\n    return true\r\n  }\r\n\r\n  hasNextQestion() {\r\n    if (this.nextQuestionIndex >= locals.questions.length) {\r\n      return false\r\n    } else {\r\n      return true\r\n    }\r\n  }\r\n}","css":"","description":"","name":"rd:study-quiz","packages":[],"template":"<template v-if=\"locals.ready\">\r\n  <section class=\"flex flex-col h-full\" v-if=\"locals.currentQuestion\">\r\n    <div class=\"border rounded-md p-1 mb-6 relative\">\r\n      <div class=\"flex items-center\">\r\n        <ae-icon class=\"far fa-question\"></ae-icon>\r\n        <ae-control name=\"rd:editor\" :readonly=\"true\" :document=\"locals.currentQuestion.question\" field-name=\"frage\" :param-without-border=\"true\"></ae-control>\r\n      </div>\r\n      <aside v-if=\"locals.currentQuestion.question.data.kommentar\"\r\n      class=\"text-sm pl-2 italic\"\r\n      >{{locals.currentQuestion.question.data.kommentar}}</aside>\r\n    </div>\r\n\r\n    <section class=\"xmax-w-72 w-full mx-auto flex-1 flex flex-col\">\r\n      <div class=\"flex flex-col gap-1 mb-4\">\r\n        <ae-layout v-for=\"answer of locals.currentQuestion.allAnwsers\"\r\n                  layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\r\n                  @selected=\"controller.toggleSelection(answer)\"\r\n                  :param-text=\"answer.data.antwort\"\r\n                  :param-title=\"answer.data.antwort\"\r\n                  param-border=\"border\"\r\n                  :param-primary=\"controller.isSelected(answer)\"\r\n                  :param-icon=\"!locals.check ? '' : (controller.isCorrectlySelected(answer) ? 'far fa-check-circle text-lime-600' : 'far fa-times text-red-500')\"\r\n                  param-classes=\"text-center !rounded-md\"\r\n        ></ae-layout>\r\n      </div>\r\n\r\n      <div class=\"flex flex-col \">\r\n        <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\r\n                  v-if=\"!locals.check || !controller.allCorrectlySelected()\" \r\n                  @selected=\"locals.check = true\"\r\n                  param-text=\"Überprüfen\"\r\n                  :param-primary=\"true\"\r\n        ></ae-layout>\r\n        <template v-else>\r\n            <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\r\n                  v-if=\"controller.hasNextQestion()\" \r\n                  @selected=\"controller.moveToNextQuestion()\"\r\n                  param-text=\"Nächste Frage\"\r\n                  :param-primary=\"true\"\r\n          ></ae-layout>\r\n            <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\r\n                    v-else\r\n                    @selected=\"locals.currentQuestion = null\"\r\n                    param-text=\"Quiz abschliessen\"\r\n                    :param-primary=\"true\"\r\n          ></ae-layout>\r\n        </template>\r\n      </div>\r\n\r\n\r\n      <div v-if=\"locals.check && !controller.allCorrectlySelected()\" class=\"_CSS-comment\"\">\r\n        Ergänzen Sie korrekte Antworten und entfernen Sie falsche.\r\n      </div>\r\n\r\n      <div class=\"flex-1\"></div>\r\n\r\n      <section class=\"\">\r\n          <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\r\n                    @selected=\"\"\r\n                    param-text=\"Wie funktioniert das Quiz?\"\r\n                    param-classes=\"text-sm text-neutral-600\"\r\n                    param-icon=\"far fa-info-circle\"\r\n                    @selected=\"$refs.help.show($event)\"\r\n          ></ae-layout>\r\n\r\n          <ae-popup ref=\"help\">\r\n            <div class=\"whitespace-pre-line p-2\">Das Quiz hält eine Reihe von Fragen bereit. Wählen Sie die Fragen aus, die Ihnen richtig erscheinen, und klicken Sie dann auf \"Überprüfen\". Danach werden falsch ausgewählte Antworten mit einem X markiert und richtig ausgewählte mit einem Haken.\r\n\r\n  Nachdem Sie alle Fragen richtig beantwortet haben, können Sie die Lesebestätigung als erledigt markieren.          </div>\r\n          </ae-popup>\r\n      </section>\r\n    </section>\r\n  </section>\r\n  <section v-else class=\"flex flex-col\">\r\n    <ae-form layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\" :document=\"document\"></ae-form>\r\n    <ae-layout layout-id=\"262e95e6-f1f8-477c-834b-89d533027e1e\"\r\n              :param-document=\"document\"\r\n              :param-commands=\"['d87fe16e-1b80-4b3b-976b-de2c3dd1064f']\"\r\n              @close=\"$emit('close')\"\r\n              class=\"max-w-72 w-full mx-auto\"\r\n    ></ae-layout>\r\n  </section>    \r\n</template>\r\n<ae-icon v-else class=\"far fa-spinner-third fa-spin\"></ae-icon>"},"f":{"id":"design-form","text":"Design","v":"e37099c040ec46e9"},"id":"78972202-5f01-429b-a29d-0d89e8ce6a30","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-04-07T12:42:59+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"8107f623-8164-419b-85a4-dd330f1480c5","text":"study-quiz","v":"e4a16ee3dd7add5e"},"p":"14931d03-c3bb-4cf7-9f62-747f94d8b01a","previous":{"v":"7494c884a41127d8"},"stamps":[],"t":1744029779822,"v":"a8234b0d2798503e"},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","5beeae17-7bb1-4eeb-bcb6-cf0e6950e27c","030be2b6-fcad-4d3c-b44f-c40618e772c0"],"a_depth":5,"a_forms":["folder","application-form","form-folder","form","form"],"cloneOf":{"id":"a98c7c3d-a260-4ae8-a06a-32d8fea36879","text":"rd:styled-title","v":"e028632e8c941f84"},"created":{"at":"2025-05-26T11:48:48+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1748260128102,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.type = data.type\n\n    const form = await Aeppic.getFormForDocument(document)\n\n    locals.type = form.getField('type')?.settings.options.find(o => o.value === data.type)?.display || data.type\n  }\n} ","css":"","description":"","name":"rd:styled-title","packages":[],"template":"<div class=\"flex gap-1\">\n  <div>\n  {{locals.type}}\n  </div>\n  vom \n  <div v-if=\"data.sessionDate\">\n    {{ Aeppic.DateTime.fromISO(data.sessionDate).toLocaleString(Aeppic.DATE_SHORT)}}\n  </div>\n  <div v-else class=\"italic\">\n    kein Sitzungsdatum\n  </div>\n\n  <div class=\"flex-1\"></div>\n\n  <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n          :param-icon=\"data.allDocumentDataValid ? 'far fa-badge-check text-green-500' : 'far fa-badge-percent text-red-500'\"\n          :param-title=\"data.allDocumentDataValid ? 'Alle erforderlichen Felder ausgefüllt' : 'Nicht alle erforderlichen Felder ausgefüllt'\"\n          @selected=\"Aeppic.drillInto(document)\"\n  ></ae-layout>\n</div>\n\n"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"02bed17b-98db-42d2-87c5-6de2c0304e30","inheritedLocks":[null,null,null,null,null,null],"locks":[],"modified":{"at":"2025-05-27T09:38:33+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"a98c7c3d-a260-4ae8-a06a-32d8fea36879","text":"rd:styled-title","v":"e028632e8c941f84"},"p":"030be2b6-fcad-4d3c-b44f-c40618e772c0","previous":{"v":"c75f2fc219ef9381"},"stamps":[],"t":1748338713569,"v":"f43f7960d3ac7c86"},{"id":"152c0e37-d9ff-4d4e-8f52-6749a29e73b9","v":"20d470dfabddb221","previous":{"v":"6cb202e6d1e7bfe1"},"p":"58c8b8e4-315d-4a8a-8ac3-e69d017640a6","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:styled-title","template":"<div class=\"flex gap-2 flex-wrap items-center\">\n  <ae-design name=\"title\" :document=\"document\"></ae-design>\n\n  <ae-design class=\"text-sm text-neutral-600\" name=\"rd:shared-document-links\" :document=\"document\"></ae-design>\n  <!-- <ae-control name=\"model:link-share\" :document=\"document\" ></ae-control> -->\n  <!-- <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n            :params=\"{\n              icon: 'far fa-clipboard',\n              @selected=\"\"\n            }\"\n  ></ae-layout> -->\n</div>\n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-06-26T10:52:24+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-06-26T12:22:48+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1719404568959,"ct":1719399144804,"a_depth":4,"a":["apps","3fbe0efd-713a-457a-a34c-3a12aa19d6bb","0fb162f4-0f78-4c1e-aad2-43c27e6d98cb","58c8b8e4-315d-4a8a-8ac3-e69d017640a6"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"2745f7b7-4a19-45a8-b315-9b90715370e4","v":"06d383f429b88c2c","previous":{"v":"68dd47d2b0f22db6"},"p":"f4544b6f-1909-49ac-bc8e-3f70db1125f1","f":{"id":"design-form","v":"22a757f630104010","text":"Design"},"data":{"name":"rd:styled-title","template":"<div class=\"flex gap-4\">\n  <div class=\"italic w-40 truncate\" :title=\"locals.typ\">{{ locals.typ }}</div>\n  <ae-design name=\"rd:date\" :document=\"document\" param-field-name=\"datum\"></ae-design>\n  <div class=\"truncate flex-1\">{{ data.beschreibung.slice(0,300) }} </div>\n</div>  ","css":"._CSS-line {\n  width: 100%;\n  gap: var(--ae-size-2);\n  display: flex;\n}\n\n._CSS-truncate{\n  overflow: hidden;\n  white-space: nowrap;\n  text-overflow: ellipsis;\n\n  color: var(--ae-background-700);\n}","controller":"class Controller {\n  async init() {\n    locals.typ = ''\n\n    locals.form = null\n    locals.form = await Aeppic.getFormForDocument(document)\n\n    locals.typ = locals.form?.getField('typ').settings.options.find(option => option.value === data.typ).display || ''\n  }\n} ","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-12-18T12:34:31+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-12-18T12:43:02+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1734525782719,"ct":1734525274379,"a_depth":5,"a":["apps","83c76376-420e-4231-9275-d0fe2ab47c32","fdd2f0b2-d628-48b9-a976-1acbf9f1de94","a7e146ca-a568-4c84-a6ed-233a0ec98638","f4544b6f-1909-49ac-bc8e-3f70db1125f1"],"a_forms":["folder","application-form","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"2a167154-4009-4408-982d-b0323efe5d6d","v":"d1c8c5699c68e236","cloneOf":{"id":"4a0ea2e0-51b2-48b1-bd0e-5331ac5144a0","v":"2645274522eadbbc","text":"record-title"},"originalCloneOf":{"id":"4a0ea2e0-51b2-48b1-bd0e-5331ac5144a0","v":"2645274522eadbbc","text":"record-title"},"previous":{"v":"0c2c0ae4c8c19674"},"p":"8d1804b0-c5c6-4acf-a15f-1b02872e792e","f":{"id":"design-form","v":"0061789efb5c5c29","text":"Design"},"data":{"name":"rd:styled-title","template":"<div class=\"flex items-center gap-1 truncate\" :title=\"locals.titleParts.join(' ')\">\n  <div class=\"truncate\">\n    {{locals.titleParts[0]}}\n  </div>\n  <div class=\"text-neutral-600 text-sm\" v-if=\"locals.titleParts[1]\">\n    ({{locals.titleParts[1]}})\n  </div>\n</div> ","css":"","controller":"class Controller {\n  init() {\n    this.currencyFormatter = new Intl.NumberFormat('de-de', { style: 'currency', currency: 'EUR' })\n    locals.titleParts = this._buildPositionString()\n\n  }\n\n  _buildPositionString() {\n    const title = `${data.name || document.f.text}`.trim()\n    const type = data.typ\n    const duration = data.dauer ? `${Aeppic.DateTimeDuration.fromObject(data.dauer).as('hours') * data.menge} h` : ''\n    const amount = data.menge !== 1 ? `${data.menge}x ` : ''\n    const sum = data.abrechenbar ? this.currencyFormatter.format(data.summe) : 'Ohne Berechnung'\n\n\n    if (type === 'ZEIT') {\n      return [\n        title,\n        `${duration} - ${sum}`,\n      ]\n    }\n\n\n    if (type === 'ENTFERNUNG') {\n      return [\n        title,\n        `${data.menge} km - ${sum}`,\n      ]\n    }\n\n    if (type === 'SOCKEL_PLUS_VARIABLE') {\n      return [\n        title,\n        `${duration} - ${sum}`,\n      ]\n    }\n\n    return [\n      title,\n      `${data.menge}x - ${sum}`,\n    ]\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-10-12T10:28:10+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2024-04-10T09:10:48+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1712740248364,"ct":1602498490895,"a_depth":4,"a":["apps","0924db0f-7095-4b51-8966-bad1e45d68ec","a3b935e7-60bc-4996-9b18-668e4361067f","8d1804b0-c5c6-4acf-a15f-1b02872e792e"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"2b1b73e2-d093-4db0-9d6e-54fe624612de","v":"fe7c06c852586b85","previous":{"v":"bc9b743ab01a6b70"},"p":"7628f42e-260d-49b9-a2d6-30cb0973c1b6","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:styled-title","template":"\n<div class=\"flex flex-col\">\n  <div class=\"flex whitespace-nowrap items-center\">\n    <ae-design class=\"pr-1 font-bold\" name=\"title\" :document=\"document\" style=\"display:inline;\"></ae-design>\n    <span class=\"pr-1\">(Fördermittel</span>\n    <ae-design name=\"field-as-currency\" :document=\"document\" param-field-name=\"foerdermittel\" style=\"display:inline-block;\"></ae-design>\n    <span class=\"pr-1\">\n    , Investitionssumme\n    </span>\n    <ae-design name=\"field-as-currency\" :document=\"document\" param-field-name=\"investitionssumme\" style=\"display:inline-block;\"></ae-design>\n    )\n  </div>\n\n  <div v-if=\"data.anmerkungen.length\" class=\"text-sm\">\n    {{ data.anmerkungen }}\n  </div>\n\n\n</div>","css":"","controller":"async init() {\n  locals.form = null\n  locals.form = await Aeppic.getFormForDocument(document)\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-04-10T13:38:37+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-04-10T13:44:25+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1712756665766,"ct":1712756321663,"a_depth":4,"a":["apps","94a64d89-d204-4918-b147-d717914fb03e","f254ce25-42f1-4333-8ee7-23554bf746c1","7628f42e-260d-49b9-a2d6-30cb0973c1b6"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","59edbdbc-2cab-426a-bb42-6e57c5158e4f","3be7e887-1bcd-4c3c-979f-b20a986c4c48","0938d0ef-d2ba-4aa3-9752-ddcf5a0085dc"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2025-09-12T14:09:26+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1757686166379,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:styled-title","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<div class=\"flex gap-2\">\n  <ae-icon class=\"far fa-calendar\"></ae-icon>\n  <div>\n  {{data.name}}\n  </div>\n\n  <div class=\"flex gap-1\">\n    <ae-design name=\"rd:date\" :document=\"document\" param-field-name=\"von\"></ae-design> \n    -\n    <ae-design name=\"rd:date\" :document=\"document\" param-field-name=\"bis\"></ae-design> \n  </div>\n</div>"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"43aafc92-81e2-4258-b6d5-e425a388dc20","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-09-12T14:13:06+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"0938d0ef-d2ba-4aa3-9752-ddcf5a0085dc","previous":{"v":"735b2ca8a7a65f8c"},"stamps":[],"t":1757686386652,"v":"fb5889806a9ef20d"},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","5beeae17-7bb1-4eeb-bcb6-cf0e6950e27c","374a4c32-b30e-4fa8-a134-bdc51a4605a8"],"a_depth":5,"a_forms":["folder","application-form","form-folder","form","form"],"cloneOf":{"id":"a98c7c3d-a260-4ae8-a06a-32d8fea36879","text":"rd:styled-title","v":"e028632e8c941f84"},"created":{"at":"2025-05-26T11:49:02+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1748260142723,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.type = data.type\n\n    const form = await Aeppic.getFormForDocument(document)\n\n    locals.type = form.getField('type')?.settings.options.find(o => o.value === data.type)?.display || data.type\n  }\n} ","css":"","description":"","name":"rd:styled-title","packages":[],"template":"<div class=\"flex gap-1\">\n  <div>\n  {{locals.type}}\n  </div>\n  vom \n  <div v-if=\"data.sessionDate\">\n    {{ Aeppic.DateTime.fromISO(data.sessionDate).toLocaleString(Aeppic.DATE_SHORT)}}\n  </div>\n  <div v-else class=\"italic\">\n    kein Sitzungsdatum\n  </div>\n\n  <div class=\"flex-1\"></div>\n\n  <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n          :param-icon=\"data.allDocumentDataValid ? 'far fa-badge-check text-green-500' : 'far fa-badge-percent text-red-500'\"\n          :param-title=\"data.allDocumentDataValid ? 'Alle erforderlichen Felder ausgefüllt' : 'Nicht alle erforderlichen Felder ausgefüllt'\"\n          @selected=\"Aeppic.drillInto(document)\"\n  ></ae-layout>\n</div>\n\n"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"4809e5b3-65e7-4b18-87c6-6eb73e98ba80","inheritedLocks":[null,null,null,null,null,null],"locks":[],"modified":{"at":"2025-05-27T09:39:14+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"a98c7c3d-a260-4ae8-a06a-32d8fea36879","text":"rd:styled-title","v":"e028632e8c941f84"},"p":"374a4c32-b30e-4fa8-a134-bdc51a4605a8","previous":{"v":"939a8de280f13a9b"},"stamps":[],"t":1748338754532,"v":"154f4298ab0d6786"},{"a":["apps","0924db0f-7095-4b51-8966-bad1e45d68ec","a3b935e7-60bc-4996-9b18-668e4361067f","fec93a80-86e6-4ccb-a473-14046bd4336e"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2025-05-09T10:52:52+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1746787972943,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:styled-title","packages":[],"template":"<div class=\"flex items-center gap-2\" :class=\"{ 'text-blue-700': data.schlussgerechnet }\">\n  <div v-if=\"data.schlussgerechnet\" title=\"Vertrag wurde schlussgerechnet\">\n    <ae-icon class=\"far fa-circle-euro text-blue-700\"></ae-icon>\n  </div>\n  <ae-design class=\"flex-1\" name=\"title\" :document=\"document\"></ae-design>\n\n  <div\n    v-if=\"'angeboteGesamtsumme' in data\"\n    title=\"Gesamte Angebotsssumme (netto)\"\n    class=\"w-32 min-w-32 truncate flex items-center justify-end\"\n  >\n    A {{ new Intl.NumberFormat('de-DE', { style: 'currency', currency: 'EUR' }).format(data.angeboteGesamtsumme) }}\n  </div>\n  <div\n    v-if=\"'rechnungenGesamtsumme' in data\"\n    title=\"Gesamte Rechnungssumme (netto)\"\n    class=\"w-32 min-w-32 truncate flex items-center justify-end\"\n  >\n    R {{ new Intl.NumberFormat('de-DE', { style: 'currency', currency: 'EUR' }).format(data.rechnungenGesamtsumme) }}\n  </div>\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"557e96e8-3256-496d-ba97-bad091ccfd27","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-03-03T11:12:27+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"p":"fec93a80-86e6-4ccb-a473-14046bd4336e","previous":{"v":"3c1ca40b4152ae9c"},"stamps":[],"t":1772536347574,"v":"6b407e39a381cafa"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","46a28dfa-7518-4867-9519-a5f4cd9b9967"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"74a90f8e-8c17-4fb9-938b-8f0742f08d95","text":"rd:styled-title","v":"3dc8929855e5abee"},"created":{"at":"2025-10-27T11:27:27+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"ct":1761564447553,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.form = null\n    locals.workflowStatusField = null\n\n    locals.form = await Aeppic.getFormForDocument(document)\n    locals.workflowStatusField = locals.form.getField('workflowStatus').settings.options.find(option => option.value === data.workflowStatus)\n  }\n}","css":"","description":"","name":"rd:styled-title","packages":[],"template":"<div class=\"flex flex-wrap gap-2\" :class=\"{ 'text-neutral-700 italic': !data.released}\">\n  <section \n    v-if=\"params.showFormIcon\" \n    class=\"\"\n    :title=\"locals.form?.data.name\"\n  >\n    <ae-icon v-if=\"locals.form\" :class=\"[locals.form?.data.namedIcon]\"></ae-icon>\n  </section>\n\n  <section class=\"w-20\">\n    <template v-if=\"locals.form\">\n      {{ locals.form.getField('type').settings.options.find(o => o.value === data.type)?.display}}\n    </template>\n  </section> \n\n  <section class=\"w-40 truncate\">\n    <ae-icon v-if=\"locals.workflowStatusField\" :class=\"[locals.workflowStatusField.tags.icon, locals.workflowStatusField.tags.iconcolor]\"></ae-icon> {{ locals.workflowStatusField?.display }}\n  </section>\n\n  <section>\n    <ae-design v-for=\"team of data.team\" name=\"title\" :document=\"team\"></ae-design>\n  </section>\n\n  <section>\n    <ae-design name=\"title\" :document=\"data.object\"></ae-design>\n  </section>\n\n  <div class=\"flex-1\"></div>\n\n  <section>\n    <ae-design name=\"rd:date\" :document=\"document\" param-field-name=\"created.at\"></ae-design>\n  </section>\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"587b0eb1-e0e1-46e7-9c9c-fa11e38db3ca","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-11-14T15:02:52+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"74a90f8e-8c17-4fb9-938b-8f0742f08d95","text":"rd:styled-title","v":"3dc8929855e5abee"},"p":"46a28dfa-7518-4867-9519-a5f4cd9b9967","previous":{"v":"5b3f93995061ba42"},"stamps":[],"t":1763132572600,"v":"9f9ebde74d19b524"},{"id":"605394e2-3c4c-4af4-91fa-09293d32dcba","v":"initial","cloneOf":{"id":"642bebd3-e689-434b-9330-91d21a3bd886","v":"2ebc9f6185c9bbe5","text":"rd:styled-title"},"originalCloneOf":{"id":"642bebd3-e689-434b-9330-91d21a3bd886","v":"2ebc9f6185c9bbe5","text":"rd:styled-title"},"p":"d2984447-beb2-45c5-b150-0522eca855d7","f":{"id":"design-form","v":"0061789efb5c5c29","text":"Design"},"data":{"name":"rd:styled-title","template":"<div class=\"_CSS-container\" :class=\"{ '_CSS-line--done': data.fakturiert }\">\n  <div title=\"Prozent der Erfüllung\">\n    {{ data.prozent}}%\n  </div>\n  <ae-design name=\"title\" :document=\"document\" style=\"display:inline-block;\"></ae-design>\n\n  <span title=\"Status der Fakturierung\">\n    <ae-icon class=\"fa fa-receipt\"></ae-icon>\n    <ae-icon v-if=\"data.fakturiert\" class=\"fa fa-check\"></ae-icon>\n    <ae-icon v-if=\"!data.fakturiert\" class=\"fa fa-times\"></ae-icon>\n  </span>\n\n  <div v-if=\"data.datum\" style=\"text-align:right;\" title=\"Geplantes Datum\">\n    {{ Aeppic.DateTime.fromISO(data.datum).toLocaleString() }}\n  </div>\n</div>","css":"._CSS {\n\n  xmin-width: 0;\n  width: 100%;\n}\n\n._CSS-container {\n  width: 100%;\n  display: grid;\n  grid-template-columns: 50px auto 50px 100px;\n}\n\n._CSS-line--doneX {\n  text-decoration: line-through;\n  opacity: var(--ae-opacity-1);\n}","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-11-20T14:28:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-11-20T14:28:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1732112912744,"ct":1732112912743,"a_depth":4,"a":["apps","0924db0f-7095-4b51-8966-bad1e45d68ec","a3b935e7-60bc-4996-9b18-668e4361067f","d2984447-beb2-45c5-b150-0522eca855d7"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","94a64d89-d204-4918-b147-d717914fb03e","f254ce25-42f1-4333-8ee7-23554bf746c1","6c501e3a-25c4-43c1-bd96-ec99333f5930"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"37dea456-681c-4d14-930f-2346fbc9dde6","text":"ref-card-title","v":"initial"},"created":{"at":"2024-11-20T11:28:37+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1732102117164,"data":{"aliases":[],"controller":"","css":"._CSS {\n\n  xmin-width: 0;\n  width: 100%;\n}\n\n._CSS-container {\n  width: 100%;\n  display: grid;\n  grid-template-columns: 50px auto 50px 100px;\n}\n\n._CSS-line--doneX {\n  text-decoration: line-through;\n  opacity: var(--ae-opacity-1);\n}","description":"","name":"rd:styled-title","packages":[],"template":"<div class=\"_CSS-container\" :class=\"{ '_CSS-line--done': data.fakturiert }\">\n  <div title=\"Prozent der Erfüllung\">\n    {{ data.prozent}}%\n  </div>\n  <ae-design name=\"title\" :document=\"document\" style=\"display:inline-block;\"></ae-design>\n\n  <span title=\"Status der Fakturierung\">\n    <ae-icon class=\"fa fa-receipt\"></ae-icon>\n    <ae-icon v-if=\"data.fakturiert\" class=\"fa fa-check\"></ae-icon>\n    <ae-icon v-if=\"!data.fakturiert\" class=\"fa fa-times\"></ae-icon>\n  </span>\n\n  <div v-if=\"data.datum\" style=\"text-align:right;\" title=\"Geplantes Datum\">\n    {{ Aeppic.DateTime.fromISO(data.datum).toLocaleString() }}\n  </div>\n</div>"},"f":{"id":"design-form","text":"Design","v":"0061789efb5c5c29"},"id":"642bebd3-e689-434b-9330-91d21a3bd886","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2024-11-20T11:28:47+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"37dea456-681c-4d14-930f-2346fbc9dde6","text":"ref-card-title","v":"initial"},"p":"6c501e3a-25c4-43c1-bd96-ec99333f5930","previous":{"v":"initial"},"stamps":[],"t":1732102127750,"v":"2ebc9f6185c9bbe5"},{"id":"69517919-2c85-45ba-b18d-046b6e43d52b","v":"initial","cloneOf":{"id":"2745f7b7-4a19-45a8-b315-9b90715370e4","v":"06d383f429b88c2c","text":"rd:styled-title"},"originalCloneOf":{"id":"2745f7b7-4a19-45a8-b315-9b90715370e4","v":"06d383f429b88c2c","text":"rd:styled-title"},"p":"f91389b0-5c78-498b-a6e3-27fc97ce898d","f":{"id":"design-form","v":"22a757f630104010","text":"Design"},"data":{"name":"rd:styled-title","template":"<div class=\"flex gap-4\">\n  <div class=\"italic w-40 truncate\" :title=\"locals.typ\">{{ locals.typ }}</div>\n  <ae-design name=\"rd:date\" :document=\"document\" param-field-name=\"datum\"></ae-design>\n  <div class=\"truncate flex-1\">{{ data.beschreibung.slice(0,300) }} </div>\n</div>  ","css":"._CSS-line {\n  width: 100%;\n  gap: var(--ae-size-2);\n  display: flex;\n}\n\n._CSS-truncate{\n  overflow: hidden;\n  white-space: nowrap;\n  text-overflow: ellipsis;\n\n  color: var(--ae-background-700);\n}","controller":"class Controller {\n  async init() {\n    locals.typ = ''\n\n    locals.form = null\n    locals.form = await Aeppic.getFormForDocument(document)\n\n    locals.typ = locals.form?.getField('typ').settings.options.find(option => option.value === data.typ).display || ''\n  }\n} ","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2025-09-30T13:53:49+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2025-09-30T13:53:49+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1759240429568,"ct":1759240429565,"a_depth":4,"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","f91389b0-5c78-498b-a6e3-27fc97ce898d"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","1b166603-d0f3-4f16-98c4-0534afbd6f5a"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2025-08-07T10:53:51+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1754564031296,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.form = null\n    locals.workflowStatusField = null\n\n    locals.form = await Aeppic.getFormForDocument(document)\n    locals.workflowStatusField = locals.form.getField('workflowStatus').settings.options.find(option => option.value === data.workflowStatus)\n  }\n}","css":"","description":"","name":"rd:styled-title","packages":[],"template":"<div class=\"flex flex-wrap gap-2\" :class=\"{ 'text-neutral-700 italic': !data.released}\">\n  <section \n    v-if=\"params.showFormIcon\" \n    class=\"\"\n    :title=\"locals.form?.data.name\"\n  >\n    <ae-icon v-if=\"locals.form\" :class=\"[locals.form.data.namedIcon]\"></ae-icon>\n  </section>\n  \n  <section class=\"w-20\">\n    <template v-if=\"locals.form\">\n      {{ locals.form.getField('type').settings.options.find(o => o.value === data.type)?.display}}\n    </template>\n  </section>\n\n  <section class=\"w-40 truncate\">\n    <ae-icon v-if=\"locals.workflowStatusField\" :class=\"[locals.workflowStatusField.tags.icon, locals.workflowStatusField.tags.iconcolor]\"></ae-icon> {{ locals.workflowStatusField?.display }}\n  </section>\n\n  <section>\n    <ae-design v-for=\"team of data.team\" name=\"title\" :document=\"team\"></ae-design>\n  </section>\n\n  <section>\n    <ae-design name=\"title\" :document=\"data.object\"></ae-design>\n  </section>\n\n  <div class=\"flex-1\"></div>\n\n  <section>\n    <ae-design name=\"rd:date\" :document=\"document\" param-field-name=\"created.at\"></ae-design>\n  </section>\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"74a90f8e-8c17-4fb9-938b-8f0742f08d95","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-11-14T15:08:23+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"1b166603-d0f3-4f16-98c4-0534afbd6f5a","previous":{"v":"c7ba3dfb356eddab"},"stamps":[],"t":1763132903016,"v":"f8d8f65398c4d0f3"},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","e733295b-414e-41e7-8430-3129c3856b83"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2023-11-08T11:51:45+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1699444305629,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:styled-title","packages":[],"template":"<div :class=\"{ 'text-red-500': 'documentDataValid' in data && !data.documentDataValid }\">\n  <div v-if=\"document.data.type === 'INTERNAL'\" class=\"flex gap-2 items-center\">\n    <ae-design v-if=\"document.data.employee.id\" name=\"title\" :document-id=\"document.data.employee.id\"></ae-design>\n    <ae-design v-else class=\"italic\" name=\"form-title\" :document=\"document\"></ae-design>\n  </div>\n  <div v-else-if=\"document.data.type === 'EXTERNAL'\" class=\"flex  items-center gap-1 truncate\" title=\"Extern\">\n    <span v-if=\"data.externalPersonName\">\n    {{ data.externalPersonName }}\n    </span>\n    <ae-design class=\"italic\" v-else name=\"form-title\" :document=\"document\"></ae-design>\n    <ae-icon class=\"far fa-building\"></ae-icon>\n  </div>\n  <ae-design v-else name=\"title\" :document=\"document\"></ae-design>\n</div>"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"7b99f44c-2391-463c-8508-09c4737aa71d","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-02-27T13:49:37+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"e733295b-414e-41e7-8430-3129c3856b83","previous":{"v":"824e7fd993f34b4d"},"stamps":[],"t":1740664177285,"v":"731b3c3ca3e34da1"},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","5beeae17-7bb1-4eeb-bcb6-cf0e6950e27c","c04e4a56-2064-4663-9cad-1792a719db35"],"a_depth":5,"a_forms":["folder","application-form","form-folder","form","form"],"cloneOf":{"id":"a98c7c3d-a260-4ae8-a06a-32d8fea36879","text":"rd:styled-title","v":"e028632e8c941f84"},"created":{"at":"2025-05-26T11:48:53+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1748260133167,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.type = data.type\n\n    const form = await Aeppic.getFormForDocument(document)\n\n    locals.type = form.getField('type')?.settings.options.find(o => o.value === data.type)?.display || data.type\n  }\n} ","css":"","description":"","name":"rd:styled-title","packages":[],"template":"<div class=\"flex gap-1\">\n  <div>\n  {{locals.type}}\n  </div>\n  vom \n  <div v-if=\"data.sessionDate\">\n    {{ Aeppic.DateTime.fromISO(data.sessionDate).toLocaleString(Aeppic.DATE_SHORT)}}\n  </div>\n  <div v-else class=\"italic\">\n    kein Sitzungsdatum\n  </div>\n\n  <div class=\"flex-1\"></div>\n\n  <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n          :param-icon=\"data.allDocumentDataValid ? 'far fa-badge-check text-green-500' : 'far fa-badge-percent text-red-500'\"\n          :param-title=\"data.allDocumentDataValid ? 'Alle erforderlichen Felder ausgefüllt' : 'Nicht alle erforderlichen Felder ausgefüllt'\"\n          @selected=\"Aeppic.drillInto(document)\"\n  ></ae-layout>\n</div>\n\n"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"838f5e43-ec60-4ba8-9bc2-2b5bdbe74b06","inheritedLocks":[null,null,null,null,null,null],"locks":[],"modified":{"at":"2025-05-27T09:39:22+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"a98c7c3d-a260-4ae8-a06a-32d8fea36879","text":"rd:styled-title","v":"e028632e8c941f84"},"p":"c04e4a56-2064-4663-9cad-1792a719db35","previous":{"v":"7c37c635ca58df4b"},"stamps":[],"t":1748338762567,"v":"cdf2f279b432c295"},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","5beeae17-7bb1-4eeb-bcb6-cf0e6950e27c","ee60c716-511c-4ef3-a6f6-2c5c8d5bde74"],"a_depth":5,"a_forms":["folder","application-form","form-folder","form","form"],"cloneOf":{"id":"a98c7c3d-a260-4ae8-a06a-32d8fea36879","text":"rd:styled-title","v":"e028632e8c941f84"},"created":{"at":"2025-05-26T11:49:06+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1748260146730,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.type = data.type\n\n    const form = await Aeppic.getFormForDocument(document)\n\n    locals.type = form.getField('type')?.settings.options.find(o => o.value === data.type)?.display || data.type\n  }\n} ","css":"","description":"","name":"rd:styled-title","packages":[],"template":"<div class=\"flex gap-1\">\n  <div>\n  {{locals.type}}\n  </div>\n  vom \n  <div v-if=\"data.sessionDate\">\n    {{ Aeppic.DateTime.fromISO(data.sessionDate).toLocaleString(Aeppic.DATE_SHORT)}}\n  </div>\n  <div v-else class=\"italic\">\n    kein Sitzungsdatum\n  </div>\n\n  <div class=\"flex-1\"></div>\n\n  <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n          :param-icon=\"data.allDocumentDataValid ? 'far fa-badge-check text-green-500' : 'far fa-badge-percent text-red-500'\"\n          :param-title=\"data.allDocumentDataValid ? 'Alle erforderlichen Felder ausgefüllt' : 'Nicht alle erforderlichen Felder ausgefüllt'\"\n          @selected=\"Aeppic.drillInto(document)\"\n  ></ae-layout>\n</div>\n\n"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"83a04b65-0aea-4f80-96eb-b92c64e6ef2d","inheritedLocks":[null,null,null,null,null,null],"locks":[],"modified":{"at":"2025-05-27T09:39:09+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"a98c7c3d-a260-4ae8-a06a-32d8fea36879","text":"rd:styled-title","v":"e028632e8c941f84"},"p":"ee60c716-511c-4ef3-a6f6-2c5c8d5bde74","previous":{"v":"cf22ab466acdcc30"},"stamps":[],"t":1748338749698,"v":"00873850d37997ca"},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","5beeae17-7bb1-4eeb-bcb6-cf0e6950e27c","cbdb17cb-885b-4e8b-bfa4-ee22f5c3122f"],"a_depth":5,"a_forms":["folder","application-form","form-folder","form","form"],"cloneOf":{"id":"a98c7c3d-a260-4ae8-a06a-32d8fea36879","text":"rd:styled-title","v":"e028632e8c941f84"},"created":{"at":"2025-05-26T11:48:58+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1748260138434,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.type = data.type\n\n    const form = await Aeppic.getFormForDocument(document)\n\n    locals.type = form.getField('type')?.settings.options.find(o => o.value === data.type)?.display || data.type\n  }\n} ","css":"","description":"","name":"rd:styled-title","packages":[],"template":"<div class=\"flex gap-1\">\n  <div>\n  {{locals.type}}\n  </div>\n  vom \n  <div v-if=\"data.sessionDate\">\n    {{ Aeppic.DateTime.fromISO(data.sessionDate).toLocaleString(Aeppic.DATE_SHORT)}}\n  </div>\n  <div v-else class=\"italic\">\n    kein Sitzungsdatum\n  </div>\n\n  <div class=\"flex-1\"></div>\n\n  <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n          :param-icon=\"data.allDocumentDataValid ? 'far fa-badge-check text-green-500' : 'far fa-badge-percent text-red-500'\"\n          :param-title=\"data.allDocumentDataValid ? 'Alle erforderlichen Felder ausgefüllt' : 'Nicht alle erforderlichen Felder ausgefüllt'\"\n          @selected=\"Aeppic.drillInto(document)\"\n  ></ae-layout>\n</div>\n\n"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"83dc8ed7-55e8-4fa0-8086-4bdd04cce5d1","inheritedLocks":[null,null,null,null,null,null],"locks":[],"modified":{"at":"2025-05-27T09:39:18+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"a98c7c3d-a260-4ae8-a06a-32d8fea36879","text":"rd:styled-title","v":"e028632e8c941f84"},"p":"cbdb17cb-885b-4e8b-bfa4-ee22f5c3122f","previous":{"v":"a217736814fbdd1a"},"stamps":[],"t":1748338758964,"v":"9bd9eb67158c0402"},{"a":["apps","0924db0f-7095-4b51-8966-bad1e45d68ec","a3b935e7-60bc-4996-9b18-668e4361067f","54da686f-3f74-441b-b686-ed2b71dd35cc"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2023-12-12T08:59:48+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1702371588476,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:styled-title","packages":[],"template":"<div class=\"flex gap-2 items-center\">\n  <div class=\"truncate flex-1 w-0\" :title=\"data.name\">\n  {{data.name}} \n  </div>\n  <div v-if=\"data.fakturiert\" title=\"Rechnung wurde fakturiert\">\n    <ae-icon class=\"far fa-receipt text-green-700\"></ae-icon>\n  </div>\n  <div v-if=\"data.bezahlt\" title=\"Rechnung wurde bezahlt\">\n    <ae-icon class=\"far fa-sack-dollar text-green-700\"></ae-icon>\n  </div>\n  <div v-if=\"data.schlussrechnung\" title=\"Schlussrechnung\">\n    <ae-icon class=\"far fa-circle-euro text-blue-700\"></ae-icon>\n  </div>\n  <div title=\"Summe (netto)\" class=\"w-28 min-w-28 truncate flex items-center justify-end\">\n    {{ new Intl.NumberFormat('de-DE', { style: 'currency', currency: 'EUR' }).format(data.netto) }}\n  </div>\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"89d3bcb2-4004-4651-9c51-ce8ca71dbc35","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-03-03T11:06:47+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"p":"54da686f-3f74-441b-b686-ed2b71dd35cc","previous":{"v":"0145e411fe160d37"},"stamps":[],"t":1772536007736,"v":"394b72b4a5a3e5c5"},{"id":"a0425128-a6fb-4d5a-b4c1-bd70726c8ca3","v":"08edd049ce36635b","previous":{"v":"6c3288bfa8280c16"},"p":"a37b2d75-d9d3-495a-a31c-52094d82e7bb","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:styled-title","template":"<div class=\"flex flex-col overflow-hidden\" \n  <section class=\"flex gap-2 items-center flex-wrap\"\n  >\n    <section class=\"flex flex-col gap-1 overflow-hidden flex-1\" >\n      <div class=\"flex gap-2\">\n        <ae-design class=\"text-neutral-600 dark:text-neutral-200 w-full overflow-hidden\" name=\"title\" :document=\"document\"></ae-design>\n      </div>\n      <div class=\"flex gap-2 text-sm text-neutral-600 dark:text-neutral-200 items-center\">\n        <ae-design name=\"rd:icon\" :document=\"document\"></ae-design>\n        <!-- <ae-design name=\"rd:size\" :document=\"document\" param-field-name=\"template\"></ae-design> -->\n      </div>\n    </section> \n\n    <section>\n      <div v-if=\"!data.template.dataUrl\">\n        <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n                  param-icon=\"far fa-engine-warning text-yellow-500\"\n                  @selected=\"Aeppic.drillInto(document)\"\n                  param-text=\"Kein Template\"\n                  param-title=\"Kein Template hinterlegt. Klicken um zu ändern\"\n        ></ae-layout>  \n      </div>\n      <div v-else-if=\"data.generated.dataUrl\">\n        <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n                @selected=\"{ locals.clicked = true; $refs.downloadLink.click() }\"\n                :param-icon=\"locals.clicked ? 'far fa-file-check' : 'far fa-file-download'\"\n                param-text=\"Herunterladen\"\n                :param-disabled=\"locals.clicked\"\n        ></ae-layout>  \n\n        <!-- @click.stop prevents click bubbling to upper design  -->\n        <a class=\"hidden\"\n            :href=\"Aeppic.Content.getPreviewSrc(document, 'generated')\"\n            target=\"_blank\"\n            :download=\"controller.name\"\n            ref=\"downloadLink\"\n            @click.stop\n        ></a>\n      </div>\n      <div v-else title=\"Datei wird erstellt\">\n        <ae-icon class=\"far fa-spinner fa-spin\"></ae-icon>\n      </div>\n    </section>\n  </section>\n</div>\n   \n \n\n<!-- <div class=\"bp-card _CSS-card\" \n     :class=\"{ 'bp-card--bordered': params.withoutBorder !== true && params.noBorder !== true, 'ae-navigatable': !params.noRemove && !params.readonly }\"\n     @click.stop=\"controller.show()\"\n>\n  <div class=\"_CSS-card__title\">\n    <ae-design name=\"icon\" :document=\"document\" style=\"margin-right: 1em;\"></ae-design>\n    <ae-design name=\"ref-card-title,title\" :document=\"document\"></ae-design>\n  </div>\n\n  <a v-if=\"data.generated.dataUrl\" :href=\"Aeppic.Content.getPreviewSrc(document, 'generated')\" target=\"_blank\" :download=\"controller.name\" @click.stop=\"locals.clicked = true\">\n    <button class=\"_CSS-actions__action ae-button\" title=\"Herunterladen\" :disabled=\"locals.clicked\">\n      <ae-icon :class=\"locals.clicked ? 'fa fa-file-check' : 'fa fa-file-download'\"></ae-icon> Download\n    </button>  \n  </a>\n  <a v-else title=\"Datei wird erstellt...\">\n    <ae-icon class=\"fa fa-spinner fa-spin\"></ae-icon>\n  </a>\n  <ae-design v-if=\"!params.noRemove && !params.readonly\" name=\"ref-remove\" :document=\"document\" @remove=\"$emit('remove', $event)\"></ae-design>\n</div>\n\n<ae-layout\n  v-if=\"locals.preview\"\n  ref=\"preview\"\n  layout-id=\"bbd6d99f-571d-422f-a2bc-15d3f8ecfae8\"\n  :param-file-name=\"controller.name\"\n  param-field-name=\"generated\"\n  :param-document=\"document\"\n  :param-download-pdf=\"true\"\n  @close=\"locals.preview = false\"\n></ae-layout> -->\n\n","css":"","controller":"async init() {\n  this.FORMS = {\n    Stammdaten: '089eb68f-d2ec-4e30-a3bb-6549d72932ec'\n  }\n\n  locals.preview = false\n  locals.clicked = false\n}\n\nasync show() {\n  if (document.a_forms.find(aForm => aForm === this.FORMS.Stammdaten)) {\n    Aeppic.drillInto(document)\n    return\n  }\n\n  locals.preview = true\n\n  await Aeppic.nextRenderPass()\n  await Aeppic.nextRenderPass()\n  await Aeppic.nextRenderPass()\n\n  $refs.preview.$emit('show')\n}\n\nget name() {\n  return `${data.generated.name}`.replace('.docx', '.pdf')\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-04-26T11:50:58+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-04-26T13:32:19+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1714138339477,"ct":1714132261483,"a_depth":4,"a":["apps","fb62ad28-07b0-4a99-91bd-43c297656f12","4e988078-8eed-4c34-9cc2-9b6c3e2cdb2a","a37b2d75-d9d3-495a-a31c-52094d82e7bb"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"a6b86b31-178b-4367-95ce-34ca501eac63","v":"a0c87ee5d3036b97","previous":{"v":"c10f17155c6d9ade"},"p":"7bd8d807-a0c2-49f4-90da-501e3a685ec5","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:styled-title","template":"<div class=\"flex gap-6 items-center\">\n  <div class=\"w-20\" v-if=\"data.wann\">\n  {{ Aeppic.DateTime.fromISO(data.wann).toLocaleString(Aeppic.DateTime.DATE_SHORT) }}\n  </div>\n\n  <div>\n    <ae-icon v-if=\"data.wirksamkeitZielErreicht\" class=\"far fa-check text-green-500\"></ae-icon>\n    <ae-icon v-else class=\"far fa-times text-red-500\"></ae-icon>\n  </div>\n</div>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-06-16T10:42:16+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-06-16T10:46:14+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1686912374780,"ct":1686912136965,"a_depth":4,"a":["apps","075a56a2-3d34-402e-82ef-bd1fc7df456a","efe6c460-ec94-41c6-994b-c27d08d74381","7bd8d807-a0c2-49f4-90da-501e3a685ec5"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","5beeae17-7bb1-4eeb-bcb6-cf0e6950e27c"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2025-05-26T11:41:39+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1748259699673,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.type = data.type\n\n    const form = await Aeppic.getFormForDocument(document)\n\n    locals.type = form.getField('type')?.settings.options.find(o => o.value === data.type)?.display || data.type\n  }\n} ","css":"","description":"","name":"rd:styled-title","packages":[],"template":"<div class=\"flex gap-1 cursor-pointer\">\n  <div>\n  {{locals.type}}\n  </div>\n  vom \n  <div v-if=\"data.sessionDate\">\n    {{ Aeppic.DateTime.fromISO(data.sessionDate).toLocaleString(Aeppic.DATE_SHORT)}}\n  </div>\n  <div v-else class=\"italic\">\n    kein Sitzungsdatum\n  </div>\n\n  <div class=\"flex-1\"></div>\n\n  <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n          :param-icon=\"data.allDocumentDataValid ? 'far fa-badge-check text-green-500' : 'far fa-badge-percent text-red-500'\"\n          :param-title=\"data.allDocumentDataValid ? 'Alle erforderlichen Felder ausgefüllt' : 'Nicht alle erforderlichen Felder ausgefüllt'\"\n          @selected=\"Aeppic.drillInto(document)\"\n  ></ae-layout>\n</div>\n\n"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"a98c7c3d-a260-4ae8-a06a-32d8fea36879","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-07-18T13:14:32+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"5beeae17-7bb1-4eeb-bcb6-cf0e6950e27c","previous":{"v":"4802f35d947f000f"},"stamps":[],"t":1752844472284,"v":"d255c3713aceb20a"},{"id":"b8f0e184-e783-4df1-a234-0297361ec5b6","v":"a98d81b8bd781743","cloneOf":{"id":"d08dd81e-c84a-4571-b1b7-073467875d59","v":"b0c67585e9beeba9","text":"ref-card-title"},"originalCloneOf":{"id":"d08dd81e-c84a-4571-b1b7-073467875d59","v":"b0c67585e9beeba9","text":"ref-card-title"},"previous":{"v":"d3e3df9959845262"},"p":"a40633b4-c769-4457-a267-830738d4b549","f":{"id":"design-form","v":"0061789efb5c5c29","text":"Design"},"data":{"name":"rd:styled-title","template":"<span class=\"\">\n  {{locals.titleParts[0]}}\n</span>\n<span class=\"text-neutral-600 text-sm\">\n  ({{locals.titleParts[1]}})\n</span>","css":"","controller":"class Controller {\n  init() {\n    this.currencyFormatter = new Intl.NumberFormat('de-de', { style: 'currency', currency: 'EUR' })\n\n    locals.titleParts = []\n    locals.titleParts = this.getTitleParts()\n\n    Aeppic.watchRevisions(document, () => locals.titleParts = this.getTitleParts())\n  }\n\n  getTitleParts() {\n    const date = data.datum ? `${Aeppic.DateTime.fromISO(data.datum).toLocaleString(Aeppic.DateTime.DATE_SHORT)}` : ''\n    const title = `${date} - ${data.name}`\n    const type = data.typ\n    const amount = data.menge !== 1 ? `${data.menge}x ` : ''\n    const sum = data.abrechenbar ? this.currencyFormatter.format(data.summe) : 'Ohne Berechnung'\n    const singularCost = this.currencyFormatter.format(data.kostenProEinheit.amount)\n    const duration = data.dauer && Aeppic.DateTimeDuration.fromObject(data.dauer).shiftTo('hours').hours\n\n    let parts = []\n\n    if (type === 'ZEIT') {\n      parts = [\n        title,\n        `${amount}${singularCost}/${duration !== 1 ? duration : ''}h = ${sum}`\n      ]\n    } else if (type === 'ENTFERNUNG') {\n      parts = [\n        title,\n        `${amount}${singularCost}/km = ${sum}`\n      ]\n    } else if (type === 'SOCKEL_PLUS_VARIABLE') {\n      parts = [\n        title,\n        `${this.currencyFormatter.format(data.fixeKosten.amount)}+\\n${amount} ${singularCost}/${duration !== 1 ? duration : ''}h \\n= ${sum}`\n      ]\n    } else if (type === 'MATERIAL') {\n      parts = [\n        title,\n        `${amount ? `${amount} ${singularCost} = ` : ''}${sum}`, \n      ]\n    } else if (type === 'PAUSCHALE') {\n      parts = [\n        title,\n        `${amount}${singularCost} = ${sum}`,\n      ]\n    } else {\n      console.error(`Unknown typ ${type}`)\n      parts = [\n        title,\n        `${amount}${singularCost}`,\n      ]\n    }\n\n    return parts\n  }\n\n}\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-04-09T14:59:13+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-04-09T15:00:16+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1712674816158,"ct":1712674753687,"a_depth":4,"a":["apps","0924db0f-7095-4b51-8966-bad1e45d68ec","a3b935e7-60bc-4996-9b18-668e4361067f","a40633b4-c769-4457-a267-830738d4b549"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","8c113cd0-af90-42fa-aa05-f67809d0a9a5"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2025-08-07T08:05:23+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1754553923489,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:styled-title","packages":[],"template":"<ae-design\n  name=\"title\"\n  :document=\"document\"\n  :class=\"{ 'line-through': data.inactive }\"\n  :params=\"params\"\n  v-on=\"$listeners\"\n></ae-design>\n"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"d8093c38-ad50-4cbf-a4b1-f0b7c1a7fcb3","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-08-07T08:06:58+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"8c113cd0-af90-42fa-aa05-f67809d0a9a5","previous":{"v":"dea529edb86f3b24"},"stamps":[],"t":1754554018963,"v":"5a7e447293b56ced"},{"a":["system","system-forms","c0d56b6e-a7f6-4eaf-9e3b-cfc592ade3be"],"a_depth":3,"a_forms":["system-folder-form","repository-folder-form","form"],"cloneOf":{"id":"7c227f21-80d3-4110-8fe3-b9cb0e4453e6","text":"search-title","v":"735ddcce395f8576"},"created":{"at":"2026-02-20T12:04:19+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"ct":1771589063854,"data":{"aliases":[],"controller":"","css":"._CSS-container {\n  display: grid;\n}\n\n._CSS-title {\n  flex: 1;\n  margin-right: var(--ae-space-2);\n}\n\n._CSS-description {\n  min-width: 0;\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  font-style: italic;\n}\n\n._CSS-icons {\n  min-width: 100px;\n  display: flex;\n  justify-content: flex-end;\n}\n\n._CSS-icons > *~* {\n  margin-left: var(--ae-space-2);\n}","description":"","name":"rd:styled-title","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<div class=\"h-full grid grid-cols-3\">\n  <ae-design class=\"\" name=\"title\" :document=\"document\"></ae-design> \n\n  <div class=\"text-xs whitespace-pre-line overflow-hidden\" :title=\"data.description\">{{ data.description }}</div>\n\n  <div class=\"flex gap-2\" >\n    <span title=\"available\">\n      <ae-icon v-if=\"data.available\" class=\"fa fa-check\"></ae-icon> \n      <ae-icon v-else class=\"fa fa-times\"></ae-icon> \n    </span>\n\n    <span title=\"exposeHTTPApi\" v-if=\"data.exposeHTTPApi\">\n      <ae-icon class=\"fa fa-server\"></ae-icon> \n    </span>\n  </div>\n</div>"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"e888bf7d-9750-47f8-b8b4-d7b33e26fe19","inheritedLocks":[null,null,null,null],"locks":[],"meta":{},"modified":{"at":"2026-02-20T12:24:44+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"7c227f21-80d3-4110-8fe3-b9cb0e4453e6","text":"search-title","v":"735ddcce395f8576"},"p":"c0d56b6e-a7f6-4eaf-9e3b-cfc592ade3be","previous":{"v":"8921f63b7156638b"},"stamps":[],"t":1771590284741,"v":"973e2126d0cabe8f"},{"id":"f7dd4015-34bb-420b-a6ef-92a4c513d50a","v":"0644c9edcb01b275","cloneOf":{"id":"89d3bcb2-4004-4651-9c51-ce8ca71dbc35","v":"26f1901f4a22d1d3","text":"rd:styled-title"},"originalCloneOf":{"id":"89d3bcb2-4004-4651-9c51-ce8ca71dbc35","v":"26f1901f4a22d1d3","text":"rd:styled-title"},"previous":{"v":"d3796a1e3db22245"},"p":"e9f42b0b-50dd-4e21-9152-02c89b73c6d7","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:styled-title","template":" <div class=\"flex gap-2 items-center\">\n  <div class=\"truncate flex-1 w-0\" :title=\"data.name\">\n  {{data.name}} \n  </div>\n  <div v-if=\"data.angenommen\" title=\"Angebot wurde angenommen\">\n    <ae-icon class=\"far fa-check text-green-700\"></ae-icon>\n  </div>\n  <div title=\"Summe (netto)\" class=\"w-28 min-w-28 truncate flex items-center justify-end\">\n    {{ new Intl.NumberFormat('de-DE', { style: 'currency', currency: 'EUR' }).format(data.netto) }}\n  </div>\n</div>\n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-12-12T09:05:40+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2025-01-29T13:33:40+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1738157620122,"ct":1702371940373,"a_depth":4,"a":["apps","0924db0f-7095-4b51-8966-bad1e45d68ec","a3b935e7-60bc-4996-9b18-668e4361067f","e9f42b0b-50dd-4e21-9152-02c89b73c6d7"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"fa1c568c-b1cd-436e-8b7e-67d10392aedc","v":"6bc4642250f824af","previous":{"v":"a15c6e9779f26635"},"p":"0deb4864-cbb6-420c-99ee-337c7444ab24","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"rd:styled-title","template":"<div :class=\"[ data.erledigt && 'line-through\t' ]\">\n  <ae-design name=\"title\" :document=\"document\" :params=\"params\"></ae-design>\n</div>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-08-25T14:36:34+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-08-25T14:38:13+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1661438293292,"ct":1661438194719,"a_depth":4,"a":["apps","59edbdbc-2cab-426a-bb42-6e57c5158e4f","3be7e887-1bcd-4c3c-979f-b20a986c4c48","0deb4864-cbb6-420c-99ee-337c7444ab24"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","347d38c6-0bce-47ce-b271-9f924c56ac49"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2025-10-13T14:38:30+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1760366310316,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:styled-title","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<div class=\"flex gap-4 truncate\">\n  <div v-if=\"data.name.trim()\" class=\"flex-1\">{{data.name}}</div>\n  <div v-else class=\"italic flex-1\">{{document.f.text}}</div>\n\n  <div title=\"Begonnen am/um\" class=\"text-neutral-700 flex gap-1 items-center\">\n    <ae-icon class=\"far fa-timer\"></ae-icon>\n    <ae-design name=\"rd:date\" :document=\"document\" param-field-name=\"started\" param-empty-text=\"-\"></ae-design>\n  </div>\n\n  <div title=\"Beendet am/um\" class=\"text-neutral-700 flex gap-1 items-center\">\n    <ae-icon class=\"far fa-hourglass-end\"></ae-icon>\n    <ae-design name=\"rd:date\" :document=\"document\" param-field-name=\"ended\" param-empty-text=\"-\"></ae-design>\n  </div>\n</div>\n\n  "},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"fb8d7854-4997-4861-846e-23ae9b950435","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-12-16T14:30:17+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"p":"347d38c6-0bce-47ce-b271-9f924c56ac49","previous":{"v":"5d2d496b712c10d5"},"stamps":[],"t":1765895417853,"v":"9fb43713af10ce23"},{"id":"fe298ee7-2367-4088-98b4-d853a0ecd8e2","v":"e7b6151460b39d38","previous":{"v":"initial"},"p":"da0f2915-48ea-45da-927b-640bb5173b96","f":{"id":"design-form","v":"4b1c7a4912f80103","text":"Design"},"data":{"name":"rd:styled-title","template":"<ae-design name=\"title\" :document-id=\"data.empfehlungDurch.id\"></ae-design>","css":"","controller":"","packages":[],"parameters":[],"parametersDescriptions":[],"parametersTypes":[],"parametersControls":[],"parametersCardinalities":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2026-03-30T07:20:22+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":"","impersonatedBy":"","from":"","client":"server"},"modified":{"at":"2026-03-30T07:21:12+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":"","impersonatedBy":"","from":"","client":"server"},"t":1774855272717,"ct":1774855222048,"a_depth":4,"a":["apps","94a64d89-d204-4918-b147-d717914fb03e","f254ce25-42f1-4333-8ee7-23554bf746c1","da0f2915-48ea-45da-927b-640bb5173b96"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["system","b2533f7b-ea85-4680-99ed-d8e11be641b9","0e6939d6-9b93-4165-b6bd-977e4da881f3","627f5b74-3baf-45f8-a1d3-a5936839b844","group"],"a_depth":5,"a_forms":["system-folder-form","folder","application-form","form-folder","form"],"created":{"at":"2023-01-05T15:00:35+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1672930835569,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.subGroups = []\n\n    Aeppic.subscribe(`a:${document.a[0]} f.id:group data.group:${document.id}`, { sort: 'data.name' }, (docs) => {\n      locals.subGroups = docs\n    })\n  }\n}","css":"","description":"","name":"rd:sub-groups","packages":[],"template":"<div class=\"flex flex-col divide-y\">\n  <div v-for=\"group of locals.subGroups\">\n    <ae-design name=\"security:rd-card\" :document=\"group\" @selected=\"$emit('selected', $event)\"></ae-design>\n\n    <!-- protect against same group recursion -->\n    <ae-design v-if=\"group.id !== document.id\" class=\"mx-10\" name=\"rd:sub-groups\" :document=\"group\" @selected=\"$emit('selected', $event)\"></ae-design>\n  </div>\n</div> "},"f":{"id":"design-form","text":"Design","v":"c2d9ae57c7a46896"},"id":"291500b5-7896-4a72-9f84-669f54494a70","inheritedLocks":[null,null,null,null,null,null],"locks":[],"modified":{"at":"2025-11-27T12:36:53+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"group","previous":{"v":"58eb315ab460631a"},"stamps":[],"t":1764247013675,"v":"18ecf575ea7ff7d8"},{"a":["system","04632e3e-9132-4927-b91d-3c28d1afe3e9","e9f6cbce-0b0f-4ef3-a7cf-ae0b2ddbce03","229af740-4ce1-49f9-b37b-333381dea3ce"],"a_depth":4,"a_forms":["system-folder-form","folder","form","form"],"cloneOf":{"id":"d88dc7ef-80d6-4155-aa1a-673dda227d7f","text":"rd:title","v":"initial"},"created":{"at":"2025-11-18T08:21:02+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"ct":1763454062367,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:subheader","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"Level 2: {{data.name}}"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"cda3025d-2103-4ce4-877d-0e35d4d8cf05","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-11-18T13:51:16+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"d88dc7ef-80d6-4155-aa1a-673dda227d7f","text":"rd:title","v":"initial"},"p":"229af740-4ce1-49f9-b37b-333381dea3ce","previous":{"v":"03d3033aaecfb995"},"stamps":[],"t":1763473876117,"v":"0ecd7d4215f295ef"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","5011479f-3ef7-4c66-810b-3bb65f992712"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2026-01-16T12:34:11+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"ct":1768566851983,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.isActive = this.isActive() \n    locals.labels = (await Aeppic.getFormForDocument(document)).getField('interval').settings.options\n  }\n\n  isActive() {\n    if (!data.active) {\n      return { active: false, readable: 'Planung deaktiviert' }\n    }\n\n    if (data.interval === 'MANUAL') {\n      return { active: true, readable: 'Manuelle Planung' }\n    }\n\n    if (data.from) {\n      const fromDateTime = Aeppic.DateTime.fromISO(data.from)\n      const fromOk = fromDateTime.diffNow().milliseconds <= 0 \n      \n      if (data.to) {\n        const toDateTime = Aeppic.DateTime.fromISO(data.to)\n        const toOk = toDateTime.diffNow().milliseconds >= 0\n\n        const active = fromOk && toOk\n        return {\n          active: active,\n          inFuture: !fromOk && toOk,\n          inPast: fromOk && !toOk,\n          readable: `Aktiv (${active ? 'Ja' : 'Nein'}) von: ${fromDateTime.toLocaleString()} - ${toDateTime.toLocaleString()}`\n        }\n      }\n\n      return { active: fromOk, inFuture: true, readable: `Erst aktiv ab:${fromDateTime.toLocaleString()}` }\n    }\n\n    return { active: false, readable: '' }\n  }\n}  ","css":"","description":"","name":"rd:subtitle","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<div class=\"flex gap-4 relative flex-wrap\" :class=\"{ 'text-red-500': data.facilities.length === 0 }\">\n  <div class=\"flex items-center gap-2\">\n    <ae-icon class=\"far fa-hard-drive\"></ae-icon>\n    {{data.facilities.length}} Anlagen\n  </div>\n\n  <div title=\"Intervall\" class=\"xflex gap-2\">\n    <ae-icon v-if=\"data.interval === 'MANUAL'\" class=\"far fa-hand\"></ae-icon>\n    <ae-icon v-else class=\"far fa-calendar\"></ae-icon>\n    {{ locals.labels?.find(label => label.value === data.interval)?.display }}\n\n    <div v-if=\"locals.isActive.inFuture\" class=\"text-neutral-500\">\n      {{ locals.isActive.readable }}\n    </div>\n  </div>\n\n  <div class=\"flex-1\"></div>\n  <ae-design name=\"title\" :document-id=\"data.team.id\"></ae-design>\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"52776936-ee0e-472b-b037-50303c68643e","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-01-16T14:38:33+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"p":"5011479f-3ef7-4c66-810b-3bb65f992712","previous":{"v":"965a769721ee560d"},"stamps":[],"t":1768574313699,"v":"952683b9f4863b27"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","33e3b54d-6b4b-4aa3-8f70-2b834b27bf66"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2026-01-15T16:10:24+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"ct":1768493424347,"data":{"aliases":[],"controller":"class Controller {\n  init() {\n    this.FORMS = {\n      Areal: '5f4a87a7-5557-4004-bfdc-2fb26c71e0c9',\n      'Gebäude': '5a4fafb4-3c2b-4826-8a85-7c804ee4ac52',\n      'Gebäudeteil': '1e3214b4-b81e-4ac2-a788-c2051af016ab',\n      TechnischerPlatz: '093f533e-9758-479c-97bc-8e4ba7dc3c2d',\n      Anlage: '33e3b54d-6b4b-4aa3-8f70-2b834b27bf66',\n      Aggregat: '31e6efab-61df-4b91-8250-3bfcfd491c6c',\n    }\n    locals.technischerPlatzId = null\n\n    locals.technischerPlatzId = this.findAncestorIdFromFormId(this.FORMS.TechnischerPlatz)\n  }\n\n  findAncestorIdFromFormId(formId) {\n    const index = document.a_forms.findIndex(fid => fid === formId)\n\n    if (index < 0) {\n      return null\n    }\n\n    return document.a[index]\n  } \n}","css":"","description":"","name":"rd:subtitle","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<div class=\"flex gap-4 relative flex-wrap\">\n  <div\n    class=\"flex gap-1 items-center\"\n    :class=\"{ 'text-red-500': document.data.plannings.length === 0 }\"\n    title=\"Planungen\"\n  >\n    <ae-icon class=\"far fa-ballot-check\"></ae-icon>\n    {{ document.data.plannings.length }} Planungen\n  </div>\n\n  <div class=\"flex gap-1 items-center\">\n    <ae-icon class=\"far fa-door-open\"></ae-icon>\n    <ae-design v-if=\"locals.technischerPlatzId\" name=\"title\" :document-id=\"locals.technischerPlatzId\"></ae-design>\n    <div v-else class=\"text-red-500\">Kein technischer Platz</div>\n  </div>\n</div>"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"89adc153-a79a-4675-af7c-bd2c49f89cdc","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-02-04T14:05:11+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"p":"33e3b54d-6b4b-4aa3-8f70-2b834b27bf66","previous":{"v":"d54906b98d273658"},"stamps":[],"t":1770213911967,"v":"e8f564b39016631d"},{"a":["apps","a590ce5b-28fc-4f85-9049-d006e1b8f880","169e87e0-0379-48e1-8c94-8fadac5969bb","c79a8171-022a-4c55-854c-a8119a7911ed"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2024-11-20T09:26:22+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1732094782612,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:subtitle","packages":[],"template":"<div v-if=\"data.schluesselNummer\" class=\"truncate text-sm\">\n  {{data.schluesselNummer}}\n</div> "},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"ecbbe636-eb93-4a08-9aa9-282254d916f1","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2024-11-20T09:29:12+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"c79a8171-022a-4c55-854c-a8119a7911ed","previous":{"v":"03332112cfee2ac0"},"stamps":[],"t":1732094952501,"v":"e5568b947d8ab149"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","46a28dfa-7518-4867-9519-a5f4cd9b9967"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"47a06ca5-d14a-4cfa-9c64-de04bccb360c","text":"rd:page-inner","v":"54df6e25a01d137e"},"created":{"at":"2026-01-20T10:59:53+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"ct":1768906793080,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    this.FORMS = { \n      BCoreTask: '0deb4864-cbb6-420c-99ee-337c7444ab24',\n    }\n\n    locals.task = await Aeppic.findOne(`p:${document.id} f.id:${this.FORMS.BCoreTask}`)\n  }\n}\n","css":"","description":"","name":"rd:tab-administration","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<ae-form\n  v-if=\"locals.task\"\n  layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\"\n  :document=\"locals.task\"\n  :auto-save=\"true\"\n  :auto-save-after=\"1000\"\n  class=\"flex-1\"\n></ae-form>"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"545ce6d6-b4b4-4128-995e-ebe4692a4ed7","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-01-20T11:03:15+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"47a06ca5-d14a-4cfa-9c64-de04bccb360c","text":"rd:page-inner","v":"54df6e25a01d137e"},"p":"46a28dfa-7518-4867-9519-a5f4cd9b9967","previous":{"v":"b362f3266e71c3ca"},"stamps":[],"t":1768906995433,"v":"fa96416846d10275"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","5f4a87a7-5557-4004-bfdc-2fb26c71e0c9"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"e60c8108-2533-4da6-912b-c72695265f4b","text":"rd:page-inner","v":"2ee3da60215a34e7"},"created":{"at":"2026-02-17T14:46:01+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"ct":1771339561972,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:tab-info","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<ae-design \n  class=\"size-full\"\n  name=\"page-inner_default\" \n  :document=\"document\"\n  :params=\"params\"\n></ae-design>"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"7dae7b21-8016-44a9-842c-b5a680d1d1d7","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-02-17T14:57:18+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"e60c8108-2533-4da6-912b-c72695265f4b","text":"rd:page-inner","v":"2ee3da60215a34e7"},"p":"5f4a87a7-5557-4004-bfdc-2fb26c71e0c9","previous":{"v":"acc4bebea186ac88"},"stamps":[],"t":1771340238816,"v":"92548fc4e8088aa8"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","1b166603-d0f3-4f16-98c4-0534afbd6f5a"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"341d79bc-3623-4925-be08-48c6512cf5ee","text":"rd:page-toolbar","v":"e6c3087953fbf932"},"created":{"at":"2026-01-16T09:33:30+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"ct":1768556010828,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.ready = false\n\n    locals.maintenance = await Aeppic.get(data.maintenance)\n    locals.newRepair = null\n\n    locals.ready = true\n  }\n\n  createNewRepair() {\n    \n  }\n}","css":"","description":"","name":"rd:tab-maintenance-execution","packages":[],"template":""},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"2cdbd300-f63c-4c79-828c-4ea2b45fb2ad","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-01-16T10:27:58+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"341d79bc-3623-4925-be08-48c6512cf5ee","text":"rd:page-toolbar","v":"e6c3087953fbf932"},"p":"1b166603-d0f3-4f16-98c4-0534afbd6f5a","previous":{"v":"5929b90052b75601"},"stamps":[],"t":1768559278215,"v":"fd956ebd96b506d6"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","1b166603-d0f3-4f16-98c4-0534afbd6f5a"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"341d79bc-3623-4925-be08-48c6512cf5ee","text":"rd:page-toolbar","v":"e6c3087953fbf932"},"created":{"at":"2026-01-16T09:33:48+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"ct":1768556028892,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      DefectsFolders: '760efba8-d733-4a34-ada6-b7d6d5c6d637',\n      Defect: '46a28dfa-7518-4867-9519-a5f4cd9b9967',\n      BCoreTask: '0deb4864-cbb6-420c-99ee-337c7444ab24',\n      Wartungsfolder: 'fdfaf800-858a-4b45-91c9-5bdad7a63672',\n    }\n\n    locals.ready = false\n    locals.newRepair = null\n    locals.areal = null\n    locals.technischerPlatz = null\n\n    locals.areal = await Aeppic.resolve(data.facility, 'AppKeeptrack-Areal').catch(() => null)\n    locals.technischerPlatz = await Aeppic.resolve(data.facility, 'AppKeeptrack-TechnischerPlatz').catch(() => null)\n    locals.maintenance = await Aeppic.get(data.maintenance)\n\n    const defectsLocation = await Aeppic.findOne(`p:${document.a[document.a_forms.findIndex(aForm => aForm === this.FORMS.Wartungsfolder)]} f.id:${this.FORMS.DefectsFolders}`)\n    const defectsSearch = `p:${defectsLocation.id} f.id:${this.FORMS.Defect} data.maintenanceExecution.id:${document.id}`\n    locals.repairsExist = !!(await Aeppic.findOne(defectsSearch))\n\n    locals.ready = true\n  }\n\n  createNewRepair() {\n    \n  }\n}","css":"","description":"","name":"rd:tab-overview","packages":[],"template":"<template v-if=\"locals.ready\">\n    <div class=\"bg-white p-2 border rounded-lg\">\n      \n      <div class=\"grid grid-cols-1 md:grid-cols-2 gap-6\">\n\n        <section class=\"flex flex-col gap-3\">\n          <header class=\"flex items-center gap-2 text-neutral-600 font-medium text-sm uppercase tracking-wider\">\n            <ae-icon class=\"far fa-clock\"></ae-icon>\n            Zeitraum\n          </header>\n\n          <template>\n            <div v-if=\"!locals.maintenance.data.started\" class=\"text-neutral-500 italic\">\n              Wartung noch nicht gestartet.\n            </div>\n\n            <div v-else class=\"flex flex-col gap-2\">\n              <div>\n                <span class=\"text-xs text-neutral-600 block\">Start</span>\n                <span class=\"text-neutral-900 font-semibold\">\n                  {{ Aeppic.DateTime.fromISO(locals.maintenance.data.started).toLocaleString(Aeppic.DateTime.DATETIME_SHORT) }}\n                </span>\n              </div>\n\n              <div v-if=\"locals.maintenance.data.ended\">\n                <span class=\"text-xs text-neutral-600 block\">Ende</span>\n                <span class=\"text-neutral-900 font-semibold\">\n                  {{ Aeppic.DateTime.fromISO(locals.maintenance.data.ended).toLocaleString(Aeppic.DateTime.DATETIME_SHORT) }}\n                </span>\n              </div>\n\n              <div v-if=\"locals.maintenance.data.duration\" class=\"mt-1\">\n                <span class=\"inline-flex items-center gap-1 px-2 py-1 bg-neutral-100 rounded text-neutral-900 text-sm font-medium\">\n                  <ae-icon class=\"far fa-hourglass-half text-neutral-600 text-xs\"></ae-icon>\n                  <!-- FIXME: toHuman not available -->\n                  {{ Aeppic.DateTimeDuration.fromObject(locals.maintenance.data.duration).hours }}h \n                  {{ Aeppic.DateTimeDuration.fromObject(locals.maintenance.data.duration).minutes }}m\n                </span>\n              </div>\n            </div>\n          </template>\n        </section>\n\n        <section class=\"flex flex-col gap-3 border-t pt-4 border-neutral-100 md:border-t-0 md:pt-0 md:border-l md:pl-6\">\n          <header class=\"flex items-center gap-2 text-neutral-600 font-medium text-sm uppercase tracking-wider\">\n            <ae-icon class=\"far fa-map-marker-alt\"></ae-icon>\n            Areal & Technischer Platz\n          </header>\n\n          <div class=\"flex flex-col gap-3\">\n            <div class=\"flex flex-col\">\n              <span class=\"text-xs text-neutral-600 mb-0.5\">Areal</span>\n              <div v-if=\"locals.areal\" class=\"text-neutral-900 font-semibold\">\n                <ae-design name=\"title\" :document=\"locals.areal\" :param-no-commands=\"true\"></ae-design>\n              </div>\n              <div v-else class=\"text-red-600 text-sm flex items-center gap-1\">\n                <ae-icon class=\"far fa-exclamation-circle\"></ae-icon> Nicht verknüpft\n              </div>\n            </div>\n\n            <div class=\"flex flex-col\">\n              <span class=\"text-xs text-neutral-600 mb-0.5\">Technischer Platz</span>\n              <div v-if=\"locals.technischerPlatz\" class=\"text-neutral-900\">\n                <ae-design name=\"title\" :document=\"locals.technischerPlatz\" :param-no-commands=\"true\"></ae-design>\n              </div>\n              <div v-else class=\"text-red-600 text-sm flex items-center gap-1\">\n                <ae-icon class=\"far fa-exclamation-circle\"></ae-icon> Nicht verknüpft\n              </div>\n            </div>\n          </div>\n        </section>\n\n      </div>\n\n      <div class=\"h-px bg-neutral-100 my-4\"></div>\n\n      <section class=\"flex flex-col gap-3\">\n        <header class=\"flex items-center gap-2 text-neutral-600 font-medium text-sm uppercase tracking-wider\">\n          <ae-icon class=\"far fa-users\"></ae-icon>\n          Zuständig\n        </header>\n\n        <template>\n          <div v-if=\"data.team && data.team.length > 0\">\n            <ae-design\n              v-for=\"team of data.team\"\n              :key=\"team.id\"\n              name=\"rd:maintenance-card\"\n              :document=\"team\"\n              :param-no-commands=\"true\"\n              class=\"text-neutral-900\"\n            ></ae-design>\n          </div>\n          <div v-else class=\"text-neutral-500 italic text-sm\">\n            Kein Team zugewiesen\n          </div>\n        </template>\n      </section>\n\n    </div>\n\n    <section class=\"mt-4 bg-white p-2 border rounded-lg\" :class=\"[locals.repairsExisttest && 'border-red-500']\">\n      <ae-design \n        name=\"rd:review\" \n        :document=\"locals.maintenance\"\n        :param-is-dialog=\"params.isDialog\"\n      ></ae-design>\n    </section>\n    \n    <div\n      class=\"mt-4 flex gap-2 items-center\"\n    >\n      <ae-layout class=\"\" layout-id=\"20a6dabd-5c89-4fb9-a12b-5bc63a48e7ca\" :param-document=\"document\"></ae-layout>\n      <ae-design\n        :document=\"document\"\n        name=\"rd:export-csv\"\n      ></ae-design>\n    </div>\n</template>"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"4149bf0e-5b7e-4881-99a9-b67542d4b825","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-06-02T08:02:43+00:00","backedBy":"","by":"09763886-6748-4a56-8e0e-54a2293ee96b","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"341d79bc-3623-4925-be08-48c6512cf5ee","text":"rd:page-toolbar","v":"e6c3087953fbf932"},"p":"1b166603-d0f3-4f16-98c4-0534afbd6f5a","previous":{"v":"89af1baac502e171"},"stamps":[],"t":1780387363730,"v":"017ec46b28e5589e"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","46a28dfa-7518-4867-9519-a5f4cd9b9967"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"4149bf0e-5b7e-4881-99a9-b67542d4b825","text":"rd:tab-overview","v":"aa689a347e611aa5"},"created":{"at":"2026-01-22T14:35:47+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"ct":1769092547522,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:tab-overview","packages":[],"template":"<template>\n    <div class=\"bg-white p-2 border rounded-lg\">\n      \n      <div class=\"grid grid-cols-1 md:grid-cols-2 gap-6\">\n\n        <section class=\"flex flex-col gap-3\">\n          <header class=\"flex items-center gap-2 text-neutral-600 font-medium text-sm uppercase tracking-wider\">\n            <ae-icon class=\"far fa-clock\"></ae-icon>\n            Zeitraum\n          </header>\n\n          <template>\n            <div v-if=\"!data.started\" class=\"text-neutral-500 italic\">\n              Reparatur noch nicht gestartet.\n            </div>\n\n            <div v-else class=\"flex flex-col gap-2\">\n              <div>\n                <span class=\"text-xs text-neutral-600 block\">Start</span>\n                <span class=\"text-neutral-900 font-semibold\">\n                  {{ Aeppic.DateTime.fromISO(data.started).toLocaleString(Aeppic.DateTime.DATETIME_SHORT) }}\n                </span>\n              </div>\n\n              <div v-if=\"data.ended\">\n                <span class=\"text-xs text-neutral-600 block\">Ende</span>\n                <span class=\"text-neutral-900 font-semibold\">\n                  {{ Aeppic.DateTime.fromISO(data.ended).toLocaleString(Aeppic.DateTime.DATETIME_SHORT) }}\n                </span>\n              </div>\n\n              <div v-if=\"data.duration\" class=\"mt-1\">\n                <span class=\"inline-flex items-center gap-1 px-2 py-1 bg-neutral-100 rounded text-neutral-900 text-sm font-medium\">\n                  <ae-icon class=\"far fa-hourglass-half text-neutral-600 text-xs\"></ae-icon>\n                  <!-- FIXME: toHuman not available -->\n                  {{ Aeppic.DateTimeDuration.fromObject(data.duration).hours }}h \n                  {{ Aeppic.DateTimeDuration.fromObject(data.duration).minutes }}m\n                </span>\n              </div>\n            </div>\n          </template>\n        </section>\n\n        <section class=\"flex flex-col gap-3 border-t pt-4 border-neutral-100 md:border-t-0 md:pt-0 md:border-l md:pl-6\">\n          <header class=\"flex items-center gap-2 text-neutral-600 font-medium text-sm uppercase tracking-wider\">\n            <ae-icon class=\"far fa-map-marker-alt\"></ae-icon>\n            Areal & Technischer Platz\n          </header>\n\n          <div class=\"flex flex-col gap-3\">\n            <div class=\"flex flex-col\">\n              <span class=\"text-xs text-neutral-600 mb-0.5\">Areal</span>\n              <div v-if=\"data.object.id\" class=\"text-neutral-900 font-semibold\">\n                <ae-design name=\"title\" :document=\"data.object\" :param-no-commands=\"true\"></ae-design>\n              </div>\n              <div v-else class=\"text-red-600 text-sm flex items-center gap-1\">\n                <ae-icon class=\"far fa-exclamation-circle\"></ae-icon> Nicht verknüpft\n              </div>\n            </div>\n\n            <div class=\"flex flex-col\">\n              <span class=\"text-xs text-neutral-600 mb-0.5\">Technischer Platz</span>\n              <div v-if=\"data.location.id\" class=\"text-neutral-900\">\n                <ae-design name=\"title\" :document=\"data.location\" :param-no-commands=\"true\"></ae-design>\n              </div>\n              <div v-else class=\"text-red-600 text-sm flex items-center gap-1\">\n                <ae-icon class=\"far fa-exclamation-circle\"></ae-icon> Nicht verknüpft\n              </div>\n            </div>\n          </div>\n        </section>\n\n      </div>\n\n      <div class=\"h-px bg-neutral-100 my-4\"></div>\n\n      <section class=\"flex flex-col gap-3\">\n        <header class=\"flex items-center gap-2 text-neutral-600 font-medium text-sm uppercase tracking-wider\">\n          <ae-icon class=\"far fa-users\"></ae-icon>\n          Zuständig\n        </header>\n\n        <template>\n          <div v-if=\"data.team && data.team.length > 0\">\n            <ae-design\n              v-for=\"team of data.team\"\n              :key=\"team.id\"\n              name=\"rd:maintenance-card\"\n              :document=\"team\"\n              :param-no-commands=\"true\"\n              class=\"text-neutral-900\"\n            ></ae-design>\n          </div>\n          <div v-else class=\"text-neutral-500 italic text-sm\">\n            Kein Team zugewiesen\n          </div>\n        </template>\n      </section>\n\n    </div>\n\n    <section class=\"mt-6 bg-white p-2 border rounded-lg\">\n      <ae-design \n        name=\"rd:facility-review\" \n        :document-id=\"data.maintenanceExecution.id\"\n        :param-is-dialog=\"params.isDialog\" \n      ></ae-design>\n    </section>\n</template>   "},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"ca78e75b-6ab8-41dc-b9b4-aa0b7873da29","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-02-06T11:43:19+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"4149bf0e-5b7e-4881-99a9-b67542d4b825","text":"rd:tab-overview","v":"aa689a347e611aa5"},"p":"46a28dfa-7518-4867-9519-a5f4cd9b9967","previous":{"v":"1e728f93c9f1054a"},"stamps":[],"t":1770378199680,"v":"63cbbbc13f2b524e"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","46a28dfa-7518-4867-9519-a5f4cd9b9967"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"47a06ca5-d14a-4cfa-9c64-de04bccb360c","text":"rd:page-inner","v":"54df6e25a01d137e"},"created":{"at":"2026-01-20T10:59:55+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"ct":1768906795559,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n\n    locals.releasedViewReadonly = {\n      only: {\n        fields: [\n          'maintenanceExecution',\n          'facility',\n          'location',\n          'object',\n          'workItems',\n          'team',\n          'informationTeam',\n          'started',\n          'ended',\n          'comment',\n          'photos',\n          'signature',\n        ],\n      },\n    }\n\n    locals.releasedView = {\n      only: {\n        fields: [\n          'done',\n          'name',\n          'inProgress',\n          'priority',\n          'dueStart',\n          'responsible',\n          'dueDateTime',\n          'dueEnd',\n          'description',\n          'workflowStatus',\n          'released',\n          'type',\n          'status',\n        ],\n      },\n      stopWithSection: 1,\n    }\n\n    locals.releasedViewAcknowledged = {\n      only: {\n        fields: [\n          'done',\n          'name',\n          'inProgress',\n          'priority',\n          'dueStart',\n          'responsible',\n          'dueDateTime',\n          'dueEnd',\n          'description',\n          'workflowStatus',\n          'released',\n          'type',\n          'status',\n          'acknowledgedBy',\n          'acknowledgedAt',\n        ],\n      },\n    }\n  }\n}\n","css":"","description":"","name":"rd:tab-repair","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<div class=\"min-h-full w-full\">\n  <ae-form\n    v-if=\"data.workflowStatus === 'PLANNED'\"\n    layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\"\n    :document=\"document\"\n    :auto-save=\"true\"\n    :auto-save-after=\"1000\"\n    class=\"flex-1\"\n  ></ae-form>\n  <template v-else>\n    <ae-form v-if=\"data.workflowStatus === 'ACKNOWLEDGED'\"\n      layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\"\n      :document=\"document\"\n      :view=\"locals.releasedViewAcknowledged\"\n      :auto-save=\"true\"\n      :auto-save-after=\"1000\"\n    class=\"flex-1\"\n    ></ae-form>\n    <ae-form v-else\n      layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\"\n      :document=\"document\"\n      :view=\"locals.releasedView\"\n      :auto-save=\"true\"\n      :auto-save-after=\"1000\"\n    class=\"flex-1\"\n    ></ae-form>\n\n    <ae-form layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\" :document=\"document\" :view=\"locals.releasedViewReadonly\" :readonly=\"true\"></ae-form>\n  </template>\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"a6bc527b-cb59-4dbe-a744-ef9af143072a","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-02-06T12:45:08+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"47a06ca5-d14a-4cfa-9c64-de04bccb360c","text":"rd:page-inner","v":"54df6e25a01d137e"},"p":"46a28dfa-7518-4867-9519-a5f4cd9b9967","previous":{"v":"03e5e3e85b0797bf"},"stamps":[],"t":1770381908689,"v":"aee44674b60484f6"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","1b166603-d0f3-4f16-98c4-0534afbd6f5a"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"341d79bc-3623-4925-be08-48c6512cf5ee","text":"rd:page-toolbar","v":"e6c3087953fbf932"},"created":{"at":"2026-01-16T09:33:41+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"ct":1768556021243,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:tab-repairs","packages":[],"template":"<ae-design \n  name=\"rd:defects-list\" \n  :document=\"document\"\n  :params=\"params\"\n></ae-design>"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"893fdb3b-90d4-46ef-b196-af84492d7813","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-03-27T12:42:57+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"341d79bc-3623-4925-be08-48c6512cf5ee","text":"rd:page-toolbar","v":"e6c3087953fbf932"},"p":"1b166603-d0f3-4f16-98c4-0534afbd6f5a","previous":{"v":"117563547de0b650"},"stamps":[],"t":1774615377535,"v":"b187dd9da271889c"},{"id":"27c47d7e-9eeb-4c94-8606-4f494729aa1b","v":"335e544078f3e721","previous":{"v":"3df80d65e5f91593","p":"fallback-designs","a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"]},"p":"1cc4b977-c14d-4587-af47-d6ac230f60b3","f":{"id":"design-form","v":"22a757f630104010","text":"Design"},"data":{"name":"rd:table-avatar","template":"<template v-if=\"Array.isArray(data[controller.fieldName])\" >\n  <ae-design class=\"_CSS-icon__wrapper\" v-for=\"ref in data[controller.fieldName]\" name=\"avatar--small\" :document=\"ref\"></ae-design>\n</template>\n<ae-design v-else name=\"avatar--small\" :document=\"data[controller.fieldName]\"></ae-design>\n","css":"._CSS {\n  display: flex;\n  align-items: flex-start;\n  align-self: center;\n}\n\n._CSS-icon__wrapper {\n  padding: 0.1em;\n}","controller":"get fieldName() {\n  return params.fieldName.replace('data.', '')\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2025-01-27T11:08:40+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2025-01-27T11:08:53+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1767870469092,"ct":1737976128880,"a_depth":3,"a":["apps","77ee8815-2c3a-4bb5-abd9-90541a545a24","1cc4b977-c14d-4587-af47-d6ac230f60b3"],"a_forms":["folder","application-form","design-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"meta":{"modified":{"at":"2026-01-08T11:07:49+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":"","impersonatedBy":"","from":"","client":"server"}}},{"id":"6ee4db6f-069e-4f12-b656-286e6c275cbc","v":"87794b3cf24ceece","previous":{"v":"331aee317a034776"},"p":"6f641574-7cb6-424a-9657-4b8d652a2cf7","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"rd:table-card","template":"<div class=\"flex px-2 py-3 gap-2\" @click.stop=\"$emit('selected', document)\"\n    :class=\"{ 'bg-blue-50': params.selectedDocument?.id === document.id }\"\n>\n  <img class=\"w-10 h-10 rounded-full\" v-if=\"data.foto && data.foto.dataUrl\" :src=\"Aeppic.Content.getThumbnailSrc(document, 'foto')\">\n  <div class=\"w-10 h-10 text-[36px] text-gray-500\" v-else> \n    <ae-icon class=\"fal fa-user-circle\"></ae-icon> \n  </div>\n\n  <div class=\"w-40 shrink-0 grow-0 overflow-hidden text-ellipsis\">\n    {{ data.vorname }}\n    {{ data.nachname }}\n  </div>\n\n  <div class=\"flex flex-col w-64 shrink-0 grow-0 overflow-hidden text-ellipsis\">\n    <div v-for=\"email of controller.email\">\n    {{ email }}\n    </div>\n  </div>\n\n   <div class=\"flex flex-col w-36 shrink-0 grow-0 overflow-hidden text-ellipsis\">\n    <div v-for=\"phone of controller.phone\">\n    {{ phone }}\n    </div>\n  </div>\n\n  <div class=\" overflow-hidden text-ellipsis\">\n    {{ data.unternehmen }}\n    {{ data.position }}\n  </div>\n</div>\n     ","css":"","controller":"class Controller {\n  get email() {\n    if (data.email) {\n      return data.email\n    }\n\n    return [data.email1,data.email2,data.email3].filter(e => !!e)\n  }\n\n  get phone() {\n    if (data.telefon) {\n      return data.telefon\n    }\n\n    return [data.telefon1,data.telefon2,data.telefon3].filter(e => !!e)\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-05-25T10:00:47+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-03-03T14:38:55+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1677854335628,"ct":1653472847516,"a_depth":4,"a":["apps","37fafb3d-18da-4182-af74-082971d50956","c27d5f5f-22ff-4341-935c-02bfdc3e1ee0","6f641574-7cb6-424a-9657-4b8d652a2cf7"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"ac0b4b08-f0b1-4301-a0fb-5c0b480424e2","v":"6a3701bc9d9fedef","previous":{"v":"47d072987a4441f2"},"p":"d2ac3563-3c3f-4f02-b923-9b67abf98d10","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"rd:table-card","template":"<div class=\"flex p-2 gap-2\" @click.stop=\"$emit('selected', document)\"\n    :class=\"{ 'bg-blue-50': params.selected, 'opacity-50 line-through ': document.hidden === true }\"\n>\n  <ae-design name=\"avatar\" :document=\"document\" class=\"text-2xl\"></ae-design>\n\n  <div class=\"flex flex-col overflow-hidden\">\n    <div class=\"flex gap-1\">\n      {{ data.name }}\n      <div v-if=\"data.kuerzel\">\n        ({{ data.kuerzel }})\n      </div>\n    </div>\n    <div class=\"text-neutral-500\">\n      {{data.position}}\n    </div>\n    <div>\n    </div>\n  </div>\n</div>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-10-25T14:47:01+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"modified":{"at":"2024-12-13T09:03:16+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1734080596967,"ct":1666709221075,"a_depth":4,"a":["apps","144e85c0-d7f9-4b20-8928-be30f0c78bda","8e6ee7d3-9122-4a2e-8aaf-9fb3bd204b23","d2ac3563-3c3f-4f02-b923-9b67abf98d10"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"79ae4a9d-259f-491d-a8e4-5cc9b9de0a4b","v":"962a66d5cf90af07","cloneOf":{"id":"6c732418-13a1-4327-9be7-7f32deda0c32","v":"048235ff473bfd5f","text":"table:title-as-link"},"originalCloneOf":{"id":"6c732418-13a1-4327-9be7-7f32deda0c32","v":"048235ff473bfd5f","text":"table:title-as-link"},"previous":{"v":"06007d36ca42f294","p":"fallback-designs","a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"]},"p":"1cc4b977-c14d-4587-af47-d6ac230f60b3","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:table-title-as-link","template":"<a v-if=\"locals.allowLinkNavigation\" class=\"ae-link\" :href=\"locals.document.id\" @click.stop.prevent=\"Aeppic.onLinkClicked($event, locals.document.id)\" @click.right.stop>\n  <ae-design name=\"title\" :params=\"params\" v-on=\"$listeners\" :document-id=\"locals.document.id\"></ae-design>\n</a>\n<ae-design v-else name=\"title\" :params=\"params\" v-on=\"$listeners\" :document-id=\"locals.document.id\"></ae-design>","css":"","controller":"init() {\n  this.FORMS = {\n    Unternehmen: 'c69a0c1c-6c53-40c2-87e8-5ace866bf1df'\n  }\n  \n  locals.document = document.data[params.fieldName.replace('data.', '')]\n\n  // NOTE: this is intentionally checking the original document and not the field because any async document-get tends to make the table laggy\n  locals.allowLinkNavigation = document.a_forms[0] === this.FORMS.Unternehmen\n}\n\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2025-01-27T09:56:05+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2025-01-27T11:07:35+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1767870469092,"ct":1737971765009,"a_depth":3,"a":["apps","77ee8815-2c3a-4bb5-abd9-90541a545a24","1cc4b977-c14d-4587-af47-d6ac230f60b3"],"a_forms":["folder","application-form","design-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"meta":{"modified":{"at":"2026-01-08T11:07:49+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":"","impersonatedBy":"","from":"","client":"server"}}},{"a":["apps","77ee8815-2c3a-4bb5-abd9-90541a545a24","1cc4b977-c14d-4587-af47-d6ac230f60b3"],"a_depth":3,"a_forms":["folder","application-form","design-folder"],"created":{"at":"2022-05-13T13:46:30+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1720684627137,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Tabs: '3af1e0da-0669-46eb-aeaa-d1fca6955688',\n      Tab: '74ca5fd5-fbac-47a0-bd0e-25ca36ecf609',\n    }\n\n    locals.dropdownWidth = 120\n\n    locals.hiddenBreakpointClass = ''\n\n    this.allTabs = []\n    locals.tabs = []\n    locals.dropdownTabs = []\n    locals.activeTab = null\n\n    this.defaultTabIdentifier = null\n    this.tabPersistanceKey = `bp-tab-lA-form-ancestor_${document.f.id}_${document.a?.[0]}`\n\n    params.debug && console.log({queryParams: JSON.stringify(Aeppic.Root.params?.queryParams) })\n\n\n    // --- async code ONLY below this line --- \n\n    const tabsConfig = await Aeppic.findOne(`p:${document.f.id} f.id:${this.FORMS.Tabs}`)\n\n    if (!tabsConfig) {\n      // no tabs configured\n      return\n    }\n\n    if (tabsConfig.data.hiddenBreakpoint) {\n      locals.hiddenBreakpointClass = `${tabsConfig.data.hiddenBreakpoint.toLowerCase()}:hidden`\n    }\n\n    const tabDocuments = await Aeppic.getAll(tabsConfig.data.tabs)\n\n    if (!tabDocuments || tabDocuments.length === 0) {\n      // no tabs configured\n      return\n    }\n\n    let visibleTabDocuments = tabDocuments\n\n    if (params.identifierAllowList && params.identifierAllowList.length > 0) {\n      visibleTabDocuments = tabDocuments.filter(doc => \n        params.identifierAllowList.includes(doc.data.name)\n      )\n    } else if (params.identifierBlocklist && params.identifierBlocklist.length > 0) {\n      visibleTabDocuments = tabDocuments.filter(doc => \n        !params.identifierBlocklist.includes(doc.data.name)\n      )\n    }\n\n    const defaultTabId = tabsConfig.data.defaultTab?.id\n\n    this.allTabs = await Promise.all(visibleTabDocuments.map(async tabDocument => {\n      const documentContainingCount = await this._getDocumentContainingCount(tabDocument)\n\n      const tabObject = {\n        identifier: tabDocument.data.name,\n        text: tabDocument.data.label || '',\n        title: tabDocument.data.label || '',\n        icon: tabDocument.data.icon || '',\n        count: this._getCount(documentContainingCount, tabDocument.data.countsByField?.trim()),\n        countStatisticDocument: null,\n        documentId: tabDocument.id,\n      }\n\n      if (documentContainingCount && documentContainingCount.f.id !== document.f.id) {\n        Aeppic.watch(documentContainingCount, (newDocumentContainingCount) => {\n          tabObject.count = this._getCount(newDocumentContainingCount, tabDocument.data.countsByField?.trim())\n          if ($refs.container) {\n            this.calculateLayout($refs.container.getBoundingClientRect().width)\n          }\n        })\n      }\n\n      return tabObject\n    }))\n\n    this.defaultTabIdentifier = this.allTabs.find(tab => tab.documentId === defaultTabId)?.identifier || null\n\n    // console.log('locals.activeTab', locals.lastActiveTabIdentifier, locals.activeTab, this.tabPersistanceKey, document.f.text)\n\n    this.onTabChange(params.tab || '')\n\n    watchParam('tab', (tab) => this.onTabChange(tab))\n\n\n\n    await Aeppic.nextRenderPass()\n    if ($refs.container) {\n      this.calculateLayout($refs.container.getBoundingClientRect().width)\n    }\n\n    this.resizeObserver = new ResizeObserver(entries => {\n      for (const entry of entries) {\n        if (entry.target === $refs.container) {\n          params.debug && console.log(entry.contentRect.width)\n          this.calculateLayout(entry.contentRect.width)\n        }\n      }\n    })\n\n    this.resizeObserver.observe($refs.container)\n  }\n\n  onTabChange(tab) {\n    params.debug && console.log('onTabChange', tab)\n\n    // Note: We do not ignore if this is empty. This causes a navigation if there is an empty tab, and if there should be one.\n    // Doulble navigation still should not happen, because a valid tab should be provided from above.\n    // if (tab == null || tab === '') {\n    //   return\n    // }\n\n    if (locals.activeTab?.identifier === tab) {\n      params.debug && console.log('onTabChange IGNORE', tab)\n      return\n    }\n\n    if (this._isValidTab(tab)) {\n      this.setActiveTab(tab)\n      this._persistTab(tab)\n      return\n    }\n\n    const fallbackTab = this._resolveFallbackTab()\n\n    if (!fallbackTab || fallbackTab === tab) {\n      return\n    }\n\n    this.setActiveTab(fallbackTab)\n    this._persistTab(fallbackTab)\n    $emit('selected', fallbackTab)\n  }\n\n  calculateLayout(availableContainerWidth) {\n    if (!this.allTabs.length) return\n\n    const canvas = $refs.canvas\n    const context = canvas.getContext('2d')\n    const container = $refs.container // We assume that the weight and size are not changed in the buttons.\n    const win = container.ownerDocument.defaultView // Normally one could use window, but its not available\n    const computedStyle = win.getComputedStyle(container)\n\n    context.font = `${computedStyle.fontWeight} ${computedStyle.fontSize} ${computedStyle.fontFamily}`\n\n    const sizeForIconAndPadding = 38\n    const gap = 8 // Comes from gap-2 in this template and between the buttons in the first layout in the template\n\n    const tabsSizes = this.allTabs.map(tab => {\n      const textWidth = context.measureText(tab.text).width\n      const totalWidth = sizeForIconAndPadding + textWidth\n      // console.log(`Tab: \"${tab.text}\" | Text: ${Math.round(textWidth)}px | Total: ${Math.round(totalWidth)}px`)\n      return totalWidth\n    })\n\n    const totalGapWidth = Math.max(0, tabsSizes.length - 1) * gap\n    const totalWidthRequired = tabsSizes.reduce((sum, size) => sum + size, 0) + totalGapWidth\n\n    if (totalWidthRequired <= availableContainerWidth) {\n      locals.tabs = this.allTabs\n      locals.dropdownTabs = []\n      return\n    }\n\n    const effectiveWidth = availableContainerWidth - locals.dropdownWidth - gap\n\n    const [tabsToRender, hiddenTabs] = tabsSizes.reduce((accumulator, currentTabSize, index) => {\n      const [visible, hidden, sizeLeft] = accumulator\n\n      const costToAdd = visible.length === 0 ? currentTabSize : currentTabSize + gap\n\n      if (sizeLeft - costToAdd >= 0) {\n        return [[...visible, this.allTabs[index]], hidden, sizeLeft - costToAdd]\n      } else {\n        return [visible, [...hidden, this.allTabs[index]], 0]\n      }\n    }, [[], [], effectiveWidth])\n\n    locals.tabs = tabsToRender\n    locals.dropdownTabs = hiddenTabs.map(tab => ({\n      identifier: tab.identifier,\n      display: tab.text,\n      icon: tab.icon,\n      title: tab.text,\n    }))\n  }\n\n  onTabSelected(tabIdentifier) {\n    if (!this._isValidTab(tabIdentifier)) {\n      return\n    }\n\n    this.setActiveTab(tabIdentifier)\n    this._persistTab(tabIdentifier)\n    $emit('selected', locals.activeTab.identifier)\n  }\n\n  setActiveTab(tabIdentifier) {\n    const tab = this._getTab(tabIdentifier) || { identifier: '', text: '', icon: '' }\n\n    locals.activeTab = tab\n  }\n\n  _resolveFallbackTab() {\n    const persistedTab = Aeppic.LocalStorage.getValue(this.tabPersistanceKey)\n\n    if (this._isValidTab(persistedTab)) {\n      return persistedTab\n    }\n\n    if (this._isValidTab(this.defaultTabIdentifier)) {\n      return this.defaultTabIdentifier\n    }\n\n    return this.allTabs[0]?.identifier || null\n  }\n\n  _persistTab(tabIdentifier) {\n    if (this._isValidTab(tabIdentifier)) {\n      Aeppic.LocalStorage.setValue(this.tabPersistanceKey, tabIdentifier)\n    }\n  }\n\n  _isValidTab(identifier) {\n    return !!identifier && this.allTabs.some(t => t.identifier === identifier)\n  }\n\n  onDropdownTabSelected(tab) {\n    this.onTabSelected(tab.identifier)\n  }\n\n  _getTab(identifier) {\n    return this.allTabs.find(t => t.identifier === identifier)\n  }\n\n  async _getDocumentContainingCount(tabDocument) {\n    if (tabDocument.data.countsByField?.trim()) {\n      let documentContainingCount = document\n      // return documentContainingCount // Comment this in to not use the statistic document.\n\n      if (tabDocument.data.pathToStatistic) {\n        try {\n          documentContainingCount = await Aeppic.resolve(document, tabDocument.data.pathToStatistic)\n          return documentContainingCount\n        } catch {\n          return null\n        }\n      }\n      return document\n    }\n\n    return null\n  }\n\n  _getCount(doc, field) {\n    if (!doc) {\n      return doc\n    }\n\n    let count = null\n    const fieldValues = Aeppic.Functions.resolveField(doc, field) // This always returns an array with at least one element, even if it didn't find anything\n    if (fieldValues.length === 1 && fieldValues[0] == null) {\n      count = 0\n    } else if (fieldValues.length === 1 && typeof fieldValues[0] === 'number') {\n      count = fieldValues[0]\n    } else {\n      count = fieldValues.length\n    }\n    return count\n  }\n\n  destroy() {\n    this.resizeObserver?.disconnect()\n  }\n}\n","css":"","description":"","name":"rd:tabs","packages":[],"template":"<div class=\"h-full w-full flex items-center gap-2\"\n    :class=\"locals.hiddenBreakpointClass\"\n    ref=\"container\"\n    :data-test=\"'design' + '_' + design.data.name + '_' + 'documentForm_' + document.f.text\"\n>\n  <!-- <ae-design\n    name=\"rd:tabs-items\"\n    :document=\"document\"\n    @tabs=\"controller.onTabs($event)\"\n    ></ae-design> -->\n    <!-- @selected=\"controller.onTabSelected($event)\"\n    :param-last-active=\"locals.lastActiveTab\"\n    :param-view=\"params.view\"\n    :param-window-width=\"params.windowWidth\"\n    :xparam-show-dropdown=\"locals.showDropdown\"\n    class=\"w-full\" -->\n\n  <!-- {{ locals.dropdownTabs.find(tab => tab.identifier === locals.activeTab?.identifier) }} -->\n    \n\n  <ae-layout\n    layout-id=\"017828fa-4448-499d-bfaf-45ef6b470b43\"\n    @selected=\"controller.onTabSelected($event.identifier)\"\n    :param-buttons=\"locals.tabs\"\n    :param-collapsed=\"params.showDropdown\"\n    :param-selected-identifier=\"locals.activeTab?.identifier\"\n    param-border=\"border-slate-200\"\n  ></ae-layout>\n\n  <ae-layout\n    v-if=\"locals.dropdownTabs.length\"\n    layout-id=\"8bc795f2-7ac8-4b95-9019-0b27b178a36e\"\n    @selected=\"controller.onDropdownTabSelected($event)\"\n    :param-options=\"locals.dropdownTabs\"\n    :param-selected-identifiers=\"locals.activeTab?.identifier ? [locals.activeTab?.identifier] : []\"\n    :param-button-params=\"{ text: 'weitere', iconRight: 'far fa-angle-down', border: 'border border-secondary-200', primary: locals.dropdownTabs.find(tab => tab.identifier === locals.activeTab?.identifier) }\" \n    :style=\"{ xwidth: locals.dropdownWidth + 'px', maxWidth: locals.dropdownWidth + 'px' }\"\n    param-data-test=\"tabs\"\n  ></ae-layout> \n\n\n  <canvas ref=\"canvas\" style=\"display: none;\"> </canvas>\n</div>\n\n"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"4cd42575-ab38-490a-a91d-704cff320c3b","inheritedLocks":[null,null,null,null],"locks":[],"meta":{},"modified":{"at":"2026-07-21T09:29:52+00:00","backedBy":"","by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":""},"p":"1cc4b977-c14d-4587-af47-d6ac230f60b3","previous":{"v":"df5adc38ddc84146"},"stamps":[],"t":1784626192874,"v":"32e4a1746b79720b"},{"a":["apps","77ee8815-2c3a-4bb5-abd9-90541a545a24","1cc4b977-c14d-4587-af47-d6ac230f60b3"],"a_depth":3,"a_forms":["folder","application-form","design-folder"],"created":{"at":"2022-08-23T11:58:59+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1720684627137,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:tag","packages":[],"template":"<!-- Params\n  - readonly               removes the x-icon to the right used to remove tag.\n  - noIcon                 removes the icon/design on the left in general\n  - icon                   displays the icon using the tailwind classes instead of the default design. E.g. \"far fa-tag\"\n  - notPill                sets the border radius to rounded-md instead of rounded-full\n  - backgroundColor        Boolean. Calculates the background color from something.\n  - confirmRemove          If true the calling controller will use a dialogue to confirm remove. \n                           In that case we can disable this' components remove confirmation.\n  - maxWidth               Characters displayed depend on icons and readonly parameters. The more space, the more characters.\n-->\n<!-- Classes\n  - Text Size              this controls the text size and indirectly the height\n  - text Color             e.g. text-[<value>]              \n  - border Color           e.g. border-[<value>]\n-->\n<!-- Planned Params\n  - minWidth               \n  - minHeight\n  - iconBackgroundColor    icon background color in hex format. This should probably not be different from the background color\n  - iconPrimaryColor       e.g. border-[<value>]\n  - iconSecondaryColor     e.g. border-[<value>]\n  - paramerters for the delete icon\n  -- maxCharacters          truncates after x letters.\n-->\n\n<div  class=\"border border-secondary-200 p-[0.2em] flex items-center gap-2\"   \n      :class=\"[params.notPill ? 'rounded-md' : 'rounded-full', \n               locals.backgroundColor ? 'bg-[' + locals.backgroundColor + ']' : '', \n               locals.backgroundColor ? 'border-none' : '',\n               params.maxWidth ? 'max-w-[' + params.maxWidth + ']' : '',\n               params.readonly ? 'cursor-default' : 'cursor-pointer']\"\n      @click.stop=\"$emit('selected', document)\"\n      :data-test=\"'design' + '_' + design.data.name + '_' + 'documentForm_' + document.f.text\"\n>\n  <div v-if=\"!params.noIcon\">\n    <ae-icon v-if=\"params.icon\"\n             class=\"pl-[0.15em]\"\n             :class=\"[params.icon, '']\"\n             :style=\"{ color: data.color }\">\n    </ae-icon>\n    <ae-design v-else \n               name=\"rd:icon,icon\" \n               :document=\"document\">\n    </ae-design>\n  </div>\n  <div v-if=\"params.noIcon\" \n       class=\"flex-1\">\n  </div>\n  <ae-design name=\"title\" \n             :document=\"document\"\n             :param-textColor=\"locals.textColor\"\n             param-whiteSpace=\"nowrap\"\n  >\n  </ae-design>\n\n  <div v-if=\"params.readonly\" \n       class=\"flex-1\">\n  </div>\n  <div v-if=\"!params.readonly\">\n    <div v-if=\"!locals.deletePending\"\n        @click.stop=\"params.confirmRemove ? $emit('remove', document) : locals.deletePending = true\"\n        class=\"text-neutral-400 dark:text-neutral-200 px-1  bg-neutral-100 dark:bg-slate-700 hover:bg-neutral-200 dark:hover:bg-slate-600\"\n        :class=\"params.notPill ? 'rounded-md' : 'rounded-full'\"\n        data-test=\"remove-request\"\n    >\n      <ae-icon class=\"far fa-times\"></ae-icon>\n    </div>\n    <div v-else\n        @click.stop=\"$emit('remove', document)\"\n        @mouseleave=\"locals.deletePending = false\"\n        class=\"text-red-600 dark:text-neutral-200 px-1  bg-neutral-100 dark:bg-slate-700 hover:bg-neutral-200 dark:hover:bg-slate-600\"\n        :class=\"params.notPill ? 'rounded-md' : 'rounded-full'\"\n        data-test=\"remove-confirm\"\n    >\n      <ae-icon class=\"fas fa-trash-alt\"></ae-icon>\n    </div>\n  </div>\n</div> "},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"f9ba5cb4-6597-43de-b3ce-d842ed98354f","inheritedLocks":[null,null,null,null],"locks":[],"meta":{},"modified":{"at":"2026-05-12T10:30:32+00:00","backedBy":"","by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":""},"p":"1cc4b977-c14d-4587-af47-d6ac230f60b3","previous":{"v":"afbaeca441a0911f"},"stamps":[],"t":1778581832519,"v":"da0233a34d22a675"},{"a":["apps","59edbdbc-2cab-426a-bb42-6e57c5158e4f","3be7e887-1bcd-4c3c-979f-b20a986c4c48","0b6a2b21-9425-466e-9e8d-57ec39cc95e1"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2022-05-11T10:13:52+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1652264032602,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.ready = false\n    this.LOCATIONS = {\n      NewDocumentLocation: document.id\n    }\n    this.FORMS = {\n      Projekt: '0b6a2b21-9425-466e-9e8d-57ec39cc95e1',\n      Aufgabe: '0deb4864-cbb6-420c-99ee-337c7444ab24',\n    }\n    this.COMMANDS= {\n      NeueAufgabeCommandId: '4b05c73a-02e1-4b59-a9b4-304057dfb75b',\n      NeuesProjektCommandId: 'ffb5b198-e757-45e2-aff5-f18d6baa8139',\n    }\n    this.COMMANDGROUPS = {\n      NeueAufgabeUndProjekt: '42c266f4-8ca7-45a9-90f9-9bcbd8f39d57'\n    }\n    locals.LOCATIONS = this.LOCATIONS\n    locals.FORMS = this.FORMS\n    locals.COMMANDS = this.COMMANDS\n    locals.COMMANDGROUPS = this.COMMANDGROUPS\n\n    locals.filterCalculated = false\n    locals.filter = ''\n    locals.sort = []\n    locals.documents = []\n    locals.localStorageKey = `user-pref@design=${design.id}@document=${document.id}`\n\n    Aeppic.subscribe(this.search, {size: 99999}, newDocuments => {\n      const hasChanged = !this.documentsAreEqual(locals.documents, newDocuments)\n      if (hasChanged) {\n        locals.documents = newDocuments\n      }\n    })\n\n    locals.ready = true\n  }\n\n  onFilter(event) {\n    locals.filterCalculated = true\n    locals.filter = event\n  }\n\n  get filter() {\n    // return [locals.filter, 'data.verantwortlich:' + Aeppic.ProfilePage.id].join(' ')\n    return [locals.filter].join(' ')\n  }\n\n  get search() {\n    const base = `(p:${document.id}) AND (f.id:${locals.FORMS.Projekt} OR f.id:${locals.FORMS.Aufgabe})`\n\n    if (this.filter) {\n      return `${base} ${this.filter.trim()}`\n    }\n    return base\n  }\n\n  documentsAreEqual(arr1, arr2) {\n    if (!arr1 || !arr2 || arr1.length !== arr2.length) {\n      return false\n    }\n    for (let i = 0; i < arr1.length; i++) {\n      if (\n        arr1[i]?.id !== arr2[i]?.id ||\n        arr1[i]?.v?.id !== arr2[i]?.v?.id\n      ) {\n        return false\n      }\n    }\n    return true\n  }\n}","css":"","description":"","name":"rd:tasks","packages":[],"template":"<div \n  class=\"h-full overflow-x-auto overflow-y-hidden py-2 relative\" \n>\n  <div\n    class=\"h-full flex flex-col mx-auto w-full bg-white dark:bg-slate-800 max-w-5xl px-4 py-2 lg:shadow-md lg:rounded-md overflow-y-auto\"\n  >\n    <ae-list \n      v-if=\"data.pins?.length\" \n      list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\" \n      :documents=\"data.pins\"\n      param-design=\"rd:card-with-popup\" \n      :param-horizontal=\"true\"\n      :param-wrap=\"true\"\n    ></ae-list>\n  <!-- NOTE: key is needed because this project page rerenders on document change (task counters!). But the filter is NOT rerendered, so no new filter is set :( -->\n    <ae-design \n      name=\"rd:toolbar\"\n      class=\"mb-2 ml-2\"\n      :key=\"document.id + document.v\"\n      :document=\"document\"\n      :param-list-form-id=\"locals.FORMS.Aufgabe\"\n      :param-command-group=\"controller.COMMANDGROUPS.NeueAufgabeUndProjekt\"\n      param-sort-fields=\"data.name,data.erledigt,data.inBearbeitung,data.labels,data.prioritaet,data.bisStart,data.verantwortlich,modified.at,created.at\"\n      @filter=\"controller.onFilter($event)\"\n      @sort=\"locals.sort = $event\"\n      @view=\"locals.view = $event\"\n    ></ae-design>\n    <ae-list\n      v-if=\"locals.ready && locals.filterCalculated\"\n      list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\"\n      class=\"flex-1\"\n      :documents=\"locals.documents\"\n      :filter=\"locals.filter\"\n      :sort=\"locals.sort\"\n      param-design=\"rd:card-inner\"\n      :param-design-params=\"{...params.listDesignParams, showIcon: true}\"\n      :param-divide=\"true\"\n      @selected=\"Aeppic.drillInto($event, arguments[1])\"\n    ></ae-list>\n  </div>\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"c2d9ae57c7a46896"},"id":"87796b1f-103b-483e-b8c9-982d1a72c46d","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-02-10T11:59:27+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"p":"0b6a2b21-9425-466e-9e8d-57ec39cc95e1","previous":{"v":"8fc01a1060ee9118"},"stamps":[],"t":1770724767173,"v":"687e835fda05f263"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","093f533e-9758-479c-97bc-8e4ba7dc3c2d"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"bf0036f7-258d-4182-b119-51fac2722931","text":"rd:page--worker","v":"initial"},"created":{"at":"2026-02-18T11:35:56+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"ct":1771414556969,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Aggregat: '31e6efab-61df-4b91-8250-3bfcfd491c6c',\n    }\n  }\n}\n","css":"","description":"","name":"rd:technicalPlace","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<ae-design \n  name=\"rd:page-inner_default\" \n  :document=\"document\" \n  class=\"h-full\"\n></ae-design>\n"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"bc3aa3ca-df13-476f-894b-464c78c36f6a","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-02-18T11:41:18+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"bf0036f7-258d-4182-b119-51fac2722931","text":"rd:page--worker","v":"initial"},"p":"093f533e-9758-479c-97bc-8e4ba7dc3c2d","previous":{"v":"2612c41fb7efbaee"},"stamps":[],"t":1771414878176,"v":"a053cc744df03027"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","093f533e-9758-479c-97bc-8e4ba7dc3c2d"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"f8c948c9-a9b7-4054-a9c2-24e926e1c344","text":"rd:aggregate--worker","v":"f89034448968df29"},"created":{"at":"2026-02-18T14:03:04+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"ct":1771423384444,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Wartungsduerchfuerhung: '1b166603-d0f3-4f16-98c4-0534afbd6f5a',\n      Arbeit: '8c113cd0-af90-42fa-aa05-f67809d0a9a5',\n      Reparatur: '46a28dfa-7518-4867-9519-a5f4cd9b9967',\n    }\n\n    locals.view = {\n      startWithSection: 1\n    }\n  }\n}","css":"","description":"","name":"rd:technicalPlace--worker","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"  <ae-form\n    :document=\"document\"\n    :auto-save=\"true\"\n    :auto-save-after=\"1000\"\n    layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\"\n    class=\"w-full\"\n    :readonly=\"params.readonly\"\n  ></ae-form>"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"915f9b22-8832-48ef-96d3-c8fca4560464","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-02-18T14:03:23+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"f8c948c9-a9b7-4054-a9c2-24e926e1c344","text":"rd:aggregate--worker","v":"f89034448968df29"},"p":"093f533e-9758-479c-97bc-8e4ba7dc3c2d","previous":{"v":"initial"},"stamps":[],"t":1771423403168,"v":"ffedaff5c4eb2f02"},{"a":["apps","77ee8815-2c3a-4bb5-abd9-90541a545a24","1cc4b977-c14d-4587-af47-d6ac230f60b3"],"a_depth":3,"a_forms":["folder","application-form","design-folder"],"created":{"at":"2025-08-22T12:15:40+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1755864940277,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:test-fallback-design","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"rd:test-fallback-design for {{document.id}}"},"f":{"id":"design-form","text":"Design","v":"a6b987f8c80dc07f"},"id":"b2c90adf-d159-493d-b97a-b3f2911ed6d5","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2025-08-22T12:15:53+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"1cc4b977-c14d-4587-af47-d6ac230f60b3","previous":{"v":"initial"},"stamps":[],"t":1755864953865,"v":"75525bb359ccae5b"},{"a":["apps","77ee8815-2c3a-4bb5-abd9-90541a545a24","1cc4b977-c14d-4587-af47-d6ac230f60b3"],"a_depth":3,"a_forms":["folder","application-form","design-folder"],"created":{"at":"2025-08-22T12:30:23+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1755865823584,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:test-fallback-design-2","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":""},"f":{"id":"design-form","text":"Design","v":"a6b987f8c80dc07f"},"id":"2c8a5a2a-4a54-4c36-8c26-c4eb07a08011","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2025-08-22T12:30:23+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"1cc4b977-c14d-4587-af47-d6ac230f60b3","stamps":[],"t":1755865823584,"v":"initial"},{"id":"7fcbbcbe-21bc-4618-92cb-63ceacddbd2b","v":"dc223482159a8409","previous":{"v":"974d2455172cca42"},"p":"1cc4b977-c14d-4587-af47-d6ac230f60b3","f":{"id":"design-form","v":"a6b987f8c80dc07f","text":"Design"},"data":{"name":"rd:thumbnail","template":"<pre class=\"fixed z-50 bg-white/90 p-2 text-xs\" v-if=\"params.debug\">\nisUploading {{ controller.isUploading }}\nupload {{ locals.upload }}\nsize {{ locals.size }}\nthumbnailSrc {{ controller.thumbnailSrc }}\n</pre>\n<div\n  ref=\"container\"\n  :data-test=\"controller.dataTestRoot\"\n  class=\"size-full flex-1 flex justify-center items-center bg-cover bg-no-repeat bg-center overflow-hidden\"\n  :style=\"controller.dimensionsStyle\"\n  @mouseenter=\"locals.over=true;controller.playGif();\"\n  @mouseleave=\"locals.over=false\"\n>\n  <transition name=\"ae-transition__fade\" mode=\"out-in\">\n    <div\n      v-if=\"locals.gif && locals.over\"\n      data-test=\"gif\"\n      class=\"size-full flex-1 object-cover bg-no-repeat bg-top-center bg-cover\"\n      style=\"align-self: stretch;\"\n      :style=\"{ 'background-image': 'url(' + Aeppic.Content.getSrc(locals.gif, 'file') + ')' }\"\n    ></div>\n\n    <!--\n      Mounted before the size is known, with no src yet, so a list of these\n      never swaps DOM subtrees mid-load -- only the src attribute lands later.\n      loading=\"lazy\" is what keeps an unvirtualized list of hundreds from\n      requesting every off-screen image at once.\n    -->\n    <img\n      v-else-if=\"controller.canShowImage\"\n      data-test=\"image\"\n      class=\"size-full flex-1 object-cover bg-no-repeat bg-top-center bg-cover\"\n      :src=\"controller.thumbnailSrc\"\n      loading=\"lazy\"\n      @error=\"locals.imageFailed = true\"\n    />\n\n    <template v-else>\n      <div v-if=\"controller.isUploading && locals.upload\" data-test=\"uploading\" class=\"relative size-full flex justify-center items-center\">\n        <div class=\"inset-[22px] absolute\">\n          <svg class=\"_CSS-circle\" viewBox=\"0 0 100 100\" xmlns=\"http://www.w3.org/2000/svg\">\n            <circle cx=\"50\" cy=\"50\" r=\"45\" :style=\"{ 'stroke-dashoffset': controller.strokeDashoffset }\"></circle>\n          </svg>\n          <div class=\"inset-0 absolute flex justify-center items-center\">\n            <ae-icon class=\"far fa-spinner-third fa-spin\" v-if=\"locals.upload.status === 'pending'\"></ae-icon>\n            <ae-icon class=\"far fa-check\" v-else-if=\"(locals.upload.progressPercent * 100).toFixed(0) === '100'\"></ae-icon>\n            <template v-else>{{ (locals.upload.progressPercent * 100).toFixed(0) }}%</template>\n          </div>\n        </div>\n      </div>\n      <div v-else data-test=\"fallback\" class=\"overflow-hidden text-sm p-1 flex items-center flex-col\">\n        <ae-design style=\"font-size: 2em\" name=\"icon\" :document=\"document\"></ae-design>\n        <span v-if=\"!params.hideName\" class=\"overflow-hidden text-sm p-1 flex items-center flex-col\">{{ data.name }}</span>\n        <ae-icon v-if=\"locals.justUploaded\" class=\"far fa-check\"></ae-icon>\n      </div>\n    </template>\n  </transition>\n</div>\n","css":"._CSS {\n  display: flex;\n}\n\n._CSS-circle {\n  transform: rotateZ(270deg) rotateX(180deg);\n  fill: var(--ae-ui-background);\n  stroke: var(--ae-primary-900);\n  stroke-width: 10;\n  stroke-linecap: round;\n  stroke-dasharray: 283; /* 2 * 3.1415927 * $radius; */\n  transform-origin: 50% 50%;\n  stroke-dashoffset: 283; /* no fill at the beginning */\n}","controller":"class Controller {\n  async init() {\n    this.videoThumbnail = ''\n    this.form = null\n    this.convertableTypes = ['application/pdf']\n    this.covertableTypesStartingWith = ['image/', 'video/', 'application/vnd.oasis.opendocument']\n    this.convertableTypesIncluding = ['word', 'spreadsheet', 'powerpoint', 'presentation', 'mspublisher']\n\n    locals.upload = null\n    locals.over = false\n    locals.fieldName = this._findFieldName()\n    locals.isVideo = this._isVideo()\n    locals.justUploaded = false\n    locals.imageFailed = false\n    // Actual rendered pixel size of the root element, filled in by a\n    // ResizeObserver in mounted(). No src is set until this is known --\n    // that's the whole point: request a thumbnail sized to fit the real box,\n    // not a size assumed from params before the box exists.\n    locals.size = null\n\n    this.checkConvertablity()\n\n    Aeppic.watchQuery(`p:${document.id}`, async () => {\n      await this.retrieveVideoThumbnailAndGif()\n      this.checkConvertablity()\n    })\n    Aeppic.watch(document, () => this.checkConvertablity())\n\n    await this.retrieveVideoThumbnailAndGif()\n  }\n\n  mounted() {\n    const apply = (size) => {\n      locals.size = size\n      locals.imageFailed = false\n    }\n\n    // Debounding resizes, except the very first one\n    const applyDebounced = Aeppic.debounce(apply, 200)\n\n    this._resizeObserver = new ResizeObserver((entries) => {\n      const entry = entries[0]\n      if (!entry) {\n        return\n      }\n\n      const width = Math.round(entry.contentRect.width)\n      const height = Math.round(entry.contentRect.height)\n\n      if (!width || !height) {\n        return\n      }\n\n      if (locals.size && locals.size.width === width && locals.size.height === height) {\n        return\n      }\n\n      if (locals.size) {\n        applyDebounced({ width, height })\n      } else {\n        apply({ width, height })\n      }\n    })\n\n    this._resizeObserver.observe($refs.container)\n  }\n\n  destroy() {\n    this._resizeObserver?.disconnect()\n  }\n\n  _isVideo() {\n    if (!locals.fieldName) {\n      return false\n    }\n\n    const type = document.data[locals.fieldName].type || ''\n    return type.startsWith('video/')\n  }\n\n  _findFieldName() {\n    if (params.fieldName) {\n      return params.fieldName\n    }\n\n    const fileFields = []\n\n    for (const fieldName of Object.keys(document.data)) {\n      const value = document.data[fieldName]\n\n      if (this._isFileField(value)) {\n        fileFields.push({ name: fieldName, value })\n      }\n    }\n\n    if (fileFields.length > 1) {\n      console.warn(\n        `fallback design '${design.data.name}' found more than 1 file fields for form '${document.f.text}'. Provide parameter 'fieldName' to render`\n      )\n    }\n\n    return fileFields[0]?.name\n  }\n\n  _isFileField(fieldValue) {\n    return typeof fieldValue === 'object' && 'dataUrl' in fieldValue\n  }\n\n  checkConvertablity() {\n    const canConvert = this._isDocumentConvertable\n\n    if (!this.thumbnailSrc || !canConvert) {\n      $emit('cannot-convert')\n    }\n\n    return canConvert\n  }\n\n  get _isDocumentConvertable() {\n    const type = document.data[locals.fieldName]?.type\n\n    if (type == null || typeof type !== 'string') {\n      return false\n    }\n\n    for (const t of this.convertableTypes) {\n      if (t === type) {\n        return true\n      }\n    }\n\n    for (const t of this.covertableTypesStartingWith) {\n      if (type.startsWith(t)) {\n        return true\n      }\n    }\n\n    for (const t of this.convertableTypesIncluding) {\n      if (type.includes(t)) {\n        return true\n      }\n    }\n\n    return false\n  }\n\n  async retrieveVideoThumbnailAndGif() {\n    locals.isVideo = this._isVideo()\n    locals.imageFailed = false\n\n    if (!locals.isVideo) {\n      locals.videoThumbnail = null\n      locals.backedGif = null\n      return\n    }\n\n    const cached = this.getCached()\n\n    if (cached.thumbnail) {\n      const [thumbnail, gif] = await Promise.all([Aeppic.get(cached.thumbnail), cached.gif && Aeppic.get(cached.gif)])\n\n      this.videoThumbnail = thumbnail\n      locals.backedGif = gif\n    } else {\n      const [thumbnail, gif] = await Promise.all([\n        Aeppic.findOne(`p:\"${document.id}\" f.id:8bf0fb31-716d-4b76-98d8-b7349f1d7529 data.name:thumbnail`),\n        Aeppic.findOne(`p:\"${document.id}\" f.id:8bf0fb31-716d-4b76-98d8-b7349f1d7529 data.name:gif`),\n      ])\n      this.videoThumbnail = thumbnail\n      locals.backedGif = gif\n\n      if (thumbnail && gif) {\n        this.cache({ thumbnail, gif })\n      }\n    }\n  }\n\n  getCached() {\n    if (!Aeppic.SessionStorage.isAvailable) {\n      return {\n        thumbnail: null,\n        gif: null,\n      }\n    }\n\n    return {\n      thumbnail: Aeppic.SessionStorage.getValue(`design-${design.id}_doc-${document.id}_thumbnail`),\n      gif: Aeppic.SessionStorage.getValue(`design-${design.id}_doc-${document.id}_gif`),\n    }\n  }\n\n  cache(opts) {\n    if (!Aeppic.SessionStorage.isAvailable) {\n      return\n    }\n\n    const { thumbnail, gif } = opts\n    Aeppic.SessionStorage.setValue(`design-${design.id}_doc-${document.id}_thumbnail`, thumbnail?.id || '')\n    Aeppic.SessionStorage.setValue(`design-${design.id}_doc-${document.id}_gif`, gif?.id || '')\n  }\n\n  playGif() {\n    if (!locals.gif && locals.backedGif) {\n      const image = new Image()\n      image.src = Aeppic.Content.getSrc(locals.backedGif, 'file')\n      image.onload = () => (locals.gif = locals.backedGif)\n    }\n  }\n\n  get videoThumbnailSrc() {\n    return Aeppic.Content.getSrc(this.videoThumbnail, 'file')\n  }\n\n  get thumbnailSrc() {\n    if (locals.isVideo || this.videoThumbnail) {\n      return this.videoThumbnailSrc\n    }\n\n    // FIXME: thumbnail changes only after saving the document\n    if (Aeppic.isEditableDocument(document)) {\n      const baseDocumentField = document.__base.data[locals.fieldName]\n      const currentDocumentField = document.data[locals.fieldName]\n\n      if (baseDocumentField.dataUrl !== currentDocumentField.dataUrl) {\n        return 'api/404'\n      }\n    }\n\n    // Don't request anything until the ResizeObserver has told us the real\n    // rendered size -- that's the fix this rewrite exists for. The old\n    // designs requested a size-agnostic default image immediately and\n    // relied on CSS to crop/scale it into place.\n    if (!locals.size) {\n      return null\n    }\n\n    // getThumbnailSrc (the service-thumbnails service) internally routes\n    // non-image files (PDF, office docs, ...) through the same converter\n    // getPreviewSrc uses, then resizes the result -- so it handles every\n    // convertible type, not just images, and unlike getPreviewSrc it accepts\n    // an exact {width, height}. params.usePreview remains as an explicit\n    // escape hatch for callers that want the unsized full-quality render.\n    if (params.usePreview) {\n      return Aeppic.Content.getPreviewSrc(document, locals.fieldName, { format: 'jpg' })\n    }\n\n    return Aeppic.Content.getThumbnailSrc(document, locals.fieldName, {\n      width: String(locals.size.width),\n      height: String(locals.size.height),\n    })\n  }\n\n  // Deliberately independent of thumbnailSrc: the <img> has to exist from the\n  // first render, before the ResizeObserver has produced a src for it.\n  get canShowImage() {\n    return Boolean(locals.fieldName) && !locals.imageFailed && !this.isUploading\n  }\n\n  get isUploading() {\n    if (document.ct != null) {\n      return false\n    }\n\n    let status = null\n\n    if (locals.fieldName) {\n      status = Aeppic.Uploads.getUploadStatusForField(document, locals.fieldName)\n    } else {\n      const uploads = Aeppic.Uploads.getUploadStatusForDocument(document)\n      status = uploads ? uploads[0] : null\n    }\n\n    if (status) {\n      locals.justUploaded = true\n      locals.upload = status\n    } else {\n      locals.upload = null\n    }\n\n    return !!locals.upload\n  }\n\n  get strokeDashoffset() {\n    // https://glennmccomb.com/articles/building-a-pure-css-animated-svg-spinner/\n    const radius = 45\n    const circumference = 2 * Math.PI * radius\n    const rounded = Number(circumference.toFixed(0)) // with radius 45 = 283\n\n    if (!locals.upload) {\n      return rounded\n    }\n\n    const asNumber = rounded + locals.upload.progressPercent * rounded\n    return asNumber\n  }\n\n  get dimensions() {\n    const width =\n      params.minSize || // @deprecated\n      params.size ||\n      params.width\n\n    const height =\n      params.minSize || // @deprecated\n      params.size ||\n      params.height\n\n    // null is a valid value\n    return {\n      width: typeof width === 'undefined' ? '128px' : width,\n      height: typeof height === 'undefined' ? '128px' : height,\n    }\n  }\n\n  get dimensionsStyle() {\n    const { width, height } = this.dimensions\n\n    return {\n      minWidth: width,\n      minHeight: height,\n      maxWidth: width,\n      maxHeight: height,\n    }\n  }\n\n  get dataTestRoot() {\n    const sanitize = (value) => (value || '').replace(/[:@\\s]/g, '-')\n    return `design_${sanitize(design.data.name)}_documentForm_${sanitize(document.f.text)}`\n  }\n}\n","packages":[],"parameters":["noStyling","size","height","width"],"parametersDescriptions":[" ","e.g. 128px. Either use only size, or height and width","e.g. 128px","e.g. 128px"],"parametersTypes":["boolean","string","string","string"],"parametersControls":[],"parametersCardinalities":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-04-26T11:12:10+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"modified":{"at":"2026-08-07T08:35:53+00:00","by":"09763886-6748-4a56-8e0e-54a2293ee96b","backedBy":"","impersonatedBy":"","from":"","client":"server"},"t":1786091753023,"ct":1755591849197,"a_depth":3,"a":["apps","77ee8815-2c3a-4bb5-abd9-90541a545a24","1cc4b977-c14d-4587-af47-d6ac230f60b3"],"a_forms":["folder","application-form","design-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"meta":{}},{"a":["apps","77ee8815-2c3a-4bb5-abd9-90541a545a24","1cc4b977-c14d-4587-af47-d6ac230f60b3"],"a_depth":3,"a_forms":["folder","application-form","design-folder"],"cloneOf":{"id":"7fcbbcbe-21bc-4618-92cb-63ceacddbd2b","text":"rd:thumbnail","v":"70fca5f13b3da2c8"},"created":{"at":"2025-10-10T13:07:37+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"ct":1760101657506,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    // this._oldResponse = null\n    this.videoThumbnail = ''\n    this.form = null\n    this.convertableTypes = [\n      'application/pdf'\n    ]\n    this.covertableTypesStartingWith = [\n      'image/',\n      'video/',\n      'application/vnd.oasis.opendocument'\n    ]\n    this.convertableTypesIncluding = [\n      'word',\n      'spreadsheet',\n      'powerpoint',\n      'presentation',\n      'mspublisher',\n    ]\n\n    locals.upload = null \n    locals.over = false\n    locals.fieldName = this._findFieldName()\n    locals.isVideo = this._isVideo()\n    locals.justUploaded = false\n    this.size = null\n\n    this.checkConvertablity()\n\n    Aeppic.watchQuery(`p:${document.id}`, async ()=> {\n      await this.retrieveVideoThumbnailAndGif()\n      this.checkConvertablity()\n    })\n    Aeppic.watch(document, () => this.checkConvertablity())\n\n    await this.retrieveVideoThumbnailAndGif()\n    // locals.over=true;this.playGif();\n  }\n\n  mounted() {\n    debugger\n    const ref = $refs.container\n    this.size = [ref.offsetWidth, ref.offsetHeight]\n  }\n\n  _isVideo() {\n    if (!locals.fieldName) {\n      return false\n    }\n\n    const type = document.data[locals.fieldName].type || ''\n    return type.startsWith('video/')\n  }\n\n  _findFieldName() {\n    if (params.fieldName) {\n      return params.fieldName\n    }\n\n    const fileFields = []\n  \n    for (const fieldName of Object.keys(document.data)) {\n      const value = document.data[fieldName]\n\n      if (this._isFileField(value)) {\n        fileFields.push({ name: fieldName, value })\n      }\n    }\n\n    if (fileFields.length > 1) {\n      console.warn(`fallback design '${design.data.name}' found more than 1 file fields for form '${document.f.text}'. Provide parameter 'fieldName' to render`)\n    }\n\n    return fileFields[0]?.name\n  }\n\n  _isFileField(fieldValue) {\n    return (typeof fieldValue === 'object' && 'dataUrl' in fieldValue)\n    //return (fieldInfo.type === 'object' && (fieldInfo.subType === 'file' || fieldInfo.subType === 'image'))\n  }\n\n  checkConvertablity() {\n    const canConvert = this._isDocumentConvertable\n\n    if (!this.thumbnailSrc || !canConvert) {\n      $emit('cannot-convert')\n    }\n  \n    return canConvert\n  }\n\n  get _isDocumentConvertable() {\n    const type = document.data[locals.fieldName]?.type\n\n    if (type == null || typeof type !== 'string') {\n      return false\n    }\n\n    for (const t of this.convertableTypes) {\n      if (t === type) {\n        return true\n      }\n    }\n\n    for (const t of this.covertableTypesStartingWith) {\n      if (type.startsWith(t)) {\n        return true\n      }\n    }\n\n    for (const t of this.convertableTypesIncluding) {\n      if (type.includes(t)) {\n        return true\n      }\n    }\n\n    return false\n  }\n\n  async retrieveVideoThumbnailAndGif() {\n    locals.isVideo = this._isVideo()\n\n    if (!locals.isVideo) {\n      locals.videoThumbnail = null\n      locals.backedGif = null\n      return\n    }\n\n    const [ thumbnail, gif ] = await Promise.all([\n      Aeppic.findOne(`p:\"${document.id}\" f.id:8bf0fb31-716d-4b76-98d8-b7349f1d7529 data.name:thumbnail`),\n      Aeppic.findOne(`p:\"${document.id}\" f.id:8bf0fb31-716d-4b76-98d8-b7349f1d7529 data.name:gif`)\n    ])\n    this.videoThumbnail = thumbnail\n    locals.backedGif = gif\n  }   \n\n\n  playGif() {\n    if (!locals.gif && locals.backedGif) {\n      const image = new Image()\n      image.src = Aeppic.Content.getSrc(locals.backedGif,'file')\n      image.onload = () => locals.gif = locals.backedGif\n    }\n  }\n\n  get videoThumbnailSrc() {\n    return Aeppic.Content.getSrc(this.videoThumbnail, 'file')\n  }\n\n  get thumbnailSrc() {\n    if (locals.isVideo || this.videoThumbnail) {\n      return this.videoThumbnailSrc\n    }\n\n    // FIXME: thumbnail changes only after saving the document\n    if (Aeppic.isEditableDocument(document)) {\n      const baseDocumentField = document.__base.data[locals.fieldName]\n      const currentDocumentField = document.data[locals.fieldName]\n\n      if (baseDocumentField.dataUrl !== currentDocumentField.dataUrl) {\n        return 'api/404'\n      }\n    }\n\n    if (!this.size) {\n      return\n    }\n    const [width, height] = this.size\n\n    if (params.usePreview || (width && width.replace(/[^\\d]/g, '') > 256 || height && height.replace(/[^\\d]/g, '') > 256)) {\n      return Aeppic.Content.getPreviewSrc(document, locals.fieldName, { format: 'jpg' }) \n    }\n\n    return Aeppic.Content.getThumbnailSrc(document, locals.fieldName) \n  }\n \n  get isUploading() {\n    let status = null\n\n    if (locals.fieldName) {\n      status = Aeppic.Uploads.getUploadStatusForField(document, locals.fieldName)\n    } else {\n      const uploads = Aeppic.Uploads.getUploadStatusForDocument(document) \n      status = uploads ? uploads[0] : null\n    }\n\n    if (status) {\n      locals.justUploaded = true\n      locals.upload = status\n    } else {\n      locals.upload = null\n    }\n\n    return !!locals.upload\n  }\n\n  get strokeDashoffset() {\n    // https://glennmccomb.com/articles/building-a-pure-css-animated-svg-spinner/\n    const radius = 45\n    const circumference = 2 * Math.PI * radius\n    const rounded = Number(circumference.toFixed(0)) // with radius 45 = 283\n\n    if (!locals.upload) {\n      return rounded\n    }\n    \n    const asNumber = rounded + (locals.upload.progressPercent * rounded)\n    return asNumber\n  }\n}\n","css":"._CSS {\n  display: flex;\n}\n\n._CSS-circle {\n  transform: rotateZ(270deg) rotateX(180deg);\n  fill: var(--ae-ui-background);\n  stroke: var(--ae-primary-900);\n  stroke-width: 10;\n  stroke-linecap: round;\n  stroke-dasharray: 283; /* 2 * 3.1415927 * $radius; */\n  transform-origin: 50% 50%;\n  stroke-dashoffset: 283; /* no fill at the beginning */\n}","description":"","name":"rd:thumbnail - in progress","packages":[],"parameters":["noStyling","size","height","width"],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[" ","e.g. 128px. Either use only size, or height and width","e.g. 128px","e.g. 128px"],"parametersTypes":["boolean","string","string","string"],"template":"<pre class=\"fixed\" v-if=\"params.debug\">\nisUploading  {{controller.isUploading }}\nupload  {{locals.upload}}\nthmbnlSrc  {{controller.thumbnailSrc}}\n</pre>\n<div \n  class=\"size-full flex-1 flex justify-center items-center bg-cover bg-no-repeat bg-center\" \n  @mouseenter=\"locals.over=true;controller.playGif();\" \n  @mouseleave=\"locals.over=false\"\n  ref=\"container\"\n>\n  <transition name=\"ae-transition__fade\" mode=\"out-in\">\n    <div \n      v-if=\"locals.gif && locals.over\"  \n      class=\"size-full flex-1 object-cover bg-no-repeat bg-top-center bg-cover\" style=\"align-self: stretch;\" \n      :style=\"{'background-image': 'url(' + Aeppic.Content.getSrc(locals.gif,'file')  + ')' }\"\n    ></div>\n\n    <template v-else-if=\"controller.thumbnailSrc\">\n      <ae-fetch \n        class=\"size-full flex-1 object-cover bg-no-repeat bg-top-center bg-cover\" \n        :url=\"controller.thumbnailSrc\" \n        :document-id=\"document.id\" \n        :xretry-status-codes=\"[404]\"  \n        @xresponse=\"controller.toObjectUrl($event)\"\n      > \n        <template #loading> \n          <!-- LOADING -->\n          <div \n            v-if=\"controller.isUploading && locals.upload\" \n            class=\"relative size-full flex justify-center items-center\"\n          >\n              <div class=\"absolute inset-[1.5rem]\">\n                <svg class=\"_CSS-circle\" viewBox=\"0 0 100 100\" xmlns=\"http://www.w3.org/2000/svg\">\n                  <circle cx=\"50\" cy=\"50\" r=\"45\" :style=\"{ 'stroke-dashoffset': controller.strokeDashoffset }\"></circle>\n                </svg>\n                <div class=\"inset-0 absolute flex justify-center items-center\">\n                  <ae-icon class=\"far fa-spinner-third fa-spin\" v-if=\"locals.upload.status === 'pending'\"></ae-icon>\n                  <ae-icon class=\"far fa-check\" v-else-if=\"(locals.upload.progressPercent * 100).toFixed(0) === '100'\"></ae-icon>\n                  <template v-else>\n                      {{ (locals.upload.progressPercent * 100).toFixed(0) }}%\n                  </template>\n                </div>\n              </div>\n\n          </div>\n          <div v-else class=\"size-full flex justify-center items-center\" title=\"Vorschau-Bild wird geladen\">\n            <ae-icon class=\"far fa-spinner-third fa-spin fa-2x\"></ae-icon> \n          </div>\n        </template> \n        <template #error>\n          <!-- ERROR -->\n          <div class=\"size-full flex justify-center items-center\" title=\"Vorschau-Bild konnte nicht geladen werden\">\n            <ae-icon class=\"far fa-file-alt fa-2x\"></ae-icon>\n          </div>\n        </template> \n\n        <div class=\"size-full flex flex-col items-center justify-center flex-1\" :style=\"controller.dimensionsStyle\">\n          <!-- NORMAL -->\n          <img \n            class=\"size-full flex-1 object-cover bg-no-repeat bg-top-center bg-cover\" \n            :src=\"controller.thumbnailSrc\" \n            loading=\"lazy\" \n            :style=\"controller.dimensionsStyle\">\n        </div>\n      </ae-fetch>\n\n    </template>\n    <template v-else>\n      <div v-if=\"controller.isUploading && locals.upload\" class=\"relative size-full flex justify-center items-center\">\n        <div class=\"inset-[22px] absolute\">\n          <svg class=\"_CSS-circle\" viewBox=\"0 0 100 100\" xmlns=\"http://www.w3.org/2000/svg\">\n            <circle cx=\"50\" cy=\"50\" r=\"45\" :style=\"{ 'stroke-dashoffset': controller.strokeDashoffset }\"></circle>\n          </svg>\n          <div class=\"inset-0 absolute flex justify-center items-center\">\n            <ae-icon class=\"far fa-spinner-third fa-spin\" v-if=\"locals.upload.status === 'pending'\"></ae-icon>\n            <ae-icon class=\"far fa-check\" v-else-if=\"(locals.upload.progressPercent * 100).toFixed(0) === '100'\"></ae-icon>\n            <template v-else>\n                {{ (locals.upload.progressPercent * 100).toFixed(0) }}%\n            </template>\n          </div>\n        </div>\n      </div>\n      <div v-else class=\"overflow-hidden text-sm padding-1 flex items-center flex-col\">\n        <ae-design style=\"font-size: 2em\" name=\"icon\" :document=\"document\"></ae-design>\n        <span v-if=\"!params.hideName\" class=\"overflow-hidden text-sm padding-1 flex items-center flex-col\"> {{ data.name }}</span>\n        <ae-icon v-if=\"locals.justUploaded\" class=\"far fa-check\"></ae-icon> \n      </div>\n      <!-- <ae-design v-else style=\"font-size: 2em\" name=\"icon\" :document=\"document\"></ae-design> -->\n    </template>\n  </transition>\n</div>"},"f":{"id":"design-form","text":"Design","v":"a6b987f8c80dc07f"},"id":"a8155e2d-f758-4093-b195-a21bba62e5f9","inheritedLocks":[null,null,null,null],"locks":[],"meta":{"modified":{"at":"2025-12-19T13:09:39+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""}},"modified":{"at":"2025-10-13T07:14:22+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"7fcbbcbe-21bc-4618-92cb-63ceacddbd2b","text":"rd:thumbnail","v":"70fca5f13b3da2c8"},"p":"1cc4b977-c14d-4587-af47-d6ac230f60b3","previous":{"a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"],"p":"fallback-designs","v":"f32abd203114f6a6"},"stamps":[],"t":1766149779651,"v":"f9cddc61acbbe69b"},{"a":["apps","599db2de-4e07-4722-98bd-7f42d498b352","79718664-ed22-4b52-9c10-037881df3578","7be5f2c5-206b-4ab6-9d4d-c4834baf8e32"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"86637196-3e3d-4913-ad5e-b138562416b1","text":"rd:BIZPIN_CORE","v":"ee3e921a6809a836"},"created":{"at":"2023-10-11T09:50:17+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1697017817140,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      DashboardRecents: '88e41274-e47e-482a-be65-fb110f9d07be',\n    }\n\n    locals.news = []\n    locals.protocols = []\n    locals.employees = []\n    locals.files = []\n\n    const {\n      files,\n      news,\n      protocols,\n      employees,\n    } = (await Aeppic.findOne(`p:${document.id} f.id:${this.FORMS.DashboardRecents}`)).data\n\n    const norderstedtDocumentShareFolder = 'f583058f-6e25-4394-8fdc-40331c6605e2'\n\n    locals.news = news\n    locals.protocols = protocols\n    locals.employees = employees\n    locals.files = (await Aeppic.getAll(files)).filter(Boolean).filter(doc => doc.p !== norderstedtDocumentShareFolder)\n  }\n}","css":"","description":"","name":"rd:TIERKLINIK","packages":[],"template":"<div class=\"h-full w-full overflow-auto flex overflow-hidden\">\n  <div class=\"flex-1 basis-2/3 p-2 gap-8 overflow-x-hidden overflow-y-auto pb-6\">\n    <div class=\"flex flex-col gap-2 overflow-x-hidden\"> \n      <section class=\"flex flex-col mb-6 py-2 bg-white px-4 border rounded-md shadow\">\n        <div class=\"flex gap-2 mb-2 text-neutral-500\">\n          Neue Dateien\n        </div>  \n\n        <ae-list list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\"\n                :documents=\"locals.files.slice(0,14)\"\n                @selected=\"Aeppic.drillInto($event, arguments[1])\"\n                param-design=\"rd:card\"\n                :param-design-params=\"{ square: true }\"\n                :param-horizontal=\"true\"\n                class=\"overflow-hidden\"\n        ></ae-list>\n      </section> \n\n      <section class=\"flex-1 flex flex-wrap xl:flex-nowrap  gap-6\">\n        <section class=\"w-full flex flex-col mb-6 py-2 bg-white px-4 border rounded-md shadow sm:min-w-[530px] lg:min-w-auto\">\n          <div class=\"flex gap-2 mb-2 text-neutral-500\">\n            Neuigkeiten\n          </div>\n\n          <ae-list list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\"\n                :documents=\"locals.news.slice(0, 14)\"\n                @selected=\"Aeppic.drillInto($event, arguments[1])\"\n                param-design=\"rd:card\"\n                :param-grid=\"true\"\n                :param-horizontal=\"true\"\n                :param-wrap=\"true\"\n                param-gap=\"medium\"\n                class=\"\"\n          ></ae-list>\n        </section>\n\n        <section class=\"w-full flex flex-col p-1 overflow-hidden xl:min-w-[600px]\">\n          <section v-if=\"locals.protocols.length\" class=\"flex flex-col mb-6 py-2 bg-white px-4 border rounded-md shadow\">\n            <div class=\"flex gap-2 mb-2 text-neutral-500\">\n              Protokolle \n            </div>\n\n            <ae-list list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\"\n                    :documents=\"locals.protocols.slice(0,6)\"\n                  :param-design-params=\"{ hidePath: true }\"\n                  @selected=\"Aeppic.drillInto($event, arguments[1])\"\n                  param-empty-text=\"Keine neuen Protokolle erstellt\"\n            ></ae-list>\n          </section>\n\n          <section class=\"flex flex-col mb-6 py-2 bg-white px-4 border rounded-md shadow\">\n            <div class=\"flex gap-2 mb-2 text-neutral-500\">\n              Neue Mitarbeiter \n            </div>\n\n            <ae-list list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\"\n                    :documents=\"locals.employees.slice(0,10)\"                \n                  :param-design-params=\"{ hidePath: true }\"\n                  @selected=\"Aeppic.drillInto($event, arguments[1])\"\n            ></ae-list>\n          </section> \n        </section>\n      </section>\n    </div> \n  </div> \n</div>\n"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"0db225dd-3b01-434e-8e30-d7be7678b900","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-12-12T14:17:54+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"86637196-3e3d-4913-ad5e-b138562416b1","text":"rd:BIZPIN_CORE","v":"ee3e921a6809a836"},"p":"7be5f2c5-206b-4ab6-9d4d-c4834baf8e32","previous":{"v":"c7b6694a8c31d148"},"stamps":[],"t":1765549074666,"v":"4c909b2a9a452056"},{"a":["apps","77ee8815-2c3a-4bb5-abd9-90541a545a24","1cc4b977-c14d-4587-af47-d6ac230f60b3"],"a_depth":3,"a_forms":["folder","application-form","design-folder"],"created":{"at":"2025-09-22T07:45:50+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"ct":1758527150987,"data":{"aliases":[],"controller":"class Controller{\n  init() {\n\n  }\n\n  get size() {\n    return '128px'\n  }\n}","css":"","description":"","name":"rd:tile","packages":[],"parameters":["size"],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":["xSmall, small, medium, large, xLarge"],"parametersTypes":["string"],"template":"<div\n  class=\"flex flex-col overflow-hidden rounded-md items-center border relative group/CSS_\"\n  :style=\"{width: controller.size}\"\n  @click=\"$emit('selected', document)\"\n  :title=\"document.data.label || document.data.name\"\n>\n  <ae-design\n    name=\"rd:thumbnail\"\n    param-width=\"128px\"\n    param-height=\"100px\"\n    :document=\"document\"\n    :param-hide-name=\"true\"\n    class=\"w-full  xoverflow-hidden flex items-center justify-center\"\n  ></ae-design>\n  <span \n    class=\"text-center whitespace-normal break-words w-full px-1\"\n    ref=\"text\"\n  >\n    {{ document.data.label || document.data.name || document.f.text }}\n  </span>\n  <ae-design\n    name=\"rd:quick-edit\"\n    :document=\"document\"\n    class=\"top-1 right-1 absolute invisible group-hover/CSS_:visible\"\n    :param-target=\"$refs.text\"\n  ></ae-design>\n</div>"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"a0f781df-1d27-4f08-a8a8-e78cb0e46628","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2026-02-09T07:43:42+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"p":"1cc4b977-c14d-4587-af47-d6ac230f60b3","previous":{"v":"dcdf525b7300f8a6"},"stamps":[],"t":1770623022062,"v":"99d8c6a98b58e260"},{"id":"266fb522-a8d1-40b8-b54e-57ee2440eab3","v":"1a295e2a99841170","cloneOf":{"id":"4240bd5b-c614-4c11-a61f-562981111fc6","v":"0c488a3441e89247","text":"rd:tiles"},"originalCloneOf":{"id":"4240bd5b-c614-4c11-a61f-562981111fc6","v":"0c488a3441e89247","text":"rd:tiles"},"previous":{"v":"276ef457267a7fe7"},"p":"554234d4-1a0a-4f31-b6a1-7899ca841995","f":{"id":"design-form","v":"74db9b6ed94b41d9","text":"Design"},"data":{"name":"rd:tiles","template":"<div class=\"h-full overflow-hidden\"\r\n      @drop.prevent=\"controller.drop($event)\"\r\n      @dragover.prevent=\"controller.dragover($event)\"\r\n  >\r\n\r\n  <ae-list  class=\"h-full \" \r\n            list-id=\"d8d62c22-e272-49e1-b6fa-1e245321be4b\" \r\n            :filter=\"params.filter\"\r\n            :sort=\"params.sort\"\r\n            :documents=\"locals.documents\"\r\n            :param-referenced-files=\"locals.referencedFiles\"\r\n  ></ae-list>  \r\n</div>\r\n\r\n<ae-layout  layout-id=\"f5a5c2a0-bf9c-4b44-b05b-8e545156df10\"\r\n            :param-show-ui=\"false\"\r\n            :param-document=\"document\"\r\n            param-file-form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\"\r\n            param-file-form-field=\"datei\"\r\n            param-file-name-to-field=\"name\"\r\n            param-directory-form-id=\"a04c8913-db48-4e80-b20d-0f3cc17a778c\"\r\n            :param-save-new-documents=\"true\"\r\n            ref=\"dropHandler\"\r\n></ae-layout> \r\n\r\n<ae-layout  layout-id=\"8c5c60ec-b7d1-4e46-a9ca-180c3c153179\"\r\n            :param-page-document-id=\"document.id\"\r\n            :param-show-ui=\"false\"\r\n            ref=\"selectionHandler\"\r\n            @selected-documents=\"locals.selectionHasDocuments = true\"\r\n            @unselected-documents=\"locals.selectionHasDocuments = false\"\r\n></ae-layout>\r\n","css":"","controller":"class Controller {\r\n  async init() {\r\n    this.FORMS = {\r\n      Ordner: 'a04c8913-db48-4e80-b20d-0f3cc17a778c',\r\n      Datei: 'dbee6e16-d63a-493c-bba6-505f79918f9f', \r\n      Seite: 'ffa650cf-e351-462e-baef-29f7c8f22d1b',\r\n      ReferencedFiles: 'b5883937-a590-4474-87fb-ed49ed3796f8'\r\n    }\r\n\r\n    locals.selectionHasDocuments = false\r\n    locals.referencedFiles = []\r\n\r\n    locals.documents = [] \r\n\r\n    const canEdit = await Aeppic.canEdit(document)\r\n    locals.canEdit = Aeppic.Account && Aeppic.Account.data.isGroupAccount === false && canEdit === true\r\n\r\n    Aeppic.subscribe(`p:${document.id} (f.id:${this.FORMS.Ordner} OR f.id:${this.FORMS.Datei} OR f.id:${this.FORMS.Seite})`, { size: 9999 }, (docs) => {\r\n      // const filteredToExcludeCustomers = docs.filter(doc => !(doc.f.id === this.FORMS.Ordner && (doc.data.client.id || doc.data.project.id)))\r\n\r\n      // console.log({filteredToExcludeCustomers})  \r\n      locals.documents = docs\r\n    })\r\n\r\n    if (data.project && data.project.id || data.client && data.client.id) {\r\n      const referencedFilesDocument = await Aeppic.findOne(`p:${data.project.id} f.id:${this.FORMS.ReferencedFiles}`)\r\n\r\n      if (referencedFilesDocument) {\r\n        locals.referencedFiles = await Aeppic.getAll(referencedFilesDocument.data.files)\r\n      } \r\n    }\r\n  }\r\n\r\n  async dragover(event) {\r\n    if (!locals.canEdit) {\r\n      event.dataTransfer.dropEffect = \"none\"\r\n    } else {\r\n      event.dataTransfer.dropEffect = \"copy\"\r\n    }\r\n  }\r\n\r\n  async drop(event) {\r\n    if (!locals.canEdit) {\r\n      return\r\n    }\r\n\r\n    $refs.dropHandler.$emit('drop', event)\r\n  }\r\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-12-13T13:35:00+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2024-02-29T13:12:16+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1709212336989,"ct":1702474500281,"a_depth":4,"a":["apps","45ada186-e9fd-451d-9dbd-2defc0b4f86f","4ec6a0e5-cf2d-4095-9b70-2e31a64d5679","554234d4-1a0a-4f31-b6a1-7899ca841995"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","45ada186-e9fd-451d-9dbd-2defc0b4f86f","4ec6a0e5-cf2d-4095-9b70-2e31a64d5679","a04c8913-db48-4e80-b20d-0f3cc17a778c"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"33a7af41-4650-4920-af27-747f01b5d42d","text":"page--left","v":"85bb63f25ee697ae"},"created":{"at":"2022-05-17T11:27:47+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1652786867682,"data":{"aliases":[],"controller":"class Controller {\r\n  async init() {\r\n    this.FORMS = {\r\n      Ordner: 'a04c8913-db48-4e80-b20d-0f3cc17a778c',\r\n      Datei: 'dbee6e16-d63a-493c-bba6-505f79918f9f', \r\n      Seite: 'ffa650cf-e351-462e-baef-29f7c8f22d1b',\r\n      ReferencedFiles: 'b5883937-a590-4474-87fb-ed49ed3796f8'\r\n    }\r\n\r\n    locals.selectionHasDocuments = false\r\n    locals.mixFilesAndFolders = false\r\n    locals.view = 'grid'\r\n    locals.referencedFiles = []\r\n    locals.showDropNowHint = false\r\n    locals.dropAssetSrc = null\r\n    // locals.sort = this.getSorting()\r\n\r\n    locals.documents = [] \r\n\r\n    if (Aeppic.LocalStorage.isAvailable) {\r\n      locals.mixFilesAndFolders = Aeppic.LocalStorage.getValue('bp-pref-ordner-page-mix') || locals.mixFilesAndFolders\r\n      locals.view = Aeppic.LocalStorage.getValue('bp-pref-ordner-page-view') || locals.view\r\n    }\r\n\r\n    const canEdit = await Aeppic.canEdit(document)\r\n    locals.canEdit = Aeppic.Account && Aeppic.Account.data.isGroupAccount === false && canEdit === true\r\n\r\n    Aeppic.subscribe(`p:${document.id} (f.id:${this.FORMS.Ordner} OR f.id:${this.FORMS.Datei} OR f.id:${this.FORMS.Seite})`, { size: 9999 }, (docs) => {\r\n      // const filteredToExcludeCustomers = docs.filter(doc => !(doc.f.id === this.FORMS.Ordner && (doc.data.client.id || doc.data.project.id)))\r\n\r\n      // console.log({filteredToExcludeCustomers})  \r\n      locals.documents = docs\r\n    })\r\n\r\n    if (data.project && data.project.id || data.client && data.client.id) {\r\n      const referencedFilesDocument = await Aeppic.findOne(`p:${data.project.id} f.id:${this.FORMS.ReferencedFiles}`)\r\n// console.log({referencedFilesDocument})\r\n      if (referencedFilesDocument) {\r\n        locals.referencedFiles = await Aeppic.getAll(referencedFilesDocument.data.files)\r\n      } \r\n    }\r\n\r\n    locals.dropAssetSrc = Aeppic.Content.getSrc(await Aeppic.get('c35b6681-b5e4-4e06-b7cc-7455bba75c7a'), 'file')\r\n  }\r\n\r\n  // getSorting() { \r\n  //   if (data.sortierungFelder?.length) {\r\n  //     return data.sortierungFelder.map(name => ({ field: name, descending: typeof data.sortierungAbsteigend === 'boolean' ? data.sortierungAbsteigend : false }))\r\n  //   }\r\n\r\n  //   return ['data.name', 'id']\r\n  // }\r\n\r\n  // async foo() {\r\n  //   const projectRootId = params.projectRootId\r\n\r\n  //   const project = await Aeppic.get(params.projectRootId)\r\n\r\n  //   const query = `f.id:dbee6e16-d63a-493c-bba6-505f79918f9f a:${project.id}`\r\n  //   const files = await Aeppic.find(query, { sort: 'a_depth' })\r\n\r\n  //   // const subQuery = `f.id:dbee6e16-d63a-493c-bba6-505f79918f9f a:${project.id} AND (a_depth:${project.a_depth + 2} OR  a_depth:${project.a_depth + 3})`\r\n  //   // const subFiles = await Aeppic.find(subQuery)\r\n\r\n  //   console.log(await Aeppic.find(``))\r\n\r\n  //   const uniqueParentsSet = new Set([...files.map(file => file.p)])\r\n  //   const parents = await Aeppic.getAll([...uniqueParentsSet])\r\n \r\n  //   console.log({\r\n  //     query,\r\n  //     files,\r\n  //     parents\r\n  //   })\r\n\r\n  //   locals.result = parents\r\n  // }\r\n\r\n  dragover(event) {\r\n    if (!locals.canEdit) {\r\n      event.dataTransfer.dropEffect = \"none\"\r\n      locals.showDropNowHint = false\r\n    } else {\r\n      event.dataTransfer.dropEffect = \"copy\"\r\n      locals.showDropNowHint = true\r\n    }\r\n  }\r\n\r\n  dragleave(event) {\r\n    locals.showDropNowHint = false\r\n  }\r\n\r\n\r\n  drop(event) {\r\n    locals.showDropNowHint = false\r\n\r\n    if (!locals.canEdit) {\r\n      return\r\n    }\r\n\r\n    $refs.dropHandler.$emit('drop', event)\r\n  }\r\n\r\n  // async openContextMenu(event) {\r\n  //   if (!locals.selectionHasDocuments) {\r\n  //     return\r\n  //   }\r\n\r\n  //   $refs.pageMenu.showAtPosition(event)\r\n  // }\r\n\r\n\r\n  toolbarEvent(eventType) {\r\n    if (eventType === 'view_mix-files-and-folders_true') {\r\n      locals.mixFilesAndFolders = true\r\n      return\r\n    }\r\n    if (eventType === 'view_mix-files-and-folders_false') {\r\n      locals.mixFilesAndFolders = false\r\n      return\r\n    }\r\n    if (eventType === 'view_grid') {\r\n      locals.view = 'grid'\r\n      return\r\n    }\r\n    if (eventType === 'view_table') {\r\n      locals.view = 'table'\r\n      return\r\n    }\r\n    if (eventType === 'view_two-column') {\r\n      locals.view = 'two-column'\r\n      return\r\n    }\r\n  }\r\n\r\n\r\nasync foo() {\r\n  const file = await Aeppic.new('dbee6e16-d63a-493c-bba6-505f79918f9f', document.id)\r\n  file.data.name = `_${Date.now()}`\r\n  Aeppic.save(file)\r\n}\r\n}","css":"","description":"","name":"rd:tiles","packages":[],"template":"<div class=\"h-full overflow-hidden relative\"\r\n      @drop.prevent.stop=\"controller.drop($event)\"\r\n      @dragover.prevent=\"controller.dragover($event)\"\r\n      @toolbar.prevent=\"controller.toolbarEvent($event.detail)\"\r\n  >\r\n  <div v-show=\"locals.showDropNowHint\"\r\n      class=\"absolute top-0 left-0 right-0 bottom-0 z-10 bg-neutral-50\"\r\n      @dragover.prevent=\"controller.dragover($event)\"\r\n      @dragleave.prevent=\"controller.dragleave($event)\"\r\n      @drop.prevent.stop=\"controller.drop($event)\"\r\n  >  \r\n    <div class=\"h-full w-full pointer-events-none flex flex-col items-center justify-center\">\r\n      <div class=\"pointer-events-none\">Dateien jetzt ablegen</div>\r\n      <img class=\"pointer-events-none h-1/2 w-1/2\" :src=\"locals.dropAssetSrc\" />\r\n    </div>\r\n  </div>\r\n  \r\n  <ae-list  class=\"h-full \" \r\n            list-id=\"d8d62c22-e272-49e1-b6fa-1e245321be4b\" \r\n            :filter=\"params.filter\"\r\n            :sort=\"params.sort\"\r\n            :documents=\"locals.documents\"\r\n            :param-referenced-files=\"locals.referencedFiles\"\r\n  ></ae-list>  \r\n</div>\r\n\r\n<ae-layout  layout-id=\"8ae0359f-4d25-4d17-baf0-f69c006bd4ad\"\r\n            :param-show-ui=\"false\"\r\n            :param-document=\"document\"\r\n            param-file-form-id=\"dbee6e16-d63a-493c-bba6-505f79918f9f\"\r\n            param-file-form-field=\"datei\"\r\n            param-file-name-to-field=\"name\"\r\n            param-directory-form-id=\"a04c8913-db48-4e80-b20d-0f3cc17a778c\"\r\n            :param-save-new-documents=\"true\"\r\n            ref=\"dropHandler\"\r\n></ae-layout> \r\n\r\n<ae-layout  layout-id=\"8c5c60ec-b7d1-4e46-a9ca-180c3c153179\"\r\n            :param-page-document-id=\"document.id\"\r\n            :param-show-ui=\"false\"\r\n            ref=\"selectionHandler\"\r\n            @selected-documents=\"locals.selectionHasDocuments = true\"\r\n            @unselected-documents=\"locals.selectionHasDocuments = false\"\r\n></ae-layout>\r\n"},"f":{"id":"design-form","text":"Design","v":"74db9b6ed94b41d9"},"id":"4240bd5b-c614-4c11-a61f-562981111fc6","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-03-27T12:37:40+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"33a7af41-4650-4920-af27-747f01b5d42d","text":"page--left","v":"85bb63f25ee697ae"},"p":"a04c8913-db48-4e80-b20d-0f3cc17a778c","previous":{"v":"e5a36a55547bd837"},"stamps":[],"t":1743079060378,"v":"fca8bb51e379c7ca"},{"a":["apps","77ee8815-2c3a-4bb5-abd9-90541a545a24","1cc4b977-c14d-4587-af47-d6ac230f60b3"],"a_depth":3,"a_forms":["folder","application-form","design-folder"],"created":{"at":"2023-08-24T09:24:43+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1720684627137,"data":{"aliases":[],"controller":"class TimeTrackingController {\n  async init() {\n    this.debug = params.debug ?? false\n    this.numberFormatter = new Intl.NumberFormat('de-DE', { style: 'decimal' })\n    this.currencyFormatter = new Intl.NumberFormat('de-de', { style: 'currency', currency: 'EUR' })\n\n    locals.estimate = null\n    locals.duration = null\n    locals.progress = this._getProgress()\n    locals.costEstimate = 0\n    locals.costEstimateHumanreadable = ''\n    this.Forms = {\n      TrackedTime: 'f9279010-1935-4139-abbb-82d928aa09dc',\n      DurationEstimate: '08a478e7-a278-4c26-b2b6-65f9563a7da8',\n      Statistic: 'e3ffa807-5e3c-47f8-aa86-c3940236e3df',\n    }\n\n    await this._initalizeDuration()\n    await this._initalizeDurationEstimate()\n    await this._updateCostEstimate()\n  }\n\n  async _initalizeDurationEstimate() {\n    if (params.durationEstimateField) {\n      const field = data[params.durationEstimateField] ?? {}\n      locals.estimate = Aeppic.DateTimeDuration.fromObject(field)\n      locals.progress = this._getProgress()\n      return\n    }\n    \n    if (params.subscribe) {\n      Aeppic.subscribe(`p:${document.id} f.id:${this.Forms.DurationEstimate}`, { size: 1 }, (estimates) => {\n        if (estimates.length === 0) {\n          locals.estimate = null\n        } else {\n          locals.estimate = Aeppic.DateTimeDuration.fromObject(estimates[0].data.dauer)\n        }\n\n        locals.progress = this._getProgress()\n      })\n\n      return\n    }\n    \n    const estimate = await Aeppic.findOne(`p:${document.id} f.id:${this.Forms.DurationEstimate}`)\n    locals.estimate = estimate ? Aeppic.DateTimeDuration.fromObject(estimate.data.dauer) : null\n\n    locals.progress = this._getProgress()\n  }\n\n  async _initalizeDuration() {\n    if (params.durationFieldName) {\n      locals.duration = data[params.durationFieldName] ?? {}\n      locals.progress = this._getProgress()\n\n      return\n    }\n\n    if (params.durationRelation) {\n      const statisticDocument = await Aeppic.resolve(document, params.durationRelation).catch(() => null)\n\n      if (statisticDocument) {\n        this.debug && console.log(`Found Statistic: ${statisticDocument?.id}`)\n        locals.duration = this.totalDuration(statisticDocument)\n\n        Aeppic.watch(statisticDocument, (updatedStatisticDocument) => {\n          locals.duration = this.totalDuration(updatedStatisticDocument)\n          locals.progress = this._getProgress()\n        })\n\n        return\n      }\n\n      return\n    }\n\n    const statisticDocument = await Aeppic.resolve(document, 'AppTimeTracking-TrackedTimeStatistic').catch(() => null)\n\n    if (statisticDocument) {\n      this.debug && console.log(`Found Statistic: ${statisticDocument?.id}`)\n      locals.duration = this.totalDuration(statisticDocument)\n\n      Aeppic.watch(statisticDocument, (updatedStatisticDocument) => {\n        locals.duration = this.totalDuration(updatedStatisticDocument)\n        locals.progress = this._getProgress()\n      })\n\n      return\n    }\n\n    // removed upgrade code because it is no longer necessary\n    // if (Aeppic.canUpgrade(document)) {\n    //   Aeppic.upgrade(document)\n    // }\n    if (params.subscribe) {\n      Aeppic.subscribe(`p:${document.id} f.id:${this.Forms.TrackedTime}`, { size: 1000 }, (timetrackings) => {\n        locals.duration = this.totalDuration(timetrackings)\n\n        locals.progress = this._getProgress()\n      })\n\n      return\n    }\n\n    const timetrackings = await Aeppic.find(`p:${document.id} f.id:${this.Forms.TrackedTime}`,\n      {\n        size: 1000,\n      },\n    )\n\n    locals.duration = this.totalDuration(timetrackings)\n    locals.progress = this._getProgress()\n  }\n\n  async _updateCostEstimate() {\n    if (!params.costEstimateFieldName) {\n      return\n    }\n\n    const costEstimate = await Aeppic.get(data[params.costEstimateFieldName])\n\n    locals.costEstimate = costEstimate?.data.cost.amount || 0\n    locals.costEstimateHumanreadable = this.currencyFormatter.format(locals.costEstimate)\n  }\n\n  _getProgress() {\n    const absolutes = {\n      estimate: locals.estimate ? locals.estimate.as('milliseconds') : 0,\n      duration: locals.duration ? locals.duration.as('milliseconds') : 0,\n      overdone: 0,\n      remaining: 0,\n    }\n\n    if (absolutes.estimate > 0) {\n      absolutes.remaining = absolutes.estimate - absolutes.duration\n    } else {\n      absolutes.remaining = 0\n    }\n\n    if (absolutes.remaining < 0) {\n      absolutes.overdone = -absolutes.remaining\n    }\n\n    params.debug && console.log('abs', absolutes)\n\n    let all = 0\n\n    if (absolutes.remaining >= 0) {\n      all = absolutes.duration + absolutes.remaining\n    } else {\n      all = absolutes.estimate + absolutes.overdone\n    }\n\n    if (all === 0) {\n      return {}\n    }\n\n    const percentile = 100 / all\n\n    const percentiles = {\n      duration: absolutes.duration * percentile,\n      remaining: absolutes.remaining * percentile,\n      overdone: absolutes.overdone * percentile,\n      estimate: absolutes.estimate * percentile,\n    }\n\n    return {\n      remaining: percentiles.remaining,\n      remainingAbsolute: absolutes.remaining,\n      duration: percentiles.duration,\n      overdone: percentiles.overdone,\n      isOverdone: absolutes.overdone > 0,\n      overdoneAbsolute: absolutes.overdone,\n      estimate: percentiles.estimate,\n      estimateAbsolute: absolutes.estimate,\n    }\n  }\n\n  totalDuration(trackings) {\n    if (!trackings) {\n      return null\n    }\n    trackings = Array.isArray(trackings) ? trackings : [trackings]\n\n    const duration = trackings.reduce((prev, cur) => {\n      return Aeppic.DateTimeDuration.fromObject(cur.data.dauer ?? cur.data.duration).plus(prev)\n    }, Aeppic.DateTimeDuration.fromMillis(0))\n\n    return duration\n  }\n\n  readableDuration(duration) {\n    if (!duration) {\n      return '--'\n    }\n\n    const { days, hours, minutes } = duration.shiftTo('hours', 'minutes', 'seconds') // shift seconds/millis out to prevent 4m 41s to look sth like 4.666666666666m.\n\n    const parts = []\n\n    if (days) {\n      parts.push(`${days}d`)\n    }\n    if (hours) {\n      parts.push(`${hours}h`)\n    }\n    if (minutes) {\n      parts.push(`${minutes}m`)\n    }\n\n    if (parts.length) {\n      return parts.join(' ')\n    }\n\n    return '--'\n  }\n}\n","css":"._CSS .tippy-box {\n  background: white;\n  color: black;\n  box-shadow: var(--ae-shadow-1);\n}\n\n\n._CSS-progress--empty {\n  opacity: var(--ae-opacity-1);\n}\n\n._CSS-progress__title {\n  display: flex;\n  justify-content: center;\n  font-size: var(--ae-font-size-2);\n  height: 20px;\n  position: absolute;\n  top: 8px;\n  white-space: nowrap;\n  overflow: hidden;\n}\n\n._CSS-progress__totals {\n  position: absolute;\n  top: -20px;\n  left: 0;\n  right: 0;\n\n  display: flex;\n  justify-content: center;\n  align-items: center;\n\n  font-size: var(--ae-font-size-2);\n  color: var(--ae-background-700);\n}\n\n._CSS-progress__value {\n  height: 8px;\n\n  display: flex;\n  justify-content: center;\n}\n\n._CSS-progress__value--left {\n  border-top-left-radius: var(--ae-border-radius);\n  border-bottom-left-radius: var(--ae-border-radius);\n}\n._CSS-progress__value--right {\n  border-top-right-radius: var(--ae-border-radius);\n  border-bottom-right-radius: var(--ae-border-radius);\n}\n\n\n._CSS-progress__overdone {\n  background: var(--ae-accent-red-400) !important;\n}\n\n\n._CSS-progress__open {\n  background: var(--ae-background-300);\n  xbackground: transparent;\n}\n\n._CSS-progress__closed {\n  background: var(--ae-primary-500);\n  xbackground: var(--ae-accent-green-700);\n} ","description":"","name":"rd:timetracking-progress","packages":[],"template":"<!-- Params\n  - hideMinutes                  Doesn't show minutes to save space\n  - shortenCostEstimate          Shortens the cost estimate by replacing 1000 by 1k.\n-->\n<ae-popup v-if=\"params.edit\" ref=\"popup\" :close-delay=\"100\">\n  <ae-layout @mouseenter.native=\"$refs.popup.cancelClose()\" @mouseleave.native=\"$refs.popup.close()\"\n    layout-id=\"ca6783b2-ce5e-4115-a28e-da2c8cdbf38e\" :param-document=\"document\"></ae-layout>\n</ae-popup>\n\n<div ref=\"box\" xv-if=\"locals.duration|| locals.estimate\" @mouseover=\"$refs.popup?.show({ target: $refs.box })\"\n  @mouseleave=\"$refs.popup?.close()\"\n :data-test=\"'design' + '_' + design.data.name + '_' + 'documentForm_' + document.f.text\"  \n>\n  <div class=\"relative flex rounded-md\" :class=\"{ 'my-[16px]': !params.hideTotals }\" :style=\"{ 'min-width': params.minWidth }\">\n    <div class=\"absolute -top-[22px] left-0 right-0 text-sm text-neutral-600 flex gap-2 items-center justify-center\"\n      v-if=\"!params.hideTotals\">\n      <span title=\"Gesamte erfasste Zeit\" class=\"flex items-center gap-1\" data-test=\"total\">\n        <ae-icon class=\"far fa-sigma\"></ae-icon>\n        {{ controller.readableDuration(locals.duration) }}\n      </span>\n      <span title=\"Schätzung der zu erwartenden Zeit\" class=\"flex items-center gap-1\" data-test=\"estimate\">\n        <ae-icon class=\"far fa-clock\"></ae-icon>\n        {{ controller.readableDuration(locals.estimate) }}\n      </span>\n\n      <span v-if=\"locals.costEstimate\" title=\"Kosten\" class=\"flex items-center\" data-test=\"cost\">\n        <ae-icon class=\"far fa-euro-sign\"></ae-icon>\n        {{ locals.costEstimateHumanreadable }}\n      </span>\n    </div>\n\n    <template v-if=\"locals.duration || locals.estimate\">\n      <!-- has duration -->\n      <template\n        v-if=\"locals.progress.overdone || locals.progress.remaining || locals.progress.estimate || locals.progress.duration\">\n        <div v-if=\"locals.progress.isOverdone\" class=\"w-full flex flex-col\">\n          <div class=\"h-[8px] rounded-md w-full bg-gradient-to-r from-blue-500 via-blue-500 to-red-500\"\n            :class=\"['via-[' + Number(locals.progress.estimate - 5).toFixed(0) + '%]', 'to-[' + Number(locals.progress.estimate + 5).toFixed(0) + '%]']\">\n          </div>\n\n          <div class=\"flex gap-2 text-xs\">\n            <div title=\"Erfasst\" class=\"\" :xstyle=\"{ width: locals.progress.estimate + '%' }\" data-test=\"tracked\">\n              <span class=\" text-blue-700\">\n                {{ controller.readableDuration(locals.estimate) }}\n              </span>\n            </div>\n            <div title=\"Überzogen\" class=\"\" :xstyle=\"{ width: locals.progress.overdone + '%' }\" data-test=\"overdone\">\n              <span class=\" text-red-700\">\n                {{ controller.readableDuration(Aeppic.DateTimeDuration.fromMillis(locals.progress.overdoneAbsolute)) }}\n              </span>\n            </div> \n\n            <div class=\"flex-1\"></div>\n\n            <span v-if=\"locals.costEstimate\" title=\"Kosten\" class=\"text-xs text-lime-600 flex items-center\" data-test=\"cost\">\n              <ae-icon class=\"far fa-euro-sign\"></ae-icon>\n              {{ locals.costEstimateHumanreadable }}\n            </span>\n          </div>\n        </div>\n        <section v-else-if=\"locals.progress.estimate\" class=\"w-full flex flex-col\">\n          <div class=\"h-[8px] rounded-md w-full bg-gradient-to-r from-blue-500 to-neutral-300\"\n            :class=\"['to-[' + Number(locals.progress.duration).toFixed(0) + '%]']\">\n          </div>\n\n          <div class=\"flex text-xs gap-2\">\n            <div v-if=\"locals.duration && locals.duration.as('milliseconds') > 0\" title=\"Erfasst\"\n              class=\"\" :style=\"{ xwidth: locals.progress.duration + '%' }\" data-test=\"tracked\">\n              <span class=\" text-blue-700\">\n                {{ controller.readableDuration(locals.duration) }}\n              </span>\n            </div>\n            <div v-if=\"locals.progress.remainingAbsolute > 0\" title=\"Verbleibend\" class=\"\"\n              :style=\"{ xwidth: locals.progress.remaining + '%' }\" data-test=\"remaining\">\n              <span class=\" text-neutral-700\">\n                {{ controller.readableDuration(Aeppic.DateTimeDuration.fromMillis(locals.progress.remainingAbsolute)) }}\n              </span>\n            </div>\n\n            <div class=\"flex-1\"></div>\n\n            <span v-if=\"locals.costEstimate\" title=\"Kosten\" class=\"text-xs text-lime-600 flex items-center\" data-test=\"cost\">\n              <ae-icon class=\"far fa-euro-sign\"></ae-icon>\n              {{ locals.costEstimateHumanreadable }}\n            </span>\n          </div>\n        </section>\n        <section v-else class=\"w-full flex flex-col\">\n          <div class=\"h-[8px] rounded-md w-full bg-blue-500\">\n          </div>\n\n          <div class=\"flex gap-2 text-xs\">\n            <div v-if=\"locals.duration && locals.duration.as('milliseconds') > 0\" title=\"Erfasst\"\n              class=\"\" :style=\"{ xwidth: locals.progress.duration + '%' }\" data-test=\"tracked\">\n              <span class=\"text-blue-700\">\n                {{ controller.readableDuration(locals.duration) }}\n              </span>\n            </div>\n\n            <div class=\"flex-1\"></div>\n\n            <span v-if=\"locals.costEstimate\" title=\"Kosten\" class=\"text-lime-600 flex items-center\" data-test=\"cost\">\n              <ae-icon class=\"far fa-euro-sign\"></ae-icon>\n              {{ locals.costEstimateHumanreadable }}\n            </span>\n          </div>\n        </section>\n        \n      </template>\n      <div v-else class=\"w-full flex flex-col\">\n        <div class=\"h-[8px] rounded-md w-full bg-neutral-300\">\n        </div>\n        <div class=\"flex gap-2 text-xs\">\n          <div title=\"Verbleibend\" class=\"w-full\" data-test=\"remaining\">\n            <span class=\" text-neutral-700\">\n              {{ controller.readableDuration(Aeppic.DateTimeDuration.fromMillis(locals.progress.remainingAbsolute)) }}\n            </span>\n          </div>\n\n          <div class=\"flex-1\"></div>\n\n          <span v-if=\"locals.costEstimate\" title=\"Kosten\" class=\"text-xs text-lime-600 flex items-center\" data-test=\"cost\">\n            <ae-icon class=\"far fa-euro-sign\"></ae-icon>\n            {{ locals.costEstimateHumanreadable }}\n          </span>\n        </div>\n      </div>\n    </template>\n    <div v-else ref=\"box\" class=\"w-full flex flex-col\" :style=\"{ 'min-width': params.minWidth }\">\n      <!-- has NO duration -->\n      <div class=\"h-[8px] rounded-md w-full bg-neutral-300\">\n      </div>\n      <div class=\"flex gap-2 text-xs\">\n        <div title=\"Keine Zeiten erfasst oder Schätzung angegeben\" class=\"w-full\" data-test=\"no-duration-and-estimate\">\n          <span class=\"text-neutral-700\">\n            {{ controller.readableDuration(Aeppic.DateTimeDuration.fromMillis(locals.progress.remainingAbsolute)) }}\n          </span>\n        </div>\n\n        <div class=\"flex-1\"></div>\n\n        <span v-if=\"locals.costEstimate\" title=\"Kosten\" class=\"text-xs text-lime-600 flex items-center\" data-test=\"cost\">\n          <ae-icon class=\"far fa-euro-sign\"></ae-icon>\n          {{ locals.costEstimateHumanreadable }}\n        </span>\n      </div>\n    </div>\n  </div>\n\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"2acbbb09-a234-47bc-a408-7dc6f988893a","inheritedLocks":[null,null,null,null],"locks":[],"meta":{},"modified":{"at":"2026-07-21T10:08:54+00:00","backedBy":"","by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":""},"p":"1cc4b977-c14d-4587-af47-d6ac230f60b3","previous":{"v":"b3328ed701e04079"},"stamps":[],"t":1784628534183,"v":"d341db525ecdb3db"},{"a":["system","04632e3e-9132-4927-b91d-3c28d1afe3e9","e9f6cbce-0b0f-4ef3-a7cf-ae0b2ddbce03","229af740-4ce1-49f9-b37b-333381dea3ce"],"a_depth":4,"a_forms":["system-folder-form","folder","form","form"],"created":{"at":"2025-11-18T08:20:54+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"ct":1763454054873,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:title","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<div\n  @click.stop=\"$emit('selected', document.id)\"\n>\n  Level 3: {{data.name}}\n</div>"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"d88dc7ef-80d6-4155-aa1a-673dda227d7f","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-11-19T08:11:22+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"229af740-4ce1-49f9-b37b-333381dea3ce","previous":{"v":"3338fea9695ef7c8"},"stamps":[],"t":1763539882873,"v":"6e349d361249a9c0"},{"a":["apps","1887a103-bf3b-473c-8cb7-4f1afad0286b","9b02b1b6-e32b-41ec-b451-dba59bc5847b","e66eae7c-a9d5-4a59-a2f0-d1fa6eb90ea5"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"cda313d3-3e3b-4dde-b913-47ba7dc2f085","text":"rd:title-action","v":"4724f231e117893d"},"created":{"at":"2024-11-14T14:06:35+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1731593195039,"data":{"aliases":[],"controller":"class Controller {\n  async toggle() {\n    const editable = await Aeppic.edit(document)\n\n    editable.data.erledigt = !editable.data.erledigt\n\n    Aeppic.save(editable)\n  }\n\n  async toggleProgress() {\n    const editable = await Aeppic.edit(document)\n\n    editable.data.inBearbeitung = !editable.data.inBearbeitung\n\n    Aeppic.save(editable)\n  }\n}","css":"","description":"","name":"rd:title-action","packages":[],"template":"<div class=\"flex gap-1\">\n  <ae-layout  v-if=\"!params.onlyProgress\"\n              layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n              param-icon=\"far fa-check\" \n              :param-classes=\"[!data.erledigt && 'bg-white text-neutral-500 border-neutral-400', data.erledigt && 'bg-green-600 text-green-50 border-green-500']\"\n              @selected=\"controller.toggle()\"\n              param-title=\"Erledigt umschalten\"\n              :param-disabled=\"params.readonly\"\n              param-border=\"border border-secondary-300\"\n  ></ae-layout>   \n\n  <ae-layout v-if=\"'inBearbeitung' in data && !params.onlyDone\"\n              layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n              param-icon=\"far fa-clock\" \n              :param-classes=\"[data.inBearbeitung ? 'text-lime-500' : 'text-neutral-500']\"\n              @selected=\"controller.toggleProgress()\"\n              :param-disabled=\"data.erledigt || params.readonly\"\n              param-title=\"In Bearbeitung umschalten\"\n              param-border=\"border border-secondary-300\"\n  ></ae-layout>   \n</div>  \n"},"f":{"id":"design-form","text":"Design","v":"c2d9ae57c7a46896"},"id":"45ff9b29-f155-4c5a-811b-19f11b5fd1d4","inheritedLocks":[null,null,null,null,null],"locks":[],"meta":{"modified":{"at":"2024-11-14T14:09:56+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null}},"modified":{"at":"2024-11-14T14:06:35+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"cda313d3-3e3b-4dde-b913-47ba7dc2f085","text":"rd:title-action","v":"4724f231e117893d"},"p":"e66eae7c-a9d5-4a59-a2f0-d1fa6eb90ea5","previous":{"a":["apps","1887a103-bf3b-473c-8cb7-4f1afad0286b","9b02b1b6-e32b-41ec-b451-dba59bc5847b","6e55b0af-03d5-414b-a26b-0854ec230a07"],"a_forms":["folder","application-form","form-folder","form"],"p":"6e55b0af-03d5-414b-a26b-0854ec230a07","v":"d438fb796e2a6898"},"stamps":[],"t":1731593396667,"v":"86d18bfaaf5efc29"},{"id":"51f07f13-48dc-4bc5-a4c0-068c0c8fbd64","v":"036396d9fc9b3e31","cloneOf":{"id":"a2f0c3c9-38a9-4555-bd3d-1e1a3cce1cd2","v":"feec9f4cab8c3391","text":"rd:title-action"},"originalCloneOf":{"id":"a2f0c3c9-38a9-4555-bd3d-1e1a3cce1cd2","v":"feec9f4cab8c3391","text":"rd:title-action"},"previous":{"v":"99df220af8129c80"},"p":"954212d9-9cc7-4356-82e3-a80cf745da4d","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"rd:title-action","template":"<ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n            :param-icon-design-document-id=\"document.id\"\n            @selected=\"controller.toggle($event)\"\n            :param-disabled=\"params.readonly\"\n></ae-layout>  \n\n<ae-popup ref=\"popup\">\n  <template #default>\n    <div>\n      <ae-form :document=\"document\"\n              :auto-save=\"true\"\n              :auto-save-after=\"2500\"\n              layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\"\n              :view=\"locals.view\"\n      ></ae-form>\n    </div>\n  </template>\n</ae-popup> ","css":"","controller":"class Controller {\n  init() {  \n    locals.view ={\n      only: {\n        fields: ['namedIcon', 'namedIconColor']\n      }\n    }\n  }\n\n  toggle(clickEvent) {\n    $refs.popup.toggle(clickEvent)\n  }\n} ","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-02-02T16:34:44+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-02-26T12:52:38+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1708951958359,"ct":1706891684545,"a_depth":4,"a":["apps","91a90288-37bc-4f86-be38-4283833717d2","cb7a4c1b-703a-4b16-9190-aa2a26532688","954212d9-9cc7-4356-82e3-a80cf745da4d"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","94a64d89-d204-4918-b147-d717914fb03e","f254ce25-42f1-4333-8ee7-23554bf746c1","88b1f60e-71f6-46f5-94ea-3d7bbe972950"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"cda313d3-3e3b-4dde-b913-47ba7dc2f085","text":"rd:title-action","v":"e81f178e5d33fc69"},"created":{"at":"2024-05-02T11:36:16+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1714649776096,"data":{"aliases":[],"controller":"class Controller {\n  async toggle() {\n    const editable = await Aeppic.edit(document)\n\n    editable.data.erledigt = !editable.data.erledigt\n\n    Aeppic.save(editable)\n  }\n\n  async toggleProgress() {\n    const editable = await Aeppic.edit(document)\n\n    editable.data.inBearbeitung = !editable.data.inBearbeitung\n\n    Aeppic.save(editable)\n  }\n}","css":"","description":"","name":"rd:title-action","packages":[],"template":"<div class=\"flex gap-1\"  :data-test=\"'design' + '_' + design.data.name + '_' + 'documentForm_' + document.f.text + ((params.onlyDone && '_done') || '') + ((params.onlyProgress && '_progress') || '')\">\n  <ae-layout  v-if=\"!params.onlyProgress\"\n              layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n              param-icon=\"far fa-check\" \n              :param-classes=\"[!data.erledigt && 'bg-white text-neutral-500 border-neutral-400', data.erledigt && 'bg-green-600 text-green-50 border-green-500']\"\n              @selected=\"controller.toggle()\"\n              :param-title=\"data.erledigt ? 'Als nicht-erledigt markieren' : 'Als erledigt markieren'\"\n              :param-disabled=\"params.readonly\"\n              param-border=\"border-slate-200\"\n  ></ae-layout>   \n\n  <ae-layout v-if=\"'inBearbeitung' in data && !params.onlyDone\"\n              layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n              param-icon=\"far fa-clock\" \n              :param-classes=\"[data.inBearbeitung ? 'text-lime-500' : 'text-neutral-500']\"\n              @selected=\"controller.toggleProgress()\"\n              :param-disabled=\"data.erledigt || params.readonly\"\n              :param-title=\"data.inBearbeitung ? 'Als nicht In-Bearbeitung markieren' : 'Als In-Bearbeitung markieren'\"\n              param-border=\"border-slate-200\"\n  ></ae-layout>   \n</div>  "},"f":{"id":"design-form","text":"Design","v":"c2d9ae57c7a46896"},"id":"6d81bd1c-0653-477b-b953-5d7264c6da54","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-02-16T10:53:03+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"cda313d3-3e3b-4dde-b913-47ba7dc2f085","text":"rd:title-action","v":"e81f178e5d33fc69"},"p":"88b1f60e-71f6-46f5-94ea-3d7bbe972950","previous":{"v":"c6890f8950aeabee"},"stamps":[],"t":1771239183198,"v":"8e492d1b1b0e7b6b"},{"a":["apps","59edbdbc-2cab-426a-bb42-6e57c5158e4f","3be7e887-1bcd-4c3c-979f-b20a986c4c48","0b6a2b21-9425-466e-9e8d-57ec39cc95e1"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"cda313d3-3e3b-4dde-b913-47ba7dc2f085","text":"rd:title-action","v":"e290e33127c173f4"},"created":{"at":"2023-02-21T09:07:37+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1676970457934,"data":{"aliases":[],"controller":"class Controller {\n  async toggle() {\n    const editable = await Aeppic.edit(document)\n\n    editable.data.erledigt = !editable.data.erledigt\n\n    Aeppic.save(editable)\n  }\n}","css":"","description":"","name":"rd:title-action","packages":[],"template":"<ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n            param-icon=\"fal fa-check\" \n            :param-classes=\"[!data.erledigt && 'bg-neutral-50 text-neutral-500 border-neutral-400', data.erledigt && 'bg-green-600 text-green-50 border-green-500']\"\n            @selected=\"controller.toggle()\"\n            :param-disabled=\"params.readonly\"\n            param-border=\"border border-secondary-300\"\n></ae-layout>   "},"f":{"id":"design-form","text":"Design","v":"c2d9ae57c7a46896"},"id":"8fb05635-a3b2-4f02-af21-8bf4a0af07d4","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-07-01T07:52:14+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"cda313d3-3e3b-4dde-b913-47ba7dc2f085","text":"rd:title-action","v":"e290e33127c173f4"},"p":"0b6a2b21-9425-466e-9e8d-57ec39cc95e1","previous":{"v":"cf0d2c96be98015d"},"stamps":[],"t":1751356334683,"v":"aba64f26f004e8ae"},{"a":["apps","0924db0f-7095-4b51-8966-bad1e45d68ec","a3b935e7-60bc-4996-9b18-668e4361067f","54da686f-3f74-441b-b686-ed2b71dd35cc"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"cda313d3-3e3b-4dde-b913-47ba7dc2f085","text":"rd:title-action","v":"5858fd7e1f1492bb"},"created":{"at":"2023-03-07T15:20:30+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1678202430428,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.canEdit = false\n\n    locals.canEdit = await this._canEditPlannings() \n  }\n\n  async _canEditPlannings() {\n    // TODO: params.canEdit not passed in here\n    if (true) { //params.canEditCommand) {\n      const result = await Aeppic.Commands.execute('bb4dbf1c-1c71-4108-92cd-3c56ebfa7be8', document, { Account: Aeppic.Account })\n\n      return result.ok && result.value?.ok === true\n    } else {\n      return Aeppic.canEdit(document)\n    }\n  }\n\n  async togglePayment() {\n    const editable = await Aeppic.edit(document)\n\n    const isReadonly = document.readonly === true\n\n    if (isReadonly) {\n      editable.readonly = false\n    }\n\n    editable.data.bezahlt = !editable.data.bezahlt\n\n    if (editable.data.bezahlt) {\n      editable.data.bezahltDatum = data.lieferDatum || data.datum || Aeppic.DateTime.local().toISO()\n    } else {\n      editable.data.bezahltDatum = ''\n    }\n\n    if (isReadonly) {\n      editable.readonly = true\n    }\n\n    Aeppic.save(editable)\n  }\n\n  async toggleFaktura() {\n    const editable = await Aeppic.edit(document)\n\n    editable.data.fakturiert = !editable.data.fakturiert\n\n    if (editable.data.fakturiert) {\n      editable.data.fakturiertDatum = data.lieferDatum || data.datum || Aeppic.DateTime.local().toISO()\n    } else {\n      editable.data.fakturiertDatum = ''\n    }\n\n    Aeppic.save(editable)\n  }\n\n  get colorStateClasses() {\n    if (data.ueberfaellig) {\n      return 'border-rose-500 text-rose-50 bg-red-500'\n    }\n\n    if (data.bezahlt) {\n      return 'bg-green-600 text-green-50 border-green-500'\n    }\n\n    return 'bg-neutral-50 text-neutral-500 border-neutral-400'\n  }\n} ","css":"","description":"","name":"rd:title-action","packages":[],"template":"<div class=\"flex gap-1\">\n  <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n              :param-icon=\"data.bezahlt ? 'far fa-sack-dollar' : 'far fa-sack'\" \n              :param-classes=\"[controller.colorStateClasses]\"\n              @selected=\"controller.togglePayment()\"\n              param-title=\"Bezahlt umschalten\"\n              :param-disabled=\"!locals.canEdit\"\n  ></ae-layout>   \n\n  <ae-layout  v-if=\"'fakturiert' in data\"\n               layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n              :param-icon=\"data.fakturiert ? 'far fa-receipt' : 'far fa-receipt'\" \n              :param-classes=\"[data.fakturiert ? 'bg-green-600 text-green-50 border-green-500' : 'bg-neutral-50 text-neutral-500 border-neutral-400']\"\n              @selected=\"controller.toggleFaktura()\"\n              param-title=\"Fakturierung umschalten\"\n              :param-disabled=\"!locals.canEdit || document.readonly\"\n  ></ae-layout>   \n</div>"},"f":{"id":"design-form","text":"Design","v":"c2d9ae57c7a46896"},"id":"987d26a3-5d1b-4ee8-890d-c37866722a09","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-05-22T12:45:42+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"cda313d3-3e3b-4dde-b913-47ba7dc2f085","text":"rd:title-action","v":"5858fd7e1f1492bb"},"p":"54da686f-3f74-441b-b686-ed2b71dd35cc","previous":{"v":"4f7803fff06c1957"},"stamps":[],"t":1747917942116,"v":"c4d8b4d61df9025c"},{"id":"a2f0c3c9-38a9-4555-bd3d-1e1a3cce1cd2","v":"eb1d2d5c795a7012","cloneOf":{"id":"34491a0a-fc25-40f5-860b-022df66bb794","v":"be7e409953437ede","text":"rd:title-action"},"originalCloneOf":{"id":"34491a0a-fc25-40f5-860b-022df66bb794","v":"be7e409953437ede","text":"rd:title-action"},"previous":{"v":"feec9f4cab8c3391"},"p":"4f3c48aa-8d12-4dfa-8a66-064d8a851a5b","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"rd:title-action","template":"<ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n            :param-icon-design-document-id=\"document.id\"\n            @selected=\"controller.toggle($event)\"\n            :param-disabled=\"params.readonly\"\n></ae-layout>  \n\n<ae-popup ref=\"popup\">\n  <template #default>\n    <div>\n      <ae-form :document=\"document\"\n              :auto-save=\"true\"\n              :auto-save-after=\"2500\"\n              layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\"\n              :view=\"locals.view\"\n      ></ae-form>\n    </div>\n  </template>\n</ae-popup> ","css":"","controller":"class Controller {\n  init() {  \n    locals.view ={\n      only: {\n        fields: ['namedIcon', 'namedIconColor']\n      }\n    }\n  }\n\n  toggle(clickEvent) {\n    $refs.popup.toggle(clickEvent)\n  }\n} ","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-02-14T14:37:59+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2024-02-26T12:53:03+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1708951983245,"ct":1676385479534,"a_depth":4,"a":["apps","a590ce5b-28fc-4f85-9049-d006e1b8f880","169e87e0-0379-48e1-8c94-8fadac5969bb","4f3c48aa-8d12-4dfa-8a66-064d8a851a5b"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","59edbdbc-2cab-426a-bb42-6e57c5158e4f","3be7e887-1bcd-4c3c-979f-b20a986c4c48","0deb4864-cbb6-420c-99ee-337c7444ab24"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2022-07-04T14:33:38+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1656945218867,"data":{"aliases":[],"controller":"class Controller {\n  async toggle() {\n    const editable = await Aeppic.edit(document)\n\n    editable.data.erledigt = !editable.data.erledigt\n\n    Aeppic.save(editable)\n  }\n\n  async toggleProgress() {\n    const editable = await Aeppic.edit(document)\n\n    editable.data.inBearbeitung = !editable.data.inBearbeitung\n\n    Aeppic.save(editable)\n  }\n}","css":"","description":"","name":"rd:title-action","packages":[],"template":"<div class=\"flex gap-1\" :data-test=\"'design' + '_' + design.data.name + '_' + 'documentForm_' + document.f.text\">\n  <ae-layout  v-if=\"!params.onlyProgress\"\n              layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n              param-icon=\"far fa-check\" \n              :param-classes=\"[!data.erledigt && 'bg-white text-neutral-500 border-neutral-400', data.erledigt && 'bg-green-600 text-green-50 border-green-500']\"\n              @selected=\"controller.toggle()\"\n              param-title=\"Erledigt umschalten\"\n              :param-disabled=\"params.readonly\"\n              param-border=\"border border-secondary-300\"\n  ></ae-layout>   \n\n  <ae-layout v-if=\"'inBearbeitung' in data && !params.onlyDone\"\n              layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n              param-icon=\"far fa-clock\" \n              :param-classes=\"[data.inBearbeitung ? 'text-lime-500' : 'text-neutral-500']\"\n              @selected=\"controller.toggleProgress()\"\n              :param-disabled=\"data.erledigt || params.readonly\"\n              param-title=\"In Bearbeitung umschalten\"\n              param-border=\"border border-secondary-300\"\n  ></ae-layout>   \n</div>  \n"},"f":{"id":"design-form","text":"Design","v":"c2d9ae57c7a46896"},"id":"cda313d3-3e3b-4dde-b913-47ba7dc2f085","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-02-10T09:27:36+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"p":"0deb4864-cbb6-420c-99ee-337c7444ab24","previous":{"v":"4724f231e117893d"},"stamps":[],"t":1770715656491,"v":"f1a177e7b0b7bf7b"},{"a":["apps","90a38bb1-5683-49d1-b519-203876cc6967","4bfbe5fd-cf64-4b07-b91f-17bade3f41f9","e85fc64c-df8a-493a-a7ce-fefa6d85d608"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"a2f0c3c9-38a9-4555-bd3d-1e1a3cce1cd2","text":"rd:title-action","v":"feec9f4cab8c3391"},"created":{"at":"2024-01-19T14:56:19+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1705676179035,"data":{"aliases":[],"controller":"class Controller {\n  init() {  \n    locals.view ={\n      only: {\n        fields: ['archiv', 'namedIcon', 'namedIconColor']\n      }\n    }\n  }\n\n  toggle(clickEvent) {\n    $refs.popup.toggle(clickEvent)\n  }\n} ","css":"","description":"","name":"rd:title-action","packages":[],"template":"<ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n            :param-icon-design-document-id=\"document.id\"\n            @selected=\"controller.toggle($event)\"\n            :param-disabled=\"params.readonly\"\n></ae-layout>  \n\n<ae-popup ref=\"popup\">\n  <template #default>\n    <div>\n      <ae-form :document=\"document\"\n              :auto-save=\"true\"\n              :auto-save-after=\"10000\"\n              layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\"\n              :view=\"locals.view\"\n      ></ae-form>\n    </div>\n  </template>\n</ae-popup> "},"f":{"id":"design-form","text":"Design","v":"c2d9ae57c7a46896"},"id":"e3995bed-23a2-4859-9fae-b0cc4e29711f","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-04-01T11:50:39+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"a2f0c3c9-38a9-4555-bd3d-1e1a3cce1cd2","text":"rd:title-action","v":"feec9f4cab8c3391"},"p":"e85fc64c-df8a-493a-a7ce-fefa6d85d608","previous":{"v":"b34cb6eb4c5c91e2"},"stamps":[],"t":1743508239742,"v":"656768135ef0afcf"},{"id":"e6dcb39e-d37c-40b9-80de-f90470c09d00","v":"40c49a0d16b32ecb","cloneOf":{"id":"cda313d3-3e3b-4dde-b913-47ba7dc2f085","v":"ad628a0a8777d25e","text":"rd:title-action"},"originalCloneOf":{"id":"cda313d3-3e3b-4dde-b913-47ba7dc2f085","v":"ad628a0a8777d25e","text":"rd:title-action"},"previous":{"v":"827785fe2d4a6447"},"p":"10c5491b-3aa8-452f-aa3b-230154258024","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"rd:title-action","template":"<div class=\"flex gap-1\">\n  <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n              param-icon=\"far fa-check\" \n              :param-classes=\"[!data.erledigt && 'bg-neutral-50 text-neutral-300', data.erledigt && 'bg-green-600 text-green-50 border-green-500']\"\n              @selected=\"controller.toggle()\"\n              param-title=\"Erledigt umschalten\"\n              :param-disabled=\"params.disabled || params.readonly\"\n  ></ae-layout>   \n\n  <ae-layout v-if=\"'inBearbeitung' in data\"\n              layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n              param-icon=\"far fa-clock\" \n              :param-classes=\"[data.inBearbeitung ? 'text-yellow-500' : 'text-neutral-300']\"\n              @selected=\"controller.toggleProgress()\"\n              :param-disabled=\"data.erledigt\"\n              param-title=\"In Bearbeitung umschalten\"\n  ></ae-layout>   \n</div>  ","css":"","controller":"class Controller {\n  async toggle() {\n    const editable = Aeppic.isEditableDocument(document) ? document : await Aeppic.edit(document) \n\n    editable.data.erledigt = !editable.data.erledigt\n\n    Aeppic.save(editable)\n  }\n\n  async toggleProgress() {\n    const editable = Aeppic.isEditableDocument(document) ? document : await Aeppic.edit(document) \n\n    editable.data.inBearbeitung = !editable.data.inBearbeitung\n\n    Aeppic.save(editable)\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-02-24T15:48:55+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2024-09-30T13:17:01+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1727702221759,"ct":1677253735407,"a_depth":4,"a":["apps","59edbdbc-2cab-426a-bb42-6e57c5158e4f","3be7e887-1bcd-4c3c-979f-b20a986c4c48","10c5491b-3aa8-452f-aa3b-230154258024"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"f0536512-626b-48a0-82e1-7942cffe3353","v":"73a5f17f67b72745","cloneOf":{"id":"a2f0c3c9-38a9-4555-bd3d-1e1a3cce1cd2","v":"feec9f4cab8c3391","text":"rd:title-action"},"originalCloneOf":{"id":"a2f0c3c9-38a9-4555-bd3d-1e1a3cce1cd2","v":"feec9f4cab8c3391","text":"rd:title-action"},"previous":{"v":"0530b7dbf3403081"},"p":"b2030eae-0210-474c-bf24-9b5c6f0a0d3b","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"rd:title-action","template":"<ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n            :param-icon-design-document-id=\"document.id\"\n            @selected=\"controller.toggle($event)\"\n            :param-disabled=\"params.readonly\"\n></ae-layout>  \n\n<ae-popup ref=\"popup\">\n  <template #default>\n    <div>\n      <ae-form :document=\"document\"\n              :auto-save=\"true\"\n              :auto-save-after=\"2500\"\n              layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\"\n              :view=\"locals.view\"\n      ></ae-form>\n    </div>\n  </template>\n</ae-popup> ","css":"","controller":"class Controller {\n  init() {  \n    locals.view ={\n      only: {\n        fields: ['namedIcon', 'namedIconColor']\n      }\n    }\n  }\n\n  toggle(clickEvent) {\n    $refs.popup.toggle(clickEvent)\n  }\n} ","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-09-07T08:52:58+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2024-02-26T12:52:50+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1708951970729,"ct":1694076778825,"a_depth":4,"a":["apps","a590ce5b-28fc-4f85-9049-d006e1b8f880","169e87e0-0379-48e1-8c94-8fadac5969bb","b2030eae-0210-474c-bf24-9b5c6f0a0d3b"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"f2a8ecd8-0ade-464c-b73f-fb8d72efc421","v":"4f32bfe621b0dd81","cloneOf":{"id":"6d81bd1c-0653-477b-b953-5d7264c6da54","v":"initial","text":"rd:title-action"},"originalCloneOf":{"id":"6d81bd1c-0653-477b-b953-5d7264c6da54","v":"initial","text":"rd:title-action"},"previous":{"v":"a731cbc3bb66b15f"},"p":"125d3e08-d0c5-417c-b4fe-172bf5fade99","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"rd:title-action","template":"<div class=\"flex gap-1\">\n  <ae-layout\n              layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n              :param-icon=\"data.identitaetBestaetigt ? 'far fa-user-check' : 'far fa-user-times text-red-500'\" \n              :param-classes=\"[!data.identitaetBestaetigt && 'bg-white text-neutral-500 border-neutral-400', data.identitaetBestaetigt && 'bg-green-600 text-green-50 border-green-500']\"\n              @selected=\"controller.toggle()\"\n              param-title=\"Identität bestätigt umschalten\"\n              :param-disabled=\"params.readonly\"\n              param-border=\"border-slate-200\"\n  ></ae-layout>   \n</div>","css":"","controller":"class Controller {\n  async toggle() {\n    const editable = await Aeppic.edit(document)\n\n    editable.data.identitaetBestaetigt = !editable.data.identitaetBestaetigt\n\n    Aeppic.save(editable)\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-12-05T10:00:35+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-12-05T10:02:44+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1733392964008,"ct":1733392835323,"a_depth":4,"a":["apps","94a64d89-d204-4918-b147-d717914fb03e","f254ce25-42f1-4333-8ee7-23554bf746c1","125d3e08-d0c5-417c-b4fe-172bf5fade99"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","0924db0f-7095-4b51-8966-bad1e45d68ec","a3b935e7-60bc-4996-9b18-668e4361067f","e9f42b0b-50dd-4e21-9152-02c89b73c6d7"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"987d26a3-5d1b-4ee8-890d-c37866722a09","text":"rd:title-action","v":"c50d2325dadb7f06"},"created":{"at":"2024-12-02T16:20:36+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1733156436217,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.canEdit = false\n    locals.canEdit = await this._canEdit()\n  }\n\n  async toggle() {\n    const editable = await Aeppic.edit(document)\n\n    const isReadonly = document.readonly === true\n\n    if (isReadonly) {\n      editable.readonly = false\n    } \n\n    editable.data.angenommen = !editable.data.angenommen\n\n    if (editable.data.angenommen) {\n      editable.data.angenommenDatum = Aeppic.DateTime.local().toISO()\n    } else {\n      editable.data.angenommenDatum = ''\n    }\n\n    if (isReadonly) {\n      editable.readonly = true\n    }\n\n    Aeppic.save(editable)\n  }\n\n  async _canEdit() {\n    // TODO: params.canEdit not passed in here\n    if (true) { //params.canEditCommand) {\n      const result = await Aeppic.Commands.execute('9dc3f084-a420-471e-8ce9-8060a717da74', document, { Account: Aeppic.Account })\n      \n      return result.ok && result.value?.ok === true\n    } else {\n      return Aeppic.canEdit(document)\n    }\n  }\n}  ","css":"","description":"","name":"rd:title-action","packages":[],"template":"<div class=\"flex gap-1\">\n  <ae-layout  v-if=\"'angenommen' in data\"\n               layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n              :param-icon=\"data.angenommen ? 'far fa-file-signature' : 'far fa-file-signature'\" \n              :param-classes=\"[data.angenommen ? 'bg-green-600 text-green-50 border-green-500' : 'bg-neutral-50 text-neutral-500 border-neutral-400']\"\n              @selected=\"controller.toggle()\"\n              param-title=\"Angenommen umschalten\"\n              :param-disabled=\"!locals.canEdit\"\n  ></ae-layout>   \n</div>"},"f":{"id":"design-form","text":"Design","v":"c2d9ae57c7a46896"},"id":"f7e699a6-b94a-4915-979f-0d857a82f94b","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-08-25T07:34:30+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"987d26a3-5d1b-4ee8-890d-c37866722a09","text":"rd:title-action","v":"c50d2325dadb7f06"},"p":"e9f42b0b-50dd-4e21-9152-02c89b73c6d7","previous":{"v":"c188df0ca1283677"},"stamps":[],"t":1756107270809,"v":"d52992a6e8797c23"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","46a28dfa-7518-4867-9519-a5f4cd9b9967"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"cda313d3-3e3b-4dde-b913-47ba7dc2f085","text":"rd:title-action","v":"4724f231e117893d"},"created":{"at":"2025-10-27T15:49:56+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1761580196744,"data":{"aliases":[],"controller":"class Controller {\n  async inti() {\n    this.FORMS = {\n      BCoreTask: '0deb4864-cbb6-420c-99ee-337c7444ab24',\n    }\n    // locals.administration = await Aeppic.findOne(`p:${document.id} f.id:${this.FORMS.BCoreTask}`)\n    \n  }\n\n  async toggle() {\n    const editable = await Aeppic.edit(document)\n\n    editable.data.done = !editable.data.done\n\n    Aeppic.save(editable)\n  }\n\n  async toggleProgress() {\n    const editable = await Aeppic.edit(document)\n\n    editable.data.inProgress = !editable.data.inProgress\n\n    Aeppic.save(editable)\n  }\n}","css":"","description":"","name":"rd:title-action","packages":[],"template":"<!-- <ae-desigh\n  v-if=\"locals.administration\"\n  document=\"locals.administration\"\n></ae-desigh>\n  v-else -->\n<div \n  class=\"flex gap-1\"\n>\n  <ae-layout  v-if=\"!params.onlyProgress\"\n              layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n              param-icon=\"far fa-check\" \n              :param-classes=\"[!data.done && 'bg-white text-neutral-500 border-neutral-400', data.done && 'bg-green-600 text-green-50 border-green-500']\"\n              @selected=\"controller.toggle()\"\n              param-title=\"Erledigt umschalten\"\n              :param-disabled=\"params.readonly\"\n              param-border=\"border border-secondary-300\"\n  ></ae-layout>   \n\n  <ae-layout v-if=\"!params.onlyDone\"\n              layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n              param-icon=\"far fa-clock\" \n              :param-classes=\"[data.inProgress ? 'text-lime-500' : 'text-neutral-500']\"\n              @selected=\"controller.toggleProgress()\"\n              :param-disabled=\"data.done || params.readonly\"\n              param-title=\"In Bearbeitung umschalten\"\n              param-border=\"border border-secondary-300\"\n  ></ae-layout>   \n</div>  "},"f":{"id":"design-form","text":"Design","v":"c2d9ae57c7a46896"},"id":"f83f220c-a13c-4104-aee3-348a0b774980","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-01-20T14:44:15+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"cda313d3-3e3b-4dde-b913-47ba7dc2f085","text":"rd:title-action","v":"4724f231e117893d"},"p":"46a28dfa-7518-4867-9519-a5f4cd9b9967","previous":{"v":"c4d649dee7f6753d"},"stamps":[],"t":1768920255838,"v":"83f4a7239d018779"},{"a":["apps","77ee8815-2c3a-4bb5-abd9-90541a545a24","1cc4b977-c14d-4587-af47-d6ac230f60b3"],"a_depth":3,"a_forms":["folder","application-form","design-folder"],"cloneOf":{"id":"79ae4a9d-259f-491d-a8e4-5cc9b9de0a4b","text":"rd:table-title-as-link","v":"962a66d5cf90af07"},"created":{"at":"2026-03-11T10:22:12+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"ct":1773224532059,"data":{"aliases":[],"controller":"init() {\n  this.FORMS = {\n    Unternehmen: 'c69a0c1c-6c53-40c2-87e8-5ace866bf1df'\n  }\n  \n  locals.allowLinkNavigation = document.a_forms[0] === this.FORMS.Unternehmen\n}\n\n","css":"","description":"","name":"rd:title-as-link","packages":[],"template":"<a v-if=\"locals.allowLinkNavigation\" class=\"ae-link\" :href=\"document.id\" @click.stop.prevent=\"Aeppic.onLinkClicked($event, document.id)\" @click.right.stop>\n  <ae-design name=\"title\" :params=\"params\" v-on=\"$listeners\" :document=\"document\"></ae-design>\n</a>\n<ae-design v-else name=\"title\" :params=\"params\" v-on=\"$listeners\" :document=\"document\"></ae-design>"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"8fd39854-d717-4cde-b7d5-4e71ef95b0ef","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2026-03-11T10:23:08+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"79ae4a9d-259f-491d-a8e4-5cc9b9de0a4b","text":"rd:table-title-as-link","v":"962a66d5cf90af07"},"p":"1cc4b977-c14d-4587-af47-d6ac230f60b3","previous":{"v":"initial"},"stamps":[],"t":1773224588991,"v":"175ff6165801f404"},{"id":"8694d17e-f518-4ddd-89d6-3b22b18686c2","v":"ddcca6c22845772f","previous":{"v":"3fe8296b5d006790"},"p":"cb2adf77-7636-41a7-9a16-1610b06fa91e","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"rd:toolbar","template":"<div class=\"flex items-center gap-2\">\n    <!-- <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n                param-icon=\"fa fa-info\"\n                param-text=\"Details\"\n                @selected=\"$emit('show-details')\"\n                :param-primary=\"true\"\n    ></ae-layout> -->\n\n    <ae-layout \n      vx-show=\"locals.documentChanged\"\n      layout-id=\"73fd81e5-c901-4c56-9b38-cd04a7d17f8a\"\n      :param-document-id=\"document.id\"\n      @save=\"$emit('toolbar', 'save')\"\n      @document-revision=\"controller.revision()\"\n      @document-save=\"controller.save()\"\n      @reset=\"controller.reset()\"\n      :param-show-always=\"true\"\n    >\n    </ae-layout>\n</div> \n","css":"","controller":"init() {\n  locals.documentChanged = false\n}\n\nrevision() {\n  locals.documentChanged = true\n  $emit('document-revision')\n}\n\nsave() {\n  locals.documentChanged = false\n  $emit('document-save')\n}\n\nreset() {\n  locals.documentChanged = false\n  $emit('toolbar', 'reset')\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-10-21T10:25:07+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-10-21T10:49:44+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1666349384297,"ct":1666347907147,"a_depth":4,"a":["apps","cf914a7f-ff5f-4598-80f1-63c9129e0a71","d69a62e9-a61f-42bf-9ae9-7983b87bf587","cb2adf77-7636-41a7-9a16-1610b06fa91e"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","77ee8815-2c3a-4bb5-abd9-90541a545a24","1cc4b977-c14d-4587-af47-d6ac230f60b3"],"a_depth":3,"a_forms":["folder","application-form","design-folder"],"created":{"at":"2022-05-04T14:56:15+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1720684627137,"data":{"aliases":[],"controller":"class ToolbarController {\n  async init() {\n    locals.render = false\n\n    locals.listFormId = params.listFormId\n    \n    if (!params.listFormId) {\n      const form = await Aeppic.getFormForDocument(document)\n\n      if (form.data.allowedChildrenForms.length) {\n        locals.listFormId = form.data.allowedChildrenForms[0].id\n      }\n    }\n\n    locals.render = true\n  }\n\n  get childrenForms() {\n    if (!params.childrenForms) {\n      return []\n    }\n\n    if (Array.isArray(params.childrenForms)) {\n      return params.childrenForms\n    }\n\n    return [params.childrenForms]\n  }\n}\n ","css":"","description":"","name":"rd:toolbar","packages":[],"template":"<div class=\"h-full flex items-center xh-[50px] xpx-4 gap-4\"\n :data-test=\"'design' + '_' + design.data.name + '_' + 'documentForm_' + document.f.text\"\n>\n  <ae-layout\n    layout-id=\"262e95e6-f1f8-477c-834b-89d533027e1e\"\n    :param-document=\"document\"\n    :param-no-dialog=\"!params.showDialog\"\n    :param-commands=\"params.commands\"\n    :param-loading-text=\"params.loadingText\"\n    v-if=\"!params.readonly && !params.disableNew && !controller.childrenForms.length\"\n  ></ae-layout>\n\n  <ae-layout\n    layout-id=\"9d4a5e7b-8604-48b1-b525-d7b357997a6e\"\n    :param-document=\"document\"\n    v-if=\"!params.readonly && !params.disableNew && controller.childrenForms.length\"\n  ></ae-layout>\n\n  <ae-layout\n    v-if=\"locals.render\"\n    layout-id=\"98daed5e-24e9-4ef5-b10c-b4b658123513\"\n    @filter=\"$emit('filter', $event)\"\n    @sort=\"$emit('sort', $event)\"\n    :params=\"{ listFormId: locals.listFormId, \n      disableSortFilter: params.disableSortFilter, \n      disableSort: params.disableSort, \n      disableFilter: params.disableFilter, \n      disableSearch: params.disableSearch, \n      filterFields:params.filterFields, \n      sortFields:params.sortFields, \n      initialSort: params.initialSort,\n      document: document,\n      storageKey: params.storageKey,\n      initialFocusSearch: params.initialFocusSearch,\n    }\"\n    class=\"flex-1\"\n  ></ae-layout>\n\n  <ae-design\n    name=\"rd:views\"\n    :document=\"document\"\n    @selected=\"$emit('view', $event)\"\n    :param-views=\"params.views\"\n    :param-persist-view=\"params.persistView\"\n    :param-view-persistance-key=\"params.viewPersistanceKey\"\n    :param-window-width=\"params.windowWidth\"\n  ></ae-design>\n\n  <template v-if=\"params.showMoreActions\">\n    <ae-layout layout-id=\"2ad0619d-792e-40ea-9e76-f7801593f6f8\" :param-document=\"document\"></ae-layout>\n    <ae-layout layout-id=\"fc349b35-90c8-43c6-a13d-e4bf52dfc28a\" :param-document=\"document\"></ae-layout>\n  </template>\n\n  <ae-layout layout-id=\"d1bbb072-bf50-4d51-b1bd-685c1a9f7844\" :param-document=\"document\"></ae-layout>\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"accb1ce2-d7c5-460e-973b-43ad77ef16ad","inheritedLocks":[null,null,null,null],"locks":[],"meta":{},"modified":{"at":"2026-05-05T12:37:06+00:00","backedBy":"","by":"09763886-6748-4a56-8e0e-54a2293ee96b","client":"server","from":"","impersonatedBy":""},"p":"1cc4b977-c14d-4587-af47-d6ac230f60b3","previous":{"v":"29c678cd829f0020"},"stamps":[],"t":1777984626230,"v":"ffbbca422e871f36"},{"id":"f5bff7f3-2346-4d7f-ac02-45818ede59c8","v":"440b20dbc5d24f57","previous":{"v":"e6d595ba38616fbf"},"p":"1ec5237d-463a-417f-8dac-5bbbbc2e35b7","f":{"id":"design-form","v":"22a757f630104010","text":"Design"},"data":{"name":"rd:two-column-list-actions","template":"<ae-layout\n  v-if=\"locals.isAdmin\"\n  layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n  param-icon=\"far fa-user-secret\"\n  param-title=\"Mitarbeiter von deaktivierten Accounts anzeigen\"\n  @selected=\"controller.toggle()\"\n  param-border=\"border border-secondary-200\"\n  :param-primary=\"locals.showHidden\"\n></ae-layout>\n","css":"","controller":"class Controller {\n  async init() {\n    locals.showHidden = false\n    locals.isAdmin = false\n    const commandResult = await Aeppic.Commands.execute('737b73aa-19c8-47e0-af7b-f70b2114345b', document, { Account: Aeppic.Account })\n    locals.isAdmin = commandResult.ok && commandResult.value === true\n  }\n\n  toggle() {\n    locals.showHidden = !locals.showHidden\n    $emit('toggle-hidden')\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-12-13T08:52:05+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-12-13T09:16:08+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1734081368981,"ct":1734079925179,"a_depth":4,"a":["apps","144e85c0-d7f9-4b20-8928-be30f0c78bda","8e6ee7d3-9122-4a2e-8aaf-9fb3bd204b23","1ec5237d-463a-417f-8dac-5bbbbc2e35b7"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"3acf1886-d5ff-444b-aeae-03a09461cd69","v":"0c4038ba5df961a1","previous":{"v":"8c2d8a7b2738b3d8","p":"fallback-designs","a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"]},"p":"1cc4b977-c14d-4587-af47-d6ac230f60b3","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:undefined-fields","template":"<div class=\"overflow-auto bg-white h-full\">\n  <div class=\"text-lg flex justify-between items-center px-4  bg-gray-50\">\n    <div class=\"py-1 text-base pt-2 pb-2 overflow-hidden\">\n      <div class=\"text-sm text-neutral-500\">\n        Felder hinzufügen\n      </div>\n    </div>\n  </div>\n      \n\n  <div v-if=\"locals.form\" class=\"flex flex-col px-4 py-1 gap-1\">\n      <div v-for=\"field of locals.undefinedFields\">\n        <ae-layout  layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n                    :param-text=\"locals.form.getPlaceholder(field.name).label\"\n                    param-icon=\"far fa-plus-square\"\n                    @selected=\"controller.setFieldDefault(field)\"\n        > \n      </ae-layout>\n    </div>\n  </div>\n\n  <div class=\"text-lg flex justify-between items-center px-4  bg-gray-50\">\n    <div class=\"py-1 text-base pt-2 pb-2 overflow-hidden\">\n      <div class=\"text-sm text-neutral-500\">\n        Felder entfernen\n      </div>\n    </div>\n  </div>\n      \n\n  <div v-if=\"locals.form\" class=\"flex flex-col px-4 py-1 gap-1\">\n      <div v-for=\"field of locals.definedFields\">\n        <ae-layout  layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n                    :param-text=\"locals.form.getPlaceholder(field.name).label\"\n                    param-icon=\"far fa-minus-square\"\n                    @selected=\"controller.unsetField(field)\"\n        > \n      </ae-layout>\n    </div>\n  </div>\n</div>\n\n<!-- <pre>\n  {{ locals.undefinedFields }}\n</pre> -->","css":"","controller":"class Controller {\n  async init() {\n    locals.form = null\n    locals.undefineableFields = []\n    locals.definedFields = []\n\n    const form = await Aeppic.getFormForDocument(document)\n\n    console.log({ fields: form.fields })\n    // console.log({ undefinedFields })\n    locals.form = form\n\n    this._updateUndefined(document)\n\n    Aeppic.watch(document, (doc) => this._updateUndefined(doc))\n  }\n  \n  _updateUndefined(doc) {\n    const { undefinedFields, definedFields } = locals.form.fields.reduce((result, field) => {\n      if (field.tags?.defined === true) {\n        return result\n      }\n      \n      if (locals.form.isUndefinedField(doc, field.name)) {\n        result.undefinedFields.push(field)\n      } else {\n        result.definedFields.push(field)\n      }\n\n      return result\n    }, { undefinedFields: [], definedFields: [] })\n    \n    locals.undefinedFields = undefinedFields\n    locals.definedFields = definedFields\n  }\n\n  async setFieldDefault(field) {\n    const editable = await Aeppic.edit(document)\n\n    if (field.cardinality) {\n      editable.data[field.name] = []\n    } else {\n      editable.data[field.name] = field.defaultValue\n    }\n    Aeppic.save(editable)\n  }\n\n  async unsetField(field) {\n    const editable = await Aeppic.edit(document)\n    editable.data[field.name] = undefined\n    Aeppic.save(editable)\n  }\n}\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-07-27T09:46:44+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-07-31T11:38:17+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1767870469092,"ct":1690451204332,"a_depth":3,"a":["apps","77ee8815-2c3a-4bb5-abd9-90541a545a24","1cc4b977-c14d-4587-af47-d6ac230f60b3"],"a_forms":["folder","application-form","design-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"meta":{"modified":{"at":"2026-01-08T11:07:49+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":"","impersonatedBy":"","from":"","client":"server"}}},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","02132d06-c73b-4101-bde0-2fe98224a35a"],"a_depth":3,"a_forms":["folder","application-form","design-folder"],"created":{"at":"2026-01-19T11:31:27+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"ct":1768822287399,"data":{"aliases":[],"controller":"class Controller {\n  init() {\n    if (!params.fieldName) {\n      throw new Error('Provide params.fieldName')\n    }\n\n    const formsQuery = params.forms ? `(${params.forms.map((fId) => `f.id:${fId}`).join(' OR ')})` : ''\n\n    locals.search = `a:${document.a[0]} ${formsQuery} ${params.fieldName}:${document.id}`\n  }\n}\n","css":"","description":"","name":"rd:usage-list","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<div class=\"mx-auto max-w-5xl h-full\">\n  <div class=\"bg-white rounded-md p-4 xl:shadow flex flex-col overflow-auto h-full\">\n    <ae-list\n      list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\"\n      :root-document-id=\"document.a[0]\"\n      :search=\"locals.search\"\n      :sort=\"{ field: 'created.at', descending: true }\"\n      @selected=\"Aeppic.drillInto($event, arguments[1])\"\n      :params=\"{ \n        enableFilterBar: true, \n        sortFields: 'data.name,data.identifier,created.at,modified.at', \n      filterFields: params.fieldName, \n      design: 'rd:card', \n      designParams: { hidePath: true },\n      emptyText: 'Keine Dokumente referenzieren ' + document.f.text,\n      divide: true, \n    }\"\n    ></ae-list>\n    <!-- {{locals.search}} -->\n  </div>\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"e5fff797-dcc4-4932-a4af-21446675568f","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2026-01-19T12:51:02+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"p":"02132d06-c73b-4101-bde0-2fe98224a35a","previous":{"v":"eacb1a145be5277e"},"stamps":[],"t":1768827062228,"v":"b5c99acfdb5da775"},{"a":["system","b2533f7b-ea85-4680-99ed-d8e11be641b9","0e6939d6-9b93-4165-b6bd-977e4da881f3","627f5b74-3baf-45f8-a1d3-a5936839b844","81939b86-a48e-480e-afd1-cb2907568550"],"a_depth":5,"a_forms":["system-folder-form","folder","application-form","form-folder","form"],"created":{"at":"2023-01-05T12:04:17+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1672920257860,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      EmployeeFolder: '1ec5237d-463a-417f-8dac-5bbbbc2e35b7',\n    }\n\n    locals.selected = null\n    locals.searchOptions = { searchAllFields: true }\n    locals.sortedProfiles = []\n\n    const employeeFolder = await Aeppic.findOne(`p:${document.p} f.id:${this.FORMS.EmployeeFolder}`)\n\n    const accounts = await Aeppic.find(`a:${employeeFolder.id} f.id:account`, { size: 2000, includeHidden: true, sort: 'data.name' })\n    const profiles = await Promise.all(accounts.map(a => Aeppic.getProfilePageForAccount(a)))  \n\n    profiles.sort((a,b) => {\n    return a && b ? a.data.nachname.localeCompare(b.data.nachname)\n          : a ? -1\n          : b ? 1\n          : 0 \n    }) \n\n    locals.accounts = accounts\n    locals.sortedProfiles.splice(0, locals.sortedProfiles.length, ...profiles)\n  }\n\n  async navigateTo(profile) {\n    locals.selected = await Aeppic.getAccountForProfilePage(profile)\n    console.log({ profile, selected: locals.selected})\n  }\n}","css":"","description":"","name":"rd:users","packages":[],"template":"<!-- <div class=\"bp-card bp-card--bordered\" style=\"margin-bottom:var(--ae-space-2);\">\n  Anzahl der Bizpin-Accounts: {{ locals.sortedProfiles.length }}\n</div> -->\n\n<ae-list  :documents=\"locals.sortedProfiles\"\n          list-id=\"40db6eb8-f486-4701-9bc5-e804be3fcaef\"\n          @selected=\"controller.navigateTo($event)\"\n          :search-options=\"locals.searchOptions\"\n          class=\"h-full\"  \n          :param-enable-search=\"true\"\n          :param-enable-sort=\"true\"\n          param-design=\"rd:security-table-card\"\n          :param-root-document-id=\"document.id\"\n          param-seperator-field=\"nachname\" \n          :param-selected=\"locals.selected\"\n          param-list-form-id=\"d2ac3563-3c3f-4f02-b923-9b67abf98d10\"\n          :param-window-width=\"params.windowWidth\"\n          :param-design-params=\"{ accounts: locals.accounts }\"\n></ae-list> "},"f":{"id":"design-form","text":"Design","v":"c2d9ae57c7a46896"},"id":"399d0e58-065f-47f2-a8b6-96c3389e7d4a","inheritedLocks":[null,null,null,null,null,null],"locks":[],"modified":{"at":"2025-11-27T12:19:08+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"81939b86-a48e-480e-afd1-cb2907568550","previous":{"v":"4d99df0043478b72"},"stamps":[],"t":1764245948492,"v":"28b7898bd404d3e9"},{"id":"28b77072-9336-4f3d-b93f-8c3d1fcd7c1f","v":"3fe5bbd817d903bc","previous":{"v":"92c0369d706dde10","p":"fallback-designs","a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"]},"p":"1cc4b977-c14d-4587-af47-d6ac230f60b3","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"rd:validity-button","template":"  <div v-if=\"locals.hasDocumentValidity\">\n    <div v-if=\"locals.hasAllEditableDocumentDataValid\">\n      <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n                :param-icon=\"data.allEditableDocumentDataValid ? 'fa fa-badge-check text-green-500' : 'fa fa-badge-percent text-error-500'\"\n                param-border=\"true\"\n                :param-title=\"data.allEditableDocumentDataValid ? 'Alle von Ihnen ausfüllbaren erforderlichen Felder (inkl. Unter-Formulare) sind ausgefüllt' : 'Nicht alle von Ihnen ausfüllbaren erforderlichen Felder (ggf. auch in Unter-Formularen) sind ausgefüllt'\"\n                :param-text=\"!params.onlyIcon && (data.allEditableDocumentDataValid ? 'Alle von Ihnen ausfüllbaren Felder ausgefüllt' : 'Nicht alle von Ihnen ausfüllbaren Datenfelder vollständig')\"\n                @selected=\"controller.showValidity($event)\"\n                param-classes=\"text-sm\"\n                :param-text-wrap=\"true\"\n      ></ae-layout>\n    </div>\n    <div v-else-if=\"locals.hasAllDocumentDataValid\">\n      <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n                :param-icon=\"data.allDocumentDataValid ? 'fa fa-badge-check text-green-500' : 'fa fa-badge text-error-500'\"\n                param-border=\"true\"\n                :param-title=\"data.allDocumentDataValid ? 'Alle erforderlichen Felder (inkl. Unter-Formulare) sind ausgefüllt' : 'Nicht alle erforderlichen Felder (ggf. auch in Unter-Formularen) sind ausgefüllt'\"\n                :param-text=\"!params.onlyIcon && (data.allDocumentDataValid ? 'Alle Felder ausgefüllt' : 'Nicht alle Datenfelder vollständig')\"\n                @selected=\"controller.showValidity($event)\"\n                param-classes=\"text-sm\"\n                :param-text-wrap=\"true\"\n      ></ae-layout>\n    </div>\n    <div v-else-if=\"locals.hasDocumentDataValid\">\n      <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n                :param-icon=\"data.documentDataValid ? 'far fa-badge-check text-green-500' : 'far fa-badge-percent text-error-500'\"\n                param-border=\"true\"\n                :param-title=\"data.documentDataValid ? 'Alle erforderlichen Felder ausgefüllt' : 'Nicht alle erforderlichen Felder ausgefüllt'\"\n                :param-text=\"!params.onlyIcon && (data.documentDataValid ? 'Alle Felder ausgefüllt' : 'Datenfelder nicht vollständig')\"\n                @selected=\"controller.showValidity($event)\"\n                param-classes=\"text-sm\"\n                ref=\"button\"\n                :param-text-wrap=\"true\"\n      ></ae-layout>\n      </div>\n      \n      <ae-popup ref=\"validity\" @close=\"locals.showValidity = false\" placement=\"bottom\">\n        <div>\n          <div v-if=\"locals.showValidity\" class=\"p-1\">\n            <div v-if=\"locals.validityErrors\" class=\"flex flex-col gap-4\">\n              <div v-for=\"(values, type) in locals.readableByType\" class=\"flex flex-col gap-2\">\n                <label class=\"font-bold\">{{Aeppic.translate('translate:error:fields:' + type) }}</label>\n\n                <ul class=\"list-inside list-disc\">\n                  <li v-for=\"error of values\">\n                  {{ error }}\n                  </li>\n                </ul>\n                \n              </div>\n            </div>\n            <div v-else>\n              <ae-icon class=\"far fa-stars text-lg\"></ae-icon>  Alle erforderlichen Felder wurden ausgefüllt. \n            </div>\n          </div>\n        </div>\n      </ae-popup>\n  </div>","css":"","controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      AntragContainer: '0bb3d600-faf0-4a5c-b49f-7994d234ae76'\n    }\n\n    locals.showValidity = false\n\n    locals.validityErrors = null\n    locals.readableByType = {}\n    locals.toastImageSrc = ''\n    \n    // hasAllEditableDocumentDataValid is the highest meaning/priority, then allDocumentDataValid, then documentDataValid\n    locals.hasAllEditableDocumentDataValid = 'allEditableDocumentDataValid' in document.data\n    locals.hasAllDocumentDataValid = 'allDocumentDataValid' in document.data\n    locals.hasDocumentDataValid = 'documentDataValid' in document.data\n\n    locals.hasDocumentValidity = locals.hasDocumentDataValid || locals.hasAllDocumentDataValid || locals.hasAllEditableDocumentDataValid\n\n    if (locals.hasDocumentValidity) {\n      if (locals.hasAllEditableDocumentDataValid) {\n        locals.isAllEditableDocumentDataValid = document.data.allEditableDocumentDataValid\n\n        if (locals.isAllEditableDocumentDataValid) {\n          $emit('valid')\n        } else {\n          $emit('invalid')\n        }\n      } else if (locals.hasAllDocumentDataValid) {\n        locals.isAllDocumentDataValid = document.data.allDocumentDataValid\n\n        if (locals.isAllDocumentDataValid) {\n          $emit('valid')\n        } else {\n          $emit('invalid')\n        }\n      } else if (locals.hasDocumentDataValid) {\n        locals.isDocumentDataValid = document.data.documentDataValid\n\n        if (locals.isDocumentDataValid) {\n          $emit('valid')\n        } else {\n          $emit('invalid')\n        }\n      }\n\n      $emit('show')\n    } else {\n      $emit('hide')\n    }\n\n    // if onlyIcon is set, we don't need to watch for changes because the intent for the button is to show the validity (and thus makes the notification good to see)\n    if (params.onlyIcon) {\n      return\n    }\n\n    // locals.toastImageSrc = Aeppic.Content.getSrc(await Aeppic.get('9744abd0-017e-4616-9feb-8e6b75531dec'), 'file')\n\n    // let isFirstWatch = false\n    // let userChangedTheDocument = false\n\n    // let count = 0\n    \n    // Aeppic.watch(document, async (doc) => {\n    //   count += 1\n\n    //   if (!isFirstWatch) {\n    //     isFirstWatch = true\n    //     return\n    //   }\n\n    //   if (!userChangedTheDocument && doc.modified.by === Aeppic.Account.id) {\n    //     userChangedTheDocument = true\n    //   }\n\n    //   // console.log('watch', doc.f.text, doc.id, count, { userChangedTheDocument }, doc.previous?.patch)\n\n    //   // the if-case are in order of priority (shall be same as in the template)\n    //   if ((!locals.hasAllEditableDocumentDataValid || doc.data.allEditableDocumentDataValid === false) &&\n    //       (!locals.hasAllDocumentDataValid || doc.data.allDocumentDataValid === false) &&\n    //       (!locals.hasDocumentDataValid || doc.data.documentDataValid === false)\n    //   ) {\n    //     return \n    //   }\n\n    //   if (!userChangedTheDocument || \n    //       !doc.previous ||\n    //       ['allEditableDocumentDataValid', 'allDocumentDataValid', 'documentDataValid'].some(fieldName => fieldName in doc.previous.patch) === false\n    //     ) {\n    //       return\n    //   }\n      \n    //   const antragContainer = await Aeppic.get(doc.a[doc.a_forms.findIndex(aForm => aForm === this.FORMS.AntragContainer)])\n    //   // const invalidDocuments = await Aeppic.find(`a:${antragContainer.id} (data.documentDataValid:false OR data.allDocumentDataValid:false OR data.allEditableDocumentDataValid:false)`)\n    //   const invalidDocuments = await Aeppic.find(`a:${antragContainer.id} data.allEditableDocumentDataValid:false`)\n\n    //   // make sure to exclude current document from the list of invalid documents (just to be 100% sure)\n    //   const stillInvalidDocuments = invalidDocuments.filter(invalidDocument => invalidDocument.id !== doc.id)\n\n    //   let text = 'Vielen Dank!'\n\n    //   if (stillInvalidDocuments.length) {\n    //     text += ' Bitte vervollständigen Sie außerdem: ' + stillInvalidDocuments.map(invalidDocument => invalidDocument.f.text).join(', ') \n    //   }\n\n    //   // console.log({ stillInvalidDocuments, text, invalidDocuments})\n\n\n    //   Aeppic._emitter.emit('bizpin:show-toast', {\n    //     title: `Alle Felder ausgefüllt: ${doc.f.text} `,\n    //     text: text,\n    //     imageSrc: locals.toastImageSrc,\n    //     timeout: -1,\n    //   })\n    // })\n  }\n\n  async showValidity(event) {\n    locals.showValidity = true\n\n    locals.validityErrors = null\n\n    if (locals.hasAllEditableDocumentDataValid) {\n      if (!data.allEditableDocumentDataValid) {\n        locals.validityErrors = { 'description': { required: 'Es wurden nicht alle von Ihnen ausfüllbaren Felder ausgefüllt.' } }\n      }\n    } else if (locals.hasAllDocumentDataValid && !data.allDocumentDataValid) {\n      locals.validityErrors = { 'description': { required: 'In verknüpften Dokumenten wurden nicht alle Felder ausgefüllt.' } }\n    } else if (locals.hasDocumentDataValid && !data.documentDataValid) {\n      const form = await Aeppic.getFormForDocument(document)\n      const errors = form.validateDocumentData(document.data)\n\n      locals.validityErrors = errors\n    } \n\n    const readableByType = {}\n\n    for (const fieldName in locals.validityErrors) {\n      const error = locals.validityErrors[fieldName]\n\n      for (const type in error) {\n        if (!readableByType[type]) {\n          readableByType[type] = []\n        }\n\n        readableByType[type].push(error[type])\n      } \n    }\n  \n    locals.readableByType = readableByType\n\n    $refs.validity.show(event)\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-11-27T14:24:57+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2025-03-14T16:00:20+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1767870469092,"ct":1701095097485,"a_depth":3,"a":["apps","77ee8815-2c3a-4bb5-abd9-90541a545a24","1cc4b977-c14d-4587-af47-d6ac230f60b3"],"a_forms":["folder","application-form","design-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"meta":{"modified":{"at":"2026-01-08T11:07:49+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":"","impersonatedBy":"","from":"","client":"server"}}},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","11eadb22-66ab-4417-8b51-298895b44d0d"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"96b8daa4-066b-4cd9-961e-ddd4b68fd581","text":"rd:vertical-bar","v":"b70f6a00d3ac4294"},"created":{"at":"2026-04-27T13:30:13+00:00","backedBy":"","by":"09763886-6748-4a56-8e0e-54a2293ee96b","client":"server","from":"","impersonatedBy":""},"ct":1777296613865,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:vertical-bar","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<div class=\"h-full w-5 flex items-stretch\">\n<div class=\"w-full truncate [writing-mode:vertical-lr] rounded-md text-sm\" \n:style=\"{ 'background-color': data.color || 'white' }\" :title=\"data.name\">\n  <span class=\"py-1\">\n  {{data.name}}\n  </span>\n</div>\n</div>"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"60454d6e-6fa9-4048-b7c4-7a91a28f5880","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-04-27T13:30:13+00:00","backedBy":"","by":"09763886-6748-4a56-8e0e-54a2293ee96b","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"96b8daa4-066b-4cd9-961e-ddd4b68fd581","text":"rd:vertical-bar","v":"b70f6a00d3ac4294"},"p":"11eadb22-66ab-4417-8b51-298895b44d0d","stamps":[],"t":1777296613866,"v":"initial"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","3f88574e-aaec-484a-8dc4-bbdcb085186d"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2026-01-19T10:41:08+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"ct":1768819268192,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:vertical-bar","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<div class=\"h-full w-5 flex items-stretch\">\n<div class=\"w-full truncate [writing-mode:vertical-lr] rounded-md text-sm\" \n:style=\"{ 'background-color': data.color || 'white' }\" :title=\"data.name\">\n  <span class=\"py-1\">\n  {{data.name}}\n  </span>\n</div>\n</div>"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"96b8daa4-066b-4cd9-961e-ddd4b68fd581","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-01-19T11:28:21+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"p":"3f88574e-aaec-484a-8dc4-bbdcb085186d","previous":{"v":"f4031d69f4044af6"},"stamps":[],"t":1768822101098,"v":"b70f6a00d3ac4294"},{"a":["apps","77ee8815-2c3a-4bb5-abd9-90541a545a24","1cc4b977-c14d-4587-af47-d6ac230f60b3"],"a_depth":3,"a_forms":["folder","application-form","design-folder"],"created":{"at":"2022-05-11T10:25:10+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1720684627137,"data":{"aliases":[],"controller":"class Controller {\n  init() {\n    locals.showDropdown = params.windowWidth < 1350\n    locals.tabs = params.views\n    locals.active = null\n\n    this.persistanceKey = `bp-pref_${params.viewPersistanceKey || document.f.id}_page-view`\n\n    this.updateVisibility(locals.tabs)\n\n    if (!locals.tabs || locals.tabs.length === 0) {\n      return\n    }\n\n\n    // EXAMPLE\n    // locals.tabs = [\n    //   { identifier: 'customer', text: 'Kunde', icon: 'far fa-user' },\n    //   { identifier: 'files', text: 'Dateien' },\n    //   { identifier: 'projects', text: 'Aufgaben' },\n    //   { identifier: 'contracts', text: 'Verträge' },\n    // ]\n\n    if (params.persistView && Aeppic.LocalStorage.isAvailable) {\n      const lastActive = Aeppic.LocalStorage.getValue(this.persistanceKey)\n\n      if (lastActive) {\n        const tab = locals.tabs.find(tab => tab.identifier === lastActive)\n\n        if (tab) {\n          locals.active = tab\n        }\n      }\n    }\n\n    if (!locals.active) {\n      const firstTab = locals.tabs[0]\n      locals.active = firstTab \n\n      $emit('selected', firstTab.identifier) \n    } else {\n      $emit('selected', locals.active.identifier) \n    }\n\n    watchParam('windowWidth', (param) => {\n      locals.showDropdown = param < 1350\n    })\n\n    watchParam('views', (newViews) => {\n      locals.tabs = newViews\n      this.updateVisibility(locals.tabs)\n    })\n  }\n\n  onTab(tab) {\n    locals.active = tab\n\n    if (params.persistView && Aeppic.LocalStorage.isAvailable) {\n      Aeppic.LocalStorage.setValue(this.persistanceKey, tab.identifier)\n    }\n\n    $emit('selected', tab.identifier)\n\n    $refs.popup?.close()\n  }\n\n  updateVisibility(tabs) {\n    if (tabs && tabs.length > 0) {\n      showComponent()\n    } else {\n      hideComponent()\n    }\n  }\n} ","css":"","description":"","name":"rd:views","packages":[],"template":"<div v-if=\"locals.tabs && locals.tabs.length > 0\">\n  <ae-layout layout-id=\"017828fa-4448-499d-bfaf-45ef6b470b43\"\n            :param-buttons=\"locals.tabs\"\n            :param-collapsed=\"locals.showDropdown\"\n            :param-selected-identifier=\"locals.active?.identifier\"\n            @selected=\"controller.onTab($event)\"\n            param-border=\"border-slate-200\"\n            :param-disabled=\"locals.tabs?.length <= 1\"\n  ></ae-layout>\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"61842d18-cf1e-434c-a24c-c035c28644bd","inheritedLocks":[null,null,null,null],"locks":[],"meta":{},"modified":{"at":"2026-02-19T13:13:29+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"p":"1cc4b977-c14d-4587-af47-d6ac230f60b3","previous":{"v":"7b16133193221804"},"stamps":[],"t":1771506809855,"v":"8dc26c6448f36f79"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","8c113cd0-af90-42fa-aa05-f67809d0a9a5"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2025-08-06T12:54:40+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1754485152888,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.image = false\n    locals.comment = data.comment\n    locals.status = data.status\n    locals.documentOfRecordingForm = data.recordingForm?.id && (await Aeppic.new(data.recordingForm.id, document))\n    locals.editableDocument = await Aeppic.edit(document)\n    locals.form = await Aeppic.getFormForDocument(document)\n    locals.intervalOptions = locals.form.getField('interval')?.settings.options\n\n    this.saveStatusDecounce = Aeppic.debounce(async (value) => {\n      const editable = await Aeppic.edit(document)\n      editable.data.status = value\n      Aeppic.save(editable)\n    }, 800)\n  }\n\n  async setData(fieldName, value) {\n    if (params.readonly) {\n      return\n    }\n\n    // update locals.status immediatly to respond to user click. But delay save\n    if (fieldName === 'status') {\n      locals.status = value\n      this.saveStatusDecounce(value)\n      return\n    }\n\n    const editable = await Aeppic.edit(document)\n    editable.data[fieldName] = value\n    Aeppic.save(editable)\n  }\n\n  get bemerkungNoetig() {\n    return document.data.status === 'FAULTY' || document.data.requireComment\n  }\n\n  get hatBemerkung() {\n    if (!document.data.comment || document.data.comment.trim() === '') {\n      return false\n    }\n\n    return true\n  }\n\n  get bemerkungFehlt() {\n    return this.bemerkungNoetig && !this.hatBemerkung\n  }\n}\n","css":"","description":"","name":"rd:work","packages":[],"template":"<div class=\"flex flex-col gap-4 @container\">\n  <!-- Part One -->\n  <div\n    class=\"grid auto-rows-auto grid-cols-1 @md:grid-cols-[1fr_200px] @xl:grid-cols-[60%_1fr_200px] gap-4 p-2\"\n  >\n    <!-- Task Description -->\n    <div class=\"flex-1 flex gap-2 col-span-1 @md:col-span-1 @xl:col-span-2\">\n      <section class=\"min-w-[50px]\">{{data.identifier}}</section>\n      \n      <section class=\"flex-1\">\n        {{data.activity}}\n        <!--         <ae-design name=\"entry-description\" :document-id=\"data.eintrag.id\"></ae-design>  -->\n      </section>\n    </div>\n\n    <!-- Cycle Button -->\n    <section\n      class=\"xmin-w-[110px] min-h-[60px] x-mb-3 x-mt-2 border border-dashed xp-1 rounded-md col-span-1 size-full\"\n      :class=\"{ 'border-secondary-500': locals.status === 'TODO', 'bg-red-100': locals.status === 'FAULTY', 'bg-green-100': locals.status === 'OK', 'bg-amber-100': locals.status === 'OK_CORRECTIONS', 'bg-slate-100': locals.status === 'NOT_APPLICABLE'  }\"\n    >\n      <button\n        class=\"h-full w-full\"\n        :disabled=\"params.readonly\"\n        v-if=\"locals.status === 'TODO'\"\n        @click.stop=\"controller.setData('status', 'OK')\"\n      >\n        <ae-icon class=\"far fa-square text-lg\"></ae-icon>\n        Zu prüfen\n      </button>\n      <button\n        class=\"h-full w-full\"\n        :disabled=\"params.readonly\"\n        v-else-if=\"locals.status === 'OK'\"\n        @click.stop=\"controller.setData('status', 'OK_CORRECTIONS')\"\n      >\n        <ae-icon class=\"far fa-check text-lg\"></ae-icon>\n        In Ordnung\n      </button>\n      <button\n        class=\"h-full w-full\"\n        :disabled=\"params.readonly\"\n        v-else-if=\"locals.status === 'OK_CORRECTIONS'\"\n        @click.stop=\"controller.setData('status', 'FAULTY')\"\n      >\n        <ae-icon class=\"far fa-check text-lg\"></ae-icon>\n        In Ordnung (korrigiert)\n      </button>\n      <button\n        class=\"h-full w-full\"\n        :disabled=\"params.readonly\"\n        v-else-if=\"locals.status === 'FAULTY'\"\n        @click.stop=\"controller.setData('status', 'NOT_APPLICABLE')\"\n      >\n        <ae-icon class=\"far fa-times text-lg\"></ae-icon>\n        Mangel\n      </button>\n      <button\n        class=\"h-full w-full\"\n        :disabled=\"params.readonly\"\n        v-else-if=\"locals.status === 'NOT_APPLICABLE'\"\n        @click.stop=\"controller.setData('status', 'TODO')\"\n      >\n        <ae-icon class=\"far fa-times text-lg\"></ae-icon>\n        Entfällt\n      </button>\n    </section>\n\n    <!-- Bemerkung Feld -->\n    <section class=\"col-span-1 @md:col-span-2 @xl:col-span-1\">\n      <textarea\n        class=\"flex-1 w-full h-full min-h-[70px] rounded-lg placeholder:p-2 p-2 border\"\n        @blur=\"controller.setData('comment', locals.comment)\"\n        :disabled=\"params.readonly\"\n        :class=\"{ 'border-red-500': controller.bemerkungFehlt, 'border-transparent': !controller.bemerkungFehlt }\"\n        type=\"text\"\n        v-model=\"locals.comment\"\n        placeholder=\"Bemerkung\"\n      ></textarea>\n    </section>\n\n    <section class=\"flex-1 flex gap-1 col-span-1 @md:col-span-2 @xl:col-span-2\">\n      <!-- Ergebniskategorie -->\n      <div\n        class=\"flex-1 flex flex-col\"\n      >\n        <span class=\"text-neutral-600\">\n          Ergebniskategorien\n        </span>\n        <ae-control\n          class=\"flex-1 bg-white rounded-md\"\n          :document=\"locals.editableDocument\"\n          field-name=\"resultCategories\"\n          name=\"rd:ref\"\n          :readonly=\"params.readonly\"\n          :params=\"{ ancestorForm: 'c69a0c1c-6c53-40c2-87e8-5ace866bf1df', hidePath: true }\"\n          @field-updated=\"controller.setData($event.fieldName, $event.value)\"\n        ></ae-control>\n      </div>\n\n      <!-- Image Button -->\n      <button class=\"ae-button\" @click.stop=\"locals.image = !locals.image\" :disabled=\"params.readonly\">\n        <ae-icon class=\"fa fa-image\"></ae-icon>\n      </button>\n    </section>\n\n\n    <!-- Interval -->\n    <section v-if=\"data.intervalLength > 0\" class=\"col-span-1 @md:col-span-2 @xl:col-span-3 font-bold p-1 underline underline-offset-2 decoration-primary-400 \">\n      <label\n        class=\"text-neutral-600 mt-4 mb-2 italic\"\n      >\n        Interval:\n      </label>\n\n      {{data.intervalLength}}\n      <!-- {{data.interval}} -->\n      {{locals.intervalOptions?.find(o => o.value === data.interval)?.display}}\n    </section>\n\n    <!-- Durchführungshinweise -->\n    <section class=\"col-span-1 @md:col-span-2 @xl:col-span-3\">\n      <!-- empty instructions have a length of <= 70 -->\n      <label\n        v-if=\"data.instructions?.[0] === '{' ? data.instructions?.length > 70 : data.instructions?.length > 0  || data.instructionImages?.length > 0\" \n        class=\"text-neutral-600 mt-4 mb-2 italic\"\n      >\n        Hinweise zur Durchführung\n      </label>\n\n      <div class=\"xwhitespace-pre-line\" v-if=\"data.instructions?.[0] === '{' ? data.instructions?.length > 70 : data.instructions?.length > 0\">\n        <ae-control\n          name=\"rd:editor-content\"\n          :document=\"document\"\n          field-name=\"instructions\"\n          :readonly=\"true\"\n        ></ae-control>\n        <!-- {{ data.instructions }}  -->\n      </div>\n\n      <div v-if=\"data.instructionImages.length\">\n        <ae-list\n          list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\"\n          :documents=\"data.instructionImages\"\n          :params=\"{ design: 'rd:card', horizontal: true, wrap: true, designParams: { square: true, hideMeta: true }}\"\n          @selected=\"$refs.dialog.$emit('show', $event)\"\n        ></ae-list>\n\n        <ae-layout ref=\"dialog\" layout-id=\"dff662e9-9a83-44d1-97c5-6f7f7f124248\"></ae-layout>\n      </div>\n    </section>\n  </div>\n\n  <!-- Bild speichern -->\n  <section class=\"flex-1 px-2\" v-if=\"locals.image || (data.photos && data.photos.length)\">\n    <ae-form\n      layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\"\n      :document=\"document\"\n      :view=\"{ only: { fields: ['photos']}}\"\n      :auto-save=\"true\"\n      :readonly=\"params.readonly\"\n    ></ae-form>\n  </section>\n\n  <!-- Daten aufnehmen -->\n  <section v-if=\"locals.documentOfRecordingForm\" class=\"mt-8 flex flex-col bg-white rounded-lg border\">\n    <ae-design\n      name=\"rd:recordings\"\n      :document=\"locals.documentOfRecordingForm\"\n      :params=\"{ readonly: params.readonly }\"\n    ></ae-design>\n    <div class=\"flex\">\n      <ae-design\n        class=\"bg-white\"\n        name=\"rd:recording\"\n        :document=\"locals.documentOfRecordingForm\"\n        :params=\"{ readonly: params.readonly }\"\n      ></ae-design>\n    </div>\n  </section>\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"12a3e46a-1559-469c-a462-21dfe99e7aa6","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-05-15T12:40:22+00:00","backedBy":"","by":"09763886-6748-4a56-8e0e-54a2293ee96b","client":"server","from":"","impersonatedBy":""},"p":"8c113cd0-af90-42fa-aa05-f67809d0a9a5","previous":{"v":"90bf377de861920c"},"stamps":[],"t":1778848822344,"v":"6fcdfc8824e19647"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","8c113cd0-af90-42fa-aa05-f67809d0a9a5"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"12a3e46a-1559-469c-a462-21dfe99e7aa6","text":"rd:work","v":"263c69594b3fb599"},"created":{"at":"2026-04-28T08:31:13+00:00","backedBy":"","by":"09763886-6748-4a56-8e0e-54a2293ee96b","client":"server","from":"","impersonatedBy":""},"ct":1777365073992,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.image = false\n    locals.comment = data.comment\n    locals.status = data.status\n    locals.documentOfRecordingForm = data.recordingForm?.id && (await Aeppic.new(data.recordingForm.id, document))\n    locals.form = await Aeppic.getFormForDocument(document)\n    locals.intervalOptions = locals.form.getField('interval')?.settings.options\n\n    this.saveStatusDecounce = Aeppic.debounce(async (value) => {\n      const editable = await Aeppic.edit(document)\n      editable.data.status = value\n      Aeppic.save(editable)\n    }, 800)\n  }\n\n  async setData(fieldName, value) {\n    if (params.readonly) {\n      return\n    }\n\n    // update locals.status immediatly to respond to user click. But delay save\n    if (fieldName === 'status') {\n      locals.status = value\n      this.saveStatusDecounce(value)\n      return\n    }\n\n    const editable = await Aeppic.edit(document)\n    editable.data[fieldName] = value\n    Aeppic.save(editable)\n  }\n\n  get bemerkungNoetig() {\n    return document.data.status === 'FAULTY' || document.data.requireComment\n  }\n\n  get hatBemerkung() {\n    if (!document.data.comment || document.data.comment.trim() === '') {\n      return false\n    }\n\n    return true\n  }\n\n  get bemerkungFehlt() {\n    return this.bemerkungNoetig && !this.hatBemerkung\n  }\n}\n","css":"","description":"","name":"rd:work backup","packages":[],"template":"<div class=\"xborder-t xborder-primary-500 xmt-2 xmb-3 xpt-2 flex flex-col gap-4 @container\">\n  <!-- Part One -->\n  <div\n    class=\"grid grid-rows-auto @xs:grid-cols-[100%] @sm:grid-cols-[200px_auto] @xl:grid-cols-[auto_110px_180px] gap-4\"\n  >\n    <!-- Task Description -->\n    <div class=\"flex-1 flex gap-2\">\n      <section class=\"min-w-[50px]\">{{data.identifier}}</section>\n\n      <section class=\"flex-1\">\n        {{data.activity}}\n        <!--         <ae-design name=\"entry-description\" :document-id=\"data.eintrag.id\"></ae-design>  -->\n      </section>\n    </div>\n\n    <!-- Cycle Button -->\n    <section\n      class=\"min-w-[110px] min-h-[60px] x-mb-3 x-mt-2 border border-dashed p-1 rounded-md\"\n      :class=\"{ 'border-secondary-500': locals.status === 'TODO', 'bg-red-100': locals.status === 'FAULTY', 'bg-green-100': locals.status === 'OK', 'bg-amber-100': locals.status === 'OK_CORRECTIONS', 'bg-slate-100': locals.status === 'NOT_APPLICABLE'  }\"\n    >\n      <button\n        class=\"h-full w-full\"\n        :disabled=\"params.readonly\"\n        v-if=\"locals.status === 'TODO'\"\n        @click.stop=\"controller.setData('status', 'OK')\"\n      >\n        <ae-icon class=\"far fa-square text-lg\"></ae-icon>\n        Zu prüfen\n      </button>\n      <button\n        class=\"h-full w-full\"\n        :disabled=\"params.readonly\"\n        v-else-if=\"locals.status === 'OK'\"\n        @click.stop=\"controller.setData('status', 'OK_CORRECTIONS')\"\n      >\n        <ae-icon class=\"far fa-check text-lg\"></ae-icon>\n        In Ordnung\n      </button>\n      <button\n        class=\"h-full w-full\"\n        :disabled=\"params.readonly\"\n        v-else-if=\"locals.status === 'OK_CORRECTIONS'\"\n        @click.stop=\"controller.setData('status', 'FAULTY')\"\n      >\n        <ae-icon class=\"far fa-check text-lg\"></ae-icon>\n        In Ordnung (korrigiert)\n      </button>\n      <button\n        class=\"h-full w-full\"\n        :disabled=\"params.readonly\"\n        v-else-if=\"locals.status === 'OK_CORRECTIONS'\"\n        @click.stop=\"controller.setData('status', 'FAULTY')\"\n      >\n        <ae-icon class=\"far fa-check text-lg\"></ae-icon>\n        In Ordnung (korrigiert)\n      </button>\n      <button\n        class=\"h-full w-full\"\n        :disabled=\"params.readonly\"\n        v-else-if=\"locals.status === 'FAULTY'\"\n        @click.stop=\"controller.setData('status', 'NOT_APPLICABLE')\"\n      >\n        <ae-icon class=\"far fa-times text-lg\"></ae-icon>\n        Mangel\n      </button>\n      <button\n        class=\"h-full w-full\"\n        :disabled=\"params.readonly\"\n        v-else-if=\"locals.status === 'NOT_APPLICABLE'\"\n        @click.stop=\"controller.setData('status', 'TODO')\"\n      >\n        <ae-icon class=\"far fa-times text-lg\"></ae-icon>\n        Entfällt\n      </button>\n    </section>\n\n    <!-- Bemerkung Feld -->\n    <section class=\"flex-1 flex gap-1 @sm:col-span-2 @xl:col-auto\">\n      <textarea\n        class=\"flex-1 w-full h-full min-h-[70px] rounded-lg placeholder:p-2 p-2 border\"\n        @blur=\"controller.setData('comment', locals.comment)\"\n        :disabled=\"params.readonly\"\n        :class=\"{ 'border-red-500': controller.bemerkungFehlt, 'border-transparent': !controller.bemerkungFehlt }\"\n        type=\"text\"\n        v-model=\"locals.comment\"\n        placeholder=\"Bemerkung\"\n      ></textarea>\n\n      <!-- Image Button -->\n      <button class=\"ae-button\" @click.stop=\"locals.image = true\" :disabled=\"params.readonly\">\n        <ae-icon class=\"fa fa-image\"></ae-icon>\n      </button>\n    </section>\n\n    <!-- Interval -->\n    <section v-if=\"data.intervalLength > 0\" class=\"@sm:col-span-2 @xl:col-span-3 font-bold p-1 underline underline-offset-2 decoration-primary-400 \">\n      <label\n        class=\"text-neutral-600 mt-4 mb-2 italic\"\n      >\n        Interval:\n      </label>\n\n      {{data.intervalLength}}\n      <!-- {{data.interval}} -->\n      {{locals.intervalOptions?.find(o => o.value === data.interval)?.display}}\n    </section>\n\n    <!-- Durchführungshinweise -->\n    <section class=\"@sm:col-span-2 @xl:col-span-3\">\n      <!-- empty instructions have a length of <= 70 -->\n      <label\n        v-if=\"data.instructions?.[0] === '{' ? data.instructions?.length > 70 : data.instructions?.length > 0  || data.instructionImages?.length > 0\" \n        class=\"text-neutral-600 mt-4 mb-2 italic\"\n      >\n        Hinweise zur Durchführung\n      </label>\n\n      <div class=\"xwhitespace-pre-line\" v-if=\"data.instructions?.[0] === '{' ? data.instructions?.length > 70 : data.instructions?.length > 0\">\n        <ae-control\n          name=\"rd:editor-content\"\n          :document=\"document\"\n          field-name=\"instructions\"\n          :readonly=\"true\"\n        ></ae-control>\n        <!-- {{ data.instructions }}  -->\n      </div>\n\n      <div v-if=\"data.instructionImages.length\">\n        <ae-list\n          list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\"\n          :documents=\"data.instructionImages\"\n          :params=\"{ design: 'rd:card', horizontal: true, wrap: true, designParams: { square: true, hideMeta: true }}\"\n          @selected=\"$refs.dialog.$emit('show', $event)\"\n        ></ae-list>\n\n        <ae-layout ref=\"dialog\" layout-id=\"dff662e9-9a83-44d1-97c5-6f7f7f124248\"></ae-layout>\n      </div>\n    </section>\n  </div>\n\n  <!-- Bild speichern -->\n  <section class=\"flex-1 px-2\" v-if=\"locals.image || (data.photos && data.photos.length)\">\n    <ae-form\n      layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\"\n      :document=\"document\"\n      :view=\"{ only: { fields: ['photos']}}\"\n      :auto-save=\"true\"\n      :readonly=\"params.readonly\"\n    ></ae-form>\n  </section>\n\n  <!-- Daten aufnehmen -->\n  <section v-if=\"locals.documentOfRecordingForm\" class=\"mt-8 flex flex-col bg-white rounded-lg border\">\n    <ae-design\n      name=\"rd:recordings\"\n      :document=\"locals.documentOfRecordingForm\"\n      :params=\"{ readonly: params.readonly }\"\n    ></ae-design>\n    <div class=\"flex\">\n      <ae-design\n        class=\"bg-white\"\n        name=\"rd:recording\"\n        :document=\"locals.documentOfRecordingForm\"\n        :params=\"{ readonly: params.readonly }\"\n      ></ae-design>\n    </div>\n  </section>\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"44850bfc-3506-436e-8b37-095749dd45fb","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-04-28T10:29:54+00:00","backedBy":"","by":"09763886-6748-4a56-8e0e-54a2293ee96b","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"12a3e46a-1559-469c-a462-21dfe99e7aa6","text":"rd:work","v":"263c69594b3fb599"},"p":"8c113cd0-af90-42fa-aa05-f67809d0a9a5","previous":{"v":"ef14728e147e1c00"},"stamps":[],"t":1777372194136,"v":"f1e7ef80969185c4"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","8c113cd0-af90-42fa-aa05-f67809d0a9a5"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2025-10-02T11:52:08+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1759405928349,"data":{"aliases":[],"controller":"","css":"","description":"","name":"rd:work-review","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<div class=\"flex flex-col\">\n  <ae-design name=\"rd:maintenance-styled-title\" :document=\"document\" :params=\"{ readonly: true }\"></ae-design>\n\n\n  <ae-design name=\"rd:work\" :document=\"document\" :params=\"{ readonly: true }\"></ae-design>\n\n  <div v-if=\"!params.hidePath\" class=\"text-neutral-600 text-sm w-full flex justify-between px-2\">\n    <ae-design name=\"rd:path\" :document=\"document\"></ae-design>\n  </div>\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"441354cd-ce5a-4ba7-b462-1640dbd269cd","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-10-13T14:37:37+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"8c113cd0-af90-42fa-aa05-f67809d0a9a5","previous":{"v":"b43d4d1dbadaa443"},"stamps":[],"t":1760366257156,"v":"4f79a927ed83d63d"},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","f5850e39-8581-4b62-8cfe-f4fa95009a1a"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2025-08-07T14:17:03+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1754576226976,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.items = {\n      ALL: [],\n      NOT_STARTED: [],\n      STARTED: [],\n      COMPLETED_OK: [],\n      COMPLETED_OK_CORRECTIONS: [],\n      COMPLETED_NOT_OK: [],\n      CANCELED: [],\n    }\n\n    this._update(await Aeppic.getAll(data.items))\n  }\n\n  _update(docs) {\n    const items = {\n      ALL: docs,\n      NOT_STARTED: [],\n      STARTED: [],\n      COMPLETED_OK: [],\n      COMPLETED_OK_CORRECTIONS: [],\n      COMPLETED_NOT_OK: [],\n      CANCELED: [],\n    }\n\n    for (const doc of docs) {\n      const result = doc.data.result\n      \n      items[result].push(doc)\n    } \n\n    locals.items = items\n  }\n} ","css":"","description":"","name":"rd:work-status","packages":[],"template":"<div class=\"flex flex-col\">\n  <section class=\"flex gap-2\">\n    <span class=\"italic\">Wartungsteil:</span>\n    <ae-design  name=\"title\" :document=\"document\"></ae-design>\n  </section>\n\n  <section class=\" flex align-center gap-2\">\n    <span>\n      <ae-icon class=\"far fa-clipboard-list\"></ae-icon>\n      {{ locals.items.ALL.length }}\n    </span>\n\n    <span class=\"flex align-center gap-2 \">\n      <span title=\"Begonnen\">\n      (<ae-icon class=\"far fa-circle-half-stroke \" :class=\"[locals.items.STARTED.length ? 'text-primary-500': 'text-primary-200']\"></ae-icon>\n        {{ locals.items.STARTED.length }}\n      </span>\n\n    <span title=\"Abgeschlossen - Alles in Ordnung\">\n      <ae-icon class=\"fa fa-shield-check \" :class=\"[locals.items.COMPLETED_OK.length ? 'text-green-500': 'text-green-200']\"></ae-icon>\n        {{ locals.items.COMPLETED_OK.length }}\n    </span>\n\n    <span title=\"Abgeschlossen - Alles in Ordnung (mit Korrekturen)\">\n      <ae-icon class=\"fa fa-shield-check \" :class=\"[locals.items.COMPLETED_OK_CORRECTIONS.length ? 'text-amber-500': 'text-amber-200']\"></ae-icon>\n        {{ locals.items.COMPLETED_OK_CORRECTIONS.length }}\n    </span>\n\n    <span title=\"Abgeschlossen - Teilweise nicht in Ordnung\">\n      <ae-icon class=\"fa fa-shield-check \" :class=\"[locals.items.COMPLETED_NOT_OK.length ? 'text-red-500': 'text-red-200']\"></ae-icon>\n      {{ locals.items.COMPLETED_NOT_OK.length }}\n    </span>\n\n    <span title=\"Abgebrochen\">\n      <ae-icon class=\"far fa-times \" :class=\"[locals.items.CANCELED.length ? 'text-red-500': 'text-red-200']\"></ae-icon>\n      {{ locals.items.CANCELED.length}})\n    </span>\n    </span>\n  </section>\n</div>"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"c15af87b-9e00-4453-8b5c-4b79aa127f2d","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-11-17T09:39:32+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"f5850e39-8581-4b62-8cfe-f4fa95009a1a","previous":{"v":"62c367b44af447d4"},"stamps":[],"t":1763372372880,"v":"32a3999962081296"},{"a":["apps","77ee8815-2c3a-4bb5-abd9-90541a545a24","1cc4b977-c14d-4587-af47-d6ac230f60b3"],"a_depth":3,"a_forms":["folder","application-form","design-folder"],"created":{"at":"2023-04-27T08:23:31+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1682583811898,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    const PROCESS = params.workflowDefinitionId\n\n    if (!PROCESS) {\n      throw new Error('Provide params.workflowDefinitionId')\n    }\n    \n    locals.isAvailable = false\n    locals.isActive = false\n    locals.transitions = null\n    locals.allowedTransitions = new Set()\n\n    this._updateTimeout = null\n\n    Aeppic.watch(document.id, () => {\n      // Debounced: multiple watch events in quick succession used to queue\n      // one updateReleaseStatus() per event instead of coalescing into one.\n      if (this._updateTimeout) {\n        Aeppic.clearTimeout(this._updateTimeout)\n      }\n\n      this._updateTimeout = Aeppic.setTimeout(() => {\n        this.updateReleaseStatus()\n      }, 200)\n    })\n\n    const query = `p:${document.id}`\n\n    locals.workflow = new packages.DocumentWorkflow(document.id, { workflow: PROCESS, Aeppic })\n\n    // Aeppic.subscribe delivers the initial matching set itself; the old\n    // unawaited, unused `Aeppic.find(query)` call here was a discarded\n    // duplicate request on every init.\n    Aeppic.subscribe(query, () => {\n      this.updateReleaseStatus()\n    })\n \n    this.updateReleaseStatus()\n\n    // await Aeppic.nextRenderPass()\n    // console.log($refs.stampInfoPopups)\n    locals.toastImageSrc = Aeppic.Content.getSrc(await Aeppic.get('9744abd0-017e-4616-9feb-8e6b75531dec'), 'file')\n  }\n \n  async updateReleaseStatus() {\n    locals.isAvailable = await locals.workflow.isAvailable()\n    locals.isActive = await locals.workflow.isActive()\n\n\n    if (locals.isAvailable || locals.isActive) {\n      const workflowDefinition = await locals.workflow._getWorkflowDefinition()\n\n      locals.transitions = await locals.workflow.availableTransitions()\n      \n      const allowedTransitions = new Set()\n\n      for (const t of locals.transitions) {\n        if (workflowDefinition.data.actors.length === 0 || await locals.workflow.hasAccessToTransition(t)) {\n          allowedTransitions.add(t)\n        }\n      }\n\n      // locals.allowedTransitions = allowedTransitions \n      locals.allowedTransitions = [...allowedTransitions.values()]\n    } else {\n      locals.transitions = []\n      locals.allowedTransitions = null\n    }\n\n    // console.log({ transitions: locals.transitions, allowedTransitions: locals.allowedTransitions })\n  }\n\n async applyTransitionInDialog(transition) {\n    if (transition.data.confirmationRequired) {\n      const textTemplate = transition.data.confirmationText || `Möchten Sie die Aktion \"${transition.data.label}\" ausführen? `\n      const text = textTemplate.replace('${document.data.name}', document.data.name)\n\n      let confirmPromiseResolve\n      const confirmPromise = new Promise((resolve) => confirmPromiseResolve = resolve)\n      \n      let cancelPromiseResolve\n      const cancelPromise = new Promise((resolve) => cancelPromiseResolve = resolve)\n\n      const dialogResult = Promise.race([confirmPromise, cancelPromise])\n\n      $refs.workflowTransitionDialog.$emit('show', {\n        document,\n        text,\n        confirm: confirmPromiseResolve,\n        cancel: cancelPromiseResolve,\n        title: transition.data.label || transition.data.name,\n      })\n\n      const result = await dialogResult\n\n      if (result.cancelled) {\n        return\n      }\n\n      if (result.confirmed) {\n        const transitionResult = await locals.workflow.applyTransition(transition)\n\n        if (transitionResult && transitionResult.ok) {\n          Aeppic._emitter.emit('bizpin:show-toast', {\n            title: transition.data.label || transition.data.name,\n            text: transition.data.successText,\n            imageSrc: locals.toastImageSrc,\n            timeout: 10000,\n          })\n        } else {\n          Aeppic._emitter.emit('bizpin:show-toast', {\n            title: transition.data.label || transition.data.name,\n            text: 'Es ist ein unerwarteter Fehler aufgetreten. Bitte versuchen Sie es erneut.',\n            timeout: 20000,\n          })\n        }\n\n        // navigate to top workflow document, since the user will manage it from there\n        Aeppic.navigateTo(document)\n        return\n      }\n\n      throw new Error('Invalid return value')\n    }\n\n    await locals.workflow.applyTransition(transition)\n\n    // navigate to top workflow document, since the user will manage it from there\n    Aeppic.navigateTo(document)\n  }\n\n  async applyTransition(transition) {\n    if (transition.data.confirmationRequired) {\n      const textTemplate = transition.data.confirmationText || `Möchten Sie die Aktion \"${transition.data.label}\" ausführen? `\n      const text = textTemplate.replace('${document.data.name}', document.data.name)\n\n      const userHasConfirmed = packages.window.confirm(text)\n\n      if (!userHasConfirmed) {\n        return\n      }\n    }\n\n    locals.workflow && (await locals.workflow.applyTransition(transition))\n  }\n\n  getTransitionClasses(transition) {\n    const { uiClasses } = transition.data\n\n    if (uiClasses && uiClasses.trim()) {\n      const classes = {}\n      \n      const classNames = uiClasses.split(' ')\n\n      for (const className of classNames) {\n        if (className.trim()) {\n          classes[className] = true\n        }\n      }\n\n      return classes\n    }\n  }\n} ","css":"","description":"","name":"rd:workflow","packages":[{"id":"9980d952-e898-413a-af84-051795281aca","text":"Workflow","v":"0160c43d3c878c2a"},{"id":"10843fbf-4f0c-416b-be7d-42d6bbd0ae68","text":"Window","v":"d4ce6dec568c3dc1"}],"template":"<div class=\"h-full w-full flex gap-2 items-center\"> \n  <!-- <div v-show=\"Aeppic.Account?.data.allowDevMode\" class=\"font-mono text-xs italic\">\n  isAvailable: {{locals.isAvailable}}<br>\n  isActive: {{locals.isActive}}<br>\n  allowedTransitions: {{ locals.allowedTransitions?.size }}<br>\n  </div> -->\n  <div v-if=\"document.stamps?.length\" class=\"overflow-hidden bg-blue-50 flex items-center border border-blue-200 rounded-full\">\n      <div v-for=\"(s, index) of document.stamps\" class=\"overflow-hidden flex items-center gap-1 py-1 px-2\"> \n        <ae-design v-if=\"!params.onlyText\" name=\"rd:icon\" :document-id=\"s.type.id\" param-fallback-named-icon=\"far fa-badge-check\"></ae-design>\n        <ae-design v-if=\"!params.onlyIcon\" class=\"truncate\" name=\"title\" :document=\"s\"></ae-design> \n      </div>\n  </div>\n\n  <div v-if=\"locals.isActive\" class=\"flex gap-2 overflow-hidden\">\n    <div class=\"overflow-hidden flex items-center gap-1\" v-if=\"!params.readonly\">\n      <template v-for=\"transition of locals.allowedTransitions\">\n        <ae-layout v-if=\"transition.data.toState.id\"\n                  layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n                  :param-text=\"transition.data.label || transition.data.name\"\n                  :param-title=\"transition.data.label || transition.data.name\"\n                  :param-icon=\"transition.data.icon\"\n                  @selected=\"controller.applyTransitionInDialog(transition)\"\n                  param-classes=\"bg-amber-50 border border-amber-300 overflow-hidden\"\n                  class=\"overflow-hidden\"\n        ></ae-layout>\n        <ae-layout v-else \n                    layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n                  :param-text=\"transition.data.label || transition.data.name\"\n                  :param-title=\"transition.data.label || transition.data.name\"\n                  :param-icon=\"transition.data.icon\"\n                  @selected=\"controller.applyTransitionInDialog(transition)\"\n                  param-classes=\"bg-lime-50 border border-lime-300 overflow-hidden\"\n                  class=\"overflow-hidden\"\n        ></ae-layout>\n      </template>\n    </div>\n  </div>\n\n\n  <ae-layout ref=\"workflowTransitionDialog\"\n              layout-id=\"c6e449bd-af9b-49b2-83ff-b5e10d7ea838\"\n  ></ae-layout> \n </div>\n      "},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"456825b4-16e9-48cd-bb74-2e03c928f636","inheritedLocks":[null,null,null,null],"locks":[],"meta":{},"modified":{"at":"2026-07-21T09:53:40+00:00","backedBy":"","by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":""},"p":"1cc4b977-c14d-4587-af47-d6ac230f60b3","previous":{"v":"557a257e77638aba"},"stamps":[],"t":1784627620865,"v":"86952a4a280e90e2"},{"a":["apps","77ee8815-2c3a-4bb5-abd9-90541a545a24","1cc4b977-c14d-4587-af47-d6ac230f60b3"],"a_depth":3,"a_forms":["folder","application-form","design-folder"],"cloneOf":{"id":"456825b4-16e9-48cd-bb74-2e03c928f636","text":"rd:workflow","v":"0a29d5f12ed3dba3"},"created":{"at":"2024-06-10T14:59:23+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1718031563759,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    const PROCESS = params.workflowDefinitionId\n\n    if (!PROCESS) {\n      throw new Error('Provide params.workflowDefinitionId')\n    }\n\n    locals.isAvailable = false\n    locals.isActive = false\n    locals.transitions = []\n    locals.stamps = []\n    locals.documentStampedWithStampIndex = -1\n    locals.documentValid = !('allDocumentDataValid' in document.data) || document.data.allDocumentDataValid === true\n    locals.allChildrenWithValidityValid = null\n    locals.allowedTransitions = []\n    locals.allowedTransitionsWithoutStateChange = []\n    locals.toastImageSrc = ''\n\n    const debouncedDocumentUpdate = Aeppic.debounce((doc) => {\n      locals.documentValid = !('allDocumentDataValid' in doc.data) || doc.data.allDocumentDataValid === true\n\n      this.updateReleaseStatus()\n    }, 200)\n    Aeppic.watch(document.id, debouncedDocumentUpdate)\n    const query = `p:${document.id}`\n\n    locals.workflow = new packages.DocumentWorkflow(document.id, { workflow: PROCESS, Aeppic })\n\n    Aeppic.subscribe(query, (children) => {\n      locals.allChildrenWithValidityValid = children.every(\n        (child) => !('allEditableDocumentDataValid' in child.data) || child.data.allEditableDocumentDataValid === true,\n      )\n\n      this.updateReleaseStatus()\n    })\n\n    this.updateReleaseStatus()\n  }\n\n  get allValid() {\n    return locals.documentValid && locals.allChildrenWithValidityValid\n  }\n\n  async updateReleaseStatus() {\n    locals.isAvailable = await locals.workflow.isAvailable()\n    locals.isActive = await locals.workflow.isActive()\n\n    if (locals.isAvailable || locals.isActive) {\n      const workflowDefinition = await locals.workflow._getWorkflowDefinition()\n\n      // get all stamps of workflow\n      locals.stamps = (await Aeppic.getAll(workflowDefinition.data.stamps)).filter((s) => !!s)\n\n      // filter out first match of document's stamps which belongs to the workflow\n      const relevantWorkflowStamp = await locals.workflow.latestStamp()\n\n      // find index of relevant stamp on document by it's stamp.type\n      locals.documentStampedWithStampIndex = locals.stamps.findIndex((s) => {\n        return s.id === relevantWorkflowStamp?.data.type.id\n      })\n\n      locals.transitions = await locals.workflow.availableTransitions()\n      const allTransitions = await Aeppic.getAll(await locals.workflow.allTransitions())\n\n      // Build a lookup: stampId -> array of reachable next stamp refs\n      locals.nextStampsByStamp = allTransitions.reduce((map, transition) => {\n        const toState = transition.data.toState\n        if (!toState?.id) return map\n\n        for (const fromState of transition.data.fromState) {\n          if (!fromState?.id) continue\n\n          if (!map[fromState.id]) {\n            map[fromState.id] = []\n          }\n\n          const alreadyAdded = map[fromState.id].some((s) => s.id === toState.id)\n          if (!alreadyAdded) {\n            map[fromState.id].push(toState)\n          }\n        }\n\n        return map\n      }, {})\n\n      const allowedTransitions = new Set()\n\n      for (const t of locals.transitions) {\n        if (workflowDefinition.data.actors.length === 0 || (await locals.workflow.hasAccessToTransition(t))) {\n          allowedTransitions.add(t)\n        }\n      }\n\n      const { transitions, transitionsNoStateChange } = [...allowedTransitions.values()].reduce(\n        (result, transition) => {\n          if (!transition) {\n            return result\n          }\n\n          if (transition.data.toState.id) {\n            result.transitions.push(transition)\n          } else {\n            result.transitionsNoStateChange.push(transition)\n          }\n\n          return result\n        },\n        { transitions: [], transitionsNoStateChange: [] },\n      )\n\n      locals.allowedTransitions = transitions\n      locals.allowedTransitionsWithoutStateChange = transitionsNoStateChange\n    } else {\n      locals.stamps = []\n      locals.documentStampedWithStampIndex = -1\n      locals.transitions = []\n      locals.nextStampsByStamp = {}\n      locals.allowedTransitions = []\n      locals.allowedTransitionsWithoutStateChange = []\n    }\n  }\n\n  async applyTransitionInDialog(transition) {\n    if (transition.data.confirmationRequired) {\n      const textTemplate =\n        transition.data.confirmationText || `Möchten Sie die Aktion \"${transition.data.label}\" ausführen? `\n      const text = textTemplate.replace('${document.data.name}', document.data.name)\n\n      let confirmPromiseResolve\n      const confirmPromise = new Promise((resolve) => (confirmPromiseResolve = resolve))\n\n      let cancelPromiseResolve\n      const cancelPromise = new Promise((resolve) => (cancelPromiseResolve = resolve))\n\n      const dialogResult = Promise.race([confirmPromise, cancelPromise])\n\n      $refs.workflowTransitionDialog.$emit('show', {\n        document,\n        text,\n        confirm: confirmPromiseResolve,\n        cancel: cancelPromiseResolve,\n        title: transition.data.label || transition.data.name,\n      })\n\n      const result = await dialogResult\n\n      if (result.cancelled) {\n        return\n      }\n\n      if (result.confirmed) {\n        const transitionResult = await locals.workflow.applyTransition(transition)\n\n        if (transitionResult && transitionResult.ok) {\n          this._showSuccessToast(transition)\n        } else {\n          this._showErrorToast(transition)\n        }\n\n        // navigate to top workflow document, since the user will manage it from there\n        Aeppic.navigateTo(document)\n        return\n      }\n\n      throw new Error('Invalid return value')\n    }\n\n    const transitionResult = await locals.workflow.applyTransition(transition)\n\n    if (transitionResult && transitionResult.ok) {\n      this._showSuccessToast(transition)\n    } else {\n      this._showErrorToast(transition)\n    }\n\n    // navigate to top workflow document, since the user will manage it from there\n    Aeppic.navigateTo(document)\n  }\n\n  async _showErrorToast(transition) {\n    Aeppic._emitter.emit('bizpin:show-toast', {\n      title: transition.data.label || transition.data.name,\n      text: 'Es ist ein unerwarteter Fehler aufgetreten. Bitte versuchen Sie es erneut.',\n      imageAlt: `Workflow Aktion Fehler. ${transition.data.label || transition.data.name}`,\n      timeout: 20000,\n    })\n  }\n\n  async _showSuccessToast(transition) {\n    const imageDocuments = [\n      '9744abd0-017e-4616-9feb-8e6b75531dec',\n      'e18215a3-e475-4f5c-8995-61dcfeebe99c',\n      '6d458186-35d5-42c3-82c6-a31768731b1c',\n      '1d3be345-8c4a-430e-ad81-e8f5ba202315',\n      'd52eb4c6-e8ce-483f-a80d-326a48ca493c',\n      'ca29ed98-d879-4beb-aae8-db93f8fa0b48',\n      '9547b003-34a4-4637-8430-81dfd5a858b1',\n      '38986362-132e-4189-bc13-210e25ee6955',\n      '39420871-4e27-4060-ae82-50bb1a17e10e',\n      'e0bb30ff-e0ad-4da0-ab4e-dbc75e7d93c6',\n      'd37bece8-ece2-4ab6-8be1-85a04c6882bf',\n      '0926d157-82ae-405c-909a-107b84c7430e',\n      '2911cf8b-7e49-48ff-903d-e3c1730c2098',\n      'b89066e2-343f-47bc-b9b8-8dda3f86bbf7',\n      '8fd8eab8-9b84-430b-b5a5-fe771c7c344a',\n      '99439ffb-3d71-4791-a4f8-8c41da241619',\n      '26eaaf4d-b8e5-40a8-8deb-1490a367778a',\n      '0e150899-5b4b-4b5a-9185-e550e141de64',\n      '265d6895-0e8a-4e0f-bffe-6d9b2ade5c32',\n      '2dfe724e-d3c3-46c8-a951-48af3b3f61e9',\n      '22d9fae8-7c80-4f6c-9db6-42d3fc1b9e69',\n    ]\n\n    const randomImageDocumentId = imageDocuments[Math.floor(Math.random() * imageDocuments.length)]\n\n    const toastImageSrc = Aeppic.Content.getSrc(await Aeppic.get(randomImageDocumentId), 'file')\n\n    Aeppic._emitter.emit('bizpin:show-toast', {\n      title: transition.data.label || transition.data.name,\n      text: transition.data.successText,\n      imageAlt: `Dino Workflow Aktion ausgeführt. ${transition.data.label || transition.data.name}`,\n      imageSrc: toastImageSrc,\n      timeout: 10000,\n    })\n  }\n\n  async applyTransition(transition) {\n    if (transition.data.confirmationRequired) {\n      const textTemplate =\n        transition.data.confirmationText || `Möchten Sie die Aktion \"${transition.data.label}\" ausführen? `\n      const text = textTemplate.replace('${document.data.name}', document.data.name)\n\n      const userHasConfirmed = packages.window.confirm(text)\n\n      if (!userHasConfirmed) {\n        return\n      }\n    }\n\n    const transitionResult = locals.workflow && (await locals.workflow.applyTransition(transition))\n\n    if (transitionResult && !transitionResult.ok) {\n      this._showErrorToast(transition)\n    }\n\n    // navigate to top workflow document, since the user will manage it from there\n    Aeppic.navigateTo(document)\n  }\n\n  getTransitionClasses(transition) {\n    const { uiClasses } = transition.data\n\n    if (uiClasses && uiClasses.trim()) {\n      const classes = {}\n\n      const classNames = uiClasses.split(' ')\n\n      for (const className of classNames) {\n        if (className.trim()) {\n          classes[className] = true\n        }\n      }\n\n      return classes\n    }\n  }\n}\n","css":"","description":"","name":"rd:workflow-graph","packages":[{"id":"9980d952-e898-413a-af84-051795281aca","text":"Workflow","v":"0160c43d3c878c2a"},{"id":"10843fbf-4f0c-416b-be7d-42d6bbd0ae68","text":"Window","v":"d4ce6dec568c3dc1"}],"template":"<div v-if=\"locals.isActive\" class=\"px-1 h-full w-full flex flex-col gap-2 items-center overflow-hidden bg-white rounded-md border\n      \" :data-test=\"'design_rd-workflow-graph_' + document.f.text\">\n  <!-- <div v-show=\"Aeppic.Account?.data.allowDevMode\" class=\"font-mono text-xs italic\">\n  isAvailable: {{locals.isAvailable}}<br>\n  isActive: {{locals.isActive}}<br>\n  allowedTransitions: {{ locals.allowedTransitions?.size }}<br>\n  </div> -->\n\n  <section class=\"flex gap-4 w-auto\">\n    <div v-if=\"params.hideGraph\" class=\"flex-1 grow shrink-0 text-sm flex flex-col p-1\">\n      <label class=\"text-sm text-neutral-500\">Status</label>\n\n      <div class=\"flex gap-1 items-center\">\n        <ae-design name=\"rd:icon\" :document=\"locals.stamps[locals.documentStampedWithStampIndex]\"></ae-design>\n        <ae-design name=\"title\" :document=\"locals.stamps[locals.documentStampedWithStampIndex]\"></ae-design>\n      </div>\n    </div>\n    <div v-if=\"params.hideGraph\" class=\"border-r\"></div>\n\n    <div class=\"flex-1 grow shrink-0 p-1\" :data-test=\"'design_rd-workflow-graph_' + document.f.text + '_status'\">\n      <label class=\"text-sm text-neutral-500\">Workflow</label>\n\n      <div v-if=\"document.data.workflowError\" title=\"Fehler im Workflow. Bitte wenden Sie sich an Ihren Administrator.\"\n        :data-test=\"'design_rd-workflow-graph_' + document.f.text + '_error'\">\n        <ae-icon class=\"fa fa-exclamation-triangle text-red-600 text-2xl\"></ae-icon>\n      </div>\n\n      <div v-if=\"locals.documentValid === false && locals.allChildrenWithValidityValid === true\"\n        @mouseover=\"$refs.dataMissingOthers.show($event)\" @mouseleave=\"$refs.dataMissingOthers.close()\"\n        :aria-label=\"'Sie haben alle erforderlichen Datenfelder ausgefüllt. Allerdings fehlen dem ' + document.f.text + ' noch weitere Eingaben anderer Beteiligter.'\"\n        :data-test=\"'design_rd-workflow-graph_' + document.f.text + '_pause'\">\n        <ae-icon class=\"fa fa-pause-circle text-green-600 text-2xl\"></ae-icon>\n      </div>\n\n      <ae-popup ref=\"dataMissingOthers\" :close-delay=\"500\" placement=\"top\">\n        <div class=\"p-1 border rounded-md\">\n          Sie haben alle erforderlichen Datenfelder ausgefüllt.\n          Allerdings fehlen dem <ae-design class=\"inline\" name=\"title\" :document-id=\"document.f.id\"></ae-design> noch\n          weitere Eingaben anderer Beteiligter.\n        </div>\n      </ae-popup>\n\n      <div v-if=\"locals.documentValid === false && locals.allChildrenWithValidityValid === false\"\n        @mouseover=\"$refs.dataMissing.show($event)\" @mouseleave=\"$refs.dataMissing.close()\"\n        aria-label=\"Bitte füllen Sie nun alle erforderlichen Felder aus. Die Anzeige oben rechts im Fenster zeigt Ihnen ob noch weitere Felder auszufüllen sind.\"\n        :data-test=\"'design_rd-workflow-graph_' + document.f.text + '_data-missing'\">\n        <ae-icon class=\"fa fa-pencil text-red-600 text-2xl\"></ae-icon>\n      </div>\n\n      <ae-popup ref=\"dataMissing\" :close-delay=\"500\" placement=\"top\">\n        <div class=\"p-1 border rounded-md\">\n          Bitte füllen Sie nun alle erforderlichen Felder aus.\n          Die Anzeige oben rechts im Fenster zeigt Ihnen ob noch weitere Felder auszufüllen sind.\n        </div>\n      </ae-popup>\n\n      <template v-if=\"locals.documentValid\">\n        <template v-if=\"locals.allowedTransitions.length\">\n          <div class=\"overflow-hidden flex flex-wrap items-center gap-1\" v-if=\"!params.readonly\">\n            <template v-for=\"transition of locals.allowedTransitions\">\n              <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n                :param-text=\"transition.data.label || transition.data.name\"\n                :param-title=\"transition.data.label || transition.data.name\" :param-icon=\"transition.data.icon\"\n                @selected=\"controller.applyTransitionInDialog(transition)\"\n                param-classes=\"text-xs bg-amber-50 border border-amber-300 overflow-hidden\"\n                class=\"overflow-hidden\"></ae-layout>\n            </template>\n          </div>\n        </template>\n        <!-- <div v-else-if=\"locals.transitions.length === 0\"\n              @mouseover=\"$refs.transitionsFinished.show($event)\"\n              @mouseleave=\"$refs.transitionsFinished.close()\"\n              :aria-label=\"'Der Workflow für' + document.f.text + ' ist abgeschlossen.'\"\n              :data-test=\"'design_rd-workflow-graph_' + document.f.text + '_data-done-finished'\"\n        >\n          <ae-icon class=\"fa fa-check text-green-600 text-2xl\"></ae-icon>\n        </div> -->\n        <div v-else @mouseover=\"$refs.waitingForTransition.show($event)\"\n          @mouseleave=\"$refs.waitingForTransition.close()\"\n          :aria-label=\"'Alle erforderlichen Felder wurden vollständig ausgefüllt. Ein berechtigter Nutzer kann den ' + document.f.text + ' nun weiterführen.'\"\n          :data-test=\"'design_rd-workflow-graph_' + document.f.text + '_data-done-other-user-can-progress'\">\n          <ae-icon class=\"fa fa-user-edit text-green-600 text-2xl\"></ae-icon>\n        </div>\n\n        <!-- <ae-popup ref=\"transitionsFinished\" :close-delay=\"500\" placement=\"top\">\n          <div class=\"p-1 border rounded-md\" >\n              Der Workflow für {{document.f.text }} ist abgeschlossen.\n          </div>\n        </ae-popup>  -->\n\n        <ae-popup ref=\"waitingForTransition\" :close-delay=\"500\" placement=\"top\">\n          <div class=\"p-1 border rounded-md\">\n            Alle erforderlichen Felder wurden vollständig ausgefüllt.\n            Ein berechtigter Nutzer kann den <span class=\"italic\">{{document.f.text}}</span> nun weiterführen.\n          </div>\n        </ae-popup>\n      </template>\n    </div>\n\n    <div v-if=\"locals.allowedTransitionsWithoutStateChange.length\" class=\"border-r\"></div>\n\n    <!-- <ae-icon v-if=\"document.data.allDocumentDataValid\" class=\"fa fa-badge-check text-green-500\"></ae-icon> -->\n    <!-- <ae-icon v-else class=\"fa fa-badge-percent text-red-500\"></ae-icon> -->\n\n    <div v-if=\"locals.allowedTransitionsWithoutStateChange.length\" class=\"flex-1 grow shrink-0 p-1\">\n      <label class=\"text-sm text-neutral-500\">Aktionen</label>\n\n      <div class=\"flex gap-2 overflow-hidden\">\n        <div class=\"overflow-hidden flex flex-col items-center gap-1\" v-if=\"!params.readonly\">\n          <template v-for=\"transition of locals.allowedTransitionsWithoutStateChange\">\n            <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n              :param-text=\"transition.data.label || transition.data.name\"\n              :param-title=\"transition.data.label || transition.data.name\" :param-icon=\"transition.data.icon\"\n              @selected=\"controller.applyTransitionInDialog(transition)\"\n              param-classes=\"text-xs bg-lime-50 border border-lime-300 overflow-hidden\"\n              class=\"overflow-hidden\"></ae-layout>\n          </template>\n        </div>\n      </div>\n\n    </div>\n  </section>\n\n  <section v-if=\"!params.hideGraph\" class=\"flex flex-wrap gap-1 p-1 overflow-hidden\">\n    <div v-for=\"(stamp, stampIndex) of locals.stamps\" class=\"flex gap-1 items-center cursor-pointer\"\n      :title=\"stamp.data.label || stamp.data.name\"\n      :data-test=\"stampIndex === locals.documentStampedWithStampIndex ? 'design_rd-workflow-graph_' + document.f.text + '_stamps_current' : 'design_rd-workflow-graph_' + document.f.text + '_stamps_stamp-' + stamp.data.name\">\n\n      <!-- is previous stamp (of stamps list)? -->\n      <template v-if=\"stampIndex < locals.documentStampedWithStampIndex\">\n        <!-- has this stamp any siblings? -->\n        <ae-icon v-if=\"locals.nextStampsByStamp?.[locals.stamps[stampIndex - 1]?.id]?.length >= 2\" class=\"far fa-circle text-neutral-400\"></ae-icon>\n        <!-- else no siblings -->\n        <ae-icon v-else class=\"fa fa-circle text-green-500\"></ae-icon>\n      </template>\n      <div v-else-if=\"stampIndex === locals.documentStampedWithStampIndex\" class=\"flex align-center\"\n        @mouseover=\"$refs.validityPopup.show($event)\" @mouseleave=\"$refs.validityPopup.close()\">\n        <ae-icon v-if=\"locals.allChildrenWithValidityValid\" class=\"fa fa-badge-check text-green-500\"></ae-icon> \n        <ae-icon v-else class=\"fa fa-badge-percent text-red-500\"></ae-icon>\n        <!-- <ae-control name=\"rd:help\" :document=\"document\" \n                  :param-text=\"locals.allChildrenWithValidityValid ? \n                                'In diesem ' + document.f.text + ' sind alle von Ihnen erforderlichen Datenfelder augefüllt.' : \n                                'In diesem ' + document.f.text + ' sind noch nicht alle von Ihnen erforderlichen erforderlichen Datenfelder augefüllt.'\"\n                  :param-icon=\"locals.allChildrenWithValidityValid ? 'fa fa-badge-check text-green-500' : 'fa fa-badge-percent text-red-500' \"\n        ></ae-control> -->\n\n      </div>\n      <ae-icon v-else class=\"far fa-circle text-neutral-400\"></ae-icon>\n\n      <div class=\"text-sm whitespace-nowrap \">\n        <template v-if=\"stampIndex === locals.documentStampedWithStampIndex\">\n          {{ stamp.data.label || stamp.data.name }}\n        </template>\n        <template v-else>\n          {{ stamp.data.name }}\n        </template>\n      </div>\n\n      <template v-if=\"stampIndex < locals.stamps.length - 1\">\n        <ae-icon v-if=\"locals.nextStampsByStamp?.[locals.stamps[stampIndex - 1]?.id]?.length >= 2 && locals.nextStampsByStamp?.[locals.stamps[stampIndex - 1]?.id]?.find(ns => ns.id === stamp.id)\"\n          class=\"far fa-slash-forward text-neutral-400\">\n        </ae-icon>\n        <ae-icon v-else class=\"fas fa-caret-right text-neutral-400\"></ae-icon>\n      </template>\n\n    </div>\n\n    <ae-popup ref=\"validityPopup\" :close-delay=\"500\" placement=\"top\">\n      <div class=\"p-1 border rounded-md\">\n        <div v-if=\"locals.allChildrenWithValidityValid\">\n          In diesem <ae-design class=\"inline\" name=\"title\" :document-id=\"document.f.id\"></ae-design> sind alle von Ihnen\n          erforderlichen Datenfelder augefüllt.\n        </div>\n        <div v-else>\n          In diesem <ae-design class=\"inline\" name=\"title\" :document-id=\"document.f.id\"></ae-design> sind noch nicht\n          alle von Ihnen erforderlichen erforderlichen Datenfelder augefüllt.\n        </div>\n      </div>\n    </ae-popup>\n  </section>\n\n  <ae-layout ref=\"workflowTransitionDialog\" layout-id=\"c6e449bd-af9b-49b2-83ff-b5e10d7ea838\"></ae-layout>\n</div>"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"3ae571fc-da2d-46aa-b8c6-47b297c3e546","inheritedLocks":[null,null,null,null],"locks":[],"meta":{},"modified":{"at":"2026-07-21T10:05:29+00:00","backedBy":"","by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"456825b4-16e9-48cd-bb74-2e03c928f636","text":"rd:workflow","v":"0a29d5f12ed3dba3"},"p":"1cc4b977-c14d-4587-af47-d6ac230f60b3","previous":{"v":"339c1ae33caa9b07"},"stamps":[],"t":1784628329171,"v":"520222193e45313a"},{"a":["apps","77ee8815-2c3a-4bb5-abd9-90541a545a24","1cc4b977-c14d-4587-af47-d6ac230f60b3"],"a_depth":3,"a_forms":["folder","application-form","design-folder"],"cloneOf":{"id":"456825b4-16e9-48cd-bb74-2e03c928f636","text":"rd:workflow","v":"99d9fe831029f696"},"created":{"at":"2023-05-31T09:48:22+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1685526502358,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.latestStamp = null\n\n    const PROCESS = params.workflowDefinitionId\n\n    if (!PROCESS) {\n      locals.error = 'Provide params.workflowDefinitionId'\n      throw new Error(locals.error)\n    }\n\n    locals.workflow = new packages.DocumentWorkflow(document.id, { workflow: PROCESS, Aeppic })\n\n    const configuration = await locals.workflow.loadWorkflowConfiguration()\n\n    if (!configuration) {\n      // There is no active configuration for this document\n      // This is not an error. For example:\n      //    A DMS file might be in a Release Workflow.   \n      //    But the Release Workflow is only applied to Office files or not enabled at all for that company/ \n      return\n    }\n\n    const latestStamp = document.stamps?.concat().reverse().find(stamp => stamp.workflow?.id === configuration.id)\n    locals.latestStamp = await Aeppic.get(latestStamp)\n  }\n}  ","css":"","description":"","name":"rd:workflow-stamps","packages":[{"id":"9980d952-e898-413a-af84-051795281aca","text":"Workflow","v":"0160c43d3c878c2a"}],"template":"\n<div class=\"h-full w-full flex gap-2 items-center\"> \n  <div v-if=\"locals.error\" class=\"text-red-500 text-xs\">\n    {{locals.error}}\n  </div>\n  <!-- <div v-if=\"document.stamps?.length\" class=\"overflow-hidden bg-blue-50 flex items-center border border-blue-200 rounded-full\">\n      <div v-for=\"(s, index) of document.stamps\" class=\"overflow-hidden flex items-center gap-1 py-1 px-2\"> \n        <ae-design v-if=\"!params.noIcon\" name=\"rd:icon\" :document-id=\"s.type.id\" param-fallback-named-icon=\"far fa-badge-check\"></ae-design>\n        <ae-design v-if=\"!params.noText\" class=\"truncate\" name=\"title\" :document=\"s\"></ae-design> \n      </div>\n  </div> -->\n\n  <div v-if=\"locals.latestStamp\" class=\"overflow-hidden bg-blue-50 flex items-center gap-1 py-1 border border-blue-200 rounded-full\"\n      :class=\"[ params.noText ? 'px-1' : 'px-2' ]\"\n      :data-test=\"'stamp_' + locals.latestStamp.data.type.id\"\n  >\n    <ae-design v-if=\"!params.noIcon\" name=\"rd:icon\" :document-id=\"locals.latestStamp.data.type.id\" param-fallback-named-icon=\"far fa-badge-check\"></ae-design>\n    <ae-design v-if=\"!params.noText\" class=\"truncate\" name=\"title\" :document=\"locals.latestStamp\"></ae-design>   </div>\n</div>"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"0e836178-d38b-48ca-aa7c-6acca8526742","inheritedLocks":[null,null,null,null],"locks":[],"meta":{},"modified":{"at":"2026-07-21T08:25:52+00:00","backedBy":"","by":"47325375-27fb-4303-8bf5-9438a0524219","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"456825b4-16e9-48cd-bb74-2e03c928f636","text":"rd:workflow","v":"99d9fe831029f696"},"p":"1cc4b977-c14d-4587-af47-d6ac230f60b3","previous":{"v":"68a424ef254de5f4"},"stamps":[],"t":1784622352033,"v":"0b183d0e1b40829a"},{"id":"17134a11-1b97-4be8-98b5-c993c57fb48c","v":"797408fd694d0e0a","p":"f9279010-1935-4139-abbb-82d928aa09dc","f":{"id":"design-form","v":"22a757f630104010","text":"Design"},"data":{"name":"readable-duration","template":"<div class=\"flex items-center\">\n  <span v-if=\"controller.duration\" :title=\"data.abrechenbar ? '' : 'Nicht abrechenbar'\" :class=\"{ '_CSS-duration--not-billable': !data.abrechenbar }\">\n    {{ controller.duration }}\n  </span> \n\n  <div class=\"flex-1\"></div>\n\n  <template v-if=\"'abgerechnet' in data\">\n    <span v-if=\"!data.abgerechnet\"\n          style=\"color:var(--ae-accent-red-400);margin-left:auto\"\n          title=\"nicht abgerechnet\" \n    >\n      <ae-icon class=\"fa fa-coins\"></ae-icon>\n    </span> \n    <span v-else\n          style=\"color:var(--ae-accent-green-500);margin-left:auto\"\n          title=\"abgerechnet\" \n    >\n      <ae-icon class=\"fa fa-coins\"></ae-icon>\n      <ae-icon class=\"fa fa-check\"></ae-icon>\n    </span> \n\n  </template>\n</div>","css":"._CSS-duration--not-billable {\n  font-style:italic;\n}","controller":"get duration() {\n  if (!Object.keys(data.dauer).length) {\n    return\n  }\n\n  return Aeppic.DateTimeDuration.fromObject(data.dauer).toFormat(`h'h' m'm'`)\n}\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2019-08-22T12:20:27+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2023-08-25T07:40:23+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1740666014604,"ct":1740666014604,"a_depth":4,"a":["apps","0c440c7a-219d-4465-9cbe-2d0eff6ec7ad","e25401a7-eca4-4c53-a20e-b30df594d3a7","f9279010-1935-4139-abbb-82d928aa09dc"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[],"previous":{"v":"f7176180f637f148","f":{"id":"design-form","v":"24435d748c76f819","text":"Design"}},"meta":{"modified":{"at":"2025-02-27T14:20:14+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"69e524c1-eeb8-456b-85d6-f3c7db756a0c","v":"f35770c9332e91bf","p":"32db2e83-2e88-4162-b680-698423aef2c3","f":{"id":"design-form","v":"22a757f630104010","text":"Design"},"data":{"name":"readable-duration","template":"<div class=\"_CSS-line\">\n  <span v-if=\"controller.duration(data.dauer)\" :title=\"data.abrechenbar ? '' : 'Nicht abrechenbar'\" :class=\"{ '_CSS-duration--not-billable': !data.abrechenbar }\">\n    {{ controller.duration(data.dauer) }}\n  </span> \n\n  <span v-if=\"controller.duration(data.pause)\" style=\"font-style:italic;font-size:var(--ae-font-size-3)\" title=\"Pause\">\n    <ae-icon class=\"far fa-hourglass\"></ae-icon>\n    {{ controller.duration(data.pause) }}\n  </span> \n</div>\n ","css":"._CSS-line {\n  display: flex;\n  align-items: center;\n  grid-gap: var(--ae-space-2);\n}","controller":"duration(ofValue) {\n  if (!ofValue || !Object.keys(ofValue).length) {\n    return\n  }\n\n  return Aeppic.DateTimeDuration.fromObject(ofValue).toFormat(`h'h' m'm'`)\n}\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-03-17T13:25:50+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-03-17T15:35:36+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1740666014605,"ct":1740666014605,"a_depth":4,"a":["apps","0c440c7a-219d-4465-9cbe-2d0eff6ec7ad","e25401a7-eca4-4c53-a20e-b30df594d3a7","32db2e83-2e88-4162-b680-698423aef2c3"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[],"previous":{"v":"45c56847f5cece11","f":{"id":"design-form","v":"24435d748c76f819","text":"Design"}},"meta":{"modified":{"at":"2025-02-27T14:20:14+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"cc484f3a-5001-449e-8a86-4cbdf96fc5bc","v":"initial","cloneOf":{"id":"e8a69774-7397-4979-9f30-ece2c58de8ac","v":"867fed79e6eaeaaf","text":"readable-type"},"originalCloneOf":{"id":"e8a69774-7397-4979-9f30-ece2c58de8ac","v":"867fed79e6eaeaaf","text":"readable-type"},"p":"dbee6e16-d63a-493c-bba6-505f79918f9f","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"readable-type","applies":"","template":"<template v-if=\"!data.datei.type\">\n  Unbekannter Typ\n</template>\n<template v-else-if=\"data.datei.type === 'application/pdf'\">\n  PDF Dokument\n</template>\n<template v-else-if=\"data.datei.type.startsWith('image/')\">\n<span class=\"_CSS-uppercase\">\n  {{ data.datei.type.split('image/')[1] }}</span> Bild\n</template>\n<template v-else-if=\"data.datei.type.startsWith('video/')\">\n<span class=\"_CSS-uppercase\">\n  {{ data.datei.type.split('video/')[1] }}</span> Video\n</template>\n<template v-else-if=\"data.datei.type.includes('word')\">\n  Microsoft Word Document\n</template>\n<template v-else-if=\"data.datei.type.includes('spreadsheet')\">\n  Microsoft Excel Document\n</template>\n<template v-else-if=\"data.datei.type.includes('powerpoint') || data.datei.type.includes('.presentation')\">\n  Microsoft Powerpoint Document\n</template>\n<template v-else-if=\"data.datei.type.includes('mspublisher')\">\n  Microsoft Publisher Document\n</template>\n<template v-else>\n  {{ data.datei.type }}\n</template>\n","css":"._CSS-uppercase {\n  text-transform: uppercase;\n}","controller":"","packages":[]},"locks":[],"created":{"at":"2020-06-24T12:54:35+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2020-06-24T12:54:35+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1593003275166,"ct":1593003275166,"a_depth":4,"a":["apps","45ada186-e9fd-451d-9dbd-2defc0b4f86f","4ec6a0e5-cf2d-4095-9b70-2e31a64d5679","dbee6e16-d63a-493c-bba6-505f79918f9f"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"e8a69774-7397-4979-9f30-ece2c58de8ac","v":"867fed79e6eaeaaf","previous":{"v":"5760ee3f61baa755"},"p":"6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"readable-type","applies":"","template":"<template v-if=\"!data.datei.type\">\n  Unbekannter Typ\n</template>\n<template v-else-if=\"data.datei.type === 'application/pdf'\">\n  PDF Dokument\n</template>\n<template v-else-if=\"data.datei.type.startsWith('image/')\">\n<span class=\"_CSS-uppercase\">\n  {{ data.datei.type.split('image/')[1] }}</span> Bild\n</template>\n<template v-else-if=\"data.datei.type.startsWith('video/')\">\n<span class=\"_CSS-uppercase\">\n  {{ data.datei.type.split('video/')[1] }}</span> Video\n</template>\n<template v-else-if=\"data.datei.type.includes('word')\">\n  Microsoft Word Document\n</template>\n<template v-else-if=\"data.datei.type.includes('spreadsheet')\">\n  Microsoft Excel Document\n</template>\n<template v-else-if=\"data.datei.type.includes('powerpoint') || data.datei.type.includes('.presentation')\">\n  Microsoft Powerpoint Document\n</template>\n<template v-else-if=\"data.datei.type.includes('mspublisher')\">\n  Microsoft Publisher Document\n</template>\n<template v-else>\n  {{ data.datei.type }}\n</template>\n","css":"._CSS-uppercase {\n  text-transform: uppercase;\n}","controller":"","packages":[]},"locks":[],"created":{"at":"2018-05-23T16:21:04+02:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","from":"","client":"server"},"modified":{"at":"2018-06-05T12:55:57+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"from":"","client":"server"},"t":1528203357412,"ct":1527085264124,"a_depth":4,"a":["apps","3d43a3f5-fea4-488d-9fc1-9dee5e694623","7c30f282-2b84-4976-8735-ba78662ea5e6","6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"8b8020f0-213a-4af5-a3fe-f9bf5072d876","v":"146b63d3bc6bfed3","p":"fallback-designs","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"ref-add","template":"<ae-icon class=\"fa fa-plus _CSS-button-icon\"></ae-icon>","css":"._CSS {\n  display: inline-block;\n  padding: 0.3rem;\n}\n\n._CSS-button-icon {\n  color: var(--ae-theme-text-icon-on-field);\n}\n","controller":"class Controller {\n  init() {\n    console.warn('[DEPRECATED]: use the layout 64eaddd0-ac8a-46d4-a84f-0eb16e42b40d instead')\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2018-02-06T09:36:19+01:00","by":"","from":"","client":"server"},"modified":{"at":"2020-06-30T09:30:13+00:00","by":"8e6c22aa-8c69-4ff8-919a-7032841cf636","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720684627137,"ct":1720684627137,"a_depth":2,"a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"],"inheritedLocks":[null,null,null],"stamps":[],"previous":{"v":"b9da0de853b6ea54","f":{"id":"design-form","v":"9bfe8e0cd909c1f0","text":"Design"}},"meta":{"modified":{"at":"2024-07-11T09:57:07+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"61916461-dc91-4361-a36e-70ba5195321f","v":"084ae89a22ff5255","p":"fallback-designs","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"ref-add-card","template":"<div class=\"_CSS-add-ref\">\n  <ae-icon class=\"fa fa-plus\"></ae-icon>\n</div>\n","css":"._CSS-add-ref {\n  height: 2rem;\n  color: var(--ae-theme-text-icon-on-background);\n\n  display: flex;\n  justify-content: flex-start;\n  align-items: center;\n}","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2018-02-07T15:32:35+01:00","by":"","from":"","client":"server"},"modified":{"at":"2020-06-30T09:30:13+00:00","by":"8e6c22aa-8c69-4ff8-919a-7032841cf636","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720684627137,"ct":1720684627137,"a_depth":2,"a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"],"inheritedLocks":[null,null,null],"stamps":[],"previous":{"v":"af4f5583cd8963f9","f":{"id":"design-form","v":"9bfe8e0cd909c1f0","text":"Design"}},"meta":{"modified":{"at":"2024-07-11T09:57:07+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"08d3655d-45d5-4731-ae05-0ee32583e4b6","v":"initial","p":"85095086-2b96-40d0-bc27-4281f954bb9b","f":{"id":"design-form","v":"3385ac6766f32638","text":"Design"},"data":{"name":"ref-card","template":"<div class=\"_CSS_line\" @click.stop=\"$emit('selected', document)\">\r\n  <div width=\"5px\" v-if=\"data.type==='COUNT'\" class=\"_CSS-intro\">\r\n    <pre >{{data.count}}x</pre>\r\n  </div>\r\n  <div v-else-if=\"data.type==='PARTIAL'\" class=\"_CSS-intro\">\r\n    <pre >{{data.length * 1}} cm</pre>\r\n  </div>\r\n  <ae-design name=\"title--two-line,title\" :document=\"data.component\"></ae-design>\r\n  <div style=\"text-align:right\">\r\n    <ae-design class=\"_CSS-photo\" name=\"photos\" :document=\"data.component\"></ae-design>\r\n  </div>\r\n</div>\r\n  \r\n<button class=\"ae-button\" @click.stop.prevent=\"$emit('remove', document)\">\r\n  <ae-icon class=\"fa fa-times\"></ae-icon>\r\n</button>","css":"._CSS {\r\n  padding: 1em;\r\n  background: white;\r\n  border: 1px solid lightgray;\r\n  justify-content: space-between;\r\n  width:100%;\r\n}\r\n\r\n._CSS-intro {\r\n  text-align:right;\r\n  background: #eee;\r\n  border-radius: 4px;\r\n  padding: 0 1em;\r\n\r\n}\r\n\r\n._CSS-photo {\r\n  border: 1px solid #aaa;\r\n  border-radius: 3px;\r\n  background:#ddd;\r\n  display:flex;\r\n  align-items:center;\r\n  justify-content: center;\r\n}\r\n\r\n._CSS_line {\r\n  width: 100%;\r\n  display:grid;\r\n  grid-template-columns: auto 1fr auto; \r\n  grid-gap: 4px;\r\n  align-items: center;\r\n}","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-11-02T09:38:38+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-11-02T09:38:38+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1635845918020,"ct":1635845918020,"a_depth":4,"a":["apps","781ff5de-69db-49dc-99f0-f328b308cd7d","dbd0bd68-3479-4032-9303-9d51615c27a7","85095086-2b96-40d0-bc27-4281f954bb9b"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","59edbdbc-2cab-426a-bb42-6e57c5158e4f","3be7e887-1bcd-4c3c-979f-b20a986c4c48","0deb4864-cbb6-420c-99ee-337c7444ab24"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"5d42f466-ab19-4533-b7c3-b90a9bef2195","text":"ref-card","v":"b76125508012acea"},"created":{"at":"2020-07-01T14:40:04+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","client":"server","from":""},"ct":1593614404561,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.attachments = []\n    locals.commenters = []\n    locals.commentersOverflow = []\n\n    locals.readableDuration = ''\n    locals.duration = 0\n    \n    locals.tooltipWeitereVerantwortliche = ''\n    locals.tooltipWeitereVerantwortliche = await this.updateWeitereVerantwortliche()\n\n\n    this.subscribeCommenters() \n\n    Aeppic.subscribeQuery('dd148098-bd15-4baa-a4ce-df14e495c629', document.id, (documents) => {\n      const { readable, millis } = this.totalDuration(documents)\n      locals.readableDuration = readable\n      locals.duration = millis\n    })\n  }\n\n  get isOverdue() {\n    if (params.hideOverdue) {\n      return null\n    }\n\n    if (!data.erledigt && data.bisStart) {\n      return this.daysLeft <= 0\n    }\n \n    return false\n  }\n\n  get progress() {\n    if (data.erledigt) {\n      return null\n    }\n\n    let progress = 0\n\n    if (data.fortschritt) {\n      progress = Number(data.fortschritt)\n    } \n    return progress\n  }\n\n  get daysLeft() {\n    return -Aeppic.DateTime.local().diff(Aeppic.DateTime.fromISO(data.bisStart)).toFormat('d')\n  }\n  \n  async updateWeitereVerantwortliche() {\n    if (!data || !data.verantwortlich || data.verantwortlich.length <= 1) {\n      return ''\n    }\n\n    const others = data.verantwortlich.slice(1)\n    let title = '' \n     \n    for (const other of others) {\n      const va = await Aeppic.get(other)\n\n      if (title.length > 0) {\n        title += '\\n'\n      }\n\n      if (va && va.data.name) {\n        title += `${va.data.name}`\n      } else {\n        title += `Unbenannt`\n      }\n    }\n \n    return title\n  }\n \n  subscribeCommenters() {\n    Aeppic.subscribe(`p:${document.id} f.id:cf155969-ede1-43a4-9b10-3a697b19db91`, async (documents)=>{\n      locals.comments = documents\n      // locals.comments.sort((a,b) => this.sortComment(a,b))\n\n      const all = await Aeppic.getAll(locals.comments.map(c => c.modified.by))  \n      const allSortedBackwards = all.reverse()\n      const unique = allSortedBackwards.reduce((x, y) => x.findIndex(e=>e != null && y != null && e.id==y.id)<0 ? [...x, y]: x, [])\n \n      locals.commenters = unique\n      // locals.commenters.push(...all, ...all)\n      locals.commentersOverflow = []\n\n      const LIMIT = 5\n      \n      if (locals.commenters.length > LIMIT) {\n        locals.commentersOverflow = locals.commenters.splice(LIMIT, locals.commenters.length - LIMIT)\n      }\n    })\n  }\n\n  totalDuration(trackings) {\n    const duration = trackings.reduce((prev, cur) => {\n      if (!prev) {\n        return Aeppic.DateTimeDuration.fromObject(cur.data.dauer)\n      }\n\n      return Aeppic.DateTimeDuration.fromObject(cur.data.dauer).plus(prev)\n    }, null)\n\n    if (duration) {\n      return { readable: duration.toFormat('hh:mm'), millis: duration.valueOf() }\n    }\n\n    return {}\n  }\n\n  async toggleDone() {\n    const canEdit = await Aeppic.canEdit(document)\n    if (!canEdit) {\n      return\n    }\n\n    const editable = await Aeppic.edit(document)\n\n    editable.data.erledigt = !data.erledigt\n\n    Aeppic.save(editable)\n  }\n  \n  mouseEnter() {\n    $refs.popup.cancelClose()\n  }\n\n  mouseLeave() {\n    $refs.popup.close()\n  }\n}\n\n","css":"._CSS {\n  --padding: var(--ae-size-1);\n  display: flex;\n  flex-flow: column;\n}\n\n._CSS-card {\n  display: flex;\n\n  background-color: var(--ae-ui-background);\n  border-radius: var(--ae-border-radius);\n\n  height: 100%;\n\n  flex: 1;\n  margin:0;\n  flex-flow: row wrap;\n}\n\n._CSS-card--with-border {\n  border: var(--ae-border-width) solid var(--ae-border-color);\n}\n\n._CSS-card--finished {\n  text-decoration: line-through;\n  opacity: var(--ae-opacity-1);\n}\n\n._CSS-card._CSS-card--overdue {\n  border-left-color: hsl(1, 85%, 84%);\n}\n\n._CSS-card__flex-container {\n  display: flex;\n}\n\n._CSS-card__flex-container > * ~ * {\n  margin-left: 2ch;\n}\n\n._CSS-card__timerecording {\n  padding-right: var(--padding);\n}\n\n._CSS-card__primary {\n  position: relative;\n  min-width: min-content;\n\n  display: flex;\n\n  flex: 1;\n  width: 100%;\n  padding: var(--padding);\n  overflow: hidden;\n}\n\n._CSS-card-intro {\n  flex: 1 0 max-content;\n  display:flex;\n  flex-direction:row;\n  align-items: center;\n\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n}\n\n._CSS-card-intro > * {\n  margin: 0 1ch;\n}\n\n._CSS-card-title {\n  white-space: normal;\n}\n\n._CSS-card__secondary {\n  flex: 1;\n  padding: var(--padding);\n  font-size: 0.8em;\n  overflow: auto;\n}\n\n._CSS-card__tertiary {\n  position: relative;\n  display: flex;\n  font-size: 0.9em;\n  align-items: center;\n  justify-content: space-between;\n  padding: var(--ae-size-1);\n  color: var(--ae-foreground-l2);\n}\n\n._CSS-card-intro__description {\n  display: flex;\n  font-size: 0.9em;\n  align-items: center;\n  justify-content: space-between;\n}\n\n\n._CSS-card-assignees {\n  display: flex;\n  flex-flow: row;\n}\n\n._CSS-card-assignees > * ~ * {\n  margin-left: 1px;\n}\n\n._CSS-statistics {\n  display: flex;\n}\n\n._CSS-statistics > * {\n  margin-right: 2ch;\n}\n\n/* \n * Comments\n */\n\n._CSS-commenter__indicator {\n  display:flex;\n  justify-content:flex-end;\n}\n\n._CSS-commenter__area {\n  position:relative;\n  border-radius:16px;\n  display:flex;\n  align-items:center;\n  white-space:nowrap;\n  margin:0;\n  padding:0;\n  overflow:hidden;\n}\n\n._CSS-commenter__area > * {\n  /* padding: 0 1px; */\n}\n\n._CSS-commenter__icon {\n  xopacity: var(--ae-opacity-1);\n  height:100%;\n  width:40px;\n  display:flex;\n  align-items:center;\n  justify-content:center;\n  padding: var(--ae-size-2) var(--ae-size-3);\n}\n\n._CSS-commenter__icon::after {\n  content: attr(data-count);\n  padding-left: 4px;\n  xfont-weight: bold;\n}\n\n\n._CSS-popup {\n  position: relative;\n  background: var(--ae-background);\n  padding: 10px;\n  box-shadow: var(--ae-shadow-3);\n  border-radius: var(--ae-border-radius);\n\n  max-width: 500px;\n  max-height: 200px;\n  overflow: hidden;\n}\n\n\n._CSS-popup:after {\n  position: absolute;\n  bottom: 0;\n  left: 0;\n  width: 100%;\n  height: 60%;\n  content: \"\";\n  background-image: linear-gradient(180deg,hsla(0,0%,100%,.1) 0,white);\n  pointer-events: none;\n}\n\n._CSS-checkbox-done:hover {\n  opacity: var(--ae-opacity-1);\n  cursor: pointer;\n}\n\n\n._CSS_to__date {\n  font-size: 0.9em;\n  display: flex;\n}\n\n._CSS-to__value {\n  color: var(--ae-foreground-l2);\n}\n\n._CSS-to__value--overdue {\n  color: var(--ae-accent-red-600);\n  font-weight: 500;\n}\n\n._CSS-to__value--warning {\n  color: var(--ae-accent-orange-500);\n  font-weight: 500;\n}\n\n._CSS-priority {\n  position: relative;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n   border-radius:16px;\n}\n\n._CSS-priority_spacing {\n  margin-left: var(--ae-size-1);\n  margin-right: var(--ae-size-1);\n}\n\n\n._CSS-card__labels {\n  position: absolute;\n  bottom: 0;\n  left: 0;\n\n  display: flex;\n  overflow: hidden;\n  padding: 0 0 1px 1px;\n}\n\n._CSS-label~._CSS-label {\n  margin-left: var(--ae-space-1);\n}","description":"","name":"ref-card","packages":[],"template":"<div class=\"_CSS-card\" \n      :class=\"{ '_CSS-card--finished': data.erledigt, '_CSS-card--overdue': controller.isOverdue, '_CSS-card--with-border': params.noBorder !== true && !params.withoutBorder }\"\n      @click.stop=\"$emit('selected', document)\"\n>\n\t<div class=\"_CSS-card__primary\">\n    <button class=\"ae-button bp-button-icon _CSS-checkbox-done\" v-if=\"!params.readonly\" @click.stop=\"controller.toggleDone()\">\n      <ae-icon v-show=\"data.erledigt\" class=\"far fa-check\"></ae-icon>\n      <ae-icon v-show=\"!data.erledigt\" class=\"far fa-square\"></ae-icon>\n    </button>\n    <div class=\"_CSS-card-intro\">\n      <ae-design class=\"_CSS-card-title\" name=\"title\" :document=\"document\"></ae-design>\n      <!-- {\"ops\":[{\"insert\":\"\\n\"}]} has length of 25 -->\n      <div \n           v-if=\"data.beschreibung.length > 25\"\n           ref=\"descriptionIcon\"\n           @mouseleave=\"$refs.popup.close()\"\n           @mouseover=\"$refs.popup.show({ target: $refs.descriptionIcon })\"\n           class=\"_CSS-card-intro__description\"\n           xtitle=\"Beschreibung vorhanden\"\n           >\n        <ae-icon class=\"fal fa-file-alt\"></ae-icon>\n      </div>\n\t\t</div>\n\t</div>\n  <!-- <div class=\"_CSS-card__secondary\">\n    {{data.beschreibung}}\n  </div> -->\n  <div style=\"display: flex;\">\n    <div class=\"_CSS-card__tertiary \">\n      \n\n      <!-- <div title=\"Zeiterfassung\" class=\"_CSS-card__timerecording\" v-if=\"locals.duration\">\n        <ae-icon class=\"fal fa-hourglass-end\"></ae-icon>\n        {{ locals.readableDuration }}\n      </div> -->\n      <div title=\"Kommentare\" class=\"_CSS-commenter__indicator\" v-if=\"locals.commenters.length > 0\" >\n        <div class=\"_CSS-commenter__area\">\n          <!-- <ae-design class=\"_CSS-commenter\" v-for=\"commenter of locals.commenters\" v-if=\"commenter\" :key=\"commenter.id\" :document-id=\"commenter.id\" name=\"profile-avatar\" :param-readonly=\"true\"></ae-design>\n          <span style=\"margin-left:8px;opacity:0.7;font-size:12px;font-weight:bold\" v-if=\"locals.commentersOverflow.length > 0\">+{{locals.commentersOverflow.length}}</span> -->\n          <div class=\"_CSS-commenter__icon\" :data-count=\"locals.comments.length\">\n            <ae-icon class=\"fal fa-comment\"></ae-icon>\n          </div> \n        </div> \n      </div>\n      <div title=\"Anhänge\" v-if=\"data.anhaenge.length\">\n        <ae-icon class=\"fal fa-paperclip\"></ae-icon>\n        {{ data.anhaenge.length }}\n      </div>\n      <div v-if=\"data.prioritaet\" class=\"_CSS-priority _CSS-priority_spacing\">\n          <div title=\"Hohe Priorität\" v-if=\"data.prioritaet === 3\">\n            <ae-icon class=\"fal fa-arrow-circle-up\"></ae-icon>\n          </div>\n          <div title=\"Mittlere Priorität\" v-else-if=\"data.prioritaet === 2\">\n            <ae-icon class=\"fal fa-circle\" ></ae-icon>\n          </div>\n          <div title=\"Niedrige Priorität\" v-else-if=\"data.prioritaet === 1\">\n            <ae-icon class=\"fal fa-arrow-circle-down\"></ae-icon>\n          </div>\n        </div>\n        <div class=\"_CSS-statistics\">\n        <span v-if=\"data.erledigt && data.bisStart\" class=\"_CSS_to__date\" title=\"Zu erledigen bis\">\n          {{ Aeppic.DateTime.fromISO(data.bisStart).toLocaleString() }} \n        </span>\n        <span v-if=\"!data.erledigt && data.bisStart\" class=\"_CSS_to__date\" :title=\"Aeppic.DateTime.fromISO(data.bisStart).toLocaleString()\">\n            <div v-if=\"controller.daysLeft !== 0\" class=\"_CSS-to__title\">Tage übrig &nbsp</div>\n            <div class=\"_CSS-to__value\" :class=\"{ '_CSS-to__value--overdue': controller.isOverdue, '_CSS-to__value--warning': controller.daysLeft <= 5 && controller.daysLeft >= 0 }\">{{ controller.daysLeft === 0 ? 'Heute' : controller.daysLeft }}</div>\n        </span>\n      </div>\n\n    <ae-design  class=\"_CSS-card__timerecording\"\n          name=\"rd:timetracking-progress\"\n          :document=\"document\"\n          :param-hide-totals=\"true\"\n          param-min-width=\"150px\"\n    ></ae-design>\n      <div class=\"_CSS-card__flex-container\">\n        <div class=\"_CSS-card-assignees\" v-if=\"data.verantwortlich && data.verantwortlich.length\">\n          <ae-design name=\"avatar--tiny\" :document-id=\"data.verantwortlich[0].id\"></ae-design>\n          <ae-design v-if=\"data.verantwortlich.length === 2\" name=\"avatar--tiny\" :document-id=\"data.verantwortlich[1].id\"></ae-design>\n          <ae-design v-if=\"data.verantwortlich.length > 2\" name=\"avatar--tiny\" :document-id=\"data.verantwortlich[1].id\" :param-overwrite-display-with=\"'+' + (data.verantwortlich.length - 1)\" :title=\"locals.tooltipWeitereVerantwortliche\"></ae-design>\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"_CSS-card__labels\">\n    <ae-design class=\"_CSS-label\" v-for=\"label of data.labels\" :document-id=\"label.id\" name=\"colored-pill\" param-field-name=\"farbe\"></ae-design>\n  </div>\n</div>\n\n\n\n<ae-popup ref=\"popup\" base-attachment=\"top left\" popup-attachment=\"bottom left\" :close-delay=\"200\" target-offset=\"5 0\" :max-width=\"600\">\n  <div class=\"_CSS-popup\" slot=\"popup\" @mouseenter=\"controller.mouseEnter()\" @mouseleave=\"controller.mouseLeave()\">\n    <ae-control :readonly=\"true\" name=\"editor-light\" :document=\"document\" field-name=\"beschreibung\"></ae-control>\n  </div>\n</ae-popup> \n\n"},"f":{"id":"design-form","text":"Design","v":"24435d748c76f819"},"id":"10e8709d-e20a-45d0-8c53-5426a0262541","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-02-10T11:19:15+00:00","backedBy":"","by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"5d42f466-ab19-4533-b7c3-b90a9bef2195","text":"ref-card","v":"b76125508012acea"},"p":"0deb4864-cbb6-420c-99ee-337c7444ab24","previous":{"v":"7f34a9b31ee6517a"},"stamps":[],"t":1770722355368,"v":"06aaa1a76f13c126"},{"id":"24b8414c-77d7-4765-9c5e-e04f6a3c4031","v":"982d146aabc5a827","previous":{"v":"initial"},"p":"90877d25-bbae-421e-9ea7-0631dcbf11c2","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"ref-card","applies":"","template":"<div class=\"_CSS-card\" :class=\"{ '_CSS-card--finished': data.erledigt, '_CSS-card--overdue': controller.isOverdue, '_CSS-card--selected': params.isSelected, '_CSS-card--with-border': params.noBorder !== true }\" @click.stop=\"$emit('selected', document)\">\n\t<div class=\"_CSS-card__primary\">\n    <button class=\"ae-button _CSS-checkbox-done\" :disabled=\"params.readonly\" @click.stop=\"data.erledigt = !data.erledigt;save()\">\n      <ae-icon v-show=\"data.erledigt\" class=\"far fa-check\"></ae-icon>\n      <ae-icon v-show=\"!data.erledigt\" class=\"far fa-square\"></ae-icon>\n    </button>\n    <div class=\"_CSS-card-intro\">\n      <ae-design class=\"_CSS-card-title\" name=\"title\" :document=\"document\"></ae-design>\n      <!-- {\"ops\":[{\"insert\":\"\\n\"}]} has length of 25 -->\n      <div \n           v-if=\"data.beschreibung.length > 25\"\n           ref=\"descriptionIcon\"\n           @mouseleave=\"$refs.popup.close()\"\n           @mouseover=\"$refs.popup.show({ target: $refs.descriptionIcon })\"\n           class=\"_CSS-card-intro__description\"\n           xtitle=\"Beschreibung vorhanden\"\n           >\n        <ae-icon class=\"fal fa-file-alt\"></ae-icon>\n      </div>\n\t\t</div>\n \n    <div class=\"_CSS-card__flex-container\">\n      <div class=\"_CSS-commenter__indicator\" v-if=\"locals.commenters.length > 0\" >\n        <div class=\"_CSS-commenter__area\">\n          <ae-design class=\"_CSS-commenter\" v-for=\"commenter of locals.commenters\" v-if=\"commenter\" :key=\"commenter.id\" :document-id=\"commenter.id\" name=\"profile-avatar\" :param-readonly=\"true\"></ae-design>\n          <span style=\"margin-left:8px;opacity:0.7;font-size:12px;font-weight:bold\" v-if=\"locals.commentersOverflow.length > 0\">+{{locals.commentersOverflow.length}}</span>\n          <div class=\"_CSS-commenter__icon\" :data-count=\"locals.comments.length\">\n            <ae-icon class=\"fa fa-comment\"></ae-icon>\n          </div> \n        </div> \n      </div>\n\n      <div class=\"_CSS-card-assignees\" v-if=\"data.verantwortlich && data.verantwortlich.length\">\n        <ae-design name=\"avatar--tiny\" :document-id=\"data.verantwortlich[0].id\"></ae-design>\n        <ae-design v-if=\"data.verantwortlich.length === 2\" name=\"avatar--tiny\" :document-id=\"data.verantwortlich[1].id\"></ae-design>\n        <ae-design v-if=\"data.verantwortlich.length > 2\" name=\"avatar--tiny\" :document-id=\"data.verantwortlich[1].id\" :param-overwrite-display-with=\"'+' + (data.verantwortlich.length - 1)\" :title=\"locals.tooltipWeitereVerantwortliche\"></ae-design>\n      </div>\n    </div>\n\n    <div class=\"_CSS-progress-container\">\n      <div v-if=\"controller.progress != null && controller.progress > 0\" :title=\"controller.progress.toFixed() + '%' \" class=\"ae-progress \" :style=\"{ 'padding-left': (controller.progress).toString() + '%' }\" ></div>\n    </div>\n\t</div>\n  <!-- <div class=\"_CSS-card__secondary\">\n    {{data.beschreibung}}\n  </div> -->\n\t<div class=\"_CSS-card__tertiary \">\n    <div class=\"_CSS-statistics\">\n      <div v-if=\"locals.duration\">\n        {{ locals.readableDuration }}\n        <ae-icon class=\"fa fa-hourglass-end\"></ae-icon>\n      </div>\n      <span v-if=\"!data.erledigt && data.bis\" class=\"_CSS_to__date\" title=\"Zu erledigen bis\" :title=\"Aeppic.DateTime.fromISO(data.bis).toLocaleString()\">\n          <div class=\"_CSS-to__title\">Tage übrig</div>\n          <div class=\"_CSS-to__value\" :class=\"{ '_CSS-to__value--overdue': controller.isOverdue, '_CSS-to__value--warning': controller.daysLeft <= 5 && controller.daysLeft >= 0 }\">{{ controller.daysLeft === 0 ? 'Heute' : controller.daysLeft }}</div>\n        </span>\n      <span title=\"Anhänge\" v-if=\"data.anhaenge.length\">\n        <ae-icon class=\"far fa-paperclip\"></ae-icon> {{ data.anhaenge.length }}\n      </span>\n    </div>\n\n\n\n\t\t<!-- <div class=\"_CSS-card-categories\">\n\t\t\t<ae-design class=\"_CSS-card-category\" name=\"icon\" v-for=\"category in data.kategorie\" :document-id=\"category.id\" :key=\"category.id\"></ae-design>\n\t\t</div> -->\n\t</div>\n</div>\n\n\n\n<ae-popup ref=\"popup\" base-attachment=\"top left\" popup-attachment=\"bottom left\" :close-delay=\"200\" target-offset=\"5 0\">\n  <div class=\"_CSS-popup\" slot=\"popup\" @mouseenter=\"controller.mouseEnter()\" @mouseleave=\"controller.mouseLeave()\">\n    <ae-control :readonly=\"true\" name=\"editor-light\" :document=\"document\" field-name=\"beschreibung\"></ae-control>\n  </div>\n</ae-popup> ","css":"._CSS {\n  --padding: 0.25rem 1rem 0.2rem 0.5rem;\n  display: flex;\n  flex-flow: column;\n}\n\n._CSS-card {\n  display: flex;\n\n  height: 44px;\n\n  background-color: var(--ae-ui-background);\n  border-radius: var(--ae-border-radius);\n\n  border-left-style: solid;\n  border-left-width: 3px;\n  border-left-color: var(--ae-ui-background);\n\n  flex: 1;\n  margin:0;\n  flex-flow: row;\n}\n\n._CSS-card--with-border {\n  border: var(--ae-border-width) solid var(--ae-border-color);\n}\n\n._CSS-card--finished ._CSS-card__primary {\n  text-decoration: line-through;\n  opacity: 0.6;\n}\n\n._CSS-card._CSS-card--overdue {\n  border-left-color: hsl(1, 85%, 84%);\n}\n\n._CSS-card__flex-container {\n  display: flex;\n}\n\n._CSS-card__flex-container > * ~ * {\n  margin-left: 2ch;\n}\n\n._CSS-card__primary {\n  position: relative;\n\n  display: flex;\n\n  flex: 1;\n  width: 100%;\n  padding: 0 var(--padding);\n  overflow: hidden;\n}\n\n/* ._CSS-card__primary:after {\n    position: absolute;\n    bottom: 0;\n    left: 0;\n    width: 100%;\n    height: 60%;\n    content: \"\";\n    background-image: linear-gradient(180deg,hsla(0,0%,100%,.1) 0,#fff);\n    pointer-events: none;\n} */\n\n\n._CSS-card-intro {\n  flex: 1;\n  display:flex;\n  flex-direction:row;\n  align-items: center;\n\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n}\n\n._CSS-card-intro > * {\n  margin: 0 1ch;\n}\n\n._CSS-card-title {\n  white-space: normal;\n}\n\n._CSS-card__secondary {\n  flex: 1;\n  padding: var(--padding);\n  font-size: 0.8em;\n  overflow: auto;\n}\n\n._CSS-card__tertiary {\n  position: relative;\n  display: flex;\n  font-size: 0.9em;\n  align-items: center;\n  justify-content: space-between;\n\n  padding: var(--padding);\n\n  color: var(--ae-foreground-l2);\n}\n\n._CSS-card-intro__description {\n  display: flex;\n  font-size: 0.9em;\n  align-items: center;\n  justify-content: space-between;\n}\n\n\n._CSS-card-assignees {\n  display: flex;\n  flex-flow: row;\n}\n\n._CSS-card-assignees > * ~ * {\n  margin-left: 1px;\n}\n\n._CSS-statistics {\n  display: flex;\n}\n\n._CSS-statistics > * {\n  margin-right: 2ch;\n}\n\n._CSS .ae-progress, ._CSS .ae-progress:before {\n  height: 2px;\n}\n\n._CSS-progress-container {\n  position: absolute;\n  bottom: 0;\n  left: 0;\n  right: 0;\n}\n\n/* \n * Comments\n */\n\n._CSS-commenter__indicator {\n  display:flex;\n  justify-content:flex-end;\n}\n\n._CSS-commenter__area {\n  position:relative;\n  /* background:rgba(255,255,255,0.8); */\n  border-radius:16px;\n  /* border: 1px solid rgba(0,0,0,0.2); */\n  /* box-shadow: 0px 0px 5px rgba(0,0,0,0.1); */\n  display:flex;\n  align-items:center;\n  white-space:nowrap;\n  margin:0;\n  padding:0;\n  overflow:hidden;\n  /* background: gainsboro; */\n}\n\n._CSS-commenter__area > * {\n  /* padding: 0 1px; */\n}\n\n._CSS-commenter__icon {\n  opacity: 0.4;\n  height:100%;\n  width:40px;\n  display:flex;\n  align-items:center;\n  justify-content:center;\n}\n\n._CSS-commenter__icon::after {\n  content: attr(data-count);\n  padding-left: 4px;\n  font-weight: bold;\n}\n\n\n._CSS-popup {\n  position: relative;\n  background: var(--ae-background);\n  padding: 10px;\n  box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.16), 0 0 1px 0 rgba(0, 0, 0, 0.16);\n\n  max-width: 500px;\n  max-height: 200px;\n  overflow: hidden;\n}\n\n\n._CSS-popup:after {\n    position: absolute;\n    bottom: 0;\n    left: 0;\n    width: 100%;\n    height: 60%;\n    content: \"\";\n    background-image: linear-gradient(180deg,hsla(0,0%,100%,.1) 0,white);\n    pointer-events: none;\n}\n\n._CSS-checkbox-done:hover {\n  opacity: 0.6;\n  cursor: pointer;\n}\n\n\n._CSS_to__date {\n  font-size: 0.9em;\n}\n\n._CSS-to__value {\n  color: var(--ae-foreground-l2);\n}\n\n._CSS-to__value--overdue {\n  color: #FF7A6D;\n  font-weight: 500;\n}\n\n._CSS-to__value--warning {\n  color: orange;\n  font-weight: 500;\n}","controller":"class Controller {\n  async init() {\n\n    locals.attachments = []\n    locals.commenters = []\n    locals.commentersOverflow = []\n\n    locals.readableDuration = ''\n    locals.duration = 0\n    \n    locals.tooltipWeitereVerantwortliche = ''\n    locals.tooltipWeitereVerantwortliche = await this.updateWeitereVerantwortliche()\n\n    await startEditing()\n\n    this.subscribeCommenters() \n\n    Aeppic.subscribeQuery('dd148098-bd15-4baa-a4ce-df14e495c629', document.id, (documents) => {\n      const { readable, millis } = this.totalDuration(documents)\n      locals.readableDuration = readable\n      locals.duration = millis\n    })\n  }\n\n  get isOverdue() {\n    if (params.hideOverdue) {\n      return null\n    }\n\n    if (!data.erledigt && data.bis) {\n      return this.daysLeft <= 0\n    }\n \n    return false\n  }\n\n  get progress() {\n    if (data.erledigt) {\n      return null\n    }\n\n    let progress = 0\n\n    if (data.fortschritt) {\n      progress = Number(data.fortschritt)\n    } \n    return progress\n  }\n\n  get daysLeft() {\n    return -Aeppic.DateTime.local().diff(Aeppic.DateTime.fromISO(data.bis)).toFormat('d')\n  }\n  \n  async updateWeitereVerantwortliche() {\n    if (!data || !data.verantwortlich || data.verantwortlich.length <= 1) {\n      return ''\n    }\n\n    const others = data.verantwortlich.slice(1)\n    let title = '' \n     \n    for (const other of others) {\n      const va = await Aeppic.get(other)\n\n      if (title.length > 0) {\n        title += '\\n'\n      }\n\n      if (va && va.data.name) {\n        title += `${va.data.name}`\n      } else {\n        title += `Unbenannt`\n      }\n    }\n \n    return title\n  }\n \n  subscribeCommenters() {\n    Aeppic.subscribe(`p:${document.id} f.id:cf155969-ede1-43a4-9b10-3a697b19db91`, async (documents)=>{\n      locals.comments = documents\n      // locals.comments.sort((a,b) => this.sortComment(a,b))\n\n      const all = await Aeppic.getAll(locals.comments.map(c => c.modified.by))  \n      const allSortedBackwards = all.reverse()\n      const unique = allSortedBackwards.reduce((x, y) => x.findIndex(e=>e != null && y != null && e.id==y.id)<0 ? [...x, y]: x, [])\n \n      locals.commenters = unique\n      // locals.commenters.push(...all, ...all)\n      locals.commentersOverflow = []\n\n      const LIMIT = 5\n      \n      if (locals.commenters.length > LIMIT) {\n        locals.commentersOverflow = locals.commenters.splice(LIMIT, locals.commenters.length - LIMIT)\n      }\n    })\n  }\n\n  totalDuration(trackings) {\n    const duration = trackings.reduce((prev, cur) => {\n      if (prev) {\n        return Aeppic.DateTimeDuration.fromObject(cur.data.dauer).plus(prev)\n      }\n\n      return Aeppic.DateTimeDuration.fromObject(cur.data.dauer)\n    }, null)\n\n    if (duration) {\n      return { readable: duration.toFormat('hh:mm'), millis: duration.valueOf() }\n    }\n\n    return {}\n  }\n  \n  mouseEnter() {\n    $refs.popup.cancelClose()\n  }\n\n  mouseLeave() {\n    $refs.popup.close()\n  }\n}","packages":[]},"locks":[],"created":{"at":"2019-09-09T09:30:32+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2021-09-01T13:12:07+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1630501927594,"ct":1568021432138,"a_depth":4,"a":["apps","599db2de-4e07-4722-98bd-7f42d498b352","79718664-ed22-4b52-9c10-037881df3578","90877d25-bbae-421e-9ea7-0631dcbf11c2"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"2c9e10ac-79f4-4e2d-bb86-2f9958b03c6e","v":"ec1bcae949f152bb","p":"fallback-designs","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"ref-card","template":"<div class=\"_CSS-card\" :class=\"{ 'xae-form-cell__input': params.withoutBorder !== true && params.noBorder !== true }\" @click.stop=\"$emit('selected', document)\">\n  <ae-design style=\"flex: 1;\" name=\"ref-card-title,title\" :document=\"document\" @selected=\"$emit('selected', $event)\"></ae-design>\n  <ae-design v-if=\"!params.noRemove && !params.readonly\" name=\"ref-remove\" :document=\"document\" @remove=\"$emit('remove', $event)\"></ae-design>\n</div>\n","css":"._CSS ._CSS-card {\n  flex: 1;\n  display: flex;\n  overflow: hidden;\n  justify-content: space-between;\n  align-items: center;\n  background-color: var(--ae-ui-background);\n  border-radius: var(--ae-border-radius);\n}\n","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2018-02-06T09:37:04+01:00","by":"","from":"","client":"server"},"modified":{"at":"2024-07-03T21:21:19+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720684627137,"ct":1720684627137,"a_depth":2,"a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"],"inheritedLocks":[null,null,null],"stamps":[],"previous":{"v":"72efbd363d0d782f","f":{"id":"design-form","v":"9bfe8e0cd909c1f0","text":"Design"}},"meta":{"modified":{"at":"2024-07-11T09:57:07+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"301c6ef0-9a46-42a4-8c14-cdf84d5e9625","v":"b1d9af8882cac673","previous":{"v":"e3afc501d593cdbf"},"p":"5152f88f-3006-46f9-959a-423139accf79","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"ref-card","template":"<div class=\"_CSS-card\" :class=\"{ '_CSS-card--bordered': params.withoutBorder !== true && params.noBorder !== true, '_CSS-card--clickable': params.handleSelectedReadonly }\" @click.stop=\"$emit('selected', document)\">\n  <ae-design name=\"ref-card-title,title-as-link,title\" :document=\"document\" @selected=\"$emit('selected', $event)\"></ae-design>\n  <div v-if=\"data.uploads.length\">\n    Am\n    <span v-if=\"locals.lastUploadJSDate\">\n      {{ Aeppic.DateTime.fromJSDate(locals.lastUploadJSDate).toLocaleString(Aeppic.DateTime.DATETIME_SHORT) }}\n    </span>\n    <template v-if=\"data.uploads.length > 1\">\n      wurden\n      {{ data.uploads.length }} \n      Dateien\n    </template>\n    <template v-else>\n      wurde eine Datei\n    </template>\n    hochgeladen.\n  </div>\n  <ae-design v-if=\"!params.noRemove && !params.readonly\" name=\"ref-remove\" :document=\"document\" @remove=\"$emit('remove', $event)\"></ae-design>\n</div>\n","css":"._CSS-card {\n  flex: 1;\n  display: flex;\n  overflow: hidden;\n  justify-content: space-between;\n  align-items: center;\n  padding: var(--bp-input-content-padding);\n  background-color: white;\n}\n\n._CSS-card--clickable {\n  cursor: pointer;\n}\n\n._CSS-card--bordered {\n  border-radius: var(--ae-border-radius);\n  border: solid var(--ae-border-color) var(--ae-border-width);\n}\n\n._CSS-button {\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  \n  padding: 0.7em;     \n  margin: -0.7em; \n}\n\n._CSS-button-icon {\n  color: var(--ae-theme-text-icon-on-background);\n}\n","controller":"class Controller {\n  init() {\n    locals.lastUploadJSDate = null\n\n    this.subscribeUploads()\n  }\n\n  subscribeUploads() {\n    Aeppic.watchAll(data.uploads, (uploads) => {\n      for (const upload of uploads) {\n        const oldDate = new Date(locals.lastUploadJSDate)\n        const newDate = new Date(upload.created.at)\n        \n        if (newDate.valueOf() > oldDate.valueOf()) {\n          locals.lastUploadJSDate = newDate\n        }\n      }\n    })\n  }\n}","packages":[]},"locks":[],"created":{"at":"2019-05-20T15:28:37+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2021-07-06T10:55:19+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1625568919691,"ct":1558358917888,"a_depth":4,"a":["apps","94a64d89-d204-4918-b147-d717914fb03e","f254ce25-42f1-4333-8ee7-23554bf746c1","5152f88f-3006-46f9-959a-423139accf79"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"317833d7-8861-4c3c-acae-bd6dd7b904bf","v":"e0a616e950aca57f","cloneOf":{"id":"0dc2107b-ea55-495d-91bc-bdea0c3acf17","v":"cd3c2d87d6c958f5","text":"card"},"originalCloneOf":{"id":"0dc2107b-ea55-495d-91bc-bdea0c3acf17","v":"cd3c2d87d6c958f5","text":"card"},"previous":{"v":"16b2fb9ca56b7625"},"p":"8b4121d2-1838-46b6-833f-43f6ded78011","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"ref-card","template":"<div class=\"w-full flex flex-wrap gap-6 border rounded-md bg-white p-2 items-center\"\n    @click.stop=\"$emit('selected', document)\"\n    :class=\"[data.bezahlt && 'text-neutral-500 line-through']\"\n>\n  <ae-design name=\"unit\" :document-id=\"data.vertrag.id\"></ae-design>\n\n  <div class=\"flex gap-4 items-baseline\">\n    <ae-design name=\"styled-title-by-status\" :document-id=\"data.vertrag.id\" class=\"w-[150px] max-w-[150px]\"></ae-design>\n\n    <ae-design class=\"w-[150px] max-w-[150px]\" name=\"tenants\" :document-id=\"data.vertrag.id\"></ae-design>\n\n    <div v-if=\"data.datum\">\n      <ae-icon class=\"far fa-calendar\"></ae-icon>\n      {{ Aeppic.DateTime.fromISO(data.datum).toLocaleString(Aeppic.DateTime.DATE_SHORT) }}\n    </div\n    >\n    <div>\n    {{ new Intl.NumberFormat('de-DE', { style: 'currency', currency: 'EUR' }).format(data.summe) }} \n    </div>\n  </div>\n\n\n  <div class=\"flex-1\"></div>\n\n\n  <div class=\"basis-8 flex justify-center\" :title=\"data.bezahlt ? 'Bezahlt' : 'Nicht bezahlt'\">\n      <ae-icon v-if=\"data.bezahlt\" class=\"fa fa-sack-dollar text-green-600\"></ae-icon>\n      <ae-icon v-else class=\"far fa-sack\"></ae-icon>\n  </div>\n\n  <!-- <div>\n    <ae-design name=\"tenant-phone-buttons\" :document-id=\"data.vertrag.id\"></ae-design>\n  </div>\n\n  \n\n  <div class=\"self-stretch grid grid-cols-3 min-w-[300px] min-h-[45px]\"> \n    <div v-for=\"status of Object.keys(locals.status)\"\n        :class=\"[locals.currentStatus === status ? locals.status[status].colorActive : locals.status[status].colorInactive]\"\n        @click.stop=\"controller.setStatus(status)\"\n        :title=\"locals.status[status].label\"\n        class=\"flex justify-center items-center\"\n    >  \n      <ae-icon :class=\"locals.status[status].icon\"></ae-icon>\n    </div>\n  </div> -->\n</div>\n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-12-21T14:04:15+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-01-26T09:25:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1674725132291,"ct":1671631455723,"a_depth":4,"a":["apps","253003a3-5cbd-4d84-bfb2-38f60a741fb5","06b46bf8-ceeb-4fd4-bf6a-4a3da0cab4ad","8b4121d2-1838-46b6-833f-43f6ded78011"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"40215337-5e2f-4428-9fa6-7da01663aaab","v":"02f259348ac34c51","previous":{"v":"9f3d03b97ae7c57c"},"p":"a37b2d75-d9d3-495a-a31c-52094d82e7bb","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"ref-card","applies":"","template":"<div class=\"bp-card _CSS-card\" \n     :class=\"{ 'bp-card--bordered': params.withoutBorder !== true && params.noBorder !== true, 'ae-navigatable': !params.noRemove && !params.readonly }\"\n     @click.stop=\"controller.show()\"\n>\n  <div class=\"_CSS-card__title\">\n    <ae-design name=\"icon\" :document=\"document\" style=\"margin-right: 1em;\"></ae-design>\n    <ae-design name=\"ref-card-title,title\" :document=\"document\"></ae-design>\n  </div>\n\n  <a v-if=\"data.generated.dataUrl\" :href=\"Aeppic.Content.getPreviewSrc(document, 'generated')\" target=\"_blank\" :download=\"controller.name\" @click.stop=\"locals.clicked = true\">\n    <button class=\"_CSS-actions__action ae-button\" title=\"Herunterladen\" :disabled=\"locals.clicked\">\n      <ae-icon :class=\"locals.clicked ? 'fa fa-file-check' : 'fa fa-file-download'\"></ae-icon> Download\n    </button>  \n  </a>\n  <a v-else title=\"Datei wird erstellt...\">\n    <ae-icon class=\"fa fa-spinner fa-spin\"></ae-icon>\n  </a>\n  <ae-design v-if=\"!params.noRemove && !params.readonly\" name=\"ref-remove\" :document=\"document\" @remove=\"$emit('remove', $event)\"></ae-design>\n</div>\n\n<ae-layout\n  v-if=\"locals.preview\"\n  ref=\"preview\"\n  layout-id=\"bbd6d99f-571d-422f-a2bc-15d3f8ecfae8\"\n  :param-file-name=\"controller.name\"\n  param-field-name=\"generated\"\n  :param-document=\"document\"\n  :param-download-pdf=\"true\"\n  @close=\"locals.preview = false\"\n></ae-layout>\n\n<!-- <div style=\"display:none\" ref=\"node\"></div>\n<div>\n  w:\n  {{locals.vue}}\n  <template v-if=\"!locals.vue\">\n    {{document.id}}\n  </template>\n</div>    -->","css":"._CSS ._CSS-card {\n  flex: 1;\n  display: flex;\n  overflow: hidden;\n  justify-content: space-between;\n  align-items: center;\n}\n\n._CSS-card__title {\n  display: flex;\n  align-items: center;\n  flex: 1;\n}","controller":"async init() {\n  this.FORMS = {\n    Stammdaten: '089eb68f-d2ec-4e30-a3bb-6549d72932ec'\n  }\n\n  locals.preview = false\n  locals.clicked = false\n\n//   locals.vue = false\n\n\n// await Aeppic.nextRenderPass()\n// await Aeppic.nextRenderPass() \n// await Aeppic.nextRenderPass() \n// await Aeppic.nextRenderPass()\n\n// Aeppic.setInterval(() => {\n//   let targetVue = $refs.node.parentElement.__vue__\n//   if (!('watcher' in targetVue)) {\n//     targetVue = targetVue.$parent\n//   }\n//   locals.vue = !!targetVue.watcher\n// }, 2000)\n}\n\nasync show() {\n  if (document.a_forms.find(aForm => aForm === this.FORMS.Stammdaten)) {\n    Aeppic.drillInto(document)\n    return\n  }\n\n  locals.preview = true\n\n  await Aeppic.nextRenderPass()\n  await Aeppic.nextRenderPass()\n  await Aeppic.nextRenderPass()\n\n  $refs.preview.$emit('show')\n}\n\nget name() {\n  return `${data.generated.name}`.replace('.docx', '.pdf')\n}","packages":[]},"locks":[],"created":{"at":"2020-05-08T08:52:48+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2024-03-22T10:45:51+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1711104351557,"ct":1588927968102,"a_depth":4,"a":["apps","fb62ad28-07b0-4a99-91bd-43c297656f12","4e988078-8eed-4c34-9cc2-9b6c3e2cdb2a","a37b2d75-d9d3-495a-a31c-52094d82e7bb"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"4ec55d6c-4415-42bc-ae7d-2f35b4ee304a","v":"initial","cloneOf":{"id":"abebb68d-d38c-42a4-916b-4b6d137ec24a","v":"fe2454282a56faba","text":"ref-card"},"originalCloneOf":{"id":"abebb68d-d38c-42a4-916b-4b6d137ec24a","v":"fe2454282a56faba","text":"ref-card"},"p":"dbee6e16-d63a-493c-bba6-505f79918f9f","f":{"id":"design-form","v":"e3fe9ece11aabc5e","text":"Design"},"data":{"name":"ref-card","applies":"","template":"<div class=\"_CSS-card ae-navigatable\" :class=\"{ '_CSS-card--with-border': params.noBorder !== true }\" @click.stop=\"$emit('selected', document)\">\n  <!-- <ae-design class=\"_CSS-card__media\" name=\"card-thumbnail-with-icon\" :document=\"document\" @cannot-convert=\"locals.canConvert = false\"></ae-design> -->\n  <div class=\"ae-progress--indeterminate\" title=\"uploading\" v-if=\"controller.isUploading && locals.upload.progressPercent == 0\">\n  </div>\n  <div v-if=\"locals.upload\" style=\"display:flex\">\n    <!-- status: {{locals.upload.status}} -->\n    <!-- {{locals.upload.progressPercent}} -->\n    <div class=\"ae-progress\" :style=\"{ 'padding-left': (locals.upload.progressPercent * 100).toString() + '%' }\" ></div>\n  </div>\n \n  <div class=\"_CSS-card__secondary\">\n    <div style=\"display:flex;align-items:center;justify-content:space-between;\">\n      <div class=\"_CSS-card__title\">\n        <ae-design name=\"icon\" :document=\"document\" style=\"margin-right: 1em;\"></ae-design>\n        <ae-design name=\"title\" :document=\"document\"></ae-design>\n      </div>\n      <div title=\"Freigegeben\">\n        <svg v-if=\"data.freigabe\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" style=\"fill:#333\" >\n          <path d=\"M23.334 11.96c-.713-.726-.872-1.829-.393-2.727.342-.64.366-1.401.064-2.062-.301-.66-.893-1.142-1.601-1.302-.991-.225-1.722-1.067-1.803-2.081-.059-.723-.451-1.378-1.062-1.77-.609-.393-1.367-.478-2.05-.229-.956.347-2.026.032-2.642-.776-.44-.576-1.124-.915-1.85-.915-.725 0-1.409.339-1.849.915-.613.809-1.683 1.124-2.639.777-.682-.248-1.44-.163-2.05.229-.61.392-1.003 1.047-1.061 1.77-.082 1.014-.812 1.857-1.803 2.081-.708.16-1.3.642-1.601 1.302s-.277 1.422.065 2.061c.479.897.32 2.001-.392 2.727-.509.517-.747 1.242-.644 1.96s.536 1.347 1.17 1.7c.888.495 1.352 1.51 1.144 2.505-.147.71.044 1.448.519 1.996.476.549 1.18.844 1.902.798 1.016-.063 1.953.54 2.317 1.489.259.678.82 1.195 1.517 1.399.695.204 1.447.072 2.031-.357.819-.603 1.936-.603 2.754 0 .584.43 1.336.562 2.031.357.697-.204 1.258-.722 1.518-1.399.363-.949 1.301-1.553 2.316-1.489.724.046 1.427-.249 1.902-.798.475-.548.667-1.286.519-1.996-.207-.995.256-2.01 1.145-2.505.633-.354 1.065-.982 1.169-1.7s-.135-1.443-.643-1.96zm-12.584 5.43l-4.5-4.364 1.857-1.857 2.643 2.506 5.643-5.784 1.857 1.857-7.5 7.642z\"\n          />\n        </svg>\n      </div>\n    </div>\n    <span v-if=\"params.showLocation\" style=\"font-size:smaller;white-space:nowrap;text-overflow:ellipsis;overflow:hidden\">\n      <ae-design name=\"title\" :document-id=\"document.p\" :watch=\"false\"></ae-design>\n    </span>\n    <span style=\"overflow:hidden; text-overflow: ellipsis;font-size:0.8em\" :title=\"'Zuletzt geändert: ' + DateTime.fromISO(document.modified.at).toLocaleString(DateTime.DATETIME_FULL)\">\n      {{ DateTime.fromISO(document.modified.at).toLocaleString(DateTime.DATETIME_MED) }}\n    </span>\n    \n    <!-- <ae-design name=\"icon\" :document=\"document\" style=\"position: absolute; left: 1; top: 2px; font-size: 0.5em;\"></ae-design> -->\n  </div>\n\n  <button class=\"ae-button\" :disabled=\"params.readonly\" @click.stop=\"$emit('remove', document)\">\n    <ae-icon class=\"fa fa-times\"></ae-icon>\n  </button>\n</div>\n \n\n","css":"  \n._CSS-card {\n  flex: 1;\n\n  display: flex;\n  font-size: 1em;\n  \n  background-color: var(--ae-ui-background);\n  border-radius: var(--ae-border-radius);\n  width: 100%;\n}\n\n._CSS-card--with-border {\n  border: var(--ae-border-width) solid var(--ae-border-color);\n}\n\n._CSS-card__media {\n  flex:2;\n  height: 6em;\n}\n\n._CSS-card__secondary {\n  color: var(--ae-foreground-l3);\n  flex:1;\n\n  display: flex;\n  flex-direction: column;\n  justify-content: space-between;\n\n  padding: 4px;\n  min-width: 0;\n}\n\n._CSS-card__title {\n  color: var(--ae-foreground-l2);\n  overflow:hidden;\n  text-overflow: ellipsis;\n  white-space:nowrap;\n\n  display: flex;\n  align-items: center;\n}\n\n._CSS progress {\n  -webkit-appearance: none;\n  flex:1;\n  min-width:auto;\n  width:auto;\n  background-color: var(--ae-background-d1);\n  border-radius: 2px;\n  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.25) inset;\n}","controller":"async init() {\r\n  locals.canConvert = true\r\n  locals.upload = null //{progressPercent:0.3,status:'started'}\r\n  locals.ancestors = []\r\n\r\n  locals.ancestors = await Aeppic.getAll(document.a)\r\n}\r\n\r\nget isUploading() {\r\n  const status = Aeppic.Uploads.getUploadStatusForDocument(document)\r\n\r\n  if (status) {\r\n    locals.upload = status[0]\r\n  } else {\r\n    locals.upload = null\r\n  }\r\n \r\n  return !!locals.upload\r\n}\r\n","packages":[]},"locks":[],"created":{"at":"2020-06-24T12:54:35+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2020-06-24T12:54:35+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1593003275182,"ct":1593003275182,"a_depth":4,"a":["apps","45ada186-e9fd-451d-9dbd-2defc0b4f86f","4ec6a0e5-cf2d-4095-9b70-2e31a64d5679","dbee6e16-d63a-493c-bba6-505f79918f9f"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"50102892-0079-47c7-b519-5c762339d507","v":"initial","p":"bddf496c-822a-4eff-b294-5e6085fedaa7","f":{"id":"design-form","v":"24435d748c76f819","text":"Design"},"data":{"name":"ref-card","template":"<div class=\"_CSS-container\" @click.stop>\r\n  <div class=\"_CSS-card\">\r\n    <img class=\"_CSS-card__img\" style=\"opacity:0.1;\" height=\"256\" :src=\"Aeppic.Content.getSrc(locals.image, 'file')\" />\r\n\r\n    <div style=\"display:flex;flex-direction:column;height:100%;\">\r\n        <div style=\"display:flex;backgrond:green;\">\r\n            <div class=\"_CSS-card__title\" :title=\"data.name\">{{data.name}}</div>\r\n\r\n            <span style=\"flex:1;\"></span>\r\n\r\n            <div>\r\n                <div title=\"Link in die Zwischenablage kopieren\" class=\"_CSS-card__copy-button\"\r\n                    @click.stop=\"controller.copy($event)\"\r\n                    style=\"display:flex; align-items:center;justify-content:center;\">\r\n                    <ae-icon class=\"fa fa-clipboard\" style=\"\"></ae-icon>\r\n                </div>\r\n\r\n                <button class=\"ae-button\" @click.stop=\"$refs.sendPing.$emit('show')\" title=\"Ping senden\">\r\n                  <ae-icon class=\"fad fa-comment-plus\"></ae-icon>\r\n                </button>\r\n\r\n                <ae-popup ref=\"popup\" :close-delay=\"200\" offset=\"-4px 0\">\r\n                    <div slot=\"popup\" class=\"_CSS-popup__body\">\r\n                        <div>\r\n                            Der Link wurde in die Zwischenablage kopiert!\r\n                        </div>\r\n                        <p>\r\n                            <!-- NOTE: do not remove input. copyToClipboard does not work on mobile devices -->\r\n                            <input type=\"text\" v-model=\"controller.link\" style=\"width: 100%;\" readonly>\r\n                        </p>\r\n                    </div>\r\n                </ae-popup>\r\n\r\n                <ae-layout v-if=\"locals.canEdit\" layout-id=\"0ded34c5-1221-4511-af93-d897a79f1369\"\r\n                    :param-document=\"document\" param-remove-reference-from-parent-field=\"rooms\"></ae-layout>\r\n            </div>\r\n        </div>\r\n        <div style=\"flex:1;\"></div>\r\n        <div class=\"_CSS-card__button\">\r\n            <a @click.stop class=\"_CSS-card__button-title\" target=\"_blank\"\r\n                :href=\"locals.meetingRoomUrl\">Teilnehmen</a>\r\n        </div>\r\n    </div>\r\n  </div>\r\n</div>\r\n\r\n<ae-layout layout-id=\"f4d43a5a-2177-49cc-9a2b-bec78a0ab12a\"\r\n           :param-document=\"document\"\r\n           ref=\"sendPing\"\r\n           :param-comment-default=\"controller.link ? controller.link : ''\"\r\n></ae-layout>\r\n","css":"._CSS {\r\n  flex: 1;\r\n  display: flex;\r\n}\r\n\r\n._CSS-container {\r\n  flex: 1;\r\n}\r\n\r\n._CSS-card {\r\n  background: var(--ae-primary-300);\r\n  width: var(--ae-size-13);\r\n  height: var(--ae-size-11);\r\n  border-radius: var(--ae-border-radius);\r\n  position: relative;\r\n}\r\n\r\n._CSS-card__img {\r\n  position: absolute;\r\n  top: var(--ae-size-6);\r\n  left: var(--ae-size-5);\r\n  z-index: 0;\r\n}\r\n\r\n._CSS-card__title {\r\n  color: var(--ae-ui-background);\r\n  padding: var(--ae-size-1) 0 0 var(--ae-size-3);\r\n  font-size: var(--ae-size-6);\r\n  z-index: 1;\r\n  width: 90%;\r\n  white-space: nowrap;\r\n  text-overflow: ellipsis;\r\n  overflow: hidden;\r\n}\r\n\r\n._CSS-card__button {\r\n  font-size: var(--ae-font-size-5);\r\n  background: var(--ae-primary-700);\r\n  border-radius: var(--ae-border-radius);\r\n  width:  var(--ae-size-10);\r\n  height: var(--ae-size-6);\r\n  display: flex;\r\n  align-items: center;\r\n  justify-content: center;\r\n  align-self: flex-end;\r\n  margin: 0 var(--ae-size-3) var(--ae-size-3) 0; \r\n  z-index: 1;\r\n}\r\n\r\n._CSS-card__copy-button {\r\n  margin: 2px;\r\n  width: var(--ae-size-6);\r\n  height: var(--ae-size-6);\r\n  padding: 17.5px 20px;\r\n  border-radius: var(--ae-border-radius);\r\n  cursor: pointer; \r\n}\r\n\r\n._CSS-card__copy-button:hover {\r\n  background: var(--ae-background-200);\r\n  color: var(--ae-primary-700);\r\n}\r\n\r\n._CSS-card__button-title {\r\n  text-decoration: none;\r\n  color: var(--ae-ui-background);\r\n}\r\n\r\n._CSS-popup__body {\r\n  padding: 0.5rem;\r\n  background: var(--ae-ui-background);\r\n  box-shadow: var(--ae-shadow-2);\r\n  border-radius: var(--ae-border-radius);\r\n}","controller":"class Controller {\r\n  async init() {\r\n    locals.canEdit = false\r\n    locals.image = null\r\n    locals.meetingRoomUrl = ''\r\n\r\n    locals.image = await Aeppic.get('73dc45ff-47ca-4c98-8501-d4aa3d90e695')\r\n\r\n    const canEdit = await Aeppic.canEdit(document)\r\n    locals.canEdit = Aeppic.Account && Aeppic.Account.data.isGroupAccount === false && canEdit === true\r\n\r\n    const { data:{ server: serverBaseUrl, prefix } } = await Aeppic.get(document.p)\r\n    \r\n    Aeppic.watch(document, (d) => {\r\n      const trimmedUrl = (serverBaseUrl || 'https://meet.bizpin.de').trim()\r\n      const baseUrl = trimmedUrl.replace(/\\/+$/,'')\r\n      locals.meetingRoomUrl = `${baseUrl}/${prefix}` + this._encodeRoomName(d.data.name)\r\n    })\r\n  }\r\n\r\n  _encodeRoomName(name) {\r\n    const newNameChars = []\r\n\r\n    let capitalize = true\r\n    for (let c of name) {\r\n      if (!c.match(/[a-z0-9]/i)) {\r\n        capitalize = true\r\n        continue\r\n      }\r\n      \r\n      if (capitalize) {\r\n        c = c.toUpperCase()\r\n        capitalize = false\r\n      }\r\n      newNameChars.push(c)\r\n    }\r\n\r\n    return newNameChars.join('')\r\n  }\r\n\r\n  get link() { \r\n    return locals.meetingRoomUrl\r\n  }\r\n\r\n  copy(event) {\r\n    Aeppic.copyToClipboard(this.link)\r\n\r\n    $refs.popup.show(event)\r\n  }\r\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-05-08T08:52:41+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2020-05-08T08:52:41+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1588927961896,"ct":1588927961896,"a_depth":4,"a":["apps","69555db0-1399-48c4-b87f-d8fa2f7b656f","ca4c359f-4705-4ab0-b018-b39e0d324486","bddf496c-822a-4eff-b294-5e6085fedaa7"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"5583f72a-e662-441a-a679-e545160e5a60","v":"initial","p":"e6a96b1c-797f-4071-8568-dd7b1d0fdcfd","f":{"id":"design-form","v":"3385ac6766f32638","text":"Design"},"data":{"name":"ref-card","template":"\r\n<div @click.stop.prevent=\"controller.editInDialog()\" style=\"flex:1;display:flex;align-items:center\"  :class=\"params.noBorder == null ? '_CSS--border' : '' \">\r\n  <span class=\"_CSS-amount\">{{data.count}} ×</span>\r\n  <ae-design class=\"_CSS-item\" name=\"title\" :document=\"data.item\"></ae-design>\r\n  <span v-if=\"data.itemManufacturingDate\" class=\"_CSS-manufacturingDate\" title=\"Herstellungsdatum\">{{DateTime.fromISO(data.itemManufacturingDate).toLocaleString(DateTime.FULL_DATE)}}</span>\r\n  <span v-if=\"data.comment\" class=\"_CSS-comment\" :title=\"'Comment: ' + data.comment\">{{data.comment.substr(0,5)}}</span>\r\n  <span style=\"flex:1\"></span> \r\n  <button v-if=\"!params.noRemove\" class=\"_CSS-remove\" @click.prevent.stop=\"$emit('remove',document)\">\r\n    <ae-icon class=\"fa fa-times\"></ae-icon>\r\n  </button> \r\n</div>\r\n\r\n<ae-dialog ref=\"editLine\">\r\n  <template #body>\r\n    <ae-design v-if=\"locals.edit\" name=\"page\" :document=\"locals.edit\"></ae-design>\r\n  </template>\r\n  <template #commands>\r\n    <button @click=\"controller.saveEdit()\">Save</button>\r\n  </template>\r\n</ae-dialog>","css":"._CSS {\r\n  display: flex;\r\n  align-items: center;\r\n  flex:1;\r\n} \r\n\r\n._CSS-manufacturingDate {\r\n  min-width: 7em;\r\n}\r\n\r\n._CSS-comment {\r\n  padding-left: 4px;\r\n  font-size:smaller;\r\n}\r\n._CSS > *{\r\n  display: flex;\r\n  align-items: center;\r\n  flex:1;\r\n} \r\n\r\n._CSS--border {\r\n  border: 1px solid var(--ae-background-300);\r\n  \r\n}\r\n\r\n._CSS-amount {\r\n  margin: 4px;\r\n  border-radius: 2px;\r\n  padding: 4px;\r\n  font-family: 'Courier New', Courier, monospace;\r\n  font-weight: bold;\r\n  background: var(--ae-background-300);\r\n  min-width: 4em;\r\n  text-align: right;\r\n}\r\n\r\n._CSS-manufacturingDate {\r\n  padding-left:1em;\r\n  font-size: smaller;\r\n}\r\n\r\n._CSS-total {\r\n  font-family: 'Courier New', Courier, monospace;\r\n  margin: 4px;\r\n  border-radius: 2px;\r\n  padding: 4px;\r\n  font-weight: bold;  \r\n  background: var(--ae-background-300);\r\n}\r\n\r\n._CSS-per-item {\r\n  font-family: 'Courier New', Courier, monospace;\r\n  padding: 8px;\r\n  font-weight: bold;  \r\n  opacity:0.8;\r\n}\r\n\r\n._CSS-remove {\r\n  border:1px solid transparent;\r\n  background:transparent;\r\n  margin: 4px;\r\n  padding: 3px;\r\n}\r\n\r\n._CSS-remove:hover {\r\n  background: var(--ae-background-300);\r\n  border: 1px solid var(--ae-background-400);\r\n  cursor:pointer;\r\n}","controller":"async editInDialog() {\r\n  locals.edit = await Aeppic.edit(document)\r\n  $refs.editLine.show()\r\n  //debugger\r\n  //await Aeppic.Commands.execute('3cc9b343-d8d5-433b-85d9-2bba87749b80', document)\r\n} \r\n\r\nasync saveEdit() {\r\n  Aeppic.save(locals.edit)\r\n  locals.edit = null\r\n  $refs.editLine.hide()\r\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-11-02T09:38:36+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-11-02T09:38:36+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1635845916546,"ct":1635845916546,"a_depth":4,"a":["apps","781ff5de-69db-49dc-99f0-f328b308cd7d","dbd0bd68-3479-4032-9303-9d51615c27a7","e6a96b1c-797f-4071-8568-dd7b1d0fdcfd"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"5d42f466-ab19-4533-b7c3-b90a9bef2195","v":"6703be2bc3890f4c","previous":{"v":"58b43c7bd444e535"},"p":"3d456c38-6282-416e-8c5e-7d20b0517a6e","f":{"id":"design-form","v":"24435d748c76f819","text":"Design"},"data":{"name":"ref-card","template":"<div class=\"_CSS-card\" \n      :class=\"{ '_CSS-card--finished': data.erledigt, '_CSS-card--overdue': controller.isOverdue, '_CSS-card--selected': params.isSelected, '_CSS-card--with-border': params.noBorder !== true && !params.withoutBorder }\"\n      @click.stop=\"$emit('selected', document)\"\n>\n\t<div class=\"_CSS-card__primary\">\n    <button class=\"ae-button bp-button-icon _CSS-checkbox-done\" v-if=\"!params.readonly\" @click.stop=\"controller.toggleDone()\">\n      <ae-icon v-show=\"data.erledigt\" class=\"far fa-check\"></ae-icon>\n      <ae-icon v-show=\"!data.erledigt\" class=\"far fa-square\"></ae-icon>\n    </button>\n    <div class=\"_CSS-card-intro\">\n      <ae-design class=\"_CSS-card-title\" name=\"title-as-link,title\" :document=\"document\" @selected=\"$emit('selected', $event)\"></ae-design>\n      <!-- {\"ops\":[{\"insert\":\"\\n\"}]} has length of 25 -->\n      <div \n           v-if=\"data.beschreibung.length > 25\"\n           ref=\"descriptionIcon\"\n           @mouseleave=\"$refs.popup.close()\"\n           @mouseover=\"$refs.popup.show({ target: $refs.descriptionIcon })\"\n           class=\"_CSS-card-intro__description\"\n           xtitle=\"Beschreibung vorhanden\"\n           >\n        <ae-icon class=\"fal fa-file-alt\"></ae-icon>\n      </div>\n\t\t</div>\n\t</div>\n  <!-- <div class=\"_CSS-card__secondary\">\n    {{data.beschreibung}}\n  </div> -->\n  <div style=\"display: flex;\">\n  <ae-layout layout-id=\"f46659ee-b6b2-4be0-adab-15fe8a690f93\" :param-document=\"document\" :param-readonly=\"params.readonly\"></ae-layout>\n\t<div class=\"_CSS-card__tertiary \">\n    \n    \n    <ae-design  class=\"_CSS-card__timerecording\"\n          name=\"timetracking:progress\"\n          :document=\"document\"\n          :param-hide-totals=\"true\"\n          param-min-width=\"150px\"\n    ></ae-design>\n\n    <div title=\"Kommentare\" class=\"_CSS-commenter__indicator\" v-if=\"locals.commenters.length > 0\" >\n      <div class=\"_CSS-commenter__area\">\n        <!-- <ae-design class=\"_CSS-commenter\" v-for=\"commenter of locals.commenters\" v-if=\"commenter\" :key=\"commenter.id\" :document-id=\"commenter.id\" name=\"profile-avatar\" :param-readonly=\"true\"></ae-design>\n        <span style=\"margin-left:8px;opacity:0.7;font-size:12px;font-weight:bold\" v-if=\"locals.commentersOverflow.length > 0\">+{{locals.commentersOverflow.length}}</span> -->\n        <div class=\"_CSS-commenter__icon\" :data-count=\"locals.comments.length\">\n          <ae-icon class=\"fal fa-comment\"></ae-icon>\n        </div> \n      </div> \n    </div>\n    <div title=\"Anhänge\" v-if=\"data.anhaenge.length\">\n      <ae-icon class=\"fal fa-paperclip\"></ae-icon>\n      {{ data.anhaenge.length }}\n    </div>\n    <div v-if=\"data.prioritaet\" class=\"_CSS-priority _CSS-priority_spacing\">\n        <div title=\"Hohe Priorität\" v-if=\"data.prioritaet === 3\">\n          <ae-icon class=\"fal fa-arrow-circle-up\"></ae-icon>\n        </div>\n        <div title=\"Mittlere Priorität\" v-else-if=\"data.prioritaet === 2\">\n          <ae-icon class=\"fal fa-circle\" ></ae-icon>\n        </div>\n        <div title=\"Niedrige Priorität\" v-else-if=\"data.prioritaet === 1\">\n          <ae-icon class=\"fal fa-arrow-circle-down\"></ae-icon>\n        </div>\n      </div>\n      <div class=\"_CSS-statistics\">\n      <span v-if=\"data.erledigt && data.bis\" class=\"_CSS_to__date\" title=\"Zu erledigen bis\">\n        {{ Aeppic.DateTime.fromISO(data.bis).toLocaleString() }}\n      </span>\n      <span v-if=\"!data.erledigt && data.bis\" class=\"_CSS_to__date\" :title=\"Aeppic.DateTime.fromISO(data.bis).toLocaleString()\">\n          <div v-if=\"controller.daysLeft !== 0\" class=\"_CSS-to__title\">Tage übrig &nbsp</div>\n          <div class=\"_CSS-to__value\" :class=\"{ '_CSS-to__value--overdue': controller.isOverdue, '_CSS-to__value--warning': controller.daysLeft <= 5 && controller.daysLeft >= 0 }\">{{ controller.daysLeft === 0 ? 'Heute' : controller.daysLeft }}</div>\n      </span>\n    </div>\n    <div class=\"_CSS-card__flex-container\">\n      <div class=\"_CSS-card-assignees\" v-if=\"data.verantwortlich && data.verantwortlich.length\">\n        <ae-design name=\"avatar--tiny\" :document-id=\"data.verantwortlich[0].id\"></ae-design>\n        <ae-design v-if=\"data.verantwortlich.length === 2\" name=\"avatar--tiny\" :document-id=\"data.verantwortlich[1].id\"></ae-design>\n        <ae-design v-if=\"data.verantwortlich.length > 2\" name=\"avatar--tiny\" :document-id=\"data.verantwortlich[1].id\" :param-overwrite-display-with=\"'+' + (data.verantwortlich.length - 1)\" :title=\"locals.tooltipWeitereVerantwortliche\"></ae-design>\n      </div>\n    </div>\n\n\t\t<!-- <div class=\"_CSS-card-categories\">\n\t\t\t<ae-design class=\"_CSS-card-category\" name=\"icon\" v-for=\"category in data.kategorie\" :document-id=\"category.id\" :key=\"category.id\"></ae-design>\n\t\t</div> -->\n\t</div>\n  </div>\n</div>\n\n\n\n<ae-popup ref=\"popup\" base-attachment=\"top left\" popup-attachment=\"bottom left\" :close-delay=\"200\" target-offset=\"5 0\">\n  <div class=\"_CSS-popup\" slot=\"popup\" @mouseenter=\"controller.mouseEnter()\" @mouseleave=\"controller.mouseLeave()\">\n    <ae-control :readonly=\"true\" name=\"editor-light\" :document=\"document\" field-name=\"beschreibung\"></ae-control>\n  </div>\n</ae-popup> \n\n","css":"._CSS {\n  --padding: var(--ae-size-1);\n  display: flex;\n  flex-flow: column;\n}\n\n._CSS-card {\n  display: flex;\n\n  background-color: var(--ae-ui-background);\n  border-radius: var(--ae-border-radius);\n\n  //border-style: solid;\n  //border-width: 1px 1px 1px 3px;\n  //border-color: transparent transparent transparent var(--ae-ui-background);\n  height: 100%;\n\n  flex: 1;\n  margin:0;\n  flex-flow: row;\n}\n\n._CSS-card--with-border {\n  border: var(--ae-border-width) solid var(--ae-border-color);\n}\n\n._CSS-card--selected {\n  border-color: var(--ae-primary-900) !important;\n}\n\n._CSS-card--finished {\n  text-decoration: line-through;\n  opacity: 0.6;\n}\n\n._CSS-card._CSS-card--overdue {\n  border-left-color: hsl(1, 85%, 84%);\n}\n\n._CSS-card__flex-container {\n  display: flex;\n}\n\n._CSS-card__flex-container > * ~ * {\n  margin-left: 2ch;\n}\n\n._CSS-card__timerecording {\n  padding-right: var(--padding);\n}\n\n._CSS-card__primary {\n  position: relative;\n\n  display: flex;\n\n  flex: 1;\n  width: 100%;\n  padding: var(--padding);\n  overflow: hidden;\n}\n\n/* ._CSS-card__primary:after {\n    position: absolute;\n    bottom: 0;\n    left: 0;\n    width: 100%;\n    height: 60%;\n    content: \"\";\n    background-image: linear-gradient(180deg,hsla(0,0%,100%,.1) 0,#fff);\n    pointer-events: none;\n} */\n\n\n._CSS-card-intro {\n  flex: 1;\n  display:flex;\n  flex-direction:row;\n  align-items: center;\n\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n}\n\n._CSS-card-intro > * {\n  margin: 0 1ch;\n}\n\n._CSS-card-title {\n  white-space: normal;\n}\n\n._CSS-card__secondary {\n  flex: 1;\n  padding: var(--padding);\n  font-size: 0.8em;\n  overflow: auto;\n}\n\n._CSS-card__tertiary {\n  position: relative;\n  display: flex;\n  font-size: 0.9em;\n  align-items: center;\n  justify-content: space-between;\n  padding: var(--ae-size-1);\n  color: var(--ae-foreground-l2);\n}\n\n._CSS-card-intro__description {\n  display: flex;\n  font-size: 0.9em;\n  align-items: center;\n  justify-content: space-between;\n}\n\n\n._CSS-card-assignees {\n  display: flex;\n  flex-flow: row;\n}\n\n._CSS-card-assignees > * ~ * {\n  margin-left: 1px;\n}\n\n._CSS-statistics {\n  display: flex;\n}\n\n._CSS-statistics > * {\n  margin-right: 2ch;\n}\n\n/* \n * Comments\n */\n\n._CSS-commenter__indicator {\n  display:flex;\n  justify-content:flex-end;\n}\n\n._CSS-commenter__area {\n  position:relative;\n  border-radius:16px;\n  display:flex;\n  align-items:center;\n  white-space:nowrap;\n  margin:0;\n  padding:0;\n  overflow:hidden;\n}\n\n._CSS-commenter__area > * {\n  /* padding: 0 1px; */\n}\n\n._CSS-commenter__icon {\n  xopacity: var(--ae-opacity-1);\n  height:100%;\n  width:40px;\n  display:flex;\n  align-items:center;\n  justify-content:center;\n  padding: var(--ae-size-2) var(--ae-size-3);\n}\n\n._CSS-commenter__icon::after {\n  content: attr(data-count);\n  padding-left: 4px;\n  xfont-weight: bold;\n}\n\n\n._CSS-popup {\n  position: relative;\n  background: var(--ae-background);\n  padding: 10px;\n  box-shadow: var(--ae-shadow-3);\n  border-radius: var(--ae-border-radius);\n\n  max-width: 500px;\n  max-height: 200px;\n  overflow: hidden;\n}\n\n\n._CSS-popup:after {\n  position: absolute;\n  bottom: 0;\n  left: 0;\n  width: 100%;\n  height: 60%;\n  content: \"\";\n  background-image: linear-gradient(180deg,hsla(0,0%,100%,.1) 0,white);\n  pointer-events: none;\n}\n\n._CSS-checkbox-done:hover {\n  opacity: 0.6;\n  cursor: pointer;\n}\n\n\n._CSS_to__date {\n  font-size: 0.9em;\n  display: flex;\n}\n\n._CSS-to__value {\n  color: var(--ae-foreground-l2);\n}\n\n._CSS-to__value--overdue {\n  color: var(--ae-accent-red-600);\n  font-weight: 500;\n}\n\n._CSS-to__value--warning {\n  color: var(--ae-accent-orange-500);\n  font-weight: 500;\n}\n\n._CSS-priority {\n  position: relative;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  //padding-left: 2px;\n  //padding-right: 2px;  \n   border-radius:16px;\n}\n\n._CSS-priority_spacing {\n  margin-left: var(--ae-size-1);\n  margin-right: var(--ae-size-1);\n}\n\n","controller":"class Controller {\n  async init() {\n    locals.attachments = []\n    locals.commenters = []\n    locals.commentersOverflow = []\n\n    locals.tooltipWeitereVerantwortliche = ''\n    locals.tooltipWeitereVerantwortliche = await this.updateWeitereVerantwortliche()\n\n\n    this.subscribeCommenters() \n  }\n\n  get isOverdue() {\n    if (params.hideOverdue) {\n      return null\n    }\n\n    if (!data.erledigt && data.bis) {\n      return this.daysLeft <= 0\n    }\n \n    return false\n  }\n\n  get progress() {\n    if (data.erledigt) {\n      return null\n    }\n\n    let progress = 0\n\n    if (data.fortschritt) {\n      progress = Number(data.fortschritt)\n    } \n    return progress\n  }\n\n  get daysLeft() {\n    return -Aeppic.DateTime.local().diff(Aeppic.DateTime.fromISO(data.bis)).toFormat('d')\n  }\n  \n  async updateWeitereVerantwortliche() {\n    if (!data || !data.verantwortlich || data.verantwortlich.length <= 1) {\n      return ''\n    }\n\n    const others = data.verantwortlich.slice(1)\n    let title = '' \n     \n    for (const other of others) {\n      const va = await Aeppic.get(other)\n\n      if (title.length > 0) {\n        title += '\\n'\n      }\n\n      if (va && va.data.name) {\n        title += `${va.data.name}`\n      } else {\n        title += `Unbenannt`\n      }\n    }\n \n    return title\n  }\n \n  subscribeCommenters() {\n    Aeppic.subscribe(`p:${document.id} f.id:cf155969-ede1-43a4-9b10-3a697b19db91`, async (documents)=>{\n      locals.comments = documents\n      // locals.comments.sort((a,b) => this.sortComment(a,b))\n\n      const all = await Aeppic.getAll(locals.comments.map(c => c.modified.by))  \n      const allSortedBackwards = all.reverse()\n      const unique = allSortedBackwards.reduce((x, y) => x.findIndex(e=>e != null && y != null && e.id==y.id)<0 ? [...x, y]: x, [])\n \n      locals.commenters = unique\n      // locals.commenters.push(...all, ...all)\n      locals.commentersOverflow = []\n\n      const LIMIT = 5\n      \n      if (locals.commenters.length > LIMIT) {\n        locals.commentersOverflow = locals.commenters.splice(LIMIT, locals.commenters.length - LIMIT)\n      }\n    })\n  }\n\n  async toggleDone() {\n    const editable = await Aeppic.edit(document)\n\n    editable.data.erledigt = !data.erledigt\n\n    Aeppic.save(editable)\n  }\n  \n  mouseEnter() {\n    $refs.popup.cancelClose()\n  }\n\n  mouseLeave() {\n    $refs.popup.close()\n  }\n}\n\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2018-10-24T09:39:51+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2022-10-19T08:53:03+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1666169583599,"ct":1588927853692,"a_depth":4,"a":["apps","5acfd7a2-33e4-498a-9150-71e1ab772bfc","20c92864-6a81-4006-96f9-b78f473cd129","3d456c38-6282-416e-8c5e-7d20b0517a6e"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"5e67d7f6-6d5d-40e1-8da0-4770abe62567","v":"ac03851e812df04e","cloneOf":{"id":"24e1473b-97ac-44de-bc20-13ed678943bb","v":"initial","text":"ref-card"},"originalCloneOf":{"id":"24e1473b-97ac-44de-bc20-13ed678943bb","v":"initial","text":"ref-card"},"previous":{"v":"06a332411ae8aa33"},"p":"2cea1044-a33a-4d05-9139-12c9a4fe0627","f":{"id":"design-form","v":"24435d748c76f819","text":"Design"},"data":{"name":"ref-card","template":"<div class=\"_CSS-card ae-navigatable\" \n    @click.stop=\"$emit('selected', document)\"\n>\n  <div>\n    <ae-design name=\"avatar--tiny\" :document-id=\"document.created.by\"></ae-design>\n  </div>\n  <div class=\"_CSS-card__content\">\n    <div class=\"_CSS-content\">\n      <ae-control name=\"editor-light\" :readonly=\"true\" field-name=\"beschreibung\" :document=\"document\"></ae-control>\n    </div>\n    <div class=\"_CSS-card__info\">\n      <div class=\"_CSS-date\" v-if=\"controller.date\">\n        {{ controller.date }}\n      </div>\n    </div>\n  </div>\n</div>\n\n","css":"\n._CSS-content {\n  margin: 0 var(--ae-size-2);\n}\n\n._CSS-card__content {\n  flex: 1;\n\n  display: flex;\n  flex-flow: column;\n}\n\n._CSS-card__info {\n  display: flex;\n  justify-content: flex-end;\n  align-items: center;\n}\n\n._CSS-card {\n  display: flex;\n  flex: 100%;\n  border: solid var(--ae-border-color) var(--ae-border-width);\n  border-radius: var(--ae-border-radius);\n  padding: var(--ae-size-1);\n}\n","controller":"class Controller {\n  get date() {\n    if (!data.datum) {\n      return ''\n    }\n\n    const date = DateTime.fromISO(data.datum)\n    const diff = -date.diffNow('days').days.toFixed(0)\n\n    if (diff === 0) {\n      return date.toLocaleString(DateTime.TIME_24_SIMPLE)\n    }\n\n    if (diff > 7) {\n      return date.toLocaleString(DateTime.DATETIME_MED)\n    }\n\n    return date.toLocaleString({weekday: 'long', hour: '2-digit', minute: '2-digit' })\n  }\n}\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-08-06T10:20:01+00:00","by":"77031fd1-c20d-4484-b4b4-46c01bdab986","from":"","client":"server"},"modified":{"at":"2020-09-14T12:48:20+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1600087700616,"ct":1596709201243,"a_depth":4,"a":["apps","cf08a83c-2872-47fb-8886-6009ac1e19e5","b8fe3038-b9dc-4eb6-a141-8b80ed39748e","2cea1044-a33a-4d05-9139-12c9a4fe0627"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"65122f1b-62f6-488b-8a3d-3f1ca8e338ac","v":"240554e8fc0142bd","previous":{"v":"6b81e5607eb4438a"},"p":"8dbe21a7-7642-4884-986b-a119c6498bd3","f":{"id":"design-form","v":"24435d748c76f819","text":"Design"},"data":{"name":"ref-card","template":"<div class=\"_CSS-card ae-navigatable\" :class=\"{ '_CSS-card--selected': params.isSelected, '_CSS-card--with-border': params.noBorder !== true }\" @click.stop=\"$emit('selected', document)\">\n  <div class=\"_CSS-card__primary\">\n    <ae-design name=\"title\" :document=\"document\" style=\"flex: 1;\"></ae-design>\n\n    <div class=\"_CSS-card-assignees\" v-if=\"data.attendees && data.attendees.length\">\n      <!-- <ae-design name=\"avatar--tiny\" :document-id=\"data.attendees[0].id\"></ae-design>\n      <ae-design v-if=\"data.attendees.length === 2\" name=\"avatar--tiny\" :document-id=\"data.attendees[1].id\"></ae-design>\n      <ae-design v-if=\"data.attendees.length > 2\" name=\"avatar--tiny\" :document-id=\"data.attendees[1].id\" :param-overwrite-display-with=\"'+' + (data.attendees.length - 1)\" :title=\"locals.tooltipWeitereVerantwortliche\"></ae-design> -->\n      <ae-design name=\"avatar--tiny\" :document-id=\"data.attendees[0].id\"></ae-design>\n      <ae-design v-if=\"data.attendees.length >= 2\" name=\"avatar--tiny\" :document-id=\"data.attendees[1].id\"></ae-design>\n      <ae-design v-if=\"data.attendees.length >= 3\" name=\"avatar--tiny\" :document-id=\"data.attendees[2].id\"></ae-design>\n      <ae-design v-if=\"data.attendees.length >= 4\" name=\"avatar--tiny\" :document-id=\"data.attendees[3].id\"></ae-design>\n      <ae-design v-if=\"data.attendees.length > 4\" name=\"avatar--tiny\" :document-id=\"data.attendees[0].id\" :param-overwrite-display-with=\"'+' + (data.attendees.length - 4)\" :title=\"locals.tooltipWeitereVerantwortliche\"></ae-design>\n    </div>\n    <div v-if=\"data.date\" :title=\"Aeppic.DateTime.fromISO(data.date).toLocaleString(Aeppic.DateTime.DATE_SHORT)\">\n      {{ controller.date }}\n    </div>\n    <div v-else>\n      <i>Kein Datum angegeben</i>\n    </div>\n  </div>\n</div>","css":"._CSS {\n  --padding: 0.25rem 1rem 0.2rem 0.5rem;\n  display: flex;\n  flex-flow: column;\n}\n\n._CSS-card {\n  display: flex;\n  flex-flow: row;\n\n  min-height: 38px;\n\n  background-color: var(--ae-ui-background);\n  border-radius: var(--ae-border-radius);\n\n  border-style: solid;\n  border-width: 1px;\n  border-color: transparent;\n\n  flex: 1;\n  margin:0;\n}\n\n._CSS-card--with-border {\n  border: var(--ae-border-width) solid var(--ae-border-color);\n}\n\n._CSS-card--selected {\n  border-color: var(--ae-primary-900) !important;\n}\n\n\n._CSS-card__primary {\n  position: relative;\n\n  display: flex;\n\n  flex: 1;\n  width: 100%;\n  padding: var(--padding);\n  overflow: hidden;\n}\n\n._CSS-card__primary > * {\n  margin: 0 var(--ae-size-1);\n}\n\n._CSS-card-assignees {\n  display: flex;\n  flex-flow: row;\n}\n\n._CSS-card-assignees > * ~ * {\n  margin-left: var(--ae-size-1);\n}","controller":"  async init() {\n    locals.tooltipWeitereVerantwortliche = ''\n    locals.tooltipWeitereVerantwortliche = await this.updateWeitereVerantwortliche()\n  }\n  \n  async updateWeitereVerantwortliche() {\n    if (!data.attendees || data.attendees.length <= 1) {\n      return ''\n    }\n\n    const others = data.attendees.slice(4)\n    let title = '' \n     \n    for (const other of others) {\n      const va = await Aeppic.get(other)\n\n      if (title.length > 0) {\n        title += '\\n'\n      }\n\n      if (va && va.data.name) {\n        title += `${va.data.name}`\n      } else {\n        title += `Unbenannt`\n      }\n    }\n \n    return title\n  }\n\n  get date() {\n    const date = DateTime.fromISO(data.date)\n\n    // if (date.toRelativeCalendar()) {\n    //   // only chrome supports toRelativeCalendar\n    //   return date.toRelativeCalendar()\n    // }\n\n    const diff = -date.diffNow('days').days\n\n    if (diff > 365 && diff <= 730) {\n      return 'vor einem Jahr'\n    } \n\n    if (diff > 21 && diff <= 51) {\n      return 'vor einem Monat'\n    } \n\n    if (diff > 14 && diff <= 21) {\n      return 'vor zwei Wochen'\n    }\n\n    if (diff >= 2 && diff <= 7) {\n      return date.toLocaleString({weekday: 'long' })\n    }\n\n    if (diff <= 1) {\n      return 'heute'\n    }\n\n    return date.toLocaleString(DateTime.DATE_MED)\n  }","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2019-06-05T13:08:43+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2020-05-11T11:26:43+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1589196403844,"ct":1559740123621,"a_depth":4,"a":["apps","91a90288-37bc-4f86-be38-4283833717d2","cb7a4c1b-703a-4b16-9190-aa2a26532688","8dbe21a7-7642-4884-986b-a119c6498bd3"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"658233bf-532e-42ed-ac93-ce90497dbb6d","v":"initial","cloneOf":{"id":"a3e96f4d-4d42-4141-bf98-2cdb435b4990","v":"cfa2678f1e125046","text":"ref-card"},"originalCloneOf":{"id":"a3e96f4d-4d42-4141-bf98-2cdb435b4990","v":"cfa2678f1e125046","text":"ref-card"},"p":"f91389b0-5c78-498b-a6e3-27fc97ce898d","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"ref-card","template":"<div class=\"bp-card bp-card--bordered _CSS-line\" @click.stop=\"$emit('selected', document)\">\n  <div style=\"font-style:italic\">{{ controller.typ }}</div>\n  <div class=\"_CSS-truncate\">{{ data.beschreibung.slice(0,300) }} </div>\n  <div>{{ data.datum && Aeppic.DateTime.fromISO(data.datum).toLocaleString() }}</div>\n</div>","css":"._CSS-line {\n  width: 100%;\n  gap: var(--ae-size-2);\n  display: flex;\n}\n\n._CSS-truncate{\n  overflow: hidden;\n  white-space: nowrap;\n  text-overflow: ellipsis;\n\n  color: var(--ae-background-700);\n}","controller":"class Controller {\n  async init() {\n    locals.form = null\n    locals.form = await Aeppic.getFormForDocument(document)\n  }\n\n  get typ() {\n    return locals.form?.getField('typ').settings.options.find(option => option.value === data.typ).display\n  }\n} ","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2025-09-30T13:53:49+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2025-09-30T13:53:49+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1759240429565,"ct":1759240429565,"a_depth":4,"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","f91389b0-5c78-498b-a6e3-27fc97ce898d"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"66cc81a7-5697-423a-ada3-625bacaab3b7","v":"0b3ea6ea35953051","cloneOf":{"id":"10e8709d-e20a-45d0-8c53-5426a0262541","v":"2b54a5dea5caec8d","text":"ref-card"},"originalCloneOf":{"id":"10e8709d-e20a-45d0-8c53-5426a0262541","v":"2b54a5dea5caec8d","text":"ref-card"},"previous":{"v":"186be1e45af4ec7f"},"p":"544d11b1-a156-4568-aeb3-2a60b2b57807","f":{"id":"design-form","v":"24435d748c76f819","text":"Design"},"data":{"name":"ref-card","template":"<div class=\"_CSS-card\" \n      :class=\"{ '_CSS-card--finished': data.erledigt, '_CSS-card--overdue': controller.isOverdue, '_CSS-card--with-border': params.noBorder !== true && !params.withoutBorder }\"\n      @click.stop=\"$emit('selected', document)\"\n>\n\t<div class=\"_CSS-card__primary\">\n    <button class=\"ae-button bp-button-icon _CSS-checkbox-done\" v-if=\"!params.readonly\" @click.stop=\"controller.toggleDone()\">\n      <ae-icon v-show=\"data.erledigt\" class=\"far fa-check\"></ae-icon>\n      <ae-icon v-show=\"!data.erledigt\" class=\"far fa-square\"></ae-icon>\n    </button>\n    <div class=\"_CSS-card-intro\">\n      <ae-design class=\"_CSS-card-title\" name=\"title\" :document=\"document\"></ae-design>\n      <!-- {\"ops\":[{\"insert\":\"\\n\"}]} has length of 25 -->\n      <div \n           v-if=\"data.beschreibung.length > 25\"\n           ref=\"descriptionIcon\"\n           @mouseleave=\"$refs.popup.close()\"\n           @mouseover=\"$refs.popup.show({ target: $refs.descriptionIcon })\"\n           class=\"_CSS-card-intro__description\"\n           xtitle=\"Beschreibung vorhanden\"\n           >\n        <ae-icon class=\"fal fa-file-alt\"></ae-icon>\n      </div>\n\t\t</div>\n\t</div>\n  <!-- <div class=\"_CSS-card__secondary\">\n    {{data.beschreibung}}\n  </div> -->\n  <div style=\"display: flex;\">\n  <ae-layout layout-id=\"f46659ee-b6b2-4be0-adab-15fe8a690f93\" :param-document=\"document\" :param-readonly=\"params.readonly\"></ae-layout>\n\t<div class=\"_CSS-card__tertiary \">\n    \n    \n    <div title=\"Zeiterfassung\" class=\"_CSS-card__timerecording\" v-if=\"locals.duration\">\n      <ae-icon class=\"fal fa-hourglass-end\"></ae-icon>\n      {{ locals.readableDuration }}\n    </div>\n    <div title=\"Kommentare\" class=\"_CSS-commenter__indicator\" v-if=\"locals.commenters.length > 0\" >\n      <div class=\"_CSS-commenter__area\">\n        <!-- <ae-design class=\"_CSS-commenter\" v-for=\"commenter of locals.commenters\" v-if=\"commenter\" :key=\"commenter.id\" :document-id=\"commenter.id\" name=\"profile-avatar\" :param-readonly=\"true\"></ae-design>\n        <span style=\"margin-left:8px;opacity:0.7;font-size:12px;font-weight:bold\" v-if=\"locals.commentersOverflow.length > 0\">+{{locals.commentersOverflow.length}}</span> -->\n        <div class=\"_CSS-commenter__icon\" :data-count=\"locals.comments.length\">\n          <ae-icon class=\"fal fa-comment\"></ae-icon>\n        </div> \n      </div> \n    </div>\n    <div title=\"Anhänge\" v-if=\"data.anhaenge.length\">\n      <ae-icon class=\"fal fa-paperclip\"></ae-icon>\n      {{ data.anhaenge.length }}\n    </div>\n    <div v-if=\"data.prioritaet\" class=\"_CSS-priority _CSS-priority_spacing\">\n        <div title=\"Hohe Priorität\" v-if=\"data.prioritaet === 3\">\n          <ae-icon class=\"fal fa-arrow-circle-up\"></ae-icon>\n        </div>\n        <div title=\"Mittlere Priorität\" v-else-if=\"data.prioritaet === 2\">\n          <ae-icon class=\"fal fa-circle\" ></ae-icon>\n        </div>\n        <div title=\"Niedrige Priorität\" v-else-if=\"data.prioritaet === 1\">\n          <ae-icon class=\"fal fa-arrow-circle-down\"></ae-icon>\n        </div>\n      </div>\n      <div class=\"_CSS-statistics\">\n      <span v-if=\"data.erledigt && data.bisStart\" class=\"_CSS_to__date\" title=\"Zu erledigen bis\">\n        {{ Aeppic.DateTime.fromISO(data.bisStart).toLocaleString() }} \n      </span>\n      <span v-if=\"!data.erledigt && data.bisStart\" class=\"_CSS_to__date\" :title=\"Aeppic.DateTime.fromISO(data.bisStart).toLocaleString()\">\n          <div v-if=\"controller.daysLeft !== 0\" class=\"_CSS-to__title\">Tage übrig &nbsp</div>\n          <div class=\"_CSS-to__value\" :class=\"{ '_CSS-to__value--overdue': controller.isOverdue, '_CSS-to__value--warning': controller.daysLeft <= 5 && controller.daysLeft >= 0 }\">{{ controller.daysLeft === 0 ? 'Heute' : controller.daysLeft }}</div>\n      </span>\n    </div>\n    <div class=\"_CSS-card__flex-container\">\n      <div class=\"_CSS-card-assignees\" v-if=\"data.verantwortlich && data.verantwortlich.length\">\n        <ae-design name=\"avatar--tiny\" :document-id=\"data.verantwortlich[0].id\"></ae-design>\n        <ae-design v-if=\"data.verantwortlich.length === 2\" name=\"avatar--tiny\" :document-id=\"data.verantwortlich[1].id\"></ae-design>\n        <ae-design v-if=\"data.verantwortlich.length > 2\" name=\"avatar--tiny\" :document-id=\"data.verantwortlich[1].id\" :param-overwrite-display-with=\"'+' + (data.verantwortlich.length - 1)\" :title=\"locals.tooltipWeitereVerantwortliche\"></ae-design>\n      </div>\n    </div>\n\n\t\t<!-- <div class=\"_CSS-card-categories\">\n\t\t\t<ae-design class=\"_CSS-card-category\" name=\"icon\" v-for=\"category in data.kategorie\" :document-id=\"category.id\" :key=\"category.id\"></ae-design>\n\t\t</div> -->\n\t</div>\n  </div>\n</div>\n\n\n\n<ae-popup ref=\"popup\" base-attachment=\"top left\" popup-attachment=\"bottom left\" :close-delay=\"200\" target-offset=\"5 0\">\n  <div class=\"_CSS-popup\" slot=\"popup\" @mouseenter=\"controller.mouseEnter()\" @mouseleave=\"controller.mouseLeave()\">\n    <ae-control :readonly=\"true\" name=\"editor-light\" :document=\"document\" field-name=\"beschreibung\"></ae-control>\n  </div>\n</ae-popup> \n\n","css":"._CSS {\n  --padding: var(--ae-size-1);\n  display: flex;\n  flex-flow: column;\n}\n\n._CSS-card {\n  display: flex;\n\n  background-color: var(--ae-ui-background);\n  border-radius: var(--ae-border-radius);\n\n  height: 100%;\n\n  flex: 1;\n  margin:0;\n  flex-flow: row wrap;\n}\n\n._CSS-card--with-border {\n  border: var(--ae-border-width) solid var(--ae-border-color);\n}\n\n._CSS-card--finished {\n  text-decoration: line-through;\n  opacity: var(--ae-opacity-1);\n}\n\n._CSS-card._CSS-card--overdue {\n  border-left-color: hsl(1, 85%, 84%);\n}\n\n._CSS-card__flex-container {\n  display: flex;\n}\n\n._CSS-card__flex-container > * ~ * {\n  margin-left: 2ch;\n}\n\n._CSS-card__timerecording {\n  padding-right: var(--padding);\n}\n\n._CSS-card__primary {\n  position: relative;\n  min-width: min-content;\n\n  display: flex;\n\n  flex: 1;\n  width: 100%;\n  padding: var(--padding);\n  overflow: hidden;\n}\n\n._CSS-card-intro {\n  flex: 1 0 max-content;\n  display:flex;\n  flex-direction:row;\n  align-items: center;\n\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n}\n\n._CSS-card-intro > * {\n  margin: 0 1ch;\n}\n\n._CSS-card-title {\n  white-space: normal;\n}\n\n._CSS-card__secondary {\n  flex: 1;\n  padding: var(--padding);\n  font-size: 0.8em;\n  overflow: auto;\n}\n\n._CSS-card__tertiary {\n  position: relative;\n  display: flex;\n  font-size: 0.9em;\n  align-items: center;\n  justify-content: space-between;\n  padding: var(--ae-size-1);\n  color: var(--ae-foreground-l2);\n}\n\n._CSS-card-intro__description {\n  display: flex;\n  font-size: 0.9em;\n  align-items: center;\n  justify-content: space-between;\n}\n\n\n._CSS-card-assignees {\n  display: flex;\n  flex-flow: row;\n}\n\n._CSS-card-assignees > * ~ * {\n  margin-left: 1px;\n}\n\n._CSS-statistics {\n  display: flex;\n}\n\n._CSS-statistics > * {\n  margin-right: 2ch;\n}\n\n/* \n * Comments\n */\n\n._CSS-commenter__indicator {\n  display:flex;\n  justify-content:flex-end;\n}\n\n._CSS-commenter__area {\n  position:relative;\n  border-radius:16px;\n  display:flex;\n  align-items:center;\n  white-space:nowrap;\n  margin:0;\n  padding:0;\n  overflow:hidden;\n}\n\n._CSS-commenter__area > * {\n  /* padding: 0 1px; */\n}\n\n._CSS-commenter__icon {\n  xopacity: var(--ae-opacity-1);\n  height:100%;\n  width:40px;\n  display:flex;\n  align-items:center;\n  justify-content:center;\n  padding: var(--ae-size-2) var(--ae-size-3);\n}\n\n._CSS-commenter__icon::after {\n  content: attr(data-count);\n  padding-left: 4px;\n  xfont-weight: bold;\n}\n\n\n._CSS-popup {\n  position: relative;\n  background: var(--ae-background);\n  padding: 10px;\n  box-shadow: var(--ae-shadow-3);\n  border-radius: var(--ae-border-radius);\n\n  max-width: 500px;\n  max-height: 200px;\n  overflow: hidden;\n}\n\n\n._CSS-popup:after {\n  position: absolute;\n  bottom: 0;\n  left: 0;\n  width: 100%;\n  height: 60%;\n  content: \"\";\n  background-image: linear-gradient(180deg,hsla(0,0%,100%,.1) 0,white);\n  pointer-events: none;\n}\n\n._CSS-checkbox-done:hover {\n  opacity: var(--ae-opacity-1);\n  cursor: pointer;\n}\n\n\n._CSS_to__date {\n  font-size: 0.9em;\n  display: flex;\n}\n\n._CSS-to__value {\n  color: var(--ae-foreground-l2);\n}\n\n._CSS-to__value--overdue {\n  color: var(--ae-accent-red-600);\n  font-weight: 500;\n}\n\n._CSS-to__value--warning {\n  color: var(--ae-accent-orange-500);\n  font-weight: 500;\n}\n\n._CSS-priority {\n  position: relative;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n   border-radius:16px;\n}\n\n._CSS-priority_spacing {\n  margin-left: var(--ae-size-1);\n  margin-right: var(--ae-size-1);\n}\n\n","controller":"class Controller {\n  async init() {\n    locals.attachments = []\n    locals.commenters = []\n    locals.commentersOverflow = []\n\n    locals.readableDuration = ''\n    locals.duration = 0\n    \n    locals.tooltipWeitereVerantwortliche = ''\n    locals.tooltipWeitereVerantwortliche = await this.updateWeitereVerantwortliche()\n\n\n    this.subscribeCommenters() \n\n    Aeppic.subscribeQuery('dd148098-bd15-4baa-a4ce-df14e495c629', document.id, (documents) => {\n      const { readable, millis } = this.totalDuration(documents)\n      locals.readableDuration = readable\n      locals.duration = millis\n    })\n  }\n\n  get isOverdue() {\n    if (params.hideOverdue) {\n      return null\n    }\n\n    if (!data.erledigt && data.bisStart) {\n      return this.daysLeft <= 0\n    }\n \n    return false\n  }\n\n  get progress() {\n    if (data.erledigt) {\n      return null\n    }\n\n    let progress = 0\n\n    if (data.fortschritt) {\n      progress = Number(data.fortschritt)\n    } \n    return progress\n  }\n\n  get daysLeft() {\n    return -Aeppic.DateTime.local().diff(Aeppic.DateTime.fromISO(data.bisStart)).toFormat('d')\n  }\n  \n  async updateWeitereVerantwortliche() {\n    if (!data || !data.verantwortlich || data.verantwortlich.length <= 1) {\n      return ''\n    }\n\n    const others = data.verantwortlich.slice(1)\n    let title = '' \n     \n    for (const other of others) {\n      const va = await Aeppic.get(other)\n\n      if (title.length > 0) {\n        title += '\\n'\n      }\n\n      if (va && va.data.name) {\n        title += `${va.data.name}`\n      } else {\n        title += `Unbenannt`\n      }\n    }\n \n    return title\n  }\n \n  subscribeCommenters() {\n    Aeppic.subscribe(`p:${document.id} f.id:cf155969-ede1-43a4-9b10-3a697b19db91`, async (documents)=>{\n      locals.comments = documents\n      // locals.comments.sort((a,b) => this.sortComment(a,b))\n\n      const all = await Aeppic.getAll(locals.comments.map(c => c.modified.by))  \n      const allSortedBackwards = all.reverse()\n      const unique = allSortedBackwards.reduce((x, y) => x.findIndex(e=>e != null && y != null && e.id==y.id)<0 ? [...x, y]: x, [])\n \n      locals.commenters = unique\n      // locals.commenters.push(...all, ...all)\n      locals.commentersOverflow = []\n\n      const LIMIT = 5\n      \n      if (locals.commenters.length > LIMIT) {\n        locals.commentersOverflow = locals.commenters.splice(LIMIT, locals.commenters.length - LIMIT)\n      }\n    })\n  }\n\n  totalDuration(trackings) {\n    const duration = trackings.reduce((prev, cur) => {\n      if (!prev) {\n        return Aeppic.DateTimeDuration.fromObject(cur.data.dauer)\n      }\n\n      return Aeppic.DateTimeDuration.fromObject(cur.data.dauer).plus(prev)\n    }, null)\n\n    if (duration) {\n      return { readable: duration.toFormat('hh:mm'), millis: duration.valueOf() }\n    }\n\n    return {}\n  }\n\n  async toggleDone() {\n    const editable = await Aeppic.edit(document)\n\n    editable.data.erledigt = !data.erledigt\n\n    Aeppic.save(editable)\n  }\n  \n  mouseEnter() {\n    $refs.popup.cancelClose()\n  }\n\n  mouseLeave() {\n    $refs.popup.close()\n  }\n}\n\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-01-14T15:54:28+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-01-14T15:57:11+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1610639831240,"ct":1610639668287,"a_depth":4,"a":["apps","599db2de-4e07-4722-98bd-7f42d498b352","79718664-ed22-4b52-9c10-037881df3578","544d11b1-a156-4568-aeb3-2a60b2b57807"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"78e723fd-367d-41d1-b60e-3a4842ccec8e","v":"219debb6a660630d","cloneOf":{"id":"a9c171b9-9048-424e-82b5-fb8b023f2403","v":"initial","text":"ref-card"},"originalCloneOf":{"id":"a9c171b9-9048-424e-82b5-fb8b023f2403","v":"initial","text":"ref-card"},"previous":{"v":"42f100f5c6f4d15f"},"p":"84ede5f8-c5af-4113-8235-4b7fa528e265","f":{"id":"design-form","v":"24435d748c76f819","text":"Design"},"data":{"name":"ref-card","template":"<div  class=\"bp-card _CSS-card\"\n    :class=\"{ 'bp-card--bordered': params.withoutBorder !== true && params.noBorder !== true, '_CSS-card--internal': controller.isInternalActivity(data.typ),  '_CSS-card--external': !controller.isInternalActivity(data.typ), '_CSS-card--done': data.erledigt }\"\n    @click.stop=\"$emit('selected', document)\"\n>\n  <!-- <div class=\"_CSS-card__marker\" :class=\"{ '_CSS-card__marker--internal': controller.isInternalActivity(data.typ),  '_CSS-card__marker--external': !controller.isInternalActivity(data.typ) }\" :title=\"locals.ausloeserPlaceholder ? locals.ausloeserPlaceholder.display : ''\"></div> -->\n  <div class=\"_CSS-cause\" v-if=\"locals.ausloeserPlaceholder && locals.ausloeserPlaceholder.value !== 'RUECKRUF'\" :title=\"locals.ausloeserPlaceholder.display\">\n    <ae-icon v-if=\"locals.ausloeserPlaceholder.value === 'RUECKRUF'\" class=\"far fa-calendar-day\"></ae-icon>\n    <ae-icon v-else-if=\"locals.ausloeserPlaceholder.value === 'ANFRAGE'\" class=\"far fa-question\"></ae-icon>\n    <ae-icon v-else-if=\"locals.ausloeserPlaceholder.value === 'VERTRAG'\" class=\"far fa-file-contract\"></ae-icon>\n    <ae-icon v-else-if=\"locals.ausloeserPlaceholder.value === 'ANGEBOT'\" class=\"far fa-file\"></ae-icon>\n    <ae-icon v-else-if=\"locals.ausloeserPlaceholder.value === 'INTERN'\" class=\"far fa-user\"></ae-icon>\n    <div v-else>\n      {{ locals.ausloeserPlaceholder.display }}\n    </div>\n  </div> \n\n  <div class=\"_CSS-card__content\">\n    <div class=\"_CSS-content\" v-if=\"locals.ausloeserPlaceholder\">\n      <div v-if=\"locals.ausloeserPlaceholder.value === 'RUECKRUF'\">\n        <ae-design :key=\"data.verknuepftesDokument.id\" name=\"card\" :document-id=\"data.verknuepftesDokument.id || document.id\" @selected=\"$emit('selected', document)\" :param-without-border=\"true\"></ae-design> \n      </div>\n      <ae-control v-else-if=\"data.text.length\" name=\"multiline\" :readonly=\"true\" field-name=\"text\" :document=\"document\"></ae-control> \n    </div>\n\n    <div class=\"_CSS-card__info\">\n      <div v-if=\"data.anhaenge.length\" style=\"margin-right: 1ch;\">\n        <ae-icon class=\"fal fa-paperclip\"></ae-icon> {{ data.anhaenge.length }}\n      </div>\n      <div class=\"_CSS-reporter\">\n        <ae-design name=\"avatar--resizes-with-font\" :document=\"locals.reporter\"></ae-design>\n      </div>\n      <div class=\"_CSS-date\" v-if=\"controller.date\">\n        {{ controller.date }}\n      </div>\n    </div>\n\n  </div>\n</div>\n\n\n","css":"._CSS ._CSS-card {\n  display: flex;\n  justify-content: stretch;\n  flex: 0 0 95%;\n\n  background: var(--ae-background-100);\n  border-radius: var(--ae-border-radius);\n}\n\n._CSS-card:hover {\n  cursor: pointer;\n}\n\n._CSS ._CSS-card--external {\n  margin-left: auto;\n\n  background: var(--ae-background-100);\n}\n\n._CSS-card__marker {\n  margin: 0 var(--ae-size-1) 0 0;\n\n  border-left: var(--ae-size-1) solid transparent;\n  width: var(--ae-size-1);\n  height: 100%;\n  border-radius: var(--ae-border-radius);\n}\n\n._CSS-card__content {\n  flex: 1;\n  min-width: 0;\n\n  display: flex;\n  flex-flow: column;\n}\n\n._CSS-card__info {\n  display: flex;\n  justify-content: flex-end;\n  align-items: center;\n}\n\n._CSS-card__marker--internal {\n  border-left-color: var(--ae-primary-400);\n}\n\n._CSS-card__marker--external {\n  border-left-color: var(--ae-background-400);\n}\n\n._CSS-reporter {\n  margin: 0 var(--ae-size-2);\n}\n\n._CSS-content {\n  xmargin: 0 var(--ae-size-4);\n}\n\n._CSS-cause {\n  color: var(--ae-background-600);\n}\n\n._CSS-card--done {\n  text-decoration: line-through;\n  opacity: var(--ae-opacity-1);\n}","controller":"class Controller {\n  async init() {\n    this.internalActivities = [\n      'INTERN',\n      'RUECKRUF',\n      'ANGEBOT',\n      'VERTRAG',\n    ]\n\n    locals.form = null\n    locals.reporter = null\n\n    locals.form = await Aeppic.getFormForDocument(document)\n    locals.ausloeserPlaceholder = locals.form.getPlaceholder('typ').field.settings.options.find(o => o.value === data.typ)\n\n    locals.reporter = await Aeppic.getProfilePageForAccount(document.created.by)\n  }\n\n  get date() {\n    if (!data.datum) {\n      return ''\n    }\n\n    const date = DateTime.fromISO(data.datum)\n    const diff = -date.diffNow('days').days.toFixed(0)\n\n    if (diff === 0) {\n      return date.toLocaleString(DateTime.TIME_24_SIMPLE)\n    }\n\n    if (diff > 7) {\n      return date.toLocaleString(DateTime.DATETIME_MED)\n    }\n\n    return date.toLocaleString({weekday: 'long', hour: '2-digit', minute: '2-digit' })\n  }\n\n  isInternalActivity(activityValue) {\n    return this.internalActivities.includes(activityValue)\n  }\n}\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-07-02T13:09:14+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2022-01-13T15:02:35+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1642086155945,"ct":1593695354229,"a_depth":4,"a":["apps","9d6ee173-26fe-4472-a271-7667f717094e","53b70eca-0cef-448b-9674-22a70a937eb1","84ede5f8-c5af-4113-8235-4b7fa528e265"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"7bcece71-55ba-4046-bd62-afc7bb018f43","v":"initial","p":"5fbd94f1-09fb-4c05-bcaf-3e35ce71fb9d","f":{"id":"design-form","v":"3385ac6766f32638","text":"Design"},"data":{"name":"ref-card","template":"<div :class=\"{'_CSS--border': !params.noBorder}\">\r\n  <span class=\"_CSS-amount\">{{data.amount}} ×</span>\r\n  <ae-design class=\"_CSS-item\" name=\"title\" :document=\"data.item\"></ae-design>\r\n  <span style=\"flex:1\"></span>\r\n  <span v-if=\"!params.noPrice\" class=\"_CSS-total\" :title=\"controller.priceTooltip\">{{controller.price}}</span>\r\n  <button v-if=\"params.noX == null\" class=\"_CSS-remove\" @click.prevent.stop=\"$emit('remove',document)\">\r\n    <ae-icon class=\"fa fa-times\"></ae-icon>\r\n  </button>\r\n</div>","css":"._CSS {\r\n  display: flex;\r\n  align-items: center;\r\n  flex:1;\r\n  min-width:20em;\r\n  overflow-x:auto;\r\n} \r\n\r\n._CSS > * {\r\n  display: flex;\r\n  align-items: center;\r\n  flex:1;\r\n}\r\n\r\n._CSS--border {\r\n  border: 1px solid var(--ae-background-300);\r\n}\r\n\r\n._CSS-amount {\r\n  margin: 4px;\r\n  border-radius: 2px;\r\n  padding: 4px;\r\n  font-family: 'Courier New', Courier, monospace;\r\n  font-weight: bold;\r\n  background: var(--ae-background-300);\r\n}\r\n\r\n._CSS-total {\r\n  font-family: 'Courier New', Courier, monospace;\r\n  margin: 4px;\r\n  border-radius: 2px;\r\n  padding: 4px;\r\n  font-weight: bold;  \r\n  background: var(--ae-background-300);\r\n}\r\n\r\n._CSS-per-item {\r\n  font-family: 'Courier New', Courier, monospace;\r\n  padding: 8px;\r\n  font-weight: bold;  \r\n  opacity:0.8;\r\n}\r\n\r\n._CSS-remove {\r\n  border:1px solid transparent;\r\n  background:transparent;\r\n  margin: 4px;\r\n  padding: 3px;\r\n}\r\n\r\n._CSS-remove:hover {\r\n  background: var(--ae-background-300);\r\n  border: 1px solid var(--ae-background-400);\r\n  cursor:pointer;\r\n}","controller":"class Controller {\r\n  init() {\r\n    this.numberFormat = new Intl.NumberFormat('de-DE', { style: 'currency', currency: 'EUR' })\r\n    locals.pricePerItem = 1\r\n  }\r\n\r\n  get price() {\r\n    return this.numberFormat.format(data.price/100) \r\n  }\r\n  \r\n  get calcPerItem() {\r\n    if (data.amount > 0) {\r\n      const val = Math.floor((data.price / data.amount) + 0.5) / 100\r\n      return this.numberFormat.format(val)\r\n    }\r\n    return ''\r\n\r\n  }\r\n\r\n  get priceTooltip() {\r\n    return `${this.price} ≈ ${data.amount} * ${this.calcPerItem}`\r\n  }\r\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-11-02T09:38:35+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-11-02T09:38:35+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1635845915781,"ct":1635845915781,"a_depth":4,"a":["apps","781ff5de-69db-49dc-99f0-f328b308cd7d","dbd0bd68-3479-4032-9303-9d51615c27a7","5fbd94f1-09fb-4c05-bcaf-3e35ce71fb9d"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"82de38e5-4faa-48c7-873b-1d8abe2d35c2","v":"6348a03b5356565d","previous":{"v":"b68f7d2fec544895"},"p":"aabed4ee-20ca-4df4-9a78-75a05e97dce9","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"ref-card","applies":"","template":"<div class=\"_CSS-card\" :class=\"{ 'ae-form-cell__input': params.withoutBorder !== true && params.noBorder !== true }\">\n  <ae-design  name=\"thumbnail\"\n              :document=\"document\"\n              :param-click-to-preview=\"true\"\n              :param-background-size=\"params.thumbnailBackgroundSize\"\n              param-width=\"var(--dbps-thumbnail-width-3)\"\n              param-height=\"var(--dbps-thumbnail-height-3)\"\n              class=\"_CSS-thumbnail\"\n  ></ae-design>\n  <button class=\"ae-button\" v-if=\"!params.readonly\" @click.stop=\"$emit('remove', document)\" title=\"Entfernen\">\n    <ae-icon class=\"fa fa-times\"></ae-icon>\n  </button>\n</div>","css":"._CSS ._CSS-card {\n  flex: 1;\n  display: flex;\n  overflow: hidden;\n  justify-content: space-between;\n  align-items: center;\n  background-color: var(--ae-ui-background);\n  border-radius: var(--ae-border-radius);\n}\n\n._CSS-thumbnail {\n  flex: 1;\n  display: flex;\n  justify-content: center;\n}\n","controller":"class Controller {\n  async init() {\n    locals.indexPictureSrc = ''\n    this.onUpdate()\n\n    await Aeppic.nextRenderPass()\n    startEditing()\n  }\n\n  async onUpdate() {\n    locals.videoThumbnail = (await Aeppic.find(`p:\"${document.id}\" f.id:8bf0fb31-716d-4b76-98d8-b7349f1d7529 data.name:thumbnail`))[0]\n\n   const src = await this.getIndexPictureSrc() \n\n   if (src) {\n     locals.indexPictureSrc = src\n   } else {\n      const fallbackImage = await Aeppic.get('be3d0b0b-cf9a-40a2-822b-7d93a7427701')\n      locals.indexPictureSrc = Aeppic.Content.getSrc(fallbackImage, 'file')\n   }\n  }\n\n  async getIndexPictureSrc() {\n    if (!data.datei.dataUrl) {\n      return null\n    }\n\n    if (locals.videoThumbnail) {\n      return Aeppic.Content.getSrc(locals.videoThumbnail, 'file')\n    }\n\n    // TODO: keepAspectRatio based on width or height \n    return `${Aeppic.Content.getThumbnailSrc(document, 'datei')}&keepAspectRatio=height`\n  }\n}\n","packages":[]},"locks":[],"created":{"at":"2018-05-25T10:46:55+00:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","from":"","client":"server"},"modified":{"at":"2020-10-13T10:11:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1602583892078,"ct":1527245215111,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","aabed4ee-20ca-4df4-9a78-75a05e97dce9"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"8355fffa-ef30-44aa-abae-bb0d96af8b14","v":"initial","p":"880453bb-d8f7-452d-ab65-b13e4d291a44","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"ref-card","applies":"","template":"<div class=\"_CSS-card\" :class=\"{ 'ae-form-cell__input': params.withoutBorder !== true && params.noBorder !== true }\" @click.stop=\"$emit('selected', document)\">\n  <div v-if=\"data.vertragsbeginn\"> \n    {{controller.formatedDate}}\n  </div>\n  <ae-design name=\"ref-card-title,title\" :document=\"document\"></ae-design>\n  <div v-if=\"locals.productName\" :title=\"locals.productName\"> \n    {{locals.productName}} \n  </div>\n  <ae-design name=\"ref-card-title,title\" :document=\"document.data.date\"></ae-design>\n  <ae-design v-if=\"!params.noRemove && !params.readonly\" name=\"ref-remove\" :document=\"document\" @remove=\"$emit('remove', $event)\"></ae-design>\n</div>","css":"._CSS ._CSS-card {\n  flex: 1;\n  display: flex;\n  overflow: hidden;\n  justify-content: space-between;\n  align-items: center;\n  background-color: var(--ae-ui-background);\n  border-radius: var(--ae-border-radius);\n}\n","controller":"class Controller {\r\n  async init() {\r\n    locals.product = await Aeppic.get(data.produkt)\r\n\r\n    if (locals.product !== null) {\r\n      locals.productName = locals.product.data.name\r\n    } else {\r\n      locals.productName = ''\r\n    } \r\n  }\r\n\r\n  get formatedDate() {\r\n    if (!data.vertragsbeginn) {\r\n      return ''\r\n    }\r\n     \r\n    return Aeppic.DateTime.fromISO(data.vertragsbeginn).toLocaleString(Aeppic.DateTime.DATE_SHORT)\r\n  }\r\n}","packages":[]},"locks":[],"created":{"at":"2020-05-08T08:52:26+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2020-05-08T08:52:26+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1588927946569,"ct":1588927946568,"a_depth":4,"a":["apps","9c1db9f8-e61a-46ef-9fb2-ca409e980f45","83e0eafe-40b0-4a4d-a4bf-88940f2d098b","880453bb-d8f7-452d-ab65-b13e4d291a44"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"84f7f7bd-f759-41b3-993f-7e2b5cd5ab55","v":"ac3761b13c389b91","cloneOf":{"id":"301c6ef0-9a46-42a4-8c14-cdf84d5e9625","v":"d68707bd2eb8f97b","text":"ref-card"},"originalCloneOf":{"id":"301c6ef0-9a46-42a4-8c14-cdf84d5e9625","v":"d68707bd2eb8f97b","text":"ref-card"},"previous":{"v":"5d96503ebc4f0954"},"p":"59b7188e-1296-4466-a9c2-d6255496e7d6","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"ref-card","template":"<div class=\"_CSS-card\" :class=\"{ '_CSS-card--bordered': params.withoutBorder !== true && params.noBorder !== true, '_CSS-card--clickable': params.handleSelectedReadonly }\" @click.stop=\"$emit('selected', document)\">\n  <ae-design style=\"grid-area: icon\" class=\"_CSS-icon\" name=\"icon\" :document=\"document\"></ae-design>\n  <ae-design style=\"grid-area: title\" class=\"_CSS-center\" name=\"ref-card-title,title\" :document=\"document\" @selected=\"$emit('selected', $event)\"></ae-design>\n  <ae-design style=\"grid-area: close\" v-if=\"!params.noRemove && !params.readonly\" name=\"ref-remove\" :document=\"document\" @remove=\"$emit('remove', $event)\"></ae-design>\n  <ae-design style=\"grid-area: attachments\"  name=\"ref-attachments\" :document=\"document\"></ae-design>\n</div>\n\n","css":"._CSS-card {\n  flex: 1;\n  overflow: hidden;\n  align-items: flex-start;\n  padding: var(--bp-input-content-padding);\n  background-color: white;\n  display: grid;\n  grid-template-columns: auto 1fr auto;\n  grid-template-areas: \n    \"icon title close\"\n    \". attachments .\"\n}\n\n._CSS-icon {\n      padding: var(--ae-size-2) var(--ae-size-3);\n}\n\n._CSS-card--clickable {\n  cursor: pointer;\n}\n\n._CSS-card--bordered {\n  border-radius: var(--ae-border-radius);\n  border: solid var(--ae-border-color) var(--ae-border-width);\n}\n\n._CSS-button {\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  \n  padding: 0.7em;     \n  margin: -0.7em; \n}\n\n._CSS-button-icon {\n  color: var(--ae-theme-text-icon-on-background);\n}\n","controller":"","packages":[]},"locks":[],"created":{"at":"2019-08-05T09:20:35+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2022-10-18T12:05:48+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1666094748749,"ct":1564996835707,"a_depth":4,"a":["apps","b9df606f-b33a-48ad-ba91-a82fa7868fa4","f0010376-2737-42c5-aaf8-f8b8e1cd0449","59b7188e-1296-4466-a9c2-d6255496e7d6"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"861fd32b-2230-48b8-a9cf-807e436c641b","v":"initial","p":"37d7f918-c519-4f95-8e69-d0da9628a059","f":{"id":"design-form","v":"3385ac6766f32638","text":"Design"},"data":{"name":"ref-card","template":"<div class=\"_CSS-card\" :class=\"{ 'ae-form-cell__input': params.withoutBorder !== true && params.noBorder !== true }\" @click.stop=\"$emit('selected', document)\">\r\n  <ae-design style=\"grid-area: icon\" class=\"_CSS-icon\" name=\"icon\" :document=\"document\"></ae-design>\r\n  <ae-design style=\"grid-area: title\" class=\"_CSS-center\" name=\"ref-card-title,title\" :document=\"document\"></ae-design>\r\n  <ae-design style=\"grid-area: close\" v-if=\"!params.noRemove && !params.readonly\" name=\"ref-remove\" :document=\"document\" @remove=\"$emit('remove', $event)\"></ae-design>\r\n  <ae-design style=\"grid-area: attachments\"  name=\"ref-attachments\" :document=\"document\"></ae-design>\r\n</div>\r\n\r\n","css":"._CSS-card {\r\n  flex: 1;\r\n  overflow: hidden;\r\n  align-items: flex-start;\r\n  padding: var(--bp-input-content-padding);\r\n  background-color: white;\r\n  display: grid;\r\n  grid-template-columns: auto 1fr auto;\r\n  grid-template-areas: \r\n    \"icon title close\"\r\n    \". attachments .\"\r\n}\r\n\r\n._CSS-icon {\r\n      padding: var(--ae-size-2) var(--ae-size-3);\r\n}\r\n\r\n/* ._CSS-card--bordered {\r\n  border-radius: 2px;\r\n  border: solid var(--ae-foreground-l2);\r\n  border-color: rgba(0,0,0,0.2);\r\n  border-width: 1px;  \r\n} */\r\n\r\n._CSS-button {\r\n  display: flex;\r\n  justify-content: center;\r\n  align-items: center;\r\n  \r\n  padding: 0.7em;     \r\n  margin: -0.7em; \r\n}\r\n\r\n._CSS-button-icon {\r\n  color: var(--ae-theme-text-icon-on-background);\r\n}\r\n","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-11-02T09:38:35+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-11-02T09:38:35+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1635845915621,"ct":1635845915621,"a_depth":4,"a":["apps","781ff5de-69db-49dc-99f0-f328b308cd7d","dbd0bd68-3479-4032-9303-9d51615c27a7","37d7f918-c519-4f95-8e69-d0da9628a059"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"8677e09f-b6d1-4545-b468-ea2f001bfc4b","v":"initial","p":"a7afe18b-1688-4e33-a5a9-2f5369708f72","f":{"id":"design-form","v":"3385ac6766f32638","text":"Design"},"data":{"name":"ref-card","template":"<button class=\"_CSS-remove\" @click.stop.prevent=\"$emit('remove')\">x</button>\r\n<img height=\"200px\" :src=\"Aeppic.Content.getThumbnailSrc(document, 'picture')\" @click=\"controller.show()\">\r\n<ae-design name=\"title\" :document=\"document\"></ae-design>\r\n\r\n<ae-dialog ref=\"openDialog\" :backdrop-close=\"true\" :full-screen=\"Aeppic.Device === 'Phone'\">\r\n  <!-- <div slot=\"header\" slot-scope=\"scope\" class=\"_CSS-dialog__header\">\r\n    <ae-design  style=\"display:inline-block;\" name=\"title\" ></ae-design>\r\n    <button class=\"ae-button\" @click=\"scope.close()\">\r\n      <ae-icon class=\"fa fa-times\"></ae-icon>\r\n    </button>\r\n  </div> -->\r\n  <div slot=\"body\" >\r\n    <ae-form slot=\"body\" readonly class=\"_CSS-dialog-body\" :document=\"document\" :watch=\"true\"></ae-form>\r\n  </div>\r\n<!--   \r\n\t<div slot=\"commands\" slot-scope=\"scope\" class=\"_CSS-dialog__commands\">\r\n    <button class=\"ae-button\" @click=\"scope.close()\">Abbrechen</button>\r\n\t\t<button class=\"ae-button ae-button--primary\" @click=\"controller.saveNewChild()\">Speichern</button>\r\n\t</div> -->\r\n</ae-dialog>\r\n","css":"._CSS {\r\n  display:flex;\r\n  flex-direction: row;\r\n  align-items: flex-start;\r\n  background:white;\r\n  padding: 8px;\r\n  border: 1px solid lightgray;\r\n}\r\n\r\n._CSS-remove {\r\n  position: absolute;\r\n  top:8px;\r\n  right: 8px;\r\n}\r\n\r\n._CSS-dialog__header {\r\n  width: 80%;\r\n}\r\n\r\n._CSS-dialog-body {\r\n  height: 80%;\r\n}","controller":"show() {\r\n  $refs.openDialog.show()\r\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-11-02T09:38:35+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-11-02T09:38:35+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1635845915340,"ct":1635845915339,"a_depth":4,"a":["apps","781ff5de-69db-49dc-99f0-f328b308cd7d","dbd0bd68-3479-4032-9303-9d51615c27a7","a7afe18b-1688-4e33-a5a9-2f5369708f72"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"87dd49b2-621f-4833-9131-f541adfb8db5","v":"5d990f8afb880d97","previous":{"v":"ef8e3bfc4e0d9ec6"},"p":"d16936c1-7ccc-40f1-b526-d2d9ce37ebd2","f":{"id":"design-form","v":"65801907e0c30697","text":"Design"},"data":{"name":"ref-card","template":"<div class=\"_CSS-card\" :class=\"{ '_CSS-card--selected': params.isSelected, '_CSS-card--with-border': params.noBorder !== true, '_CSS-card--clickable': params.handleSelectedReadonly }\" @click=\"$emit('selected', document)\">\n  <div class=\"_CSS-card__primary\">\n    <ae-design name=\"title\" :document-id=\"document.p\" style=\"margin-right: var(--ae-size-2);width: 250px;\"></ae-design>\n    <ae-design name=\"title-as-link\" :document=\"document\" style=\"flex: 1; min-width: 0;\" @selected=\"$emit('selected', $event)\"></ae-design>\n\n    <!-- <div class=\"_CSS-card-assignees\" v-if=\"data.attendees && data.attendees.length\">\n      <ae-design name=\"avatar--tiny\" :document-id=\"data.attendees[0].id\"></ae-design>\n      <ae-design v-if=\"data.attendees.length >= 2\" name=\"avatar--tiny\" :document-id=\"data.attendees[1].id\"></ae-design>\n      <ae-design v-if=\"data.attendees.length >= 3\" name=\"avatar--tiny\" :document-id=\"data.attendees[2].id\"></ae-design>\n      <ae-design v-if=\"data.attendees.length >= 4\" name=\"avatar--tiny\" :document-id=\"data.attendees[3].id\"></ae-design>\n      <ae-design v-if=\"data.attendees.length > 4\" name=\"avatar--tiny\" :document-id=\"data.attendees[0].id\" :param-overwrite-display-with=\"'+' + (data.attendees.length - 4)\" :title=\"locals.tooltipWeitereVerantwortliche\"></ae-design>\n    </div> -->\n    <span title=\"Anhänge\" v-if=\"data.anhaenge.length\">\n      <ae-icon class=\"far fa-paperclip\"></ae-icon> {{ data.anhaenge.length }}\n    </span>\n    <div v-if=\"data.date\" :title=\"Aeppic.DateTime.fromISO(data.date).toLocaleString(Aeppic.DateTime.DATE_SHORT)\">\n      {{ controller.date }}\n    </div>\n    <div v-else>\n      <i>Kein Datum angegeben</i>\n    </div>\n  </div>\n</div>\n","css":"._CSS {\n  --padding: 0.25rem 1rem 0.2rem 0.5rem;\n  display: flex;\n  flex-flow: column;\n}\n\n._CSS-card {\n  display: flex;\n  flex-flow: row;\n\n  min-height: 38px;\n\n  background-color: var(--ae-ui-background);\n  border-radius: var(--ae-border-radius);\n\n  border-style: solid;\n  border-width: 1px;\n  border-color: transparent;\n\n  flex: 1;\n  margin:0;\n}\n\n._CSS-card--clickable {\n  cursor: pointer;\n}\n\n._CSS-card--with-border {\n  border: var(--ae-border-width) solid var(--ae-border-color);\n}\n\n._CSS-card--selected {\n  border-color: var(--ae-primary-900) !important;\n}\n\n\n._CSS-card__primary {\n  position: relative;\n\n  display: flex;\n\n  flex: 1;\n  width: 100%;\n  padding: var(--padding);\n  overflow: hidden;\n}\n\n._CSS-card__primary > * {\n  margin: 0 var(--ae-size-2);\n}\n\n._CSS-card-assignees {\n  display: flex;\n  flex-flow: row;\n}\n\n._CSS-card-assignees > * ~ * {\n  margin-left: var(--ae-size-1);\n}","controller":"  async init() {\n    locals.tooltipWeitereVerantwortliche = ''\n    locals.tooltipWeitereVerantwortliche = await this.updateWeitereVerantwortliche()\n  }\n  \n  async updateWeitereVerantwortliche() {\n    if (!data.attendees || data.attendees.length <= 1) {\n      return ''\n    }\n\n    const others = data.attendees.slice(4)\n    let title = '' \n     \n    for (const other of others) {\n      const va = await Aeppic.get(other)\n\n      if (title.length > 0) {\n        title += '\\n'\n      }\n\n      if (va && va.data.name) {\n        title += `${va.data.name}`\n      } else {\n        title += `Unbenannt`\n      }\n    }\n \n    return title\n  }\n\n  get date() {\n    const date = DateTime.fromISO(data.date)\n\n    // if (date.toRelativeCalendar()) {\n    //   // only chrome supports toRelativeCalendar\n    //   return date.toRelativeCalendar()\n    // }\n\n    const diff = -date.diffNow('days').days\n\n    if (diff <= 1) {\n      return 'heute'\n    }\n\n    if (diff > 7) {\n      return date.toLocaleString(DateTime.DATE_MED)\n    }\n\n    return date.toLocaleString({weekday: 'long' })\n  }","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-05-08T08:51:15+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2021-06-29T13:33:03+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1624973583174,"ct":1588927875835,"a_depth":4,"a":["apps","94a64d89-d204-4918-b147-d717914fb03e","f254ce25-42f1-4333-8ee7-23554bf746c1","d16936c1-7ccc-40f1-b526-d2d9ce37ebd2"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"a3e96f4d-4d42-4141-bf98-2cdb435b4990","v":"cfa2678f1e125046","previous":{"v":"3616a918a3dab38f"},"p":"f4544b6f-1909-49ac-bc8e-3f70db1125f1","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"ref-card","template":"<div class=\"bp-card bp-card--bordered _CSS-line\" @click.stop=\"$emit('selected', document)\">\n  <div style=\"font-style:italic\">{{ controller.typ }}</div>\n  <div class=\"_CSS-truncate\">{{ data.beschreibung.slice(0,300) }} </div>\n  <div>{{ data.datum && Aeppic.DateTime.fromISO(data.datum).toLocaleString() }}</div>\n</div>","css":"._CSS-line {\n  width: 100%;\n  gap: var(--ae-size-2);\n  display: flex;\n}\n\n._CSS-truncate{\n  overflow: hidden;\n  white-space: nowrap;\n  text-overflow: ellipsis;\n\n  color: var(--ae-background-700);\n}","controller":"class Controller {\n  async init() {\n    locals.form = null\n    locals.form = await Aeppic.getFormForDocument(document)\n  }\n\n  get typ() {\n    return locals.form?.getField('typ').settings.options.find(option => option.value === data.typ).display\n  }\n} ","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-07-27T12:52:12+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-07-27T13:04:10+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1658927050119,"ct":1658926332222,"a_depth":5,"a":["apps","83c76376-420e-4231-9275-d0fe2ab47c32","fdd2f0b2-d628-48b9-a976-1acbf9f1de94","a7e146ca-a568-4c84-a6ed-233a0ec98638","f4544b6f-1909-49ac-bc8e-3f70db1125f1"],"a_forms":["folder","application-form","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"a711bb03-cbbc-45c9-ba38-f1255eadddb2","v":"a05ea4c4c766baa9","cloneOf":{"id":"e3fc2991-e931-4c58-ad3d-af97367e0891","v":"initial","text":"ref-card"},"originalCloneOf":{"id":"e3fc2991-e931-4c58-ad3d-af97367e0891","v":"initial","text":"ref-card"},"previous":{"v":"6993a0dac7284cb5"},"p":"0b6a2b21-9425-466e-9e8d-57ec39cc95e1","f":{"id":"design-form","v":"24435d748c76f819","text":"Design"},"data":{"name":"ref-card","template":"<div class=\"_CSS-card ae-navigatable-dark\" \n      :class=\"{ '_CSS-card--finished': data.erledigt, '_CSS-card--overdue': controller.isOverdue, '_CSS-card--selected': params.isSelected, '_CSS-card--with-border': params.noBorder !== true && !params.withoutBorder }\"\n      @click.stop=\"$emit('selected', document)\"\n>\n\t<div class=\"_CSS-card__primary\">\n    <button class=\"ae-button bp-button-icon _CSS-checkbox-done\" v-if=\"!params.readonly\" @click.stop=\"controller.toggleDone()\">\n      <ae-icon v-show=\"data.erledigt\" class=\"far fa-check\"></ae-icon>\n      <ae-icon v-show=\"!data.erledigt\" class=\"far fa-square\"></ae-icon>\n    </button>\n    <div class=\"_CSS-card-intro\">\n      <ae-design class=\"_CSS-card-title\" name=\"title\" :document=\"document\"></ae-design>\n      <!-- {\"ops\":[{\"insert\":\"\\n\"}]} has length of 25 -->\n      <div \n           v-if=\"data.beschreibung.length > 25\"\n           ref=\"descriptionIcon\"\n           @mouseleave=\"$refs.popup.close()\"\n           @mouseover=\"$refs.popup.show({ target: $refs.descriptionIcon })\"\n           class=\"_CSS-card-intro__description\"\n           xtitle=\"Beschreibung vorhanden\"\n           >\n        <ae-icon class=\"fal fa-file-alt\"></ae-icon>\n      </div>\n\t\t</div>\n\t</div>\n  <!-- <div class=\"_CSS-card__secondary\">\n    {{data.beschreibung}}\n  </div> -->\n  <div style=\"display: flex;\">\n  <ae-layout layout-id=\"f46659ee-b6b2-4be0-adab-15fe8a690f93\" :param-document=\"document\" :param-readonly=\"params.readonly\"></ae-layout>\n\t<div class=\"_CSS-card__tertiary \">\n    \n    \n    <div title=\"Zeiterfassung\" class=\"_CSS-card__timerecording\" v-if=\"locals.duration\">\n      <ae-icon class=\"fal fa-hourglass-end\"></ae-icon>\n      {{ locals.readableDuration }}\n    </div>\n    <div title=\"Kommentare\" class=\"_CSS-commenter__indicator\" v-if=\"locals.commenters.length > 0\" >\n      <div class=\"_CSS-commenter__area\">\n        <!-- <ae-design class=\"_CSS-commenter\" v-for=\"commenter of locals.commenters\" v-if=\"commenter\" :key=\"commenter.id\" :document-id=\"commenter.id\" name=\"profile-avatar\" :param-readonly=\"true\"></ae-design>\n        <span style=\"margin-left:8px;opacity:0.7;font-size:12px;font-weight:bold\" v-if=\"locals.commentersOverflow.length > 0\">+{{locals.commentersOverflow.length}}</span> -->\n        <div class=\"_CSS-commenter__icon\" :data-count=\"locals.comments.length\">\n          <ae-icon class=\"fal fa-comment\"></ae-icon>\n        </div> \n      </div> \n    </div>\n    <div title=\"Anhänge\" v-if=\"data.anhaenge.length\">\n      <ae-icon class=\"fal fa-paperclip\"></ae-icon>\n      {{ data.anhaenge.length }}\n    </div>\n    <div v-if=\"data.prioritaet\" class=\"_CSS-priority _CSS-priority_spacing\">\n        <div title=\"Hohe Priorität\" v-if=\"data.prioritaet === 3\">\n          <ae-icon class=\"fal fa-arrow-circle-up\"></ae-icon>\n        </div>\n        <div title=\"Mittlere Priorität\" v-else-if=\"data.prioritaet === 2\">\n          <ae-icon class=\"fal fa-circle\" ></ae-icon>\n        </div>\n        <div title=\"Niedrige Priorität\" v-else-if=\"data.prioritaet === 1\">\n          <ae-icon class=\"fal fa-arrow-circle-down\"></ae-icon>\n        </div>\n      </div>\n      <div class=\"_CSS-statistics\">\n      <span v-if=\"data.erledigt && data.bis\" class=\"_CSS_to__date\" title=\"Zu erledigen bis\" :title=\"Aeppic.DateTime.fromISO(data.bis).toLocaleString()\">\n        {{ Aeppic.DateTime.fromISO(data.bis).toLocaleString() }}\n      </span>\n      <span v-if=\"!data.erledigt && data.bis\" class=\"_CSS_to__date\" title=\"Zu erledigen bis\" :title=\"Aeppic.DateTime.fromISO(data.bis).toLocaleString()\">\n          <div v-if=\"controller.daysLeft !== 0\" class=\"_CSS-to__title\">Tage übrig &nbsp</div>\n          <div class=\"_CSS-to__value\" :class=\"{ '_CSS-to__value--overdue': controller.isOverdue, '_CSS-to__value--warning': controller.daysLeft <= 5 && controller.daysLeft >= 0 }\">{{ controller.daysLeft === 0 ? 'Heute' : controller.daysLeft }}</div>\n      </span>\n    </div>\n    <div class=\"_CSS-card__flex-container\">\n      <div class=\"_CSS-card-assignees\" v-if=\"data.verantwortlich && data.verantwortlich.length\">\n        <ae-design name=\"avatar--tiny\" :document-id=\"data.verantwortlich[0].id\"></ae-design>\n        <ae-design v-if=\"data.verantwortlich.length === 2\" name=\"avatar--tiny\" :document-id=\"data.verantwortlich[1].id\"></ae-design>\n        <ae-design v-if=\"data.verantwortlich.length > 2\" name=\"avatar--tiny\" :document-id=\"data.verantwortlich[1].id\" :param-overwrite-display-with=\"'+' + (data.verantwortlich.length - 1)\" :title=\"locals.tooltipWeitereVerantwortliche\"></ae-design>\n      </div>\n    </div>\n\n\t\t<!-- <div class=\"_CSS-card-categories\">\n\t\t\t<ae-design class=\"_CSS-card-category\" name=\"icon\" v-for=\"category in data.kategorie\" :document-id=\"category.id\" :key=\"category.id\"></ae-design>\n\t\t</div> -->\n\t</div>\n  </div>\n</div>\n\n<ae-popup ref=\"popup\" base-attachment=\"top left\" popup-attachment=\"bottom left\" :close-delay=\"200\" target-offset=\"5 0\">\n  <div class=\"_CSS-popup\" slot=\"popup\" @mouseenter=\"controller.mouseEnter()\" @mouseleave=\"controller.mouseLeave()\">\n    <ae-control :readonly=\"true\" name=\"editor-light\" :document=\"document\" field-name=\"beschreibung\"></ae-control>\n  </div>\n</ae-popup> \n\n","css":"._CSS {\n  --padding: var(--ae-size-1);\n  display: flex;\n  flex-flow: column;\n}\n\n._CSS-card {\n  display: flex;\n\n  //background-color: var(--ae-ui-background);\n  border-radius: var(--ae-border-radius);\n\n  //border-style: solid;\n  //border-width: 1px 1px 1px 3px;\n  //border-color: transparent transparent transparent var(--ae-ui-background);\n  height: 100%;\n\n  flex: 1;\n  margin:0;\n  flex-flow: row;\n}\n\n._CSS-card--with-border {\n  border: var(--ae-border-width) solid var(--ae-border-color);\n}\n\n._CSS-card--selected {\n  border-color: var(--ae-primary-900) !important;\n}\n\n._CSS-card--finished {\n  text-decoration: line-through;\n  opacity: 0.6;\n}\n\n._CSS-card._CSS-card--overdue {\n  border-left-color: hsl(1, 85%, 84%);\n}\n\n._CSS-card__flex-container {\n  display: flex;\n}\n\n._CSS-card__flex-container > * ~ * {\n  margin-left: 2ch;\n}\n\n._CSS-card__timerecording {\n  padding-right: var(--padding);\n}\n\n._CSS-card__primary {\n  position: relative;\n\n  display: flex;\n\n  flex: 1;\n  width: 100%;\n  padding: var(--padding);\n  overflow: hidden;\n}\n\n/* ._CSS-card__primary:after {\n    position: absolute;\n    bottom: 0;\n    left: 0;\n    width: 100%;\n    height: 60%;\n    content: \"\";\n    background-image: linear-gradient(180deg,hsla(0,0%,100%,.1) 0,#fff);\n    pointer-events: none;\n} */\n\n\n._CSS-card-intro {\n  flex: 1;\n  display:flex;\n  flex-direction:row;\n  align-items: center;\n\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n}\n\n._CSS-card-intro > * {\n  margin: 0 1ch;\n}\n\n._CSS-card-title {\n  white-space: normal;\n}\n\n._CSS-card__secondary {\n  flex: 1;\n  padding: var(--padding);\n  font-size: 0.8em;\n  overflow: auto;\n}\n\n._CSS-card__tertiary {\n  position: relative;\n  display: flex;\n  font-size: 0.9em;\n  align-items: center;\n  justify-content: space-between;\n  padding: var(--ae-size-1);\n  color: var(--ae-foreground-l2);\n}\n\n._CSS-card-intro__description {\n  display: flex;\n  font-size: 0.9em;\n  align-items: center;\n  justify-content: space-between;\n}\n\n\n._CSS-card-assignees {\n  display: flex;\n  flex-flow: row;\n}\n\n._CSS-card-assignees > * ~ * {\n  margin-left: 1px;\n}\n\n._CSS-statistics {\n  display: flex;\n}\n\n._CSS-statistics > * {\n  margin-right: 2ch;\n}\n\n/* \n * Comments\n */\n\n._CSS-commenter__indicator {\n  display:flex;\n  justify-content:flex-end;\n}\n\n._CSS-commenter__area {\n  position:relative;\n  border-radius:16px;\n  display:flex;\n  align-items:center;\n  white-space:nowrap;\n  margin:0;\n  padding:0;\n  overflow:hidden;\n}\n\n._CSS-commenter__area > * {\n  /* padding: 0 1px; */\n}\n\n._CSS-commenter__icon {\n  xopacity: var(--ae-opacity-1);\n  height:100%;\n  width:40px;\n  display:flex;\n  align-items:center;\n  justify-content:center;\n  padding: var(--ae-size-2) var(--ae-size-3);\n}\n\n._CSS-commenter__icon::after {\n  content: attr(data-count);\n  padding-left: 4px;\n  xfont-weight: bold;\n}\n\n\n._CSS-popup {\n  position: relative;\n  background: var(--ae-background);\n  padding: 10px;\n  box-shadow: var(--ae-shadow-3);\n  border-radius: var(--ae-border-radius);\n\n  max-width: 500px;\n  max-height: 200px;\n  overflow: hidden;\n}\n\n\n._CSS-popup:after {\n  position: absolute;\n  bottom: 0;\n  left: 0;\n  width: 100%;\n  height: 60%;\n  content: \"\";\n  background-image: linear-gradient(180deg,hsla(0,0%,100%,.1) 0,white);\n  pointer-events: none;\n}\n\n._CSS-checkbox-done:hover {\n  opacity: 0.6;\n  cursor: pointer;\n}\n\n\n._CSS_to__date {\n  font-size: 0.9em;\n  display: flex;\n}\n\n._CSS-to__value {\n  color: var(--ae-foreground-l2);\n}\n\n._CSS-to__value--overdue {\n  color: #FF7A6D;\n  font-weight: 500;\n}\n\n._CSS-to__value--warning {\n  color: orange;\n  font-weight: 500;\n}\n\n._CSS-priority {\n  position: relative;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  //padding-left: 2px;\n  //padding-right: 2px;  \n   border-radius:16px;\n}\n\n._CSS-priority_spacing {\n  margin-left: var(--ae-size-1);\n  margin-right: var(--ae-size-1);\n}\n\n","controller":"class Controller {\n  async init() {\n    locals.attachments = []\n    locals.commenters = []\n    locals.commentersOverflow = []\n\n    locals.readableDuration = ''\n    locals.duration = 0\n    \n    locals.tooltipWeitereVerantwortliche = ''\n    locals.tooltipWeitereVerantwortliche = await this.updateWeitereVerantwortliche()\n\n\n    this.subscribeCommenters() \n\n    Aeppic.subscribeQuery('dd148098-bd15-4baa-a4ce-df14e495c629', document.id, (documents) => {\n      const { readable, millis } = this.totalDuration(documents)\n      locals.readableDuration = readable\n      locals.duration = millis\n    })\n  }\n\n  get isOverdue() {\n    if (params.hideOverdue) {\n      return null\n    }\n\n    if (!data.erledigt && data.bis) {\n      return this.daysLeft <= 0\n    }\n \n    return false\n  }\n\n  get progress() {\n    if (data.erledigt) {\n      return null\n    }\n\n    let progress = 0\n\n    if (data.fortschritt) {\n      progress = Number(data.fortschritt)\n    } \n    return progress\n  }\n\n  get daysLeft() {\n    return -Aeppic.DateTime.local().diff(Aeppic.DateTime.fromISO(data.bis)).toFormat('d')\n  }\n  \n  async updateWeitereVerantwortliche() {\n    if (!data || !data.verantwortlich || data.verantwortlich.length <= 1) {\n      return ''\n    }\n\n    const others = data.verantwortlich.slice(1)\n    let title = '' \n     \n    for (const other of others) {\n      const va = await Aeppic.get(other)\n\n      if (title.length > 0) {\n        title += '\\n'\n      }\n\n      if (va && va.data.name) {\n        title += `${va.data.name}`\n      } else {\n        title += `Unbenannt`\n      }\n    }\n \n    return title\n  }\n \n  subscribeCommenters() {\n    Aeppic.subscribe(`p:${document.id} f.id:cf155969-ede1-43a4-9b10-3a697b19db91`, async (documents)=>{\n      locals.comments = documents\n      // locals.comments.sort((a,b) => this.sortComment(a,b))\n\n      const all = await Aeppic.getAll(locals.comments.map(c => c.modified.by))  \n      const allSortedBackwards = all.reverse()\n      const unique = allSortedBackwards.reduce((x, y) => x.findIndex(e=>e != null && y != null && e.id==y.id)<0 ? [...x, y]: x, [])\n \n      locals.commenters = unique\n      // locals.commenters.push(...all, ...all)\n      locals.commentersOverflow = []\n\n      const LIMIT = 5\n      \n      if (locals.commenters.length > LIMIT) {\n        locals.commentersOverflow = locals.commenters.splice(LIMIT, locals.commenters.length - LIMIT)\n      }\n    })\n  }\n\n  totalDuration(trackings) {\n    const duration = trackings.reduce((prev, cur) => {\n      if (!prev) {\n        return Aeppic.DateTimeDuration.fromObject(cur.data.dauer)\n      }\n\n      return Aeppic.DateTimeDuration.fromObject(cur.data.dauer).plus(prev)\n    }, null)\n\n    if (duration) {\n      return { readable: duration.toFormat('hh:mm'), millis: duration.valueOf() }\n    }\n\n    return {}\n  }\n\n  async toggleDone() {\n    const editable = await Aeppic.edit(document)\n\n    editable.data.erledigt = !data.erledigt\n\n    Aeppic.save(editable)\n  }\n  \n  mouseEnter() {\n    $refs.popup.cancelClose()\n  }\n\n  mouseLeave() {\n    $refs.popup.close()\n  }\n}\n\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-07-01T14:40:04+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2020-11-26T14:20:17+00:00","by":"ab01efe6-018d-4330-8ec4-5989e212f82a","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1606400417909,"ct":1593614404712,"a_depth":4,"a":["apps","59edbdbc-2cab-426a-bb42-6e57c5158e4f","3be7e887-1bcd-4c3c-979f-b20a986c4c48","0b6a2b21-9425-466e-9e8d-57ec39cc95e1"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"a78f036d-d113-40a3-b65d-2da6a94e6be0","v":"d6941703bf2e263a","previous":{"v":"cf04ae2c1c93fce2"},"p":"53eecc66-c1a1-47da-b9df-67cc2b8b60f5","f":{"id":"design-form","v":"24435d748c76f819","text":"Design"},"data":{"name":"ref-card","template":"<div class=\"bp-card\" :class=\"{ 'bp-card--bordered': !params.withoutBorder }\" @click.stop=\"$emit('selected', document)\">\n  <div class=\"_CSS-title\">\n    <ae-design class=\"_CSS-title__target\" name=\"title\" :document=\"data.document\" style=\"display:inline-block;\"></ae-design>\n    <div class=\"_CSS-content\" v-if=\"data.note\" :title=\"'Notiz: ' + data.note\">\n      ( {{data.note }} )\n    </div>\n    <div class=\"_CSS-date\" v-if=\"data.date\" title=\"Datum der Wiedervorlage\">\n      <span>\n      {{ Aeppic.DateTime.fromISO(data.date).toLocaleString(Aeppic.DateTime.DATE_SHORT) }}\n      </span>\n    </div>\n  </div>\n\n\n  <button class=\"ae-button\" @click.stop=\"$refs.deleteConfirm.$emit('show', document)\" v-if=\"!params.readonly\">\n    <ae-icon class=\"fa fa-times\"></ae-icon>\n  </button>\n</div>\n\n<ae-layout  layout-id=\"6ee77ae8-b2f6-4fce-8fbc-788a55d5f7da\"\n            v-if=\"!params.readonly\"\n            ref=\"deleteConfirm\"\n            @delete=\"controller.deleteDocument()\"\n></ae-layout>\n\n","css":"._CSS-title {\n  flex: 1;\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n\n  min-width: 0;\n}\n\n._CSS-title__target {\n  font-weight: 600;\n}\n\n._CSS-date {\n  margin-left: var(--ae-size-2);\n}\n\n._CSS-content {\n  flex: 1 0 0;\n  margin-left: var(--ae-size-2);\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n}","controller":"deleteDocument() {\n  Aeppic.delete(document)\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-05-08T08:52:36+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2020-10-06T12:39:24+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1601987964894,"ct":1588927956522,"a_depth":4,"a":["apps","8884dd6d-4320-4de2-91fe-6777ecfebec9","b9b17d13-b861-425a-9c17-d27d18d5be06","53eecc66-c1a1-47da-b9df-67cc2b8b60f5"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"a9c171b9-9048-424e-82b5-fb8b023f2403","v":"initial","p":"8d5743bf-228b-4214-8ee3-8089ab480678","f":{"id":"design-form","v":"24435d748c76f819","text":"Design"},"data":{"name":"ref-card","template":"<div  class=\"bp-card _CSS-card\"\n    :class=\"{ 'ae-form-cell__input': params.withoutBorder !== true && params.noBorder !== true, '_CSS-card--internal': data.ausloeser === 'INTERN',  '_CSS-card--external': data.ausloeser === 'KUNDE' }\"\n    @click.stop=\"$emit('selected', document)\"\n>\n  <div class=\"_CSS-card__marker\" :class=\"{ '_CSS-card__marker--internal': data.ausloeser === 'INTERN',  '_CSS-card__marker--external': data.ausloeser === 'KUNDE' }\" :title=\"locals.ausloeserPlaceholder ? locals.ausloeserPlaceholder.display : ''\"></div>\n  <!-- <div class=\"_CSS-cause\" v-if=\"locals.ausloeserPlaceholder\">\n  </div> -->\n\n  <div class=\"_CSS-card__content\">\n    <div class=\"_CSS-content\">\n      <ae-control name=\"editor-light\" :readonly=\"true\" field-name=\"beschreibung\" :document=\"document\"></ae-control>\n    </div>\n\n    <div class=\"_CSS-card__info\">\n      <div class=\"_CSS-reporter\">\n        <ae-design name=\"avatar--resizes-with-font\" :document=\"locals.reporter\"></ae-design>\n      </div>\n      <div class=\"_CSS-date\" v-if=\"controller.date\">\n        {{ controller.date }}\n      </div>\n    </div>\n\n  </div>\n</div>\n\n","css":"._CSS ._CSS-card {\n  display: flex;\n  justify-content: stretch;\n  flex: 0 0 70%;\n}\n\n._CSS-card:hover {\n  cursor: pointer;\n}\n\n.ae-phone ._CSS ._CSS-card {\n  flex: 0 0 95%;\n}\n\n._CSS ._CSS-card--external {\n  margin-left: auto;\n\n  background: var(--ae-background-100);\n}\n\n._CSS-card__marker {\n  margin: 0 var(--ae-size-1) 0 0;\n\n  border-left: var(--ae-size-1) solid transparent;\n  width: var(--ae-size-1);\n  height: 100%;\n  border-radius: var(--ae-border-radius);\n}\n\n._CSS-card__content {\n  flex: 1;\n\n  display: flex;\n  flex-flow: column;\n}\n\n._CSS-card__info {\n  display: flex;\n  justify-content: flex-end;\n  align-items: center;\n}\n\n._CSS-card__marker--internal {\n  border-left-color: var(--ae-primary-400);\n}\n\n._CSS-card__marker--external {\n  border-left-color: var(--ae-background-400);\n}\n\n._CSS-reporter {\n  margin: 0 var(--ae-size-2);\n}\n\n._CSS-content {\n  margin: 0 var(--ae-size-4);\n}","controller":"class Controller {\n  async init() {\n    locals.form = null\n    locals.reporter = null\n\n    locals.form = await Aeppic.getFormForDocument(document)\n    locals.ausloeserPlaceholder = locals.form.getPlaceholder('ausloeser').field.settings.options.find(o => o.value === data.ausloeser)\n\n    locals.reporter = await Aeppic.getProfilePageForAccount(document.created.by)\n  }\n\n  get date() {\n    if (!data.datum) {\n      return ''\n    }\n\n    const date = DateTime.fromISO(data.datum)\n    const diff = -date.diffNow('days').days.toFixed(0)\n\n    if (diff === 0) {\n      return date.toLocaleString(DateTime.TIME_24_SIMPLE)\n    }\n\n    if (diff > 7) {\n      return date.toLocaleString(DateTime.DATETIME_MED)\n    }\n\n    return date.toLocaleString({weekday: 'long', hour: '2-digit', minute: '2-digit' })\n  }\n}\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-05-08T08:51:12+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2020-05-08T08:51:12+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1588927872221,"ct":1588927872220,"a_depth":4,"a":["apps","f93ac233-7aa7-4561-a3b3-d8ebda0ee514","fc09d59c-bdef-4b1e-854e-d907bc11b295","8d5743bf-228b-4214-8ee3-8089ab480678"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"aa62b366-d8b6-4768-baaf-35d585876c93","v":"0474655a4a991db0","cloneOf":{"id":"3289573a-8b80-40de-b650-111eae66672e","v":"f6e2574ccac4f392","text":"ref-card"},"originalCloneOf":{"id":"3289573a-8b80-40de-b650-111eae66672e","v":"f6e2574ccac4f392","text":"ref-card"},"previous":{"v":"30e0fe828c589be8"},"p":"88b1f60e-71f6-46f5-94ea-3d7bbe972950","f":{"id":"design-form","v":"24435d748c76f819","text":"Design"},"data":{"name":"ref-card","template":"<div class=\"_CSS-card xae-navigatable\" :class=\"{ '_CSS-card--finished': data.erledigt, '_CSS-card--inactive': data.inaktiv }\" @click.stop=\"$emit('selected', document)\">\n  <button class=\"ae-button\" :disabled=\"!locals.canEdit || data.inaktiv\" @click.stop=\"data.erledigt = !data.erledigt;save()\">\n    <ae-icon v-if=\"data.inaktiv\" class=\"far fa-trash\"></ae-icon>\n    <ae-icon v-else-if=\"data.erledigt\" class=\"far fa-check-square\"></ae-icon>\n    <ae-icon v-else class=\"far fa-square\"></ae-icon>\n  </button>\n  \n  <ae-design class=\"_CSS-card-title\" name=\"title-as-link\" :document=\"document\" @selected=\"$emit('selected', $event)\"></ae-design>\n\n  <div>\n    <ae-layout layout-id=\"8c425dba-2523-40f0-947f-f9ccb50718d7\"\n            :params=\"{ document: document, fieldName: 'verantwortlich', control: 'ref', placeholderIcon: 'far fa-user-circle', readonly: !locals.canEdit ||  data.inaktiv || data.erledigt, noAdd: data.verantwortlich.id }\"\n            v-if=\"!data.inaktiv\"\n    ></ae-layout>\n  </div> \n\n  <div> \n    <ae-layout layout-id=\"8c425dba-2523-40f0-947f-f9ccb50718d7\"\n              :params=\"{ document: document, fieldName: 'bis', control: 'until', readonly: !locals.canEdit || data.inaktiv || data.erledigt }\" \n              v-if=\"!data.inaktiv\"\n    ></ae-layout> \n    <!-- <span v-if=\"!data.erledigt && data.bis\" class=\"_CSS_to__date\" title=\"Zu erledigen bis\" :title=\"Aeppic.DateTime.fromISO(data.bis).toLocaleString()\">\n      <div class=\"_CSS-to__title\">Tage übrig</div>\n      <div class=\"_CSS-to__value\" :class=\"{ '_CSS-to__value--overdue': controller.isOverdue, '_CSS-to__value--warning': controller.daysLeft <= 5 && controller.daysLeft >= 0 }\">{{ controller.daysLeft === 0 ? 'Heute' : controller.daysLeft }}</div>\n    </span> -->\n  </div>\n\n  <div style=\"min-width:190px\">\n    <ae-design \n        class=\"_CSS-card__timerecording\"\n        name=\"timetracking:progress\"\n        :document=\"document\"\n        :param-hide-totals=\"true\"\n        param-min-width=\"190px\"\n        :param-edit=\"locals.canEdit && !data.inaktiv\"\n        v-if=\"!data.inaktiv\"\n    ></ae-design>\n  </div>\n  \n  <div :title=\"locals.comments.length + ' Kommentare'\">\n    <template v-if=\"locals.comments.length\">\n      <ae-icon class=\"fa fa-comments\"></ae-icon>  {{ locals.comments.length }}\n    </template>\n  </div>\n  \n  <button v-if=\"locals.canDeactivate\" class=\"ae-button\" :title=\"data.inaktiv ? 'Aktivieren' : 'Deaktivieren'\" @click.stop=\"data.inaktiv = !data.inaktiv;save()\">\n    <ae-icon v-if=\"!data.inaktiv\" class=\"fa fa-trash\"></ae-icon>\n    <ae-icon v-else class=\"fa fa-trash-restore\"></ae-icon>\n  </button>\n</div>\n","css":"._CSS {\n  --padding: 0.25rem 1rem 0.2rem 0.5rem;\n  display: flex;\n  flex-flow: column;\n}\n\n._CSS-card {\n  display: grid;\n  grid-template-columns: 50px minmax(100px, 1fr) 50px 80px 190px 50px 50px;\n  grid-column-gap: var(--ae-space-2);\n  align-items: center;\n\n  height: 45px;\n\n  border-radius: var(--ae-border-radius);\n  background-color: var(--ae-ui-background);\n\n  border: solid var(--ae-border-width) var(--ae-border-color);\n\n  margin:0;\n}\n\n._CSS-card--finished {\n  opacity: var(--ae-opacity-1);\n  color: var(--ae-background-500);\n}\n\n._CSS-card--inactive {\n  text-decoration: line-through;\n  opacity: var(--ae-opacity-2);\n}\n\n._CSS-card-title {\n  white-space: normal;\n}\n\n._CSS_to__date {\n  font-size: 0.9em;\n  width: 120px;\n}\n\n._CSS-to__value {\n  color: var(--ae-foreground-l2);\n}\n\n._CSS-to__value--overdue {\n  color: #FF7A6D;\n  font-weight: 500;\n}\n\n._CSS-to__value--warning {\n  color: orange;\n  font-weight: 500;\n}","controller":"class Controller {\n  async init() {\n    locals.readableDuration = ''\n    locals.duration = 0\n    locals.comments = []\n    locals.canEdit = false\n\n    this.form = await Aeppic.getFormForDocument(document)\n\n    Aeppic.subscribeQuery('dd148098-bd15-4baa-a4ce-df14e495c629', document.id, (documents) => {\n      const { readable, millis } = this.totalDuration(documents)\n      locals.readableDuration = readable\n      locals.duration = millis\n    })\n\n    await Aeppic.nextRenderPass()\n    startEditing()\n\n    const [ canDeactivate, canEdit ] = await Promise.all([\n      this.accountCanDeactivate(),\n      Aeppic.canEdit(document) \n    ]) \n\n    locals.canDeactivate = canDeactivate\n    locals.canEdit = canEdit\n\n    Aeppic.subscribe(`p:${document.id} f.id:cf155969-ede1-43a4-9b10-3a697b19db91 stamps.type.id:04a939a8-6732-4f94-ad75-6f17ac417136`, comments => locals.comments = comments)\n  }\n\n  async accountCanDeactivate() {\n    if (params.readonly) {\n      return false\n    }\n\n    const fieldParams = this.form.getFieldControlParams('inaktiv')\n    \n    if (!fieldParams) {\n      return true\n    }\n\n    const enabledCommandId = fieldParams.enabledCommand\n\n    if (!enabledCommandId) {\n      return true\n    }\n\n    try {\n      const enabledCommandResult = await Aeppic.Commands.execute(enabledCommandId, document, {\n        Account: Aeppic.Account\n      })\n\n      return enabledCommandResult.ok && enabledCommandResult.value && enabledCommandResult.value.ok === true\n    } catch(e) {\n      return false\n    }\n  }\n\n  totalDuration(trackings) {\n    const duration = trackings.reduce((prev, cur) => {\n      if (prev) {\n        return Aeppic.DateTimeDuration.fromObject(cur.data.dauer).plus(prev)\n      }\n\n      return Aeppic.DateTimeDuration.fromObject(cur.data.dauer)\n    }, null)\n\n    if (duration) {\n      return { readable: duration.toFormat(\"hh'h' mm'm'\"), millis: duration.valueOf() }\n    }\n\n    return {}\n  }\n\n  get daysLeft() {\n    return -Aeppic.DateTime.local().diff(Aeppic.DateTime.fromISO(data.bis)).toFormat('d')\n  }\n\n  get isOverdue() {\n    if (params.hideOverdue) {\n      return null\n    }\n\n    if (!data.erledigt && data.bis) {\n      return this.daysLeft <= 0\n    }\n \n    return false\n  }\n}\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-07-07T12:05:06+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2022-02-25T16:02:07+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1645804927862,"ct":1625659506627,"a_depth":4,"a":["apps","94a64d89-d204-4918-b147-d717914fb03e","f254ce25-42f1-4333-8ee7-23554bf746c1","88b1f60e-71f6-46f5-94ea-3d7bbe972950"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"abebb68d-d38c-42a4-916b-4b6d137ec24a","v":"5f97ba1bf6e2029f","cloneOf":{"id":"d1c54669-c348-4361-b679-e4c48ee7bf0b","v":"64236f00ea727ef1","text":"card"},"originalCloneOf":{"id":"d1c54669-c348-4361-b679-e4c48ee7bf0b","v":"64236f00ea727ef1","text":"card"},"previous":{"v":"06e697ac57093b62"},"p":"6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2","f":{"id":"design-form","v":"e3fe9ece11aabc5e","text":"Design"},"data":{"name":"ref-card","applies":"","template":"<div class=\"bp-card _CSS-card\" :class=\"{ 'bp-card--bordered': params.noBorder !== true, 'ae-navigatable': !params.readonly }\" @click.stop=\"$emit('selected', document)\">\n  <!-- <ae-design class=\"_CSS-card__media\" name=\"card-thumbnail-with-icon\" :document=\"document\" @cannot-convert=\"locals.canConvert = false\"></ae-design> -->\n  <div class=\"ae-progress--indeterminate\" title=\"uploading\" v-if=\"controller.isUploading && locals.upload.progressPercent == 0\">\n  </div>\n  <div v-if=\"locals.upload\" style=\"display:flex\">\n    <!-- status: {{locals.upload.status}} -->\n    <!-- {{locals.upload.progressPercent}} -->\n    <div class=\"ae-progress\" :style=\"{ 'padding-left': (locals.upload.progressPercent * 100).toString() + '%' }\" ></div>\n  </div>\n \n  <div class=\"_CSS-card__secondary\">\n    <div style=\"display:flex;align-items:center;justify-content:space-between;\">\n      <div class=\"_CSS-card__title\">\n        <ae-design name=\"icon\" :document=\"document\" style=\"margin-right: 1em;\"></ae-design>\n        <ae-design name=\"title\" :document=\"document\"></ae-design>\n      </div>\n      <div title=\"Freigegeben\">\n        <svg v-if=\"data.freigabe\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" style=\"fill:#333\" >\n          <path d=\"M23.334 11.96c-.713-.726-.872-1.829-.393-2.727.342-.64.366-1.401.064-2.062-.301-.66-.893-1.142-1.601-1.302-.991-.225-1.722-1.067-1.803-2.081-.059-.723-.451-1.378-1.062-1.77-.609-.393-1.367-.478-2.05-.229-.956.347-2.026.032-2.642-.776-.44-.576-1.124-.915-1.85-.915-.725 0-1.409.339-1.849.915-.613.809-1.683 1.124-2.639.777-.682-.248-1.44-.163-2.05.229-.61.392-1.003 1.047-1.061 1.77-.082 1.014-.812 1.857-1.803 2.081-.708.16-1.3.642-1.601 1.302s-.277 1.422.065 2.061c.479.897.32 2.001-.392 2.727-.509.517-.747 1.242-.644 1.96s.536 1.347 1.17 1.7c.888.495 1.352 1.51 1.144 2.505-.147.71.044 1.448.519 1.996.476.549 1.18.844 1.902.798 1.016-.063 1.953.54 2.317 1.489.259.678.82 1.195 1.517 1.399.695.204 1.447.072 2.031-.357.819-.603 1.936-.603 2.754 0 .584.43 1.336.562 2.031.357.697-.204 1.258-.722 1.518-1.399.363-.949 1.301-1.553 2.316-1.489.724.046 1.427-.249 1.902-.798.475-.548.667-1.286.519-1.996-.207-.995.256-2.01 1.145-2.505.633-.354 1.065-.982 1.169-1.7s-.135-1.443-.643-1.96zm-12.584 5.43l-4.5-4.364 1.857-1.857 2.643 2.506 5.643-5.784 1.857 1.857-7.5 7.642z\"\n          />\n        </svg>\n      </div>\n    </div>\n    <span v-if=\"params.showLocation\" style=\"font-size:smaller;white-space:nowrap;text-overflow:ellipsis;overflow:hidden\">\n      <ae-design name=\"title\" :document-id=\"document.p\" :watch=\"false\"></ae-design>\n    </span>\n    <span style=\"overflow:hidden; text-overflow: ellipsis;font-size:0.8em\" :title=\"'Zuletzt geändert: ' + DateTime.fromISO(document.modified.at).toLocaleString(DateTime.DATETIME_FULL)\">\n      {{ DateTime.fromISO(document.modified.at).toLocaleString(DateTime.DATETIME_MED) }}\n    </span>\n    \n    <!-- <ae-design name=\"icon\" :document=\"document\" style=\"position: absolute; left: 1; top: 2px; font-size: 0.5em;\"></ae-design> -->\n  </div>\n\n  <a v-if=\"params.showDownload\" :href=\"Aeppic.Content.getSrc(document, 'datei')\" target=\"_blank\" :download=\"document.data.name\" @click.stop>\n    <button class=\"_CSS-actions__action ae-button\" title=\"Herunterladen\">\n      <ae-icon class=\"fa fa-file-download\"></ae-icon> Download\n    </button>  \n  </a>\n  <button class=\"ae-button\" v-if=\"!params.readonly\" @click.stop=\"$emit('remove', document)\">\n    <ae-icon class=\"fa fa-times\"></ae-icon>\n  </button>\n</div>\n \n","css":"  \n._CSS-card {\n  flex: 1;\n  display: flex;\n  width: 100%;\n}\n\n._CSS-card__media {\n  flex:2;\n  height: 6em;\n}\n\n._CSS-card__secondary {\n  color: var(--ae-foreground-l3);\n  flex:1;\n\n  display: flex;\n  flex-direction: column;\n  justify-content: space-between;\n\n  padding: 4px;\n  min-width: 0;\n}\n\n._CSS-card__title {\n  color: var(--ae-foreground-l2);\n  overflow:hidden;\n  text-overflow: ellipsis;\n  white-space:nowrap;\n\n  display: flex;\n  align-items: center;\n}\n\n._CSS progress {\n  -webkit-appearance: none;\n  flex:1;\n  min-width:auto;\n  width:auto;\n  background-color: var(--ae-background-d1);\n  border-radius: 2px;\n  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.25) inset;\n}","controller":"async init() {\r\n  locals.canConvert = true\r\n  locals.upload = null //{progressPercent:0.3,status:'started'}\r\n  locals.ancestors = []\r\n\r\n  locals.ancestors = await Aeppic.getAll(document.a)\r\n}\r\n\r\nget isUploading() {\r\n  const status = Aeppic.Uploads.getUploadStatusForDocument(document)\r\n\r\n  if (status) {\r\n    locals.upload = status[0]\r\n  } else {\r\n    locals.upload = null\r\n  }\r\n \r\n  return !!locals.upload\r\n}\r\n","packages":[]},"locks":[],"created":{"at":"2018-12-03T13:23:26+00:00","by":"c5ed555f-cc11-463b-960b-0a60b3118e69","from":"","client":"server"},"modified":{"at":"2021-07-06T14:01:54+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1625580114341,"ct":1543843406279,"a_depth":4,"a":["apps","3d43a3f5-fea4-488d-9fc1-9dee5e694623","7c30f282-2b84-4976-8735-ba78662ea5e6","6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"aef379e6-c2dd-4d24-8fdd-08c2124c9451","v":"764ae11aa9006916","previous":{"v":"00a6a1b15e44e80b"},"p":"8d8f6fdb-6f78-4e2a-b585-bd80f4dbaa1d","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"ref-card","template":"<div class=\"_CSS-card\" :class=\"{ '_CSS-card--bordered': params.withoutBorder !== true && params.noBorder !== true, '_CSS-card--clickable': params.handleSelectedReadonly }\" @click.stop=\"$emit('selected', document)\">\n  <ae-design name=\"ref-card-title,title-as-link,title\" :document=\"document\" @selected=\"$emit('selected', $event)\"></ae-design>\n  <div v-if=\"locals.stamp\">\n    Am {{ Aeppic.DateTime.fromISO(locals.stamp.added).toLocaleString(Aeppic.DateTime.DATETIME_SHORT) }} zur Kenntnis genommen.\n  </div>\n</div>\n","css":"._CSS-card {\n  flex: 1;\n  display: flex;\n  overflow: hidden;\n  justify-content: space-between;\n  align-items: center;\n  padding: var(--bp-input-content-padding);\n  background-color: var(--ae-ui-background);\n}\n\n._CSS-card--clickable {\n  cursor: pointer;\n}\n\n._CSS-card--bordered {\n  border-radius: var(--ae-border-radius);\n  border: solid var(--ae-border-color) var(--ae-border-width);\n}\n\n._CSS-button {\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  \n  padding: 0.7em;     \n  margin: -0.7em; \n}\n\n._CSS-button-icon {\n  color: var(--ae-theme-text-icon-on-background);\n}\n","controller":"class Controller {\n  init() {\n    locals.stamp = document.stamps.find(stamp => stamp.type.id === '59cda385-cabd-4f16-9e5a-0e26aabc4419')\n  }\n}","packages":[]},"locks":[],"created":{"at":"2019-05-20T15:28:37+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2021-07-06T10:52:48+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1625568768844,"ct":1558358917434,"a_depth":4,"a":["apps","94a64d89-d204-4918-b147-d717914fb03e","f254ce25-42f1-4333-8ee7-23554bf746c1","8d8f6fdb-6f78-4e2a-b585-bd80f4dbaa1d"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"ccb658be-09cd-42cc-8afb-d6a1618cbd9f","v":"initial","p":"d739ff5f-be4e-4eab-b466-c280d2819463","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"ref-card","template":"<div class=\"_CSS-card\" :class=\"{ 'ae-form-cell__input': params.withoutBorder !== true && params.noBorder !== true }\" @click.stop=\"$emit('selected', document)\">\r\n  <ae-design name=\"ref-card-title,title\" :document=\"document\"></ae-design>\r\n  <div v-show=\"locals.edit\" @click.prevent.stop=\"\" style=\"display:flex;align-items:center\"  @focusout=\"controller.onChange()\" @input=\"controller.onChange()\">\r\n    <ae-control field-name=\"serial\" :document=\"locals.edit\"></ae-control>\r\n    <ae-control name=\"inline-photo\" field-name=\"photo\" :document=\"locals.edit\"></ae-control>\r\n  </div> \r\n  <button v-if=\"locals.dirty\" class=\"ae-button _CSS-dirty\" @click.prevent.stop=\"controller.save()\"><ae-icon class=\"fa fa-save\"></ae-icon></button>\r\n  <div v-else></div>\r\n  <div><!--spacer--></div> \r\n  <ae-design v-show=\"!params.noRemove && !params.readonly\" name=\"ref-remove\" :document=\"document\" @remove=\"$emit('remove', $event)\"></ae-design>\r\n</div> ","css":"._CSS ._CSS-card {\r\n  flex: 1;\r\n  display: grid;\r\n  grid-template-columns: auto auto auto 1fr auto;\r\n  grid-gap: 8px;\r\n  overflow: hidden;\r\n  justify-content: space-between;\r\n  align-items: center;\r\n  background-color: var(--ae-ui-background);\r\n  border-radius: var(--ae-border-radius);\r\n}\r\n\r\n._CSS ._CSS-dirty {\r\n}","controller":"async init() {\r\n  const requiresSerial = true // data.serial.trim() === ''\r\n\r\n  locals.dirty = false\r\n  locals.edit = requiresSerial && await Aeppic.edit(document)\r\n\r\n  Aeppic.setInterval(() => this.onChange(), 800)\r\n}\r\n\r\nonChange() {\r\n  const serialChanged = (document.data.serial !== locals.edit.data.serial)\r\n  const photoChanged = (document.data.photo.dataUrl !== locals.edit.data.photo.dataUrl)\r\n  locals.dirty = serialChanged || photoChanged\r\n}\r\n\r\nsave() {\r\n  Aeppic.save(locals.edit)\r\n  locals.dirty = false\r\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-11-02T09:38:38+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-11-02T09:38:38+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1635845918430,"ct":1635845918430,"a_depth":4,"a":["apps","781ff5de-69db-49dc-99f0-f328b308cd7d","dbd0bd68-3479-4032-9303-9d51615c27a7","d739ff5f-be4e-4eab-b466-c280d2819463"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"ccd4a00e-0d72-4268-a384-ad542860f3aa","v":"9cb612d81c19eadb","previous":{"v":"ddbbeb50d0e13f38"},"p":"24730991-d920-4a1e-8041-6a9dc6c0ffc1","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"ref-card","applies":"","template":"<!-- <div class=\"_CSS-card\">\n  <div class=\"_CSS-title\">\n    <ae-icon class=\"fa fa-film\" style=\"margin-right: 8px;\"></ae-icon>\n    <ae-design name=\"title\" :document=\"document\" v-if=\"params.readonly\"></ae-design>\n    <ae-control v-else field-name=\"name\" :document=\"document\"></ae-control>\n  </div>\n\n  <div class=\"_CSS-subtitle\">Cast</div>\n\n  <ae-control class=\"_CSS-list\" name=\"children\" :document=\"document\" field-name=\"roles\" @selected=\"controller.log(12)\"\n  :param-template-parent-id=\"document.id\" param-design=\"card--tiny,card\" :readonly=\"params.readonly\" :param-handle-selected-readonly=\"true\"></ae-control>\n</div> -->\n<ae-form style=\"flex: 1;\" ref=\"form\" layout-id=\"ffbbd328-5e05-470b-97ce-305f6b3b5847\" :auto-save=\"true\" :document=\"document\" :readonly=\"params.readonly\"></ae-form>\n<!-- <ae-form style=\"flex: 1;\" ref=\"form\" layout-id=\"ffbbd328-5e05-470b-97ce-305f6b3b5847\" :auto-save=\"true\" :document=\"document\" :readonly=\"locals.readonly\" :watch=\"true\"></ae-form> -->\n\n<div class=\"dbps-button\" @click.stop=\"$emit('remove', document)\" v-if=\"!params.readonly\">\n  <ae-icon class=\"fa fa-times\"></ae-icon>\n</div>","css":"","controller":"class Controller {\n  async init() {\n    // locals.readonly = params.readonly\n\n    // await Aeppic.nextRenderPass()\n\n    // startEditing()\n\n    watchParam('readonly', (value) => {\n      $refs.form.save()\n\n      // locals.readonly = value\n    })\n  }\n}\n","packages":[]},"locks":[],"created":{"at":"2018-05-25T10:46:57+00:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","from":"","client":"server"},"modified":{"at":"2020-10-13T10:11:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1602583892195,"ct":1527245217677,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","24730991-d920-4a1e-8041-6a9dc6c0ffc1"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"dd125ddd-6df5-441f-b51a-ca06bb79f573","v":"4106cd91bfb6e2ed","cloneOf":{"id":"aef379e6-c2dd-4d24-8fdd-08c2124c9451","v":"a08c105d3b6e6020","text":"ref-card"},"originalCloneOf":{"id":"aef379e6-c2dd-4d24-8fdd-08c2124c9451","v":"a08c105d3b6e6020","text":"ref-card"},"previous":{"v":"initial"},"p":"c5cf96a1-40bb-44d5-a3f7-ea30706caf58","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"ref-card","applies":"","template":"<div class=\"_CSS-card\" :class=\"{ '_CSS-card--bordered': params.withoutBorder !== true && params.noBorder !== true, '_CSS-card--clickable': params.handleSelectedReadonly }\" @click.stop=\"$emit('selected', document)\">\n  <ae-design name=\"ref-card-title,title\" :document=\"document\"></ae-design>\n  <div v-if=\"locals.stamp\">\n    Am {{ Aeppic.DateTime.fromISO(locals.stamp.added).toLocaleString(Aeppic.DateTime.DATETIME_SHORT) }} zur Kenntnis genommen.\n  </div>\n</div>\n","css":"._CSS-card {\n  flex: 1;\n  display: flex;\n  overflow: hidden;\n  justify-content: space-between;\n  align-items: center;\n  padding: var(--bp-input-content-padding);\n  background-color: var(--ae-ui-background);\n}\n\n._CSS-card--clickable {\n  cursor: pointer;\n}\n\n._CSS-card--bordered {\n  border-radius: var(--ae-border-radius);\n  border: solid var(--ae-border-color) var(--ae-border-width);\n}\n\n._CSS-button {\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  \n  padding: 0.7em;     \n  margin: -0.7em; \n}\n\n._CSS-button-icon {\n  color: var(--ae-theme-text-icon-on-background);\n}\n","controller":"class Controller {\n  init() {\n    locals.stamp = document.stamps.find(stamp => stamp.type.id === '59cda385-cabd-4f16-9e5a-0e26aabc4419')\n  }\n}","packages":[]},"locks":[],"created":{"at":"2021-02-01T08:39:40+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-02-01T08:42:41+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1612168961044,"ct":1612168780302,"a_depth":4,"a":["apps","d91078cc-874b-4410-b837-b81f47687fe9","6b513a0c-498f-4eac-804d-aa8e0e99caac","c5cf96a1-40bb-44d5-a3f7-ea30706caf58"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"e3fc2991-e931-4c58-ad3d-af97367e0891","v":"initial","p":"17c3a5d3-90ba-4592-961b-0800873ef9c1","f":{"id":"design-form","v":"24435d748c76f819","text":"Design"},"data":{"name":"ref-card","template":"<div class=\"_CSS-card\" \n      :class=\"{ '_CSS-card--finished': data.erledigt, '_CSS-card--overdue': controller.isOverdue, '_CSS-card--selected': params.isSelected, '_CSS-card--with-border': params.noBorder !== true && !params.withoutBorder }\"\n      @click.stop=\"$emit('selected', document)\"\n>\n\t<div class=\"_CSS-card__primary\">\n    <button class=\"ae-button bp-button-icon _CSS-checkbox-done\" v-if=\"!params.readonly\" @click.stop=\"controller.toggleDone()\">\n      <ae-icon v-show=\"data.erledigt\" class=\"far fa-check\"></ae-icon>\n      <ae-icon v-show=\"!data.erledigt\" class=\"far fa-square\"></ae-icon>\n    </button>\n    <div class=\"_CSS-card-intro\">\n      <ae-design class=\"_CSS-card-title\" name=\"title\" :document=\"document\"></ae-design>\n      <!-- {\"ops\":[{\"insert\":\"\\n\"}]} has length of 25 -->\n      <div \n           v-if=\"data.beschreibung.length > 25\"\n           ref=\"descriptionIcon\"\n           @mouseleave=\"$refs.popup.close()\"\n           @mouseover=\"$refs.popup.show({ target: $refs.descriptionIcon })\"\n           class=\"_CSS-card-intro__description\"\n           xtitle=\"Beschreibung vorhanden\"\n           >\n        <ae-icon class=\"fal fa-file-alt\"></ae-icon>\n      </div>\n\t\t</div>\n\t</div>\n  <!-- <div class=\"_CSS-card__secondary\">\n    {{data.beschreibung}}\n  </div> -->\n  <div style=\"display: flex;\">\n  <ae-layout layout-id=\"f46659ee-b6b2-4be0-adab-15fe8a690f93\" :param-document=\"document\" :param-readonly=\"params.readonly\"></ae-layout>\n\t<div class=\"_CSS-card__tertiary \">\n    \n    \n    <div title=\"Zeiterfassung\" class=\"_CSS-card__timerecording\" v-if=\"locals.duration\">\n      <ae-icon class=\"fal fa-hourglass-end\"></ae-icon>\n      {{ locals.readableDuration }}\n    </div>\n    <div title=\"Kommentare\" class=\"_CSS-commenter__indicator\" v-if=\"locals.commenters.length > 0\" >\n      <div class=\"_CSS-commenter__area\">\n        <!-- <ae-design class=\"_CSS-commenter\" v-for=\"commenter of locals.commenters\" v-if=\"commenter\" :key=\"commenter.id\" :document-id=\"commenter.id\" name=\"profile-avatar\" :param-readonly=\"true\"></ae-design>\n        <span style=\"margin-left:8px;opacity:0.7;font-size:12px;font-weight:bold\" v-if=\"locals.commentersOverflow.length > 0\">+{{locals.commentersOverflow.length}}</span> -->\n        <div class=\"_CSS-commenter__icon\" :data-count=\"locals.comments.length\">\n          <ae-icon class=\"fal fa-comment\"></ae-icon>\n        </div> \n      </div> \n    </div>\n    <div title=\"Anhänge\" v-if=\"data.anhaenge.length\">\n      <ae-icon class=\"fal fa-paperclip\"></ae-icon>\n      {{ data.anhaenge.length }}\n    </div>\n    <div v-if=\"data.prioritaet\" class=\"_CSS-priority _CSS-priority_spacing\">\n        <div title=\"Hohe Priorität\" v-if=\"data.prioritaet === 3\">\n          <ae-icon class=\"fal fa-arrow-circle-up\"></ae-icon>\n        </div>\n        <div title=\"Mittlere Priorität\" v-else-if=\"data.prioritaet === 2\">\n          <ae-icon class=\"fal fa-circle\" ></ae-icon>\n        </div>\n        <div title=\"Niedrige Priorität\" v-else-if=\"data.prioritaet === 1\">\n          <ae-icon class=\"fal fa-arrow-circle-down\"></ae-icon>\n        </div>\n      </div>\n      <div class=\"_CSS-statistics\">\n      <span v-if=\"data.erledigt && data.bis\" class=\"_CSS_to__date\" title=\"Zu erledigen bis\" :title=\"Aeppic.DateTime.fromISO(data.bis).toLocaleString()\">\n        {{ Aeppic.DateTime.fromISO(data.bis).toLocaleString() }}\n      </span>\n      <span v-if=\"!data.erledigt && data.bis\" class=\"_CSS_to__date\" title=\"Zu erledigen bis\" :title=\"Aeppic.DateTime.fromISO(data.bis).toLocaleString()\">\n          <div v-if=\"controller.daysLeft !== 0\" class=\"_CSS-to__title\">Tage übrig &nbsp</div>\n          <div class=\"_CSS-to__value\" :class=\"{ '_CSS-to__value--overdue': controller.isOverdue, '_CSS-to__value--warning': controller.daysLeft <= 5 && controller.daysLeft >= 0 }\">{{ controller.daysLeft === 0 ? 'Heute' : controller.daysLeft }}</div>\n      </span>\n    </div>\n    <div class=\"_CSS-card__flex-container\">\n      <div class=\"_CSS-card-assignees\" v-if=\"data.verantwortlich && data.verantwortlich.length\">\n        <ae-design name=\"avatar--tiny\" :document-id=\"data.verantwortlich[0].id\"></ae-design>\n        <ae-design v-if=\"data.verantwortlich.length === 2\" name=\"avatar--tiny\" :document-id=\"data.verantwortlich[1].id\"></ae-design>\n        <ae-design v-if=\"data.verantwortlich.length > 2\" name=\"avatar--tiny\" :document-id=\"data.verantwortlich[1].id\" :param-overwrite-display-with=\"'+' + (data.verantwortlich.length - 1)\" :title=\"locals.tooltipWeitereVerantwortliche\"></ae-design>\n      </div>\n    </div>\n\n\t\t<!-- <div class=\"_CSS-card-categories\">\n\t\t\t<ae-design class=\"_CSS-card-category\" name=\"icon\" v-for=\"category in data.kategorie\" :document-id=\"category.id\" :key=\"category.id\"></ae-design>\n\t\t</div> -->\n\t</div>\n  </div>\n</div>\n\n<ae-popup ref=\"popup\" base-attachment=\"top left\" popup-attachment=\"bottom left\" :close-delay=\"200\" target-offset=\"5 0\">\n  <div class=\"_CSS-popup\" slot=\"popup\" @mouseenter=\"controller.mouseEnter()\" @mouseleave=\"controller.mouseLeave()\">\n    <ae-control :readonly=\"true\" name=\"editor-light\" :document=\"document\" field-name=\"beschreibung\"></ae-control>\n  </div>\n</ae-popup> \n\n","css":"._CSS {\n  --padding: var(--ae-size-1);\n  display: flex;\n  flex-flow: column;\n}\n\n._CSS-card {\n  display: flex;\n\n  //background-color: var(--ae-ui-background);\n  border-radius: var(--ae-border-radius);\n\n  //border-style: solid;\n  //border-width: 1px 1px 1px 3px;\n  //border-color: transparent transparent transparent var(--ae-ui-background);\n  height: 100%;\n\n  flex: 1;\n  margin:0;\n  flex-flow: row;\n}\n\n._CSS-card--with-border {\n  border: var(--ae-border-width) solid var(--ae-border-color);\n}\n\n._CSS-card--selected {\n  border-color: var(--ae-primary-900) !important;\n}\n\n._CSS-card--finished {\n  text-decoration: line-through;\n  opacity: 0.6;\n}\n\n._CSS-card._CSS-card--overdue {\n  border-left-color: hsl(1, 85%, 84%);\n}\n\n._CSS-card__flex-container {\n  display: flex;\n}\n\n._CSS-card__flex-container > * ~ * {\n  margin-left: 2ch;\n}\n\n._CSS-card__timerecording {\n  padding-right: var(--padding);\n}\n\n._CSS-card__primary {\n  position: relative;\n\n  display: flex;\n\n  flex: 1;\n  width: 100%;\n  padding: var(--padding);\n  overflow: hidden;\n}\n\n/* ._CSS-card__primary:after {\n    position: absolute;\n    bottom: 0;\n    left: 0;\n    width: 100%;\n    height: 60%;\n    content: \"\";\n    background-image: linear-gradient(180deg,hsla(0,0%,100%,.1) 0,#fff);\n    pointer-events: none;\n} */\n\n\n._CSS-card-intro {\n  flex: 1;\n  display:flex;\n  flex-direction:row;\n  align-items: center;\n\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n}\n\n._CSS-card-intro > * {\n  margin: 0 1ch;\n}\n\n._CSS-card-title {\n  white-space: normal;\n}\n\n._CSS-card__secondary {\n  flex: 1;\n  padding: var(--padding);\n  font-size: 0.8em;\n  overflow: auto;\n}\n\n._CSS-card__tertiary {\n  position: relative;\n  display: flex;\n  font-size: 0.9em;\n  align-items: center;\n  justify-content: space-between;\n  padding: var(--ae-size-1);\n  color: var(--ae-foreground-l2);\n}\n\n._CSS-card-intro__description {\n  display: flex;\n  font-size: 0.9em;\n  align-items: center;\n  justify-content: space-between;\n}\n\n\n._CSS-card-assignees {\n  display: flex;\n  flex-flow: row;\n}\n\n._CSS-card-assignees > * ~ * {\n  margin-left: 1px;\n}\n\n._CSS-statistics {\n  display: flex;\n}\n\n._CSS-statistics > * {\n  margin-right: 2ch;\n}\n\n/* \n * Comments\n */\n\n._CSS-commenter__indicator {\n  display:flex;\n  justify-content:flex-end;\n}\n\n._CSS-commenter__area {\n  position:relative;\n  border-radius:16px;\n  display:flex;\n  align-items:center;\n  white-space:nowrap;\n  margin:0;\n  padding:0;\n  overflow:hidden;\n}\n\n._CSS-commenter__area > * {\n  /* padding: 0 1px; */\n}\n\n._CSS-commenter__icon {\n  xopacity: var(--ae-opacity-1);\n  height:100%;\n  width:40px;\n  display:flex;\n  align-items:center;\n  justify-content:center;\n  padding: var(--ae-size-2) var(--ae-size-3);\n}\n\n._CSS-commenter__icon::after {\n  content: attr(data-count);\n  padding-left: 4px;\n  xfont-weight: bold;\n}\n\n\n._CSS-popup {\n  position: relative;\n  background: var(--ae-background);\n  padding: 10px;\n  box-shadow: var(--ae-shadow-3);\n  border-radius: var(--ae-border-radius);\n\n  max-width: 500px;\n  max-height: 200px;\n  overflow: hidden;\n}\n\n\n._CSS-popup:after {\n  position: absolute;\n  bottom: 0;\n  left: 0;\n  width: 100%;\n  height: 60%;\n  content: \"\";\n  background-image: linear-gradient(180deg,hsla(0,0%,100%,.1) 0,white);\n  pointer-events: none;\n}\n\n._CSS-checkbox-done:hover {\n  opacity: 0.6;\n  cursor: pointer;\n}\n\n\n._CSS_to__date {\n  font-size: 0.9em;\n  display: flex;\n}\n\n._CSS-to__value {\n  color: var(--ae-foreground-l2);\n}\n\n._CSS-to__value--overdue {\n  color: #FF7A6D;\n  font-weight: 500;\n}\n\n._CSS-to__value--warning {\n  color: orange;\n  font-weight: 500;\n}\n\n._CSS-priority {\n  position: relative;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  //padding-left: 2px;\n  //padding-right: 2px;  \n   border-radius:16px;\n}\n\n._CSS-priority_spacing {\n  margin-left: var(--ae-size-1);\n  margin-right: var(--ae-size-1);\n}\n\n","controller":"class Controller {\n  async init() {\n    locals.attachments = []\n    locals.commenters = []\n    locals.commentersOverflow = []\n\n    locals.readableDuration = ''\n    locals.duration = 0\n    \n    locals.tooltipWeitereVerantwortliche = ''\n    locals.tooltipWeitereVerantwortliche = await this.updateWeitereVerantwortliche()\n\n\n    this.subscribeCommenters() \n\n    Aeppic.subscribeQuery('dd148098-bd15-4baa-a4ce-df14e495c629', document.id, (documents) => {\n      const { readable, millis } = this.totalDuration(documents)\n      locals.readableDuration = readable\n      locals.duration = millis\n    })\n  }\n\n  get isOverdue() {\n    if (params.hideOverdue) {\n      return null\n    }\n\n    if (!data.erledigt && data.bis) {\n      return this.daysLeft <= 0\n    }\n \n    return false\n  }\n\n  get progress() {\n    if (data.erledigt) {\n      return null\n    }\n\n    let progress = 0\n\n    if (data.fortschritt) {\n      progress = Number(data.fortschritt)\n    } \n    return progress\n  }\n\n  get daysLeft() {\n    return -Aeppic.DateTime.local().diff(Aeppic.DateTime.fromISO(data.bis)).toFormat('d')\n  }\n  \n  async updateWeitereVerantwortliche() {\n    if (!data || !data.verantwortlich || data.verantwortlich.length <= 1) {\n      return ''\n    }\n\n    const others = data.verantwortlich.slice(1)\n    let title = '' \n     \n    for (const other of others) {\n      const va = await Aeppic.get(other)\n\n      if (title.length > 0) {\n        title += '\\n'\n      }\n\n      if (va && va.data.name) {\n        title += `${va.data.name}`\n      } else {\n        title += `Unbenannt`\n      }\n    }\n \n    return title\n  }\n \n  subscribeCommenters() {\n    Aeppic.subscribe(`p:${document.id} f.id:cf155969-ede1-43a4-9b10-3a697b19db91`, async (documents)=>{\n      locals.comments = documents\n      // locals.comments.sort((a,b) => this.sortComment(a,b))\n\n      const all = await Aeppic.getAll(locals.comments.map(c => c.modified.by))  \n      const allSortedBackwards = all.reverse()\n      const unique = allSortedBackwards.reduce((x, y) => x.findIndex(e=>e != null && y != null && e.id==y.id)<0 ? [...x, y]: x, [])\n \n      locals.commenters = unique\n      // locals.commenters.push(...all, ...all)\n      locals.commentersOverflow = []\n\n      const LIMIT = 5\n      \n      if (locals.commenters.length > LIMIT) {\n        locals.commentersOverflow = locals.commenters.splice(LIMIT, locals.commenters.length - LIMIT)\n      }\n    })\n  }\n\n  totalDuration(trackings) {\n    const duration = trackings.reduce((prev, cur) => {\n      if (!prev) {\n        return Aeppic.DateTimeDuration.fromObject(cur.data.dauer)\n      }\n\n      return Aeppic.DateTimeDuration.fromObject(cur.data.dauer).plus(prev)\n    }, null)\n\n    if (duration) {\n      return { readable: duration.toFormat('hh:mm'), millis: duration.valueOf() }\n    }\n\n    return {}\n  }\n\n  async toggleDone() {\n    const editable = await Aeppic.edit(document)\n\n    editable.data.erledigt = !data.erledigt\n\n    Aeppic.save(editable)\n  }\n  \n  mouseEnter() {\n    $refs.popup.cancelClose()\n  }\n\n  mouseLeave() {\n    $refs.popup.close()\n  }\n}\n\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-05-08T08:50:54+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2020-05-08T08:50:54+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1588927854625,"ct":1588927854625,"a_depth":4,"a":["apps","5acfd7a2-33e4-498a-9150-71e1ab772bfc","20c92864-6a81-4006-96f9-b78f473cd129","17c3a5d3-90ba-4592-961b-0800873ef9c1"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"f091284e-b479-4039-bed2-9bec4095763e","v":"85f1f6b99e1308ff","previous":{"v":"e3465de8c689933e"},"p":"275b807f-7dbb-4351-b731-669e275fa97d","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"ref-card","applies":"","template":"<div class=\"_CSS-card__status\" :class=\"{ '_CSS-card__status--preselected': locals.inPreselection, '_CSS-card__status--liked': !locals.inPreselection && data.like === 'like', '_CSS-card__status--disliked': !locals.inPreselection && data.like === 'dislike' }\"></div>\n\n<div class=\"_CSS-card\" @click.stop=\"$emit('selected', document)\" :class=\"{ '_CSS-card--deleted': data.removed }\">\n  <div class=\"_CSS-card__primary\">\n    <div class=\"_CSS-card-informations\">\n      <ae-design name=\"title\" :document=\"document\"></ae-design>\n\n      <div class=\"_CSS-card-informations__row\">\n        <ae-icon class=\"fa fa-clock\" style=\"margin-right: var(--ae-size-1)\"></ae-icon>\n        {{ Aeppic.DateTime.fromISO(document.created.at).toLocaleString(Aeppic.DateTime.DATETIME_SHORT) }}\n      </div>\n    \n      <div class=\"_CSS-card-informations__row\">\n        <ae-design :document-id=\"data.movie.id\" name=\"title\" :param-title=\"Aeppic.translate('movie')\"></ae-design> \n      </div>\n\n      <div class=\"_CSS-card-informations__row\">\n        <ae-design class=\"_CSS-role\" v-for=\"role in document.data.roles\" name=\"title\" :document=\"role\" :param-title=\"Aeppic.translate('role')\"></ae-design>\n      </div>\n    </div>\n\n    <ae-design  class=\"_CSS-picture\"\n                name=\"index-picture-thumbnail\"\n                :document=\"document\"\n                param-width=\"var(--dbps-thumbnail-width-3)\"\n                param-height=\"var(--dbps-thumbnail-height-3)\"\n    ></ae-design>\n  </div>\n\n  <div class=\"_CSS-card__secondary\">\n    <section class=\"_CSS-row\">\n\n      <div v-translate:title=\"'files'\">\n        {{data.files.length}} <ae-icon class=\"fa fa-file-alt\"></ae-icon>\n      </div>\n      <div style=\"margin-left: 1ch;\">\n        <template v-if=\"locals.parentForm === locals.applicationFormId\">\n          <ae-design name=\"icon-project-specific-informations\" :document=\"document\" @warn=\"locals.warning = $event\"></ae-design>\n        </template>\n        <template v-if=\"locals.parentForm === locals.preselectionFormId\">\n          <ae-design name=\"icon-rating\" :document=\"document\"></ae-design>\n        </template>\n        <template v-if=\"locals.parentForm === locals.shortlistFormId\">\n          <ae-design name=\"icon-questions-and-answers\" :document=\"document\"></ae-design>\n        </template>\n      </div>\n      <div style=\"flex: 1;\"></div>\n        <template v-if=\"locals.parentForm === locals.applicationFormId\">\n          <button class=\"dbps-button\" @click.stop=\"controller.toggleLike('like')\" :disabled=\"locals.inPreselection\" v-translate:title=\"'like'\">\n            <ae-icon class=\"fa fa-heart fa-lg\"></ae-icon>\n          </button>\n\n          <button class=\"dbps-button\" @click.stop=\"controller.toggleLike('dislike')\" :disabled=\"locals.inPreselection\" v-translate:title=\"'dislike'\">\n            <ae-icon class=\"fa fa-thumbs-down fa-lg\"></ae-icon>\n          </button>\n        </template>\n      <button class=\"dbps-button\" v-if=\"'removed' in data\" @click.stop=\"controller.toggleRemoved()\">\n        <ae-icon v-if=\"data.removed\" class=\"fa fa-trash-restore fa-lg\"></ae-icon>\n        <ae-icon v-else class=\"fa fa-trash fa-lg\"></ae-icon>\n      </button>\n    </section>\n  </div>\n</div>\n","css":"._CSS-card {\n  flex: 1;\n  overflow: hidden;\n  display: flex;\n  flex-flow: column;\n\n  background-color: white;\n  position: relative;\n}\n\n._CSS-card--deleted {\n  filter: opacity(50%);\n}\n\n._CSS-card__primary {\n  display: flex;\n  justify-content: space-between;\n}\n\n._CSS-card__secondary {\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n  margin: 0 12px 0 3px;\n\n  min-height: 60px;\n}\n\n._CSS-card__status {\n  width: 5px;\n  height: 100%;\n  background: transparent;\n}\n\n._CSS-card__status--preselected {\n  background: rgb(225, 88, 206);\n}\n._CSS-card__status--disliked {\n  background: red;\n}\n._CSS-card__status--liked {\n  background: green;\n}\n\n._CSS-picture {\n  width: var(--dbps-thumbnail-width-3);\n  height: var(--dbps-thumbnail-height-3);\n}\n\n._CSS-card-informations {\n  overflow: hidden;\n  padding: 1rem var(--bp-input-content-padding) 1rem;\n}\n\n._CSS-row {\n  flex: 1;\n\n  display: flex;\n  align-items: center;\n}\n\n._CSS-card-informations__row {\n  display: flex;\n  align-items: center;\n  color: var(--ae-background-700);\n}\n","controller":"class Controller {\n  async init() {\n    locals.parentForm = document['a_forms'][document['a_forms'].length - 1]\n    locals.applicationFormId = '9c63f632-9e40-4abb-aa1a-f4a02110a97f'\n    locals.preselectionFormId = '61ccaf6b-af84-4908-aa73-785dffd83c5f'\n    locals.shortlistFormId = '9927c3c7-8ce4-4c25-bcec-3385cf1370db'\n\n    locals.warning = false\n    locals.inPreselection = false\n\n    if (locals.parentForm === locals.applicationFormId) {\n      this.subscribePreselection()\n    }\n\n    await Aeppic.nextRenderPass()\n\n    startEditing()\n  }\n\n  async subscribePreselection() {\n    const baseModelId = document.data.model.id\n    const castingAncestorId = document.a[document.a.length - 2]\n\n    Aeppic.subscribe(`a:${castingAncestorId} f.id:${locals.preselectionFormId}`, async (docs) => {\n      const eCastingFolder = docs[0]\n\n      const models = await Aeppic.getAll(eCastingFolder.data.models)\n\n      locals.inPreselection = models.findIndex((model) => {\n        return model.data.model.id === document.data.model.id\n      }) !== -1\n    })\n  }\n\n  toggleLike(key) {\n    if (data.like === key) {\n      data.like = ''\n    } else {\n      data.like = key\n    }\n\n    save()\n  }\n\n  toggleRemoved() {\n    data.removed = !data.removed\n\n    save()\n  }\n}\n","packages":[]},"locks":[],"created":{"at":"2018-05-25T10:47:55+00:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","from":"","client":"server"},"modified":{"at":"2020-10-13T10:11:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1602583892697,"ct":1527245275675,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","275b807f-7dbb-4351-b731-669e275fa97d"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"9e42def4-9c0b-455a-a44c-5f9753033696","v":"40b80bfb1624a82a","previous":{"v":"initial"},"p":"8b64a4e4-bcc0-4080-9913-bc973143abd9","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"ref-card--pretty","applies":"","template":"<div class=\"_CSS-question\">{{data.question}}</div>\n","css":"._CSS {\n  padding: 0.5em;\n}\n\n._CSS-question {\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: pre-line;\n  word-break: break-word;\n}\n","controller":"","packages":[]},"locks":[],"created":{"at":"2018-07-06T12:14:31+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2020-10-13T10:11:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1602583892209,"ct":1530879271796,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","8b64a4e4-bcc0-4080-9913-bc973143abd9"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"09f3304d-a8a1-48a2-bdb3-49202fc9802a","v":"426663eb241d9fdf","cloneOf":{"id":"eb496a5a-38b9-4b29-bc13-472f18a241fc","v":"0838a2c4b1a03b37","text":"ref-card-title"},"originalCloneOf":{"id":"eb496a5a-38b9-4b29-bc13-472f18a241fc","v":"0838a2c4b1a03b37","text":"ref-card-title"},"previous":{"v":"12257f12d45c48ca"},"p":"76ccd02e-b3f5-4642-991c-d908db66aa6b","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"ref-card-title","template":"<div class=\"flex flex-wrap gap-1 mt-1\">\n  <ae-design v-for=\"image of data.image\" :key=\"image.id\" name=\"thumbnail\" :document=\"image\"></ae-design> \n</div>\n<div class=\"grid grid-cols-2 gap-y-1 mt-1 mb-1 flex-wrap\">\n  <template\n    v-for=\"field of locals.fields\" \n    >\n    <span class=\"rounded-l-md bg-slate-200 border-2 border-r-0 border-slate-400 p-1\" v-show=\"controller.mapToLabel(field.name)\">\n      {{controller.mapToPlaceholder(field.name)?.label}}\n    </span>\n    <span class=\"rounded-r-md bg-slate-300 border-2 border-slate-400 p-1\" v-show=\"controller.mapToLabel(field.name)\">\n        {{controller.mapToLabel(field.name)}}\n    </span>\n  </template>\n</div>\n\n","css":"._CSS {\n  display: flex;\n  flex-direction: column;\n  border: 1px solid transparent;\n  transition: all cubic-bezier(0.075, 0.82, 0.165, 1);\n}\n\n._CSS:hover {\n  cursor:pointer;\n  background-color: aqua;\n  border-color: rgb(51, 196, 228);\n}","controller":"async init() { \n  locals.form = null\n  locals.fields = []\n  locals.form = await Aeppic.getFormForDocument(document)\n  locals.fields = Object.values(locals.form?.info.fields).filter(f => f.subType === 'select' || f.subType == 'text' || f.subType === 'number')\n}\n\nmapToPlaceholder(fieldName) {\n  if (!locals.form) {\n    return\n  } \n\n  for (const placeholder of locals.form.info.placeholders) {\n    if (placeholder.field?.name === fieldName) {\n      return placeholder\n    }\n  }\n}\n\nmapToLabel(fieldName) {\n  if (!locals.form) {\n    return\n  } \n\n  const fieldInfo = locals.form.info.fields[fieldName]\n\n  const fieldValue = document.data[fieldName]\n\n  if (fieldInfo.subType === 'select') {\n    const option = fieldInfo.settings?.options?.find(o => o.value === fieldValue)\n\n    if (option) {\n      return option.display ?? option.value\n    }\n  } else if (fieldInfo.subType === 'text') {\n    return fieldValue\n  } else if (fieldInfo.subType === 'number') {\n    return fieldValue\n  } else {\n    console.log('Cannot map field', fieldName, 'is no select')\n  }\n  \n\n  return fieldValue\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-07-19T11:39:11+00:00","by":"427610a9-39dc-4014-9176-5f72aeb23263","from":"","client":"server"},"modified":{"at":"2023-07-19T11:39:39+00:00","by":"427610a9-39dc-4014-9176-5f72aeb23263","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1689766779064,"ct":1689766751852,"a_depth":4,"a":["apps","deeef973-ce03-4557-bf75-75a059001767","e7de598c-6f5a-4ab4-a33b-213ca86e489d","76ccd02e-b3f5-4642-991c-d908db66aa6b"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"0ab2810b-d0ed-4403-a152-7f885b3cdaef","v":"c6a27b279a076c3c","previous":{"v":"initial"},"p":"58c8b8e4-315d-4a8a-8ac3-e69d017640a6","f":{"id":"design-form","v":"e37099c040ec46e9","text":"Design"},"data":{"name":"ref-card-title","template":"<div class=\"_CSS-container\" @click.stop>\n  <div class=\"_CSS-line\">\n  <ae-design v-if=\"data.name\" :document=\"document\" name=\"title\" style=\"flex: 1;\"></ae-design>\n  <button class=\"ae-button ae-button--small\" @click.stop=\"$emit('selected', document)\" >\n    <ae-icon class=\"fa fa-expand-arrows-alt\"></ae-icon>\n  </button>\n  </div>\n  <ae-control name=\"model:link-share\" :document=\"document\" style=\"flex: 1;\"></ae-control>\n</div>\n\n","css":"._CSS-container {\n  width: 100%;\n  display: flex;\n  flex-flow: column;\n  padding: var(--ae-space-1);\n  justify-content: center;\n}\n\n._CSS-line {\n  display: flex;\n}","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-06-16T13:55:34+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-06-17T13:51:36+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1623937896803,"ct":1623851734887,"a_depth":4,"a":["apps","3fbe0efd-713a-457a-a34c-3a12aa19d6bb","0fb162f4-0f78-4c1e-aad2-43c27e6d98cb","58c8b8e4-315d-4a8a-8ac3-e69d017640a6"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"12ec3150-69eb-49fd-993c-9470ce4c1f26","v":"0799e1996c201fd8","previous":{"v":"0c6215787cb57a32"},"p":"f8fd3176-4995-455f-a8a8-d2742a836816","f":{"id":"design-form","v":"24435d748c76f819","text":"Design"},"data":{"name":"ref-card-title","template":"<div @click.stop=\"$emit('selected', document)\">\n  <ae-design name=\"title-as-link\" :document=\"document\" @selected=\"$emit('selected', $event)\"></ae-design>\n\n  <span v-if=\"data.email\">\n    {{ form.getPlaceholder('email').label }}:\n    <a @click.stop :href=\"'mailto:' + data.email\">{{data.email }}</a>,\n  </span>\n\n  <span v-if=\"data.festnetz\">\n    {{ form.getPlaceholder('festnetz').label }}:\n    <a @click.stop :href=\"'tel:' + data.festnetz\">{{ data.festnetz }}</a>,\n  </span>\n  <span v-if=\"data.mobil\">\n    {{ form.getPlaceholder('mobil').label }}:\n    <a @click.stop :href=\"'tel:' + data.mobil\">{{data.mobil }}</a>\n  </span>\n</div>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2019-08-22T12:19:56+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2022-02-07T10:18:09+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1644229089367,"ct":1566476396387,"a_depth":4,"a":["apps","bc036ad0-6dbc-415b-b506-325fb0a44046","8ffb21f4-3d63-4824-a633-10a19d7aa7d8","f8fd3176-4995-455f-a8a8-d2742a836816"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"1822edf4-1045-4602-b1df-8afa26a38b6f","v":"c851be6f3c059783","previous":{"v":"2510ea3b205bb353"},"p":"e10a8072-024c-44a7-80e3-4cd75c6ec1ea","f":{"id":"design-form","v":"baf08f1171a94bca","text":"Design"},"data":{"name":"ref-card-title","template":"<div class=\"_CSS-line\">\n  <ae-design style=\"flex: 0 0 200px;\" name=\"title\" :document=\"document\" class=\"_CSS-title\"></ae-design>\n  <span style=\"flex: 0 0 100px;\" class=\"_CSS-box--righted\">\n    <template v-if=\"data.summe\">\n    {{ Number(data.summe).toLocaleString() }} <ae-icon class=\"fa fa-euro-sign\"></ae-icon>\n    </template>\n  </span>\n  <span style=\"flex: 0 0 90px;color:var(--ae-background-600)\" title=\"Modalitäts Wert\">\n    <template v-if=\"data.modalitaetWert\">\n    {{ data.modalitaetWert }}%\n    </template>\n  </span>\n  <span style=\"flex: 1 0 100px;\" class=\"_CSS-box--righted\">\n    <template v-if=\"data.abgeschlossen\">\n      bezahlt\n      <ae-icon class=\"fa fa-check\"></ae-icon> \n    </template>\n  </span>\n  <span style=\"flex: 0 0 100px;\"  class=\"_CSS-box--righted\">\n    <template v-if=\"data.datum\">\n    {{Aeppic.DateTime.fromISO(data.datum).toLocaleString(Aeppic.DateTime.DATE_SHORT) }}\n    </template>\n  </span>\n\n</div>","css":"._CSS {\n  min-width: 0;\n}\n\n._CSS-line {\n  display: flex;\n  flex-wrap: wrap;\n}\n\n._CSS-line > * {\n  margin-right: var(--ae-space-2);\n}\n\n._CSS-title {\n  margin-right: 0.5ch;\n}\n\n._CSS-box--righted {\n  display: flex;\n  justify-content: flex-end;\n}","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-07-22T17:31:14+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2021-12-16T15:28:35+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1639668515633,"ct":1621605909632,"a_depth":4,"a":["apps","94a64d89-d204-4918-b147-d717914fb03e","f254ce25-42f1-4333-8ee7-23554bf746c1","e10a8072-024c-44a7-80e3-4cd75c6ec1ea"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"18ed493d-1bad-4031-a62d-b4ce0eea17d1","v":"95c3a656ab11402b","previous":{"v":"2c2e8acf96c0289e"},"p":"1a6436b3-2e26-41e1-83b3-8aa65ff60d41","f":{"id":"design-form","v":"49954170df6a253b","text":"Design"},"data":{"name":"ref-card-title","template":"{{ data.name }} <template v-if=\"data.position\">({{ data.position  }})</template> <br>\n\n<span v-if=\"data.eMail\">\n  {{ form.getPlaceholder('eMail').label }}:\n  <a @click.stop :href=\"'mailto:' + data.eMail\">{{data.eMail }}</a>,\n</span>\n\n<span v-if=\"data.telefon\">\n  {{ form.getPlaceholder('telefon').label }}:\n  <a @click.stop :href=\"'tel:' + data.telefon\">{{ data.telefon }}</a>,\n</span>\n<span v-if=\"data.fax\">\n  {{ form.getPlaceholder('fax').label }}:\n<a @click.stop :href=\"'tel:' + data.fax\">{{data.fax }}</a>,\n</span>\n<span v-if=\"data.mobil\">\n  {{ form.getPlaceholder('mobil').label }}:\n  <a @click.stop :href=\"'tel:' + data.mobil\">{{data.mobil }}</a>\n</span>\n","css":"","controller":"","packages":[],"description":""},"locks":[],"created":{"at":"2018-12-07T10:10:03+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2018-12-07T10:20:41+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1544178041443,"ct":1544177403211,"a_depth":4,"a":["apps","9c1db9f8-e61a-46ef-9fb2-ca409e980f45","83e0eafe-40b0-4a4d-a4bf-88940f2d098b","1a6436b3-2e26-41e1-83b3-8aa65ff60d41"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"19e54e64-5f30-4d63-b1ad-1e6afc723622","v":"d17935594e1d6b73","cloneOf":{"id":"dc16adec-3f93-416a-8d4c-581e84642f91","v":"2dc30dc4c7dce054","text":"ref-card-title"},"originalCloneOf":{"id":"dc16adec-3f93-416a-8d4c-581e84642f91","v":"2dc30dc4c7dce054","text":"ref-card-title"},"previous":{"v":"b056b11795e8cf91"},"p":"d886b1d3-42a8-47d7-aa6a-4be2ad2a4357","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"ref-card-title","template":"<div class=\"flex flex-wrap gap-1 mt-1\">\n  <ae-design v-for=\"image of data.image\" :key=\"image.id\" name=\"thumbnail\" :document=\"image\"></ae-design> \n</div>\n<div class=\"grid grid-cols-2 gap-y-1 mt-1 mb-1 flex-wrap\">\n  <template\n    v-for=\"field of locals.fields\" \n    >\n    <span class=\"rounded-l-md bg-slate-200 border-2 border-r-0 border-slate-400 p-1\" v-show=\"controller.mapToLabel(field.name)\">\n      {{controller.mapToPlaceholder(field.name)?.label}}\n    </span>\n    <span class=\"rounded-r-md bg-slate-300 border-2 border-slate-400 p-1\" v-show=\"controller.mapToLabel(field.name)\">\n        {{controller.mapToLabel(field.name)}}\n    </span>\n  </template>\n</div>\n\n","css":"._CSS {\n  display: flex;\n  flex-direction: column;\n  border: 1px solid transparent;\n  transition: all cubic-bezier(0.075, 0.82, 0.165, 1);\n}\n\n._CSS:hover {\n  cursor:pointer;\n  background-color: aqua;\n  border-color: rgb(51, 196, 228);\n}","controller":"async init() { \n  locals.form = null\n  locals.fields = []\n  locals.form = await Aeppic.getFormForDocument(document)\n  locals.fields = Object.values(locals.form?.info.fields).filter(f => f.subType === 'select' || f.subType == 'text' || f.subType === 'number')\n}\n\nmapToPlaceholder(fieldName) {\n  if (!locals.form) {\n    return\n  } \n\n  for (const placeholder of locals.form.info.placeholders) {\n    if (placeholder.field?.name === fieldName) {\n      return placeholder\n    }\n  }\n}\n\nmapToLabel(fieldName) {\n  if (!locals.form) {\n    return\n  } \n\n  const fieldInfo = locals.form.info.fields[fieldName]\n\n  const fieldValue = document.data[fieldName]\n\n  if (fieldInfo.subType === 'select') {\n    const option = fieldInfo.settings?.options?.find(o => o.value === fieldValue)\n\n    if (option) {\n      return option.display ?? option.value\n    }\n  } else if (fieldInfo.subType === 'text') {\n    return fieldValue\n  } else if (fieldInfo.subType === 'number') {\n    return fieldValue\n  } else {\n    console.log('Cannot map field', fieldName, 'is no select')\n  }\n  \n\n  return fieldValue\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-07-19T11:40:06+00:00","by":"427610a9-39dc-4014-9176-5f72aeb23263","from":"","client":"server"},"modified":{"at":"2023-07-19T11:40:14+00:00","by":"427610a9-39dc-4014-9176-5f72aeb23263","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1689766814935,"ct":1689766806834,"a_depth":4,"a":["apps","deeef973-ce03-4557-bf75-75a059001767","e7de598c-6f5a-4ab4-a33b-213ca86e489d","d886b1d3-42a8-47d7-aa6a-4be2ad2a4357"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"1b9cdace-12f4-43d2-a9a8-7a4800df9ad0","v":"initial","p":"37d7f918-c519-4f95-8e69-d0da9628a059","f":{"id":"design-form","v":"3385ac6766f32638","text":"Design"},"data":{"name":"ref-card-title","template":"<div class=\"_CSS-email-addresses\">\r\n  <span v-if=\"locals.date\"  class=\"_CSS-received\" :title=\"DateTime.fromISO(data.received).toLocaleString(DateTime.DATETIME_FULL)\">{{locals.date}}</span>\r\n  <ae-design name=\"title\" :document-id=\"data.fromRef.id\" class=\"_CSS-from\"></ae-design>\r\n  <ae-icon style=\"margin: 0 8px\" class=\"fa fa-arrow-right\"></ae-icon>\r\n  <ae-design v-for=\"e of data.to\" name=\"title\" :document-id=\"e.id\" class=\"_CSS-to\"></ae-design>\r\n</div>\r\n<div v-if=\"data.cc.length > 0\" class=\"_CSS-cc\">\r\n  <div>CC:&nbsp;</div>  \r\n  <ae-design v-for=\"cc of data.cc\" name=\"title\" :document-id=\"cc.id\"></ae-design>\r\n</div>\r\n<div class=\"_CSS-subject\">{{data.subject}}</div>\r\n<div class=\"_CSS-body\">{{data.text}}</div>\r\n\r\n<div class=\"_CSS-attachments\" @click.stop.prevent>\r\n  <ae-design v-for=\"a of data.attachments\" @selected=\"controller.attachmentSelected($event)\" name=\"ref-card\" :document=\"a\" :param-no-remove=\"true\"></ae-design>\r\n</div>\r\n\r\n\r\n<ae-layout\r\n  v-if=\"locals.previewDocument\"\r\n  ref=\"preview\"\r\n  layout-id=\"bbd6d99f-571d-422f-a2bc-15d3f8ecfae8\"\r\n  :param-file-name=\"locals.previewDocument.data.datei.name\"\r\n  param-field-name=\"datei\"\r\n  :param-document=\"locals.previewDocument\"></ae-layout>\r\n    ","css":"._CSS-received {\r\n  font-size:smaller;\r\n  margin: 0px 8px 0 0;\r\n  white-space: nowrap;\r\n  opacity: 0.5;\r\n  xbackground: var(--ae-background-100);\r\n  text-align: center;\r\n  xborder: 1px solid var(--ae-background-200);\r\n}\r\n\r\n._CSS-email-addresses {\r\n  display:flex;\r\n  align-items: center;\r\n}\r\n\r\n._CSS-to {\r\n  padding: 4px;\r\n  border: 1px solid lightgray;\r\n  border-width: 0 0 1px 0;\r\n  margin: 4px;\r\n}\r\n\r\n._CSS-cc {\r\n  opacity: 0.8;\r\n  font-size:smaller;\r\n  border-width: 0 0 1px 0;\r\n  display:flex;\r\n  flex-direction: row;\r\n  align-items: center;\r\n}\r\n\r\n._CSS-subject {\r\n  font-weight: bolder;\r\n}\r\n\r\n._CSS-body {\r\n  opacity: 0.8; \r\n  -webkit-line-clamp: 2;\r\n  white-space:nowrap;\r\n  max-height:4em;\r\n}\r\n\r\n._CSS-attachments {\r\n  margin-top: 1em;\r\n  display:flex;\r\n  flex-wrap: wrap;\r\n}\r\n\r\n._CSS-attachments > * {\r\n  margin: 0 8px 8px 0;\r\n}","controller":"init() {\r\n  locals.previewDocument = null\r\n\r\n  if (data.empfangen) {\r\n    const received = Aeppic.DateTime.fromISO(data.received)\r\n    const diffNow = received.diffNow()\r\n    const daysAway = Math.round(Math.abs(diffNow.as('days')))\r\n    \r\n    if (daysAway === 0) {\r\n      locals.date = received.toLocaleString(DateTime.TIME_SIMPLE)\r\n    } else {\r\n      locals.date = received.toLocaleString(DateTime.DATE_MED)\r\n    }\r\n  }\r\n}\r\n\r\nasync attachmentSelected(event) {\r\n  debugger\r\n  const doc = await Aeppic.get(event)\r\n  locals.previewDocument = doc\r\n\r\n  await Aeppic.nextRenderPass()\r\n  await Aeppic.nextRenderPass()\r\n  $refs.preview.$emit('show')\r\n}\r\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-11-02T09:38:35+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-11-02T09:38:35+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1635845915673,"ct":1635845915672,"a_depth":4,"a":["apps","781ff5de-69db-49dc-99f0-f328b308cd7d","dbd0bd68-3479-4032-9303-9d51615c27a7","37d7f918-c519-4f95-8e69-d0da9628a059"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"2138be0c-6c34-4bec-8b4e-29331f1cdfc6","v":"e87f72de63cafe67","cloneOf":{"id":"7988b7f5-f5e8-4dd1-aa85-2380e3947353","v":"ce883f81b4094836","text":"ref-card-title"},"originalCloneOf":{"id":"7988b7f5-f5e8-4dd1-aa85-2380e3947353","v":"ce883f81b4094836","text":"ref-card-title"},"previous":{"v":"85ea3386ad22abd5"},"p":"bdd70340-1c59-4f92-8249-caa534e1cb15","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"ref-card-title","template":"<div class=\"flex flex-wrap gap-1 mt-1\">\n  <ae-design v-for=\"image of data.image\" :key=\"image.id\" name=\"thumbnail\" :document=\"image\"></ae-design> \n</div>\n<div class=\"grid grid-cols-2 gap-y-1 mt-1 mb-1 flex-wrap\">\n  <template\n    v-for=\"field of locals.tableFields\" \n    >\n    <span class=\"rounded-l-md bg-slate-200 border-2 border-r-0 border-slate-400 p-1\" xv-show=\"controller.mapToLabel(field.name)\">\n      {{controller.mapToPlaceholder(field.name)?.label}}\n    </span>\n    <span class=\"rounded-r-md bg-slate-300 border-2 border-slate-400 p-1\" xv-show=\"controller.mapToLabel(field.name)\">\n        {{controller.mapToLabel(field.name)}}\n    </span>\n  </template>\n</div>\n\n","css":"._CSS {\n  display: flex;\n  flex-direction: column;\n  border: 1px solid transparent;\n  transition: all cubic-bezier(0.075, 0.82, 0.165, 1);\n}\n\n._CSS:hover {\n  cursor:pointer;\n  background-color: aqua;\n  border-color: rgb(51, 196, 228);\n}","controller":"async init() { \n  locals.form = null\n  locals.tableFields = []\n  locals.form = await Aeppic.getFormForDocument(document)\n  locals.tableFields = Object.values(locals.form?.info.fields).filter(f => f.subType === 'select' || f.subType === 'switch')\n}\n\nmapToPlaceholder(fieldName) {\n  if (!locals.form) {\n    return\n  } \n\n  for (const placeholder of locals.form.info.placeholders) {\n    if (placeholder.field?.name === fieldName) {\n      return placeholder\n    }\n  }\n}\n\nmapToLabel(fieldName) {\n  if (!locals.form) {\n    return\n  } \n\n  const fieldInfo = locals.form.info.fields[fieldName]\n\n  const fieldValue = document.data[fieldName]\n\n  if (fieldInfo.subType === 'select') {\n    const option = fieldInfo.settings?.options?.find(o => o.value === fieldValue)\n\n    if (option) {\n      return option.display ?? option.value\n    } \n  } else if (fieldInfo.subType === 'switch') {\n    return fieldValue ? '✓' : '▢'\n    // return JSON.stringify(fieldInfo)\n  } else {\n    return ' '\n  }\n\n  console.log('Cannot map field', fieldName, 'unknown type')\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-06-28T14:55:22+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","from":"","client":"server"},"modified":{"at":"2023-06-28T15:16:39+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1687965399167,"ct":1687964122053,"a_depth":4,"a":["apps","deeef973-ce03-4557-bf75-75a059001767","e7de598c-6f5a-4ab4-a33b-213ca86e489d","bdd70340-1c59-4f92-8249-caa534e1cb15"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"22e294f8-27b5-4852-bab4-1cf60d1970a7","v":"652c0fafed42284c","previous":{"v":"268932aa86cfd518"},"p":"03d12b14-6ff2-45ea-877e-6b326b319b86","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"ref-card-title","template":"<div class=\"_CSS-line\">\n  <ae-design name=\"title\" :document=\"document\"></ae-design>\n\n  <div class=\"_CSS-line\">\n    <div :title=\"Aeppic.DateTime.fromISO(document.created.at).toLocaleString(Aeppic.DateTime.DATETIME_FULL)\">\n    {{ Aeppic.DateTime.fromISO(document.created.at).toRelative() }}\n    </div>\n\n    <ae-design name=\"profile-avatar\" :document-id=\"document.modified.by\"></ae-design>\n  </div>\n</div>","css":"._CSS-line {\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n  gap: var(--ae-space-3);\n}","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-11-10T14:05:05+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-11-10T14:09:55+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1668089395340,"ct":1668089105061,"a_depth":4,"a":["apps","94a64d89-d204-4918-b147-d717914fb03e","f254ce25-42f1-4333-8ee7-23554bf746c1","03d12b14-6ff2-45ea-877e-6b326b319b86"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"37dea456-681c-4d14-930f-2346fbc9dde6","v":"initial","p":"6c501e3a-25c4-43c1-bd96-ec99333f5930","f":{"id":"design-form","v":"0061789efb5c5c29","text":"Design"},"data":{"name":"ref-card-title","template":"<div class=\"_CSS-container\" :class=\"{ '_CSS-line--done': data.fakturiert }\">\n  <div title=\"Prozent der Erfüllung\">\n    {{ data.prozent}}%\n  </div>\n  <ae-design name=\"title\" :document=\"document\" style=\"display:inline-block;\"></ae-design>\n\n  <span title=\"Status der Fakturierung\">\n    <ae-icon class=\"fa fa-receipt\"></ae-icon>\n    <ae-icon v-if=\"data.fakturiert\" class=\"fa fa-check\"></ae-icon>\n    <ae-icon v-if=\"!data.fakturiert\" class=\"fa fa-times\"></ae-icon>\n  </span>\n\n  <div v-if=\"data.datum\" style=\"text-align:right;\" title=\"Geplantes Datum\">\n    {{ Aeppic.DateTime.fromISO(data.datum).toLocaleString() }}\n  </div>\n</div>","css":"._CSS {\n\n  xmin-width: 0;\n  width: 100%;\n}\n\n._CSS-container {\n  width: 100%;\n  display: grid;\n  grid-template-columns: 50px auto 50px 100px;\n}\n\n._CSS-line--doneX {\n  text-decoration: line-through;\n  opacity: var(--ae-opacity-1);\n}","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-05-21T14:04:26+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-05-21T14:04:26+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1621605866792,"ct":1621605866774,"a_depth":4,"a":["apps","94a64d89-d204-4918-b147-d717914fb03e","f254ce25-42f1-4333-8ee7-23554bf746c1","6c501e3a-25c4-43c1-bd96-ec99333f5930"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"3a90cf63-6d78-49da-af0b-d2644addab77","v":"2d0b38518e779898","cloneOf":{"id":"eb496a5a-38b9-4b29-bc13-472f18a241fc","v":"0838a2c4b1a03b37","text":"ref-card-title"},"originalCloneOf":{"id":"eb496a5a-38b9-4b29-bc13-472f18a241fc","v":"0838a2c4b1a03b37","text":"ref-card-title"},"previous":{"v":"c75420ba1b587771"},"p":"df424bea-0f38-49bf-b18a-6d6fb36b8d0b","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"ref-card-title","template":"<div class=\"flex flex-wrap gap-1 mt-1\">\n  <ae-design v-for=\"image of data.image\" :key=\"image.id\" name=\"thumbnail\" :document=\"image\"></ae-design> \n</div>\n<div class=\"grid grid-cols-2 gap-y-1 mt-1 mb-1 flex-wrap\">\n  <template\n    v-for=\"field of locals.fields\" \n    >\n    <span class=\"rounded-l-md bg-slate-200 border-2 border-r-0 border-slate-400 p-1\" v-show=\"controller.mapToLabel(field.name)\">\n      {{controller.mapToPlaceholder(field.name)?.label}}\n    </span>\n    <span class=\"rounded-r-md bg-slate-300 border-2 border-slate-400 p-1\" v-show=\"controller.mapToLabel(field.name)\">\n        {{controller.mapToLabel(field.name)}}\n    </span>\n  </template>\n</div>\n\n","css":"._CSS {\n  display: flex;\n  flex-direction: column;\n  border: 1px solid transparent;\n  transition: all cubic-bezier(0.075, 0.82, 0.165, 1);\n}\n\n._CSS:hover {\n  cursor:pointer;\n  background-color: aqua;\n  border-color: rgb(51, 196, 228);\n}","controller":"async init() { \n  locals.form = null\n  locals.fields = []\n  locals.form = await Aeppic.getFormForDocument(document)\n  locals.fields = Object.values(locals.form?.info.fields).filter(f => f.subType === 'select' || f.subType == 'text' || f.subType === 'number')\n}\n\nmapToPlaceholder(fieldName) {\n  if (!locals.form) {\n    return\n  } \n\n  for (const placeholder of locals.form.info.placeholders) {\n    if (placeholder.field?.name === fieldName) {\n      return placeholder\n    }\n  }\n}\n\nmapToLabel(fieldName) {\n  if (!locals.form) {\n    return\n  } \n\n  const fieldInfo = locals.form.info.fields[fieldName]\n\n  const fieldValue = document.data[fieldName]\n\n  if (fieldInfo.subType === 'select') {\n    const option = fieldInfo.settings?.options?.find(o => o.value === fieldValue)\n\n    if (option) {\n      return option.display ?? option.value\n    }\n  } else if (fieldInfo.subType === 'text') {\n    return fieldValue\n  } else if (fieldInfo.subType === 'number') {\n    return fieldValue\n  } else {\n    console.log('Cannot map field', fieldName, 'is no select')\n  }\n  \n\n  return fieldValue\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-07-19T11:39:23+00:00","by":"427610a9-39dc-4014-9176-5f72aeb23263","from":"","client":"server"},"modified":{"at":"2023-07-19T11:39:35+00:00","by":"427610a9-39dc-4014-9176-5f72aeb23263","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1689766775723,"ct":1689766763786,"a_depth":4,"a":["apps","deeef973-ce03-4557-bf75-75a059001767","e7de598c-6f5a-4ab4-a33b-213ca86e489d","df424bea-0f38-49bf-b18a-6d6fb36b8d0b"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"3f101344-c94b-4f50-9ede-55f4ce9fdb19","v":"fc9dacf05bd1efe1","cloneOf":{"id":"89fa0b66-fc5b-468b-a011-4b927b804795","v":"60f3c78f79fa29e0","text":"[copy of]: ref-card-title"},"originalCloneOf":{"id":"89fa0b66-fc5b-468b-a011-4b927b804795","v":"60f3c78f79fa29e0","text":"[copy of]: ref-card-title"},"previous":{"v":"189a7eb920513d1d"},"p":"3834e4d0-1de2-460f-b14c-a4b3b3f85e31","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"ref-card-title","template":"<div class=\"flex flex-wrap gap-1 mt-1\">\n  <ae-design v-for=\"image of data.image\" :key=\"image.id\" name=\"thumbnail\" :document=\"image\"></ae-design> \n</div>\n<div class=\"grid grid-cols-2 gap-y-1 mt-1 mb-1 flex-wrap\">\n  <template\n    v-for=\"field of locals.fields\" \n    >\n    <span class=\"rounded-l-md bg-slate-200 border-2 border-r-0 border-slate-400 p-1\" v-show=\"controller.mapToLabel(field.name)\">\n      {{controller.mapToPlaceholder(field.name)?.label}}\n    </span>\n    <span class=\"rounded-r-md bg-slate-300 border-2 border-slate-400 p-1\" v-show=\"controller.mapToLabel(field.name)\">\n        {{controller.mapToLabel(field.name)}}\n    </span>\n  </template>\n</div>\n\n","css":"._CSS {\n  display: flex;\n  flex-direction: column;\n  border: 1px solid transparent;\n  transition: all cubic-bezier(0.075, 0.82, 0.165, 1);\n}\n\n._CSS:hover {\n  cursor:pointer;\n  background-color: aqua;\n  border-color: rgb(51, 196, 228);\n}","controller":"async init() { \n  locals.form = null\n  locals.fields = []\n  locals.form = await Aeppic.getFormForDocument(document)\n  locals.fields = Object.values(locals.form?.info.fields).filter(f => f.subType === 'select' || f.subType == 'text' || f.subType === 'number')\n}\n\nmapToPlaceholder(fieldName) {\n  if (!locals.form) {\n    return\n  } \n\n  for (const placeholder of locals.form.info.placeholders) {\n    if (placeholder.field?.name === fieldName) {\n      return placeholder\n    }\n  }\n}\n\nmapToLabel(fieldName) {\n  if (!locals.form) {\n    return\n  } \n\n  const fieldInfo = locals.form.info.fields[fieldName]\n\n  const fieldValue = document.data[fieldName]\n\n  if (fieldInfo.subType === 'select') {\n    const option = fieldInfo.settings?.options?.find(o => o.value === fieldValue)\n\n    if (option) {\n      return option.display ?? option.value\n    }\n  } else if (fieldInfo.subType === 'text') {\n    return fieldValue\n  } else if (fieldInfo.subType === 'number') {\n    return fieldValue\n  } else {\n    console.log('Cannot map field', fieldName, 'is no select')\n  }\n  \n\n  return fieldValue\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-07-19T11:40:38+00:00","by":"427610a9-39dc-4014-9176-5f72aeb23263","from":"","client":"server"},"modified":{"at":"2023-07-19T11:40:58+00:00","by":"427610a9-39dc-4014-9176-5f72aeb23263","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1689766858152,"ct":1689766838026,"a_depth":4,"a":["apps","deeef973-ce03-4557-bf75-75a059001767","e7de598c-6f5a-4ab4-a33b-213ca86e489d","3834e4d0-1de2-460f-b14c-a4b3b3f85e31"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"407f5c72-8b02-4044-bde3-990aa5882393","v":"009a722d140ffa42","cloneOf":{"id":"9c094250-93fa-4aff-a338-c32facb9f9e5","v":"5cab3d753247be1b","text":"ref-card-title"},"originalCloneOf":{"id":"9c094250-93fa-4aff-a338-c32facb9f9e5","v":"5cab3d753247be1b","text":"ref-card-title"},"previous":{"v":"f52395b3bb097c6b"},"p":"e24202d4-aa6f-4ea9-933c-5c1be7e38556","f":{"id":"design-form","v":"0061789efb5c5c29","text":"Design"},"data":{"name":"ref-card-title","template":"<span v-if=\"data.titel\">{{data.titel}}</span>\n<ae-design v-else style=\"display:inline;font-style:italic;\" name=\"title\" :document-id=\"document.f.id\"></ae-design>\n{{controller.subtitle}}","css":"","controller":"get subtitle() {\n  const parts = []\n\n  if (data.datum) {\n    parts.push(Aeppic.DateTime.fromISO(data.datum).setLocale('de-de').toLocaleString(Aeppic.DateTime.DATE_SHORT))\n  }\n  if (data.nummer) {\n    parts.push(`Rechnungs-Nummer: ${data.nummer}`)\n  }\n\n  if (data.positionen.length) {\n    parts.push(`${data.positionen.length} Positionen`)\n  }\n\n  if (parts.length) {\n    return `(${parts.join(', ')})`\n  }\n\n  return ''\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-11-17T13:25:57+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-06-08T11:38:17+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1623152297643,"ct":1605619557460,"a_depth":4,"a":["apps","0924db0f-7095-4b51-8966-bad1e45d68ec","a3b935e7-60bc-4996-9b18-668e4361067f","e24202d4-aa6f-4ea9-933c-5c1be7e38556"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"4b6c231e-84f4-4cf5-b760-367f8237eda6","v":"5146c39cdf1f3012","previous":{"v":"2f488a4588cb92a8"},"p":"59b7188e-1296-4466-a9c2-d6255496e7d6","f":{"id":"design-form","v":"baf08f1171a94bca","text":"Design"},"data":{"name":"ref-card-title","template":"<div class=\"_CSS-email-addresses\">\r\n  <span v-if=\"locals.date\"  class=\"_CSS-received\" :title=\"DateTime.fromISO(data.empfangen).toLocaleString(DateTime.DATETIME_FULL)\">{{locals.date}}</span>\r\n  <ae-design v-if=\"data.absender.id\" name=\"title\" :document-id=\"data.absender.id\" class=\"_CSS-from\"></ae-design>\r\n  <div v-else class=\"_CSS-from\">\r\n    {{data.von}}\r\n  </div>\r\n  <ae-icon v-if=\"data.empfaenger.length || (data.an && data.an.length)\" style=\"margin: 0 8px\" class=\"fa fa-arrow-right\"></ae-icon>\r\n  <div v-if=\"data.empfaenger.length\">\r\n    <ae-design v-for=\"e of data.empfaenger\" name=\"title\" :document-id=\"e.id\" class=\"_CSS-to\"></ae-design>\r\n  </div>\r\n  <div v-else-if=\"data.an\">\r\n    <span v-for=\"an of data.an\" class=\"_CSS-to\">{{an}}</span>\r\n  </div>\r\n</div>\r\n<div v-if=\"data.cc.length > 0\" class=\"_CSS-cc\">\r\n  <div>CC:&nbsp;</div>  \r\n  <ae-design v-for=\"cc of data.cc\" name=\"title\" :document-id=\"cc.id\"></ae-design>\r\n</div>\r\n<div class=\"_CSS-subject\">{{data.name}}</div>\r\n<div class=\"_CSS-body\">{{data.text}}</div>\r\n\r\n<!-- <div style=\"display:flex;\">\r\n  <div class=\"_CSS-attachments\" @click.stop.prevent>\r\n    <ae-design v-for=\"(a, attachmentIndex) of data.anhaenge\" @selected=\"Aeppic.drillInto($event, { mode: 'dialog', documents: data.anhaenge, documentsIndex: attachmentIndex })\" name=\"ref-card\" :document=\"a\" :param-readonly=\"true\"></ae-design>\r\n  </div>\r\n</div> -->\r\n\r\n<button v-if=\"controller.isExtracted\"\r\n        class=\"ae-button ae-button--primary\"\r\n        @click.stop=\"$emit('selected', document)\"\r\n>\r\n  Roh E-Mail einlesen und konvertieren\r\n</button>\r\n\r\n\r\n<!-- <ae-layout\r\n  v-if=\"locals.previewDocument\"\r\n  ref=\"preview\"\r\n  layout-id=\"bbd6d99f-571d-422f-a2bc-15d3f8ecfae8\"\r\n  :param-file-name=\"locals.previewDocument.data.datei.name\"\r\n  param-field-name=\"datei\"\r\n  :param-document=\"locals.previewDocument\"\r\n></ae-layout>\r\n     -->","css":"._CSS {\r\n  min-width: 0;\r\n  overflow: hidden;\r\n  display: flex;\r\n  flex-flow: column;\r\n}\r\n\r\n._CSS-received {\r\n  font-size:smaller;\r\n  margin: 0px 8px 0 0;\r\n  white-space: nowrap;\r\n  opacity: 0.5;\r\n  xbackground: var(--ae-background-100);\r\n  text-align: center;\r\n  xborder: 1px solid var(--ae-background-200);\r\n}\r\n\r\n._CSS-email-addresses {\r\n  display:flex;\r\n  align-items: center;\r\n}\r\n\r\n._CSS-to {\r\n  padding: 4px;\r\n  border: 1px solid lightgray;\r\n  border-width: 0 0 1px 0;\r\n  margin: 4px;\r\n}\r\n\r\n._CSS-cc {\r\n  opacity: 0.8;\r\n  font-size:smaller;\r\n  border-width: 0 0 1px 0;\r\n  display:flex;\r\n  flex-direction: row;\r\n  align-items: center;\r\n}\r\n\r\n._CSS-subject {\r\n  font-weight: bolder;\r\n}\r\n\r\n._CSS-body {\r\n  opacity: 0.8; \r\n  x-webkit-line-clamp: 2;\r\n  overflow: hidden;\r\n  text-overflow: ellipsis;\r\n  white-space:nowrap;\r\n  max-height:4em;\r\n}\r\n\r\n._CSS-attachments {\r\n  margin-top: 1em;\r\n  display:flex;\r\n  flex-wrap: wrap;\r\n}\r\n\r\n._CSS-attachments > * {\r\n  margin: 0 8px 8px 0;\r\n}","controller":"class Controller {\r\n  init() {\r\n    locals.previewDocument = null\r\n    locals.date = data.empfangen && Aeppic.DateTime.fromISO(data.empfangen).toLocaleString(DateTime.DATETIME_SHORT)\r\n\r\n\r\n  }\r\n\r\n  get isExtracted() {\r\n    const hasMailAttached = document.data.msgFile?.dataUrl || document.data.emlFile?.dataUrl\r\n    const hasMailExtractionMarks =  document.data.name ||\r\n                                    document.data.gesendet ||\r\n                                    document.data.empfangen ||\r\n                                    document.data.von ||\r\n                                    document.data.an.length ||\r\n                                    document.data.text.length ||\r\n                                    document.data.html ||\r\n                                    document.data.fullMail ||\r\n                                    document.data.headers.length\r\n\r\n    return hasMailAttached && !hasMailExtractionMarks\r\n  }\r\n}\r\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2019-08-05T09:22:58+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2024-02-08T09:57:09+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1707386229517,"ct":1611845434099,"a_depth":4,"a":["apps","b9df606f-b33a-48ad-ba91-a82fa7868fa4","f0010376-2737-42c5-aaf8-f8b8e1cd0449","59b7188e-1296-4466-a9c2-d6255496e7d6"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"56c87c49-ca24-43f4-8988-3b295afeee29","v":"87c32d16f3851e9f","previous":{"v":"initial"},"p":"stamp-type","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"ref-card-title","template":"<ae-design v-if=\"document.data.color\" name=\"colored-circle\" :document=\"document\"></ae-design>\n<ae-design name=\"title\" :document=\"document\"></ae-design>","css":"._CSS {\n  display: flex;\n  flex-direction: row;\n  align-items: center;\n  grid-gap: 4px;\n}","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-04-19T12:28:05+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","from":"","client":"server"},"modified":{"at":"2023-04-19T12:28:27+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1681907307096,"ct":1681907285510,"a_depth":3,"a":["system","system-forms","stamp-type"],"a_forms":["system-folder-form","repository-folder-form","form"],"inheritedLocks":[null,null,null,null],"stamps":[]},{"id":"5c91f45d-403e-4631-8aa4-f81aab249b13","v":"c4b14768fb35741c","previous":{"v":"eab6250bb9862b75"},"p":"5150f703-e93a-4e54-a998-a06c0e962e71","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"ref-card-title","template":"<div class=\"flex gap-2 justify-between items-center\">\n  <ae-design name=\"title\" :document=\"document\"></ae-design>\n\n  <ae-layout layout-id=\"c80364ed-8a1f-40fa-a169-5cc7b45d4fb4\"\n            :param-document=\"document\"\n            :param-commands=\"['13ccdda5-74a2-47ed-a62c-6c130bb961f0']\"\n  ></ae-layout>\n</div> ","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-06-28T08:42:00+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-06-28T08:52:33+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1656406353888,"ct":1656405720823,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","5150f703-e93a-4e54-a998-a06c0e962e71"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"5fe3e930-db21-4d02-915a-75727626278d","v":"initial","previous":{"v":""},"p":"c186a5aa-6a83-4ed4-894a-c0c312925058","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"ref-card-title","applies":"","template":"<span style=\"flex: 1;\">{{data.kommentar}}</span>\n<ae-control name=\"mark-spot\" field-name=\"foto\" :document=\"document\" :readonly=\"true\" \n:params=\"{ markerX: 'posX', markerY:'posY'}\"></ae-control>\n<h3>Messpunkte</h3>\n<ae-list style=\"flex: 1;\" list-id=\"simple-list\" query-id=\"f812861f-68c8-4818-9972-be7b5474c9b1\" :root-document-id=\"document.id\"></ae-list>\n","css":"._CSS {\n  flex: 1;\n  display: flex;\n  flex-flow: column;\n  padding-right: 1rem;\n}\n\n._CSS-image {\n  height: 200px;\n  flex: 1;\n  background-size: cover;\n  background-repeat: no-repeat;\n  background-position: center;\n}","controller":"","packages":[]},"locks":[],"created":{"at":"2018-02-23T08:29:23+01:00","by":"","from":"","client":"server"},"modified":{"at":"2018-02-23T08:29:23+01:00","by":"","from":"","client":"server"},"t":1519370963065,"ct":1519370963064,"a_depth":4,"a":["apps","b791df37-6eef-4a3e-9066-1b79e0bdad31","35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f","c186a5aa-6a83-4ed4-894a-c0c312925058"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"630eaa38-0a3e-4ee6-877e-a0d683658d55","v":"2fb4a4883a28aec9","cloneOf":{"id":"19e54e64-5f30-4d63-b1ad-1e6afc723622","v":"d17935594e1d6b73","text":"ref-card-title"},"originalCloneOf":{"id":"19e54e64-5f30-4d63-b1ad-1e6afc723622","v":"d17935594e1d6b73","text":"ref-card-title"},"previous":{"v":"ba0a8a94b571d3bb"},"p":"756a726d-56c8-452c-9a13-d47d4e04954c","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"ref-card-title","template":"<div class=\"flex flex-wrap gap-1 mt-1\">\n  <ae-design v-for=\"image of data.image\" :key=\"image.id\" name=\"thumbnail\" :document=\"image\"></ae-design> \n</div>\n<div class=\"grid grid-cols-2 gap-y-1 mt-1 mb-1 flex-wrap\">\n  <template\n    v-for=\"field of locals.fields\" \n    >\n    <span class=\"rounded-l-md bg-slate-200 border-2 border-r-0 border-slate-400 p-1\" v-show=\"controller.mapToLabel(field.name)\">\n      {{controller.mapToPlaceholder(field.name)?.label}}\n    </span>\n    <span class=\"rounded-r-md bg-slate-300 border-2 border-slate-400 p-1\" v-show=\"controller.mapToLabel(field.name)\">\n        {{controller.mapToLabel(field.name)}}\n    </span>\n  </template>\n</div>\n\n","css":"._CSS {\n  display: flex;\n  flex-direction: column;\n  border: 1px solid transparent;\n  transition: all cubic-bezier(0.075, 0.82, 0.165, 1);\n}\n\n._CSS:hover {\n  cursor:pointer;\n  background-color: aqua;\n  border-color: rgb(51, 196, 228);\n}","controller":"async init() { \n  locals.form = null\n  locals.fields = []\n  locals.form = await Aeppic.getFormForDocument(document)\n  locals.fields = Object.values(locals.form?.info.fields).filter(f => f.subType === 'select' || f.subType == 'text' || f.subType === 'number')\n}\n\nmapToPlaceholder(fieldName) {\n  if (!locals.form) {\n    return\n  } \n\n  for (const placeholder of locals.form.info.placeholders) {\n    if (placeholder.field?.name === fieldName) {\n      return placeholder\n    }\n  }\n}\n\nmapToLabel(fieldName) {\n  if (!locals.form) {\n    return\n  } \n\n  const fieldInfo = locals.form.info.fields[fieldName]\n\n  const fieldValue = document.data[fieldName]\n\n  if (fieldInfo.subType === 'select') {\n    const option = fieldInfo.settings?.options?.find(o => o.value === fieldValue)\n\n    if (option) {\n      return option.display ?? option.value\n    }\n  } else if (fieldInfo.subType === 'text') {\n    return fieldValue\n  } else if (fieldInfo.subType === 'number') {\n    return fieldValue\n  } else {\n    console.log('Cannot map field', fieldName, 'is no select')\n  }\n  \n\n  return fieldValue\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-07-19T11:40:17+00:00","by":"427610a9-39dc-4014-9176-5f72aeb23263","from":"","client":"server"},"modified":{"at":"2023-07-19T11:40:26+00:00","by":"427610a9-39dc-4014-9176-5f72aeb23263","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1689766826971,"ct":1689766817552,"a_depth":4,"a":["apps","deeef973-ce03-4557-bf75-75a059001767","e7de598c-6f5a-4ab4-a33b-213ca86e489d","756a726d-56c8-452c-9a13-d47d4e04954c"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"6b545a69-7940-4926-be34-2cca4eb02928","v":"initial","p":"859f370d-2f40-4ab0-a841-134f57513254","f":{"id":"design-form","v":"65801907e0c30697","text":"Design"},"data":{"name":"ref-card-title","template":"<ae-design name=\"title\" :document=\"document\" class=\"_CSS-title\"></ae-design>\n<template v-if=\"data.summeAuftrag\">\n  ({{ Number(data.summeAuftrag).toLocaleString() }} <ae-icon class=\"fa fa-euro-sign\"></ae-icon>, <span style=\"margin-left: 0.5ch;\">{{  Number((100 / data.summeAuftrag) * data.summeAbgerechnet).toLocaleString(undefined, { maximumFractionDigits: 0 }) }}% abgerechnet</span>)\n</template>\n","css":"._CSS {\n  display: flex;\n  align-items: center;\n  width: 100%;\n}\n\n._CSS-title {\n  width: 15%;\n  margin-right: 1ch;\n}","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-09-17T11:55:22+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2020-09-17T11:55:22+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1600343722946,"ct":1600343722946,"a_depth":4,"a":["apps","94a64d89-d204-4918-b147-d717914fb03e","f254ce25-42f1-4333-8ee7-23554bf746c1","859f370d-2f40-4ab0-a841-134f57513254"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"73d7db7a-f843-4420-a808-d24bd466d6fc","v":"087e42c123585d17","cloneOf":{"id":"3a90cf63-6d78-49da-af0b-d2644addab77","v":"2d0b38518e779898","text":"ref-card-title"},"originalCloneOf":{"id":"3a90cf63-6d78-49da-af0b-d2644addab77","v":"2d0b38518e779898","text":"ref-card-title"},"previous":{"v":"8c2a652678e11c59"},"p":"857157fa-4c9b-4f7c-bba5-7a49646e849e","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"ref-card-title","template":"<div class=\"flex flex-wrap gap-1 mt-1\">\n  <ae-design v-for=\"image of data.image\" :key=\"image.id\" name=\"thumbnail\" :document=\"image\"></ae-design> \n</div>\n<div class=\"grid grid-cols-2 gap-y-1 mt-1 mb-1 flex-wrap\">\n  <template\n    v-for=\"field of locals.fields\" \n    >\n    <span class=\"rounded-l-md bg-slate-200 border-2 border-r-0 border-slate-400 p-1\" v-show=\"controller.mapToLabel(field.name)\">\n      {{controller.mapToPlaceholder(field.name)?.label}}\n    </span>\n    <span class=\"rounded-r-md bg-slate-300 border-2 border-slate-400 p-1\" v-show=\"controller.mapToLabel(field.name)\">\n        {{controller.mapToLabel(field.name)}}\n    </span>\n  </template>\n</div>\n\n","css":"._CSS {\n  display: flex;\n  flex-direction: column;\n  border: 1px solid transparent;\n  transition: all cubic-bezier(0.075, 0.82, 0.165, 1);\n}\n\n._CSS:hover {\n  cursor:pointer;\n  background-color: aqua;\n  border-color: rgb(51, 196, 228);\n}","controller":"async init() { \n  locals.form = null\n  locals.fields = []\n  locals.form = await Aeppic.getFormForDocument(document)\n  locals.fields = Object.values(locals.form?.info.fields).filter(f => f.subType === 'select' || f.subType == 'text' || f.subType === 'number')\n}\n\nmapToPlaceholder(fieldName) {\n  if (!locals.form) {\n    return\n  } \n\n  for (const placeholder of locals.form.info.placeholders) {\n    if (placeholder.field?.name === fieldName) {\n      return placeholder\n    }\n  }\n}\n\nmapToLabel(fieldName) {\n  if (!locals.form) {\n    return\n  } \n\n  const fieldInfo = locals.form.info.fields[fieldName]\n\n  const fieldValue = document.data[fieldName]\n\n  if (fieldInfo.subType === 'select') {\n    const option = fieldInfo.settings?.options?.find(o => o.value === fieldValue)\n\n    if (option) {\n      return option.display ?? option.value\n    }\n  } else if (fieldInfo.subType === 'text') {\n    return fieldValue\n  } else if (fieldInfo.subType === 'number') {\n    return fieldValue\n  } else {\n    console.log('Cannot map field', fieldName, 'is no select')\n  }\n  \n\n  return fieldValue\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-07-19T11:41:10+00:00","by":"427610a9-39dc-4014-9176-5f72aeb23263","from":"","client":"server"},"modified":{"at":"2023-07-19T11:41:19+00:00","by":"427610a9-39dc-4014-9176-5f72aeb23263","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1689766879381,"ct":1689766870477,"a_depth":4,"a":["apps","deeef973-ce03-4557-bf75-75a059001767","e7de598c-6f5a-4ab4-a33b-213ca86e489d","857157fa-4c9b-4f7c-bba5-7a49646e849e"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"7513ff6b-0078-4945-bb95-408c659e1d1a","v":"initial","previous":{"v":""},"p":"8b64a4e4-bcc0-4080-9913-bc973143abd9","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"ref-card-title","applies":"","template":"<ae-design name=\"title\" :document=\"document\"></ae-design>\n\n<ae-design name=\"language-flag\" :document=\"document\"></ae-design>","css":"._CSS {\n  display: flex;\n}","controller":"","packages":[]},"locks":[],"created":{"at":"2018-07-06T12:14:33+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2018-07-06T12:14:33+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1530879273574,"ct":1530879273574,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","8b64a4e4-bcc0-4080-9913-bc973143abd9"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"7988b7f5-f5e8-4dd1-aa85-2380e3947353","v":"feaa16f9321e324b","previous":{"v":"ce883f81b4094836"},"p":"f800b4cd-7ef2-427e-9ce0-f5834126c09d","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"ref-card-title","template":"<div class=\"flex flex-wrap gap-1 mt-1\">\n  <ae-design v-for=\"image of data.image\" :key=\"image.id\" name=\"thumbnail\" :document=\"image\"></ae-design> \n</div>\n<div class=\"grid grid-cols-2 gap-y-1 mt-1 mb-1 flex-wrap\">\n  <template\n    v-for=\"field of locals.fields\" \n    >\n    <span class=\"rounded-l-md bg-slate-200 border-2 border-r-0 border-slate-400 p-1\" v-show=\"controller.mapToLabel(field.name)\">\n      {{controller.mapToPlaceholder(field.name)?.label}}\n    </span>\n    <span class=\"rounded-r-md bg-slate-300 border-2 border-slate-400 p-1\" v-show=\"controller.mapToLabel(field.name)\">\n        {{controller.mapToLabel(field.name)}}\n    </span>\n  </template>\n</div>\n\n","css":"._CSS {\n  display: flex;\n  flex-direction: column;\n  border: 1px solid transparent;\n  transition: all cubic-bezier(0.075, 0.82, 0.165, 1);\n}\n\n._CSS:hover {\n  cursor:pointer;\n  background-color: aqua;\n  border-color: rgb(51, 196, 228);\n}","controller":"async init() { \n  locals.form = null\n  locals.fields = []\n  locals.form = await Aeppic.getFormForDocument(document)\n  locals.fields = Object.values(locals.form?.info.fields).filter(f => f.subType === 'select' || f.subType == 'text' || f.subType === 'number')\n}\n\nmapToPlaceholder(fieldName) {\n  if (!locals.form) {\n    return\n  } \n\n  for (const placeholder of locals.form.info.placeholders) {\n    if (placeholder.field?.name === fieldName) {\n      return placeholder\n    }\n  }\n}\n\nmapToLabel(fieldName) {\n  if (!locals.form) {\n    return\n  } \n\n  const fieldInfo = locals.form.info.fields[fieldName]\n\n  const fieldValue = document.data[fieldName]\n\n  if (fieldInfo.subType === 'select') {\n    const option = fieldInfo.settings?.options?.find(o => o.value === fieldValue)\n\n    if (option) {\n      return option.display ?? option.value\n    }\n  } else if (fieldInfo.subType === 'text') {\n    return fieldValue\n  } else if (fieldInfo.subType === 'number') {\n    return fieldValue\n  } else {\n    console.log('Cannot map field', fieldName, 'is no select')\n  }\n  \n\n  return fieldValue\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-06-21T11:51:11+00:00","by":"427610a9-39dc-4014-9176-5f72aeb23263","from":"","client":"server"},"modified":{"at":"2023-07-17T08:57:37+00:00","by":"427610a9-39dc-4014-9176-5f72aeb23263","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1689584257029,"ct":1687348271024,"a_depth":4,"a":["apps","deeef973-ce03-4557-bf75-75a059001767","e7de598c-6f5a-4ab4-a33b-213ca86e489d","f800b4cd-7ef2-427e-9ce0-f5834126c09d"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"89fa0b66-fc5b-468b-a011-4b927b804795","v":"7ce47497a79a8c46","cloneOf":{"id":"630eaa38-0a3e-4ee6-877e-a0d683658d55","v":"2fb4a4883a28aec9","text":"ref-card-title"},"originalCloneOf":{"id":"630eaa38-0a3e-4ee6-877e-a0d683658d55","v":"2fb4a4883a28aec9","text":"ref-card-title"},"previous":{"v":"60f3c78f79fa29e0"},"p":"c2c9bf3d-3127-497a-8d96-cfdca483cb97","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"ref-card-title","template":"<div class=\"flex flex-wrap gap-1 mt-1\">\n  <ae-design v-for=\"image of data.image\" :key=\"image.id\" name=\"thumbnail\" :document=\"image\"></ae-design> \n</div>\n<div class=\"grid grid-cols-2 gap-y-1 mt-1 mb-1 flex-wrap\">\n  <template\n    v-for=\"field of locals.fields\" \n    >\n    <span class=\"rounded-l-md bg-slate-200 border-2 border-r-0 border-slate-400 p-1\" v-show=\"controller.mapToLabel(field.name)\">\n      {{controller.mapToPlaceholder(field.name)?.label}}\n    </span>\n    <span class=\"rounded-r-md bg-slate-300 border-2 border-slate-400 p-1\" v-show=\"controller.mapToLabel(field.name)\">\n        {{controller.mapToLabel(field.name)}}\n    </span>\n  </template>\n</div>\n\n","css":"._CSS {\n  display: flex;\n  flex-direction: column;\n  border: 1px solid transparent;\n  transition: all cubic-bezier(0.075, 0.82, 0.165, 1);\n}\n\n._CSS:hover {\n  cursor:pointer;\n  background-color: aqua;\n  border-color: rgb(51, 196, 228);\n}","controller":"async init() { \n  locals.form = null\n  locals.fields = []\n  locals.form = await Aeppic.getFormForDocument(document)\n  locals.fields = Object.values(locals.form?.info.fields).filter(f => f.subType === 'select' || f.subType == 'text' || f.subType === 'number')\n}\n\nmapToPlaceholder(fieldName) {\n  if (!locals.form) {\n    return\n  } \n\n  for (const placeholder of locals.form.info.placeholders) {\n    if (placeholder.field?.name === fieldName) {\n      return placeholder\n    }\n  }\n}\n\nmapToLabel(fieldName) {\n  if (!locals.form) {\n    return\n  } \n\n  const fieldInfo = locals.form.info.fields[fieldName]\n\n  const fieldValue = document.data[fieldName]\n\n  if (fieldInfo.subType === 'select') {\n    const option = fieldInfo.settings?.options?.find(o => o.value === fieldValue)\n\n    if (option) {\n      return option.display ?? option.value\n    }\n  } else if (fieldInfo.subType === 'text') {\n    return fieldValue\n  } else if (fieldInfo.subType === 'number') {\n    return fieldValue\n  } else {\n    console.log('Cannot map field', fieldName, 'is no select')\n  }\n  \n\n  return fieldValue\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-07-19T11:40:28+00:00","by":"427610a9-39dc-4014-9176-5f72aeb23263","from":"","client":"server"},"modified":{"at":"2023-07-19T11:41:00+00:00","by":"427610a9-39dc-4014-9176-5f72aeb23263","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1689766860355,"ct":1689766828949,"a_depth":4,"a":["apps","deeef973-ce03-4557-bf75-75a059001767","e7de598c-6f5a-4ab4-a33b-213ca86e489d","c2c9bf3d-3127-497a-8d96-cfdca483cb97"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"8ab0f8c2-cd4c-4a9b-ae71-ac140e645b07","v":"initial","p":"d6b30723-9c28-47f2-a4d9-95ac705cc975","f":{"id":"design-form","v":"49954170df6a253b","text":"Design"},"data":{"name":"ref-card-title","template":"{{ data.name }} <template v-if=\"data.position\">({{ data.position  }})</template> <br>\n\n<span v-if=\"data.eMail\">\n  {{ form.getPlaceholder('eMail').label }}:\n  <a @click.stop :href=\"'mailto:' + data.eMail\">{{data.eMail }}</a>,\n</span>\n\n<span v-if=\"data.telefon\">\n  {{ form.getPlaceholder('telefon').label }}:\n  <a @click.stop :href=\"'tel:' + data.telefon\">{{ data.telefon }}</a>,\n</span>\n<span v-if=\"data.fax\">\n  {{ form.getPlaceholder('fax').label }}:\n<a @click.stop :href=\"'tel:' + data.fax\">{{data.fax }}</a>,\n</span>\n<span v-if=\"data.mobil\">\n  {{ form.getPlaceholder('mobil').label }}:\n  <a @click.stop :href=\"'tel:' + data.mobil\">{{data.mobil }}</a>\n</span>\n","css":"","controller":"","packages":[],"description":""},"locks":[],"created":{"at":"2019-01-30T16:07:25+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2019-01-30T16:07:25+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1548864445966,"ct":1548864445949,"a_depth":4,"a":["apps","7ba1fc90-8094-44ce-8f5a-54a0da3999ed","710a1fcc-d225-4fb3-a1aa-64684f397ee6","d6b30723-9c28-47f2-a4d9-95ac705cc975"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"8ed6511c-21f1-4deb-844b-0542d1e7272f","v":"47d7bbe5a70edcc4","cloneOf":{"id":"eb496a5a-38b9-4b29-bc13-472f18a241fc","v":"0838a2c4b1a03b37","text":"ref-card-title"},"originalCloneOf":{"id":"eb496a5a-38b9-4b29-bc13-472f18a241fc","v":"0838a2c4b1a03b37","text":"ref-card-title"},"previous":{"v":"7993df31c798e089"},"p":"164a9d5b-53e9-448e-b9f5-d3bd3f78cbe5","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"ref-card-title","template":"<div class=\"flex flex-wrap gap-1 mt-1\">\n  <ae-design v-for=\"image of data.image\" :key=\"image.id\" name=\"thumbnail\" :document=\"image\"></ae-design> \n</div>\n<div class=\"grid grid-cols-2 gap-y-1 mt-1 mb-1 flex-wrap\">\n  <template\n    v-for=\"field of locals.fields\" \n    >\n    <span class=\"rounded-l-md bg-slate-200 border-2 border-r-0 border-slate-400 p-1\" v-show=\"controller.mapToLabel(field.name)\">\n      {{controller.mapToPlaceholder(field.name)?.label}}\n    </span>\n    <span class=\"rounded-r-md bg-slate-300 border-2 border-slate-400 p-1\" v-show=\"controller.mapToLabel(field.name)\">\n        {{controller.mapToLabel(field.name)}}\n    </span>\n  </template>\n</div>\n\n","css":"._CSS {\n  display: flex;\n  flex-direction: column;\n  border: 1px solid transparent;\n  transition: all cubic-bezier(0.075, 0.82, 0.165, 1);\n}\n\n._CSS:hover {\n  cursor:pointer;\n  background-color: aqua;\n  border-color: rgb(51, 196, 228);\n}","controller":"async init() { \n  locals.form = null\n  locals.fields = []\n  locals.form = await Aeppic.getFormForDocument(document)\n  locals.fields = Object.values(locals.form?.info.fields).filter(f => f.subType === 'select' || f.subType == 'text' || f.subType === 'number')\n}\n\nmapToPlaceholder(fieldName) {\n  if (!locals.form) {\n    return\n  } \n\n  for (const placeholder of locals.form.info.placeholders) {\n    if (placeholder.field?.name === fieldName) {\n      return placeholder\n    }\n  }\n}\n\nmapToLabel(fieldName) {\n  if (!locals.form) {\n    return\n  } \n\n  const fieldInfo = locals.form.info.fields[fieldName]\n\n  const fieldValue = document.data[fieldName]\n\n  if (fieldInfo.subType === 'select') {\n    const option = fieldInfo.settings?.options?.find(o => o.value === fieldValue)\n\n    if (option) {\n      return option.display ?? option.value\n    }\n  } else if (fieldInfo.subType === 'text') {\n    return fieldValue\n  } else if (fieldInfo.subType === 'number') {\n    return fieldValue\n  } else {\n    console.log('Cannot map field', fieldName, 'is no select')\n  }\n  \n\n  return fieldValue\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-07-19T11:38:37+00:00","by":"427610a9-39dc-4014-9176-5f72aeb23263","from":"","client":"server"},"modified":{"at":"2023-07-19T11:39:43+00:00","by":"427610a9-39dc-4014-9176-5f72aeb23263","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1689766783943,"ct":1689766717371,"a_depth":4,"a":["apps","deeef973-ce03-4557-bf75-75a059001767","e7de598c-6f5a-4ab4-a33b-213ca86e489d","164a9d5b-53e9-448e-b9f5-d3bd3f78cbe5"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"9ad6b3c6-f4ff-4559-b324-0e50cd9cf1a8","v":"1f1a04e4c4224265","previous":{"v":"276afb63e769696d"},"p":"634b4d86-8b2e-4077-b7ab-5e7b4913ea6c","f":{"id":"design-form","v":"2d98bf27c3108340","text":"Design"},"data":{"name":"ref-card-title","applies":"","description":"","template":"<ae-layout  layout-id=\"acd83791-970f-4b6e-bebd-d7f3bca52014\"\n            :param-document=\"document\"\n            :param-readonly=\"true\"\n            :param-hide-empty=\"true\"\n></ae-layout>","css":"._CSS {\n  width: 100%;\n}","controller":"","packages":[]},"locks":[],"created":{"at":"2018-10-26T12:58:53+00:00","by":"2695f56c-96e6-4009-8e2f-d545ea1e02aa","from":"","client":"server"},"modified":{"at":"2018-12-06T14:08:51+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1544105331805,"ct":1540558733397,"a_depth":5,"a":["apps","83c76376-420e-4231-9275-d0fe2ab47c32","e117ae4b-b53a-4d37-8e3b-a2764606fd7b","0427f795-631c-4965-8a77-455ac3776ee2","634b4d86-8b2e-4077-b7ab-5e7b4913ea6c"],"a_forms":["folder","application-form","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"9c094250-93fa-4aff-a338-c32facb9f9e5","v":"dbf2bc0273efca83","previous":{"v":"5cab3d753247be1b"},"p":"ea3fb00c-4b3e-44ed-8bfb-7dce7f8a8f4c","f":{"id":"design-form","v":"0061789efb5c5c29","text":"Design"},"data":{"name":"ref-card-title","template":"<span v-if=\"data.titel\">{{data.titel}}</span>\n<ae-design v-else style=\"display:inline;font-style:italic;\" name=\"title\" :document-id=\"document.f.id\"></ae-design>\n{{controller.subtitle}}","css":"","controller":"get subtitle() {\n  const parts = []\n\n  if (data.datum) {\n    parts.push(Aeppic.DateTime.fromISO(data.datum).toLocaleString(Aeppic.DateTime.DATE_SHORT))\n  }\n  if (data.nummer) {\n    parts.push(`Angebots-Nummer: ${data.nummer}`)\n  }\n\n  if (data.positionen.length) {\n    parts.push(`${data.positionen.length} Positionen`)\n  }\n\n  if (parts.length) {\n    return `(${parts.join(', ')})`\n  }\n\n  return ''\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-11-17T13:18:10+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-04-29T11:41:45+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1619696505052,"ct":1605619090169,"a_depth":4,"a":["apps","0924db0f-7095-4b51-8966-bad1e45d68ec","a3b935e7-60bc-4996-9b18-668e4361067f","ea3fb00c-4b3e-44ed-8bfb-7dce7f8a8f4c"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"a8d94a32-cf55-4285-b39d-f4501b55fee6","v":"c1ccd48bb79b4f5e","previous":{"v":"69f9503ada59b95d","locks":[]},"p":"093b2f65-2a18-4639-9a6a-59b9006d52ee","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"ref-card-title","applies":"","template":"<ae-design class=\"_CSS-color\" name=\"color\" :document=\"document\"></ae-design>\n<ae-design name=\"title\" :document=\"document\"></ae-design>","css":"._CSS {\n  display: flex;\n}\n\n._CSS-color {\n  display: inline-block;\n  min-height: 100%;\n  margin-right: 1ch;\n  width: 1ch;\n  display: flex;\n}\n ","controller":"","packages":[]},"locks":[],"created":{"at":"2018-09-05T09:07:35+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2018-09-05T09:14:50+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1536138890937,"ct":1536138455527,"a_depth":5,"a":["apps","83c76376-420e-4231-9275-d0fe2ab47c32","5f76a5c6-0ebc-4a08-b5ae-84fd3176f9c9","351909be-5fd2-4c27-834d-3c094a8bade3","093b2f65-2a18-4639-9a6a-59b9006d52ee"],"a_forms":["folder","application-form","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"abbe4961-d5fd-4708-a183-dd8d7d9039c5","v":"1e94333f161d5139","previous":{"v":"59847f7e9e2f9a6a"},"p":"a77f917d-0d75-41b5-93e3-4c9da731ddbc","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"ref-card-title","template":"<ae-form :document=\"document\" :readonly=\"true\"></ae-form>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-06-28T13:20:35+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","from":"","client":"server"},"modified":{"at":"2023-07-17T08:30:13+00:00","by":"427610a9-39dc-4014-9176-5f72aeb23263","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1689582613362,"ct":1687958435560,"a_depth":4,"a":["apps","deeef973-ce03-4557-bf75-75a059001767","e7de598c-6f5a-4ab4-a33b-213ca86e489d","a77f917d-0d75-41b5-93e3-4c9da731ddbc"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"abfd04ef-4333-4f41-87fa-f979d91a7b7d","v":"81d056675b2ada8e","cloneOf":{"id":"3f101344-c94b-4f50-9ede-55f4ce9fdb19","v":"189a7eb920513d1d","text":"[copy of]: [copy of]: ref-card-title"},"originalCloneOf":{"id":"3f101344-c94b-4f50-9ede-55f4ce9fdb19","v":"189a7eb920513d1d","text":"[copy of]: [copy of]: ref-card-title"},"previous":{"v":"572a6e02ea1fe2b7"},"p":"dbcc416d-bced-4cc4-89b2-7f18ef390e9e","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"ref-card-title","template":"<div class=\"flex flex-wrap gap-1 mt-1\">\n  <ae-design v-for=\"image of data.image\" :key=\"image.id\" name=\"thumbnail\" :document=\"image\"></ae-design> \n</div>\n<div class=\"grid grid-cols-2 gap-y-1 mt-1 mb-1 flex-wrap\">\n  <template\n    v-for=\"field of locals.fields\" \n    >\n    <span class=\"rounded-l-md bg-slate-200 border-2 border-r-0 border-slate-400 p-1\" v-show=\"controller.mapToLabel(field.name)\">\n      {{controller.mapToPlaceholder(field.name)?.label}}\n    </span>\n    <span class=\"rounded-r-md bg-slate-300 border-2 border-slate-400 p-1\" v-show=\"controller.mapToLabel(field.name)\">\n        {{controller.mapToLabel(field.name)}}\n    </span>\n  </template>\n</div>\n\n","css":"._CSS {\n  display: flex;\n  flex-direction: column;\n  border: 1px solid transparent;\n  transition: all cubic-bezier(0.075, 0.82, 0.165, 1);\n}\n\n._CSS:hover {\n  cursor:pointer;\n  background-color: aqua;\n  border-color: rgb(51, 196, 228);\n}","controller":"async init() { \n  locals.form = null\n  locals.fields = []\n  locals.form = await Aeppic.getFormForDocument(document)\n  locals.fields = Object.values(locals.form?.info.fields).filter(f => f.subType === 'select' || f.subType == 'text' || f.subType === 'number')\n}\n\nmapToPlaceholder(fieldName) {\n  if (!locals.form) {\n    return\n  } \n\n  for (const placeholder of locals.form.info.placeholders) {\n    if (placeholder.field?.name === fieldName) {\n      return placeholder\n    }\n  }\n}\n\nmapToLabel(fieldName) {\n  if (!locals.form) {\n    return\n  } \n\n  const fieldInfo = locals.form.info.fields[fieldName]\n\n  const fieldValue = document.data[fieldName]\n\n  if (fieldInfo.subType === 'select') {\n    const option = fieldInfo.settings?.options?.find(o => o.value === fieldValue)\n\n    if (option) {\n      return option.display ?? option.value\n    }\n  } else if (fieldInfo.subType === 'text') {\n    return fieldValue\n  } else if (fieldInfo.subType === 'number') {\n    return fieldValue\n  } else {\n    console.log('Cannot map field', fieldName, 'is no select')\n  }\n  \n\n  return fieldValue\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-07-19T11:40:45+00:00","by":"427610a9-39dc-4014-9176-5f72aeb23263","from":"","client":"server"},"modified":{"at":"2023-07-19T11:40:55+00:00","by":"427610a9-39dc-4014-9176-5f72aeb23263","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1689766855458,"ct":1689766845955,"a_depth":4,"a":["apps","deeef973-ce03-4557-bf75-75a059001767","e7de598c-6f5a-4ab4-a33b-213ca86e489d","dbcc416d-bced-4cc4-89b2-7f18ef390e9e"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"ae107399-1a89-4e70-93ad-2e7d261d5bcc","v":"011ca960acafeaab","previous":{"v":"2ded880e4bcff635"},"p":"39cc8c10-ef0e-4780-bec0-ba6b01b4d200","f":{"id":"design-form","v":"5dbbefb312ab61e2","text":"Design"},"data":{"name":"ref-card-title","template":"<div class=\"flex mr-8 items-center\" :class=\"[ data.ausgefuehrt && 'opacity-80 line-through']\">\n  <div class=\"mr-6 w-[80px]\">\n    <div class=\"text-xs\">\n    Gültig ab\n    </div>\n    <div v-if=\"data.datum\">\n      {{ Aeppic.DateTime.fromISO(data.datum).toLocaleString(Aeppic.DateTime.DATE_SHORT) }}\n    </div>\n    <ae-icon v-else class=\"fa fa-calendar-times\"></ae-icon>\n  </div>\n\n  <div v-if=\"data.kostenAnpassen\" class=\"flex gap-2 items-center\">\n    <ae-icon class=\"fa fa-sack-dollar\"></ae-icon>\n\n    <div>\n      <div class=\"tex-xs\">\n        Summe\n      </div>\n\n      <div>\n      {{ new Intl.NumberFormat('de-DE', { style: 'currency', currency: 'EUR' }).format(data.summe) }} \n      </div>\n    </div>\n  </div>\n\n  <div v-if=\"data.mietzeitAnpassen\" class=\"flex gap-2 items-center\">\n    <ae-icon class=\"fa fa-file-signature\"></ae-icon>\n\n    <div>\n      <div class=\"tex-xs\">\n        Mietzeit\n      </div>\n\n      <div v-if=\"locals.form\">\n        {{ locals.form.getField('mietzeit')?.settings.options.find(o => o.value === data.mietzeit)?.display }}\n      </div>\n    </div>\n  </div>\n\n  <div class=\"flex-1\"></div>\n  \n  <div>\n    <ae-icon v-if=\"data.ausgefuehrt\" class=\"fa fa-check-square\"></ae-icon>\n    <ae-icon v-else class=\"far fa-square\"></ae-icon>\n  </div>\n</div>","css":"","controller":"class Controller {\n  async init() {\n    locals.form = null\n    locals.form = await Aeppic.getFormForDocument(document)\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-01-31T12:22:42+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-01-31T15:50:16+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1675180216175,"ct":1675167762206,"a_depth":4,"a":["apps","86189c5a-b9f4-445a-879f-d94574960df0","15292d56-6806-4263-b6d0-9194687203e1","39cc8c10-ef0e-4780-bec0-ba6b01b4d200"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"b3ba3543-4c89-48b4-a388-13b313c739c9","v":"ad05f86091df541a","previous":{"v":"f8543e7f9fd5468e","p":"7ded31a8-e9d2-4a77-8961-6d6ac5d663c4","a":["apps","deeef973-ce03-4557-bf75-75a059001767","7ded31a8-e9d2-4a77-8961-6d6ac5d663c4"],"a_forms":["folder","application-form","folder"]},"p":"81067257-819c-43ae-815b-97f60f08ac2e","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"ref-card-title","template":"<div class=\"flex flex-wrap gap-1\" v-if=\"data.image && data.image.length\">\n  <ae-design v-for=\"image of data.image\" :key=\"image.id\" name=\"thumbnail\" :document=\"image\"></ae-design> \n</div>\n<dl class=\"border  border-slate-300 rounded divide-y divide-gray-200 px-2 py-1 text-sm \">\n  <div v-for=\"field of locals.fields\" v-if=\"controller.mapToLabel(field.name)\" class=\"grid grid-flow-col grid-cols-2 gap-x-4 py-1\">\n    <dt class=\"text-gray-500 flex flex-row items-center\">\n      <span class=\"flex-1\" :title=\"controller.mapFieldToHelp(field.name)?.help?.text\">\n        {{controller.mapToPlaceholder(field.name)?.label}}\n      </span>       \n    </dt>\n    <dd class=\"text-gray-700 flex items-center\">\n      <span class=\"flex-1\" :title=\"controller.mapValueToHelp(field.name).text\">\n        {{controller.mapToLabel(field.name)}}\n      </span>\n      <button v-if=\"controller.mapValueToExtendedHelp(field.name)\" \n        tabindex=\"-1\"\n        class=\"flex flex-col block m-auto p-2\"\n        :class=\"'text-gray-400'\"\n        @mouseenter.prevent.stop=\"controller.openExtendedHelp(field.name, $event)\"\n        @mouseleave.prevent.stop=\"$refs.detail.close()\"\n        @click.prevent.stop=\"controller.openExtendedHelp(field.name, $event)\"\n        >\n        <ae-icon class=\"far fa-info-circle\"></ae-icon>\n      </button>\n    </dd>\n  </div>\n</dl>\n\n <ae-popup ref=\"detail\" :arrow=\"false\" :close-delay=\"50\" :max-width=\"1200\" >\n  <div slot=\"popup\"\n    v-if=\"locals.extendedHelpFieldName\"\n    class=\"w-full overflow-auto rounded-md bg-white p-3 text-base shadow-lg \"\n    @mouseenter.prevent.stop=\"controller.openExtendedHelp(locals.extendedHelpFieldName)\"\n    v-html=\"controller.mapValueToExtendedHelp(locals.extendedHelpFieldName).html\">\n  </div>\n</ae-popup>","css":"","controller":"async init() { \n  locals.form = null\n  locals.fields = []\n  locals.form = await Aeppic.getFormForDocument(document)\n  locals.fields = Object.values(locals.form?.info.fields).filter(f => f.subType === 'select' || f.subType == 'text' || f.subType === 'number')\n  locals.extendedHelpFieldName = null\n}\n\nopenExtendedHelp(fieldName, event) {\n  locals.extendedHelpFieldName = fieldName\n  $refs.detail.show(event)\n}\n\nmapToPlaceholder(fieldName) {\n  if (!locals.form) {\n    return\n  } \n\n  for (const placeholder of locals.form.info.placeholders) {\n    if (placeholder.field?.name === fieldName) {\n      return placeholder\n    }\n  }\n}\n\nmapValueToHelp(fieldName) {\n  if (!locals.form) {\n    return\n  } \n\n  const fieldInfo = locals.form.info.fields[fieldName]\n  const value = document.data[fieldName]\n\n  let help = {}\n\n  help = fieldInfo.settings.help\n\n  if (fieldInfo.subType === 'select') {\n  } else {\n  }\n\n  return help\n}\n\nmapValueToExtendedHelp(fieldName) {\n  if (!locals.form) {\n    return\n  } \n\n  const fieldInfo = locals.form.info.fields[fieldName]\n  const value = document.data[fieldName]\n\n  let help = {}\n\n  if (fieldInfo.subType === 'select') {\n    const options = fieldInfo.settings.options\n    const option = options.find(o => o.value === value)\n    help = option.helpExtended\n  } else {\n    help = fieldInfo.settings.helpExtended\n  }\n\n  return help\n}\n \nmapFieldToHelp(fieldName) {\n  if (!locals.form) {\n    return\n  } \n\n  const fieldInfo = locals.form.info.fields[fieldName]\n  \n  if (!fieldInfo) {\n    return\n  }\n\n  const helpInfo = {\n    help: fieldInfo.settings.help?.text ? fieldInfo.settings.help : null,\n    helpExtended: fieldInfo.settings.helpExtended?.text ? fieldInfo.settings.helpExtended : null,\n    s: fieldInfo.settings\n  }\n\n  if (!helpInfo.help && !helpInfo.helpExtended) {\n    return \n  }\n  \n  return helpInfo\n\n}\n\nmapToLabel(fieldName) {\n  if (!locals.form) {\n    return\n  } \n\n  const fieldInfo = locals.form.info.fields[fieldName]\n\n  const fieldValue = document.data[fieldName]\n\n  if (fieldInfo.subType === 'select') {\n    const option = fieldInfo.settings?.options?.find(o => o.value === fieldValue)\n\n    if (option) {\n      return option.display ?? option.value\n    }\n  } else if (fieldInfo.subType === 'text') {\n    return fieldValue\n  } else if (fieldInfo.subType === 'number') {\n    return fieldValue\n  } else {\n    console.log('Cannot map field', fieldName, 'is no select')\n  }\n  \n\n  return fieldValue\n}\n\n\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-07-09T09:14:11+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-07-09T09:14:24+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720520377505,"ct":1720509251034,"a_depth":3,"a":["apps","deeef973-ce03-4557-bf75-75a059001767","81067257-819c-43ae-815b-97f60f08ac2e"],"a_forms":["folder","application-form","design-folder"],"inheritedLocks":[null,null,null,null],"stamps":[],"meta":{"modified":{"at":"2024-07-09T12:19:37+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"b44e87de-54ff-4f79-8b5d-597a8eb4a7ec","v":"f26377dbac40d5a5","previous":{"v":"0febffbb83bdd7b6"},"p":"3230c10a-64af-48cc-8f3d-15fc16a40e5f","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"ref-card-title","applies":"","template":"<ae-icon class=\"fa fa-user-circle fa-2x\"></ae-icon>\n<ae-design class=\"_CSS-title\" name=\"title\" :document=\"document\"></ae-design>\n<!-- <span class=\"_CSS-title\">{{data.name}}</span> -->\n","css":"._CSS {\n  width: 100%;\n\n  display: flex;\n  align-items: center;\n}\n\n._CSS-title {\n  margin-left: 8px;\n}\n","controller":"","packages":[]},"locks":[],"created":{"at":"2018-06-18T09:51:17+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2020-10-13T10:11:33+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1602583893505,"ct":1529315477543,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","3230c10a-64af-48cc-8f3d-15fc16a40e5f"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"b4808ce6-7c27-4c48-a3fb-1a8e2ef78c99","v":"41cc3c8844370b58","previous":{"v":"initial"},"p":"125d3e08-d0c5-417c-b4fe-172bf5fade99","f":{"id":"design-form","v":"baf08f1171a94bca","text":"Design"},"data":{"name":"ref-card-title","template":"<div class=\"_CSS-container\">\n  <div class=\"_CSS-confirmation\" :title=\"data.identitaetBestaetigt ? 'Identität bestätigt' : 'Identitäts-Bestätigung ausstehend'\">\n    <ae-icon v-if=\"data.identitaetBestaetigt\" class=\"fa fa-user-check\"></ae-icon>\n    <ae-icon v-else class=\"fa fa-user-times\" style=\"color:var(--ae-accent-red-500);\"></ae-icon>\n  </div>\n  <ae-design name=\"ref-card-title\" :document=\"document.data.ansprechpartner\" @selected=\"$emit('selected', document)\"></ae-design>\n</div>","css":"._CSS-container {\n  display: flex;\n}\n\n._CSS-confirmation {\n  margin-right: var(--ae-space-2);\n  font-size: var(--ae-font-size-5);\n}","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-12-18T14:58:47+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2021-09-01T13:32:57+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1630503177013,"ct":1608303527863,"a_depth":4,"a":["apps","94a64d89-d204-4918-b147-d717914fb03e","f254ce25-42f1-4333-8ee7-23554bf746c1","125d3e08-d0c5-417c-b4fe-172bf5fade99"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"b5edd63a-99d5-4b65-bd59-7564bd0701df","v":"3e2453e19d9bcbae","cloneOf":{"id":"7988b7f5-f5e8-4dd1-aa85-2380e3947353","v":"b6d25d5f93bbbf51","text":"ref-card-title"},"originalCloneOf":{"id":"7988b7f5-f5e8-4dd1-aa85-2380e3947353","v":"b6d25d5f93bbbf51","text":"ref-card-title"},"previous":{"v":"331dc4e07d6aae29"},"p":"a678e4d3-a2c1-4eeb-a106-6d47479692c8","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"ref-card-title","template":"<div class=\"flex gap-3 mt-1 mb-1 flex-wrap\">\n  <div\n    v-for=\"field of locals.optionFields\" \n    >\n    <span class=\"rounded-l-md bg-slate-200 border-2 border-r-0 border-slate-400 p-1\" v-show=\"controller.mapToLabel(field.name)\">\n      {{controller.mapToPlaceholder(field.name)?.label}}\n    </span>\n    <span class=\"rounded-r-md bg-slate-300 border-2 border-slate-400 p-1\" v-show=\"controller.mapToLabel(field.name)\">\n        {{controller.mapToLabel(field.name)}}\n    </span>\n  </div>\n</div>\n<div class=\"flex gap-1 mt-1\">\n  <ae-design v-for=\"image of data.image\" :key=\"image.id\" name=\"thumbnail\" :document=\"image\"></ae-design> \n</div>\n","css":"._CSS {\n  display: flex;\n  flex-direction: column;\n}\n","controller":"async init() { \n  locals.form = null\n  locals.optionFields = []\n  locals.form = await Aeppic.getFormForDocument(document)\n  locals.optionFields = Object.values(locals.form?.info.fields).filter(f => f.subType === 'select')\n}\n\nmapToPlaceholder(fieldName) {\n  if (!locals.form) {\n    return\n  } \n\n  for (const placeholder of locals.form.info.placeholders) {\n    if (placeholder.field?.name === fieldName) {\n      return placeholder\n    }\n  }\n}\n\nmapToLabel(fieldName) {\n  if (!locals.form) {\n    return\n  } \n\n  const fieldInfo = locals.form.info.fields[fieldName]\n\n  const fieldValue = document.data[fieldName]\n\n  if (fieldInfo.subType === 'select') {\n    const option = fieldInfo.settings?.options?.find(o => o.value === fieldValue)\n\n    if (option) {\n      return option.display ?? option.value\n    }\n  }\n  \n  console.log('Cannot map field', fieldName, 'is no select')\n\n  return fieldValue\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-06-28T10:07:18+00:00","by":"427610a9-39dc-4014-9176-5f72aeb23263","from":"","client":"server"},"modified":{"at":"2023-06-28T10:07:28+00:00","by":"427610a9-39dc-4014-9176-5f72aeb23263","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1687946848838,"ct":1687946838657,"a_depth":4,"a":["apps","deeef973-ce03-4557-bf75-75a059001767","e7de598c-6f5a-4ab4-a33b-213ca86e489d","a678e4d3-a2c1-4eeb-a106-6d47479692c8"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"b7199837-305e-4bef-9a69-7e01f86b151b","v":"dff25241dde20296","previous":{"v":"initial"},"p":"7628f42e-260d-49b9-a2d6-30cb0973c1b6","f":{"id":"design-form","v":"baf08f1171a94bca","text":"Design"},"data":{"name":"ref-card-title","template":"\n<ae-design name=\"title\" :document=\"document\" style=\"display:inline;\"></ae-design>\n(\n<template v-if=\"locals.form\">\n  {{ locals.form.getPlaceholder('foerdermittel').label }} \n  <ae-design name=\"field-as-currency\" :document=\"document\" param-field-name=\"foerdermittel\" style=\"display:inline-block;\"></ae-design>,\n  {{ locals.form.getPlaceholder('investitionssumme').label }} \n  <ae-design name=\"field-as-currency\" :document=\"document\" param-field-name=\"investitionssumme\" style=\"display:inline-block;\"></ae-design>\n</template>\n)\n\n<div class=\"_CSS-notes\" v-if=\"data.anmerkungen.length\">\n  {{ data.anmerkungen }}\n</div>\n","css":"._CSS-notes {\n  margin: var(--ae-space-2) 0 0 0;\n}\n","controller":"async init() {\n  locals.form = null\n  locals.form = await Aeppic.getFormForDocument(document)\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-10-30T09:47:40+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2020-11-13T14:17:16+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1605277036139,"ct":1604051260958,"a_depth":4,"a":["apps","94a64d89-d204-4918-b147-d717914fb03e","f254ce25-42f1-4333-8ee7-23554bf746c1","7628f42e-260d-49b9-a2d6-30cb0973c1b6"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"c514499f-ccb7-43f5-8d8e-63d7cea14dd4","v":"initial","cloneOf":{"id":"a8d94a32-cf55-4285-b39d-f4501b55fee6","v":"c1ccd48bb79b4f5e","text":"ref-card-title"},"originalCloneOf":{"id":"a8d94a32-cf55-4285-b39d-f4501b55fee6","v":"c1ccd48bb79b4f5e","text":"ref-card-title"},"p":"674d8994-c7b4-4f40-aaea-ca361e8490de","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"ref-card-title","applies":"","template":"<ae-design class=\"_CSS-color\" name=\"color\" :document=\"document\"></ae-design>\n<ae-design name=\"title\" :document=\"document\"></ae-design>","css":"._CSS {\n  display: flex;\n}\n\n._CSS-color {\n  display: inline-block;\n  min-height: 100%;\n  margin-right: 1ch;\n  width: 1ch;\n  display: flex;\n}\n ","controller":"","packages":[]},"locks":[],"created":{"at":"2019-08-21T09:25:37+00:00","by":"2695f56c-96e6-4009-8e2f-d545ea1e02aa","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2019-08-21T09:25:37+00:00","by":"2695f56c-96e6-4009-8e2f-d545ea1e02aa","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1566379537780,"ct":1566379537780,"a_depth":4,"a":["apps","f93ac233-7aa7-4561-a3b3-d8ebda0ee514","fc09d59c-bdef-4b1e-854e-d907bc11b295","674d8994-c7b4-4f40-aaea-ca361e8490de"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"cfdec883-65b3-4af8-92d9-62d3406d8c2c","v":"fbbcfef3f9ace718","previous":{"v":"initial"},"p":"group","f":{"id":"design-form","v":"49954170df6a253b","text":"Design"},"data":{"name":"ref-card-title","template":"<div class=\"_CSS-inline\">\n  <ae-design name=\"avatar--small\" :document=\"document\"></ae-design>\n  <ae-design style=\"margin-left: 4px;\" name=\"title\" :document=\"document\"></ae-design>\n</div>","css":"._CSS-inline {\n  display: flex;\n  align-items: center;\n}","controller":"","packages":[],"description":""},"locks":[],"created":{"at":"2019-01-28T11:25:49+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2019-01-28T11:27:56+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1548674876651,"ct":1548674749017,"a_depth":5,"a":["system","b2533f7b-ea85-4680-99ed-d8e11be641b9","0e6939d6-9b93-4165-b6bd-977e4da881f3","627f5b74-3baf-45f8-a1d3-a5936839b844","group"],"a_forms":["system-folder-form","folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"d08dd81e-c84a-4571-b1b7-073467875d59","v":"b0c67585e9beeba9","cloneOf":{"id":"daf03499-ef5d-47f3-ac6a-a906157fb4ad","v":"0c46af1b1e106f20","text":"ref-card-title"},"originalCloneOf":{"id":"daf03499-ef5d-47f3-ac6a-a906157fb4ad","v":"0c46af1b1e106f20","text":"ref-card-title"},"previous":{"v":"0f5ee7e70f4bb5de"},"p":"a40633b4-c769-4457-a267-830738d4b549","f":{"id":"design-form","v":"0061789efb5c5c29","text":"Design"},"data":{"name":"ref-card-title","template":"<span class=\"_CSS-title\">\n  {{locals.titleParts[0]}}\n</span>\n<span class=\"_CSS-details\">\n  ({{locals.titleParts[1]}})\n</span>","css":"._CSS-details {\n  color: var(--ae-background-600);\n  font-size: var(--ae-font-size-3);\n}","controller":"class Controller {\n  init() {\n    this.currencyFormatter = new Intl.NumberFormat('de-de', { style: 'currency', currency: 'EUR' })\n\n    locals.titleParts = []\n    locals.titleParts = this.getTitleParts()\n\n    Aeppic.watchRevisions(document, () => locals.titleParts = this.getTitleParts())\n  }\n\n  getTitleParts() {\n    const date = data.datum ? `${Aeppic.DateTime.fromISO(data.datum).toLocaleString(Aeppic.DateTime.DATE_SHORT)}` : ''\n    const title = `${date} - ${data.name}`\n    const type = data.typ\n    const amount = data.menge !== 1 ? `${data.menge}x ` : ''\n    const sum = data.abrechenbar ? this.currencyFormatter.format(data.summe) : 'Ohne Berechnung'\n    const singularCost = this.currencyFormatter.format(data.kostenProEinheit.amount)\n    const duration = data.dauer && Aeppic.DateTimeDuration.fromObject(data.dauer).shiftTo('hours').hours\n\n    let parts = []\n\n    if (type === 'ZEIT') {\n      parts = [\n        title,\n        `${amount}${singularCost}/${duration !== 1 ? duration : ''}h = ${sum}`\n      ]\n    } else if (type === 'ENTFERNUNG') {\n      parts = [\n        title,\n        `${amount}${singularCost}/km = ${sum}`\n      ]\n    } else if (type === 'SOCKEL_PLUS_VARIABLE') {\n      parts = [\n        title,\n        `${this.currencyFormatter.format(data.fixeKosten.amount)}+\\n${amount} ${singularCost}/${duration !== 1 ? duration : ''}h \\n= ${sum}`\n      ]\n    } else if (type === 'MATERIAL') {\n      parts = [\n        title,\n        `${amount ? `${amount} ${singularCost} = ` : ''}${sum}`, \n      ]\n    } else if (type === 'PAUSCHALE') {\n      parts = [\n        title,\n        `${amount}${singularCost} = ${sum}`,\n      ]\n    } else {\n      console.error(`Unknown typ ${type}`)\n      parts = [\n        title,\n        `${amount}${singularCost}`,\n      ]\n    }\n\n    return parts\n  }\n\n}\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-10-02T14:27:18+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-06-08T12:44:08+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1623156248212,"ct":1601648838161,"a_depth":4,"a":["apps","0924db0f-7095-4b51-8966-bad1e45d68ec","a3b935e7-60bc-4996-9b18-668e4361067f","a40633b4-c769-4457-a267-830738d4b549"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"d3a23b95-2145-48d8-a524-f0d3bf6e426e","v":"026e2464c7b8bc91","cloneOf":{"id":"eb496a5a-38b9-4b29-bc13-472f18a241fc","v":"0838a2c4b1a03b37","text":"ref-card-title"},"originalCloneOf":{"id":"eb496a5a-38b9-4b29-bc13-472f18a241fc","v":"0838a2c4b1a03b37","text":"ref-card-title"},"previous":{"v":"0b6a54b87cf06a94"},"p":"02eaf357-29bd-45ab-a7ae-7184787bdca1","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"ref-card-title","template":"<div class=\"flex flex-wrap gap-1 mt-1\">\n  <ae-design v-for=\"image of data.image\" :key=\"image.id\" name=\"thumbnail\" :document=\"image\"></ae-design> \n</div>\n<div class=\"grid grid-cols-2 gap-y-1 mt-1 mb-1 flex-wrap\">\n  <template\n    v-for=\"field of locals.fields\" \n    >\n    <span class=\"rounded-l-md bg-slate-200 border-2 border-r-0 border-slate-400 p-1\" v-show=\"controller.mapToLabel(field.name)\">\n      {{controller.mapToPlaceholder(field.name)?.label}}\n    </span>\n    <span class=\"rounded-r-md bg-slate-300 border-2 border-slate-400 p-1\" v-show=\"controller.mapToLabel(field.name)\">\n        {{controller.mapToLabel(field.name)}}\n    </span>\n  </template>\n</div>\n\n","css":"._CSS {\n  display: flex;\n  flex-direction: column;\n  border: 1px solid transparent;\n  transition: all cubic-bezier(0.075, 0.82, 0.165, 1);\n}\n\n._CSS:hover {\n  cursor:pointer;\n  background-color: aqua;\n  border-color: rgb(51, 196, 228);\n}","controller":"async init() { \n  locals.form = null\n  locals.fields = []\n  locals.form = await Aeppic.getFormForDocument(document)\n  locals.fields = Object.values(locals.form?.info.fields).filter(f => f.subType === 'select' || f.subType == 'text' || f.subType === 'number')\n}\n\nmapToPlaceholder(fieldName) {\n  if (!locals.form) {\n    return\n  } \n\n  for (const placeholder of locals.form.info.placeholders) {\n    if (placeholder.field?.name === fieldName) {\n      return placeholder\n    }\n  }\n}\n\nmapToLabel(fieldName) {\n  if (!locals.form) {\n    return\n  } \n\n  const fieldInfo = locals.form.info.fields[fieldName]\n\n  const fieldValue = document.data[fieldName]\n\n  if (fieldInfo.subType === 'select') {\n    const option = fieldInfo.settings?.options?.find(o => o.value === fieldValue)\n\n    if (option) {\n      return option.display ?? option.value\n    }\n  } else if (fieldInfo.subType === 'text') {\n    return fieldValue\n  } else if (fieldInfo.subType === 'number') {\n    return fieldValue\n  } else {\n    console.log('Cannot map field', fieldName, 'is no select')\n  }\n  \n\n  return fieldValue\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-07-19T11:38:57+00:00","by":"427610a9-39dc-4014-9176-5f72aeb23263","from":"","client":"server"},"modified":{"at":"2023-07-19T11:39:41+00:00","by":"427610a9-39dc-4014-9176-5f72aeb23263","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1689766781692,"ct":1689766737962,"a_depth":4,"a":["apps","deeef973-ce03-4557-bf75-75a059001767","e7de598c-6f5a-4ab4-a33b-213ca86e489d","02eaf357-29bd-45ab-a7ae-7184787bdca1"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"daf03499-ef5d-47f3-ac6a-a906157fb4ad","v":"ca6fa244cb55527b","previous":{"v":"fcf029f46e394d5b"},"p":"8d1804b0-c5c6-4acf-a15f-1b02872e792e","f":{"id":"design-form","v":"0061789efb5c5c29","text":"Design"},"data":{"name":"ref-card-title","template":"<span class=\"_CSS-title\">\n  {{locals.titleParts[0]}}\n</span>\n<span class=\"_CSS-details\">\n  ({{locals.titleParts[1]}})\n</span>\n","css":"._CSS-details {\n  color: var(--ae-background-600);\n  font-size: var(--ae-font-size-3);\n}","controller":"class Controller {\n  init() {\n    this.currencyFormatter = new Intl.NumberFormat('de-de', { style: 'currency', currency: 'EUR' })\n\n    locals.titleParts = []\n\n    locals.titleParts = this.getTitleParts()\n  }\n\n  getTitleParts() {\n    const title = `${data.name}`\n    const type = data.typ\n    const amount = data.menge !== 1 ? `${data.menge}x ` : ''\n    const sum = data.abrechenbar ? this.currencyFormatter.format(data.summe) : 'Ohne Berechnung'\n    const singularCost = this.currencyFormatter.format(data.kostenProEinheit.amount)\n\n    const duration = data.dauer && Aeppic.DateTimeDuration.fromObject(data.dauer).shiftTo('hours').hours\n\n    let parts = []\n\n    if (type === 'ZEIT') {\n      parts = [\n        title,\n        `${amount}${singularCost}/${duration !== 1 ? duration : ''}h`\n      ]\n    } else if (type === 'ENTFERNUNG') {\n      parts = [\n        title,\n        `${amount}${singularCost}/km`\n      ]\n    } else if (type === 'SOCKEL_PLUS_VARIABLE') {\n      parts = [\n        title,\n        `${this.currencyFormatter.format(data.fixeKosten.amount)} +\\n${amount} ${singularCost}/${duration !== 1 ? duration : ''}h`\n      ]\n    } else {\n      parts = [\n        title,\n        `${amount}${singularCost}`,\n      ]\n    }\n\n    return parts\n  }\n\n}\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-10-02T12:05:59+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-06-08T11:41:23+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1623152483915,"ct":1601640359314,"a_depth":4,"a":["apps","0924db0f-7095-4b51-8966-bad1e45d68ec","a3b935e7-60bc-4996-9b18-668e4361067f","8d1804b0-c5c6-4acf-a15f-1b02872e792e"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"dc16adec-3f93-416a-8d4c-581e84642f91","v":"2dc30dc4c7dce054","cloneOf":{"id":"fbf32b20-026b-46b2-9389-86e96ffb4c46","v":"595d5f0645a2f4e6","text":"ref-card-title"},"originalCloneOf":{"id":"fbf32b20-026b-46b2-9389-86e96ffb4c46","v":"595d5f0645a2f4e6","text":"ref-card-title"},"previous":{"v":"75c9cfb9b58b3e89"},"p":"4da4181d-2bf5-47b9-a0d2-6f0a05dcc702","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"ref-card-title","template":"<div class=\"flex flex-wrap gap-1 mt-1\">\n  <ae-design v-for=\"image of data.image\" :key=\"image.id\" name=\"thumbnail\" :document=\"image\"></ae-design> \n</div>\n<div class=\"grid grid-cols-2 gap-y-1 mt-1 mb-1 flex-wrap\">\n  <template\n    v-for=\"field of locals.fields\" \n    >\n    <span class=\"rounded-l-md bg-slate-200 border-2 border-r-0 border-slate-400 p-1\" v-show=\"controller.mapToLabel(field.name)\">\n      {{controller.mapToPlaceholder(field.name)?.label}}\n    </span>\n    <span class=\"rounded-r-md bg-slate-300 border-2 border-slate-400 p-1\" v-show=\"controller.mapToLabel(field.name)\">\n        {{controller.mapToLabel(field.name)}}\n    </span>\n  </template>\n</div>\n\n","css":"._CSS {\n  display: flex;\n  flex-direction: column;\n  border: 1px solid transparent;\n  transition: all cubic-bezier(0.075, 0.82, 0.165, 1);\n}\n\n._CSS:hover {\n  cursor:pointer;\n  background-color: aqua;\n  border-color: rgb(51, 196, 228);\n}","controller":"async init() { \n  locals.form = null\n  locals.fields = []\n  locals.form = await Aeppic.getFormForDocument(document)\n  locals.fields = Object.values(locals.form?.info.fields).filter(f => f.subType === 'select' || f.subType == 'text' || f.subType === 'number')\n}\n\nmapToPlaceholder(fieldName) {\n  if (!locals.form) {\n    return\n  } \n\n  for (const placeholder of locals.form.info.placeholders) {\n    if (placeholder.field?.name === fieldName) {\n      return placeholder\n    }\n  }\n}\n\nmapToLabel(fieldName) {\n  if (!locals.form) {\n    return\n  } \n\n  const fieldInfo = locals.form.info.fields[fieldName]\n\n  const fieldValue = document.data[fieldName]\n\n  if (fieldInfo.subType === 'select') {\n    const option = fieldInfo.settings?.options?.find(o => o.value === fieldValue)\n\n    if (option) {\n      return option.display ?? option.value\n    }\n  } else if (fieldInfo.subType === 'text') {\n    return fieldValue\n  } else if (fieldInfo.subType === 'number') {\n    return fieldValue\n  } else {\n    console.log('Cannot map field', fieldName, 'is no select')\n  }\n  \n\n  return fieldValue\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-07-19T11:39:52+00:00","by":"427610a9-39dc-4014-9176-5f72aeb23263","from":"","client":"server"},"modified":{"at":"2023-07-19T11:40:03+00:00","by":"427610a9-39dc-4014-9176-5f72aeb23263","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1689766803815,"ct":1689766792476,"a_depth":4,"a":["apps","deeef973-ce03-4557-bf75-75a059001767","e7de598c-6f5a-4ab4-a33b-213ca86e489d","4da4181d-2bf5-47b9-a0d2-6f0a05dcc702"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"dcdf222e-a92e-420a-bff0-2f155e4c217e","v":"53964625d67445ab","previous":{"v":"4d3d28c7143c602c"},"p":"c79a8171-022a-4c55-854c-a8119a7911ed","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"ref-card-title","template":"<div class=\"_CSS-line\">\n  <span style=\"margin-right: var(--ae-space-1);\">\n    {{ data.name }} \n  </span>\n\n  <span v-if=\"data.schluesselNummer\">\n  ({{ data.schluesselNummer }})\n  </span>\n\n  <div style=\"flex: 1;\"></div>\n\n  <div v-if=\"data.status === 'AUSGABE'\" title=\"Schüssel ist ausgegeben\" style=\"color:var(--ae-accent-red);\">\n    <ae-icon class=\"fa fa-door-open\"></ae-icon>\n  </div>\n  <div v-if=\"data.status === 'RUECKGABE'\" title=\"Schüssel ist zurückgegeben\">\n    <ae-icon class=\"fa fa-door-closed\"></ae-icon>\n  </div>\n</div>","css":"._CSS-line {\n  min-width: 0;\n  display: flex;\n}","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-11-11T09:41:47+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-11-11T09:55:16+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1636624516830,"ct":1636623707512,"a_depth":4,"a":["apps","a590ce5b-28fc-4f85-9049-d006e1b8f880","169e87e0-0379-48e1-8c94-8fadac5969bb","c79a8171-022a-4c55-854c-a8119a7911ed"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"de77df6a-a8b1-450e-8d0f-9145da2db8e3","v":"1165c1fd36c3a7bd","previous":{"v":"271e9c01208f694e"},"p":"c2d9407d-9dd6-42ff-acdc-ec2e296bea99","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"ref-card-title","template":"<div class=\"flex gap-2\">\n  <div v-if=\"data.datum\" class=\"min-w-[100px]\">\n  {{ Aeppic.DateTime.fromISO(data.datum).toLocaleString(Aeppic.DateTime.DATE_SHORT) }}\n  </div>\n\n\n  <div class=\"flex gap-1 flex-wrap\">\n    <ae-design v-for=\"datei of data.datei\" \n              :document-id=\"datei.id\"\n              name=\"icon\"\n    ></ae-design>\n  </div>\n\n  <div class=\"flex-1\"></div>\n\n  <ae-design name=\"icon\" :document=\"document\"></ae-design>\n\n  <div class=\"min-w-[100px] flex justify-end\">\n  {{ new Intl.NumberFormat('de-DE', { style: 'currency', currency: 'EUR' }).format(data.summe) }} \n  </div>\n</div>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-12-21T11:21:20+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-12-21T11:27:07+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1671622027768,"ct":1671621680987,"a_depth":4,"a":["apps","85d3c028-a61c-4be8-93d0-4366bc45752f","25fda732-5296-4fab-8d4e-92c3e32ca2c0","c2d9407d-9dd6-42ff-acdc-ec2e296bea99"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"e913b1de-ab4a-4c3f-89d5-9d848e1f8871","v":"initial","previous":{"v":""},"p":"20b72958-7c4e-4292-b55c-7234d6f18638","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"ref-card-title","applies":"","template":"{{data.name}} \n<template v-if=\"data.anmerkung\">\n  ({{data.anmerkung}})\n</template>","css":"","controller":"","packages":[]},"locks":[],"created":{"at":"2018-05-24T16:28:36+02:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","backedBy":null,"from":"","client":"server"},"modified":{"at":"2018-05-24T16:28:36+02:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","backedBy":null,"from":"","client":"server"},"t":1527172116001,"ct":1527172116000,"a_depth":5,"a":["apps","83c76376-420e-4231-9275-d0fe2ab47c32","ba440134-1703-495e-b869-0f0c8d447f75","91352b74-c5e5-4c05-aa68-f13b0b723f35","20b72958-7c4e-4292-b55c-7234d6f18638"],"a_forms":["folder","application-form","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"eb496a5a-38b9-4b29-bc13-472f18a241fc","v":"0838a2c4b1a03b37","cloneOf":{"id":"7988b7f5-f5e8-4dd1-aa85-2380e3947353","v":"feaa16f9321e324b","text":"ref-card-title"},"originalCloneOf":{"id":"7988b7f5-f5e8-4dd1-aa85-2380e3947353","v":"feaa16f9321e324b","text":"ref-card-title"},"previous":{"v":"0570febfc7de386a"},"p":"a678e4d3-a2c1-4eeb-a106-6d47479692c8","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"ref-card-title","template":"<div class=\"flex flex-wrap gap-1 mt-1\">\n  <ae-design v-for=\"image of data.image\" :key=\"image.id\" name=\"thumbnail\" :document=\"image\"></ae-design> \n</div>\n<div class=\"grid grid-cols-2 gap-y-1 mt-1 mb-1 flex-wrap\">\n  <template\n    v-for=\"field of locals.fields\" \n    >\n    <span class=\"rounded-l-md bg-slate-200 border-2 border-r-0 border-slate-400 p-1\" v-show=\"controller.mapToLabel(field.name)\">\n      {{controller.mapToPlaceholder(field.name)?.label}}\n    </span>\n    <span class=\"rounded-r-md bg-slate-300 border-2 border-slate-400 p-1\" v-show=\"controller.mapToLabel(field.name)\">\n        {{controller.mapToLabel(field.name)}}\n    </span>\n  </template>\n</div>\n\n","css":"._CSS {\n  display: flex;\n  flex-direction: column;\n  border: 1px solid transparent;\n  transition: all cubic-bezier(0.075, 0.82, 0.165, 1);\n}\n\n._CSS:hover {\n  cursor:pointer;\n  background-color: aqua;\n  border-color: rgb(51, 196, 228);\n}","controller":"async init() { \n  locals.form = null\n  locals.fields = []\n  locals.form = await Aeppic.getFormForDocument(document)\n  locals.fields = Object.values(locals.form?.info.fields).filter(f => f.subType === 'select' || f.subType == 'text' || f.subType === 'number')\n}\n\nmapToPlaceholder(fieldName) {\n  if (!locals.form) {\n    return\n  } \n\n  for (const placeholder of locals.form.info.placeholders) {\n    if (placeholder.field?.name === fieldName) {\n      return placeholder\n    }\n  }\n}\n\nmapToLabel(fieldName) {\n  if (!locals.form) {\n    return\n  } \n\n  const fieldInfo = locals.form.info.fields[fieldName]\n\n  const fieldValue = document.data[fieldName]\n\n  if (fieldInfo.subType === 'select') {\n    const option = fieldInfo.settings?.options?.find(o => o.value === fieldValue)\n\n    if (option) {\n      return option.display ?? option.value\n    }\n  } else if (fieldInfo.subType === 'text') {\n    return fieldValue\n  } else if (fieldInfo.subType === 'number') {\n    return fieldValue\n  } else {\n    console.log('Cannot map field', fieldName, 'is no select')\n  }\n  \n\n  return fieldValue\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-07-17T09:02:54+00:00","by":"427610a9-39dc-4014-9176-5f72aeb23263","from":"","client":"server"},"modified":{"at":"2023-07-17T09:03:07+00:00","by":"427610a9-39dc-4014-9176-5f72aeb23263","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1689584587168,"ct":1689584574400,"a_depth":4,"a":["apps","deeef973-ce03-4557-bf75-75a059001767","e7de598c-6f5a-4ab4-a33b-213ca86e489d","a678e4d3-a2c1-4eeb-a106-6d47479692c8"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["system","system-forms","stamp-type"],"a_depth":3,"a_forms":["system-folder-form","repository-folder-form","form"],"created":{"at":"2023-03-01T15:56:55+00:00","by":"427610a9-39dc-4014-9176-5f72aeb23263","client":"server","from":""},"ct":1677686215061,"data":{"aliases":[],"controller":"","css":"._CSS {\n  display: flex;\n  flex-direction: row;\n  align-items: center;\n  grid-gap: 4px;\n}","description":"","name":"ref-card-title","packages":[],"template":"<ae-design v-if=\"document.data.color\" name=\"colored-circle\" :document=\"document\"></ae-design>\n<ae-design name=\"title\" :document=\"document\"></ae-design>"},"f":{"id":"design-form","text":"Design","v":"c2d9ae57c7a46896"},"id":"f3493af6-2303-4d87-9cf2-8774f8620b23","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2024-11-06T14:47:11+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"stamp-type","previous":{"v":"02c792873181eb80"},"stamps":[],"t":1730904431671,"v":"d6b1d6316fd25956"},{"id":"f5f41e24-0329-4fb6-a7bd-ebd957ab8971","v":"070dd9db7a1e253b","previous":{"v":"6980d3862bcb983f"},"p":"76235811-3e08-43d1-913b-bee6b62deab6","f":{"id":"design-form","v":"9bfe8e0cd909c1f0","text":"Design"},"data":{"name":"ref-card-title","template":"<ae-design name=\"title\" :title=\"document.data.comment\" :document=\"document\"></ae-design>\r\n<div class=\"_CSS-from-to\">\r\n  <span title=\"Can only be used to start a workflow\" v-if=\"!data.fromState.length === 0 && !data.condition || data.condition === 'ENTRY'\">\r\n    <ae-icon style=\"margin-left:8px\" class=\"fa fa-play\"></ae-icon>\r\n  </span>\r\n  <template  v-if=\"data.condition !== 'ENTRY'\">\r\n    <template v-for=\"(s, index) of data.fromState\">\r\n      <span v-if=\"index>0\">/</span>\r\n      <ae-design name=\"colored-circle\" :document=\"s\" ></ae-design><ae-design name=\"title\" :document=\"s\" ></ae-design>\r\n    </template>\r\n    <span v-if=\"data.fromState.length === 0\" style=\"color:var(--ae-background-800)\">∗</span>\r\n    <ae-icon v-if=\"data.toState.id\" class=\"fa fa-arrow-right\"></ae-icon>\r\n  </template>\r\n  <ae-design name=\"colored-circle\" :document=\"data.toState\"></ae-design> <ae-design name=\"title\" v-if=\"data.toState.id\" :document=\"data.toState\" ></ae-design>\r\n  <span v-else><ae-icon class=\"fa fa-stop\"></ae-icon></span>\r\n  <span style=\"flex:1\"></span>\r\n  <span title=\"Can be used only when workflow already active\" v-show=\"(data.fromState.length === 0 && data.condition === 'STARTED_ONLY' )|| data.fromState.length\" >\r\n  <ae-icon  @mouseover.prevent.stop=\"\" style=\"margin-left:8px\" v-if=\"data.fromState.length === 0\" class=\"fa fa-code-commit\"></ae-icon>\r\n  </span>\r\n  <span style=\"font-size:12px;margin-left:8px\" v-show=\"document.data.comment\" :title=\"document.data.comment\"><i>{{document.data.comment}}</i></span> \r\n  <ae-icon v-show=\"data.filters.length\" class=\"fa fa-filter fa-xs\" style=\"opacity:0.5\" title=\"Has Filters set\"></ae-icon>\r\n  <span  :title=\"controller.actionsTitle()\" v-if=\"data.actionsBefore.length || data.actionsAfter?.length || data.command.id\" style=\"margin-left:8px\">\r\n    <ae-icon class=\"fal fa-file-code\" ></ae-icon>\r\n  </span>\r\n  <div v-show=\"data.actionsBefore.length\" style=\"opacity:0.8\" title=\"Actions BEFORE stamping\">\r\n    <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\" style=\"width:16px; height:16px;\">\r\n      <!--First (leftmost) filled column-->\r\n      <rect x=\"100\" y=\"150\" width=\"48\" height=\"212\" fill=\"currentColor\" stroke=\"currentColor\" stroke-width=\"32\"/>\r\n      <!--Second (middle) outlined column-->\r\n      <rect x=\"232\" y=\"128\" width=\"48\" height=\"256\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"32\"/>\r\n      <!--Third (rightmost) outlined column-->\r\n      <rect x=\"364\" y=\"150\" width=\"48\" height=\"212\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"32\" stroke-opacity=\"100%\"/>\r\n    </svg> \r\n  </div>\r\n  <div v-show=\"data.actionsAfter?.length || data.command.id\" style=\"opacity:0.8\" title=\"Actions or Command AFTER stamping\">\r\n    <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\" style=\"width:16px; height:16px;\">\r\n      <!--First (leftmost) filled column-->\r\n      <rect x=\"100\" y=\"150\" width=\"48\" height=\"212\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"32\" stroke-opacity=\"100%\"/>\r\n      <!--Second (middle) outlined column-->\r\n      <rect x=\"232\" y=\"128\" width=\"48\" height=\"256\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"32\"/>\r\n     <!--Third (rightmost) outlined column-->\r\n      <rect x=\"364\" y=\"150\" width=\"48\" height=\"212\" fill=\"currentColor\" stroke=\"currentColor\" stroke-width=\"32\" />\r\n    </svg>\r\n  </div>\r\n</div>\r\n","css":"._CSS {\r\n  display:grid;\r\n  grid-template-columns: 1fr minmax(40px,1fr);\r\n  align-items:center;\r\n  width: 100%;\r\n}\r\n\r\n._CSS-from-to {\r\n  margin-left: 8px;\r\n  display: flex;\r\n  align-items: center;\r\n  padding: 2px;\r\n  border: 1px solid var(--ae-background-300);\r\n  border-radius: 2px;\r\n  background: var(--ae-background-100);\r\n}\r\n\r\n._CSS-from-to > * {\r\n  margin: 0 3px;\r\n}","controller":"class Controller {\r\n  actionsTitle() {\r\n    return `Actions: Before #${data.actionsBefore.length}, After #${data.actionsAfter?.length} Command: ${data.command.id?'Yes':'No'}`\r\n  }\r\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-06-23T07:07:59+00:00","by":"8e6c22aa-8c69-4ff8-919a-7032841cf636","from":"","client":"server"},"modified":{"at":"2023-04-26T13:56:19+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1682517379309,"ct":1593593207140,"a_depth":4,"a":["apps","47dd3677-407a-42ac-8542-20d8ecf10e4f","d646d88a-6eea-424b-81a1-2df3c44993c4","76235811-3e08-43d1-913b-bee6b62deab6"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"f8cd4698-2279-4b77-b3ac-eb7119070e9f","v":"initial","p":"374d5754-a880-4ad6-8ba7-c5624204f158","f":{"id":"design-form","v":"24435d748c76f819","text":"Design"},"data":{"name":"ref-card-title","template":"<div class=\"_CSS-line\">\n  <div class=\"_CSS-line__subline\">\n    <span>\n      {{ data.name }}\n    </span>\n    <span v-if=\"data.datum\" style=\"font-size: var(--ae-font-size-3)\">\n      ({{ Aeppic.DateTime.fromISO(data.datum).toLocaleString(Aeppic.DateTime.DATE_SHORT) }})\n    </span> \n  </div>\n\n  <div class=\"_CSS-line__subline\">\n    <span v-if=\"data.datei && data.datei.dataUrl\" title=\"Datei hochgeladen\">\n      <ae-design name=\"personalverwaltung:files-as-buttons-with-preview\" :document=\"document\"></ae-design>\n      <!-- <ae-icon class=\"fa fa-file\"></ae-icon> -->\n    </span>\n    <span v-if=\"data.text && data.text.length\" title=\"Text hinterlegt\" >\n    <ae-icon class=\"fa fa-text\"></ae-icon>\n    </span>\n  </div>\n</div>\n\n","css":"._CSS {\n  flex: 1;\n  min-width: 0;\n}\n\n._CSS-line {\n  overflow: hidden;\n\n  display: flex;\n  justify-content: space-between;\n}\n\n._CSS-line__subline {\n\n  display: flex;\n  align-items: center;\n  min-width: 0;\n}\n\n._CSS-line__subline > * {\n  overflow: hidden;\n  white-space: nowrap;\n  text-overflow: ellipsis;\n}","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-05-08T08:51:30+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2020-05-08T08:51:30+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1588927890665,"ct":1588927890665,"a_depth":4,"a":["apps","a590ce5b-28fc-4f85-9049-d006e1b8f880","169e87e0-0379-48e1-8c94-8fadac5969bb","374d5754-a880-4ad6-8ba7-c5624204f158"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"f9eda5ca-205e-4417-a89b-83d5a9278b0b","v":"fa492397b2199f08","cloneOf":{"id":"de77df6a-a8b1-450e-8d0f-9145da2db8e3","v":"1165c1fd36c3a7bd","text":"ref-card-title"},"originalCloneOf":{"id":"de77df6a-a8b1-450e-8d0f-9145da2db8e3","v":"1165c1fd36c3a7bd","text":"ref-card-title"},"previous":{"v":"633d263d68c0cf06"},"p":"a1e6ab82-7c13-4a74-89e4-1a23e443e350","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"ref-card-title","template":"<div class=\"flex gap-2\">\n  <div v-if=\"data.name\" class=\"min-w-[100px]\">\n    {{ data.name }}\n  </div>\n  <ae-design v-else class=\"min-w-[100px]\" name=\"category-title\" :document=\"document\">\n  </ae-design>\n<!-- \n  <div class=\"flex gap-1 flex-wrap\">\n    <ae-design v-for=\"datei of data.datei\" \n              :document-id=\"datei.id\"\n              name=\"icon\"\n    ></ae-design>\n  </div> -->\n\n  <div class=\"flex-1\"></div>\n\n  <ae-design name=\"icon\" :document=\"document\"></ae-design>\n\n  <div class=\"min-w-[100px] flex justify-end\">\n  {{ new Intl.NumberFormat('de-DE', { style: 'currency', currency: 'EUR' }).format(data.summe) }} \n  </div>\n</div>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-12-21T12:14:37+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-12-21T12:20:19+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1671625219316,"ct":1671624877582,"a_depth":4,"a":["apps","85d3c028-a61c-4be8-93d0-4366bc45752f","25fda732-5296-4fab-8d4e-92c3e32ca2c0","a1e6ab82-7c13-4a74-89e4-1a23e443e350"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"fbf32b20-026b-46b2-9389-86e96ffb4c46","v":"595d5f0645a2f4e6","cloneOf":{"id":"eb496a5a-38b9-4b29-bc13-472f18a241fc","v":"0838a2c4b1a03b37","text":"ref-card-title"},"originalCloneOf":{"id":"eb496a5a-38b9-4b29-bc13-472f18a241fc","v":"0838a2c4b1a03b37","text":"ref-card-title"},"previous":{"v":"3556ca2052949d72"},"p":"b0e3875f-43ba-475d-9c92-98ed8da7b2ef","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"ref-card-title","template":"<div class=\"flex flex-wrap gap-1 mt-1\">\n  <ae-design v-for=\"image of data.image\" :key=\"image.id\" name=\"thumbnail\" :document=\"image\"></ae-design> \n</div>\n<div class=\"grid grid-cols-2 gap-y-1 mt-1 mb-1 flex-wrap\">\n  <template\n    v-for=\"field of locals.fields\" \n    >\n    <span class=\"rounded-l-md bg-slate-200 border-2 border-r-0 border-slate-400 p-1\" v-show=\"controller.mapToLabel(field.name)\">\n      {{controller.mapToPlaceholder(field.name)?.label}}\n    </span>\n    <span class=\"rounded-r-md bg-slate-300 border-2 border-slate-400 p-1\" v-show=\"controller.mapToLabel(field.name)\">\n        {{controller.mapToLabel(field.name)}}\n    </span>\n  </template>\n</div>\n\n","css":"._CSS {\n  display: flex;\n  flex-direction: column;\n  border: 1px solid transparent;\n  transition: all cubic-bezier(0.075, 0.82, 0.165, 1);\n}\n\n._CSS:hover {\n  cursor:pointer;\n  background-color: aqua;\n  border-color: rgb(51, 196, 228);\n}","controller":"async init() { \n  locals.form = null\n  locals.fields = []\n  locals.form = await Aeppic.getFormForDocument(document)\n  locals.fields = Object.values(locals.form?.info.fields).filter(f => f.subType === 'select' || f.subType == 'text' || f.subType === 'number')\n}\n\nmapToPlaceholder(fieldName) {\n  if (!locals.form) {\n    return\n  } \n\n  for (const placeholder of locals.form.info.placeholders) {\n    if (placeholder.field?.name === fieldName) {\n      return placeholder\n    }\n  }\n}\n\nmapToLabel(fieldName) {\n  if (!locals.form) {\n    return\n  } \n\n  const fieldInfo = locals.form.info.fields[fieldName]\n\n  const fieldValue = document.data[fieldName]\n\n  if (fieldInfo.subType === 'select') {\n    const option = fieldInfo.settings?.options?.find(o => o.value === fieldValue)\n\n    if (option) {\n      return option.display ?? option.value\n    }\n  } else if (fieldInfo.subType === 'text') {\n    return fieldValue\n  } else if (fieldInfo.subType === 'number') {\n    return fieldValue\n  } else {\n    console.log('Cannot map field', fieldName, 'is no select')\n  }\n  \n\n  return fieldValue\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-07-19T11:38:47+00:00","by":"427610a9-39dc-4014-9176-5f72aeb23263","from":"","client":"server"},"modified":{"at":"2023-07-19T11:39:47+00:00","by":"427610a9-39dc-4014-9176-5f72aeb23263","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1689766787014,"ct":1689766727200,"a_depth":4,"a":["apps","deeef973-ce03-4557-bf75-75a059001767","e7de598c-6f5a-4ab4-a33b-213ca86e489d","b0e3875f-43ba-475d-9c92-98ed8da7b2ef"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"1c4a9b5e-b34e-4641-bae2-2d41dd3aeb7b","v":"d7a53042df455717","previous":{"v":"06c105472e119f97"},"p":"544d11b1-a156-4568-aeb3-2a60b2b57807","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"ref-card.old","applies":"","template":"<div  class=\"_CSS-card\"\n      :class=\"{ '_CSS-card--finished': data.erledigt, '_CSS-card--overdue': controller.isOverdue, '_CSS-card--selected': params.isSelected, '_CSS-card--with-border': params.noBorder !== true }\"\n      @click.stop=\"$emit('selected', document)\"\n>\n\t<div class=\"_CSS-card__primary\">\n    <button class=\"ae-button _CSS-checkbox-done\" :disabled=\"params.readonly\" @click.stop=\"data.erledigt = !data.erledigt;save()\">\n      <ae-icon v-show=\"data.erledigt\" class=\"far fa-check\"></ae-icon>\n      <ae-icon v-show=\"!data.erledigt\" class=\"far fa-square\"></ae-icon>\n    </button>\n    <div class=\"_CSS-card-intro\">\n      <ae-design class=\"_CSS-card-title\" name=\"title\" :document=\"document\"></ae-design>\n      <!-- {\"ops\":[{\"insert\":\"\\n\"}]} has length of 25 -->\n      <div \n           v-if=\"data.beschreibung.length > 25\"\n           ref=\"descriptionIcon\"\n           @mouseleave=\"$refs.popup.close()\"\n           @mouseover=\"$refs.popup.show({ target: $refs.descriptionIcon })\"\n           class=\"_CSS-card-intro__description\"\n           xtitle=\"Beschreibung vorhanden\"\n           >\n        <ae-icon class=\"fal fa-file-alt\"></ae-icon>\n      </div>\n\t\t</div>\n \n    <div class=\"_CSS-card__flex-container\">\n      <div class=\"_CSS-commenter__indicator\" v-if=\"locals.commenters.length > 0\" >\n        <div class=\"_CSS-commenter__area\">\n          <ae-design class=\"_CSS-commenter\" v-for=\"commenter of locals.commenters\" v-if=\"commenter\" :key=\"commenter.id\" :document-id=\"commenter.id\" name=\"profile-avatar\" :param-readonly=\"true\"></ae-design>\n          <span style=\"margin-left:8px;opacity:0.7;font-size:12px;font-weight:bold\" v-if=\"locals.commentersOverflow.length > 0\">+{{locals.commentersOverflow.length}}</span>\n          <div class=\"_CSS-commenter__icon\" :data-count=\"locals.comments.length\">\n            <ae-icon class=\"fa fa-comment\"></ae-icon>\n          </div> \n        </div> \n      </div>\n\n      <div class=\"_CSS-card-assignees\" v-if=\"data.verantwortlich && data.verantwortlich.length\">\n        <ae-design name=\"avatar--tiny\" :document-id=\"data.verantwortlich[0].id\"></ae-design>\n        <ae-design v-if=\"data.verantwortlich.length === 2\" name=\"avatar--tiny\" :document-id=\"data.verantwortlich[1].id\"></ae-design>\n        <ae-design v-if=\"data.verantwortlich.length > 2\" name=\"avatar--tiny\" :document-id=\"data.verantwortlich[1].id\" :param-overwrite-display-with=\"'+' + (data.verantwortlich.length - 1)\" :title=\"locals.tooltipWeitereVerantwortliche\"></ae-design>\n      </div>\n    </div>\n\n    <div class=\"_CSS-progress-container\">\n      <div v-if=\"controller.progress != null && controller.progress > 0\" :title=\"controller.progress.toFixed() + '%' \" class=\"ae-progress \" :style=\"{ 'padding-left': (controller.progress).toString() + '%' }\" ></div>\n    </div>\n\t</div>\n  <!-- <div class=\"_CSS-card__secondary\">\n    {{data.beschreibung}}\n  </div> -->\n\t<div class=\"_CSS-card__tertiary \">\n    <div class=\"_CSS-statistics\">\n      <div v-if=\"locals.duration\">\n        {{ locals.readableDuration }}\n        <ae-icon class=\"fa fa-hourglass-end\"></ae-icon>\n      </div>\n      <span v-if=\"!data.erledigt && data.bisStart\" class=\"_CSS_to__date\" title=\"Zu erledigen bis\" :title=\"Aeppic.DateTime.fromISO(data.bisStart).toLocaleString()\">\n          <div class=\"_CSS-to__title\">Tage übrig</div>\n          <div class=\"_CSS-to__value\" :class=\"{ '_CSS-to__value--overdue': controller.isOverdue, '_CSS-to__value--warning': controller.daysLeft <= 5 && controller.daysLeft >= 0 }\">{{ controller.daysLeft === 0 ? 'Heute' : controller.daysLeft }}</div>\n        </span>\n      <span title=\"Anhänge\" v-if=\"data.anhaenge.length\">\n        <ae-icon class=\"far fa-paperclip\"></ae-icon> {{ data.anhaenge.length }}\n      </span>\n    </div>\n\n\n\n\t\t<!-- <div class=\"_CSS-card-categories\">\n\t\t\t<ae-design class=\"_CSS-card-category\" name=\"icon\" v-for=\"category in data.kategorie\" :document-id=\"category.id\" :key=\"category.id\"></ae-design>\n\t\t</div> -->\n\t</div>\n</div>\n\n\n\n<ae-popup ref=\"popup\" base-attachment=\"top left\" popup-attachment=\"bottom left\" :close-delay=\"200\" target-offset=\"5 0\">\n  <div class=\"_CSS-popup\" slot=\"popup\" @mouseenter=\"controller.mouseEnter()\" @mouseleave=\"controller.mouseLeave()\">\n    <ae-control :readonly=\"true\" name=\"editor-light\" :document=\"document\" field-name=\"beschreibung\"></ae-control>\n  </div>\n</ae-popup> ","css":"._CSS {\n  --padding: 0.25rem 1rem 0.2rem 0.5rem;\n  display: flex;\n  flex-flow: column;\n}\n\n._CSS-card {\n  display: flex;\n\n  height: 44px;\n\n  background-color: var(--ae-ui-background);\n  border-radius: var(--ae-border-radius);\n\n  border-left-style: solid;\n  border-left-width: 3px;\n  border-left-color: var(--ae-ui-background);\n\n  flex: 1;\n  margin:0;\n  flex-flow: row;\n}\n\n._CSS-card--with-border {\n  border: var(--ae-border-width) solid var(--ae-border-color);\n}\n\n._CSS-card--finished ._CSS-card__primary {\n  text-decoration: line-through;\n  opacity: 0.6;\n}\n\n._CSS-card._CSS-card--overdue {\n  border-left-color: hsl(1, 85%, 84%);\n}\n\n._CSS-card__flex-container {\n  display: flex;\n}\n\n._CSS-card__flex-container > * ~ * {\n  margin-left: 2ch;\n}\n\n._CSS-card__primary {\n  position: relative;\n\n  display: flex;\n\n  flex: 1;\n  width: 100%;\n  padding: 0 var(--padding);\n  overflow: hidden;\n}\n\n/* ._CSS-card__primary:after {\n    position: absolute;\n    bottom: 0;\n    left: 0;\n    width: 100%;\n    height: 60%;\n    content: \"\";\n    background-image: linear-gradient(180deg,hsla(0,0%,100%,.1) 0,#fff);\n    pointer-events: none;\n} */\n\n\n._CSS-card-intro {\n  flex: 1;\n  display:flex;\n  flex-direction:row;\n  align-items: center;\n\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n}\n\n._CSS-card-intro > * {\n  margin: 0 1ch;\n}\n\n._CSS-card-title {\n  white-space: normal;\n}\n\n._CSS-card__secondary {\n  flex: 1;\n  padding: var(--padding);\n  font-size: 0.8em;\n  overflow: auto;\n}\n\n._CSS-card__tertiary {\n  position: relative;\n  display: flex;\n  font-size: 0.9em;\n  align-items: center;\n  justify-content: space-between;\n\n  padding: var(--padding);\n\n  color: var(--ae-foreground-l2);\n}\n\n._CSS-card-intro__description {\n  display: flex;\n  font-size: 0.9em;\n  align-items: center;\n  justify-content: space-between;\n}\n\n\n._CSS-card-assignees {\n  display: flex;\n  flex-flow: row;\n}\n\n._CSS-card-assignees > * ~ * {\n  margin-left: 1px;\n}\n\n._CSS-statistics {\n  display: flex;\n}\n\n._CSS-statistics > * {\n  margin-right: 2ch;\n}\n\n._CSS .ae-progress, ._CSS .ae-progress:before {\n  height: 2px;\n}\n\n._CSS-progress-container {\n  position: absolute;\n  bottom: 0;\n  left: 0;\n  right: 0;\n}\n\n/* \n * Comments\n */\n\n._CSS-commenter__indicator {\n  display:flex;\n  justify-content:flex-end;\n}\n\n._CSS-commenter__area {\n  position:relative;\n  /* background:rgba(255,255,255,0.8); */\n  border-radius:16px;\n  /* border: 1px solid rgba(0,0,0,0.2); */\n  /* box-shadow: 0px 0px 5px rgba(0,0,0,0.1); */\n  display:flex;\n  align-items:center;\n  white-space:nowrap;\n  margin:0;\n  padding:0;\n  overflow:hidden;\n  /* background: gainsboro; */\n}\n\n._CSS-commenter__area > * {\n  /* padding: 0 1px; */\n}\n\n._CSS-commenter__icon {\n  opacity: 0.4;\n  height:100%;\n  width:40px;\n  display:flex;\n  align-items:center;\n  justify-content:center;\n}\n\n._CSS-commenter__icon::after {\n  content: attr(data-count);\n  padding-left: 4px;\n  font-weight: bold;\n}\n\n\n._CSS-popup {\n  position: relative;\n  background: var(--ae-background);\n  padding: 10px;\n  box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.16), 0 0 1px 0 rgba(0, 0, 0, 0.16);\n\n  max-width: 500px;\n  max-height: 200px;\n  overflow: hidden;\n}\n\n\n._CSS-popup:after {\n    position: absolute;\n    bottom: 0;\n    left: 0;\n    width: 100%;\n    height: 60%;\n    content: \"\";\n    background-image: linear-gradient(180deg,hsla(0,0%,100%,.1) 0,white);\n    pointer-events: none;\n}\n\n._CSS-checkbox-done:hover {\n  opacity: 0.6;\n  cursor: pointer;\n}\n\n\n._CSS_to__date {\n  font-size: 0.9em;\n}\n\n._CSS-to__value {\n  color: var(--ae-foreground-l2);\n}\n\n._CSS-to__value--overdue {\n  color: #FF7A6D;\n  font-weight: 500;\n}\n\n._CSS-to__value--warning {\n  color: orange;\n  font-weight: 500;\n}","controller":"class Controller {\n  async init() {\n\n    locals.attachments = []\n    locals.commenters = []\n    locals.commentersOverflow = []\n\n    locals.readableDuration = ''\n    locals.duration = 0\n    \n    locals.tooltipWeitereVerantwortliche = ''\n    locals.tooltipWeitereVerantwortliche = await this.updateWeitereVerantwortliche()\n\n    await startEditing()\n\n    this.subscribeCommenters() \n\n    Aeppic.subscribeQuery('dd148098-bd15-4baa-a4ce-df14e495c629', document.id, (documents) => {\n      const { readable, millis } = this.totalDuration(documents)\n      locals.readableDuration = readable\n      locals.duration = millis\n    })\n  }\n\n  get isOverdue() {\n    if (params.hideOverdue) {\n      return null\n    }\n\n    if (!data.erledigt && data.bisStart) {\n      return this.daysLeft <= 0\n    }\n \n    return false\n  }\n\n  get progress() {\n    if (data.erledigt) {\n      return null\n    }\n\n    let progress = 0\n\n    if (data.fortschritt) {\n      progress = Number(data.fortschritt)\n    } \n    return progress\n  }\n\n  get daysLeft() {\n    return -Aeppic.DateTime.local().diff(Aeppic.DateTime.fromISO(data.bisStart)).toFormat('d')\n  }\n  \n  async updateWeitereVerantwortliche() {\n    if (!data || !data.verantwortlich || data.verantwortlich.length <= 1) {\n      return ''\n    }\n\n    const others = data.verantwortlich.slice(1)\n    let title = '' \n     \n    for (const other of others) {\n      const va = await Aeppic.get(other)\n\n      if (title.length > 0) {\n        title += '\\n'\n      }\n\n      if (va && va.data.name) {\n        title += `${va.data.name}`\n      } else {\n        title += `Unbenannt`\n      }\n    }\n \n    return title\n  }\n \n  subscribeCommenters() {\n    Aeppic.subscribe(`p:${document.id} f.id:cf155969-ede1-43a4-9b10-3a697b19db91`, async (documents)=>{\n      locals.comments = documents\n      // locals.comments.sort((a,b) => this.sortComment(a,b))\n\n      const all = await Aeppic.getAll(locals.comments.map(c => c.modified.by))  \n      const allSortedBackwards = all.reverse()\n      const unique = allSortedBackwards.reduce((x, y) => x.findIndex(e=>e != null && y != null && e.id==y.id)<0 ? [...x, y]: x, [])\n \n      locals.commenters = unique\n      // locals.commenters.push(...all, ...all)\n      locals.commentersOverflow = []\n\n      const LIMIT = 5\n      \n      if (locals.commenters.length > LIMIT) {\n        locals.commentersOverflow = locals.commenters.splice(LIMIT, locals.commenters.length - LIMIT)\n      }\n    })\n  }\n\n  totalDuration(trackings) {\n    const duration = trackings.reduce((prev, cur) => {\n      if (prev) {\n        return Aeppic.DateTimeDuration.fromObject(cur.data.dauer).plus(prev)\n      }\n\n      return Aeppic.DateTimeDuration.fromObject(cur.data.dauer)\n    }, null)\n\n    if (duration) {\n      return { readable: duration.toFormat('hh:mm'), millis: duration.valueOf() }\n    }\n\n    return {}\n  }\n  \n  mouseEnter() {\n    $refs.popup.cancelClose()\n  }\n\n  mouseLeave() {\n    $refs.popup.close()\n  }\n}","packages":[]},"locks":[],"created":{"at":"2020-05-08T08:51:33+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2021-01-14T15:57:06+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1610639826852,"ct":1588927893863,"a_depth":4,"a":["apps","599db2de-4e07-4722-98bd-7f42d498b352","79718664-ed22-4b52-9c10-037881df3578","544d11b1-a156-4568-aeb3-2a60b2b57807"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"1da9155b-7532-48c4-8c69-7f98a2db2497","v":"66858b3aa1dd72aa","cloneOf":{"id":"aa62b366-d8b6-4768-baaf-35d585876c93","v":"a7408d647bcf0ce8","text":"ref-card"},"originalCloneOf":{"id":"aa62b366-d8b6-4768-baaf-35d585876c93","v":"a7408d647bcf0ce8","text":"ref-card"},"previous":{"v":"e5c009d85b7c1d88"},"p":"0deb4864-cbb6-420c-99ee-337c7444ab24","f":{"id":"design-form","v":"24435d748c76f819","text":"Design"},"data":{"name":"ref-card.WIP","template":"<div class=\"_CSS-card xae-navigatable\" :class=\"{ '_CSS-card--finished': data.erledigt, '_CSS-card--inactive': data.inaktiv }\" @click.stop=\"$emit('selected', document)\">\n  <button class=\"ae-button\" :disabled=\"params.readonly || data.inaktiv\" @click.stop=\"data.erledigt = !data.erledigt;save()\">\n    <ae-icon v-if=\"data.inaktiv\" class=\"far fa-trash\"></ae-icon>\n    <ae-icon v-else-if=\"data.erledigt\" class=\"far fa-check-square\"></ae-icon>\n    <ae-icon v-else class=\"far fa-square\"></ae-icon>\n  </button>\n  \n  <ae-design class=\"_CSS-card-title\" name=\"title-as-link\" :document=\"document\" @selected=\"$emit('selected', $event)\"></ae-design>\n \n  <div>\n    <ae-layout layout-id=\"8c425dba-2523-40f0-947f-f9ccb50718d7\"\n            :params=\"{ document: document, fieldName: 'verantwortlich', control: 'ref', placeholderIcon: 'far fa-user-circle', readonly: params.readonly }\"\n    ></ae-layout>\n  </div>\n\n  <div>\n    <ae-layout layout-id=\"8c425dba-2523-40f0-947f-f9ccb50718d7\"\n              :params=\"{ document: document, fieldName: 'bisStart', control: 'datetime-range', readonly: params.readonly }\" \n    ></ae-layout> \n    <!-- <span v-if=\"!data.erledigt && data.bis\" class=\"_CSS_to__date\" title=\"Zu erledigen bis\" :title=\"Aeppic.DateTime.fromISO(data.bis).toLocaleString()\">\n      <div class=\"_CSS-to__title\">Tage übrig</div>\n      <div class=\"_CSS-to__value\" :class=\"{ '_CSS-to__value--overdue': controller.isOverdue, '_CSS-to__value--warning': controller.daysLeft <= 5 && controller.daysLeft >= 0 }\">{{ controller.daysLeft === 0 ? 'Heute' : controller.daysLeft }}</div>\n    </span> -->\n  </div>\n\n  <div style=\"min-width:190px\">\n    <ae-design \n        class=\"_CSS-card__timerecording\"\n        name=\"timetracking:progress\"\n        :document=\"document\"\n        :param-hide-totals=\"true\"\n        param-min-width=\"190px\"\n        :param-edit=\"!params.readonly && !data.inaktiv\"\n        v-if=\"!data.inaktiv\"\n    ></ae-design>\n  </div>\n  \n  <div :title=\"locals.comments.length + ' Kommentare'\">\n    <template v-if=\"locals.comments.length\">\n      <ae-icon class=\"fa fa-comments\"></ae-icon>  {{ locals.comments.length }}\n    </template>\n  </div>\n  \n  <!-- <button v-if=\"locals.canDeactivate\" class=\"ae-button\" :title=\"data.inaktiv ? 'Aktivieren' : 'Deaktivieren'\" @click.stop=\"data.inaktiv = !data.inaktiv;save()\">\n    <ae-icon v-if=\"!data.inaktiv\" class=\"fa fa-trash\"></ae-icon>\n    <ae-icon v-else class=\"fa fa-trash-restore\"></ae-icon>\n  </button> -->\n</div>\n\n ","css":"._CSS {\n  --padding: 0.25rem 1rem 0.2rem 0.5rem;\n  display: flex;\n  flex-flow: column;\n}\n\n._CSS-card {\n  display: grid;\n  grid-template-columns: 50px minmax(100px, 1fr) 100px 80px 190px 50px 50px;\n  grid-column-gap: var(--ae-space-2);\n  align-items: center;\n\n  xheight: 45px;\n\n  border-radius: var(--ae-border-radius);\n  background-color: var(--ae-ui-background);\n\n  xborder: solid var(--ae-border-width) var(--ae-border-color);\n\n  margin:0;\n}\n\n._CSS-card--finished {\n  opacity: var(--ae-opacity-1);\n  color: var(--ae-background-500);\n}\n\n._CSS-card--inactive {\n  text-decoration: line-through;\n  opacity: var(--ae-opacity-2);\n}\n\n._CSS-card-title {\n  white-space: normal;\n}\n\n._CSS_to__date {\n  font-size: 0.9em;\n  width: 120px;\n}\n\n._CSS-to__value {\n  color: var(--ae-foreground-l2);\n}\n\n._CSS-to__value--overdue {\n  color: #FF7A6D;\n  font-weight: 500;\n}\n\n._CSS-to__value--warning {\n  color: orange;\n  font-weight: 500;\n}","controller":"class Controller {\n  async init() {\n    locals.readableDuration = ''\n    locals.duration = 0\n    locals.comments = []\n\n    this.form = await Aeppic.getFormForDocument(document)\n\n    Aeppic.subscribeQuery('dd148098-bd15-4baa-a4ce-df14e495c629', document.id, (documents) => {\n      const { readable, millis } = this.totalDuration(documents)\n      locals.readableDuration = readable\n      locals.duration = millis\n    })\n\n    await Aeppic.nextRenderPass()\n    startEditing()\n\n\n    Aeppic.subscribe(`p:${document.id} f.id:cf155969-ede1-43a4-9b10-3a697b19db91 stamps.type.id:04a939a8-6732-4f94-ad75-6f17ac417136`, comments => locals.comments = comments)\n  }\n\n  totalDuration(trackings) {\n    const duration = trackings.reduce((prev, cur) => {\n      if (prev) {\n        return Aeppic.DateTimeDuration.fromObject(cur.data.dauer).plus(prev)\n      }\n\n      return Aeppic.DateTimeDuration.fromObject(cur.data.dauer)\n    }, null)\n\n    if (duration) {\n      return { readable: duration.toFormat(\"hh'h' mm'm'\"), millis: duration.valueOf() }\n    }\n\n    return {}\n  }\n\n  get daysLeft() {\n    return -Aeppic.DateTime.local().diff(Aeppic.DateTime.fromISO(data.bis)).toFormat('d')\n  }\n\n  get isOverdue() {\n    if (params.hideOverdue) {\n      return null\n    }\n\n    if (!data.erledigt && data.bis) {\n      return this.daysLeft <= 0\n    }\n \n    return false\n  }\n}\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-10-06T08:18:53+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-10-06T11:29:41+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1633519781076,"ct":1633508333015,"a_depth":4,"a":["apps","59edbdbc-2cab-426a-bb42-6e57c5158e4f","3be7e887-1bcd-4c3c-979f-b20a986c4c48","0deb4864-cbb6-420c-99ee-337c7444ab24"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"63b6124a-f46b-4f02-ac1f-9eec31ed918b","v":"525757032509803d","p":"fallback-designs","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"ref-remove","template":"<button class=\"ae-button\" @click.stop=\"$emit('remove', document)\">\n  <ae-icon class=\"fa fa-times\"></ae-icon>\n</button>","css":"","controller":"// init() {\n//   console.log('deprecated: use the layout 1eb9a22f-6e91-491d-bdc8-e88c6ec87f79')\n// }","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2018-02-06T09:36:21+01:00","by":"","from":"","client":"server"},"modified":{"at":"2020-06-30T09:30:13+00:00","by":"8e6c22aa-8c69-4ff8-919a-7032841cf636","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720684627137,"ct":1720684627137,"a_depth":2,"a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"],"inheritedLocks":[null,null,null],"stamps":[],"previous":{"v":"eaeb4d74c03698f8","f":{"id":"design-form","v":"9bfe8e0cd909c1f0","text":"Design"}},"meta":{"modified":{"at":"2024-07-11T09:57:07+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"1fe32554-d1c1-4175-85a1-f5e4f56eca5e","v":"1adb8ac9c35753bb","previous":{"v":"initial"},"p":"90877d25-bbae-421e-9ea7-0631dcbf11c2","f":{"id":"design-form","v":"49954170df6a253b","text":"Design"},"data":{"name":"ref-selectable","template":"<div class=\"_CSS-container\" :class=\"{ '_CSS-container--bordered': !params.noBorder && !params.withoutBorder }\">\n  <ae-design style=\"flex:1;overflow:hidden;\" name=\"selectable\" :document=\"document\" param-design-name=\"ref-card\" :param-design-params=\"controller.params\" @selected=\"$emit('selected', $event)\"></ae-design>\n  <ae-design v-if=\"!params.noRemove && !params.readonly\" name=\"ref-remove\" :document=\"document\" @remove=\"$emit('remove', $event)\" ></ae-design>\n</div> ","css":"._CSS-container {\n  flex: 1;\n  display: flex;\n  min-width: 0;\n}\n\n._CSS-container--bordered {\n  border: var(--ae-border-width) solid var(--ae-border-color);\n  border-radius: var(--ae-border-radius);\n}","controller":"get params() {\n  return { ... params, noBorder: true }\n}","packages":[],"description":""},"locks":[],"created":{"at":"2019-09-09T09:30:32+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2021-09-01T13:12:21+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1630501941518,"ct":1568021432145,"a_depth":4,"a":["apps","599db2de-4e07-4722-98bd-7f42d498b352","79718664-ed22-4b52-9c10-037881df3578","90877d25-bbae-421e-9ea7-0631dcbf11c2"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"8ffd2463-1b26-4bfd-9d7f-932d1d4ad937","v":"7e1974842ce00f7d","previous":{"v":"17d126c0102ad0db"},"p":"3d456c38-6282-416e-8c5e-7d20b0517a6e","f":{"id":"design-form","v":"49954170df6a253b","text":"Design"},"data":{"name":"ref-selectable","template":"<div class=\"_CSS-container ae-navigatable\" :class=\"{ '_CSS-container--bordered': !params.noBorder && !params.withoutBorder }\">\n  <ae-design style=\"flex:1;overflow:hidden;\" name=\"selectable\" :document=\"document\" param-design-name=\"ref-card\" :param-design-params=\"controller.params\" v-on=\"$listeners\"></ae-design>\n  <ae-design v-if=\"!params.noRemove && !params.readonly\" name=\"ref-remove\" :document=\"document\" @remove=\"$emit('remove', $event)\"></ae-design>\n</div> ","css":"._CSS-container {\n  flex: 1;\n  display: flex;\n  min-width: 0;\n  align-items: center;\n}\n\n._CSS-container--bordered {\n  border: var(--ae-border-width) solid var(--ae-border-color);\n  border-radius: var(--ae-border-radius);\n}","controller":"get params() {\n  return { ... params, noBorder: true }\n}","packages":[],"description":""},"locks":[],"created":{"at":"2019-02-01T12:45:42+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2020-05-11T11:27:11+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1589196431536,"ct":1549025142853,"a_depth":4,"a":["apps","5acfd7a2-33e4-498a-9150-71e1ab772bfc","20c92864-6a81-4006-96f9-b78f473cd129","3d456c38-6282-416e-8c5e-7d20b0517a6e"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"911b40bf-b4a0-4330-aa8b-30543f06392d","v":"971747a835abbae7","cloneOf":{"id":"8ffd2463-1b26-4bfd-9d7f-932d1d4ad937","v":"7e1974842ce00f7d","text":"ref-selectable"},"originalCloneOf":{"id":"8ffd2463-1b26-4bfd-9d7f-932d1d4ad937","v":"7e1974842ce00f7d","text":"ref-selectable"},"previous":{"v":"002167a9d665315d"},"p":"0deb4864-cbb6-420c-99ee-337c7444ab24","f":{"id":"design-form","v":"49954170df6a253b","text":"Design"},"data":{"name":"ref-selectable","template":"<div class=\"_CSS-container\" :class=\"{ '_CSS-container--bordered': !params.noBorder && !params.withoutBorder }\">\n  <ae-design style=\"flex:1;width:100%;\" name=\"selectable\" :document=\"document\" param-design-name=\"ref-card\" :param-design-params=\"controller.params\" v-on=\"$listeners\"></ae-design>\n  <ae-design v-if=\"!params.noRemove && !params.readonly\" name=\"ref-remove\" :document=\"document\" @remove=\"$emit('remove', $event)\"></ae-design>\n</div> \n","css":"._CSS-container {\n  flex: 1;\n  display: flex;\n  min-width: 0;\n  align-items: center;\n}\n\n._CSS-container--bordered {\n  border: var(--ae-border-width) solid var(--ae-border-color);\n  border-radius: var(--ae-border-radius);\n}","controller":"get params() {\n  return { ... params, noBorder: true }\n}","packages":[],"description":""},"locks":[],"created":{"at":"2020-07-01T14:40:04+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2021-10-11T14:16:40+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1633961800107,"ct":1593614404565,"a_depth":4,"a":["apps","59edbdbc-2cab-426a-bb42-6e57c5158e4f","3be7e887-1bcd-4c3c-979f-b20a986c4c48","0deb4864-cbb6-420c-99ee-337c7444ab24"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"f75902e7-ba1b-4707-8efd-43790eeb3a5b","v":"9e11668822440856","previous":{"v":"2b65e8b759e2572b"},"p":"544d11b1-a156-4568-aeb3-2a60b2b57807","f":{"id":"design-form","v":"49954170df6a253b","text":"Design"},"data":{"name":"ref-selectable","template":"<div class=\"_CSS-container\" :class=\"{ '_CSS-container--bordered': !params.noBorder && !params.withoutBorder }\">\n  <ae-design style=\"flex:1;overflow:hidden;\" name=\"selectable\" :document=\"document\" param-design-name=\"ref-card\" :param-design-params=\"controller.params\" @selected=\"$emit('selected', $event)\"></ae-design>\n  <ae-design v-if=\"!params.noRemove && !params.readonly\" name=\"ref-remove\" :document=\"document\" @remove=\"$emit('remove', $event)\"></ae-design>\n</div> ","css":"._CSS-container {\n  flex: 1;\n  display: flex;\n  min-width: 0;\n}\n\n._CSS-container--bordered {\n  border: var(--ae-border-width) solid var(--ae-border-color);\n  border-radius: var(--ae-border-radius);\n}","controller":"get params() {\n  return { ... params, noBorder: true }\n}","packages":[],"description":""},"locks":[],"created":{"at":"2020-05-08T08:51:33+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2021-01-14T15:56:59+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1610639819013,"ct":1588927893957,"a_depth":4,"a":["apps","599db2de-4e07-4722-98bd-7f42d498b352","79718664-ed22-4b52-9c10-037881df3578","544d11b1-a156-4568-aeb3-2a60b2b57807"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"0dc9ba35-f534-4dab-8e80-c5ab11a61491","v":"initial","p":"a678e4d3-a2c1-4eeb-a106-6d47479692c8","f":{"id":"design-form","v":"4b1c7a4912f80103","text":"Design"},"data":{"name":"reference","template":"<div class=\"_CSS-drehteil-reference\">\n  <div v-if=\"locals.primaryImage\" class=\"_CSS-drehteil-reference__thumbnail\">\n    <ae-design name=\"thumbnail\" :document=\"locals.primaryImage\" :param-width=\"'52px'\" :param-height=\"'52px'\"></ae-design>\n  </div>\n  <div class=\"_CSS-drehteil-reference__content\">\n    <div class=\"_CSS-drehteil-reference__title\">{{ locals.title }}</div>\n    <div v-if=\"locals.materials.length\" class=\"_CSS-drehteil-reference__materials\">\n      <span v-for=\"material in locals.materials\" :key=\"material.label\" class=\"_CSS-drehteil-reference__material\">\n        <span class=\"_CSS-drehteil-reference__label\">{{ material.label }}</span>\n        <span class=\"_CSS-drehteil-reference__value\">{{ material.text }}</span>\n      </span>\n    </div>\n  </div>\n</div>","css":"._CSS-drehteil-reference {\n  display: inline-flex;\n  align-items: center;\n  gap: 8px;\n  min-width: 0;\n  max-width: 100%;\n  width: 100%;\n  overflow: hidden;\n  line-height: 1.25;\n}\n\n._CSS-drehteil-reference__thumbnail {\n  flex: 0 0 52px;\n  width: 52px;\n  height: 52px;\n  overflow: hidden;\n  border-radius: 6px;\n  background: var(--ae-surface-muted, #f3f4f6);\n}\n\n._CSS-drehteil-reference__content {\n  flex: 1 1 auto;\n  min-width: 0;\n  display: flex;\n  flex-direction: column;\n  gap: 4px;\n  overflow: hidden;\n}\n\n._CSS-drehteil-reference__title {\n  min-width: 0;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n  font-weight: 650;\n  color: var(--ae-form-control-color, var(--ae-foreground-l1, #202124));\n}\n\n._CSS-drehteil-reference__materials {\n  min-width: 0;\n  display: flex;\n  flex-wrap: wrap;\n  gap: 4px;\n  overflow: hidden;\n}\n\n._CSS-drehteil-reference__material {\n  max-width: 100%;\n  display: inline-flex;\n  align-items: center;\n  gap: 4px;\n  padding: 2px 6px;\n  border-radius: 6px;\n  background: var(--ae-ref-type-bg, #eef0f3);\n  color: var(--ae-foreground-l2, #5f6368);\n  font-size: 12px;\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n}\n\n._CSS-drehteil-reference__label {\n  color: var(--ae-foreground-l3, #7a7f89);\n  font-weight: 550;\n}\n\n._CSS-drehteil-reference__value {\n  min-width: 0;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  color: var(--ae-form-control-color, var(--ae-foreground-l1, #202124));\n  font-weight: 650;\n}","controller":"async init() {\n  locals.title = this.titleText()\n  locals.materials = this.materialRows()\n  locals.primaryImage = this.firstReference(data && data.image)\n}\n\ntitleText() {\n  const value = data && typeof data.name === 'string' ? data.name.trim() : ''\n  return value || 'Drehteil'\n}\n\nmaterialRows() {\n  const rows = []\n  this.addMaterial(rows, 'Drehteil', data && data.turnedPart)\n  this.addMaterial(rows, 'Verschleißring', data && data.wearRing)\n  return rows\n}\n\naddMaterial(rows, label, value) {\n  const text = this.materialLabel(value)\n\n  if (text) {\n    rows.push({ label, text })\n  }\n}\n\nmaterialLabel(value) {\n  const labels = {\n    ALUMINIUM_5083: 'Aluminium (5083)',\n    ALUMINIUM_BRONZE: 'Aluminium-Bronze',\n    BRASS: 'Messing',\n    STEEL: 'Stahl',\n    STAINLESS_STEEL: 'Edelstahl'\n  }\n\n  if (!value || value === 'NONE') {\n    return ''\n  }\n\n  return labels[value] || value\n}\n\nfirstReference(values) {\n  if (!Array.isArray(values)) {\n    return null\n  }\n\n  for (const value of values) {\n    if (value && value.id) {\n      return value\n    }\n  }\n\n  return null\n}","packages":[],"parameters":[],"parametersDescriptions":[],"parametersTypes":[],"parametersControls":[],"parametersCardinalities":[],"aliases":[],"description":"Reference display for Konstruktion: Drehteil: CAD preview plus turned-part and wear-ring material."},"locks":[],"created":{"at":"2026-08-04T07:30:24+00:00","by":"6b5e19d2-aa43-46cd-b486-0182161b6a85","backedBy":"","impersonatedBy":"","from":"","client":"server"},"modified":{"at":"2026-08-04T07:30:24+00:00","by":"6b5e19d2-aa43-46cd-b486-0182161b6a85","backedBy":"","impersonatedBy":"","from":"","client":"server"},"t":1785828624796,"ct":1785828624795,"a_depth":4,"a":["apps","deeef973-ce03-4557-bf75-75a059001767","e7de598c-6f5a-4ab4-a33b-213ca86e489d","a678e4d3-a2c1-4eeb-a106-6d47479692c8"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"a7b5c8fe-ed2d-48df-b239-bd801b11786c","v":"9fc125081198be16","previous":{"v":"a55b87b5e3b632c9"},"p":"14931d03-c3bb-4cf7-9f62-747f94d8b01a","f":{"id":"design-form","v":"0061789efb5c5c29","text":"Design"},"data":{"name":"report-card","template":"<div class=\"bp-card bp-card--bordered\" @click.stop=\"$emit('selected', document)\">\n  <div class=\"_CSS-info\">\n    <template v-if=\"params.showProject\">\n      <ae-design name=\"title\" :document-id=\"document.p\"></ae-design>\n    </template>\n    <template v-else>\n      <ae-design name=\"title\" :document=\"document\"></ae-design>\n      <span style=\"padding: 0 var(--ae-space-1);\">von</span>\n      <ae-design v-if=\"locals.empfaenger\" name=\"title\" :document=\"locals.empfaenger\"></ae-design>\n      <span v-else style=\"font-style:italic;\">{{ document.data.empfaenger.text }}</span>  \n    </template>\n  </div>\n  <div class=\"_CSS-info\">\n    <button class=\"ae-button ae-button--small\" v-if=\"data.kommentar\" :title=\"data.kommentar\" @click.stop=\"$refs.popupComment.show($event)\">\n      <ae-icon class=\"fa fa-comment\"></ae-icon>\n    </button>\n    <div class=\"_CSS-info__read\">\n      <span v-if=\"data.bewertung\" :title=\"'Bewertung: ' + data.bewertung\">\n        <ae-icon class=\"fa fa-smile-beam\" style=\"color:var(--ae-accent-green)\" v-if=\"data.bewertung === 'GUT'\"></ae-icon>\n        <ae-icon class=\"fa fa-meh\" v-else-if=\"data.bewertung === 'OK'\"></ae-icon>\n        <ae-icon class=\"fa fa-frown\" style=\"color:var(--ae-accent-red)\" v-else-if=\"data.bewertung === 'SCHLECHT'\"></ae-icon>\n      </span>\n      <span style=\"padding: 0 var(--ae-space-2);\" v-if=\"data.gelesenAm\" :title=\"Aeppic.DateTime.fromISO(data.gelesenAm).toLocaleString(Aeppic.DateTime.DATETIME_SHORT)\">\n        {{ Aeppic.DateTime.fromISO(data.gelesenAm).toRelativeCalendar() }}\n      </span>\n      <span v-if=\"data.gelesen\" title=\"Gelesen bestätigt\">\n        <ae-icon class=\"fa fa-check-square\" style=\"color:var(--ae-accent-green);\" ></ae-icon>\n      </span>\n      <span v-else title=\"Keine Lese-Bestätigung\">\n        <ae-icon class=\"fa fa-times-square\" style=\"color:var(--ae-accent-red);\"></ae-icon>\n      </span>\n    </div>\n    <ae-design name=\"avatar--tiny\" :document=\"data.empfaenger\"></ae-design>\n\n    <button v-if=\"params.isManager && !data.gelesen\" class=\"ae-button ae-button--small\" @click.stop=\"$refs.more.show($event)\">\n      <ae-icon class=\"fa fa-ellipsis-v\"></ae-icon>\n    </button>\n  </div>\n</div>\n\n<ae-popup ref=\"popupComment\">\n  <div class=\"_CSS-comment\">{{data.kommentar}}</div>\n</ae-popup>\n\n<ae-popup ref=\"more\">\n  <div>\n    <ae-layout  layout-id=\"c80364ed-8a1f-40fa-a169-5cc7b45d4fb4\"\n        :param-document=\"document\"\n        :param-commands=\"['f99b534f-7382-4a50-ae8b-f74aff690ab9']\"\n    ></ae-layout>\n  </div>\n</ae-popup>\n","css":"._CSS-info {\n  display: flex;\n  align-items: center;\n}\n\n._CSS-info__read {\n  padding: 0 var(--ae-space-3);\n}\n\n._CSS-comment {\n  padding: var(--ae-space-2);\n  max-width: 400px;\n  max-height: 40vh;\n  overflow: auto;\n\n  white-space: pre-line;\n}","controller":"class Controller {\n  async init() {\n    locals.empfaenger = null\n    locals.empfaenger = await Aeppic.get(document.data.empfaenger)\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-11-20T09:22:43+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-02-01T12:25:48+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1675254348740,"ct":1605864163484,"a_depth":4,"a":["apps","f416e371-07cc-4987-a6de-5934ef5ff3e4","1096c5df-2773-4914-9455-dc54e0f3e0e5","14931d03-c3bb-4cf7-9f62-747f94d8b01a"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"aaff54ec-2868-405e-85c1-28ea5408a496","v":"6f84cb908626f34b","p":"fallback-designs","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"report-card","template":"<ae-design name=\"search-card\" \n          :document=\"document\"\n          :param-show-remove=\"true\"\n          :param-readonly=\"params.readonly\"\n          style=\"flex: 1;\"\n          v-on=\"$listeners\"\n></ae-design>","css":"._CSS {\n  display: flex;\n}","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-05-08T09:00:44+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2020-06-30T09:30:13+00:00","by":"8e6c22aa-8c69-4ff8-919a-7032841cf636","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720684627137,"ct":1720684627137,"a_depth":2,"a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"],"inheritedLocks":[null,null,null],"stamps":[],"previous":{"v":"1cc8a6a6ca623a83","f":{"id":"design-form","v":"9bfe8e0cd909c1f0","text":"Design"}},"meta":{"modified":{"at":"2024-07-11T09:57:07+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"8bd2d411-1816-4620-bbb0-15ed19146443","v":"4bf975b2f4719dbf","previous":{"v":"56fbb82ae9672824"},"p":"5150f703-e93a-4e54-a998-a06c0e962e71","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"review","template":"<div class=\"\">\n  <ae-design class=\"text-lg\" name=\"work-status\" :document=\"document\"></ae-design>\n\n  <div class=\"pl-4\">\n    <ae-list list-id=\"2e798091-303f-406b-a42a-93aa1cd8425c\"\n            :documents=\"data.anlagenteile\"\n            param-design=\"list-review\"\n    ></ae-list>\n  </div>\n</div>\n\n \n  ","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-04-06T08:24:24+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-04-06T14:02:47+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1649253767242,"ct":1649233464060,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","5150f703-e93a-4e54-a998-a06c0e962e71"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"8949d696-dfc9-43f8-a5b8-671158feab8c","v":"a04aec269eca93df","p":"fallback-designs","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"right-panel","template":"","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2017-10-12T12:55:54+02:00","by":"","from":"","client":"284d5900-1313-48ea-948a-d0a21eceae39"},"modified":{"at":"2020-06-30T09:30:13+00:00","by":"8e6c22aa-8c69-4ff8-919a-7032841cf636","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720684627137,"ct":1720684627137,"a_depth":2,"a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"],"inheritedLocks":[null,null,null],"stamps":[],"previous":{"v":"b249a5d3b79eb430","f":{"id":"design-form","v":"9bfe8e0cd909c1f0","text":"Design"}},"meta":{"modified":{"at":"2024-07-11T09:57:07+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"a":["system","b2533f7b-ea85-4680-99ed-d8e11be641b9","0e6939d6-9b93-4165-b6bd-977e4da881f3","key-form"],"a_depth":4,"a_forms":["system-folder-form","folder","application-form","form"],"created":{"at":"2019-01-24T10:26:09+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","client":"server","from":""},"ct":1548325569993,"data":{"controller":"","css":"._CSS-rights {\n  display: flex;\n  align-items: center;\n}\n","description":"","name":"rights","packages":[],"template":"<div class=\"_CSS-rights\">\n  <div v-if=\"data.rights.length === 0\" title=\"Anzeigen\">\n    <ae-icon class=\"fa fa-eye\" ></ae-icon>\n    <span v-if=\"params.showTitle\">\n      Anzeigen\n    </span>\n  </div>\n  <ae-design name=\"icon-with-title\" v-for=\"right of data.rights\" :document=\"right\" :param-hide-title=\"!params.showTitle\"></ae-design>\n</div>"},"f":{"id":"design-form","text":"Design","v":"49954170df6a253b"},"id":"9eb91a10-eff7-4541-8a30-9b51ba81ac7c","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-02-16T14:19:50+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"p":"key-form","previous":{"v":"5e5bcd4fc13892ee"},"stamps":[],"t":1771251590280,"v":"37ec1c861ce8c1f3"},{"id":"1902b2e4-e5b6-48f3-888f-0b8c06c699f1","v":"a7a50bf39c18c877","previous":{"v":"28d2e564542277b1"},"p":"7894afb7-cbf3-4c0d-96d7-8c48efc1e227","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"risk-color","applies":"","template":"<div class=\"_CSS_number\" :style=\"{ background: controller.riskColor }\">\n  {{data.risikoklasseAlsZahl}}\n</div>","css":"._CSS {\n  text-align: center;\n  flex:1;\n}\n\n._CSS_number {\n  color: #584747;\n  padding: 2px 8px;\n  border-radius: var(--ae-border-radius);\n}","controller":"class Controller {\n  get riskColor() {\n    const v = data.risikoklasseAlsZahl\n    if (v == 1) {\n      return 'var(--ae-accent-green-600)'\n    }\n\n    if (v == 2) {\n      return 'var(--ae-accent-orange-500)'\n    }\n\n    if (v == 3) {\n      return 'var(--ae-accent-red-500)'\n    }\n\n    return ''\n  }\n}","packages":[]},"locks":[],"created":{"at":"2018-05-24T16:28:36+02:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","from":"","client":"server"},"modified":{"at":"2020-05-08T08:50:57+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1588927857231,"ct":1527172116922,"a_depth":5,"a":["apps","83c76376-420e-4231-9275-d0fe2ab47c32","ba440134-1703-495e-b869-0f0c8d447f75","91352b74-c5e5-4c05-aa68-f13b0b723f35","7894afb7-cbf3-4c0d-96d7-8c48efc1e227"],"a_forms":["folder","application-form","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"4deb85ed-e102-4b41-a66a-7208f8afdf0b","v":"28cb04738605a3a2","previous":{"v":"f15b402464fb3a46"},"p":"e170bb6c-f326-446d-870a-ada9d9f67230","f":{"id":"design-form","v":"e37099c040ec46e9","text":"Design"},"data":{"name":"roles","template":"<div class=\"_CSS-container\">\n  <div class=\"_CSS-list\">\n    <ae-design name=\"closed-info\" :document=\"document\"></ae-design>\n    <h2>\n      Rollen\n    </h2>\n\n    <ae-list  list-id=\"2dab232c-2c8a-4aa4-b3f9-6023a7116161\"\n              :documents=\"locals.roles\"\n              @selected=\"Aeppic.drillInto($event)\"\n              :sort=\"locals.sort\"\n              :params=\"{ minColumnWidth: '100%', gap: 'small' }\"\n    ></ae-list>\n              <!-- :param-enable-sort=\"true\"\n              param-sort-fields=\"data.surname,data.agencyAbbreviation\" -->\n  </div>\n</div>\n\n\n\n","css":"._CSS-container {\n  padding: var(--bp-page-content-padding);\n}\n\n._CSS-list {\n  margin: auto;\n  max-width: var(--ae-page-max-width);\n}","controller":"async init() {\n  this.FORMS = {\n    Application: '009c0da4-718f-43d0-964a-647e30074d94',\n    File: '8bf0fb31-716d-4b76-98d8-b7349f1d7529',\n    Role: '8fef472f-9220-484b-99cd-bb80f208f795'\n  }\n\n  locals.sort = {\n    field: 'data.name',\n  }\n\n  locals.roles = []\n\n  Aeppic.subscribe(`p:${document.id} f.id:${this.FORMS.Role}`, { size: 9999 }, (roles) => {\n    locals.roles = roles\n  })\n}\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-06-16T13:55:34+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-06-25T14:13:53+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1624630433629,"ct":1623851734770,"a_depth":4,"a":["apps","3fbe0efd-713a-457a-a34c-3a12aa19d6bb","0fb162f4-0f78-4c1e-aad2-43c27e6d98cb","e170bb6c-f326-446d-870a-ada9d9f67230"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"f":{"id":"design-form","v":"e3fe9ece11aabc5e","text":"Design"},"p":"3798ddaf-fd02-4b12-ae97-c545cd3dba01","data":{"name":"search","applies":"","template":"<div class=\"search-card\">\n    <div class=\"search-icon\" style=\"background-color: {{document.color}};\">\n      <img class=\"invert\" iris-src=\"{{document.icon}}\">\n    </div>\n    <div class=\"search-data\">\n        <document-change-info class=\"search-document-info\" document=\"document\"></document-change-info>\n        <h4>\n          {{data.name}}\n          <small>{{document.path}}</small>\n        </h4>\n        <div ng-if=\"data.datum\" class=\"search-item\"><small>Datum:</small> {{data.datum| date: 'd MMMM yyyy'}}</div>\n        </div>\n</div>\n"},"id":"0746d4a5-599a-4b79-b60e-0780370bd986","v":"initial","t":1467644255606,"ct":1467644255606,"modified":{"at":"2017-09-15T10:29:31+02:00","by":"","from":"","client":"import"},"created":{"at":"2017-09-15T10:29:31+02:00","by":"","from":"","client":"import"},"locks":[],"lockRefs":[],"inheritedLocks":[null,null,null,null,null],"a":["apps","2a9f2f9c-28df-4418-8b85-b4158b35ed3d","4c4390dd-b593-4bd1-8e6f-6a791cd234af","3798ddaf-fd02-4b12-ae97-c545cd3dba01"],"a_forms":["folder","application-form","form-folder","form"],"a_depth":4,"stamps":[]},{"f":{"id":"design-form","v":"e3fe9ece11aabc5e","text":"Design"},"p":"e4af0e46-8a46-4741-935d-13e29befd300","data":{"name":"search","applies":"","template":"<div class=\"search-card\">\n    <div class=\"search-icon\" style=\"background-color: {{document.color}};\"><img class=\"invert\" iris-src=\"api/content/default/dc3293fb5071f2c91b6614af14bfb4836bf952b5\"></div>\n    <div class=\"search-data\">\n        <h4>{{data.name}}</h4>\n        <div ng-if=\"data.wirkstoff\" class=\"search-item\"><small>Wirkstoff:</small> {{data.wirkstoff}}</div>\n        <div ng-if=\"data.wirkstoffklasse\" class=\"search-item\"><small>Wirkstoffklasse:</small> {{data.wirkstoffklasse}}</div>\n        <div ng-if=\"data.indikation\" class=\"search-item\"><small>Indikation/Einsatz:</small> {{data.indikation}}</div>\n        <div ng-if=\"data.dosierung\" class=\"search-item\"><small>Dosierung:</small> {{data.dosierung}}</div>\n        <div ng-if=\"data.sonstiges\" class=\"search-item\"><small>Sonstiges:</small> {{data.sonstiges}}</div>\n        <div ng-if=\"data.mitarbeiter\" class=\"search-item\"><small>Mitarbeiter:</small> {{data.mitarbeiter}}</div>\n    </div>\n</div>\n","$promise":{},"$resolved":true},"id":"0a38abdd-cf5f-47e4-b77f-278059fdd0c0","v":"1443143dfd46c736","t":1467644256118,"ct":1467644255947,"previous":{"v":"c7a0cc9b5dfce85e"},"modified":{"at":"2017-09-15T10:29:31+02:00","by":"","from":"","client":"import"},"created":{"at":"2017-09-15T10:29:31+02:00","by":"","from":"","client":"import"},"locks":[],"lockRefs":[],"inheritedLocks":[null,null,null,null,null,null],"a":["apps","83c76376-420e-4231-9275-d0fe2ab47c32","2c872bc9-30dc-45b4-9aed-8c1c89a69baa","d206ec4a-14b4-4425-9843-143e545ec76e","e4af0e46-8a46-4741-935d-13e29befd300"],"a_forms":["folder","application-form","application-form","folder","form"],"a_depth":5,"stamps":[]},{"id":"2dba085e-7f07-43c8-9f6e-9c16f4192879","v":"initial","previous":{"v":""},"p":"6d777b4e-0f5f-4dbf-a642-31e2a3ef4dbc","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"search","applies":"","template":"<div layout-padding layout-align=\"start center\" style=\"xbackground: #ededed; xborder-bottom:1px solid darkgray; margin-bottom:4px\" layout=\"row\">\n    <div><md-icon flex=\"5\">domain</md-icon></div>\n    <div flex title=\"{{data.description}}\">{{data.name || ('Untitled ' + document.f.text)}}</div>\n</div>","css":"","controller":"","packages":[]},"locks":[],"lockRefs":[],"created":{"at":"2018-02-06T09:47:12+01:00","by":"","from":"","client":"server"},"modified":{"at":"2018-02-06T09:47:12+01:00","by":"","from":"","client":"server"},"t":1517906832777,"ct":1517906832777,"a_depth":4,"a":["apps","b791df37-6eef-4a3e-9066-1b79e0bdad31","35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f","6d777b4e-0f5f-4dbf-a642-31e2a3ef4dbc"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"f":{"id":"design-form","v":"e3fe9ece11aabc5e","text":"Design"},"p":"69e7c51e-ba71-4a0e-9134-15a020100648","data":{"name":"search","applies":"","template":"<div class='search-card'>\n    <div class='search-icon' style=\"background-color: {{document.color}};\"><img class=\"invert\" iris-src=\"api/content/default/1cf8ec61fc92b3274c5b2cdce376944b44ed1877\"></div>\n    <div class='search-data'>\n        <h4>{{data.name}}</h4>\n        <div ng-if=\"data.firmenname\" class='search-item'><small>Firma:</small> {{data.firmenname}}</div>\n        <div ng-if=\"data.ansprechpartner\" class='search-item'><small>Ansprechpartner:</small> {{data.ansprechpartner}}</div>\n        <div ng-if=\"data.festnetz\" class='search-item'><small>Festnetz:</small> {{data.festnetz}}</div>\n        <div ng-if=\"data.mobil\" class='search-item'><small>Mobil:</small> {{data.mobil}}</div>\n        <div ng-if=\"data.fax\" class='search-item'><small>Fax:</small> {{data.fax}}</div>\n    </div>\n</div>\n"},"id":"469a9c53-f348-496a-886e-b7d27c13e28e","v":"4a42dba57bf18f0a","t":1467644261105,"ct":1467644260886,"previous":{"v":"460945c955eae71d"},"modified":{"at":"2017-09-15T10:29:31+02:00","by":"","from":"","client":"import"},"created":{"at":"2017-09-15T10:29:31+02:00","by":"","from":"","client":"import"},"locks":[],"lockRefs":[],"inheritedLocks":[null,null,null,null,null,null],"a":["apps","83c76376-420e-4231-9275-d0fe2ab47c32","921c912f-d932-46d2-b061-ae7539e9a5a8","4ff7b40d-67d1-4a31-bcf8-e8459db63855","69e7c51e-ba71-4a0e-9134-15a020100648"],"a_forms":["folder","application-form","application-form","folder","form"],"a_depth":5,"stamps":[]},{"f":{"id":"design-form","v":"e3fe9ece11aabc5e","text":"Design"},"p":"219525e1-3d7e-4e00-93df-7a751c36195a","data":{"name":"search","applies":"","template":"<div class='search-card'>\n    <div class='search-icon' style=\"background-color: {{document.color}};\"><img class=\"invert\" iris-src=\"{{document.icon}}\"></div>\n    <div class='search-data'>\n        <h4>{{data.vorname}}, {{data.name}}</h4>\n        <div ng-if=\"data.durchwahl\" class='search-item'><small>Durchwahl:</small> {{data.durchwahl}}</div>\n        <div ng-if=\"data.kuerzel\" class='search-item'><small>Kürzel:</small> {{data.kuerzel}}</div>\n        <div ng-if=\"data.mobil\" class='search-item'><small>Mobil:</small> {{data.mobil}}</div>\n        <div ng-if=\"data.email\" class='search-item'><small>E-Mail:</small> {{data.email}}</div>\n    </div>\n</div>\n","$promise":{},"$resolved":true},"id":"503c93d3-208d-4042-880a-fb765202e6d2","v":"8b571c974332f142","t":1467644265179,"ct":1467644265077,"previous":{"v":"0e535a29a8966233"},"modified":{"at":"2017-09-15T10:29:31+02:00","by":"","from":"","client":"import"},"created":{"at":"2017-09-15T10:29:31+02:00","by":"","from":"","client":"import"},"locks":[],"lockRefs":[],"inheritedLocks":[null,null,null,null,null,null],"a":["apps","83c76376-420e-4231-9275-d0fe2ab47c32","921c912f-d932-46d2-b061-ae7539e9a5a8","4ff7b40d-67d1-4a31-bcf8-e8459db63855","219525e1-3d7e-4e00-93df-7a751c36195a"],"a_forms":["folder","application-form","application-form","folder","form"],"a_depth":5,"stamps":[]},{"id":"626fb9a3-b631-4053-bdca-4bbc91b8e9dc","v":"initial","cloneOf":{"id":"0a38abdd-cf5f-47e4-b77f-278059fdd0c0","v":"1443143dfd46c736","text":"search"},"originalCloneOf":{"id":"0a38abdd-cf5f-47e4-b77f-278059fdd0c0","v":"1443143dfd46c736","text":"search"},"p":"38aab2e1-ee5c-4fc2-90e9-962b4161ac22","f":{"id":"design-form","v":"e3fe9ece11aabc5e","text":"Design"},"data":{"name":"search","applies":"","template":"<div class=\"search-card\">\n    <div class=\"search-icon\" style=\"background-color: {{document.color}};\"><img class=\"invert\" iris-src=\"api/content/default/dc3293fb5071f2c91b6614af14bfb4836bf952b5\"></div>\n    <div class=\"search-data\">\n        <h4>{{data.name}}</h4>\n        <div ng-if=\"data.wirkstoff\" class=\"search-item\"><small>Wirkstoff:</small> {{data.wirkstoff}}</div>\n        <div ng-if=\"data.wirkstoffklasse\" class=\"search-item\"><small>Wirkstoffklasse:</small> {{data.wirkstoffklasse}}</div>\n        <div ng-if=\"data.indikation\" class=\"search-item\"><small>Indikation/Einsatz:</small> {{data.indikation}}</div>\n        <div ng-if=\"data.dosierung\" class=\"search-item\"><small>Dosierung:</small> {{data.dosierung}}</div>\n        <div ng-if=\"data.sonstiges\" class=\"search-item\"><small>Sonstiges:</small> {{data.sonstiges}}</div>\n        <div ng-if=\"data.mitarbeiter\" class=\"search-item\"><small>Mitarbeiter:</small> {{data.mitarbeiter}}</div>\n    </div>\n</div>\n","packages":[]},"locks":[],"created":{"at":"2019-03-26T08:44:12+00:00","by":"2695f56c-96e6-4009-8e2f-d545ea1e02aa","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2019-03-26T08:44:12+00:00","by":"2695f56c-96e6-4009-8e2f-d545ea1e02aa","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1553589852970,"ct":1553589852963,"a_depth":5,"a":["apps","83c76376-420e-4231-9275-d0fe2ab47c32","2c872bc9-30dc-45b4-9aed-8c1c89a69baa","d206ec4a-14b4-4425-9843-143e545ec76e","38aab2e1-ee5c-4fc2-90e9-962b4161ac22"],"a_forms":["folder","application-form","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"697828a4-7856-47b0-8e80-4ca1afed12cc","v":"initial","previous":{"v":""},"p":"f8bb1979-c159-4464-97e6-ae3145caf0c5","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"search","applies":"","template":"<span class=\"line-height centerv document-name\" title=\"{{data.description}}\">{{data.name || ('Untitled ' + document.f.text)}}</span>","css":"","controller":"","packages":[]},"locks":[],"lockRefs":[],"created":{"at":"2018-02-06T09:46:43+01:00","by":"","from":"","client":"server"},"modified":{"at":"2018-02-06T09:46:43+01:00","by":"","from":"","client":"server"},"t":1517906803460,"ct":1517906803460,"a_depth":4,"a":["apps","b791df37-6eef-4a3e-9066-1b79e0bdad31","35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f","f8bb1979-c159-4464-97e6-ae3145caf0c5"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"6cf51964-05af-4520-9f56-70a9831a5728","v":"initial","previous":{"v":""},"p":"154d8541-9206-4a15-9245-5198b150d7cb","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"search","applies":"","template":"<span class=\"line-height centerv document-name\" title=\"{{data.description}}\">{{data.name || ('Untitled ' + document.f.text)}}</span>","css":"","controller":"","packages":[]},"locks":[],"lockRefs":[],"created":{"at":"2018-02-06T09:48:09+01:00","by":"","from":"","client":"server"},"modified":{"at":"2018-02-06T09:48:09+01:00","by":"","from":"","client":"server"},"t":1517906889222,"ct":1517906889222,"a_depth":4,"a":["apps","b791df37-6eef-4a3e-9066-1b79e0bdad31","35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f","154d8541-9206-4a15-9245-5198b150d7cb"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"73659eb6-6d76-4a76-a54b-71a973f186dc","v":"8d2d4c3f873614ec","previous":{"v":"9b3e7648fdea3060"},"p":"c0574720-6967-4293-94a8-e7b32a40fc6f","f":{"id":"design-form","v":"e3fe9ece11aabc5e","text":"Design"},"data":{"name":"search","applies":"","template":"<div class=\"search-card\">\n    <div class=\"search-icon\" style=\"background-color: {{document.color}};\">\n      <img class=\"invert\" iris-src=\"{{document.icon}}\">\n    </div>\n    <div class=\"search-data\">\n        <h4>\n          {{data.name}}\n          <small>{{document.path}}</small>\n        </h4>\n        <div ng-if=\"data.autor\" class=\"search-item\"><small>Autor:</small> {{data.autor}}</div>\n    </div>\n</div>\n","css":" ","controller":" ","packages":[]},"locks":[],"lockRefs":[],"created":{"at":"2017-09-15T10:29:31+02:00","by":"","from":"","client":"import"},"modified":{"at":"2017-11-10T12:06:15+01:00","by":"","from":"","client":"b07732aa-2241-415f-9d36-1765f9a5d7f8"},"t":1467644266856,"ct":1467644266836,"a_depth":4,"a":["apps","3d43a3f5-fea4-488d-9fc1-9dee5e694623","7c30f282-2b84-4976-8735-ba78662ea5e6","c0574720-6967-4293-94a8-e7b32a40fc6f"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"7d6c7415-988e-4a4d-9cf4-ba2155c026a6","v":"860598c47e6998da","p":"form","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"search","template":"<h5><img ng-src=\"{{document.icon}}\" class=\"document-icon-small\"> <span class=\"label label-info\">{{data.semver}}</span> {{data.name}} <small>{{document.path}}</small></h5>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2017-08-23T08:24:50+02:00","by":"","from":"","client":"import"},"modified":{"at":"2017-08-23T08:24:50+02:00","by":"","from":"","client":"import"},"t":1719473826893,"ct":1719473826893,"a_depth":3,"a":["system","system-forms","form"],"a_forms":["system-folder-form","repository-folder-form","form"],"inheritedLocks":[null,null,null,null],"stamps":[],"previous":{"v":"097cc54c612e7fed","f":{"id":"design-form","v":"initial","text":"Design"}},"meta":{"modified":{"at":"2024-06-27T07:37:06+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"af231c67-696a-404b-a419-80ba84248d8c","v":"03db60d066f54c5e","p":"color","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"search","template":"<div style=\"width:256px\">\n  <div style=\"width:100%;height:64px;border:1px solid #eee;margin-right:16px;display:inline-block\" ng-style=\"{'background-color':data.color}\"></div>\n  <div style=\"padding-bottom: 16px;text-align:center\"><span title=\"{{data.description}}\">{{data.name}}</span></div>\n</div>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2017-08-23T08:24:50+02:00","by":"","from":"","client":"import"},"modified":{"at":"2017-08-23T08:24:50+02:00","by":"","from":"","client":"import"},"t":1719473826893,"ct":1719473826893,"a_depth":3,"a":["system","system-forms","color"],"a_forms":["system-folder-form","repository-folder-form","form"],"inheritedLocks":[null,null,null,null],"stamps":[],"previous":{"v":"bbf98810efaab85e","f":{"id":"design-form","v":"initial","text":"Design"}},"meta":{"modified":{"at":"2024-06-27T07:37:06+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"dbc39ff9-52b2-4e20-9db2-541a96e6ccf5","v":"initial","previous":{"v":""},"p":"0a46aebe-e1fd-4f0e-bf20-4974cec7b03c","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"search","applies":"","template":"<div class=\"document-marker\">\r\n  <svg class=\"centerv\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\">\r\n    <rect x=\"0\" y=\"0\" width=\"100%\" height=\"100%\" ng-style=\"{'fill':document.color}\"/>\r\n  </svg>\r\n</div>   \r\n<span class=\"centerv label label-link\">{{document.label}}</span>\r\n<span class=\"line-height centerv document-name\" title=\"{{data.kommentar}}\">{{data.telefonnummer}} <small>{{data.kommentar}}</small></small></span>\r\n  ","css":"","controller":"","packages":[]},"locks":[],"lockRefs":[],"created":{"at":"2018-02-06T09:47:52+01:00","by":"","from":"","client":"server"},"modified":{"at":"2018-02-06T09:47:52+01:00","by":"","from":"","client":"server"},"t":1517906872794,"ct":1517906872794,"a_depth":4,"a":["apps","b791df37-6eef-4a3e-9066-1b79e0bdad31","35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f","0a46aebe-e1fd-4f0e-bf20-4974cec7b03c"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"e3262958-6c1a-4a34-a76b-b2bfcbed6bdc","v":"7525e07b4deddde0","p":"layout-form","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"search","template":"<h5 title=\"{{data.description}}\"><img src=\"images/iconmonstr-code-6-icon.svg\" class=\"document-icon-small\"> <span class=\"label label-info\">Layout</span>  <strong>{{data.name}}</strong> <small>{{document.path}}</small></h5>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2017-08-23T08:24:50+02:00","by":"","from":"","client":"import"},"modified":{"at":"2017-08-23T08:24:50+02:00","by":"","from":"","client":"import"},"t":1719473826893,"ct":1719473826893,"a_depth":3,"a":["system","system-forms","layout-form"],"a_forms":["system-folder-form","repository-folder-form","form"],"inheritedLocks":[null,null,null,null],"stamps":[],"previous":{"v":"ab3ba581dfa13686","f":{"id":"design-form","v":"initial","text":"Design"}},"meta":{"modified":{"at":"2024-06-27T07:37:06+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"f":{"id":"design-form","v":"e3fe9ece11aabc5e","text":"Design"},"p":"88c49094-0126-4b9c-82e2-6617367f6807","data":{"name":"search","applies":"","template":"<div class=\"search-card\">\n    <div class=\"search-icon\" style=\"background-color: {{document.color}};\"><img class=\"invert\" iris-src=\"api/content/default/dc3293fb5071f2c91b6614af14bfb4836bf952b5\"></div>\n    <div class=\"search-data\">\n        <h4>{{data.name}}</h4>\n        <div ng-if=\"data.vorname\" class=\"search-item\"><small>Vorname:</small> {{data.vorname}}</div>\n        <div ng-if=\"data.nachname\" class=\"search-item\"><small>Nachname:</small> {{data.nachname}}</div>\n        <div ng-if=\"data.veranstaltung\" class=\"search-item\"><small>Veranstaltung:</small> {{data.veranstaltung}}</div>\n        <div ng-if=\"data.veranstalter\" class=\"search-item\"><small>Veranstalter:</small> {{data.veranstalter}}</div>\n        <div ng-if=\"data.veranstaltungsort\" class=\"search-item\"><small>Veranstaltungsort:</small> {{data.veranstaltungsort}}</div>\n        <div ng-if=\"data.datum\" class=\"search-item\"><small>Datum:</small> {{data.datum}}</div>\n         <div ng-if=\"data.uhrzeit\" class=\"search-item\"><small>Uhrzeit:</small> {{data.uhrzeit}}</div>\n        <div ng-if=\"data.bewertung\" class=\"search-item\"><small>Bewertung:</small> {{data.bewertung}}</div>\n        <div ng-if=\"data.atfpunkte\" class=\"search-item\"><small>ATF-Punkte:</small> {{data.atfpunkte}}</div>\n    </div>\n</div>\n"},"id":"e579a62b-c670-497b-a67c-419d35496216","v":"initial","t":1467644279163,"ct":1467644279163,"modified":{"at":"2017-09-15T10:29:31+02:00","by":"","from":"","client":"import"},"created":{"at":"2017-09-15T10:29:31+02:00","by":"","from":"","client":"import"},"locks":[],"lockRefs":[],"inheritedLocks":[null,null,null,null,null],"a":["apps","3a8b08c2-14ef-48ee-a5b8-2ede237892a9","2d5b3e1c-5a2f-4e5a-8005-47373ea61666","88c49094-0126-4b9c-82e2-6617367f6807"],"a_forms":["folder","application-form","folder","form"],"a_depth":4,"stamps":[]},{"id":"edd94d3d-c138-49b1-bdad-0a651779e03b","v":"0c2bab073a07418e","p":"document-reference-form","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"search","template":"<div class=\"document-marker\">\n  <svg class=\"centerv\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\">\n    <rect x=\"0\" y=\"0\" width=\"100%\" height=\"100%\" ng-style=\"{'fill':document.color}\"/>\n  </svg>\n</div>   \n<span class=\"centerv label label-link document-label\">{{document.label}}</span>\n<span class=\"line-height centerv document-name\" title=\"{{data.description}}\">{{data.name || data.referencedDocument.text  || 'empty reference'}}</span>\n<small class=\"centerv very-light\">{{document.path}}</small>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2017-08-23T08:24:50+02:00","by":"","from":"","client":"import"},"modified":{"at":"2017-08-23T08:24:50+02:00","by":"","from":"","client":"import"},"t":1719473826893,"ct":1719473826893,"a_depth":3,"a":["system","system-forms","document-reference-form"],"a_forms":["system-folder-form","repository-folder-form","form"],"inheritedLocks":[null,null,null,null],"stamps":[],"previous":{"v":"8ca9ee9a2e7daa17","f":{"id":"design-form","v":"927bf22562d7b1b6","text":"Design"}},"meta":{"modified":{"at":"2024-06-27T07:37:06+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"f":{"id":"design-form","v":"e3fe9ece11aabc5e","text":"Design"},"p":"381e2c4e-9eed-42a5-b65c-ad72e25369f0","data":{"name":"search","applies":"","template":"<div class=\"search-card\">\n    <div class=\"search-icon\" style=\"background-color: {{document.color}};\"><img class=\"invert\" iris-src=\"images/iconmonstr-note-10-icon.svg\"></div>\n    <div class=\"search-data\">\n        <h4>{{data.name}}</h4>\n        <div ng-if=\"document.created.by\" class=\"search-item\"><small>Autor:</small> {{document.created.by.text}}</div>\n        <div ng-if=\"document.created.at\" class=\"search-item\"><small>Datum:</small> {{document.created.at  | date: 'd MMMM yyyy H:mm'}}</div>\n    </div>\n</div>"},"id":"fe1a4d01-0eb5-412d-9791-4218b45bebb5","v":"initial","t":1467644279680,"ct":1467644279679,"modified":{"at":"2017-09-15T10:29:31+02:00","by":"","from":"","client":"import"},"created":{"at":"2017-09-15T10:29:31+02:00","by":"","from":"","client":"import"},"locks":[],"lockRefs":[],"inheritedLocks":[null,null,null,null,null],"a":["apps","b91e3079-75ae-49cd-981b-3053bf47208c","e7a0be94-cd94-4210-875e-0cceb7e8bc6c","381e2c4e-9eed-42a5-b65c-ad72e25369f0"],"a_forms":["folder","application-form","folder","form"],"a_depth":4,"stamps":[]},{"id":"0e14d3d4-d13f-46fb-85c8-6c108c5ef897","v":"00e433068e9bfc3b","p":"fallback-designs","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"search-card","template":"<div class=\"_CSS-card ae-navigatable\" :class=\"{ '_CSS-card--with-border': params.noBorder !== true }\" @click.stop=\"$emit('selected', document)\">\n  <ae-design name=\"search-title\" :document=\"document\" :param-minimized-info=\"params.minimizedInfo\" :param-hide-path=\"params.hidePath\" :param-readonly=\"params.readonly == null ? true : params.readonly\" @selected=\"$emit('selected', document)\" :param-full-path=\"params.fullPath\"></ae-design>\n  <ae-design v-if=\"params.showRemove && !params.readonly\" name=\"ref-remove\" :document=\"document\" @remove=\"$emit('remove', $event)\"></ae-design>\n</div>","css":"._CSS-card {\n  background-color: var(--ae-ui-card-background);\n  border-radius: var(--ae-border-radius);\n  \n  padding: 4px;\n  cursor: default;\n}\n\n._CSS-card--with-border {\n  border: var(--ae-border-width) solid var(--ae-border-color);\n}","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2018-12-03T16:21:34+00:00","by":"c5ed555f-cc11-463b-960b-0a60b3118e69","from":"","client":"server"},"modified":{"at":"2021-06-24T13:41:50+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720684627137,"ct":1720684627137,"a_depth":2,"a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"],"inheritedLocks":[null,null,null],"stamps":[],"previous":{"v":"1cd784ed581e8b6f","f":{"id":"design-form","v":"9bfe8e0cd909c1f0","text":"Design"}},"meta":{"modified":{"at":"2024-07-11T09:57:07+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"3df82ab0-9062-4293-9897-b038248f4e58","v":"initial","p":"3d456c38-6282-416e-8c5e-7d20b0517a6e","f":{"id":"design-form","v":"baf08f1171a94bca","text":"Design"},"data":{"name":"search-card","template":"\n\n<div class=\"_CSS-card\" :class=\"{ '_CSS-card--with-border': params.noBorder !== true }\" @click.stop=\"$emit('selected', document)\">\n  <div :title=\"data.name\" class=\"_CSS-title\">\n    <ae-design name=\"ref-card\" :document=\"document\" :param-without-border=\"true\" :param-without-background=\"true\" :param-readonly=\"params.readonly == null ? true : params.readonly\" @selected=\"$emit('selected', document)\"></ae-design>\n    <!-- <div :class=\"{'_CSS-title-with-icon': !params.hideIcon }\">\n      <ae-design v-if=\"!params.hideIcon\" :document=\"document\" name=\"icon\"></ae-design>\n      <ae-design name=\"title\" :document=\"document\"></ae-design>\n      <small v-if=\"!params.minimizedInfo\" class=\"_CSS-date\" :title=\"'Geändert: ' +  DateTime.fromISO(document.modified.at).toLocaleString(DateTime.DATETIME_MED)\">{{DateTime.fromISO(document.modified.at).toLocaleString()}}</small>\n    </div> -->\n\n    <div class=\"_CSS-path\" v-if=\"!params.hidePath || !params.hidePath && (params.searchParent !== document.p)\">\n      <ae-design :document=\"document\" name=\"path\" :param-full-path=\"params.fullPath\"></ae-design>\n    </div>\n  </div>\n  <ae-design v-if=\"params.showRemove && !params.readonly\" name=\"ref-remove\" :document=\"document\" @remove=\"$emit('remove', $event)\"></ae-design>\n</div>","css":"._CSS {\n  border-radius: var(--ae-border-radius);\n  display: flex;\n  min-width: 0;\n}\n\n._CSS-card {\n  flex: 1;\n  min-width: 0;\n  background-color: var(--ae-ui-card-background);\n  border-radius: var(--ae-border-radius);\n  \n  padding: 4px;\n\n  display: flex;\n}\n\n._CSS-card--with-border {\n  border: var(--ae-border-width) solid var(--ae-border-color);\n}\n\n._CSS-title {\n  display: flex;\n  flex-flow: column;\n  flex: 1;\n  color: var(--ae-foreground-l2);\n  overflow: hidden;\n}\n\n._CSS-title-with-icon {\n  display: grid;\n  grid-template-columns: auto 1fr;\n  grid-column-gap: 0.5em;\n\n  grid-auto-flow: column;\n  align-items: center;\n}\n\n._CSS-path {\n  font-size: var(--ae-font-size-2);\n  color: var(--ae-background-700);\n}\n\n._CSS-date {\n  color: var(--ae-background-700);\n}\n","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-05-08T08:50:53+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2020-05-08T08:50:53+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1588927853719,"ct":1588927853711,"a_depth":4,"a":["apps","5acfd7a2-33e4-498a-9150-71e1ab772bfc","20c92864-6a81-4006-96f9-b78f473cd129","3d456c38-6282-416e-8c5e-7d20b0517a6e"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"8e8a9eef-5174-4951-9da0-98df9bcd197c","v":"361e43fd6416c654","cloneOf":{"id":"3df82ab0-9062-4293-9897-b038248f4e58","v":"initial","text":"search-card"},"originalCloneOf":{"id":"3df82ab0-9062-4293-9897-b038248f4e58","v":"initial","text":"search-card"},"previous":{"v":"327e626be8812638"},"p":"0deb4864-cbb6-420c-99ee-337c7444ab24","f":{"id":"design-form","v":"baf08f1171a94bca","text":"Design"},"data":{"name":"search-card","template":"\n\n<div class=\"_CSS-card\" :class=\"{ '_CSS-card--with-border': params.noBorder !== true }\" @click.stop=\"$emit('selected', document)\">\n  <div :title=\"data.name\" class=\"_CSS-title\">\n    <ae-design name=\"ref-card\" :document=\"document\" :param-without-border=\"true\" :param-without-background=\"true\" :param-readonly=\"params.readonly == null ? true : params.readonly\" @selected=\"$emit('selected', document)\"></ae-design>\n    <!-- <div :class=\"{'_CSS-title-with-icon': !params.hideIcon }\">\n      <ae-design v-if=\"!params.hideIcon\" :document=\"document\" name=\"icon\"></ae-design>\n      <ae-design name=\"title\" :document=\"document\"></ae-design>\n      <small v-if=\"!params.minimizedInfo\" class=\"_CSS-date\" :title=\"'Geändert: ' +  DateTime.fromISO(document.modified.at).toLocaleString(DateTime.DATETIME_MED)\">{{DateTime.fromISO(document.modified.at).toLocaleString()}}</small>\n    </div> -->\n\n    <div class=\"_CSS-path\" v-if=\"!params.hidePath || !params.hidePath && (params.searchParent !== document.p)\">\n      <ae-design :document=\"document\" name=\"path\" :param-full-path=\"params.fullPath\" @selected=\"$emit('selected', document)\"></ae-design>\n    </div>\n  </div>\n  <ae-design v-if=\"params.showRemove && !params.readonly\" name=\"ref-remove\" :document=\"document\" @remove=\"$emit('remove', $event)\"></ae-design>\n</div>","css":"._CSS {\n  border-radius: var(--ae-border-radius);\n  display: flex;\n  min-width: 0;\n}\n\n._CSS-card {\n  flex: 1;\n  min-width: 0;\n  background-color: var(--ae-ui-card-background);\n  border-radius: var(--ae-border-radius);\n  \n  padding: 4px;\n\n  display: flex;\n  align-items: center;\n}\n\n._CSS-card--with-border {\n  border: var(--ae-border-width) solid var(--ae-border-color);\n}\n\n._CSS-title {\n  display: flex;\n  flex-flow: column;\n  flex: 1;\n  color: var(--ae-foreground-l2);\n  overflow: hidden;\n}\n\n._CSS-title-with-icon {\n  display: grid;\n  grid-template-columns: auto 1fr;\n  grid-column-gap: 0.5em;\n\n  grid-auto-flow: column;\n  align-items: center;\n}\n\n._CSS-path {\n  font-size: var(--ae-font-size-2);\n  color: var(--ae-background-700);\n}\n\n._CSS-date {\n  color: var(--ae-background-700);\n}\n","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-07-01T14:40:04+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2021-04-28T13:42:47+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1619617367319,"ct":1593614404569,"a_depth":4,"a":["apps","59edbdbc-2cab-426a-bb42-6e57c5158e4f","3be7e887-1bcd-4c3c-979f-b20a986c4c48","0deb4864-cbb6-420c-99ee-337c7444ab24"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"b326730e-6645-4b1d-a08c-9f4a220e81b5","v":"initial","p":"5c3d462b-b1fa-4323-8457-cee88cfdf51f","f":{"id":"design-form","v":"baf08f1171a94bca","text":"Design"},"data":{"name":"search-card","template":"<ae-design name=\"board-card\" :document=\"document\" v-on=\"$listeners\"></ae-design>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-05-08T08:51:12+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2020-05-08T08:51:12+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1588927872077,"ct":1588927872077,"a_depth":4,"a":["apps","f93ac233-7aa7-4561-a3b3-d8ebda0ee514","fc09d59c-bdef-4b1e-854e-d907bc11b295","5c3d462b-b1fa-4323-8457-cee88cfdf51f"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"d5d37452-f2b6-45a4-9ccc-6a9af6466f8c","v":"e7d2747977d04068","previous":{"v":"f0c5398bf9d4971a"},"p":"86966584-6ee3-4351-8e6e-ff6e695b970a","f":{"id":"design-form","v":"0061789efb5c5c29","text":"Design"},"data":{"name":"search-card","template":"<ae-design name=\"news-card\" :document=\"document\" :params=\"params\" :param-is-activity=\"true\" v-on=\"$listeners\"></ae-design>\n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-11-26T15:45:19+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2020-12-10T14:14:26+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1607609666330,"ct":1606405519818,"a_depth":4,"a":["apps","b91e3079-75ae-49cd-981b-3053bf47208c","e7a0be94-cd94-4210-875e-0cceb7e8bc6c","86966584-6ee3-4351-8e6e-ff6e695b970a"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"ede3d672-6505-4973-8041-77abcf787aec","v":"initial","p":"88b1f60e-71f6-46f5-94ea-3d7bbe972950","f":{"id":"design-form","v":"baf08f1171a94bca","text":"Design"},"data":{"name":"search-card","template":"\n\n<div class=\"bp-card _CSS-card\" :class=\"{ 'bp-card--with-border': params.withoutBorder !== true }\" @click.capture.stop=\"$emit('selected', document)\">\n  <div :title=\"data.name\" class=\"_CSS-title\">\n    <ae-design name=\"ref-card\" :document=\"document\" :param-without-border=\"true\" :param-without-background=\"true\" :param-readonly=\"true\"></ae-design>\n\n    <div class=\"_CSS-path\" v-if=\"!params.hidePath || !params.hidePath && (params.searchParent !== document.p)\">\n      <ae-design :document=\"document\" name=\"path\" :param-full-path=\"params.fullPath\"></ae-design>\n    </div>\n  </div>\n</div>","css":"._CSS-card {\n  padding: 4px;\n}\n\n._CSS {\n  border-radius: var(--ae-border-radius);\n}\n\n._CSS-title {\n  display: flex;\n  flex-flow: column;\n  flex: 1;\n  color: var(--ae-foreground-l2);\n  overflow: hidden;\n}\n\n._CSS-title-with-icon {\n  display: grid;\n  grid-template-columns: auto 1fr;\n  grid-column-gap: 0.5em;\n\n  grid-auto-flow: column;\n  align-items: center;\n}\n\n._CSS-path {\n  font-size: var(--ae-font-size-2);\n  color: var(--ae-background-700);\n}\n\n._CSS-date {\n  color: var(--ae-background-700);\n}\n","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-05-08T08:51:14+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2020-05-08T08:51:14+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1588927874430,"ct":1588927874429,"a_depth":4,"a":["apps","94a64d89-d204-4918-b147-d717914fb03e","f254ce25-42f1-4333-8ee7-23554bf746c1","88b1f60e-71f6-46f5-94ea-3d7bbe972950"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"1351fb92-e74b-4ef7-8bd3-408ddccd7537","v":"876be621ae025376","previous":{"v":"1a347096b5a1daa0"},"p":"3d456c38-6282-416e-8c5e-7d20b0517a6e","f":{"id":"design-form","v":"e3fe9ece11aabc5e","text":"Design"},"data":{"name":"search-card.old","applies":"","template":"\t<div @click=\"Aeppic.navigateTo(document.id)\" style=\"border: solid #d1d1d1; border-width:0 0 2px 0; background:white;box-shadow:none;cursor:pointer;margin-bottom:10px\"\n\t :class=\"{ warnBottom: Aeppic.Date.differenceInCalendarDays(new Date(), data.bis) > 0 && !data.erledigt }\">\n\t\t<section class=\"ae-row\" style=\"flex-wrap: nowrap;padding: 10px 5px 0 5px \">\n\t\t\t<div class=\"ae-col mdc-checkbox\">\n\t\t\t\t<input type=\"checkbox\" class=\"mdc-checkbox__native-control\" v-model=\"data.erledigt\" @input=\"save()\" @click.stop=\"\">\n\t\t\t\t<div class=\"mdc-checkbox__background\">\n\t\t\t\t\t<svg class=\"mdc-checkbox__checkmark\" viewBox=\"0 0 24 24\">\n\t\t\t\t\t\t<path class=\"mdc-checkbox__checkmark__path\" fill=\"none\" stroke=\"white\" d=\"M1.73,12.91 8.1,19.28 22.79,4.59\" />\n\t\t\t\t\t</svg>\n\t\t\t\t\t<div class=\"mdc-checkbox__mixedmark\"></div>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<div class=\"ae-col\" style=\"flex-basis: auto;flex-grow:1;\">\n\t\t\t\t<h1 class=\"mdc-card__title\"><input type=\"text\" v-model=\"data.name\" @blur=\"save()\" @click.stop=\"\" :style=\"{ color: data.erledigt?'#888':'inherit' }\">\t\t\t\t\t<span style=\"font-size: 12px\">{{document.path}}</span></h1>\n\t\t\t\t<h2 class=\"mdc-card__subtitle\">{{data.beschreibung}}</h2>\n\t\t\t</div>\n\n\t\t\t<div style=\"font-size:12px;flex-grow:0;flex-basis:auto; display: flex;\">\n\t\t\t\t<ae-design style=\"margin-right:4px\" v-for=\"va in data.verantwortlich\" :key=\"va.id\" :document-id=\"va.id\" name=\"inline,list\"></ae-design>\n\t\t\t</div>\n\n\t\t\t<div class=\"ae-col\" style=\"font-size:12px;flex-grow:0;\" v-if=\"data.bis\">\n\t\t\t\t<i class=\"material-icons\" style=\"opacity:0.7;font-size:15px;margin-right:5px\">date_range</i> {{ Aeppic.Date.format(data.bis,\n\t\t\t\t'DD.MM.YYYY') }}\n\t\t\t</div>\n\n\t\t\t<section class=\"ae-col noprint\" style=\"flex-grow:0;flex-basis: auto;\">\n\t\t\t\t<button class=\"mdc-button\"><i class=\"material-icons mdc-button__icon\">more_vert</i></button>\n\t\t\t</section>\n\t\t</section>\n\t</div>","css":"","controller":"","packages":[]},"locks":[],"created":{"at":"2017-09-15T10:29:32+02:00","by":"","from":"","client":"import"},"modified":{"at":"2020-05-08T08:50:53+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1588927853727,"ct":1467644290329,"a_depth":4,"a":["apps","5acfd7a2-33e4-498a-9150-71e1ab772bfc","20c92864-6a81-4006-96f9-b78f473cd129","3d456c38-6282-416e-8c5e-7d20b0517a6e"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"0f260667-e453-42f9-ae15-90a995b881e9","v":"initial","p":"ee4b6777-b620-43a9-9cde-7261dfc5c616","f":{"id":"design-form","v":"3385ac6766f32638","text":"Design"},"data":{"name":"search-title","template":"<div :title=\"data.name\" class=\"_CSS-title\">\r\n  <div :class=\"{'_CSS-title-with-icon': !params.hideIcon }\">    \r\n    <ae-design v-if=\"!params.hideIcon\" :document=\"document\" name=\"icon\"></ae-design>     \r\n    <ae-design name=\"title\" :document=\"document\"></ae-design>     \r\n    <small v-if=\"!params.minimizedInfo\" class=\"_CSS-date\" :title=\"'Geändert: ' +  DateTime.fromISO(document.modified.at).toLocaleString(DateTime.DATETIME_MED)\">{{DateTime.fromISO(document.modified.at).toLocaleString()}}</small>   </div>    <div class=\"_CSS-path\" v-if=\"!params.hidePath || !params.hidePath && (params.searchParent !== document.p)\">\r\n    <ae-design :document=\"document\" name=\"path\" :param-full-path=\"params.fullPath\"></ae-design>  \r\n  </div>\r\n</div>","css":"._CSS {\r\n  border-radius: var(--ae-border-radius);\r\n}\r\n\r\n._CSS-title {\r\n  display: flex;\r\n  flex-flow: column;\r\n  flex: 1;\r\n  color: var(--ae-foreground-l2);\r\n  overflow: hidden;\r\n}\r\n\r\n._CSS-title-with-icon {\r\n  display: grid;\r\n  grid-template-columns: auto 1fr;\r\n  grid-column-gap: 0.5em;\r\n\r\n  grid-auto-flow: column;\r\n  align-items: center;\r\n}\r\n\r\n._CSS-path {\r\n  font-size: var(--ae-font-size-2);\r\n  color: var(--ae-background-700);\r\n}\r\n\r\n._CSS-date {\r\n  color: var(--ae-background-700);\r\n}","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-11-02T09:38:36+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-11-02T09:38:36+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1635845916191,"ct":1635845916191,"a_depth":4,"a":["apps","781ff5de-69db-49dc-99f0-f328b308cd7d","dbd0bd68-3479-4032-9303-9d51615c27a7","ee4b6777-b620-43a9-9cde-7261dfc5c616"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"16872d45-060e-45a7-aaa2-c3ed736fea6e","v":"86c849b145221a4c","previous":{"v":"d52c3cbef96185f0"},"p":"3d678f2a-65f5-4dc1-a643-c5998fa33f32","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"search-title","template":"<div class=\"\"> \n  <div class=\"flex items-center gap-2\">\n    <ae-design name=\"title\" :document=\"document\" class=\"text-lg\"></ae-design>\n    <ae-design name=\"address\" :document=\"document\" class=\"text-sm\"></ae-design>\n  </div>\n\n  <div class=\"ml-4 flex gap-2 items-center\" title=\"Zugewiesene Wartungsfirmen\">\n    <template v-if=\"!document.data.firma.length\">\n      <ae-icon class=\"fa fa-exclamation-triangle\"></ae-icon>  \n      <div>Keine Wartungsfirmen zugewiesen!</div>\n    </template>\n    <template v-else>\n      <ae-icon class=\"fal fa-user-hard-hat\"></ae-icon>  \n      <ae-design v-for=\"firma of document.data.firma\" :document=\"firma\" name=\"title\"></ae-design>\n    </template>\n  </div>\n\n  <div class=\"ml-4 flex gap-2 items-center\" title=\"Zugewiesene Wartungspläne\">\n    <template v-if=\"!document.data.plan.length\">\n      <ae-icon class=\"fa fa-exclamation-triangle\"></ae-icon>  \n      <div>Keine Pläne zugewiesen!</div>\n    </template>\n    <template v-else>\n      <ae-icon class=\"fal fa fa-ruler-triangle\"></ae-icon>  \n      <ae-design v-for=\"plan of document.data.plan\" :document=\"plan\" name=\"title\"></ae-design>\n    </template>\n\n  </div>\n\n</div>  ","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-04-05T13:32:57+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-04-05T14:02:21+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1649167341109,"ct":1649165577457,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","3d678f2a-65f5-4dc1-a643-c5998fa33f32"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"199d11f4-105c-4a8f-88bf-4000ab707e06","v":"6b227282feee2bc7","p":"962b8959-5d31-4343-9ffc-73acd37cc437","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"search-title","template":"<ae-design @click.native.prevent.stop=\"$emit('selected', { id: document.p })\" :document-id=\"document.p\" name=\"search-title\"></ae-design>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2017-08-23T08:24:50+02:00","by":"","from":"","client":"import"},"modified":{"at":"2018-05-23T11:44:30+02:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","backedBy":null,"from":"","client":"server"},"t":1719473826893,"ct":1719473826893,"a_depth":3,"a":["system","system-forms","962b8959-5d31-4343-9ffc-73acd37cc437"],"a_forms":["system-folder-form","repository-folder-form","form"],"inheritedLocks":[null,null,null,null],"stamps":[],"previous":{"v":"ee0cb990d251d321","f":{"id":"design-form","v":"927bf22562d7b1b6","text":"Design"}},"meta":{"modified":{"at":"2024-06-27T07:37:06+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"2d42e5f3-580a-4a44-9e9b-568ae0cf4553","v":"07fd9e86aa72fc8d","previous":{"v":"ff28e02b22305ee1"},"p":"b4b13fc6-7d06-4832-93b0-cd27405e269d","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"search-title","template":"<div class=\"flex gap-4\">\n\n  <ae-design name=\"styled-title-by-status\" class=\"-m-1 min-w-[100px] w-[100px] lg:min-w-[250px] lg:w-[250px]\" :document=\"document\"></ae-design>\n\n  <div title=\"Gesamtgröße\">\n    <ae-icon class=\"fa fa-ruler-combined\"></ae-icon> {{ data.gesamtgroesseEinheiten }} m²\n  </div>\n  <div v-if=\"data.beginn\" class=\"flex gap-1 flex-wrap\">\n    <div>\n      {{ Aeppic.DateTime.fromISO(data.beginn).toLocaleString() }}\n    </div>\n\n    <div v-if=\"data.ende\">\n      - {{ Aeppic.DateTime.fromISO(data.ende).toLocaleString() }}\n    </div>\n  </div>\n\n  <div class=\"flex-1\"></div>\n\n  <div class=\"flex gap-1 flex-col w-[150px]\" v-if=\"data.mieter.length\">\n    <div v-for=\"mieter of data.mieter\" class=\"flex gap-1 items-baseline\">\n      <ae-icon class=\"far fa-user\"></ae-icon>\n      <ae-design name=\"title\" :document-id=\"mieter.id\" class=\"py-1\"></ae-design>\n    </div>\n  </div>\n</div>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-08-18T13:35:14+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-11-03T15:02:10+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1667487730882,"ct":1660829714658,"a_depth":4,"a":["apps","86189c5a-b9f4-445a-879f-d94574960df0","15292d56-6806-4263-b6d0-9194687203e1","b4b13fc6-7d06-4832-93b0-cd27405e269d"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"3036487b-01d3-4080-b91e-535dbf392a3c","v":"6829e4b150b129cf","p":"76235811-3e08-43d1-913b-bee6b62deab6","f":{"id":"design-form","v":"9bfe8e0cd909c1f0","text":"Design","client":"server"},"data":{"name":"search-title","template":"<div :title=\"data.name\" class=\"_CSS-title\">\r\n  <div :class=\"{'_CSS-title-with-icon': !params.hideIcon }\">\r\n    <ae-design v-if=\"!params.hideIcon\" :document=\"document\" name=\"icon\"></ae-design>\r\n    <ae-design name=\"title\" :document=\"document\"></ae-design>\r\n    <small v-if=\"!params.minimizedInfo\" class=\"_CSS-date\" :title=\"'Geändert: ' +  DateTime.fromISO(document.modified.at).toLocaleString(DateTime.DATETIME_MED)\">{{DateTime.fromISO(document.modified.at).toLocaleString()}}</small>\r\n    <span title=\"Can be used to start a workflow\"><svg v-if=\"!data.fromState.length === 0 && !data.condition || data.condition === 'ENTRY'\" style=\"margin-left:8px\" width=\"16\" height=\"16\" xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" viewBox=\"0 0 24 24\"><path d=\"M13.033 2v-2l10 3v18l-10 3v-2h-9v-7h1v6h8v-18h-8v7h-1v-8h9zm1 20.656l8-2.4v-16.512l-8-2.4v21.312zm-3.947-10.656l-3.293-3.293.707-.707 4.5 4.5-4.5 4.5-.707-.707 3.293-3.293h-9.053v-1h9.053z\"/></svg></span>\r\n    <span title=\"Can be used only when workflow already active\" ><ae-icon  @mouseover.prevent.stop=\"\" style=\"margin-left:8px\" class=\"fa fa-code-commit\" v-if=\"!data.condition || data.condition === 'STARTED_ONLY'\"></ae-icon></span>\r\n  </div>\r\n  <div style=\"opacity:0.8;font-size:12px;margin-left:8px\" v-if=\"document.data.comment\" :title=\"document.data.comment\"><i>{{locals.comment}}</i></div> \r\n  <div class=\"_CSS-path\" v-if=\"!params.hidePath || !params.hidePath && (params.searchParent !== document.p)\">\r\n    <ae-design :document=\"document\" name=\"path\" :param-full-path=\"params.fullPath\"></ae-design>\r\n  </div>\r\n</div> \r\n","css":"._CSS {\r\n  border-radius: var(--ae-border-radius);\r\n}\r\n\r\n._CSS-title {\r\n  display: flex;\r\n  flex-flow: column;\r\n  flex: 1;\r\n  color: var(--ae-foreground-l2);\r\n  overflow: hidden;\r\n}\r\n\r\n._CSS-title-with-icon {\r\n  display: grid;\r\n  grid-template-columns: auto 1fr;\r\n  grid-column-gap: 0.5em;\r\n\r\n  grid-auto-flow: column;\r\n  align-items: center;\r\n}\r\n\r\n._CSS-path {\r\n  font-size: var(--ae-font-size-2);\r\n  color: var(--ae-background-700);\r\n}\r\n\r\n._CSS-date {\r\n  color: var(--ae-background-700);\r\n}","controller":"init() {\r\n  const comment = document.data.comment\r\n  locals.comment = comment && comment.substr(0, 80) + (comment.length >= 80 ? '...' : '')\r\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-06-23T13:33:45+00:00","by":"8e6c22aa-8c69-4ff8-919a-7032841cf636","from":"","client":"server"},"modified":{"at":"2020-07-01T08:46:47+00:00","by":"8e6c22aa-8c69-4ff8-919a-7032841cf636","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1593593207142,"ct":1593593207142,"a_depth":4,"a":["apps","47dd3677-407a-42ac-8542-20d8ecf10e4f","d646d88a-6eea-424b-81a1-2df3c44993c4","76235811-3e08-43d1-913b-bee6b62deab6"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[],"previous":{"v":"00fb5e42eec2c86d","f":{"id":"design-form","v":"74db9b6ed94b41d9","text":"Design"}}},{"id":"430306d4-f795-4762-a116-189bf8d75008","v":"abded3bb7da2f2fa","p":"0bb3d600-faf0-4a5c-b49f-7994d234ae76","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"search-title","template":"<div class=\"flex gap-4 items-center\">\n  <ae-design name=\"title\" :document=\"document\"></ae-design>\n\n  <div class=\"flex gap-2 items-center\">\n    <ae-design name=\"profile-avatar\" :document-id=\"document.created.by\"></ae-design>\n    <ae-design name=\"profile-title\" :document-id=\"document.created.by\"></ae-design>\n  </div>\n\n  <div class=\"flex-1\"></div>\n\n  <div class=\"flex flex-col text-sm w-[200px] overflow-hidden\">\n    <!-- <div class=\"text-neutral-500 italic\">\n      Status\n    </div> -->\n\n    <div v-for=\"activeRequest of data.activeRequests\">\n      <ae-design name=\"form-title\" :document=\"activeRequest\"></ae-design>\n    </div>\n  </div>\n\n\n  <div class=\"ml-4\">\n    {{ Aeppic.DateTime.fromISO(document.created.at).toLocaleString(Aeppic.DateTime.DATETIME_SHORT) }}\n  </div>\n</div>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-11-16T14:45:30+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-04-13T12:42:40+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1681389760614,"ct":1681389760614,"a_depth":4,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","0bb3d600-faf0-4a5c-b49f-7994d234ae76"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[],"previous":{"v":"f473f48c4d8ac1e0","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"}}},{"id":"7c227f21-80d3-4110-8fe3-b9cb0e4453e6","v":"735ddcce395f8576","p":"c0d56b6e-a7f6-4eaf-9e3b-cfc592ade3be","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"search-title","template":"<div class=\"_CSS-container\">\n  <ae-design class=\"_CSS-title\" name=\"title\" :document=\"document\"></ae-design> \n\n  <div class=\"_CSS-description\">\n    {{ data.description }}\n  </div>\n\n  <div class=\"_CSS-icons\" >\n    <span title=\"available\" v-if=\"data.available\">\n      <ae-icon v-if=\"data.available\" class=\"fa fa-check\"></ae-icon> \n      <ae-icon v-if=\"!data.available\" class=\"fa fa-times\"></ae-icon> \n    </span>\n\n    <span title=\"exposeHTTPApi\" v-if=\"data.exposeHTTPApi\">\n      <ae-icon class=\"fa fa-server\"></ae-icon> \n    </span>\n  </div>\n</div>","css":"._CSS-container {\n  display: flex;\n}\n\n._CSS-title {\n  flex: 1;\n  margin-right: var(--ae-space-2);\n}\n\n._CSS-description {\n  min-width: 0;\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  font-style: italic;\n}\n\n._CSS-icons {\n  min-width: 100px;\n  display: flex;\n  justify-content: flex-end;\n}\n\n._CSS-icons > *~* {\n  margin-left: var(--ae-space-2);\n}","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-10-08T12:59:33+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-10-08T13:08:40+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1719473826900,"ct":1719473826900,"a_depth":3,"a":["system","system-forms","c0d56b6e-a7f6-4eaf-9e3b-cfc592ade3be"],"a_forms":["system-folder-form","repository-folder-form","form"],"inheritedLocks":[null,null,null,null],"stamps":[],"previous":{"v":"09ae01c7298e445b","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"}},"meta":{"modified":{"at":"2024-06-27T07:37:06+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"7e9dfa3d-f290-494b-b1e1-eba70bc13db7","v":"893468573e03a288","p":"fallback-designs","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"search-title","template":"<div :title=\"data.name\" class=\"_CSS-title\">\n  <div :class=\"{'_CSS-title-with-icon': !params.hideIcon }\">\n    <ae-design v-if=\"!params.hideIcon\" :document=\"document\" name=\"icon\"></ae-design>\n    <ae-design name=\"title\" :document=\"document\" :param-prefer-name=\"params.preferName\"></ae-design>\n    <small v-if=\"!params.minimizedInfo\" class=\"_CSS-date\" :title=\"'Geändert: ' +  DateTime.fromISO(document.modified.at).toLocaleString(DateTime.DATETIME_MED)\">{{DateTime.fromISO(document.modified.at).toLocaleString(Aeppic.DateTime.DATETIME_MED)}}</small>\n  </div>\n\n  <div class=\"_CSS-path\" v-if=\"!params.hidePath || !params.hidePath && (params.searchParent !== document.p)\">\n    <ae-design :document=\"document\" name=\"path\" :param-full-path=\"params.fullPath\" :param-prefer-name=\"params.preferName\" @selected=\"$emit('selected', $event)\"></ae-design>\n  </div>\n</div>\n","css":"._CSS {\n  border-radius: var(--ae-border-radius);\n}\n\n._CSS-title {\n  display: flex;\n  flex-flow: column;\n  flex: 1;\n  color: var(--ae-foreground-l2);\n  overflow: hidden;\n}\n\n._CSS-title-with-icon {\n  display: grid;\n  grid-template-columns: auto 1fr;\n  grid-column-gap: 0.5em;\n\n  grid-auto-flow: column;\n  align-items: center;\n}\n\n._CSS-path {\n  font-size: var(--ae-font-size-2);\n  color: var(--ae-background-700);\n}\n\n._CSS-date {\n  color: var(--ae-background-700);\n}","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2017-10-27T10:54:07+02:00","by":"","from":"","client":"69bf0f4f-977a-4bba-abaa-e6889d7b26a1"},"modified":{"at":"2023-10-11T07:52:20+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720684627138,"ct":1720684627138,"a_depth":2,"a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"],"inheritedLocks":[null,null,null],"stamps":[],"previous":{"v":"3b8dcefc833ae95c","f":{"id":"design-form","v":"9bfe8e0cd909c1f0","text":"Design"}},"meta":{"modified":{"at":"2024-07-11T09:57:07+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"84144489-e937-4548-a6e5-ba8e17b2d9e0","v":"64400e331b662db1","previous":{"v":"edb95b783cc593ed"},"p":"b761a694-27e9-4b16-b048-2c9c0c4cd971","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"search-title","template":"<div class=\"flex gap-4 flex-wrap\" :class=\"[data.bezahlt && 'line-through opacity-70']\">\n  <!-- <ae-design name=\"search-title\" :document-id=\"data.vertrag.id\"></ae-design> -->\n  <ae-design name=\"unit\" :document-id=\"data.vertrag.id\" class=\"min-w-[100px] w-[100px]\"></ae-design>\n  <ae-design name=\"styled-title-by-status\" :document-id=\"data.vertrag.id\" class=\"-m-1 min-w-[100px] w-[100px] lg:min-w-[250px] lg:w-[250px]\"></ae-design>\n  <ae-design name=\"tenants\" :document-id=\"data.vertrag.id\"></ae-design>\n\n  <!-- <div v-if=\"data.datum\" class=\"min-w-[75px] w-[75px]\">\n    {{ Aeppic.DateTime.fromISO(data.datum).toLocaleString(Aeppic.DateTime.DATE_SHORT) }}\n  </div> -->\n   \n  <div class=\"flex-1\">\n  </div>\n\n\n  <div>\n    {{ new Intl.NumberFormat('de-DE', { style: 'currency', currency: 'EUR' }).format(data.differenz) }} \n  </div>\n\n  <div>\n    <ae-icon v-if=\"data.bezahlt\" class=\"fa fa-check text-green-500\"></ae-icon>\n    <ae-icon v-else class=\"fa fa-times text-red-500\"></ae-icon>\n  </div>\n</div> ","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-01-03T14:24:19+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-01-03T14:57:16+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1672757836766,"ct":1672755858995,"a_depth":4,"a":["apps","85d3c028-a61c-4be8-93d0-4366bc45752f","25fda732-5296-4fab-8d4e-92c3e32ca2c0","b761a694-27e9-4b16-b048-2c9c0c4cd971"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"9ee3d914-39fd-48db-b19a-408543a71552","v":"a9dcdb0f142921a9","previous":{"v":"de7a9ffc187e429b"},"p":"28527c6d-4f85-4881-8f5d-948021a60ad0","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"search-title","template":"<div class=\"flex gap-4 items-center\">\n\n  <ae-design name=\"icon\" :document=\"document\"></ae-design>\n\n  <ae-icon v-if=\"data.erledigt\" class=\"fa fa-check-square\"></ae-icon>\n  <ae-icon v-if=\"!data.erledigt\" class=\"far fa-square\"></ae-icon>\n\n  <ae-design name=\"days-left\" :document=\"document\" :params=\"{ date: data.bisStart, done: data.erledigt }\"></ae-design> \n\n  <div class=\"flex items-center gap-1 self-end\">\n    <div class=\"truncate\">\n      {{data.personName}}\n    </div>\n    <!-- <div class=\"text-sm truncate\">\n      {{data.personTelefon}}\n      </div> -->\n  </div>\n\n  <div class=\"flex-1\"></div>\n\n  <div v-if=\"data.beschreibung.length\" class=\"max-h-8 text-xs\">\n    {{ data.beschreibung.slice(0, 200) }}\n  </div>\n\n  <div class=\"flex justify-between gap-2\" title=\"\">\n    <div class=\"flex gap-1\">\n      <ae-design class=\"text-lg\" v-for=\"verantwortlich of data.verantwortlich\" name=\"avatar--resizes-with-font\"\n        :document-id=\"verantwortlich.id\"></ae-design>\n    </div>\n    <div title=\"Eingereicht am\" class=\"text-xs\">\n      {{ Aeppic.DateTime.fromISO(document.created.at).toLocaleString(Aeppic.DateTime.DATETIME_SHORT) }}\n    </div>\n  </div>\n</div>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-08-18T14:13:16+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-08-18T14:46:31+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1660833991990,"ct":1660831996130,"a_depth":4,"a":["apps","86189c5a-b9f4-445a-879f-d94574960df0","15292d56-6806-4263-b6d0-9194687203e1","28527c6d-4f85-4881-8f5d-948021a60ad0"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"a6c3cd27-0a48-4c01-a9a6-db0becc04657","v":"e8a2683e96198a56","previous":{"v":"5d7b5269296883f7"},"p":"84ede5f8-c5af-4113-8235-4b7fa528e265","f":{"id":"design-form","v":"0061789efb5c5c29","text":"Design"},"data":{"name":"search-title","template":"<div :title=\"data.name\" class=\"_CSS-title\">\n  <div :class=\"{'_CSS-title-with-icon': !params.hideIcon }\">\n    <ae-design v-if=\"!params.hideIcon\" :document=\"document\" name=\"icon\"></ae-design>\n    <span>\n      <ae-design name=\"title\" :document-id=\"document.p\" style=\"color: var(--ae-background-600);\"></ae-design>\n      <ae-design name=\"title\" :document=\"document\"></ae-design>\n    </span>\n    <small v-if=\"!params.minimizedInfo\" class=\"_CSS-date\" :title=\"'Geändert: ' +  DateTime.fromISO(document.modified.at).toLocaleString(DateTime.DATETIME_MED)\">{{DateTime.fromISO(document.modified.at).toLocaleString()}}</small>\n  </div>\n\n  <div class=\"_CSS-path\" v-if=\"!params.hidePath || !params.hidePath && (params.searchParent !== document.p)\">\n    <ae-design :document=\"document\" name=\"path\" :param-full-path=\"params.fullPath\"></ae-design>\n  </div>\n</div>\n","css":"._CSS {\n  border-radius: var(--ae-border-radius);\n}\n\n._CSS-title {\n  display: flex;\n  flex-flow: column;\n  flex: 1;\n  color: var(--ae-foreground-l2);\n  overflow: hidden;\n}\n\n._CSS-title-with-icon {\n  display: grid;\n  grid-template-columns: auto 1fr;\n  grid-column-gap: 0.5em;\n\n  grid-auto-flow: column;\n  align-items: center;\n}\n\n._CSS-path {\n  font-size: var(--ae-font-size-2);\n  color: var(--ae-background-700);\n}\n\n._CSS-date {\n  color: var(--ae-background-700);\n}","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-01-25T09:13:12+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-01-25T09:16:25+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1611566185809,"ct":1611565992560,"a_depth":4,"a":["apps","9d6ee173-26fe-4472-a271-7667f717094e","53b70eca-0cef-448b-9674-22a70a937eb1","84ede5f8-c5af-4113-8235-4b7fa528e265"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"b2c4fc49-f172-4ed1-b3c6-205168ac585f","v":"initial","previous":{"v":""},"p":"694aee80-d85e-479b-b7ec-8fe36906fcac","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"search-title","applies":"","template":"<strong>{{data.anschrift.street}} {{data.anschrift.streetNumber}}</strong>, {{data.anschrift.postalCode}} {{data.anschrift.city}}","css":"","controller":"","packages":[]},"locks":[],"lockRefs":[],"created":{"at":"2018-02-06T09:47:40+01:00","by":"","from":"","client":"server"},"modified":{"at":"2018-02-06T09:47:40+01:00","by":"","from":"","client":"server"},"t":1517906860740,"ct":1517906860740,"a_depth":4,"a":["apps","b791df37-6eef-4a3e-9066-1b79e0bdad31","35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f","694aee80-d85e-479b-b7ec-8fe36906fcac"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"b7f02968-3d05-46a1-82b4-dae2a350faed","v":"e86dcaa49c9a6f00","previous":{"v":"b22b2259352d7a8e"},"p":"7105a939-989c-4154-96e8-44f17f556b2a","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"search-title","template":"<div class=\"flex gap-3\">\n  <div class=\"-m-1 py-1 px-2 w-[90px] min-w-[90px]\" :class=\"['bg-' + locals.color.color ]\">\n    <ae-design name=\"title\" :document=\"document\"></ae-design>\n\n    <div v-if=\"data.groesse\" class=\" overflow-hidden\">\n      {{ data.groesse }} m²\n    </div>\n  </div>\n\n  <div class=\"flex flex-col gap-2\" v-if=\"data.mieter.length && locals.contracts.length\">\n    <div v-for=\"contract of locals.contracts\" class=\"flex gap-x-2\">\n      <ae-design name=\"styled-size-by-status\" :document=\"contract\"></ae-design>\n      <ae-design name=\"tenants\" :document=\"contract\"></ae-design>\n    </div>\n  </div>\n</div>\n","css":"","controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Vertrag: 'b4b13fc6-7d06-4832-93b0-cd27405e269d',\n    }\n\n    locals.color = {}\n    locals.contracts = []\n\n    locals.color = (await Aeppic.Actions.run(['27a207ee-3162-4d0a-947b-3f017855579b'], { params: { unit: document }}))[0]?.value || {}\n\n    const allContracts = await Aeppic.find(`p:${document.p} f.id:${this.FORMS.Vertrag} data.einheit:${document.id}`)\n    locals.contracts = allContracts.filter(contract => contract.data.status !== 'INAKTIV')\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-04-28T09:16:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-02-01T14:41:50+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1675262510807,"ct":1651137392661,"a_depth":4,"a":["apps","86189c5a-b9f4-445a-879f-d94574960df0","15292d56-6806-4263-b6d0-9194687203e1","7105a939-989c-4154-96e8-44f17f556b2a"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["system","fallback-designs"],"a_depth":2,"a_forms":["system-folder-form","folder"],"created":{"at":"2018-10-22T11:19:35+00:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","client":"server","from":""},"ct":1720684627138,"data":{"aliases":[],"controller":"class Controller {\r\n  async init() {\r\n    // find manual lock\r\n    locals.dialog = false\r\n    \r\n    locals.canLockIndividually = false\r\n    locals.canEditSecurity = false\r\n    \r\n    locals.individualLock = null\r\n    locals.individualLockTemplate = null\r\n    locals.applicableKeys = []\r\n    locals.securityAdministratorsGroups = []\r\n\r\n    await this._discoverApplicableSecurity()\r\n\r\n    const securityAdministratorsGroup = await this._findSecurityAdministratorsGroup()\r\n    locals.securityAdministratorsGroups = [securityAdministratorsGroup]\r\n\r\n    Aeppic.watch(document.id, async (document) => {\r\n      const allLocks = await Aeppic.getAll(document.locks)\r\n      locals.otherLocks = allLocks.filter(l => !locals.individualLock || !l.originalCloneOf || l.originalCloneOf.id  !== locals.individualLockTemplate.id)\r\n    })\r\n\r\n    if (Aeppic.Account.data.isAdmin) {\r\n      locals.canEditSecurity = true\r\n      return\r\n    }\r\n\r\n    const securityFolder = await this._findSecurityFolder()\r\n\r\n    const canEdit = await Aeppic.canEdit(document)\r\n    \r\n    if (!Aeppic.Account || Aeppic.Account.data.isGroupAccount || !canEdit) {\r\n      locals.canEditSecurity = false\r\n      return\r\n    }\r\n\r\n    if (Aeppic.Account && Aeppic.Account.data.isAdmin) {\r\n      locals.canEditSecurity = true\r\n      return\r\n    }\r\n\r\n    if (securityFolder.data.manageAccessAdminOnly) {\r\n      const isSecurityAdministrator = !!(await Aeppic.findOne(`id:${Aeppic.Account.id} AND data.groups:${securityAdministratorsGroup.id}`))\r\n      locals.canEditSecurity = isSecurityAdministrator\r\n    } else {\r\n      locals.canEditSecurity = true\r\n    }\r\n\r\n    // this.showHandler = () => {\r\n    // if (this.canEdit) {\r\n    //   this.showSecurity()\r\n    //   }\r\n    // }\r\n\r\n    // $on('show', this.showHandler)\r\n  } \r\n\r\n  async showSecurity() {\r\n    if (!locals.individualLock) {\r\n      console.log('no individual lock found yet, building one')\r\n      const clonedLock = await Aeppic.clone(locals.individualLockTemplate, document.id)\r\n\r\n      locals.individualLock = clonedLock\r\n    }\r\n\r\n    locals.dialog = true\r\n\r\n    await Aeppic.nextRenderPass()\r\n    \r\n    $refs.secureAccessDialog.show() \r\n  }\r\n\r\n  async _findSecurityAdministratorsGroup() {\r\n    const securityFolder = await this._findSecurityFolder()    \r\n\r\n    if (!securityFolder) {\r\n      return\r\n    }\r\n\r\n    return Aeppic.get(securityFolder.data.securityGroup.id)\r\n  }\r\n\r\n  async _findSecurityFolder() {\r\n    if (!document.a) {\r\n      return null\r\n    }\r\n\r\n    const securityFolders = (await Aeppic.find(`a:${document.a[0]} AND f.id:81939b86-a48e-480e-afd1-cb2907568550`))\r\n\r\n    if (!securityFolders.length) {\r\n      return null\r\n    }\r\n\r\n    if (securityFolders.length > 1) {\r\n      console.error('Found more than 1 security folder')\r\n      return null\r\n    }\r\n\r\n    return securityFolders[0]\r\n  }\r\n\r\n  async _discoverApplicableSecurity() {\r\n    // if (!await this._discoverCloneLockCapabilities()) {\r\n    await this._discoverFormBasedLockCapabilities()\r\n    // }\r\n\r\n    if (locals.individualLockTemplate) {\r\n      locals.canLockIndividually = true\r\n       \r\n      const existingLocks = await Aeppic.getAll(document.locks)\r\n      \r\n      for (const lock of existingLocks) {\r\n        if (!lock) {\r\n          continue\r\n        }\r\n        \r\n        const templateOfLock = lock.originalCloneOf\r\n\r\n        if (templateOfLock && templateOfLock.id === locals.individualLockTemplate.id) {\r\n          locals.individualLock = await Aeppic.edit(lock)\r\n          break\r\n        } \r\n      }\r\n    } else {\r\n      locals.canLockIndividually = false\r\n    }\r\n  }\r\n\r\n  async getRootTemplate(documentToFindRootTemplateOf) {\r\n    let current = documentToFindRootTemplateOf\r\n \r\n    while (current.cloneOf) {\r\n      current = await Aeppic.get(current.cloneOf)\r\n    }\r\n\r\n    return current !== documentToFindRootTemplateOf ? current : null\r\n  }\r\n\r\n\r\n  _discoverCloneLockCapabilities() {\r\n    return false\r\n  }\r\n\r\n  async _discoverFormBasedLockCapabilities() {    \r\n    const defaultLockToUse = await Aeppic.findOne(`p:${document.f.id} f.id:lock-form`)\r\n\r\n    locals.individualLockTemplate = defaultLockToUse\r\n    \r\n    if (locals.individualLockTemplate) {\r\n      locals.applicableKeys = await Aeppic.find(`a:${document.f.id} f.id:key-form data.lock.id:${defaultLockToUse.id}`)\r\n    } else {\r\n      locals.applicableKeys = []\r\n    }\r\n  }\r\n\r\n  async confirmIndividualLockDeletion() {\r\n    const ok = packages.window.confirm('Zugriffsbeschränkung löschen? Das Document ist damit wieder frei lesbar/schreibar.')\r\n\r\n    if (!ok) {\r\n      return\r\n    }\r\n\r\n    const editableDocument = await Aeppic.edit(document)\r\n    editableDocument.removeLock(locals.individualLock)\r\n    Aeppic.save(editableDocument)\r\n\r\n    locals.dialog = false\r\n  }\r\n}","css":"._CSS-lock-title {\r\n  color: #777;\r\n  text-align:center;\r\n}\r\n\r\n._CSS-fa--fa-lock:before {\r\n  content: \"\\f023\"; }\r\n\r\n._CSS-fa--fa-lock-alt:before {\r\n  content: \"\\f30d\"; }\r\n\r\n._CSS-fa--fa-lock-open:before {\r\n  content: \"\\f3c1\"; }\r\n\r\n._CSS-fa--fa-lock-open-alt:before {\r\n  content: \"\\f3c2\"; }\r\n\r\n\r\n._CSS-fa--fa-toggle-on:before {\r\n  /* content: \"\\f14a\"; */\r\n  content: \"\\f205\";\r\n  color: var(--ae-primary);\r\n  /* font-weight: bold; */\r\n}\r\n\r\n._CSS-fa--fa-toggle-off:before {\r\n  /* content: \"\\f0c8\"; */\r\n  content: \"\\f204\";  \r\n  opacity:0.5;\r\n  color: var(--ae-primary);\r\n  /* font-weight: bold; */\r\n}\r\n\r\n\r\n._CSS-icon {\r\n  font-size:25px;\r\n}\r\n\r\n._CSS-header { \r\n  display:flex;\r\n  align-items: center;\r\n  justify-content: space-between; \r\n}\r\n\r\n._CSS-ae-dialog {\r\n  border:none;\r\n}\r\n\r\n\r\n._CSS-dialog__header {\r\n  flex: 1;\r\n  display: flex;\r\n  justify-content: space-between;\r\n}\r\n\r\n._CSS-dialog-footer {\r\n  flex: 1;\r\n  display: flex;\r\n  justify-content: flex-end;\r\n}\r\n\r\n._CSS-dialog-footer > * {\r\n  margin-left:12px;\r\n}\r\n\r\n._CSS-matrix {\r\n  display: table;\r\n  width:100%;\r\n}\r\n\r\n._CSS-cell {\r\n  flex: 1;\r\n  min-width:0px;\r\n  overflow: auto;\r\n}\r\n\r\n._CSS-cell:not(:first-of-type) {\r\n  text-align: center;\r\n}\r\n\r\n._CSS-cell:first-of-type {\r\n  min-width: 12em;\r\n}\r\n \r\n._CSS-cell--header {\r\n  padding-bottom: 1em;\r\n}\r\n\r\n._CSS-row--header {\r\n  min-height: 2em;\r\n}\r\n\r\n._CSS-row {\r\n  display: flex;\r\n}\r\n\r\n._CSS-row > * {\r\n  /* flex: 1; */\r\n  min-width: 1em;\r\n}\r\n","description":"","name":"security-access","packages":[{"id":"10843fbf-4f0c-416b-be7d-42d6bbd0ae68","text":"Window","v":"d4ce6dec568c3dc1"}],"template":"<button class=\"ae-button\" :disabled=\"!(locals.canLockIndividually && locals.canEditSecurity)\" @click=\"controller.showSecurity()\" :title=\"document.locks.length ? 'Zugriff gesichert' : 'Nicht abgeschlossen'\">\r\n  <ae-icon v-if=\"document.locks.length\" class=\"fad fa-lock\"></ae-icon>\r\n  <ae-icon v-else class=\"fad fa-lock-open\"></ae-icon>\r\n</button>\r\n\r\n<ae-dialog ref=\"secureAccessDialog\" :open=\"false\" v-if=\"locals.dialog\" :full-screen=\"Aeppic.Device !== 'Desktop'\" @close=\"locals.dialog = false\" :backdrop-close=\"false\">\r\n\t<div slot=\"header\" class=\"_CSS-header\" slot-scope=\"headerScope\">\r\n\t\t<ae-design :document=\"document\" name=\"search-title\" :param-minimized-info=\"true\" ></ae-design>\r\n    <button @click=\"headerScope.close()\" class=\"ae-button\">\r\n      <ae-icon class=\"fal fa-times\"></ae-icon>\r\n    </button>\r\n\t</div>\r\n\t<div slot=\"body\" style=\"margin:12px;min-height:auto; overflow-y:scroll;\" slot-scope=\"scope\">\r\n    <template v-if=\"locals.individualLock\">\r\n      <ae-design  :document=\"locals.individualLock\" name=\"editor\" :watch=\"false\" param-title=\"Custom Lock\" :param-applicable-keys=\"locals.applicableKeys\" :param-security-administrators-groups=\"locals.securityAdministratorsGroups\" @save=\"scope.close()\"></ae-design>\r\n      \r\n      <div class=\"\">\r\n        <hr style=\"margin: var(--ae-space-4) 0\">\r\n        <div>\r\n          Mit dem Zurücksetzen der Zugriffsbeschränkung ist dieses Document wieder frei lesbar/bearbeitbar.\r\n        </div>\r\n        <button class=\"ae-button\" @click.stop=\"controller.confirmIndividualLockDeletion()\">\r\n          <ae-icon class=\"fa fa-trash\"></ae-icon>\r\n          Zugriffsbeschränkung löschen und zurücksetzen\r\n        </button>\r\n      </div>\r\n    </template>\r\n    <template v-if=\"locals.otherLocks && locals.otherLocks.length > 0\">\r\n      <h3 style=\"margin-top:2em\">Other Locks</h3>\r\n      <p v-for=\"lock of locals.otherLocks\">\r\n        <ae-design name=\"title\" :document-id=\"lock.id\"></ae-design>\r\n      </p> \r\n    </template>\r\n\t</div>\r\n\t<!-- <div slot=\"commands\" slot-scope=\"dialogScope\">\r\n\t\t<div class=\"_CSS-dialog-footer\">\r\n\t\t\t<button class=\"_CSS-button-save bp-button bp-button--transparent\" @click=\"dialogScope.close();Aeppic.move(locals.documentToMove.id, locals.moveToTarget.id)\">Hierhin verschieben</button>\r\n\t\t\t<button class=\"_CSS-button-save bp-button bp-button--raised\" @click=\"dialogScope.close();Aeppic.move(locals.documentToMove.id, locals.moveToTarget.id)\">Verschieben</button>\r\n\t\t</div>\r\n\t</div> -->\r\n</ae-dialog>"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"31d8d075-7ed7-4400-acda-2504e5480ce7","inheritedLocks":[null,null,null],"locks":[],"modified":{"at":"2025-12-04T14:56:16+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"fallback-designs","previous":{"v":"8a0e5b4b2b70a60f"},"stamps":[],"t":1764860176852,"v":"0099b3e25970cc11"},{"id":"b4ad0126-7378-47b4-b77d-87b23e135ba7","v":"60b6a6c2f790f20c","previous":{"v":"1c5a57d5e5d20f82","p":"e5c233c9-5425-48d7-a785-d962897bc6f8"},"p":"group","f":{"id":"design-form","v":"49954170df6a253b","text":"Design"},"data":{"name":"security-card","template":"  <ae-control @click.native=\"$emit('selected', document)\"  name=\"security:group\" :document=\"document\" :readonly=\"true\"></ae-control>\n","css":"._CSS {\n  background: var(--ae-ui-card-background);\n  padding: 4px;\n}","controller":"","packages":[],"description":""},"locks":[],"created":{"at":"2019-01-15T15:13:44+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2019-01-28T11:16:47+00:00","by":null,"backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1548674207946,"ct":1547565224365,"a_depth":5,"a":["system","b2533f7b-ea85-4680-99ed-d8e11be641b9","0e6939d6-9b93-4165-b6bd-977e4da881f3","627f5b74-3baf-45f8-a1d3-a5936839b844","group"],"a_forms":["system-folder-form","folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"d8306bde-7968-4a92-a4e9-d601d339d28d","v":"7b41880238621d65","previous":{"v":"c2cea6343e1db9cc"},"p":"d2ac3563-3c3f-4f02-b923-9b67abf98d10","f":{"id":"design-form","v":"24435d748c76f819","text":"Design"},"data":{"name":"security:account-card","template":"<div v-if=\"locals.account\" class=\"_CSS-account\" :class=\"{ '_CSS-account--disabled': locals.account.data.disabled, '_CSS-account--external': data.externerMitarbeiter }\">\n  <ae-design class=\"_CSS-avatar\" name=\"avatar--small\" :document=\"document\"></ae-design>\n  <ae-design class=\"_CSS-account-title\" name=\"title\" :document=\"locals.account\"></ae-design>\n  <!-- <ae-design class=\"_CSS-profile-title\" name=\"title\" :document-id=\"data.profilePage.id ? data.profilePage.id : p\"></ae-design> -->\n  <div class=\"_CSS-features\">\n    <i v-if=\"locals.account.data.allowDirectLogin\" class=\"fa fa-sign-in\" title=\"Direkte Anmeldung erlaubt\"></i>\n    <i v-if=\"data.externerMitarbeiter\" class=\"fa fa-book-user\" title=\"Externer Mitarbeiter\"></i>\n    <!-- <span v-if=\"locals.lastActive\" title=\"Letzte Aktivität (Seitenwechsel)\">\n      <i class=\"far fa-clock\"></i>\n      {{ Aeppic.DateTime.fromISO(locals.lastActive).toLocaleString(Aeppic.DateTime.DATETIME_SHORT) }}\n    </span> -->\n  </div>\n</div>  ","css":"._CSS-account {\n  display:grid;\n  /* grid-template-rows: 24px 24px; */\n  grid-template-columns: auto 1fr auto;\n  grid-column-gap: 8px;\n  grid-template-areas: \n    \"avatar account features\"\n    \"avatar profile none\";\n  flex-direction: row;\n  margin-bottom: 8px; \n  background: var(--ae-ui-card-background);\n  padding: 4px 8px;\n\n  border: var(--ae-border-width) solid var(--ae-border-color);\n  border-radius: var(--ae-border-radius);\n}\n\n._CSS-account--disabled {\n  opacity: 0.8;\n  background: var(--ae-background-300);\n}\n\n._CSS-avatar {\n  grid-area: avatar; \n}\n\n._CSS-profile-title {\n  grid-area: profile; \n  white-space: nowrap;\n  text-overflow: ellipsis;\n  overflow: hidden;\n}\n\n._CSS-account-title {\n  grid-area: account; \n  font-weight: 500;\n  overflow: hidden;\n  text-overflow: ellipsis;\n}\n\n._CSS-features {\n  grid-area: features;\n  color: var(--ae-background-700);\n\n\n  display: flex;\n  align-items: flex-end;\n  flex-flow: column;\n\n  font-size: var(--ae-font-size-2);\n}\n\n._CSS-account--disabled ._CSS-account-title {\n  text-decoration: line-through;\n}\n\n._CSS-account--external ._CSS-account-title {\n  font-style: italic;\n}\n","controller":"async init() {\n  this.FORMS = {\n    RecentlyVisitedDocuments: '0a8dbc2a-384e-457b-ab48-57013109ba44'\n  }\n\n  locals.lastActive = null\n  locals.realm = document.a[0]\n\n  locals.account = await this.getAccount(document)\n\n  this.subscribeRecentlyVisitedDocument()\n}\n\nasync getAccount(profile) {\n  const asProfileRef = await Aeppic.findOne(`a:${locals.realm} f.id:account account.data.profilePage.id:${profile.id}`)\n\n  if (asProfileRef) {\n    return asProfileRef\n  }\n\n  const asProfileParent = (await Aeppic.findOne(`a:${locals.realm} f.id:account p:${profile.id}`))\n\n  if (asProfileParent) {\n    return asProfileParent\n  }\n\n  return null\n}\n\nasync subscribeRecentlyVisitedDocument() {\n  const profilePage = await Aeppic.getProfilePageForAccount(locals.account)\n\n  if (!profilePage) {\n    return\n  }\n\n  Aeppic.subscribe(`p:${profilePage.id} f.id:${this.FORMS.RecentlyVisitedDocuments}`, (documents) => {\n    const recentlyVisitedDocument = documents[0]\n\n    locals.lastActive = recentlyVisitedDocument ? recentlyVisitedDocument.modified.at : null\n  })\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2019-05-06T14:54:55+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2021-10-08T08:49:45+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1633682985879,"ct":1557154495223,"a_depth":4,"a":["apps","144e85c0-d7f9-4b20-8928-be30f0c78bda","8e6ee7d3-9122-4a2e-8aaf-9fb3bd204b23","d2ac3563-3c3f-4f02-b923-9b67abf98d10"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"f12230ac-5cff-4f68-9950-38252443c713","v":"initial","p":"44e0edf9-6515-4e4b-ad48-98a04d28df11","f":{"id":"design-form","v":"24435d748c76f819","text":"Design"},"data":{"name":"security:account-card","template":"<div v-if=\"locals.account\" class=\"_CSS-account\" :class=\"{ '_CSS-account--disabled': locals.account.data.disabled}\" @click.stop=\"$emit('selected', locals.account)\">\n  <ae-design class=\"_CSS-avatar\" name=\"index-picture-thumbnail\" :document=\"document\" param-height=\"var(--dbps-thumbnail-height-2)\" param-width=\"var(--dbps-thumbnail-width-2)\"></ae-design>\n  <ae-design class=\"_CSS-account-title\" name=\"title\" :document=\"locals.account\"></ae-design>\n  <div class=\"_CSS-features\">\n    <i v-if=\"locals.account.data.allowDirectLogin\" class=\"fa fa-sign-in\" title=\"Direct anmelden erlaubt\"></i>\n  </div>\n</div>","css":"._CSS-account {\n  display:grid;\n  /* grid-template-rows: 24px 24px; */\n  grid-template-columns: auto 1fr auto;\n  grid-column-gap: 8px;\n  grid-template-areas: \n    \"avatar account features\"\n    \"avatar profile none\";\n  flex-direction: row;\n  margin-bottom: 8px; \n  background: var(--ae-ui-card-background);\n  padding: 4px 8px;\n  cursor: pointer;\n\n  border: var(--ae-border-width) solid var(--ae-border-color);\n  border-radius: var(--ae-border-radius);\n}\n\n._CSS-account--disabled {\n  opacity: 0.8;\n  background: var(--ae-background-300);\n}\n\n._CSS-avatar {\n  grid-area: avatar; \n}\n\n._CSS-profile-title {\n  grid-area: profile; \n  white-space: nowrap;\n  text-overflow: ellipsis;\n  overflow: hidden;\n}\n\n._CSS-account-title {\n  grid-area: account; \n  font-weight: 500;\n  overflow: hidden;\n  text-overflow: ellipsis;\n}\n\n._CSS-features {\n  grid-area: features;\n  color: var(--ae-background-700);\n}\n\n._CSS-account--disabled ._CSS-account-title * {\n  text-decoration:line-through;\n}\n\n","controller":"async init() {\n  const TEMPLATES = {\n    ModelAccount: 'c6fbff94-6487-46aa-a788-9c7cdb245fe7'\n  }\n  const LOCATIONS = {\n    ModelAccounts: '1d21a70e-45a4-4b4f-8481-8bc9b2d10662'\n  }\n  const FORMS = {\n    Account: 'account'\n  }\n\n  const locks = await Aeppic.getAll(document.locks)\n  const lockOfModel = locks.find(lock => lock.originalCloneOf && lock.originalCloneOf.id === TEMPLATES.ModelAccount)\n\n  if (!lockOfModel) {\n    return\n  }\n\n  const account = await Aeppic.findOne(`f.id:${FORMS.Account} locks.id:${lockOfModel.id}`)\n\n  locals.account = account\n}\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-10-13T10:11:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2020-10-13T10:11:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1602583892466,"ct":1602583892466,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","44e0edf9-6515-4e4b-ad48-98a04d28df11"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"8f01a3ae-032a-4a6d-b90b-86611a923304","v":"0e1322481ce33be9","cloneOf":{"id":"b4ad0126-7378-47b4-b77d-87b23e135ba7","v":"60b6a6c2f790f20c","text":"security-card"},"originalCloneOf":{"id":"b4ad0126-7378-47b4-b77d-87b23e135ba7","v":"60b6a6c2f790f20c","text":"security-card"},"previous":{"v":"0ed42b0d0811fc6d"},"p":"group","f":{"id":"design-form","v":"49954170df6a253b","text":"Design"},"data":{"name":"security:rd-card","template":"<div class=\"p-2 pl-4 flex flex-col gap-2\" @click.stop=\"$emit('selected', document)\">\n  <div class=\"flex items-center gap-2\">\n    <ae-design name=\"avatar\" :document=\"document\"></ae-design>\n\n    <div>\n      {{ data.name}}\n    </div>\n\n    <div class=\"flex-1\"></div>\n\n    <div class=\"flex flex-col items-end\">\n      <div class=\"\" v-if=\"!params.noUsers\">\n      {{ locals.employees.length }} <ae-icon class=\"fa fa-users\"></ae-icon>\n      </div>\n\n      <ae-icon v-if=\"data.systemManaged\" class=\"fa fa-cog\"></ae-icon>\n    </div>\n\n    <ae-layout  v-if=\"params.showRemove\"\n                layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n                param-icon=\"fa fa-times\"\n                @selected=\"$refs.confirmRemove.$emit('show', document)\"\n    ></ae-layout>\n\n    <ae-layout layout-id=\"6ee77ae8-b2f6-4fce-8fbc-788a55d5f7da\"\n                ref=\"confirmRemove\"\n                @delete=\"$emit('remove', document)\"\n    ></ae-layout>\n  </div>  \n\n  <ae-layout  v-if=\"!params.noUsers && locals.employees.length <= 100\"\n              layout-id=\"ffd34105-fa6a-44f5-aa63-64923233f178\"\n              :param-employees=\"locals.employees\"\n              class=\"text-2xl\"\n  ></ae-layout>\n\n</div>   ","css":"","controller":"class Controller {\n  async init() {\n    locals.accounts = []\n    locals.employees = []\n\n    await Aeppic.subscribe(`f.id:account data.groups:${document.id}`, { size: 9999 }, async (accounts) => {\n      locals.employees = await Promise.all(accounts.map(a => Aeppic.getProfilePageForAccount(a)))\n      locals.accounts = accounts\n    })\n  }\n} ","packages":[],"description":""},"locks":[],"created":{"at":"2023-01-05T15:10:10+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2024-06-18T11:58:50+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1718711930677,"ct":1672931410477,"a_depth":5,"a":["system","b2533f7b-ea85-4680-99ed-d8e11be641b9","0e6939d6-9b93-4165-b6bd-977e4da881f3","627f5b74-3baf-45f8-a1d3-a5936839b844","group"],"a_forms":["system-folder-form","folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"d35bd4dc-17c7-4337-8b57-f2c85a82f307","v":"f1a53b2188f4f58a","p":"fallback-designs","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"selectable","template":"<ae-design  v-if=\"params.name || params.designName\"\n            :name=\"params.name || params.designName\"\n            :document=\"document\"\n            ref=\"selectable\"\n            class=\"_CSS-selectable ae-navigatable\"\n            :class=\"{ 'ae-selected': locals.isSelected }\"\n            @touchstart.native.stop=\"controller.touchStart($event)\"\n            @touchend.native.stop=\"controller.touchEnd($event)\"\n            @click.right.stop.prevent.native=\"controller.showContextmenu($event)\"\n            @click.meta.stop.capture.native=\"controller.toggleSelection()\"\n            @click.ctrl.stop.capture.native=\"controller.toggleSelection()\"\n            :params=\"{ ...params.designParams, isSelected: locals.isSelected }\"\n            v-on=\"$listeners\"\n></ae-design>\n<!-- @click.meta.stop.capture.native=\"controller.toggleSelection()\"\n@click.ctrl.stop.capture.native=\"controller.toggleSelection()\" -->\n<div v-else>\n  Provide param-design-name\n</div>\n\n<ae-popup ref=\"contextmenu\" placement=\"bottom-start\">\n\t<div class=\"_CSS-ae-menu\" slot=\"popup\" slot-scope=\"menu\">\n\t\t<ul class=\"_CSS-ae-menu-list\" style=\"min-width: 10rem;\">\n\t\t\t<li v-if=\"locals.canSelect\" class=\"_CSS-ae-menu-item\" @click.stop=\"controller.toggleSelection();menu.close()\">Auswählen</li>\n\t\t\t<li v-if=\"locals.canMove\" class=\"_CSS-ae-menu-item\" @click.stop=\"$refs.move.$emit('show', document);menu.close()\">Verschieben</li>\n      <!-- <li class=\"_CSS-ae-menu-item\">\n        <ae-layout layout-id=\"0ded34c5-1221-4511-af93-d897a79f1369\" :param-document=\"document\"></ae-layout> \n      </li> -->\n\t\t</ul>\n    <ae-design name=\"contextmenu__entries\" :document=\"document\" @click.native=\"menu.close()\" ></ae-design>\n\t</div>\n</ae-popup>\n\n<ae-layout ref=\"move\" layout-id=\"6de540a9-0130-4fa6-839b-647b8bd33dc5\"></ae-layout>\n","css":"._CSS-ae-menu {\n  background: var(--ae-ui-card-background);\n  font-size: 1rem;\n  border: var(--ae-border-width) solid var(--ae-border-color);\n  border-radius: var(--ae-border-radius);\n  padding: var(--ae-size-2) 0;\n  box-shadow: var(--ae-shadow-2);\n  transition: opacity .15s, visibility 1s;\n}\n\n._CSS-ae-menu-list {\n  list-style: none;\n  padding: var(--ae-size-1) 0;\n  margin: 0;\n}\n._CSS-ae-menu-item {\n  padding:var(--ae-size-1); \n  margin:0;\n  font-size: var(--ae-font-size-3);\n}\n._CSS-ae-menu:focus {\n  outline: none;\n}\n._CSS-ae-menu-item:hover {\n  background: var(--ae-background-200);\n  cursor: pointer;\n}\n\n._CSS {\n  border-radius: var(--ae-border-radius);\n  position: relative;\n}\n\n._CSS-selectable {\n  width: 100%;\n}","controller":"class Controller {\n  async init() {\n    this.MOVE_SETTINGS_FORM = 'f55ad852-a338-4c03-97aa-5f172a68d437'\n\n    this._touchTimer = null\n    this._touchMoveHandler = null\n\n    if (params.name) {\n      console.warn('[design:selectable] param name is deprecated, use designName')\n    }\n\n    locals.availableMenuEntries = []\n    locals.canSelect = false\n    locals.canMove = false\n    locals.isSelected = false\n\n    this._onSelectionChange = async () => {\n      await this._updateIsSelected()\n    }\n\n    const selected = await this._updateIsSelected()\n\n    if (selected) {\n      packages.SelectionManager.addOnChangeHandler(this._onSelectionChange)\n    }\n\n    watchParam('forceWatchSelection', () => {\n      if (params.forceWatchSelection === true) {\n        packages.SelectionManager.addOnChangeHandler(this._onSelectionChange)\n        return\n      }\n      \n      if (!locals.isSelected) {\n        packages.SelectionManager.removeOnChangeHandler(this._onSelectionChange)\n      }\n    })\n\n    watchParam('forceSelection', (newValue) => {\n      locals.isSelected = newValue\n    })\n\n    this.watchTouchmove()\n  }\n\nasync watchTouchmove() {\n  await Aeppic.nextRenderPass()\n  await Aeppic.nextRenderPass()\n  \n  this._touchMoveHandler = (event) => {\n    if (this._touchTimer) {\n      clearTimeout(this._touchTimer)\n      this._touchTimer = null\n    }\n\n    this.closeContextMenu()\n  }\n\n  $refs.move && $refs.move.$root && $refs.move.$root.$el && $refs.move.$root.$el.addEventListener('touchmove', this._touchMoveHandler)\n}\n\n  _handlerHandledByThisInstance() {\n    return !params.forceWatchSelection\n  }\n\n  async _updateIsSelected() {\n    const isSelected = await packages.SelectionManager.includes(document.id)\n\n    locals.isSelected = isSelected\n\n    return isSelected\n  }\n\n  async _hasAccess() {\n    // check Vollberechtigung first (for non workflow documents)\n    if (await Aeppic.canEdit(document)) {\n      return true\n    }\n\n    // then check documents in RELEASE_PROCESS workflow \n    const RELEASE_PROCESS = 'bbd555c5-a65d-484e-9fed-7564a1c21ebc'\n    locals.workflow = new packages.DocumentWorkflow(document.id, { workflow: RELEASE_PROCESS, Aeppic })\n \n    if (!(await locals.workflow.isAvailable())) {\n      return false\n    }\n\n    const configuration = await locals.workflow._getWorkflowConfiguration()\n\n    const actorEditorId = '09dfd0d2-08b5-41dd-965d-329c3807ecd2'\n    const right = await Aeppic.findOne(`p:${configuration.id} f.id:d4d31804-1519-4866-8808-52a4f656a041 data.actors:${actorEditorId}`)\n\n    return await Aeppic.hasAccess(document, right)\n  }\n\n  async toggleSelection() {\n    console.log('toggleSelection', params.selectionId)\n    if (await this._hasAccess() === false) {\n      return\n    }\n\n    if (params.selectionId) {\n      const selection = packages.Selections.create(params.selectionId)\n\n      if (selection.includes(document.id)) {\n        locals.isSelected = false\n        selection.remove(document.id)\n      } else {\n        selection.add(document.id)\n        locals.isSelected = true\n      }\n\n      if (!selection.result()) {\n        packages.Selections.delete(params.selectionId)\n      }\n\n      return\n    }\n\n    const canMove = await this.canMove(document)\n\n    if (!canMove) {\n      return\n    }\n\n    if (locals.isSelected) {\n      locals.isSelected = false\n      \n      packages.SelectionManager.remove(document.id)\n\n      if (this._handlerHandledByThisInstance) {\n        packages.SelectionManager.removeOnChangeHandler(this._onSelectionChange)\n      }\n    } else {\n      locals.isSelected = true\n\n      packages.SelectionManager.add(document.id)\n\n      if (this._handlerHandledByThisInstance) {\n        packages.SelectionManager.addOnChangeHandler(this._onSelectionChange)\n      }\n    }\n  }\n\n  touchStart(event) {\n    if (this._touchTimer) {\n      clearTimeout(this._touchTimer)\n    }\n\n    if (!event.touches[0]) {\n      return\n    }\n\n    // FIXME: preventDefault will prevent any native (desktop) contextmenu BUT also prevents scrolling\n    // event.preventDefault()\n\n    this._touchTimer = setTimeout(() => {\n      this._touchTimer = null\n\n      event.preventDefault()\n      this.showContextmenu(event.touches[0])\n    }, 500)\n  }\n\n  touchEnd(event) {\n    if (this._touchTimer) {\n      clearTimeout(this._touchTimer)\n      this._touchTimer = null\n\n      $emit('selected', document)\n    }\n  }\n\n  async showContextmenu(clickEvent) {\n   if (await this._hasAccess() === false) {\n      return\n    }\n\n    // TODO: make move and select independent of each other. A selection could also be used for deletion\n    const [ canMove, hasContextMenuDesign ] = await Promise.all([this.canMove(document), Aeppic.findOne(`p:${document.f.id} f.id:design-form data.name:contextmenu__entries`)])\n\n    locals.availableMenuEntries = []\n\n    if (canMove) {\n      locals.canMove = true\n      locals.canSelect = true\n    } else{\n      locals.canMove = false\n      locals.canSelect = false\n    }\n\n    if (canMove || hasContextMenuDesign) {\n      $refs.contextmenu.showAtPosition(clickEvent)\n    }\n  }\n\n  async canMove(targetDocument) {\n    const moveSettings = await Aeppic.findOne(`p:${document.f.id} f.id:${this.MOVE_SETTINGS_FORM}`)\n    if (!moveSettings) {\n      return false\n    }\n\n    if (moveSettings.data.actions && moveSettings.data.actions.length) {\n      const results = await Aeppic.Actions.run(moveSettings.data.actions, { document: document })\n      const canMove = results.every(actionResult => actionResult.ok && actionResult.value)\n\n      return canMove\n    }\n\n    return true\n  }\n\n  closeContextMenu() {\n    $refs.contextmenu && $refs.contextmenu.close()\n  }\n\n  destroy() {\n    packages.SelectionManager.removeOnChangeHandler(this._onSelectionChange)\n\n    if (this._touchMoveHandler) {\n      $refs.move && $refs.move.$root && $refs.move.$root.$el && $refs.move.$root.$el.removeEventListener('touchmove', this._touchMoveHandler)\n    }\n\n    this.closeContextMenu()\n\n    if (params.selectionId) {\n      const selection = packages.Selections.get(params.selectionId)\n      if (selection) {\n        selection.remove(document.id)\n      }\n    }\n  }\n}\n\n","packages":[{"id":"d648078c-4579-4023-a4ec-b7b9cf639b70","v":"d74941012254b9c7","text":"Selection Manager v2"},{"id":"9980d952-e898-413a-af84-051795281aca","v":"0160c43d3c878c2a","text":"Workflow"}],"aliases":[],"description":"# Description\n\nThis design is a wrapper-design which manages its state within the global SelectionManager. \n\n# Usage\n\n> Making the card-design selectable \n\n```html\n<ae-design :document=\"document\" name=\"selectable\" param-name=\"card\"></ae-design>\n```\n\n```html\n<div class=\"_CSS-card\" :style=\"{ background: params.isSelected ? 'blue' : '' }\">\n</div>\n```\n\nThe card design gets a parameter `isSelected` and should change is appearance accordingly, e.g. showing a blueish overlay if isSelected === true."},"locks":[],"created":{"at":"2018-12-18T09:04:52+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2024-06-21T14:36:32+02:00","by":"427610a9-39dc-4014-9176-5f72aeb23263","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720684627138,"ct":1720684627138,"a_depth":2,"a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"],"inheritedLocks":[null,null,null],"stamps":[],"previous":{"v":"eb9696be1cfa8f36","f":{"id":"design-form","v":"9bfe8e0cd909c1f0","text":"Design"}},"meta":{"modified":{"at":"2024-07-11T09:57:07+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"138439c1-4a4c-48a6-a132-79054207c7d5","v":"7e0591dbfe7ebc51","p":"fallback-designs","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"selection-card","template":"<div class=\"_CSS-container\" :class=\"{ '_CSS-container--bordered': !params.noBorder && !params.withoutBorder }\">\n  <ae-design style=\"min-width: 0; flex: 1;\" name=\"search-card\" :document=\"document\" @selected=\"$emit('selected', $event)\" :param-minimized-info=\"true\" :params=\"controller.params\"></ae-design>\n  <ae-design v-if=\"!params.noRemove && !params.readonly\" name=\"ref-remove\" :document=\"document\" @remove=\"$emit('remove', $event)\"></ae-design>\n</div>\n","css":"._CSS-container {\n  flex: 1;\n  display: flex;\n  background: var(--ae-background);\n}\n\n._CSS-container--bordered {\n  border: var(--ae-border-width) solid var(--ae-border-color);\n  border-radius: var(--ae-border-radius);\n}","controller":"get params() {\n  return { ... params, noBorder: true }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2018-12-18T09:04:54+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2020-06-30T09:30:13+00:00","by":"8e6c22aa-8c69-4ff8-919a-7032841cf636","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720684627138,"ct":1720684627138,"a_depth":2,"a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"],"inheritedLocks":[null,null,null],"stamps":[],"previous":{"v":"14bbffdfcc6e4d55","f":{"id":"design-form","v":"9bfe8e0cd909c1f0","text":"Design"}},"meta":{"modified":{"at":"2024-07-11T09:57:07+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"0ef2a261-cba9-494a-9a28-38d5abc5d89b","v":"74e620e0cac2a714","cloneOf":{"id":"0f2373f6-fc4f-4680-a80c-a8f6bb09792d","v":"874b66f8b6219302","text":"selection:copyable-mailtos"},"originalCloneOf":{"id":"0f2373f6-fc4f-4680-a80c-a8f6bb09792d","v":"874b66f8b6219302","text":"selection:copyable-mailtos"},"previous":{"v":"210275fd18be3ba7"},"p":"b433eabd-abe6-4564-940f-a918f71037fb","f":{"id":"design-form","v":"3385ac6766f32638","text":"Design"},"data":{"name":"selection:copyable-mailtos","template":"<div class=\"flex gap-1 text-2xl mb-4\">\n  <div>\n  Mail-Adressen für\n  </div>\n  <ae-design name=\"title\" :document=\"document\"></ae-design>\n</div>\n\n<div v-for=\"key of locals.resultKeysToGenerateByEntries\">\n  <section class=\"ae-form-cell\">\n    <label class=\"ae-form-cell__label\">\n      {{key}} ({{ locals.mailtos[key + 'Entries'].length }})\n    </label>\n    <textarea readonly=\"true\" :value=\"locals.mailtos[key]\" rows=\"10\"></textarea>\n  </section>\n</div>\n","css":"","controller":"class Controller {\n  init() {\n    locals.units = []\n    locals.resultKeysToGenerateByEntries = [\n      'all',\n      'anfrage',\n      'aktiv',\n      'gekuendigt',\n      'ehemalig',\n      'archiv',\n    ]\n\n    locals.mailtos = this._buildResultObject()\n\n    this.update()\n  }\n\n  async update() {\n    const selection = packages.Selections.get(document.f.id)\n    if (!selection) {\n      locals.units = []\n      return\n    }\n\n    const units = await Aeppic.find(selection.result(), { size: 9999 })\n    locals.units = units\n\n    locals.mailtos = await this.getMailtos()\n    console.log(locals.mailtos)\n  }\n\n  _buildResultObject() {\n    const result = {\n      ...Object.assign(\n        {}, \n        ...locals.resultKeysToGenerateByEntries.map(key => ({[`${key}`]: ''}))\n        ),\n      ...Object.assign(\n        {}, \n        ...locals.resultKeysToGenerateByEntries.map(key => ({[`${key}Entries`]: [] }))\n        ),\n    }\n\n    return result\n  }\n\n  async getMailtos() {\n    const result = this._buildResultObject()\n    \n    const tenants = await Aeppic.getAll(\n        locals.units.map(customer => {\n        return [...customer.data.mieter, ...customer.data.vorherigeMieter]\n      }).flat()\n    )\n  \n\n    console.log({tenants})\n  \n    for (const tenant of tenants) {\n      if (!tenant) {\n        continue\n      }\n\n      const { email1: email,  name } = tenant.data \n\n      if (!email) {\n        continue\n      }\n \n      const formattedEmail = `${name}<${email}>`\n\n      if (!formattedEmail) {\n        continue\n      }\n\n      result.allEntries.push(formattedEmail)\n\n      const status = tenant.data.status\n\n      if (status === 'ANFRAGE') {\n        result.anfrageEntries.push(formattedEmail)\n      } else if (status === 'AKTIV') {\n        result.aktivEntries.push(formattedEmail)\n      } else if (status === 'GEKUENDIGT') {\n        result.gekuendigtEntries.push(formattedEmail)\n      } else if (status === 'EHEMALIG') {\n        result.ehemaligEntries.push(formattedEmail)\n      } else if (status === 'ARCHIV') {\n        result.archivEntries.push(formattedEmail)\n      }\n    }\n\n    for (const key of locals.resultKeysToGenerateByEntries) {\n      result[key] = result[`${key}Entries`].join(',')\n    }\n\n    return result \n  }\n}\n  ","packages":[{"id":"d648078c-4579-4023-a4ec-b7b9cf639b70","v":"57181d8dce7ad69c","text":"Selection Manager v2"}],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-08-19T12:26:19+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-08-19T13:02:46+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1660914166344,"ct":1660911979259,"a_depth":4,"a":["apps","86189c5a-b9f4-445a-879f-d94574960df0","15292d56-6806-4263-b6d0-9194687203e1","b433eabd-abe6-4564-940f-a918f71037fb"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"0f2373f6-fc4f-4680-a80c-a8f6bb09792d","v":"f84c09528bc9207c","previous":{"v":"874b66f8b6219302"},"p":"5475727b-0e0c-412a-8452-23b9c5b242f2","f":{"id":"design-form","v":"3385ac6766f32638","text":"Design"},"data":{"name":"selection:copyable-mailtos","template":"<section class=\"ae-form-cell\">\n  <label class=\"ae-form-cell__label\">\n    Adressen ({{ locals.mailtos.allEntries.length }})\n  </label>\n  <textarea readonly=\"true\" :value=\"locals.mailtos.all\" rows=\"20\"></textarea>\n</section>\n","css":"","controller":"class Controller {\n  init() {\n    locals.documents = []\n    locals.mailtos = {\n      allEntries: [],\n      all: '',\n    }\n\n    this.update()\n  }\n\n  async update() {\n    const selection = packages.Selections.get(document.f.id)\n    if (!selection) {\n      locals.documents = []\n      return\n    }\n\n    const documents = await Aeppic.find(selection.result(), { size: 9999 })\n    locals.documents = documents\n\n    locals.mailtos = await this.getMailtos()\n    console.log(locals.mailtos)\n  }\n\n  async getMailtos() {\n    const result = {\n      all: '',\n      allEntries: [],\n    }\n\n    // const contacts = await Aeppic.getAll(locals.documents.map(customer => customer.data.kontakt.id))\n \n    for (const customer of locals.documents) {\n      if (!customer ) {\n        continue\n      }\n\n      const { email,  name } = customer.data \n\n      if (!email) {\n        continue\n      }\n\n      for (const singleEmail of email) {\n        if (!singleEmail) {\n          continue\n        }\n   \n        const formattedEmail = `${name}<${singleEmail}>`\n\n        if (!formattedEmail) {\n          continue\n        }\n\n        result.allEntries.push(formattedEmail)\n      }\n\n      for (const key of ['all']) {\n        result[key] = result[`${key}Entries`].join(',')\n      }\n    }\n\n    return result\n  }\n}\n","packages":[{"id":"d648078c-4579-4023-a4ec-b7b9cf639b70","v":"57181d8dce7ad69c","text":"Selection Manager v2"}],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-03-15T12:22:38+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-12-13T10:49:41+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1702464581407,"ct":1647346958051,"a_depth":4,"a":["apps","9d6ee173-26fe-4472-a271-7667f717094e","6743ef9a-c21b-443f-91b8-4dd86886ee8c","5475727b-0e0c-412a-8452-23b9c5b242f2"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"49368d3e-f811-43ef-8d69-e9bcb0fda038","v":"55b48b074731521a","previous":{"v":"2a32508b4c7f2479"},"p":"8fef472f-9220-484b-99cd-bb80f208f795","f":{"id":"design-form","v":"e37099c040ec46e9","text":"Design"},"data":{"name":"selection:copyable-mailtos","template":"<!-- TODO: it will deliver only the very first hit based on agencyAbbr. It this good? If not the detection algo of the businessrule to be present here, which is slow -->\n<button class=\"ae-button\" @click.stop=\"controller.toggleAgencyMail()\" style=\"width:100%;\">\n  <template v-if=\"locals.useLatestAgencyMail\">\n    <ae-icon class=\"fa fa-language\"></ae-icon>\n    Agentur E-Mail aus Agentur-Liste (1. Treffer nach Agenturkürzel)\n  </template>\n  <template v-else>\n    <ae-icon class=\"fa fa-user-plus\"></ae-icon>\n    Agentur E-Mail aus Bewerbung\n  </template>\n</button>\n\n<section class=\"ae-form-cell\">\n  <label class=\"ae-form-cell__label\">\n    Alle ({{ locals.mailtos.allEntries.length }})\n  </label>\n  <textarea readonly=\"true\" :value=\"locals.mailtos.all\" rows=\"10\"></textarea>\n</section>\n\n<section class=\"ae-form-cell\">\n  <label class=\"ae-form-cell__label\">\n    Ohne Agentur ({{ locals.mailtos.withoutAgencyEntries.length }})\n  </label>\n  <textarea readonly=\"true\" :value=\"locals.mailtos.withoutAgency\" rows=\"10\"></textarea>\n</section>\n<section class=\"ae-form-cell\">\n  <label class=\"ae-form-cell__label\">\n    Agenturen ({{ locals.mailtos.agencysEntries.size }})\n  </label>\n  <textarea readonly=\"true\" :value=\"locals.mailtos.agencys\" rows=\"10\"></textarea>\n</section> \n\n<section class=\"ae-form-cell\">\n  <label class=\"ae-form-cell__label\">\n    Agenturen OHNE E-MAIL ({{ locals.mailtos.agencysMissingEntries.size }})\n  </label>\n  <textarea readonly=\"true\" :value=\"locals.mailtos.agencysMissing\" rows=\"10\"></textarea>\n</section> \n","css":"","controller":"class Controller {\n  init() {\n    this.FORMS = {\n      Application: '009c0da4-718f-43d0-964a-647e30074d94',\n      AgencyAbbreviation: '2168bcf2-5523-4f2f-8053-7e7f8c3ceba8',\n    }\n  \n    locals.documents = []\n    locals.mailtos = {\n      allEntries: [],\n      all: '',\n      withoutAgencyEntries: [],\n      withoutAgency: '',\n      agencysEntries: [],\n      agencys: '',\n      agencysMissing: '',\n      agencysMissingEntries: []\n    }\n\n    this.update()\n  }\n\n  async update() {\n    const selection = packages.Selections.get(document.f.id)\n    if (!selection) {\n      locals.documents = []\n      return\n    }\n\n    const documents = await Aeppic.find(selection.result(), { size: 9999 })\n    console.log(documents)\n    locals.documents = documents.filter(d => d && d.f.id === this.FORMS.Application)\n\n    locals.mailtos = await this.getMailtos()\n    console.log(locals.mailtos)\n  }\n\n  async getMailtos() {\n    const abbrs = await Aeppic.find(`a:${document.a[0]} f.id:${this.FORMS.AgencyAbbreviation} `, { size: 9999 })\n\n    const result = {\n      all: '',\n      allEntries: [],\n      withoutAgencyEntries: [],\n      withoutAgency: '',\n      agencys: '',\n      agencysEntries: new Set(),\n      agencysMissing: '',\n      agencysMissingEntries: new Set()\n    }\n\n    for (const doc of locals.documents) {\n      const { email, agencyAbbreviation, name } = doc.data\n      // console.log(email, agencyAbbreviation, name)\n      const formattedEmail = `${name}<${email}>`\n\n      if (!formattedEmail) {\n        continue\n      }\n\n      result.allEntries.push(formattedEmail)\n\n      \n      let documentWithEmailAndAbbr = doc\n\n      const isZavModel = agencyAbbreviation && agencyAbbreviation.trim() === 'ZAV'\n\n      if (!isZavModel && locals.useLatestAgencyMail) {\n        documentWithEmailAndAbbr =  abbrs.find(abbr => abbr.data.agencyAbbreviation === agencyAbbreviation) || doc\n      }\n\n      console.log(documentWithEmailAndAbbr)\n\n      if (isZavModel) {\n        result.withoutAgencyEntries.push(formattedEmail)\n      } else {\n        const agencyEmail = documentWithEmailAndAbbr.data.agencyEmail\n        const agencyAbbr = documentWithEmailAndAbbr.data.agencyAbbreviation\n\n        if (agencyEmail) {\n          const formattedAgencyEmail = `${agencyAbbr}<${agencyEmail}>`\n          result.agencysEntries.add(formattedAgencyEmail)\n        } else {\n          result.agencysMissingEntries.add(agencyAbbr)\n        }\n      }\n    }\n\n    for (const key of ['all', 'withoutAgency']) {\n      result[key] = result[`${key}Entries`].join(',')\n    }\n\n    result.agencys = [...result.agencysEntries].join(',')\n    result.agencysMissing = [...result.agencysMissingEntries].join(',')\n\n    return result\n  }\n\n  async toggleAgencyMail() {\n    locals.useLatestAgencyMail = !locals.useLatestAgencyMail\n\n    await this.update()\n  }\n}\n","packages":[{"id":"d648078c-4579-4023-a4ec-b7b9cf639b70","v":"2717577f8f96b28a","text":"Selection Manager v2"}],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-06-18T12:29:34+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2021-07-27T08:56:14+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1627376174027,"ct":1624019374559,"a_depth":4,"a":["apps","3fbe0efd-713a-457a-a34c-3a12aa19d6bb","0fb162f4-0f78-4c1e-aad2-43c27e6d98cb","8fef472f-9220-484b-99cd-bb80f208f795"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"fe9f9f8c-9394-432d-9d04-c37547a43774","v":"9f3abb7cab6193e8","p":"fallback-designs","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"send-notification-buttons","template":"<template v-if=\"locals.enabled\">\n  <button class=\"ae-button\" title=\"Ping senden\" @click.stop=\"$refs.sendPing.$emit('show')\">\n    <ae-icon class=\"fad fa-comment-plus\"></ae-icon>\n  </button>\n  <button class=\"ae-button\" title=\"Wiedervorlage einrichten\" @click.stop=\"$refs.followup.$emit('show')\">\n    <ae-icon class=\"fad fa-alarm-clock\"></ae-icon>\n  </button>\n\n  <ae-layout layout-id=\"f4d43a5a-2177-49cc-9a2b-bec78a0ab12a\" :param-document=\"document\" ref=\"sendPing\"></ae-layout>\n  <ae-layout layout-id=\"6660c0f5-a770-41a3-8bce-5210f8c0bba7\" :param-document=\"document\" ref=\"followup\"></ae-layout>\n</template> \n\n\n","css":"._CSS {\n  display: flex;\n}\n\n._CSS-popup {\n  padding: var(--ae-size-2) 0;\n  background-color: white;\n  box-shadow: var(--ae-shadow-2);\n  transition: opacity .15s, visibility 1s;\n  border-radius: var(--ae-border-radius);\n  display: flex;\n  flex-flow: column;\n}\n","controller":"class Controller {\n  async init() {\n    this.noEditForms = [\n      'c69a0c1c-6c53-40c2-87e8-5ace866bf1df', // Unternehmen\n      'repository-folder-form',\n      'root-folder-form',\n      '81939b86-a48e-480e-afd1-cb2907568550', // Security\n      'account',\n      'group',\n      '88b1f60e-71f6-46f5-94ea-3d7bbe972950',\n      '4c1ddccd-004a-4467-bd14-9cf590ef58eb', // Profilseite\n      'bf8eb298-3431-4138-a1e1-e748e05f3f37', // Search Result\n      '4f3c48aa-8d12-4dfa-8a66-064d8a851a5b', // Personalordner\n   // , // Arc.Projekte.Projekt.Leistung.Aufgabe\n      'fb822f2f-880c-4676-be8b-cc557e822bc4', // Arc.Projekte.Stammdaten.Leistungen\n    ]\n\n    locals.enabled = false\n    locals.enabled = await Aeppic.Preferences.getSetting('bizpin:generic:enableNotificationButtons')\n\n    if (!locals.enabled) {\n      return\n    }\n\n    locals.enabled = Aeppic.Account && !Aeppic.Account.data.isGroupAccount && document.a_depth > 1 && !this.noEditForms.find(f => f === document.f.id)\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-05-08T09:00:44+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2020-12-10T13:03:59+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720684627138,"ct":1720684627138,"a_depth":2,"a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"],"inheritedLocks":[null,null,null],"stamps":[],"previous":{"v":"a6ae4a73d359b4d5","f":{"id":"design-form","v":"9bfe8e0cd909c1f0","text":"Design"}},"meta":{"modified":{"at":"2024-07-11T09:57:07+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"dc5d95a9-3e09-41b0-8d50-68a708c1cb5a","v":"2b76375ce63d5b54","p":"fallback-designs","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"send-ping-button","template":"<button ref=\"button\" class=\"ae-button\" title=\"Von diesem Dokument eine Benachrichtigung senden\" @click.stop=\"controller.showSelector()\">\n  <ae-icon class=\"fa fa-comment-plus\"></ae-icon>  Ping senden\n</button>\n\n<ae-dialog ref=\"dialog\" @close=\"() => controller?.generateNewData()\">\n  <template #header=\"scope\">\n    <div class=\"_CSS-dialog__header\">\n      <span>Ping senden</span>\n\n      <button class=\"ae-button\" @click.stop=\"scope.close()\">\n        <ae-icon class=\"fa fa-times\"></ae-icon>\n      </button>\n    </div>\n  </template>\n  \n  <template #body=\"scope\">\n    <div class=\"_CSS-dialog__body\">\n      <section class=\"_CSS-line ae-form-cell ae-control-container\">\n        <label class=\"ae-form-cell__label\">Senden an</label>\n        <div class=\"ae-form-cell__input class _CSS-line__input\">\n          <ae-design v-if=\"locals.data.employee\" name=\"avatar--tiny\" :document=\"locals.data.employee\"></ae-design>\n          <ae-design v-if=\"locals.data.employee\" name=\"title\" :document=\"locals.data.employee\" style=\"margin: 0 var(--ae-size-2);\"></ae-design>\n\n          <ae-layout layout-id=\"36649f27-5869-49e6-9b49-3b5c3b9c795d\" :param-settings=\"locals.selectorSettings\" :param-hide-path=\"true\" @selected=\"locals.data.employee = $event\"></ae-layout>\n        </div>\n\n      </section>\n\n      <section class=\"_CSS-line ae-form-cell ae-control-container\">\n        <label class=\"ae-form-cell__label\">Kommentar (optional)</label>\n        <textarea v-model=\"locals.data.comment\"></textarea>\n      </section>\n\n    </div>\n  </template>\n  <template #commands=\"scope\">\n    <section class=\"_CSS-dialog__actions\">\n      <button class=\"ae-button ae-button\" @click.stop=\"scope.close()\">Abbrechen</button>\n      <button class=\"ae-button ae-button--primary\" @click.stop=\"controller.sendNotification()\">\n        Senden\n      </button>\n    </section>\n  </template>\n</ae-dialog>","css":"._CSS {\n  display: inline-block;\n}\n\n._CSS-line {\n  display: flex;\n  flex-flow: column;\n}\n\n._CSS-line__input {\n  display: flex;\n  align-items: center;\n}\n\n._CSS-dialog__header {\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n}","controller":"class Controller {\n  init() {\n    locals.data = {}\n\n    this.FORMS = {\n      NotificationRequest: 'ddaa6921-770e-4a73-b8a4-b4a99abed24b',\n      Account: 'account',\n      Employee: 'd2ac3563-3c3f-4f02-b923-9b67abf98d10'\n    }\n\n    locals.selectorSettings = {\n      filter: {\n        base: `f.id: ${this.FORMS.Employee}`,\n        ancestorId: params.document.a[0]\n      }\n    }\n  }\n\n  generateNewData() {\n    locals.data = {\n      employee: null,\n      comment: ''\n    }\n  }\n\n  async showSelector() {\n    this.generateNewData()\n\n    $refs.dialog && $refs.dialog.show({ target: $refs.button })\n  }\n\n  async sendNotification() {\n    const profileId = locals.data.employee.id\n    const content = locals.data.comment || ''\n\n    await this._sendNotification(profileId, content)\n\n    $refs.dialog && $refs.dialog.close()\n  }\n\n  async _sendNotification(targetProfileId, content) {\n    const targetAccount = await Aeppic.findOne(`p:${targetProfileId} f.id:${this.FORMS.Account}`)\n\n    if (!targetAccount) {\n      return\n    }\n\n    const request = await Aeppic.new(this.FORMS.NotificationRequest, Aeppic.Account.id)\n\n    const form = await Aeppic.get(params.document.f.id)\n    const app = await Aeppic.asReference(form.a[1])\n\n    const newRequestData = {\n      name: 'translate:notifications:ping',\n      app,\n      category: params.document.f,\n      content: content || 'translate:notifications:ping:content',\n      accounts: [targetAccount],\n      document: await Aeppic.asReference(followup.data.document),\n      who: await Aeppic.asReference(Aeppic.Account)\n    }\n\n    request.data = newRequestData\n\n    console.log(request)\n    Aeppic.save(request)\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-05-08T09:00:44+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2023-01-16T14:51:16+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720684627138,"ct":1720684627138,"a_depth":2,"a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"],"inheritedLocks":[null,null,null],"stamps":[],"previous":{"v":"be3d6b8ddfe060fa","f":{"id":"design-form","v":"9bfe8e0cd909c1f0","text":"Design"}},"meta":{"modified":{"at":"2024-07-11T09:57:07+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"00251950-5576-44e6-91e3-098bde258781","v":"c8845fe993d85d7f","previous":{"v":"bf9f9d7f848657cb"},"p":"5150f703-e93a-4e54-a998-a06c0e962e71","f":{"id":"design-form","v":"3385ac6766f32638","text":"Design"},"data":{"name":"serial-number","template":"<span v-if=\"locals.position != null\">{{locals.position}}</span>\n","css":"","controller":"class Controller {\n  async init() {\n    locals.position = 0\n\n    Aeppic.watch(document.p, newParent => this.updatePositionInParent(newParent))\n    this.updatePositionInParent(await Aeppic.get(document.p))\n  }\n\n  async updatePositionInParent(parent) {\n    locals.position = parent.data.anlagen.findIndex(a => a.id === document.id) + 1\n  }\n}\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-03-04T10:28:26+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-04-01T08:11:42+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1648800702915,"ct":1646389706221,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","5150f703-e93a-4e54-a998-a06c0e962e71"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"13908527-fc07-4552-b03e-f4335d225ee7","v":"initial","p":"0a401e72-7ef0-40f4-ac90-360b8694a2aa","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"serial-numbers","template":"<ae-design v-for=\"sn of data.serialNumbers\" :document=\"sn\" name=\"ref-card\" :param-no-remove=\"true\">\r\n</ae-design>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-11-02T09:38:38+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-11-02T09:38:38+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1635845918263,"ct":1635845918262,"a_depth":4,"a":["apps","781ff5de-69db-49dc-99f0-f328b308cd7d","dbd0bd68-3479-4032-9303-9d51615c27a7","0a401e72-7ef0-40f4-ac90-360b8694a2aa"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"736de70e-9ad5-4df6-9436-5bd08b92a609","v":"initial","p":"0a401e72-7ef0-40f4-ac90-360b8694a2aa","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"serial-numbers-check","template":"<ae-icon v-show=\"locals.allRequiredFilled\" title=\"All serial numbers filled. Documentation valid.\" style=\"color:green\" class=\"fa fa-check\"></ae-icon>\r\n<ae-icon v-show=\"!locals.allRequiredFilled\" title=\"NOT all serial numbers filled. Documentation invalid.\" style=\"color:red\" class=\"fa fa-exclamation-triangle\"></ae-icon>","css":"","controller":"init() {\r\n  Aeppic.subscribe(`a:${document.id}`, async () => {\r\n    const serials = await Aeppic.getAll(data.serialNumbers)\r\n\r\n    locals.allFilled = true\r\n    locals.allRequiredFilled = true\r\n\r\n    for (const s of serials) {\r\n      const hasTextSerial = !!s.data.serial.trim() \r\n      const hasPhoto = !!s.data.photo.dataUrl\r\n\r\n      if (!hasTextSerial && !hasPhoto) {\r\n        debugger\r\n        locals.allFilled = false\r\n\r\n        if (s.data.required) {\r\n          locals.allRequiredFilled = false\r\n        }\r\n        break \r\n      }  \r\n    }\r\n  })\r\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-11-02T09:38:38+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-11-02T09:38:38+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1635845918317,"ct":1635845918317,"a_depth":4,"a":["apps","781ff5de-69db-49dc-99f0-f328b308cd7d","dbd0bd68-3479-4032-9303-9d51615c27a7","0a401e72-7ef0-40f4-ac90-360b8694a2aa"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"ffceaa52-7c7b-4a4a-a270-92e660fa012a","v":"initial","previous":{"v":""},"p":"3f20614c-6274-4bb2-bd92-fde0ec668306","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"short","applies":"","template":"<div >\n    <strong>{{data.zaehlerstand}} h</strong> ({{document.modified.at | amDateFormat:'DD.MM.YYYY HH:mm'}})\n    \n</div>","css":"","controller":"","packages":[]},"locks":[],"lockRefs":[],"created":{"at":"2018-02-06T09:48:19+01:00","by":"","from":"","client":"server"},"modified":{"at":"2018-02-06T09:48:19+01:00","by":"","from":"","client":"server"},"t":1517906899218,"ct":1517906899218,"a_depth":4,"a":["apps","b791df37-6eef-4a3e-9066-1b79e0bdad31","35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f","3f20614c-6274-4bb2-bd92-fde0ec668306"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"158e1b19-4a32-4378-b6c3-a5d9ad6b4646","v":"6f599ccf11bf8d3c","previous":{"v":"1306fdb0917a5920"},"p":"530cb8ec-47ef-4d15-9257-1d548798f5fe","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"sidebar-info","template":"<div class=\"flex flex-wrap gap-1 mt-1\">\n  <ae-design v-for=\"image of data.image\" :key=\"image.id\" name=\"thumbnail\" :document=\"image\"></ae-design> \n</div>\n\n<ae-layout layout-id=\"b7bd3ae4-ed59-46e9-975c-400ee9ea1aca\" :param-document=\"locals.image\" param-field-name=\"datei\"></ae-layout>\n\n<div class=\"flex flex-col gap-1 pl-1 pr-2 mt-2\">\n  <span class=\"text-sm text-black/60\">Änderungen</span>\n<ae-design name=\"timeline-entry,title\" :document=\"stamp\" v-for=\"stamp of locals.stamps\"></ae-design>\n\n<!--\n{{locals.stamps}}\n-->\n\n</div>\n<!-- <div class=\"grid grid-cols-2 mt-1 mb-1 flex-wrap\">\n  <template\n    v-for=\"field of locals.fields\" \n    >\n    <span class=\"bg-slate-200 border-2 border-r-0 border-b-0 border-slate-400 p-1\" v-show=\"controller.mapToLabel(field.name)\" :title=\"'Field:' + field.name\">\n      {{controller.mapToPlaceholder(field.name)?.label}}\n    </span>\n    <span class=\"bg-slate-300 border-2 border-b-0 border-slate-400 p-1\" v-show=\"controller.mapToLabel(field.name)\">\n        {{controller.mapToLabel(field.name)}}\n    </span>\n  </template>\n</div>\n -->\n","css":"._CSS {\n  display: flex;\n  flex-direction: column;\n  border: 1px solid transparent;\n  transition: all cubic-bezier(0.075, 0.82, 0.165, 1);\n}\n\n._CSS:hover {\n  cursor:pointer;\n  background-color: aqua;\n  border-color: rgb(51, 196, 228);\n}","controller":"async init() { \n  locals.form = null\n  locals.fields = []\n  locals.image = null\n  locals.form = await Aeppic.getFormForDocument(document)\n  locals.fields = Object.values(locals.form?.info.fields).filter(f => f.subType === 'select' || f.subType == 'text' || f.subType === 'number')\n  locals.image = await Aeppic.get(document.data.image)\n \n  Aeppic.watch(document, async () => {\n    locals.image = await Aeppic.get(document.data.image)\n  })\n\n  const filter = []// ['description','name']\n\n  if (filter.length) {\n    locals.fields = locals.fields.filter(f => filter.includes(f.name))\n  }\n\n  locals.stamps = []\n  \n  if (document.data.anfrage.id) {\n    this.findAnfrageStamps = Aeppic.Query.descendants(document.data.anfrage.id).form('stamp')\n\n    Aeppic.watchMatchingDocuments(this.findAnfrageStamps, ()=>{ \n      this._refreshStamps();\n    })\n  }\n \n  this.findAuftragStamps = Aeppic.Query.descendants().form('stamp')\n  this._refreshStamps()\n}\n\nasync _refreshStamps() {\n  let stamps = [] \n\n  if (this.findAnfrageStamps) {\n    stamps.push(...await Aeppic.find(this.findAnfrageStamps, { size: 1000, sort: { field: 'data.created.at', descending: true }}))\n  } \n debugger  \n  stamps.push(...await Aeppic.find(this.findAuftragStamps, { size: 1000, sort: { field: 'data.created.at', descending: true }}))\n \n  const types = new Set(stamps.map(s=>s.data.type.id))\n  const hiddenTypes = await Aeppic.find(\n    Aeppic.Query.global().form('stamp-type').where('id').isOneOf(Array.from(types.values())).where('hidden').is(true),\n    { includeHidden: true }\n  ) \n  \n  locals.stamps = stamps.filter(s => hiddenTypes.some(t => t.id === s.type.id ))\n  locals.stamps.sort((a,b) => a.modified.at > b.modified.at)\n}\n\nmapToPlaceholder(fieldName) {\n  if (!locals.form) {\n    return\n  } \n\n  for (const placeholder of locals.form.info.placeholders) {\n    if (placeholder.field?.name === fieldName) {\n      return placeholder\n    }\n  }\n}\n\nmapToLabel(fieldName) {\n  if (!locals.form) {\n    return\n  } \n\n  const fieldInfo = locals.form.info.fields[fieldName]\n\n  const fieldValue = document.data[fieldName]\n\n  if (fieldInfo.subType === 'select') {\n    const option = fieldInfo.settings?.options?.find(o => o.value === fieldValue)\n\n    if (option) {\n      return option.display ?? option.value\n    }\n  } else if (fieldInfo.subType === 'text') {\n    return fieldValue\n  } else if (fieldInfo.subType === 'number') {\n    return fieldValue\n  } else {\n    console.log('Cannot map field', fieldName, 'is no select')\n  }\n  \n\n  return fieldValue\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-07-19T11:51:55+00:00","by":"427610a9-39dc-4014-9176-5f72aeb23263","client":"server","from":""},"modified":{"at":"2024-07-04T12:32:59+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720089179386,"ct":1689767515674,"a_depth":4,"a":["apps","deeef973-ce03-4557-bf75-75a059001767","e7de598c-6f5a-4ab4-a33b-213ca86e489d","530cb8ec-47ef-4d15-9257-1d548798f5fe"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"2587fae9-a7a4-4d48-87fb-2208a8027b35","v":"5c3268a9644d083b","cloneOf":{"id":"fbf41608-c644-49ef-bd00-87a829468b98","v":"f0b0c284644793da","text":"sidebar-info"},"originalCloneOf":{"id":"fbf41608-c644-49ef-bd00-87a829468b98","v":"f0b0c284644793da","text":"sidebar-info"},"previous":{"v":"0e7c8843a56f9f3c"},"p":"fbb5234f-66e1-4545-b087-ff1961f9ceab","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"sidebar-info","template":"<div class=\"flex flex-wrap gap-1 mt-1\">\n  <ae-design v-for=\"image of data.image\" :key=\"image.id\" name=\"thumbnail\" :document=\"image\"></ae-design> \n</div>\n\n<div class=\"flex flex-col gap-1 pl-1 pr-2 mt-2\">\n  <span class=\"text-sm text-black/60\">Änderungen - {{document.f.text}}</span>\n\n<ul role=\"list\" class=\"space-y-2 overflow-x-hidden\">\n  <li v-for=\"(stamp,index) of locals.stamps\"\n    class=\"relative flex gap-x-4\">\n    <div v-if=\"index < locals.stamps.length - 1\"\n      class=\"absolute -bottom-4 left-0 top-0 flex w-7 justify-center\">\n      <div class=\"w-px bg-gray-200\"></div>\n    </div>\n    <ae-design class=\"text-xs\" name=\"timeline-entry,title\" :document=\"stamp\"></ae-design>\n  </li>\n</ul>\n\n\n<!--\n{{locals.stamps}}\n-->\n\n</div>\n<!-- <div class=\"grid grid-cols-2 mt-1 mb-1 flex-wrap\">\n  <template\n    v-for=\"field of locals.fields\" \n    >\n    <span class=\"bg-slate-200 border-2 border-r-0 border-b-0 border-slate-400 p-1\" v-show=\"controller.mapToLabel(field.name)\" :title=\"'Field:' + field.name\">\n      {{controller.mapToPlaceholder(field.name)?.label}}\n    </span>\n    <span class=\"bg-slate-300 border-2 border-b-0 border-slate-400 p-1\" v-show=\"controller.mapToLabel(field.name)\">\n        {{controller.mapToLabel(field.name)}}\n    </span>\n  </template>\n</div>\n -->\n","css":"","controller":"async init() { \n  locals.form = null\n  locals.fields = []\n  locals.image = null\n  locals.form = await Aeppic.getFormForDocument(document)\n  locals.fields = Object.values(locals.form?.info.fields).filter(f => f.subType === 'select' || f.subType == 'text' || f.subType === 'number')\n  locals.image = await Aeppic.get(document.data.image)\n \n  Aeppic.watch(document, async () => {\n    locals.image = await Aeppic.get(document.data.image)\n  })\n \n  const filter = []// ['description','name']\n\n  if (filter.length) {\n    locals.fields = locals.fields.filter(f => filter.includes(f.name))\n  }\n\n  locals.stamps = [] \n  \n  if (document.id) {\n    this.findAnfrageStamps = Aeppic.Query.descendants(document.id).form('stamp')\n\n    Aeppic.watchMatchingDocuments(this.findAnfrageStamps, ()=>{ \n      this._refreshStamps();\n    })\n  }\n \n  this.findAuftragStamps = Aeppic.Query.descendants().form('stamp')\n  this._refreshStamps()\n}\n \nasync _refreshStamps() {\n  let stamps = [] \n \n  if (this.findAnfrageStamps) {\n    stamps.push(...await Aeppic.find(this.findAnfrageStamps, { size: 1000, sort: { field: 'data.created.at', descending: true }}))\n  }   \n \n  const types = new Set(stamps.map(s=>s.data.type.id))\n  const hiddenTypes = await Aeppic.find(\n    Aeppic.Query.global().form('stamp-type').where('id').isOneOf(Array.from(types.values())).where('hidden').is(true),\n    { includeHidden: true }\n  ) \n  \n  locals.stamps = stamps.filter(s => !hiddenTypes.some(t => t.id === s.data.type.id))\n  locals.stamps.sort((a,b) => b.modified.at.localeCompare(a.modified.at))\n}\n\nmapToPlaceholder(fieldName) {\n  if (!locals.form) {\n    return\n  } \n\n  for (const placeholder of locals.form.info.placeholders) {\n    if (placeholder.field?.name === fieldName) {\n      return placeholder\n    }\n  }\n}\n\nmapToLabel(fieldName) {\n  if (!locals.form) {\n    return\n  } \n\n  const fieldInfo = locals.form.info.fields[fieldName]\n\n  const fieldValue = document.data[fieldName]\n\n  if (fieldInfo.subType === 'select') {\n    const option = fieldInfo.settings?.options?.find(o => o.value === fieldValue)\n\n    if (option) {\n      return option.display ?? option.value\n    }\n  } else if (fieldInfo.subType === 'text') {\n    return fieldValue\n  } else if (fieldInfo.subType === 'number') {\n    return fieldValue\n  } else {\n    console.log('Cannot map field', fieldName, 'is no select')\n  }\n  \n\n  return fieldValue\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-07-05T13:57:57+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-07-17T17:14:30+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1721229270427,"ct":1720180677180,"a_depth":4,"a":["apps","deeef973-ce03-4557-bf75-75a059001767","e7de598c-6f5a-4ab4-a33b-213ca86e489d","fbb5234f-66e1-4545-b087-ff1961f9ceab"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"adc6afd9-0807-4dd2-96c2-1b9c895b2336","v":"initial","p":"6c4f14e0-a9ee-4f78-b75f-75249b074054","f":{"id":"design-form","v":"3385ac6766f32638","text":"Design"},"data":{"name":"sidebar-info","template":"<div @click=\"controller.editInDialog()\">\r\n  <span class=\"_CSS-date\" title=\"Received\">{{DateTime.fromISO(data.receivedAt).toLocaleString(DateTime.FULL_DATE)}}</span>\r\n  <div class=\"_CSS-items\">\r\n    <ae-design v-for=\"item of data.items\" :document=\"item\" name=\"ref-card\" :param-no-remove=\"true\" ></ae-design>\r\n  </div>\r\n</div>\r\n\r\n\r\n<ae-dialog ref=\"editLine\">\r\n  <template #body>\r\n    <ae-design v-if=\"locals.edit\" name=\"page\" :document=\"locals.edit\"></ae-design>\r\n  </template>\r\n  <template #commands>\r\n    <button class=\"ae-button\" @click=\"controller.storeItems()\" :disabled=\"!controller.canStore()\" title=\"Add items from this delivery into storage. Can only be performed when items not already in storage\">Add items to storage (IN DEV)</button>\r\n    <button class=\"ae-button ae-button--primary\" @click=\"controller.saveEdit()\">Save</button>\r\n  </template>\r\n</ae-dialog>","css":"._CSS {\r\n  border-left: 4px solid var(--ae-background-300);\r\n  padding-left:4px;\r\n}\r\n\r\n._CSS-date {\r\n  font-weight: bolder;\r\n  font-size:smaller;\r\n  margin-bottom:8px;\r\n  cursor:pointer;\r\n}\r\n\r\n._CSS-items {\r\n  pointer-events: none;\r\n  display:flex;\r\n  flex-direction: column;\r\n}\r\n","controller":"async editInDialog() {\r\n  locals.edit = await Aeppic.edit(document)\r\n  $refs.editLine.show()\r\n  //debugger\r\n  //await Aeppic.Commands.execute('3cc9b343-d8d5-433b-85d9-2bba87749b80', document)\r\n} \r\n\r\nasync saveEdit() {\r\n  Aeppic.save(locals.edit)\r\n  locals.edit = null\r\n  $refs.editLine.hide()\r\n}\r\n\r\ncanStore() {\r\n  return false\r\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-11-02T09:38:36+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-11-02T09:38:36+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1635845916932,"ct":1635845916932,"a_depth":4,"a":["apps","781ff5de-69db-49dc-99f0-f328b308cd7d","dbd0bd68-3479-4032-9303-9d51615c27a7","6c4f14e0-a9ee-4f78-b75f-75249b074054"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"fbf41608-c644-49ef-bd00-87a829468b98","v":"09a1c16fba4fa6eb","previous":{"v":"8725a218ed074eba"},"p":"9ae84206-e0bb-4d39-9200-066c2eaf0fe3","f":{"id":"design-form","v":"22a757f630104010","text":"Design"},"data":{"name":"sidebar-info","template":"<div class=\"flex flex-wrap gap-1 mt-1\">\n  <ae-design v-for=\"image of data.image\" :key=\"image.id\" name=\"thumbnail\" :document=\"image\"></ae-design> \n</div>\n\n<div class=\"flex flex-col gap-1 pl-1 pr-2 mt-2\">\n    <span class=\"text-sm text-black/60\">Änderungen - {{document.f.text}}</span>\n\n<ul role=\"list\" class=\"space-y-2 overflow-x-hidden\" v-if=\"locals.stamps\">\n  <li v-for=\"(stamp,index) of locals.stamps\"\n    class=\"relative flex gap-x-4\">\n    <div v-if=\"index < locals.stamps.length - 1\"\n      class=\"absolute -bottom-4 left-0 top-0 flex w-7 justify-center\">\n      <div class=\"w-px bg-gray-200\"></div>\n    </div>\n    <ae-design class=\"text-xs\" name=\"timeline-entry,title\" :document=\"stamp\"></ae-design>\n  </li>\n</ul>\n\n\n<!--\n{{locals.stamps}}\n-->\n\n</div>\n<!-- <div class=\"grid grid-cols-2 mt-1 mb-1 flex-wrap\">\n  <template\n    v-for=\"field of locals.fields\" \n    >\n    <span class=\"bg-slate-200 border-2 border-r-0 border-b-0 border-slate-400 p-1\" v-show=\"controller.mapToLabel(field.name)\" :title=\"'Field:' + field.name\">\n      {{controller.mapToPlaceholder(field.name)?.label}}\n    </span>\n    <span class=\"bg-slate-300 border-2 border-b-0 border-slate-400 p-1\" v-show=\"controller.mapToLabel(field.name)\">\n        {{controller.mapToLabel(field.name)}}\n    </span>\n  </template>\n</div>\n -->\n","css":"","controller":"async init() { \n  locals.form = null\n  locals.fields = []\n  locals.image = null\n  locals.form = await Aeppic.getFormForDocument(document)\n  locals.fields = Object.values(locals.form?.info.fields).filter(f => f.subType === 'select' || f.subType == 'text' || f.subType === 'number')\n  locals.image = await Aeppic.get(document.data.image)\n \n  Aeppic.watch(document, async () => {\n    locals.image = await Aeppic.get(document.data.image)\n  })\n \n  const filter = []// ['description','name']\n\n  if (filter.length) {\n    locals.fields = locals.fields.filter(f => filter.includes(f.name))\n  }\n\n  locals.stamps = [] \n  \n  if (document.id) {\n    this.findAnfrageStamps = Aeppic.Query.descendants(document.id).form('stamp')\n\n    Aeppic.watchMatchingDocuments(this.findAnfrageStamps, ()=>{ \n      this._refreshStamps();\n    })\n  }\n \n  this.findAuftragStamps = Aeppic.Query.descendants().form('stamp')\n  this._refreshStamps()\n}\n \nasync _refreshStamps() {\n  let stamps = [] \n \n  if (this.findAnfrageStamps) {\n    stamps.push(...await Aeppic.find(this.findAnfrageStamps, { size: 1000, sort: { field: 'data.created.at', descending: true }}))\n  }   \n \n  const types = new Set(stamps.map(s=>s.data.type.id))\n  const hiddenTypes = await Aeppic.find(\n    Aeppic.Query.global().form('stamp-type').where('id').isOneOf(Array.from(types.values())).where('hidden').is(true),\n    { includeHidden: true }\n  ) \n  \n  locals.stamps = stamps.filter(s => !hiddenTypes.some(t => t.id === s.data.type.id))\n  locals.stamps.sort((a,b) => b.modified.at.localeCompare(a.modified.at))\n}\n\nmapToPlaceholder(fieldName) {\n  if (!locals.form) {\n    return\n  } \n\n  for (const placeholder of locals.form.info.placeholders) {\n    if (placeholder.field?.name === fieldName) {\n      return placeholder\n    }\n  }\n}\n\nmapToLabel(fieldName) {\n  if (!locals.form) {\n    return\n  } \n\n  const fieldInfo = locals.form.info.fields[fieldName]\n\n  const fieldValue = document.data[fieldName]\n\n  if (fieldInfo.subType === 'select') {\n    const option = fieldInfo.settings?.options?.find(o => o.value === fieldValue)\n\n    if (option) {\n      return option.display ?? option.value\n    }\n  } else if (fieldInfo.subType === 'text') {\n    return fieldValue\n  } else if (fieldInfo.subType === 'number') {\n    return fieldValue\n  } else {\n    console.log('Cannot map field', fieldName, 'is no select')\n  }\n  \n\n  return fieldValue\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-06-27T20:00:12+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-07-17T17:14:42+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1721229282687,"ct":1721206352361,"a_depth":4,"a":["apps","deeef973-ce03-4557-bf75-75a059001767","e7de598c-6f5a-4ab4-a33b-213ca86e489d","9ae84206-e0bb-4d39-9200-066c2eaf0fe3"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"fccbc8e0-4af5-4aa9-8340-4a400db3a8d7","v":"9c695f7d93f4dd58","previous":{"v":"9f9e617a8c09ed9b"},"p":"c69a0c1c-6c53-40c2-87e8-5ace866bf1df","f":{"id":"design-form","v":"5910dbdd1c0b7469","text":"Design"},"data":{"name":"sidebar-panel--vertical","applies":"","description":"","template":"<ae-layout v-if=\"locals.tab\" :layout-id=\"locals.tab.data.contentLayout.id\" :param-document=\"params.pageDocument\"\nstyle=\"min-width: 0;flex: 1;\"></ae-layout> \n","css":"._CSS {\n  display: flex;\n}","controller":"async init() {\n  locals.tab = null\n\n  this._updateTab(params.tabId)\n\n  watchParam('tabId', () => {\n    this._updateTab(params.tabId)\n  })\n}\n\nasync _updateTab(tabId) {\n  locals.tab = await Aeppic.get(params.tabId)\n}","packages":[]},"locks":[],"created":{"at":"2018-11-02T10:05:26+00:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","from":"","client":"server"},"modified":{"at":"2018-11-19T16:15:34+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1542644134456,"ct":1541153126492,"a_depth":4,"a":["apps","8f8c9ed7-a7ed-4150-b162-92d6f19a05b0","526d9710-b2bd-4fa7-9341-d780ead102c1","c69a0c1c-6c53-40c2-87e8-5ace866bf1df"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"11ab6e4b-fdca-4e13-a8f3-703a2da76c5a","v":"6f2b6f49e47eac46","previous":{"v":"a3a8520842127e00"},"p":"c69a0c1c-6c53-40c2-87e8-5ace866bf1df","f":{"id":"design-form","v":"5910dbdd1c0b7469","text":"Design"},"data":{"name":"sidebar-vertical","applies":"","description":"","template":"<!-- <transition name=\"_CSS-fade\"> -->\n  <div v-if=\"params.open\" class=\"_CSS-sidebar _CSS-nav--expanded\">\n    <div class=\"_CSS-sidebar-spacer\">\n      <ae-design name=\"styled-title,title\" :document-id=\"params.tabId\"></ae-design>\n\n      <button class=\"ae-button _CSS-button-close\" @click=\"$emit('hide-sidebar')\">\n        <ae-icon class=\"fa fa-times\"></ae-icon>\n      </button>\n    </div>\n    <ae-design name=\"sidebar-panel--vertical\" \n                :document=\"document\"\n                :param-page-document=\"params.pageDocument\"\n                :param-tab-id=\"params.tabId\"\n                class=\"_CSS-sidebar-panel\"\n    ></ae-design>\n  </div>\n  \n<!-- </transition> -->\n","css":"/* ._CSS-fade-enter-active, ._CSS-fade-leave-active {\n  transition: opacity .3s;\n}\n._CSS-fade-enter, ._CSS-fade-leave-to {\n  opacity: 0;\n} */\n\n._CSS {\n  display: flex;\n  background: var(--ae-background-200);\n\n  padding-left: 3px;\n  overflow: hidden;\n}\n \n._CSS-action-button {\n  display:flex;\n  flex-direction:column;\n  align-items:center;\n}\n\n._CSS-logo {\n  flex:1;\n  transform: translateY(3px);\n  width:100%;\n  display: flex;\n  align-items: center;\n}\n\n._CSS-logo svg {\n  flex:1;\n}\n\n._CSS-nav {\n  flex: 1;\n  position: relative;\n  display: flex;\n  /* flex-direction: column; */\n  align-items: stretch;\n  justify-content: flex-start;\n  flex-flow: column nowrap;\n  min-width: 48px;\n  transition: all 0.1s ease-in;\n  border-left: solid 1px lightgray;\n}\n\n._CSS-top { \n  display:flex;\n  flex-direction: column;\n  justify-content: center; \n  align-items: stretch;\n  height:81px;\n  position:relative;\n  background-color: var(--ae-background-d1);\n}\n\n._CSS-top::before { \n  content:'';\n  background:rgba(255,255,255,0.0);\n  position:absolute;\n  top:0;\n  right:0;\n  bottom:0;\n  left:0;\n  pointer-events:none;\n}\n\n._CSS-nav-items {\n  display:flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n}\n._CSS-nav-item {\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  flex:1;\n\n  width: 100%;\n  height: 48px;\n}\n\n._CSS-nav-item:hover {\n  background: var(--ae-primary-d1);\n}\n\n._CSS-nav-item--active {\n  background: var(--ae-primary-d1);\n}\n\n._CSS_logo {\n  position:absolute;\n}\n\n._CSS-sidebar {\n  display: flex;\n  flex-flow: column;\n\n  width: 300px;\n  box-shadow: 0 0 0, 0 0 5px 0 rgba(0, 0, 0, 0.56);\n\n}\n\n._CSS-sidebar-spacer {\n  position: relative;\n  width: 100%;\n  height: 81px;\n  background-color: var(--ae-background);\n\n  \n  font-size: 1.3em;\n  color: var(--ae-foreground-l1);\n  font-weight: bold;\n  /* padding: 16px 0 0 var(--bp-page-content-padding); */\n  display: flex;\n  justify-content: center;\n  align-items: center;\n}\n \n._CSS-sidebar-panel {\n  flex: 1;\n  padding: 3px;\n  background-color: var(--ae-background-100);\n}\n\n._CSS-sidebar-panel__active-title--vertical {\n  position: relative;\n  height: 44px;\n  background-color: rgb(249, 249, 249);\n}\n\n._CSS-nav-items-spacer {\n  flex: 1;\n}\n\n._CSS-button-close {\n  position: absolute;\n  right: 10px;\n  top: 10px;\n  padding: 10px;\n  margin: -10px;\n  font-size: var(--ae-font-size-4);\n}","controller":"class Controller {\r\n  async init() {\r\n    locals.refresh = 0\r\n    locals.showExpanded = false\r\n  }\r\n\r\n  expand() {\r\n    const showExpanded = !locals.showExpanded\r\n\r\n    // if (showExpanded) {\r\n    //   $refs.container.parentElement.classList.add('ae-left-panel--expanded')\r\n    // } else {\r\n    //   $refs.container.parentElement.classList.remove('ae-left-panel--expanded')\r\n    // }\r\n\r\n    locals.showExpanded = showExpanded\r\n  \r\n\r\n    // Aeppic.LocalStorage.setValue('bp-sidebar--expanded', locals.showExpanded ? 'expanded': '')\r\n  }\r\n\r\n  toggleSidebar(tabId) {\r\n    console.log(tabId)\r\n    // if (showExpanded) {\r\n    //   $refs.container.parentElement.classList.add('ae-left-panel--expanded')\r\n    // } else {\r\n    //   $refs.container.parentElement.classList.remove('ae-left-panel--expanded')\r\n    // }\r\n\r\n    // Aeppic.LocalStorage.setValue('bp-sidebar--expanded', locals.showExpanded ? 'expanded': '')\r\n\r\n    if (!tabId) {\r\n      locals.showExpanded = true\r\n      locals.sidebarTabId = locals.tabs[0].id\r\n      return\r\n    }\r\n\r\n    if (tabId === locals.sidebarTabId) {\r\n      locals.showExpanded = false\r\n      locals.sidebarTabId = ''\r\n    } else {\r\n      locals.sidebarTabId = tabId\r\n      locals.showExpanded = true\r\n    }\r\n  }\r\n\r\n  closeToolbar() {\r\n    locals.showExpanded = false\r\n    locals.sidebarTabId = ''\r\n  }\r\n}\r\n\r\n","packages":[]},"locks":[],"created":{"at":"2018-11-02T10:26:04+00:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","from":"","client":"server"},"modified":{"at":"2019-05-03T13:06:33+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1556888793827,"ct":1541154364048,"a_depth":4,"a":["apps","8f8c9ed7-a7ed-4150-b162-92d6f19a05b0","526d9710-b2bd-4fa7-9341-d780ead102c1","c69a0c1c-6c53-40c2-87e8-5ace866bf1df"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"ab468ac0-2d1d-469e-b7f9-df8f9e538257","v":"c8ae6d5b5303fccc","p":"form","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"simple-form-designer","template":"<div flex layout=\"column\">\n  <div layout=\"row\" flex>\n    <div rs-fullscreen-container=\"definitionView\" layout=\"column\" flex class=\"leftcolumn\">\n      <h1><small>Definition</small></h1>\n      <md-content layout=\"column\" flex>\n        <rs-form document=\"document\" section-id=\"Info\" with-title=\"false\"></rs-form>\n      </md-content>\n    </div>\n    <div layout=\"column\" flex>\n      <h1><small>Preview</small></h1> \n      <md-content layout=\"column\" flex>\n        <!--rs-form form-definition=\"{{document.data.definition}}\" defaults=\"true\"></rs-form-->\n        <rs-tabbed-form layout=\"column\" flex form-definition=\"{{document.data.definition}}\" defaults=\"true\" readonly=\"false\"></rs-tabbed-form>\n      </md-content>\n    </div>\n  </div>\n</div>\n\n\n\n\n\n\n<!-- <div>\n  <div ng-if=\"$root.account.id=='emergency-account' && document.v == 0\" layout=\"row\">\n    <md-input-container flex>\n      <label>Document-Id (change with care!)</label>\n      <input type=\"text\" ng-init=\"customDocumentId = document.id\" ng-model=\"customDocumentId\" aria-label=\"Document id\" ng-change=\"$rsDialog.changeDocumentId(document,customDocumentId)\" ng-model-options=\"{ updateOn: 'default blur', debounce: { default: 500, blur:0 } }\">\n    </md-input-container>\n  </div>\n  <div layout=\"row\">\n    <div flex>\n      <h1><small>Definition</small></h1>\n      <div layout-padding>\n        <div>\n            <rs-form document=\"document\" section-id=\"Info\" with-title=\"false\"></rs-form>\n       </div>\n      </div>\n    </div>\n    <div flex>\n      <h1><small>Preview</small></h1> \n      <md-content>\n        <rs-tabbed-form flex form-definition=\"{{document.data.definition}}\" defaults=\"true\" readonly=\"false\"></rs-tabbed-form>\n      </md-content>\n    </div>\n  </div>\n</div> -->","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2017-08-23T08:24:50+02:00","by":"","from":"","client":"import"},"modified":{"at":"2017-08-23T08:24:50+02:00","by":"","from":"","client":"import"},"t":1719473826913,"ct":1719473826913,"a_depth":3,"a":["system","system-forms","form"],"a_forms":["system-folder-form","repository-folder-form","form"],"inheritedLocks":[null,null,null,null],"stamps":[],"previous":{"v":"bad3a79c89560885","f":{"id":"design-form","v":"a165c0cf48b0e2a5","text":"Design"}},"meta":{"modified":{"at":"2024-06-27T07:37:06+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"e5ffba8f-b0f1-4d98-bc84-bc631f6754e7","v":"c5e95f43f55996fe","previous":{"v":"57be3ff85d344b58"},"p":"6d164aff-df9b-470d-9632-cfb6f5892509","f":{"id":"design-form","v":"24435d748c76f819","text":"Design"},"data":{"name":"small-card","template":"<div class=\"_CSS-container\" @click.stop=\"locals.deleted ? '' : $emit('selected', document)\">\n  <div class=\"_CSS-card\" :class=\"{ '_CSS-card--undone': !data.read}\">\n    <div class=\"_CSS-card__row\">\n\n      <div class=\"_CSS-card__who\">\n        <ae-design v-if=\"data.who.id\" name=\"avatar--tiny\" param-design-name=\"avatar--resizes-with-font\" :document=\"data.who\"></ae-design>\n        <div v-else title=\"Erstellt vom System\" style=\"color:var(--ae-background-700);\">\n          <ae-icon class=\"fa fa-user-cog\"></ae-icon>\n        </div>\n      </div>\n\n      <div v-if=\"!locals.deleted\" class=\"_CSS-card__title\">\n        <ae-design name=\"notification-title,title\" :document=\"data.document\"></ae-design>\n        <ae-design name=\"abstract\" :document=\"data.document\"></ae-design>\n      </div>\n      <div v-else class=\"_CSS-card__title _CSS-card__title--deleted\">Gelöscht</div>\n    </div>\n\n    <div class=\"_CSS-card__row\">\n      <div class=\"_CSS-card__date\">\n        {{ controller.date }}\n      </div>\n  \n      <!-- <div class=\"_CSS-card__category\">\n        <div class=\"_CSS-card__category__item\">\n          <ae-design name=\"icon\" :document-id=\"data.app\"></ae-design>\n        </div>\n        <div class=\"_CSS-card__category__item\">\n          <ae-design name=\"icon\" :document-id=\"data.category\"></ae-design>\n        </div>\n      </div> -->\n\n      <div class=\"_CSS-card__actions\">\n        <button class=\"_CSS-button-read ae-button ae-button--small\" @click.stop=\"controller.toggleRead()\" :title=\"data.read ? 'Ungelesen markieren' : 'Gelesen markieren'\">\n          <ae-icon v-if=\"data.read\" class=\"fa fa-envelope-open\"></ae-icon>\n          <ae-icon v-else class=\"fa fa-envelope\"></ae-icon>\n        </button>\n\n        <button class=\"_CSS-button-show ae-button ae-button--small\" :disabled=\"locals.deleted\" >\n          <ae-icon class=\"fa fa-chevron-right\"></ae-icon>\n        </button>\n      </div>\n    </div>\n\n  </div>\n</div>","css":"._CSS-container {\n  --padding: 0.25rem 0.5rem 0.2rem 0.5rem;\n  \n  border-radius: var(--ae-border-radius);\n\n  background-color: var(--ae-ui-card-background);\n\n  border-style: solid;\n  border-width: var(--ae-border-width);\n  border-color: var(--ae-border-color);\n}\n\n._CSS-card {\n  display: flex;\n  flex-flow: column;\n  gap: var(--ae-space-2);\n  xdisplay: grid;\n  xgrid-template-columns: 0fr 1fr 0fr 0fr;\n  xgrid-gap: 15px;\n  padding: var(--padding); \n}\n\n._CSS-card--undone {\n  font-weight: 700;\n}\n\n._CSS-card__title--deleted {\n  font-style: italic;\n}\n\n._CSS-card__title  {\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n\n  display: flex;\n  flex-flow: column;\n  justify-content: center;\n}\n\n._CSS-card__button {\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n\n  display: flex;\n  align-items: center;\n}\n\n._CSS-card__row {\n  display: flex;\n  gap: var(--ae-space-2);\n}\n\n._CSS-card__date {\n  white-space: nowrap;\n  color: var(--ae-background-600);\n  margin-right: 0.3em;\n  font-size: var(--ae-font-size-3);\n  display: flex;\n  align-items: center;\n}\n\n._CSS-card__actions {\n  margin-left: auto;\n  display: flex;\n}\n\n._CSS-card ._CSS-button-read {\n  margin-right: 10px;\n  color: var(--ae-background-600);\n  font-size: var(--ae-font-size-3);\n}\n\n._CSS-button-show {\n  font-size: var(--ae-font-size-3);\n}\n\n._CSS-card__who {\n  display: flex;\n  align-items: center;\n}\n\n._CSS-card__category {\n  display: flex;\n  align-items: center; \n}\n\n._CSS-card__category__item {\n  padding: var(--ae-border-width-1); \n}","controller":"class Controller {\n  async init() {\n    locals.deleted = !(await Aeppic.get(data.document))\n\n    Aeppic.watch(data.document, (doc, reason) => {\n      locals.deleted = !!reason.deleted\n    })\n  }\n\n  async toggleRead() {\n    const editable = await Aeppic.edit(document)\n\n    editable.data.read = !!!data.read\n\n    Aeppic.save(editable)\n  }\n\n  get date() {\n    const date = DateTime.fromISO(document.created.at)\n\n    const diff = -date.diffNow('days').days.toFixed(0)\n\n    if (diff === 0) {\n      return date.toLocaleString(DateTime.TIME_24_SIMPLE)\n    }\n\n    if (diff <= 7) {\n      return date.toLocaleString({ weekday: 'long', hour: '2-digit', minute: '2-digit' })\n    }\n\n    return date.toLocaleString(DateTime.DATETIME_MED)\n  }\n} ","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2019-03-14T15:50:20+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2023-01-10T11:22:31+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1673349751903,"ct":1552578620869,"a_depth":4,"a":["apps","c9b12874-99d0-40e8-86cc-c3fe0477a15a","9b5518e5-c3ea-4446-9dc8-8628d8e8fabe","6d164aff-df9b-470d-9632-cfb6f5892509"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"6a6604ef-7e61-4b35-a69e-ecdd449a0ae6","v":"initial","p":"ee4b6777-b620-43a9-9cde-7261dfc5c616","f":{"id":"design-form","v":"3385ac6766f32638","text":"Design"},"data":{"name":"stamp","template":"<template v-if=\"controller.lastStampType\">\r\n{{controller.lastStampType.text}}\r\n</template>\r\n<template v-else>\r\n  <i>Pending</i>\r\n</template>\r\n","css":"._CSS i {\r\n  opacity: 0.5;\r\n}","controller":"get lastStampType() {\r\n  return document.stamps.length > 0 && document.stamps[document.stamps.length - 1].type\r\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-11-02T09:38:36+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-11-02T09:38:36+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1635845916269,"ct":1635845916269,"a_depth":4,"a":["apps","781ff5de-69db-49dc-99f0-f328b308cd7d","dbd0bd68-3479-4032-9303-9d51615c27a7","ee4b6777-b620-43a9-9cde-7261dfc5c616"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"ae15f8fd-9557-486f-8f58-4f4a157fdd18","v":"d791c8a47c2f9cfe","previous":{"v":"4e37483f67d9426d"},"p":"fallback-designs","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"stamp-info","template":"<ae-design v-for=\"stamp of locals.stamps\"\n  ref=\"stamps\"\n  name=\"icon\"\n  class=\"cursor-pointer\"\n  :document-id=\"stamp.id\"\n  @mouseenter.native.prevent.stop=\"controller.show(stamp, $event)\"\n  @mouseleave.native.prevent.stop=\"controller.hide()\"\n></ae-design>\n\n<ae-popup ref=\"popup\" :close-delay=\"1500\">\n  <div slot=\"popup\"\n    v-if=\"locals.currentStamp\"\n    class=\"p-1\"\n    @mouseenter.prevent.stop=\"controller.show(locals.currentStamp, $event)\"\n    >\n    {{ locals.currentStamp?.type.text }}\n    -\n    {{ Aeppic.Formatting.formatPastDateTime(locals.currentStamp?.added) }}\n  </div>\n</ae-popup>\n\n","css":"","controller":"async init() {\n  locals.currentStamp = null\n  locals.stamps = null\n  await this._findStamps()\n}\n\nasync _findStamps() {\n  const stamps = document.stamps\n\n  if (!stamps) {\n    locals.stamps = []\n    return \n  }\n \n  const allTypes = await Aeppic.getAll(stamps.map(s => s.type))\n  const types = new Map(allTypes.map(t => [t.id, t]))\n\n  locals.stamps = []\n\n  for (const s of stamps) {\n    if (s.hidden) {\n      continue\n    }   \n\n    const stampType = types.get(s.type.id)\n    \n    if (stampType?.hidden) {\n      continue\n    } \n \n    locals.stamps.push(s)\n  }\n\n  console.log('l', locals.stamps)\n}\n\nasync show(stamp) {\n  locals.currentStamp = stamp\n  \n  const index = locals.stamps.findIndex(s => s === stamp)\n  const target = $refs.stamps[index]\n  \n  $refs.popup.show({ target: target.$el })\n}\n\nhide() {\n  $refs.popup.hide()\n  locals.currentStamp = null\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-07-06T07:30:13+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-07-11T11:48:02+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720691282577,"ct":1720243813478,"a_depth":2,"a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"],"inheritedLocks":[null,null,null],"stamps":[]},{"id":"21bdcbb6-16aa-46bc-9031-93e5286add00","v":"707eb6035271d878","p":"document-picker-form","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"static","template":"<document-list list-id=\"2e798091-303f-406b-a42a-93aa1cd8425c\" root-document-id=\"{{document.data.targetFolder.id || document.id}}\" query-id=\"children-query\" option-design=\"{{document.data.staticPickedDocumentDesign || 'list'}}\">\n</document-list>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2017-08-23T08:24:50+02:00","by":"","from":"","client":"import"},"modified":{"at":"2017-08-23T08:24:50+02:00","by":"","from":"","client":"import"},"t":1719473826913,"ct":1719473826913,"a_depth":3,"a":["system","system-forms","document-picker-form"],"a_forms":["system-folder-form","repository-folder-form","form"],"inheritedLocks":[null,null,null,null],"stamps":[],"previous":{"v":"11c6c5983e572160","f":{"id":"design-form","v":"927bf22562d7b1b6","text":"Design"}},"meta":{"modified":{"at":"2024-06-27T07:37:06+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"6f327e4a-9bc6-44ef-a565-23d010111d2f","v":"c4cb44707770684a","previous":{"v":"initial"},"p":"c211ffaa-14f8-4439-9126-f42f65ac4424","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"status-times","template":"   <section class=\"flex flex-wrap justify-between text-sm text-theme-500\">\n     <div title=\"Begonnen\">\n        <ae-icon  class=\"fa fa-star-of-life\"></ae-icon>\n\n       {{ Aeppic.DateTime.fromISO(document.created.at).toLocaleString(Aeppic.DateTime.DATETIME_SHORT) }}\n     </div>\n     <!-- TODO: Wartung is not modified when some work is done. -->\n     <div v-if=\"data.status === 3\" title=\"Zur Kenntnis genommen\">\n        <ae-icon  class=\"fa fa-badge-check\"></ae-icon>\n        {{ Aeppic.DateTime.fromISO(document.modified.at).toLocaleString(Aeppic.DateTime.DATETIME_SHORT) }}\n     </div>\n   </section> ","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-09-05T13:47:31+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-09-05T13:47:37+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1662385657262,"ct":1662385651388,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","c211ffaa-14f8-4439-9126-f42f65ac4424"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"8107f623-8164-419b-85a4-dd330f1480c5","v":"e4a16ee3dd7add5e","previous":{"v":"f6eb29c999f3281a"},"p":"14931d03-c3bb-4cf7-9f62-747f94d8b01a","f":{"id":"design-form","v":"e37099c040ec46e9","text":"Design"},"data":{"name":"study-quiz","template":"<section class=\"_CSS-question-section\" v-if=\"locals.currentQuestion\">\r\n  <ae-control class=\"_CSS-question\" name=\"editor\" :readonly=\"true\" :document=\"locals.currentQuestion.question\" field-name=\"frage\"></ae-control>\r\n  <aside class=\"_CSS-comment\" v-if=\"locals.currentQuestion.question.data.kommentar\">{{locals.currentQuestion.question.data.kommentar}}</aside>\r\n  <div class=\"ae-button _CSS-answer\" @click=\"controller.toggleSelection(answer)\" :class=\"{ 'ae-button--secondary': controller.isSelected(answer) }\" v-for=\"answer of locals.currentQuestion.allAnwsers\">\r\n    {{answer.data.antwort}}\r\n    <ae-icon v-show=\"locals.check && controller.isCorrectlySelected(answer)\" class=\"_CSS-answer__icon fa fa-check\" style=\"color:var(--ae-accent-green-900)\"></ae-icon>\r\n    <ae-icon v-show=\"locals.check && controller.isIncorrectlySelected(answer)\" class=\"_CSS-answer__icon fa fa-times\" style=\"color:var(--ae-accent-red-700)\"></ae-icon>\r\n  </div>\r\n  <button class=\"ae-button ae-button--primary _CSS-check\" v-if=\"!locals.check || !controller.allCorrectlySelected()\" @click=\"locals.check=true\">Überprüfen</button>\r\n  <template v-else>\r\n    <button class=\"ae-button ae-button--primary _CSS-check\" v-if=\"controller.hasNextQestion()\" @click.stop=\"controller.moveToNextQuestion()\">Nächste Frage</button>\r\n    <button class=\"ae-button ae-button--primary _CSS-check\" v-else @click.stop=\"locals.currentQuestion = null\">Quiz abschliessen</button>\r\n  </template>\r\n\r\n  <div v-if=\"locals.check && !controller.allCorrectlySelected()\" class=\"_CSS-comment\"\">\r\n    Ergänzen Sie korrekte Antworten und entfernen Sie falsche.\r\n  </div>\r\n</section>\r\n<section v-else>\r\n  <ae-form :document=\"document\"></ae-form>\r\n</section> ","css":"._CSS-question-section  {\r\n  display:flex;\r\n  flex-direction:column;\r\n  align-items: center;\r\n}\r\n\r\n._CSS-question {\r\n  width: 90%;\r\n  color: var(--ae-primary-900);\r\n\r\n}\r\n\r\n._CSS-comment {\r\n  font-size: var(--ae-font-size-3);\r\n  color: var(--ae-background-700);\r\n  margin: var(--ae-space-3) 0 var(--ae-space-5) 0;\r\n}\r\n\r\n._CSS ._CSS-answer {\r\n  width: 90%;\r\n  margin: var(--ae-space-2) 0;\r\n  background: var(--ae-ui-background);\r\n\r\n  border: var(--ae-border-width) solid var(--ae-border-color);\r\n  cursor: pointer;\r\n  position: relative;\r\n  display: flex;\r\n  justify-content: center;\r\n}\r\n\r\n._CSS-answer__icon {\r\n  position: absolute;\r\n  right: 4px;\r\n  top: 6px;\r\n\r\n  font-size: var(--ae-font-size-7);\r\n}\r\n\r\n._CSS-answer:hover {\r\n  background: var(--ae-primary-200);\r\n}\r\n\r\n\r\n._CSS button.ae-button._CSS-check {\r\n  margin-top: var(--ae-space-4);\r\n  xbackground: red;\r\n  xcolor: white;\r\n}","controller":"class Controller {\r\n  async init() {\r\n    const trainingMaterial = await Aeppic.get(document.p)\r\n    locals.questions = await Aeppic.getAll(trainingMaterial.data.fragen)\r\n    locals.currentQuestion = null\r\n    locals.check = false\r\n    locals.end = false\r\n\r\n    this.nextQuestionIndex = 0\r\n    this.moveToNextQuestion()\r\n  }\r\n\r\n  async moveToNextQuestion() {\r\n    locals.check = false\r\n    locals.currentQuestion = null\r\n    \r\n    if (this.nextQuestionIndex >= locals.questions.length) {\r\n      return\r\n    } \r\n\r\n    const question = locals.questions[this.nextQuestionIndex]\r\n    this.nextQuestionIndex ++\r\n    \r\n    const answers = await Aeppic.getAll(question.data.antworten)\r\n    const wrongAnswers = await Aeppic.getAll(question.data.falscheAntworten)\r\n\r\n    const allAnwsers = randomize([...answers, ...wrongAnswers])\r\n\r\n    // for (let i=0;i<50;i++) {\r\n    //   console.log(randomize([...answers, ...wrongAnswers]).slice(-1)[0].data.name) \r\n    //     } \r\n    const selected = []\r\n    \r\n    locals.currentQuestion = {\r\n      question,\r\n      selected,\r\n      answers,\r\n      allAnwsers,\r\n    }    \r\n\r\n    function randomize(items) {\r\n      const randomizedOrderOfItems = []\r\n\r\n      while (items.length > 0) {\r\n        const nextItemIndex = randomNumber(0, items.length)\r\n        const nextItem = items.splice(nextItemIndex, 1)[0]\r\n        randomizedOrderOfItems.push(nextItem)\r\n      }\r\n      \r\n      return randomizedOrderOfItems\r\n    }\r\n\r\n    function randomNumber(min, max){\r\n      const r = Math.random()*(max-min) + min\r\n      return Math.floor(r)\r\n    }\r\n  }\r\n\r\n  toggleSelection(anwser) {\r\n    if (!locals.currentQuestion) {\r\n      return\r\n    }\r\n\r\n    locals.check = false\r\n\r\n    const indexInSelection = locals.currentQuestion.selected.indexOf(anwser)\r\n\r\n    if (indexInSelection < 0) {\r\n      locals.currentQuestion.selected.push(anwser)\r\n    } else {\r\n      locals.currentQuestion.selected.splice(indexInSelection, 1)\r\n    }\r\n  }\r\n\r\n  isSelected(anwser) {\r\n    if (!locals.currentQuestion) {\r\n      return false\r\n    }\r\n\r\n    return locals.currentQuestion.selected.indexOf(anwser) >= 0\r\n  }\r\n\r\n  isCorrectlySelected(answer) {\r\n    if (!this.isSelected(answer)) {\r\n      return false \r\n    }\r\n\r\n    return (locals.currentQuestion.answers.indexOf(answer) >= 0)\r\n  }\r\n\r\n  isIncorrectlySelected(answer) {\r\n    if (!this.isSelected(answer)) {\r\n      return false\r\n    }\r\n\r\n    return !this.isCorrectlySelected(answer)\r\n  }\r\n\r\n  allCorrectlySelected() {\r\n    if (!locals.currentQuestion) {\r\n      return false\r\n    }\r\n\r\n    if (locals.currentQuestion.selected.length !== locals.currentQuestion.answers.length) {\r\n      return false\r\n    }\r\n\r\n    for (const anwser of locals.currentQuestion.selected) {\r\n      if (this.isIncorrectlySelected(anwser)) {\r\n        return false\r\n      }\r\n    }\r\n\r\n    return true\r\n  }\r\n\r\n  hasNextQestion() {\r\n    if (this.nextQuestionIndex >= locals.questions.length) {\r\n      return false\r\n    } else {\r\n      return true\r\n    }\r\n  }\r\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-05-12T14:52:32+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","from":"","client":"server"},"modified":{"at":"2021-05-28T08:19:38+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1622189978062,"ct":1620831152865,"a_depth":4,"a":["apps","f416e371-07cc-4987-a6de-5934ef5ff3e4","1096c5df-2773-4914-9455-dc54e0f3e0e5","14931d03-c3bb-4cf7-9f62-747f94d8b01a"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"6f8d341d-3b1f-4d80-81fc-1d2d060d8da3","v":"f32f0c2b583e20c9","cloneOf":{"id":"9d213cdd-4620-4309-b1cd-0d7bbcd19aeb","v":"3ebf9e9043c58314","text":"styled-title"},"originalCloneOf":{"id":"9d213cdd-4620-4309-b1cd-0d7bbcd19aeb","v":"3ebf9e9043c58314","text":"styled-title"},"previous":{"v":"b186d466ae38d5c6"},"p":"5c3d462b-b1fa-4323-8457-cee88cfdf51f","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"styled-reason-title","applies":"","template":"<div v-if=\"locals.category\" :title=\"locals.category.data.name\" class=\"_CSS-category\" :style=\"{ 'background-color': locals.color }\" v-translate:title=\"data.kategorie\"></div>\n<ae-design v-if=\"locals.category\" name=\"table-title,title\" :document=\"locals.category\"></ae-design>","css":"._CSS {\n  display: flex;\n}\n\n._CSS-category {\n  display: inline-block;\n  height: 100%;\n  width: 1ch;\n  margin-right: 1ch;\n  flex-shrink: 0;\n  border-radius: var(--ae-border-radius);\n}\n","controller":"async init() {\n  locals.category = await Aeppic.get(data.grundDerBeschwerde)\n  locals.color = locals.category && locals.category.data.color\n}\n","packages":[]},"locks":[],"created":{"at":"2019-08-22T12:28:06+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2020-05-08T08:51:12+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1588927872082,"ct":1566476886932,"a_depth":4,"a":["apps","f93ac233-7aa7-4561-a3b3-d8ebda0ee514","fc09d59c-bdef-4b1e-854e-d907bc11b295","5c3d462b-b1fa-4323-8457-cee88cfdf51f"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"7af7541b-c496-4658-bf60-76a11b114543","v":"8191a8b8d5f6951b","cloneOf":{"id":"11a92b28-d359-4554-b0ea-1534c027dcba","v":"67189e7e2b7714e0","text":"styled-title-by-status"},"originalCloneOf":{"id":"11a92b28-d359-4554-b0ea-1534c027dcba","v":"67189e7e2b7714e0","text":"styled-title-by-status"},"previous":{"v":"3bc7a9c192e1ce99"},"p":"b4b13fc6-7d06-4832-93b0-cd27405e269d","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"styled-size-by-status","template":"<div class=\"h-full py-1 px-2 rounded-md\" :class=\"['bg-' + locals.color.color ]\">\n  <span v-if=\"data.vertragsnotizen\" :title=\"data.vertragsnotizen\" class=\"h-3 w-3 absolute -right-1 -top-1 h-full w-full rounded-full bg-rose-500\"></span>\n\n  <div>\n  {{ data.gesamtgroesseEinheiten }} m²\n  </div>\n</div>\n ","css":"","controller":"class Controller {\n  async init() {\n    locals.color = {}\n    locals.color = (await Aeppic.Actions.run(['27a207ee-3162-4d0a-947b-3f017855579b'], { params: { unit: document }}))[0]?.value || {} \n\n    Aeppic.watch(document, async (doc) => {\n      locals.color = (await Aeppic.Actions.run(['27a207ee-3162-4d0a-947b-3f017855579b'], { params: { unit: doc }}))[0]?.value || {} \n    })\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-09-22T14:09:49+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-02-06T12:21:07+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1675686067069,"ct":1663855789794,"a_depth":4,"a":["apps","86189c5a-b9f4-445a-879f-d94574960df0","15292d56-6806-4263-b6d0-9194687203e1","b4b13fc6-7d06-4832-93b0-cd27405e269d"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"46447a6c-e99b-4e6b-86a3-a077182be104","v":"initial","p":"9292b892-ed0f-48fd-b3f3-d1e3729cb7fa","f":{"id":"design-form","v":"2d98bf27c3108340","text":"Design"},"data":{"name":"styled-title","applies":"","description":"","template":"<ae-layout v-if=\"data.titleLayout.id\" :layout-id=\"data.titleLayout.id\"></ae-layout>\n<span v-else>{{data.name}}</span>","css":"","controller":"","packages":[]},"locks":[],"created":{"at":"2018-10-30T11:15:20+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2018-10-30T11:15:20+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1540898120660,"ct":1540898120660,"a_depth":4,"a":["apps","77ee8815-2c3a-4bb5-abd9-90541a545a24","ff13ca04-7a64-4d12-ab9a-edee939ca478","9292b892-ed0f-48fd-b3f3-d1e3729cb7fa"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"56253765-eeca-4093-ab76-192306ff270d","v":"initial","cloneOf":{"id":"be7554a5-f6b0-4ce2-81de-d7bf2b375d15","v":"a2dd607434246bc2","text":"styled-title"},"originalCloneOf":{"id":"be7554a5-f6b0-4ce2-81de-d7bf2b375d15","v":"a2dd607434246bc2","text":"styled-title"},"p":"0b6a2b21-9425-466e-9e8d-57ec39cc95e1","f":{"id":"design-form","v":"5910dbdd1c0b7469","text":"Design"},"data":{"name":"styled-title","applies":"","description":"","template":"<div class=\"_CSS-card\" :class=\"{ '_CSS-card--overdue': params.overdue }\">\n  <ae-design  :document=\"document\"\n              name=\"title\"\n              class=\"_CSS-title\"\n              \n  ></ae-design> \n\n  <ae-design  :document=\"document\"\n              name=\"path\"\n              class=\"_CSS-path\"\n  ></ae-design>\n</div>","css":"._CSS {\n  --padding: 0.25rem 1rem 0.2rem 0.5rem;\n}\n\n._CSS-card {\n  /* background-color: white; */\n  /* border-left-style: solid;\n  border-left-width: 3px;\n  border-left-color: rgb(235, 235, 235); */\n  /* background: white; */\n  padding: var(--padding);\n}\n\n._CSS-title {\n}\n\n._CSS-path {\n  font-size: 0.9em;\n  color: var(--ae-foreground-l2);\n}\n\n._CSS-card--overdue {\n  border-left-color: red;\n}","controller":"","packages":[]},"locks":[],"created":{"at":"2020-07-01T14:40:04+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2020-07-01T14:40:04+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1593614404719,"ct":1593614404719,"a_depth":4,"a":["apps","59edbdbc-2cab-426a-bb42-6e57c5158e4f","3be7e887-1bcd-4c3c-979f-b20a986c4c48","0b6a2b21-9425-466e-9e8d-57ec39cc95e1"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"88026455-82dd-4bed-973a-19e758119244","v":"21131666c0230bd6","previous":{"v":"initial"},"p":"ab0a6c33-36a3-4347-9bb3-e73bf0a912f1","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"styled-title","applies":"","template":"<template v-if=\"data.name && data.telefon\">\n  <strong>{{data.name}}</strong> (<a :href=\"'tel:' + data.telefon\">{{data.telefon}}</a>)\n</template>\n<span v-else>Unbenannter Ansprechpartner</span>\n","css":"","controller":"","packages":[]},"locks":[],"created":{"at":"2018-02-06T09:45:22+01:00","by":"","from":"","client":"server"},"modified":{"at":"2018-02-27T18:06:17+01:00","by":"","from":"","client":"server"},"t":1519751177986,"ct":1517906722991,"a_depth":4,"a":["apps","b791df37-6eef-4a3e-9066-1b79e0bdad31","35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f","ab0a6c33-36a3-4347-9bb3-e73bf0a912f1"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"884ff4f3-6544-43b9-9eeb-44544cd26e68","v":"8e8f9caaeb9ee47d","previous":{"v":"8a15cf81e63ad0e5"},"p":"0dfd4afd-f2ec-4ff0-9a79-811badf4fed5","f":{"id":"design-form","v":"3385ac6766f32638","text":"Design"},"data":{"name":"styled-title","template":"<span>\n  <span class=\"text-theme-500\">{{ data.nummer }}</span>\n  <span>{{ data.beschreibung }}</span>\n</span>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-03-09T20:41:42+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-03-09T20:43:04+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1646858584515,"ct":1646858502239,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","0dfd4afd-f2ec-4ff0-9a79-811badf4fed5"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"9d213cdd-4620-4309-b1cd-0d7bbcd19aeb","v":"adb3f0f31a8f4966","previous":{"v":"3ebf9e9043c58314"},"p":"77bb245a-dcb6-44d4-9baa-149185d6892c","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"styled-title","applies":"","template":"<div v-if=\"locals.category\" :title=\"locals.category.data.name\" class=\"_CSS-category\" :style=\"{ 'background-color': locals.color }\" v-translate:title=\"data.kategorie\"></div>\n<ae-design name=\"table-title,title\" :document=\"document\"></ae-design>","css":"._CSS {\n  display: flex;\n}\n\n._CSS-category {\n  display: inline-block;\n  height: 100%;\n  width: 1ch;\n  margin-right: 1ch;\n  flex-shrink: 0;\n  border-radius: var(--ae-border-radius);\n}\n","controller":"async init() {\n  locals.category = await Aeppic.get(data.kategorie)\n  locals.color = locals.category && locals.category.data.color\n}\n","packages":[]},"locks":[],"created":{"at":"2018-09-03T11:39:06+00:00","by":"2695f56c-96e6-4009-8e2f-d545ea1e02aa","from":"","client":"server"},"modified":{"at":"2019-08-22T12:36:16+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1566477376402,"ct":1535974746268,"a_depth":5,"a":["apps","83c76376-420e-4231-9275-d0fe2ab47c32","5f76a5c6-0ebc-4a08-b5ae-84fd3176f9c9","351909be-5fd2-4c27-834d-3c094a8bade3","77bb245a-dcb6-44d4-9baa-149185d6892c"],"a_forms":["folder","application-form","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"be7554a5-f6b0-4ce2-81de-d7bf2b375d15","v":"a2dd607434246bc2","previous":{"v":"56627df0e1afa544"},"p":"17c3a5d3-90ba-4592-961b-0800873ef9c1","f":{"id":"design-form","v":"5910dbdd1c0b7469","text":"Design"},"data":{"name":"styled-title","applies":"","description":"","template":"<div class=\"_CSS-card\" :class=\"{ '_CSS-card--overdue': params.overdue }\">\n  <ae-design  :document=\"document\"\n              name=\"title\"\n              class=\"_CSS-title\"\n              \n  ></ae-design> \n\n  <ae-design  :document=\"document\"\n              name=\"path\"\n              class=\"_CSS-path\"\n  ></ae-design>\n</div>","css":"._CSS {\n  --padding: 0.25rem 1rem 0.2rem 0.5rem;\n}\n\n._CSS-card {\n  /* background-color: white; */\n  /* border-left-style: solid;\n  border-left-width: 3px;\n  border-left-color: rgb(235, 235, 235); */\n  /* background: white; */\n  padding: var(--padding);\n}\n\n._CSS-title {\n}\n\n._CSS-path {\n  font-size: 0.9em;\n  color: var(--ae-foreground-l2);\n}\n\n._CSS-card--overdue {\n  border-left-color: red;\n}","controller":"","packages":[]},"locks":[],"created":{"at":"2018-11-22T13:24:08+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2018-12-21T11:01:36+00:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1545390096148,"ct":1542893048395,"a_depth":4,"a":["apps","5acfd7a2-33e4-498a-9150-71e1ab772bfc","20c92864-6a81-4006-96f9-b78f473cd129","17c3a5d3-90ba-4592-961b-0800873ef9c1"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"bf3699a4-9067-4eea-bf51-7f96450669b7","v":"initial","previous":{"v":""},"p":"3c8d23b1-8721-46f8-9baa-15ee91d2a750","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"styled-title","applies":"","template":"<div class=\"_CSS-container\">\n  <div>\n    <ae-icon class=\"fa fa-check\" v-if=\"data.finished\" title=\"Erledigt\"></ae-icon>\n    <ae-icon class=\"fa fa-minus\" v-else-if=\"data.removed\" title=\"Entfernt\"></ae-icon>\n    <ae-icon class=\"fa fa-plus\" v-else title=\"Hinzugefügt\"></ae-icon>\n  </div>\n  <span class=\"_CSS-title\">\n    Aufgabe \"<ae-design name=\"title\" :document=\"locals.task\"></ae-design>\"\n  </span>\n</div>\n","css":"._CSS-container {\n  display: flex;\n}\n._CSS-title {\n  padding-left: 1rem;\n  display: flex;\n}","controller":"class Controller {\n  async init() {\n    const workItem = await Aeppic.get(data.workItem)\n    locals.task = await Aeppic.get(workItem.data.referencedDocument)\n  }\n}","packages":[]},"locks":[],"created":{"at":"2018-04-18T15:41:55+02:00","by":"","backedBy":"","from":"","client":"server"},"modified":{"at":"2018-04-18T15:41:55+02:00","by":"","backedBy":"","from":"","client":"server"},"t":1524058915188,"ct":1524058915188,"a_depth":4,"a":["apps","aed1ba1c-9095-4aca-8176-74a37325f0e5","58cc45fb-3fb3-45e8-b61d-4b89899e357a","3c8d23b1-8721-46f8-9baa-15ee91d2a750"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"11a92b28-d359-4554-b0ea-1534c027dcba","v":"110eebc03c162fbe","previous":{"v":"67189e7e2b7714e0"},"p":"b4b13fc6-7d06-4832-93b0-cd27405e269d","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"styled-title-by-status","template":"<div class=\"h-full py-1 px-2\" :class=\"['bg-' + locals.color.color ]\">\n  <span v-if=\"data.vertragsnotizen\" :title=\"data.vertragsnotizen\" class=\"h-3 w-3 absolute -right-1 -top-1 h-full w-full rounded-full bg-rose-500\"></span>\n  <ae-design name=\"title\" :document=\"document\" class=\"\" ></ae-design>\n</div>\n","css":"","controller":"class Controller {\n  async init() {\n    locals.color = {}\n    locals.color = (await Aeppic.Actions.run(['27a207ee-3162-4d0a-947b-3f017855579b'], { params: { unit: document }}))[0]?.value || {} \n\n    Aeppic.watch(document, async (doc) => {\n      locals.color = (await Aeppic.Actions.run(['27a207ee-3162-4d0a-947b-3f017855579b'], { params: { unit: doc }}))[0]?.value || {} \n    })\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-09-22T14:03:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-02-06T12:22:01+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1675686121964,"ct":1663855412418,"a_depth":4,"a":["apps","86189c5a-b9f4-445a-879f-d94574960df0","15292d56-6806-4263-b6d0-9194687203e1","b4b13fc6-7d06-4832-93b0-cd27405e269d"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"fa2bafd2-e6c8-4991-bf83-014bf6ad03a1","v":"initial","previous":{"v":""},"p":"b42192cd-f547-4531-8fd2-1ecd7ecff581","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"swipe","applies":"","template":"<div layout-fill layout=\"column\">\r\n  <div style=\"height:56px;background: #638D49;color: white; position:relative\">\r\n    <span style=\"margin-left: 4px; font-size: 28px; vertical-align:middle; line-height:54px\">Geschädigter</span><br>\r\n  </div>\r\n  <div layout-fill>\r\n      <rs-load-form-info document=\"document\" form-info=\"formInfo\"></rs-load-form-info>\r\n    \r\n      <div ng-if=\"formInfo.sections[0].directSubsections.length > 0\">\r\n        <rs-form document=\"document\" form-info=\"formInfo\" defaults=\"false\" readonly=\"{{!document.$rsEditable}}\" section=\"formInfo.sections[0]\" with-subsections=\"false\" ></rs-form>\r\n    \r\n        <md-tabs md-dynamic-height=\"true\" class=\"md-accent\" layout-fill> \r\n          <md-tab ng-repeat=\"firstLevelSection in formInfo.sections[0].directSubsections\" label=\"{{firstLevelSection.title}}\">\r\n            <div style=\"margin-top:15px\">\r\n              <rs-form document=\"document\" form-info=\"formInfo\" defaults=\"false\" readonly=\"{{!document.$rsEditable}}\" section=\"firstLevelSection\" with-subsections=\"true\" with-title=\"false\"></rs-form>\r\n            </div>\r\n            <rs-next-tab-on-focus></rs-next-tab-on-focus>\r\n          </md-tab>\r\n        </md-tabs>\r\n      </div>\r\n      <div ng-if=\"formInfo.sections[0].directSubsections.length == 0\" >\r\n        <rs-form layout-fill document=\"document\" form-info=\"formInfo\" defaults=\"false\" readonly=\"{{!document.$rsEditable}}\" ></rs-form>\r\n      </div>\r\n    </div>\r\n</div>","css":"","controller":"","packages":[]},"locks":[],"lockRefs":[],"created":{"at":"2018-02-06T09:46:36+01:00","by":"","from":"","client":"server"},"modified":{"at":"2018-02-06T09:46:36+01:00","by":"","from":"","client":"server"},"t":1517906796946,"ct":1517906796946,"a_depth":4,"a":["apps","b791df37-6eef-4a3e-9066-1b79e0bdad31","35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f","b42192cd-f547-4531-8fd2-1ecd7ecff581"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"fd33dc8b-eda1-4607-a214-e90f059b88a7","v":"9431437b9de15e71","previous":{"v":"0a0145056b5ad3e0"},"p":"5475727b-0e0c-412a-8452-23b9c5b242f2","f":{"id":"design-form","v":"9bfe8e0cd909c1f0","text":"Design"},"data":{"name":"table","template":"<ae-list  list-id=\"table-list\"\n          :root-document-id=\"document.id\"\n          query-id=\"f812861f-68c8-4818-9972-be7b5474c9b1\"\n          :filter=\"'f.id:' + locals.FORMS.Kunde\"\n          @selected=\"Aeppic.drillInto($event)\"\n          :params=\"{ columns: 'data.name,data.kategorie,data.branche,data.kundennummer,data.interesseAn,data.verantwortlich', designs: ',,,,,table:avatar--small', headers: '', rowHeight: 52 }\"\n          :search-options=\"{ searchAllFields: true }\"\n          :param-list-form-id=\"locals.FORMS.Kunde\"\n          param-sort-fields=\"data.name,data.hotness,data.kategorie,data.kundennummer,data.auftragsvolumen\"\n          param-filter-fields=\"data.kategorie,data.branche,data.verantwortlich,data.quelle,data.hotness\"\n          sort=\"data.name\"\n          class=\"_CSS-list\"\n></ae-list>\n","css":"","controller":"class Controller {\n  init() {\n    locals.FORMS = {\n      Kunde: '8fc08287-dbcc-4e41-9d5d-28e4cd828943'\n    }\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-07-03T08:03:18+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2022-02-08T10:16:16+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1644315376031,"ct":1593763398769,"a_depth":4,"a":["apps","9d6ee173-26fe-4472-a271-7667f717094e","6743ef9a-c21b-443f-91b8-4dd86886ee8c","5475727b-0e0c-412a-8452-23b9c5b242f2"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"0dc2107b-ea55-495d-91bc-bdea0c3acf17","v":"9e936ae7bffd68bb","previous":{"v":"0e5c103c557102ac"},"p":"8b4121d2-1838-46b6-833f-43f6ded78011","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"table-card","template":"<div class=\"flex gap-6 p-1 xbg-red-500 w-max\"\n    :class=\"[data.bezahlt && 'text-neutral-500', params.previous && (locals.everyUnitIsSameAsPreviousRecipeipt ? 'border-t border-neutral-200' : 'border-t border-neutral-500'), (params.position - 1) % 2 !== 0 ? 'bg-neutral-50' : 'bg-white']\" \n>     \n  <!-- <div class=\"w-5 shrink-0 grow-0 overflow-hidden\">\n    {{ params.position }}\n     {{ locals.everyUnitIsSameAsPreviousRecipeipt }} \n  </div> -->\n  <ae-design  v-if=\"!locals.everyUnitIsSameAsPreviousRecipeipt\"\n              class=\"w-20 shrink-0 grow-0 overflow-hidden\" name=\"unit\" :document-id=\"data.vertrag.id\"\n  ></ae-design>\n  <div v-else class=\"w-20 shrink-0 grow-0 overflow-hidden\"></div>\n\n  <ae-design class=\"text-xs w-20 shrink-0 grow-0\" name=\"styled-size-by-status\" :document-id=\"data.vertrag.id\"></ae-design>\n\n  <ae-design class=\"w-36 shrink-0 grow overflow-auto transition-all ease-in-out hover:bg-neutral-300 rounded-sm\" name=\"tenant-phone-buttons\" :document-id=\"data.vertrag.id\"\n  :param-no-wrap=\"true\" :class=\"[!data.bezahlt && 'text-red-500']\"\n  ></ae-design>\n\n  <ae-design name=\"mieteingang__table-card-button\" :document-id=\"data.vertrag.id\"\n    class=\"w-28 xl:w-52 xl:w-72 shrink-0 grow-0 whitespace-nowrap text-ellipsis overflow-hidden h-full\n  hover:bg-neutral-300 rounded-sm h-auto\"\n  @selected=\"$refs.zahlungsnotizen.show($event)\"\n  ref=\"zahlungsnotizenButton\"\n  ></ae-design>\n  <!-- <button class=\"w-28 xl:w-52 xl:w-72 shrink-0 grow-0 whitespace-nowrap text-ellipsis overflow-hidden h-full\n  hover:bg-neutral-300 rounded-sm h-auto\" :class=\"[!data.zahlungsnotizen && 'justify-center']\"\n  @click.stop=\"$refs.zahlungsnotizen.show($event)\"\n      ref=\"zahlungsnotizenButton\"\n    > \n      <div v-show=\"data.zahlungsnotizen\">\n        {{ data.zahlungsnotizen }}\n      </div> \n      <ae-icon v-show=\"!data.zahlungsnotizen\" class=\"fa fa-font-case\"></ae-icon>\n  </button> -->\n\n\n  <div class=\"w-20 shrink-0 grow-0 whitespace-nowrap text-ellipsis overflow-hidden\"> \n  {{ new Intl.NumberFormat('de-DE', { style: 'currency', currency: 'EUR' }).format(data.kaltmiete) }} \n  </div>\n\n  <div class=\"w-20 shrink-0 grow-0 whitespace-nowrap text-ellipsis overflow-hidden\">\n  {{ new Intl.NumberFormat('de-DE', { style: 'currency', currency: 'EUR' }).format(data.nebenkosten) }} \n  </div>\n\n  <div class=\"w-20 shrink-0 grow-0 whitespace-nowrap text-ellipsis overflow-hidden\">\n  {{ new Intl.NumberFormat('de-DE', { style: 'currency', currency: 'EUR' }).format(data.mehrwertsteuer) }} \n  </div>\n\n  <div class=\"w-20 shrink-0 grow-0 whitespace-nowrap text-ellipsis overflow-hidden\">\n  {{ new Intl.NumberFormat('de-DE', { style: 'currency', currency: 'EUR' }).format(data.summe) }} \n  </div>\n\n  <button class=\"w-28 xl:w-52 xl:w-72 shrink-0 grow-0 whitespace-nowrap text-ellipsis overflow-hidden h-full\n  hover:bg-neutral-300 rounded-sm h-auto\" :class=\"[!data.notizen && 'justify-center']\"\n  @click.stop=\"$refs.notizen.show($event)\"\n      ref=\"notizenButton\"\n    > \n      <div v-show=\"data.notizen\">\n        {{ data.notizen }}\n      </div> \n      <ae-icon v-show=\"!data.notizen\" class=\"fa fa-font-case\"></ae-icon>\n  </button>\n\n\n  <button class=\"w-20 shrink-0 grow-0 whitespace-nowrap text-ellipsis overflow-hidden h-full\n  hover:bg-neutral-300 rounded-sm h-auto\"\n  @click.stop=\"$refs.zahlung.show($event)\"\n  ref=\"zahlungButton\">\n  {{ new Intl.NumberFormat('de-DE', { style: 'currency', currency: 'EUR' }).format(data.zahlung) }} \n  </button>\n\n  <div class=\"w-10 shrink-0 grow-0 whitespace-nowrap text-ellipsis overflow-hidden flex justify-center items-center\"\n        :title=\"data.bezahlt ? 'Bezahlt' : 'Nicht bezahlt'\">\n    <button @click.stop=\"controller.togglePayed()\">\n      <ae-icon v-if=\"data.bezahlt\" class=\"fa fa-sack-dollar text-green-600\"></ae-icon>\n      <ae-icon v-else class=\"far fa-sack\"></ae-icon>\n    </button>\n  </div>\n\n  <div class=\"w-10 shrink-0 grow-0 hover:bg-neutral-300 rounded-sm flex justify-center items-center\">\n    <button @click.stop=\"$emit('selected', document)\">\n      <ae-icon class=\"far fa-external-link\"></ae-icon>\n    </button>\n  </div>\n</div> \n\n<ae-popup ref=\"zahlungsnotizen\" @show=\"controller.addInputHandler('zahlungsnotizen')\" @close=\"controller.removeInputHandler('zahlungsnotizen')\">\n  <template #default>  \n    <div class=\"text-base\">\n      <ae-form :document-id=\"data.vertrag.id\" \n              :view=\"{ only: { fields: [ 'zahlungsnotizen' ] } }\"\n              :auto-save=\"true\"\n              layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\"\n      ></ae-form>\n    </div> \n  </template>\n</ae-popup>  \n \n<ae-popup ref=\"notizen\" @show=\"controller.addInputHandler('notizen')\" @close=\"controller.removeInputHandler('notizen')\">\n  <template #default>  \n    <div class=\"text-base\">\n      <ae-form :document=\"document\" \n              :view=\"{ only: { fields: [ 'notizen' ] } }\"\n              :auto-save=\"true\"\n              layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\"\n      ></ae-form>\n    </div> \n  </template>\n</ae-popup>  \n\n<ae-popup ref=\"zahlung\" @show=\"controller.addInputHandler('zahlung')\" @close=\"controller.removeInputHandler('zahlung')\">\n  <template #default> \n    <div class=\"text-base\">\n      <ae-form :document=\"document\" \n              :view=\"{ only: { fields: [ 'zahlung' ] } }\"\n              :auto-save=\"true\"\n              layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\"\n      ></ae-form>\n    </div> \n  </template>\n</ae-popup>  \n","css":"","controller":"class Controller {\n  init() {\n    $on('focus-at', event => {\n      console.log('focus-at', event)\n      const ref = $refs[event + 'Button']\n      const el = ref.$el ? ref.$el : ref\n      \n      $refs[event].show({ target: el }) \n    })\n\n    locals.everyUnitIsSameAsPreviousRecipeipt = this.everyUnitIsSameAsPreviousRecipeipt\n  }\n\n  get everyUnitIsSameAsPreviousRecipeipt() {\n    if (!params.previous) {\n      return false\n    }\n\n    return data.einheit.length === params.previous.data.einheit.length && data.einheit.every(ref => params.previous.data.einheit.find(e => e.id === ref.id))\n  }\n\n  async togglePayed() {\n    const editable = await Aeppic.edit(document)\n    editable.data.bezahlt = !editable.data.bezahlt\n\n    if (editable.data.bezahlt) {\n      editable.data.zahlung = editable.data.summe\n    } else {\n      // editable.data.zahlung = 0\n    }\n\n    Aeppic.save(editable)\n  }\n\n  addInputHandler(refName) {\n    if (!this[`onKeydown_${refName}`]) {\n      this[`onKeydown_${refName}`] = (event) => {\n        if (event.key === 'ArrowDown') {\n          event.preventDefault()\n          $emit('focus-next', refName)\n\n          $refs[refName].close()\n        }\n\n        if (event.key === 'ArrowUp') {\n          event.preventDefault() \n          $emit('focus-previous', refName)\n          \n          $refs[refName].close()\n        }\n\n        if (event.key === 'Escape') {\n            $refs[refName].close()\n        }\n      }\n    }\n\n    const input = $refs[refName].$children[0].$el.querySelector('input')\n    \n    input.focus()\n\n    input.addEventListener('keydown', this[`onKeydown_${refName}`])\n  }\n\n  removeInputHandler(refName) {\n    const input = $refs[refName].$children[0].$el.querySelector('input')\n    \n    input.removeEventListener('keydown', this[`onKeydown_${refName}`])\n    \n    this[`onKeydown_${refName}`] = null\n  }\n\n  focusInput(refName) {\n    $refs[refName].$children[0].$el.querySelector('input').focus()\n  }\n} ","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-11-18T11:09:40+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-02-14T11:35:13+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1676374513200,"ct":1668769780827,"a_depth":4,"a":["apps","253003a3-5cbd-4d84-bfb2-38f60a741fb5","06b46bf8-ceeb-4fd4-bf6a-4a3da0cab4ad","8b4121d2-1838-46b6-833f-43f6ded78011"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"94e4c2b2-e5b2-4272-a613-8b9a21c8bdef","v":"cfaf51a784659e88","previous":{"v":"14301b7741dc7da3"},"p":"86966584-6ee3-4351-8e6e-ff6e695b970a","f":{"id":"design-form","v":"e3fe9ece11aabc5e","text":"Design"},"data":{"name":"table-cell","applies":"","template":"<ae-control :field-name=\"params.fieldName\" :document=\"document\" name=\"editor\" :readonly=\"true\"></ae-control>","css":"","controller":"","packages":[]},"locks":[],"lockRefs":[],"created":{"at":"2017-11-24T17:15:21+01:00","by":"","from":"","client":"db2064bb-f077-4668-8b27-fac27779dcd9"},"modified":{"at":"2017-11-24T17:19:56+01:00","by":"","from":"","client":"db2064bb-f077-4668-8b27-fac27779dcd9"},"t":1511540396215,"ct":1511540119593,"a_depth":4,"a":["apps","b91e3079-75ae-49cd-981b-3053bf47208c","e7a0be94-cd94-4210-875e-0cceb7e8bc6c","86966584-6ee3-4351-8e6e-ff6e695b970a"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"cf6cae96-2a9a-4c47-b249-85e9d7a7cf08","v":"initial","p":"6c4f14e0-a9ee-4f78-b75f-75249b074054","f":{"id":"design-form","v":"3385ac6766f32638","text":"Design"},"data":{"name":"table-cell","template":"","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-11-02T09:38:36+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-11-02T09:38:36+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1635845916986,"ct":1635845916986,"a_depth":4,"a":["apps","781ff5de-69db-49dc-99f0-f328b308cd7d","dbd0bd68-3479-4032-9303-9d51615c27a7","6c4f14e0-a9ee-4f78-b75f-75249b074054"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"f10c6c53-5225-4c4e-b265-fddc2fa53d63","v":"initial","p":"275b807f-7dbb-4351-b731-669e275fa97d","f":{"id":"design-form","v":"3a761d06f59c46c1","text":"Design"},"data":{"name":"table-cell-answer","template":"<ae-design name=\"answer-for-field\" :param-field-name=\"params.fieldName\" :document=\"locals.projectRelatedModelData\"></ae-design>","css":"","controller":"class Controller {\n  async init() {\n    const BEWERBUNGEN_FORM = '9c63f632-9e40-4abb-aa1a-f4a02110a97f'\n    const application = await Aeppic.findOne(`a:${document.a.slice(-2)[0]} a_forms:${BEWERBUNGEN_FORM} data.requestApplication.id:${data.requestApplication.id}`)\n    locals.projectRelatedModelData = await Aeppic.findOne(`p:${application.id} f.id:13866932-346a-448d-9560-8a7e7e26be37`)\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-10-13T10:11:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2020-10-13T10:11:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1602583892837,"ct":1602583892837,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","275b807f-7dbb-4351-b731-669e275fa97d"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"065c69fc-fe2f-4792-a911-3118386cc0b6","v":"initial","previous":{"v":""},"p":"275b807f-7dbb-4351-b731-669e275fa97d","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"table-cell-question-by-index","applies":"","template":"<ae-design name=\"content\" :document-id=\"locals.answerId\"></ae-design>","css":"","controller":"async init () {\n  locals.answerId = ''\n\n  if (!params.fieldName) {\n    return\n  }\n\n  const match = /question\\.id:(.*)/.exec(params.fieldName)\n  const questionId = match && match[1]\n\n  if (!questionId) {\n    return\n  }\n\n  const answer = await Aeppic.find(`p:${document.id} data.question.id:${questionId}`, { size: 1 })\n\n  if (answer && answer[0]) {\n    locals.answerId = answer[0].id\n  }\n}\n\n","packages":[]},"locks":[],"created":{"at":"2018-07-06T12:15:06+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2018-07-06T12:15:06+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1530879306681,"ct":1530879306681,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","275b807f-7dbb-4351-b731-669e275fa97d"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"3c3a64ff-55f3-4ea6-8162-aa990dab0954","v":"28342ba99f3492a7","previous":{"v":"a907c03fbe89b14d"},"p":"208dc4fd-4c2c-4a8f-9c6d-94be86daac1d","f":{"id":"design-form","v":"5dbbefb312ab61e2","text":"Design"},"data":{"name":"table-header","template":"  <div class=\"flex gap-6 items-center bg-white p-1 font-bold text-sm w-max\"> \n    <!-- <div class=\"w-5 shrink-0 grow-0 overflow-hidden\">\n    </div>  -->\n\n    <div class=\"w-20 shrink-0 grow-0 overflow-hidden\">\n      Raum\n    </div>\n\n    <div class=\"w-20 shrink-0 grow-0 overflow-hidden\">\n      m²\n    </div>\n  \n    <div class=\"w-36 shrink-0 grow overflow-auto\">\n    Mieter\n    </div>\n\n        \n    <div class=\"w-28 xl:w-52 xl:w-72 shrink-0 grow-0 whitespace-nowrap text-ellipsis overflow-hidden h-full\"\n    >\n      Zahlungsnotizen\n    </div>\n\n\n    <div class=\"w-20 shrink-0 grow-0 whitespace-nowrap text-ellipsis overflow-hidden\"> \n    Kalt\n    </div>\n\n    <div class=\"w-20 shrink-0 grow-0 whitespace-nowrap text-ellipsis overflow-hidden\"\n    title=\"Nebenkosten\">\n    NK\n    </div>\n\n    <div class=\"w-20 shrink-0 grow-0 whitespace-nowrap text-ellipsis overflow-hidden\"\n    title=\"Mehrwertsteuer\">\n    MwSt\n    </div>\n\n\n    <div class=\"w-20 shrink-0 grow-0 whitespace-nowrap text-ellipsis overflow-hidden\">\n    Miete\n    </div>\n    \n    <div class=\"w-28 xl:w-52 xl:w-72 shrink-0 grow-0 whitespace-nowrap text-ellipsis overflow-hidden h-full\"\n    >\n      Notizen\n    </div>\n\n\n    <div class=\"w-20 shrink-0 grow-0 whitespace-nowrap text-ellipsis overflow-hidden\"\n    @click.stop=\"$refs.zahlung.show($event)\">\n      Zahlung\n    </div>\n\n\n    <div class=\"w-10 shrink-0 grow-0 whitespace-nowrap text-ellipsis overflow-hidden\">\n      Bezahlt\n    </div>\n\n    <div class=\"w-10 shrink-0 grow-0\">\n    </div>\n  </div> ","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-01-25T15:30:29+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-02-14T11:35:34+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1676374534611,"ct":1674660629900,"a_depth":4,"a":["apps","253003a3-5cbd-4d84-bfb2-38f60a741fb5","06b46bf8-ceeb-4fd4-bf6a-4a3da0cab4ad","208dc4fd-4c2c-4a8f-9c6d-94be86daac1d"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"6b589e89-d146-431d-b11a-ce74049209a3","v":"33866d23842c2395","p":"fallback-designs","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"table-row","template":"<template v-if=\"locals.ready\">\n  <ae-design class=\"_CSS-cell _CSS-cell__ae-design\" v-if=\"params.designName\" :name=\"params.designName\" :document=\"document\" :params=\"{ 'fieldName': params.columnName }\" v-on=\"$listeners\"></ae-design>\n    <div v-else-if=\"params.columnName.startsWith('date.')\">\n<!-- {{ params.columnName }}  -->\n{{ controller.valueByDateColumn(params.columnName) }} \n  </div>\n  <div class=\"_CSS-cell__text\" :title=\"controller.dataByColumnName(params.columnName)\" v-else-if=\"controller.subType(params.columnName) === 'text'\">\n    {{ controller.dataByColumnName(params.columnName) }}\n  </div>\n  <template v-else-if=\"controller.subType(params.columnName) === 'file' || controller.subType(params.columnName) === 'image'\">\n    <div class=\"_CSS-cell _CSS-cell__file\" v-if=\"controller.isDocumentConvertable\"\n      :style=\"{'background-image': 'url(' + Aeppic.Content.getThumbnailSrc(document, params.columnName.replace('data.', '')) + ')', 'background-size': 'contain', 'background-repeat': 'no-repeat', 'background-position-x': 'center' }\"></div>\n  </template>\n  <!-- <div v-else-if=\"controller.subType(params.columnName) === 'ref'\" class=\"_CSS-cell _CSS_cell__ref-container\">\n    <template v-if=\"controller.fieldInfo(params.columnName).cardinality\">\n      <ae-design name=\"title\" :document-id=\"ref.id\" @click.stop.native=\"Aeppic.navigateTo(ref.id)\" class=\"_CSS-cell _CSS-cell__ref _CSS-cell--clickable\" v-for=\"ref in controller.dataByColumnName(params.columnName)\" :key=\"ref.id\"></ae-design>\n    </template>\n    <template v-else>\n      <ae-design name=\"title\" :document-id=\"controller.dataByColumnName(params.columnName).id\" @click.stop.native=\"Aeppic.navigateTo(controller.dataByColumnName(params.columnName).id)\" class=\"_CSS-cell _CSS-cell__ref _CSS-cell--clickable\"></ae-design>\n    </template>\n  </div> -->\n  <div v-else-if=\"controller.subType(params.columnName) === 'ref'\" class=\"_CSS-cell _CSS_cell__ref-container\">\n    <template v-if=\"controller.fieldInfo(params.columnName).cardinality\">\n      <ae-design name=\"title\" :document-id=\"ref.id\" class=\"_CSS-cell _CSS-cell__ref\" v-for=\"ref in controller.dataByColumnName(params.columnName)\" :key=\"ref.id\"></ae-design>\n    </template>\n    <template v-else>\n      <ae-design name=\"title\" :document-id=\"controller.dataByColumnName(params.columnName).id\" class=\"_CSS-cell _CSS-cell__ref\"></ae-design>\n    </template>\n  </div>\n  <!-- <input v-else-if=\"controller.subType(params.columnName) === 'switch'\" type=\"checkbox\" :checked=\"controller.dataByColumnName(params.columnName)\" readonly=\"true\"> -->\n  <ae-control class=\"_CSS-cell _CSS-cell__ae-control--switch\" name=\"switch\" :readonly=\"true\" v-else-if=\"controller.subType(params.columnName) === 'switch'\" :field-name=\"controller.columnAsFieldName\" :document=\"document\"></ae-control>\n  <div class=\"_CSS-cell _CSS-cell__date\" v-else-if=\"controller.subType(params.columnName) === 'date' && controller.dataByColumnName(params.columnName)\">\n    {{ Aeppic.DateTime.fromISO(controller.dataByColumnName(params.columnName), { setZone: true }).toLocal().toLocaleString(Aeppic.DateTime.DATETIME_SHORT) }}\n  </div>\n  <div class=\"_CSS-cell _CSS-cell__date\" v-else-if=\"controller.subType(params.columnName) === 'duration' && controller.dataByColumnName(params.columnName)\">\n    <ae-control name=\"duration\" :readonly=\"true\" :document=\"document\" :field-name=\"controller.columnAsFieldName\"></ae-control>\n  </div>\n  <div class=\"_CSS-cell _CSS-cell__ae-control--map\" v-else-if=\"controller.subType(params.columnName) === 'address' && controller.dataByColumnName(params.columnName)\">\n    <ae-control name=\"map\" :document=\"document\" :readonly=\"true\" :field-name=\"controller.columnAsFieldName\" style=\"max-height: 200px;\"></ae-control>\n  </div>\n  <div class=\"_CSS-cell _CSS-cell__ae-control--select\" v-else-if=\"controller.subType(params.columnName) === 'select'\">\n    <ae-control name=\"select\" :readonly=\"true\" :document=\"document\" :field-name=\"controller.columnAsFieldName\"></ae-control>\n  </div>\n  <div class=\"_CSS-cell _CSS-cell__number\" v-else-if=\"controller.subType(params.columnName) === 'number'\">\n    {{ controller.dataByColumnName(params.columnName) }}\n  </div>\n  <div v-else class=\"_CSS-cell _CSS-raw-printout\">\n    {{ controller.dataByColumnName(params.columnName) }}\n  </div>\n\n  <!-- OLD code which handled all columns/fields of a document within one ae-design -->\n  <!-- <div v-for=\"(column, index) in controller.columns\" class=\"_CSS-cell\">\n    <ae-design v-if=\"controller.design(index)\" :name=\"controller.design(index)\" :document=\"document\" :params=\"{ fieldName: column }\"></ae-design>\n    <div class=\"_CSS-cell__text\" v-else-if=\"controller.subType(column) === 'text'\">\n      {{ controller.dataByColumnName(column) }}\n    </div>\n    <div v-else-if=\"controller.subType(column) === 'file' || controller.subType(column) === 'image'\" style=\"height: 4em; width: 4em;\"\n      :style=\"{'background-image': 'url(' + Aeppic.Content.getThumbnailSrc(document, column) + ')', 'background-size': 'cover', 'background-repeat': 'no-repeat', 'background-position-x': 'center' }\"></div>\n    <div v-else-if=\"controller.subType(column) === 'ref'\" class=\"_CSS_cell__ref-container\">\n      <template v-if=\"controller.fieldInfo(column).cardinality\">\n        <ae-design name=\"title\" :document-id=\"ref.id\" @click.stop.native=\"Aeppic.navigateTo(ref.id)\" class=\"_CSS-cell__ref _CSS-cell--clickable\" v-for=\"ref in controller.dataByColumnName(column)\" :key=\"ref.id\"></ae-design>\n      </template>\n      <template v-else>\n        <ae-design name=\"title\" :document-id=\"controller.dataByColumnName(column).id\" @click.stop.native=\"Aeppic.navigateTo(controller.dataByColumnName(column).id)\" class=\"_CSS-cell__ref _CSS-cell--clickable\"></ae-design>\n      </template>\n    </div>\n    <input v-else-if=\"controller.subType(column) === 'switch'\" type=\"checkbox\" v-model=\"controller.dataByColumnName(column)\"\n      disabled=\"true\">\n    <div v-else-if=\"controller.subType(column) === 'date' && controller.dataByColumnName(column)\">\n      {{ Aeppic.DateTime.fromISO(controller.dataByColumnName(column)).toLocaleString() }}\n    </div>\n    <div v-else-if=\"controller.subType(column) === 'address' && controller.dataByColumnName(column)\">\n      <ae-control name=\"map\" :document=\"document\" :readonly=\"true\" :field-name=\"column\" style=\"max-height: 200px;\"></ae-control>\n    </div>\n    <div v-else-if=\"controller.subType(column) === 'select'\">\n      <ae-control :readonly=\"true\" :document=\"document\" :field-name=\"column\"></ae-control>\n    </div>\n    <div v-else class=\"_CSS-raw-printout\">\n      {{ controller.dataByColumnName(column) }}\n    </div>\n  </div>\n  -->\n</template>","css":"._CSS {\n  flex: 1;\n  display: flex;\n  width: 100%;\n  min-height: 1em;\n}\n\n._CSS-raw-printout,\n._CSS-cell__date,\n._CSS-cell__text {\n  overflow: hidden;\n  display: -webkit-box;\n  -webkit-line-clamp: 2;\n  -webkit-box-orient: vertical;  \n}\n\n._CSS-cell__file {\n  \n}\n\n._CSS-cell {\n  flex: 1;\n  min-width: 0;\n  overflow: hidden;\n}\n\n._CSS-cell--clickable {\n  cursor: pointer;\n}\n\n._CSS-cell--clickable:hover {\n  text-decoration: underline;\n}\n\n._CSS-cell__ref {\n  line-height: 1.5em;\n}\n\n._CSS-cell__number {\n  display: flex;\n  justify-content: flex-end;\n}","controller":"class Controller {\n  async init() {\n    this.convertableTypes = [\n      'application/pdf'\n    ]\n\n    this.covertableTypesStartingWith = [\n      'image/',\n      'application/vnd.oasis.opendocument'\n    ]\n\n    this.convertableTypesIncluding = [\n      'word',\n      'spreadsheet',\n      'powerpoint',\n      'presentation',\n      'mspublisher', \n    ]\n  \n    locals.show = true\n    locals.calculatedMinWidth = null\n\n    locals.ready = false\n    \n    try {\n      const documentForm = await Aeppic.getFormForDocument(document)\n      this.formInfo = documentForm.info\n    } finally {  \n      locals.ready= true\n    }\n  }\n   valueByDateColumn(columnName) {\n    const [ rawDatePart, rawFieldPart ] = columnName.split('_')\n    const accessor = rawDatePart.replace(/date\\.(month|year|day)\\./gi, '')\n    const field = this.dataByColumnName(rawFieldPart)\n\n    if (!field || field === '{}') {\n      return null\n    }\n\n    const parsed = JSON.parse(field)\n    const value = parsed[accessor]\n\n    return (value && Intl.NumberFormat().format(value)) || value\n  }\n  // get columnName() {\n  //   return params.columnName.replace('data.', '')\n  // }\n\n  // usePlaceholders() {\n  //   return !params.columns || !params.columns.length\n  // }\n\n  design(index) {\n    if (!params.designs) {\n      return\n    }\n    return params.designs[index]\n  }\n\n  isColumnNameOfData(columnName) {\n    return columnName.startsWith('data.')\n  }\n\n  get columnAsFieldName() {\n    return params.columnName.replace('data.', '')\n  }\n\n  dataByColumnName(columnName) {\n    // if (this.usePlaceholders() && columnName.field) {\n    //   return document.data[columnName.field.name]\n    // }\n\n    return this.resolveField(document, columnName)\n  } \n\n  fieldInfo(columnName) {\n    if (!this.formInfo && this.isColumnNameOfData(columnName)) {\n      return null\n    }\n    return this.formInfo.fields[columnName.replace('data.', '')]\n  }\n\n  subType(columnName) {\n    const field = this.fieldInfo(columnName)\n    if (!field) {\n      return null\n    }\n    return field.subType\n  }\n\n  calculateMinWidth() {\n    if (!$refs.columns || locals.calculatedMinWidth) {\n      return\n    }\n    if (!locals.calculatedMinWidth) {\n      locals.calculatedMinWidth = []\n    }\n\n    for (let i = 0; i < $refs.columns.length; i++) {\n      const width = $refs.columns[i].clientWidth\n      locals.calculatedMinWidth.push(width)\n    }\n    locals.show = false\n  }\n\n  minWidth(columnIndex) {\n    if (!locals.calculatedMinWidth) {\n      return '0px'\n    }\n    return locals.calculatedMinWidth[columnIndex] + 30 + 'px'\n  }\n\n  resolveField(object, path) {\n    const parts = path.split('.')\n    let value = object\n\n    for (const part of parts) {\n      if (value == null) {\n        if (part === 'raw') {\n          return value\n        }\n\n        return undefined\n      }\n\n      value = value[part]\n    }\n\n    if (value === object) {\n      value = null\n    }\n\n    // console.log('resolveField', object, path, parts, value)\n    return value\n  }\n\n  get isDocumentConvertable() {\n    const data = this.dataByColumnName(params.columnName)\n\n    if (!data || !data.dataUrl) {\n      return false\n    }\n\n    const type = data.type\n\n    if (type == null || typeof type !== 'string') {\n      return false\n    }\n\n    for (const t of this.convertableTypes) {\n      if (t === type) {\n        return true\n      }\n    }\n\n    for (const t of this.covertableTypesStartingWith) {\n      if (type.startsWith(t)) {\n        return true\n      }\n    }\n\n    for (const t of this.convertableTypesIncluding) {\n      if (type.includes(t)) {\n        return true\n      }\n    }\n\n    return false\n  }\n\n}\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2017-11-24T15:48:57+01:00","by":"","from":"","client":"412955bd-5923-4b91-8f6b-df6b732e3ce8"},"modified":{"at":"2023-01-03T16:00:03+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720684627138,"ct":1720684627138,"a_depth":2,"a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"],"inheritedLocks":[null,null,null],"stamps":[],"previous":{"v":"ecddfb68d52a8760","f":{"id":"design-form","v":"9bfe8e0cd909c1f0","text":"Design"}},"meta":{"modified":{"at":"2024-07-11T09:57:07+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"c7329270-b55b-4068-bf93-49fc3791e40f","v":"9054f5456aa57411","p":"fallback-designs","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"table-title","template":"<span v-if=\"!data.name\" style=\"opacity: 0.5;\">\n  Unbenannt\n</span>\n<span :title=\"data.name\" v-else>\n  {{ data.name || document.id }}\n</span>","css":"._CSS {\n  overflow: hidden;\n  text-overflow: ellipsis;\n}","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2018-10-17T12:52:28+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2020-06-30T09:30:13+00:00","by":"8e6c22aa-8c69-4ff8-919a-7032841cf636","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720684627138,"ct":1720684627138,"a_depth":2,"a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"],"inheritedLocks":[null,null,null],"stamps":[],"previous":{"v":"2d47429746089a89","f":{"id":"design-form","v":"9bfe8e0cd909c1f0","text":"Design"}},"meta":{"modified":{"at":"2024-07-11T09:57:07+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"65eb09e7-7d32-465e-95be-81433627ebc1","v":"48875ddfb24cd25e","p":"fallback-designs","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"table:address","template":"<div class=\"_CSS-address\" v-if=\"controller.field\">\n  {{ controller.field.street }}\n  {{ controller.field.streetNumber}}<template v-if=\"controller.field.street || controller.field.streetNumber\">,</template>\n  {{ controller.field.postalCode }}\n  {{ controller.field.city }}\n  {{ controller.field.state }}\n  {{ controller.field.country }}\n</div>\n","css":"._CSS-address {\n  display: flex;\n}","controller":"get field() {\n  const value = this.resolveField(document, params.fieldName)\n\n  if (!value) {\n    return null\n  }\n\n  return value\n}\n\nresolveField(object, path) {\n  if (!object || !path) {\n    return\n  }\n\n  const parts = path.split('.')\n  let value = object\n\n  for (const part of parts) {\n    if (value == null) {\n      if (part === 'raw') {\n        return value\n      }\n\n      return undefined\n    }\n\n    value = value[part]\n  }\n\n  if (value === object) {\n    value = null\n  }\n\n  // console.log('resolveField', object, path, parts, value)\n  return value\n}\n ","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2019-04-02T11:37:56+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2020-06-30T09:30:13+00:00","by":"8e6c22aa-8c69-4ff8-919a-7032841cf636","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720684627138,"ct":1720684627138,"a_depth":2,"a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"],"inheritedLocks":[null,null,null],"stamps":[],"previous":{"v":"28af7590a27886f5","f":{"id":"design-form","v":"9bfe8e0cd909c1f0","text":"Design"}},"meta":{"modified":{"at":"2024-07-11T09:57:07+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"53a7dd48-8b8e-42ca-9345-1acabb64ce65","v":"ce865c979a35ee65","p":"fallback-designs","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"table:attachments-as-buttons-with-preview","template":"<div class=\"_CSS-attachments\">\n  <template v-for=\"attachment of controller.attachments\">\n    <button :title=\"attachment.text\" class=\"ae-button\" @click.stop=\"controller.showAttachment(attachment.id)\">\n      <ae-icon class=\"fa fa-file-alt\" aria-hidden=\"true\"></ae-icon>\n    </button>\n  </template>\n\n  <template v-if=\"locals.previewDocument\">\n      <ae-layout\n    ref=\"preview\"\n    layout-id=\"bbd6d99f-571d-422f-a2bc-15d3f8ecfae8\"\n    param-field-name=\"datei\"\n    :param-document=\"locals.previewDocument\"></ae-layout>\n  </template>\n</div>\n","css":"._CSS-dialog-header {\n  flex: 1;\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n\n  overflow: hidden;\n}\n\n._CSS-dialog__body {\n  outline: none;\n  margin: 0 !important;\n  flex: 1;\n  display: flex;\n}\n\n._CSS-attachments {\n  display: flex;\n  overflow: hidden;\n}\n","controller":"get fieldName() {\n  return params.fieldName && params.fieldName.replace('data.', '')\n}\n\nget attachments () {\n  const field = data[this.fieldName]\n\n  if (!field) {\n    return []\n  }\n\n  if (Array.isArray(field)) {\n    return field\n  }\n\n  return [field]\n}\n\nasync showAttachment(attachmentId) {\n  locals.previewDocument = await Aeppic.get(attachmentId)\n\n  await Aeppic.nextRenderPass()\n  await Aeppic.nextRenderPass()\n  await Aeppic.nextRenderPass()\n\n  $refs.preview.$emit('show')\n}","packages":[],"aliases":[],"description":"(should be) same as Apps/Medikamentenverzeichnis/fullscreen-button"},"locks":[],"created":{"at":"2018-12-06T14:21:36+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2020-06-30T09:30:13+00:00","by":"8e6c22aa-8c69-4ff8-919a-7032841cf636","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720684627138,"ct":1720684627138,"a_depth":2,"a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"],"inheritedLocks":[null,null,null],"stamps":[],"previous":{"v":"ac3ff439e7c290d6","f":{"id":"design-form","v":"9bfe8e0cd909c1f0","text":"Design"}},"meta":{"modified":{"at":"2024-07-11T09:57:07+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"0ae99587-3154-4ef3-821e-b5c59544cbe9","v":"ec4fcd143d4e56a4","p":"fallback-designs","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"table:avatar--small","template":"<template v-if=\"Array.isArray(data[controller.fieldName])\" >\n  <ae-design class=\"_CSS-icon__wrapper\" v-for=\"ref in data[controller.fieldName]\" name=\"avatar--small\" :document=\"ref\"></ae-design>\n</template>\n<ae-design v-else name=\"avatar--small\" :document=\"data[controller.fieldName]\"></ae-design>\n\n\n","css":"._CSS {\n  display: flex;\n  align-items: flex-start;\n  align-self: center;\n}\n\n._CSS-icon__wrapper {\n  padding: 0.1em;\n}","controller":"get fieldName() {\n  return params.fieldName.replace('data.', '')\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2019-01-18T13:03:40+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2021-04-30T12:31:05+00:00","by":"8e6c22aa-8c69-4ff8-919a-7032841cf636","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720684627138,"ct":1720684627138,"a_depth":2,"a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"],"inheritedLocks":[null,null,null],"stamps":[],"previous":{"v":"2f5a02321166ceef","f":{"id":"design-form","v":"e37099c040ec46e9","text":"Design"}},"meta":{"modified":{"at":"2024-07-11T09:57:07+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"a2869f98-0e09-4315-9fe0-8fdff05a31bf","v":"0722d301eb31b327","p":"fallback-designs","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"table:currency","template":"<div class=\"_CSS-currency\">\n  {{ controller.currency() }}\n</div>","css":"._CSS-currency {\n  display: flex;\n  justify-content: flex-end;\n}","controller":"init() {\n  this.field = this.resolveField(document, params.fieldName)\n  this.numberFormatter = new Intl.NumberFormat('de-DE', { style: 'currency', currency: this.field.currency || 'EUR' })\n}\n\ncurrency() {\n  if (!this.field) {\n    return ''\n  }\n  \n  if (typeof this.field === 'object') {\n    const value = (this.field.amount / Math.pow(10,this.field.precision))\n    return this.numberFormatter.format(value)\n  } else {\n    return this.numberFormatter.format(this.field)\n  }\n}\n\nresolveField(object, path) {\n  if (!object || !path) {\n    return\n  }\n\n  const parts = path.split('.')\n  let value = object\n\n  for (const part of parts) {\n    if (value == null) {\n      if (part === 'raw') {\n        return value\n      }\n\n      return undefined\n    }\n\n    value = value[part]\n  }\n\n  if (value === object) {\n    value = null\n  }\n\n  // console.log('resolveField', object, path, parts, value)\n  return value\n}\n ","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-04-30T11:43:16+00:00","by":"8e6c22aa-8c69-4ff8-919a-7032841cf636","from":"","client":"server"},"modified":{"at":"2022-11-23T15:56:23+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720684627138,"ct":1720684627138,"a_depth":2,"a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"],"inheritedLocks":[null,null,null],"stamps":[],"previous":{"v":"6254171e6c0d611b","f":{"id":"design-form","v":"e37099c040ec46e9","text":"Design"}},"meta":{"modified":{"at":"2024-07-11T09:57:07+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"bb50c099-edea-457b-b18a-17f2f9a0c657","v":"a994bb41c5f41920","p":"fallback-designs","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"table:date","template":"<div class=\"_CSS-date\">\n  {{ controller.date() }}\n</div>","css":"._CSS-date {\n  display: flex;\n  justify-content: flex-end;\n}","controller":"date() {\n  const value = this.resolveField(document, params.fieldName)\n\n  if (!value) {\n    return ''\n  }\n\n  return Aeppic.DateTime.fromISO(value).toLocaleString()\n}\n\nresolveField(object, path) {\n  if (!object || !path) {\n    return\n  }\n\n  const parts = path.split('.')\n  let value = object\n\n  for (const part of parts) {\n    if (value == null) {\n      if (part === 'raw') {\n        return value\n      }\n\n      return undefined\n    }\n\n    value = value[part]\n  }\n\n  if (value === object) {\n    value = null\n  }\n\n  // console.log('resolveField', object, path, parts, value)\n  return value\n}\n ","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2019-01-23T14:27:03+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2021-09-29T13:57:02+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720684627138,"ct":1720684627138,"a_depth":2,"a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"],"inheritedLocks":[null,null,null],"stamps":[],"previous":{"v":"bd5a40c1a65129a5","f":{"id":"design-form","v":"9bfe8e0cd909c1f0","text":"Design"}},"meta":{"modified":{"at":"2024-07-11T09:57:07+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"b0e6bc04-b46f-472e-823e-4b64cd79cc0f","v":"e8ae23e4c65eb55e","p":"fallback-designs","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"table:datetime","template":"<div class=\"_CSS-date\">\n  {{ controller.date() }}\n</div>","css":"._CSS-date {\n  display: flex;\n  justify-content: flex-start;\n}","controller":"date() {\n  const value = this.resolveField(document, params.fieldName)\n\n  if (!value) {\n    return ''\n  }\n\n  return Aeppic.DateTime.fromISO(value).toLocaleString(Aeppic.DateTime.DATETIME_MED)\n}\n\nresolveField(object, path) {\n  if (!object || !path) {\n    return\n  }\n\n  const parts = path.split('.')\n  let value = object\n\n  for (const part of parts) {\n    if (value == null) {\n      if (part === 'raw') {\n        return value\n      }\n\n      return undefined\n    }\n\n    value = value[part]\n  }\n\n  if (value === object) {\n    value = null\n  }\n\n  // console.log('resolveField', object, path, parts, value)\n  return value\n}\n ","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2019-01-23T14:33:40+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2020-06-30T09:30:13+00:00","by":"8e6c22aa-8c69-4ff8-919a-7032841cf636","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720684627138,"ct":1720684627138,"a_depth":2,"a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"],"inheritedLocks":[null,null,null],"stamps":[],"previous":{"v":"6bb895f54352de22","f":{"id":"design-form","v":"9bfe8e0cd909c1f0","text":"Design"}},"meta":{"modified":{"at":"2024-07-11T09:57:07+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"feb4f640-353a-4888-95fc-9c042c434d39","v":"235cf5b6aff5265a","p":"fallback-designs","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"table:duration","template":"<div class=\"_CSS-duration\" v-if=\"locals.duration\">\n  <ae-icon class=\"fa fa-hourglass-end\"></ae-icon>\n  {{ locals.duration.readable  }}\n</div>","css":"._CSS-date {\n  display: flex;\n  justify-content: flex-start;\n}","controller":"init() {\n  locals.duration = this.getDuration()\n}\n\n\ngetDuration() {\n  const value = this.resolveField(document, params.fieldName)\n\n  if (!value) {\n    return { readable: '-', millis: 0 }\n  }\n\n  const duration = Aeppic.DateTimeDuration.fromObject(value)\n  return { readable: duration.toFormat(\"hh'h' mm 'm'\"), millis: duration.valueOf() }\n}\n\nresolveField(object, path) {\n  if (!object || !path) {\n    return\n  }\n\n  const parts = path.split('.')\n  let value = object\n\n  for (const part of parts) {\n    if (value == null) {\n      if (part === 'raw') {\n        return value\n      }\n\n      return undefined\n    }\n\n    value = value[part]\n  }\n\n  if (value === object) {\n    value = null\n  }\n\n  // console.log('resolveField', object, path, parts, value)\n  return value\n}\n ","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-06-23T14:07:20+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-06-23T14:07:20+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720684627139,"ct":1720684627139,"a_depth":2,"a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"],"inheritedLocks":[null,null,null],"stamps":[],"previous":{"v":"initial","f":{"id":"design-form","v":"49954170df6a253b","text":"Design"}},"meta":{"modified":{"at":"2024-07-11T09:57:07+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"4b9ab58d-791c-459a-903f-b38d7521bcad","v":"f46689386928588c","p":"fallback-designs","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"table:duration-sums","template":"<div class=\"_CSS-duration\" v-if=\"locals.duration\">\n  <ae-icon class=\"fa fa-hourglass-end\"></ae-icon>\n  {{ locals.duration.readable  }}\n</div>\n","css":"._CSS-date {\n  display: flex;\n  justify-content: flex-start;\n}","controller":"init() {\n  this.EMPTY_RESULT = { readable: '-', millis: 0 }\n  locals.duration = this.getDuration()\n}\n\n\ngetDuration() {\n  const value =this.valueByDateColumn(document, params.fieldName)\n\n  if (!value) {\n    return this.EMPTY_RESULT\n  }\n\n  const parsed = typeof value === 'object' ? value : JSON.parse(value)\n\n  const sum = parsed\n\n  if (!sum || Object.values(sum).length === 0) {\n    return this.EMPTY_RESULT\n  }\n\n  const duration = Aeppic.DateTimeDuration.fromObject(sum)\n  return { readable: duration.toFormat(\"hh'h' mm 'm'\"), millis: duration.valueOf() }\n}\n\nvalueByDateColumn(doc, columnName) {\n  const [rawDatePart, rawFieldPart] = columnName.split('_')\n  const accessor = rawDatePart.replace(/date\\.(month|year|day)\\./gi, '')\n  const field = this.resolveField(doc, rawFieldPart)\n\n  if (!field || field === '{}') {\n    return null\n  }\n\n  const parsed = JSON.parse(field)\n  return parsed[accessor]\n}\n\nresolveField(object, path) {\n  if (!object || !path) {\n    return\n  }\n\n  const parts = path.split('.')\n  let value = object\n\n  for (const part of parts) {\n    if (value == null) {\n      if (part === 'raw') {\n        return value\n      }\n\n      return undefined\n    }\n\n    value = value[part]\n  }\n\n  if (value === object) {\n    value = null\n  }\n\n  // console.log('resolveField', object, path, parts, value)\n  return value\n}\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-06-23T14:07:25+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-11-07T12:23:37+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720684627139,"ct":1720684627139,"a_depth":2,"a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"],"inheritedLocks":[null,null,null],"stamps":[],"previous":{"v":"9c9b55fa5b885a1e","f":{"id":"design-form","v":"49954170df6a253b","text":"Design"}},"meta":{"modified":{"at":"2024-07-11T09:57:07+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"3c8d156b-b87b-4a6f-b66a-7b5cbc3d397b","v":"initial","p":"f8fd3176-4995-455f-a8a8-d2742a836816","f":{"id":"design-form","v":"24435d748c76f819","text":"Design"},"data":{"name":"table:icon-rating","template":"<div v-for=\"n of data.bewertung\">\n  <ae-icon class=\"fa fa-crown\"></ae-icon>\n</div>","css":"._CSS {\n  display: flex;\n}","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2019-08-22T12:19:56+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2019-08-22T12:19:56+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1566476396392,"ct":1566476396391,"a_depth":4,"a":["apps","bc036ad0-6dbc-415b-b506-325fb0a44046","8ffb21f4-3d63-4824-a633-10a19d7aa7d8","f8fd3176-4995-455f-a8a8-d2742a836816"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"f47639df-2fbd-4802-b06b-cf6b2ddbb960","v":"initial","p":"275b807f-7dbb-4351-b731-669e275fa97d","f":{"id":"design-form","v":"3a761d06f59c46c1","text":"Design"},"data":{"name":"table:index-picture-thumbnail","template":"<ae-design  name=\"thumbnail\"\n            :document=\"locals.indexPicture\"\n            :param-responsive=\"true\"\n></ae-design>","css":"","controller":"class Controller {\n  async init() {\n    locals.indexPicture = null\n\n    Aeppic.watch(document.id, () => this.onUpdate())\n  }\n\n  async onUpdate() {\n    if (!data.files.length) {\n      locals.indexPicture = await Aeppic.get('8e7da3a4-0171-4ccf-9ef9-2b962c07a9d0')\n      return\n    }\n\n    locals.indexPicture = await Aeppic.get(data.files[0])\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-10-13T10:11:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2020-10-13T10:11:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1602583892842,"ct":1602583892842,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","275b807f-7dbb-4351-b731-669e275fa97d"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"a8fb53ff-a315-4587-98a3-1843446a20b2","v":"2aeb97bfcbffbddf","previous":{"v":"initial"},"p":"3090c06d-faea-41f6-a6ea-846b900faad5","f":{"id":"design-form","v":"24435d748c76f819","text":"Design"},"data":{"name":"table:number-of-files","template":"<div class=\"_CSS-line\" v-if=\"locals.numberOfFiles\" :title=\"locals.numberOfFiles + ' Dateien angehängt'\">\n  <ae-icon class=\"fa fa-file\"></ae-icon> {{ locals.numberOfFiles }}\n</div>","css":"","controller":"async init() {\n  const form = await Aeppic.getFormForDocument(document)\n  const refFields = form.fields.filter(field => field.subType === 'ref')\n  const count = refFields.reduce((count, field) => {\n    return count + document.data[field.name].length\n  }, 0)\n  locals.numberOfFiles = count\n}\n  \n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-05-08T08:51:31+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2021-01-14T09:34:52+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1610616892716,"ct":1588927891109,"a_depth":4,"a":["apps","a590ce5b-28fc-4f85-9049-d006e1b8f880","169e87e0-0379-48e1-8c94-8fadac5969bb","3090c06d-faea-41f6-a6ea-846b900faad5"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"da39356a-2263-460c-8507-07912f67d15a","v":"50b43bc613ee4892","p":"fallback-designs","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"table:number-sums","template":"<div class=\"_CSS-number\" v-if=\"locals.number\">\n  <ae-icon class=\"fa fa-sigma\"></ae-icon>\n  {{ locals.number  }}\n</div>\n","css":"._CSS-date {\n  display: flex;\n  justify-content: flex-start;\n}","controller":"init() {\n  locals.number = this.getNumber()\n}\n\n\ngetNumber() {\n  const value = this.valueByDateColumn(document, params.fieldName)\n\n  if (!value) {\n    return null\n  }\n\n  const parsed = typeof value === 'object' ? value : JSON.parse(value)\n  return parsed || null\n}\n\nvalueByDateColumn(doc, columnName) {\n  const [rawDatePart, rawFieldPart] = columnName.split('_')\n  const accessor = rawDatePart.replace(/date\\.(month|year|day)\\./gi, '')\n  const field = this.resolveField(doc, rawFieldPart)\n\n  if (!field || field === '{}') {\n    return null\n  }\n\n  const parsed = JSON.parse(field)\n  return parsed[accessor]\n}\n\n\nresolveField(object, path) {\n  if (!object || !path) {\n    return\n  }\n\n  const parts = path.split('.')\n  let value = object\n\n  for (const part of parts) {\n    if (value == null) {\n      if (part === 'raw') {\n        return value\n      }\n\n      return undefined\n    }\n\n    value = value[part]\n  }\n\n  if (value === object) {\n    value = null\n  }\n\n  // console.log('resolveField', object, path, parts, value)\n  return value\n}\n ","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-06-23T14:07:27+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-11-07T12:22:59+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720684627139,"ct":1720684627139,"a_depth":2,"a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"],"inheritedLocks":[null,null,null],"stamps":[],"previous":{"v":"99c981fac8141c9d","f":{"id":"design-form","v":"49954170df6a253b","text":"Design"}},"meta":{"modified":{"at":"2024-07-11T09:57:07+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"fe607ef5-2840-4769-b5ca-7e31019dba8c","v":"f6a136b7cd0a11fe","p":"fallback-designs","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"table:quill-as-text","template":"<ae-control name=\"editor-light\" :field-name=\"controller.fieldName\" :document=\"document\" :readonly=\"true\"></ae-control>\n","css":"._CSS {\n  overflow: hidden;\n  display: flex;\n}\n\n._CSS .quill-container {\n  font-size: 16px;\n}","controller":"get fieldName() {\n  return params.fieldName.replace('data.', '')\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2018-09-03T14:04:30+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2020-06-30T09:30:13+00:00","by":"8e6c22aa-8c69-4ff8-919a-7032841cf636","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720684627139,"ct":1720684627139,"a_depth":2,"a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"],"inheritedLocks":[null,null,null],"stamps":[],"previous":{"v":"d27713ef9b7258fd","f":{"id":"design-form","v":"9bfe8e0cd909c1f0","text":"Design"}},"meta":{"modified":{"at":"2024-07-11T09:57:07+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"6e1059b9-f2a9-427f-8786-ef0b46b7185f","v":"6639a59bfd0b43e4","p":"fallback-designs","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"table:switch","template":"<div class=\"_CSS-switch\">\n  {{ controller.value() }}\n</div>\n","css":"._CSS-date {\n  display: flex;\n}","controller":"class Controller {\n  async init() {\n    locals.form = null\n    locals.form = await Aeppic.getFormForDocument(document)\n  }\n\n  value() {\n    if (!locals.form) {\n      return null\n    }\n    \n    const value = this.resolveField(document, params.fieldName)\n\n    if (!value) {\n      return ''\n    }\n\n    return locals.form.getPlaceholder(params.fieldName.replace('data.', ''))?.field.settings.options.find(opt => opt.value === value)?.display || value\n  }\n\n  resolveField(object, path) {\n    if (!object || !path) {\n      return\n    }\n\n    const parts = path.split('.') \n    let value = object\n\n    for (const part of parts) {\n      if (value == null) {\n        if (part === 'raw') {\n          return value\n        }\n\n        return undefined\n      }\n\n      value = value[part]\n    }\n\n    if (value === object) {\n      value = null\n    }\n\n    // console.log('resolveField', object, path, parts, value)\n    return value\n  }\n}\n ","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-08-19T11:10:38+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-08-19T11:17:21+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720684627139,"ct":1720684627139,"a_depth":2,"a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"],"inheritedLocks":[null,null,null],"stamps":[],"previous":{"v":"70dd004ea234b433","f":{"id":"design-form","v":"9bfe8e0cd909c1f0","text":"Design"}},"meta":{"modified":{"at":"2024-07-11T09:57:07+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"dab75162-9ff9-4474-8ae4-168d03d34509","v":"70bf54b5395f6213","previous":{"v":"a88380adfa5d0383"},"p":"98c77209-1245-43d6-90b5-8625183f470c","f":{"id":"design-form","v":"baf08f1171a94bca","text":"Design"},"data":{"name":"table:tasks","template":"  <div class=\"_CSS-progress\" style=\"position:relative; display:flex;\">\n    <div v-if=\"controller.progress.closed\" title=\"Erledigte\" class=\"_CSS-progress__value _CSS-progress__closed\" :style=\"{ width: controller.progress.closedPercentile + '%' }\">\n      <span>\n      {{ controller.progress.closed }}\n      </span>\n    </div>\n    <div v-if=\"controller.progress.open\" title=\"Offene\" class=\"_CSS-progress__value _CSS-progress__open\" :style=\"{ width: controller.progress.openPercentile + '%' }\">\n      <span>\n      {{ controller.progress.open }}\n      </span>\n    </div>\n  </div>\n</div>\n\n","css":"._CSS {\n  max-width: 200px;\n  margin: 0 0.5rem;\n}\n\n._CSS-progress {\n  display: flex;\n  position: relative;\n  border-radius: var(--ae-border-radius);\n}\n\n._CSS-progress__title {\n  display: flex;\n  justify-content: center;\n  font-size: 14px;\n  height: 20px;\n  color: var(--ae-foreground-l2);\n}\n\n._CSS-progress__value {\n  height: 8px;\n\n  display: flex;\n  justify-content: center;\n  color: var(--ae-foreground-l1);\n}\n\n._CSS-progress > ._CSS-progress__value:first-child {\n  border-top-left-radius: var(--ae-border-radius);\n  border-bottom-left-radius: var(--ae-border-radius);\n}\n\n._CSS-progress > ._CSS-progress__value:last-child {\n  border-top-right-radius: var(--ae-border-radius);\n  border-bottom-right-radius: var(--ae-border-radius);\n}\n\n._CSS-progress__value > * {\n  padding: 7px;\n}\n\n._CSS-progress__overdue {\n  background: rgb(255, 122, 109);\n}\n\n\n._CSS-progress__open {\n  background: rgb(182, 182, 182);\n}\n\n._CSS-progress__closed {\n  background: rgba(9, 113, 178, 0.708);\n  /* background: rgb(129, 203, 0); */\n}\n","controller":"class Controller {\n  async init() {\n    locals.tasksClosed = 0\n    locals.tasksOpen = 0\n    locals.regularTasksClosed = 0\n    locals.regularTasksOpen = 0\n    \n    await Promise.all([\n      this.fetchTasks(),\n      this.fetchRegularTasks()\n    ])\n  }\n\n  async fetchRegularTasks() {\n    // TODO: use query subscriptions\n\n    const tasks = await Aeppic.getAll(data.aufgaben)\n    \n    const counter = {\n      closed: 0,\n      open: 0\n    }\n  \n    for (const task of tasks) {\n      if (!task) {\n        continue\n      }\n\n      if (task.data.erledigt) {\n        counter.closed += 1\n        continue\n      }\n\n      counter.open += 1\n    }\n\n    locals.regularTasksClosed = counter.closed\n    locals.regularTasksOpen = counter.open\n  }\n\n  async fetchTasks() {\n    // TODO: use query subscriptions. This will result in falsy results because tasks are not cleaned up.\n    // Example for no-cleanup: Add kfwEnev (with it's tasks) and click \"Abbrechen\" in the toolbar. kfwEnev is not added to project but not removed either.\n    // Example for cleanup: Add kfwEnev to project and click \"Speichern\". Remove kfwEnev and click \"speichern\". kfwEnev is removed.\n    // Aeppic.subscribeQuery('d6acf8de-628a-44b7-b15e-fc4639140922', document.id, (tasks) => locals.tasksClosed = tasks.length)\n    // Aeppic.subscribeQuery('a75b9bef-9733-42da-b048-71a4d9b97448', document.id, (tasks) => { locals.tasksOpen = tasks.length })\n\n    const listReferences = [\n      ...data.kfwEnev,\n      ...data.enev,\n      ...data.energieausweis,\n      ...data.blowerDoorTest,\n      ...data.brandschutz,\n      ...data.brandschutzbauleitung,\n      ...data.schallschutz,\n      ...data.schallschutzKontrollen,\n      ...data.schallschutzmessung,\n      ...data.simulation,\n      ...data.architektur,\n      ...data.wohngebaeudeSanierung,\n      ...data.nichtWohngebaeudeSanierung,\n      ...data.wohngebaeudeNeubau,\n      ...data.nichtWohngebaeudeNeubau,\n      ...data.elektrotechnik,\n      ...data.heizungLueftungSanitaer,\n      ...data.tragwerksplanung,\n      ...data.nachhaltigkeit,\n      ...data.sachverstaendige,\n    ].filter(ref => ref.id)\n\n    const lists = await Aeppic.getAll(listReferences)\n    const taskReferences = []\n\n    for (const list of lists) {\n      if (!list) {\n        continue\n      }\n\n      taskReferences.push(...list.data.aufgaben)\n    }\n    \n    const tasks = await Aeppic.getAll(taskReferences)\n\n    let closed = 0\n    let open = 0\n\n    for (const task of tasks) {\n      if (!task || task.data.inaktiv) {\n        continue\n      }\n\n      if (task.data.erledigt) {\n        closed += 1\n      } else {\n        open += 1\n      }\n    }\n\n    locals.tasksOpen = open\n    locals.tasksClosed = closed\n  }\n\n  get progress() {\n    const open = locals.tasksOpen + locals.regularTasksOpen\n    const closed = locals.tasksClosed + locals.regularTasksClosed\n    const all = open + closed\n\n    if (all === 0) {\n      return {}\n    }\n\n    const percentile = 100 / all\n\n    return {\n      openPercentile: open * percentile,\n      closedPercentile: closed * percentile,\n      open,\n      closed,\n      all\n    }\n  }\n}\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2019-05-20T15:28:38+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2024-12-06T08:49:57+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1733474997059,"ct":1621605885101,"a_depth":4,"a":["apps","94a64d89-d204-4918-b147-d717914fb03e","f254ce25-42f1-4333-8ee7-23554bf746c1","98c77209-1245-43d6-90b5-8625183f470c"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"6c732418-13a1-4327-9be7-7f32deda0c32","v":"048235ff473bfd5f","p":"fallback-designs","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"table:title-as-link","template":"<a v-if=\"locals.allowLinkNavigation\" class=\"ae-link\" :href=\"locals.document.id\" @click.stop.prevent=\"Aeppic.onLinkClicked($event, locals.document.id)\" @click.right.stop>\n  <ae-design name=\"title\" :params=\"params\" v-on=\"$listeners\" :document-id=\"locals.document.id\"></ae-design>\n</a>\n<ae-design v-else name=\"title\" :params=\"params\" v-on=\"$listeners\" :document-id=\"locals.document.id\"></ae-design>","css":"","controller":"init() {\n  this.FORMS = {\n    Unternehmen: 'c69a0c1c-6c53-40c2-87e8-5ace866bf1df'\n  }\n  \n  locals.document = document.data[params.fieldName.replace('data.', '')]\n\n  // NOTE: this is intentionally checking the original document and not the field because any async document-get tends to make the table laggy\n  locals.allowLinkNavigation = document.a_forms[0] === this.FORMS.Unternehmen\n}\n\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-06-23T14:07:22+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-06-23T14:07:22+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720684627140,"ct":1720684627140,"a_depth":2,"a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"],"inheritedLocks":[null,null,null],"stamps":[],"previous":{"v":"initial","f":{"id":"design-form","v":"65801907e0c30697","text":"Design"}},"meta":{"modified":{"at":"2024-07-11T09:57:07+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"89932291-cbab-405b-809e-36bb13bf49bc","v":"fcf8121f92d8ac14","previous":{"v":"ccc520be622e2512"},"p":"98c77209-1245-43d6-90b5-8625183f470c","f":{"id":"design-form","v":"24435d748c76f819","text":"Design"},"data":{"name":"table:tracked-time","template":"<template v-if=\"locals.duration\">\n  <ae-icon class=\"fa fa-hourglass-end\"></ae-icon>\n  {{ locals.readableDuration  }}\n</template>","css":"","controller":"class Controller {\n init() {\n    locals.readableDuration = ''\n    locals.duration = 0\n\n    this.updateDuration()\n  }\n\n  async updateDuration() {\n    const documents = await Aeppic.query('dd148098-bd15-4baa-a4ce-df14e495c629', document.id)\n    // Aeppic.subscribeQuery('dd148098-bd15-4baa-a4ce-df14e495c629', document.id, (documents) => {\n      const { readable, millis } = this.totalDuration(documents)\n      locals.readableDuration = readable\n      locals.duration = millis\n    // })\n  }\n\n  totalDuration(trackings) {\n    const duration = trackings.reduce((prev, cur) => {\n      if (prev) {\n        return Aeppic.DateTimeDuration.fromObject(cur.data.dauer).plus(prev)\n      }\n\n      return Aeppic.DateTimeDuration.fromObject(cur.data.dauer)\n    }, null)\n\n    if (duration) {\n      return { readable: duration.toFormat(\"hh'h' mm 'm'\"), millis: duration.valueOf() }\n    }\n\n    return { readable: '-', millis: 0 }\n  }\n\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2019-08-22T12:20:31+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2020-09-17T11:55:22+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1600343722607,"ct":1566476431167,"a_depth":4,"a":["apps","94a64d89-d204-4918-b147-d717914fb03e","f254ce25-42f1-4333-8ee7-23554bf746c1","98c77209-1245-43d6-90b5-8625183f470c"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"79159282-64c3-4396-bd06-bff83d0f1ca2","v":"37a135c2dfc9e202","previous":{"v":"966db3e98198ed64"},"p":"98c77209-1245-43d6-90b5-8625183f470c","f":{"id":"design-form","v":"24435d748c76f819","text":"Design"},"data":{"name":"table:uploads","template":"<template v-if=\"locals.formulare\">\n  {{ locals.formulare }} <ae-icon class=\"fa fa-envelope\"></ae-icon> \n</template>\n<template v-if=\"locals.uploads\">\n  {{ locals.uploads }} <ae-icon class=\"fa fa-file-alt\"></ae-icon>\n</template>\n","css":"._CSS {\n  max-width: 200px;\n}\n\n._CSS-progress {\n  display: flex;\n  position: relative;\n}\n\n._CSS-progress__title {\n  display: flex;\n  justify-content: center;\n  font-size: 14px;\n  height: 20px;\n  color: var(--ae-foreground-l2);\n}\n\n._CSS-progress__value {\n  height: 8px;\n\n  display: flex;\n  justify-content: center;\n  color: var(--ae-foreground-l1);\n}\n\n._CSS-progress__value > * {\n  padding: 7px;\n}\n\n._CSS-progress__overdue {\n  background: rgb(255, 122, 109);\n}\n\n\n._CSS-progress__open {\n  background: rgb(182, 182, 182);\n}\n\n._CSS-progress__closed {\n  background: rgba(9, 113, 178, 0.708);\n  /* background: rgb(129, 203, 0); */\n}\n","controller":"init() {\n  locals.uploads = 0\n  locals.formulare = 0\n\n  Aeppic.subscribeQuery('a8e3e8e0-e41d-4f42-b81e-ab3134e0e604', document.id, (formulare) => { \n    locals.formulare = formulare.length\n    locals.uploads = formulare.reduce((prev, mail) => prev + mail.data.uploads.length, 0)\n  })\n}\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2019-08-22T12:20:31+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2020-09-17T11:55:22+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1600343722612,"ct":1566476431570,"a_depth":4,"a":["apps","94a64d89-d204-4918-b147-d717914fb03e","f254ce25-42f1-4333-8ee7-23554bf746c1","98c77209-1245-43d6-90b5-8625183f470c"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"959e6a80-60d7-4d1f-80d0-f33011bc3b22","v":"0a9ee77a68ed5b44","p":"fallback-designs","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"table:url","template":"<a class=\"_CSS-url\" v-if=\"controller.field\" :href=\"'mailto:' + controller.field\" @click.stop>\n  {{ controller.field }}\n</a>\n","css":"","controller":"get field() {\n  const value = this.resolveField(document, params.fieldName)\n\n  if (!value) {\n    return null\n  }\n\n  return value\n}\n\nresolveField(object, path) {\n  if (!object || !path) {\n    return\n  }\n\n  const parts = path.split('.')\n  let value = object\n\n  for (const part of parts) {\n    if (value == null) {\n      if (part === 'raw') {\n        return value\n      }\n\n      return undefined\n    }\n\n    value = value[part]\n  }\n\n  if (value === object) {\n    value = null\n  }\n\n  // console.log('resolveField', object, path, parts, value)\n  return value\n}\n ","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2019-09-13T09:19:04+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2020-06-30T09:30:13+00:00","by":"8e6c22aa-8c69-4ff8-919a-7032841cf636","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720684627140,"ct":1720684627140,"a_depth":2,"a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"],"inheritedLocks":[null,null,null],"stamps":[],"previous":{"v":"3faf3d69226fdd24","f":{"id":"design-form","v":"9bfe8e0cd909c1f0","text":"Design"}},"meta":{"modified":{"at":"2024-07-11T09:57:07+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"80ce515e-aad1-4869-a365-621d8ded775e","v":"2daf6d87e418ce87","p":"fallback-designs","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"tag","template":"<div  class=\"_CSS-tag-container ae-navigatable\" \r\n      @click.stop=\"$emit('selected', document)\"\r\n>\r\n  <ae-design class=\"_CSS-tag\" :name=\"params.titleDesign + ',tag-title,title'\" :document=\"document\" :params=\"params\" @selected=\"$emit('selected', $event)\"></ae-design>  \r\n  <button v-if=\"params.showRemove\" class=\"ae-button _CSS-button\" @click.stop=\"$emit('remove', document)\"><ae-icon class=\"fal fa-times\"></ae-icon></button>\r\n</div>\r\n","css":"._CSS {\r\n  xmargin: var(--ae-size-1);\r\n  min-width: 0;\r\n}\r\n\r\n._CSS-tag-container {\r\n  padding: var(--ae-size-1) var(--ae-size-2);\r\n  background: var(--ae-ui-background);\r\n  border-radius: var(--ae-border-radius);\r\n  border: var(--ae-border-width) solid var(--ae-border-color);\r\n  display: flex; \r\n  align-items: center;\r\n  justify-content: space-between;\r\n}\r\n\r\n\r\n._CSS-tag--clickable {\r\n  cursor: pointer;\r\n}\r\n\r\n._CSS-tag {\r\n  overflow: hidden;\r\n}\r\n\r\n@media print {\r\n  ._CSS-tag-container {\r\n    background: transparent;\r\n  }\r\n\r\n  ._CSS-button {\r\n    display:none;\r\n  }\r\n}","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2017-11-21T16:11:09+01:00","by":"","from":"","client":"c4d8ebff-07eb-4070-bb90-4e8ed5466226"},"modified":{"at":"2021-07-29T13:38:38+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720684627140,"ct":1720684627140,"a_depth":2,"a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"],"inheritedLocks":[null,null,null],"stamps":[],"previous":{"v":"6766acbe9dca8dc1","f":{"id":"design-form","v":"9bfe8e0cd909c1f0","text":"Design"}},"meta":{"modified":{"at":"2024-07-11T09:57:07+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"8662f77e-9ddb-46d6-992e-6a5df3d9ab81","v":"e08204c1ea309178","p":"a2dc56cc-cc32-44e5-8c87-433123cc7af5","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"tag","template":"<div  class=\"ae-navigatable w-100 flex-1 flex items-start border-solid border rounded shadow p-2\" \n     @click.prevent.stop=\"$emit('selected', document)\">\n  <div class=\"bg-white flex-1\" >\n    <div class=\"font-semibold text-gray-700 \">\n      <span>{{data.vorname}} {{data.nachname}}</span>\n      <span v-if=\"data.position\" class=\"text-slate-500 text-sm\">- {{data.position}}</span>\n    </div>\n    <div class=\"text-sm flex flex-col items-start\">\n      <a  v-for=\"phone of [data.phone1, data.phone2, data.phone3]\"\n          v-if=\"phone\" \n          @click.stop=\"\"\n          :href=\"'tel:' + phone\"\n          class=\"w-auto hover:underline\"\n        >\n        <ae-icon class=\"fa fa-phone opacity-50\"></ae-icon>\n        <span :title=\"phone\">{{phone}}</span>\n      </a>\n      <p v-if=\"data.fax\"> \n        <ae-icon class=\"fa fa-fax opacity-50\"></ae-icon>\n        <span>{{data.fax}}</span>\n      </p> \n    </div>\n    <a v-if=\"data.email\"\n        @click.stop=\"\"\n        :href=\"'mailto:' + data.email\" \n        class=\"text-sm hover:underline\">\n        <ae-icon class=\"fa fa-envelope opacity-50\"></ae-icon>\n      <span>{{data.email}}</span> \n    </a>\n  </div>\n  <button v-if=\"params.showRemove\" class=\"ae-button _CSS-button flex-initial\" @click.stop=\"$emit('remove', document)\"><ae-icon class=\"fal fa-times\"></ae-icon></button>\n</div>\n","css":"._CSS {\n  width: 100%;\n  display: flex;\n}","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-02-08T12:10:00+00:00","by":"427610a9-39dc-4014-9176-5f72aeb23263","from":"","client":"server"},"modified":{"at":"2023-05-17T12:54:23+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1718866007163,"ct":1718866007163,"a_depth":4,"a":["apps","deeef973-ce03-4557-bf75-75a059001767","e7de598c-6f5a-4ab4-a33b-213ca86e489d","a2dc56cc-cc32-44e5-8c87-433123cc7af5"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[],"previous":{"v":"d6c4f0b7a82edca7","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"}},"meta":{"modified":{"at":"2024-06-20T08:46:47+02:00","by":"427610a9-39dc-4014-9176-5f72aeb23263","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"ec597c2d-6d5e-4f13-9e6c-f2d6ca33fd42","v":"81090116a7e10083","cloneOf":{"id":"f9ba5cb4-6597-43de-b3ce-d842ed98354f","v":"15474998811be337","text":"rd:tag"},"originalCloneOf":{"id":"f9ba5cb4-6597-43de-b3ce-d842ed98354f","v":"15474998811be337","text":"rd:tag"},"previous":{"v":"3ad995df5874ade1"},"p":"e9f42b0b-50dd-4e21-9152-02c89b73c6d7","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"tag-copy-positions","template":"<div  class=\"border rounded-md p-1 flex flex-col gap-2 bg-white dark:bg-slate-800 cursor-pointer\" \n      @click.stop=\"$emit('selected', document)\"\n>\n  <div class=\"flex-1 flex gap-1\">\n    <ae-design name=\"rd:icon,icon\" :document=\"document\"></ae-design>\n    <ae-design name=\"title\" :document=\"document\"></ae-design>\n\n    <div class=\"flex-1\"></div>\n\n    <div v-if=\"!params.readonly\" \n        @click.stop=\"$emit('remove', document)\"\n        class=\"text-neutral-400 dark:text-neutral-200 px-1  bg-neutral-100 dark:bg-slate-700 hover:bg-neutral-200 dark:hover:bg-slate-600 rounded-full\"\n    >\n      <ae-icon class=\"far fa-times\"></ae-icon>\n    </div>\n  </div>\n\n  <ae-list list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\"\n            :documents=\"data.positionen\"\n            param-design=\"rd:card-copy-to-invoice\"\n            :param-design-params=\"params\"\n            v-if=\"locals.show\"\n  ></ae-list>    \n\n  <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n            :param-icon-right=\"locals.show ? 'far fa-caret-up' : 'far fa-caret-down'\"\n            param-text=\"Positionen anzeigen\"\n            @selected=\"locals.show = !locals.show\"\n            param-classes=\"text-neutral-600 text-sm\" \n            param-border=\"border\"\n  ></ae-layout> \n</div>     ","css":"","controller":"class Controller {\n  async init() {\n    locals.show = false\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-05-07T08:51:53+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-05-07T09:51:15+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1715075475588,"ct":1715071913894,"a_depth":4,"a":["apps","0924db0f-7095-4b51-8966-bad1e45d68ec","a3b935e7-60bc-4996-9b18-668e4361067f","e9f42b0b-50dd-4e21-9152-02c89b73c6d7"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"149222be-5697-4853-982c-96471fdc0c5a","v":"initial","p":"5931d734-987a-483f-b948-b1b31dedae74","f":{"id":"design-form","v":"3385ac6766f32638","text":"Design"},"data":{"name":"tag-title","template":"<img height=\"150px\" :src=\"Aeppic.Content.getSrc(document, 'photo')\">\r\n<ae-design name=\"title\" :document=\"document\"></ae-design>\r\n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-11-02T09:38:37+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-11-02T09:38:37+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1635845917731,"ct":1635845917731,"a_depth":4,"a":["apps","781ff5de-69db-49dc-99f0-f328b308cd7d","dbd0bd68-3479-4032-9303-9d51615c27a7","5931d734-987a-483f-b948-b1b31dedae74"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"169ab438-f03c-4f92-96af-e1f46bdd635a","v":"initial","p":"a04c8913-db48-4e80-b20d-0f3cc17a778c","f":{"id":"design-form","v":"e7284adf8f42da65","text":"Design"},"data":{"name":"tag-title","template":"<ae-design style=\"display:inline-block;\" name=\"icon\" :document=\"document\"></ae-design>\n<ae-design style=\"display:inline-flex;\" name=\"title\" :document=\"document\"></ae-design>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-09-01T09:49:45+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2020-09-01T09:49:45+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1598953785654,"ct":1598953785653,"a_depth":4,"a":["apps","45ada186-e9fd-451d-9dbd-2defc0b4f86f","4ec6a0e5-cf2d-4095-9b70-2e31a64d5679","a04c8913-db48-4e80-b20d-0f3cc17a778c"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"1712d1c6-55b7-4f88-bff2-fd59996a62d5","v":"a362b7aa4f43d24d","previous":{"v":"940e6691902564f7"},"p":"d2ac3563-3c3f-4f02-b923-9b67abf98d10","f":{"id":"design-form","v":"24435d748c76f819","text":"Design"},"data":{"name":"tag-title","template":"<ae-design name=\"avatar--resizes-with-font\" :document=\"document\" style=\"margin-right: var(--ae-size-2)\"></ae-design>\n<ae-design name=\"title\" :document=\"document\"></ae-design>","css":"._CSS {\n  display: flex;\n  xalign-items: baseline;\n}\n","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2019-05-31T12:56:48+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2019-05-31T13:03:01+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1559307781549,"ct":1559307408118,"a_depth":4,"a":["apps","144e85c0-d7f9-4b20-8928-be30f0c78bda","8e6ee7d3-9122-4a2e-8aaf-9fb3bd204b23","d2ac3563-3c3f-4f02-b923-9b67abf98d10"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"24114c82-e4aa-428b-b188-614e03bd5fad","v":"371800b4894d65d1","previous":{"v":"initial"},"p":"6f641574-7cb6-424a-9657-4b8d652a2cf7","f":{"id":"design-form","v":"0061789efb5c5c29","text":"Design"},"data":{"name":"tag-title","template":"<ae-design name=\"title\" :document=\"document\"></ae-design>\n<span v-if=\"data.position\">({{ data.position }})</span>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-11-27T10:18:39+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2020-11-27T10:19:45+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1606472385553,"ct":1606472319913,"a_depth":4,"a":["apps","37fafb3d-18da-4182-af74-082971d50956","c27d5f5f-22ff-4341-935c-02bfdc3e1ee0","6f641574-7cb6-424a-9657-4b8d652a2cf7"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"44a4ee78-5ed5-4e78-854b-21056a36ca9c","v":"bc12b151284e8340","previous":{"v":"c5820281107dcbba"},"p":"43551782-1b7f-47ef-a694-9e9824c97091","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"tag-title","template":"<ae-design name=\"colored-pill\" :document=\"document\" :params=\"{ fieldName: 'color', expand: true }\"></ae-design>\n<!-- <ae-design name=\"title\" :document=\"document\" ></ae-design> -->","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-10-01T10:25:58+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-10-01T10:32:54+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1633084374412,"ct":1633083958218,"a_depth":4,"a":["apps","4a58cfdb-e1ef-40a2-8a89-57157ddda7d0","7643c1eb-d4fa-4bb1-a4c4-b65838cf989d","43551782-1b7f-47ef-a694-9e9824c97091"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"784c29d2-8d84-44f8-8848-9e33a24066df","v":"a198391e8284cadf","previous":{"v":"initial"},"p":"e3e2b913-1791-461b-9d80-be3681488a04","f":{"id":"design-form","v":"e37099c040ec46e9","text":"Design"},"data":{"name":"tag-title","template":"<ae-design style=\"display:inline-block;\" name=\"icon\" :document=\"document\"></ae-design>\n<ae-design style=\"display:inline-flex;\" name=\"title\" :document=\"document\"></ae-design>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-05-10T14:52:10+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-05-10T14:52:15+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1620658335110,"ct":1620658330001,"a_depth":4,"a":["apps","d91078cc-874b-4410-b837-b81f47687fe9","6b513a0c-498f-4eac-804d-aa8e0e99caac","e3e2b913-1791-461b-9d80-be3681488a04"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"90a2990d-9baa-418a-b78c-7d5f8517cd34","v":"initial","cloneOf":{"id":"de082a6b-df7b-41e3-a3d0-4f70045ff435","v":"9991556fed861711","text":"tag-title"},"originalCloneOf":{"id":"de082a6b-df7b-41e3-a3d0-4f70045ff435","v":"9991556fed861711","text":"tag-title"},"p":"3e134a66-4611-456c-88e9-be8ae3d75dff","f":{"id":"design-form","v":"e7284adf8f42da65","text":"Design"},"data":{"name":"tag-title","template":"<ae-design style=\"display:inline-block;\" name=\"icon\" :document=\"document\"></ae-design>\n<ae-design style=\"display:inline-flex;\" name=\"title\" :document=\"document\"></ae-design>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-01-27T11:02:53+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-01-27T11:02:53+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1611745373617,"ct":1611745373616,"a_depth":4,"a":["apps","d91078cc-874b-4410-b837-b81f47687fe9","6b513a0c-498f-4eac-804d-aa8e0e99caac","3e134a66-4611-456c-88e9-be8ae3d75dff"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"93a72f43-294a-4008-a2c5-a46c394a066a","v":"ae507fe3cbca0cb5","previous":{"v":"3bbfe587a35f19b0"},"p":"f8fd3176-4995-455f-a8a8-d2742a836816","f":{"id":"design-form","v":"65801907e0c30697","text":"Design"},"data":{"name":"tag-title","template":"<ae-design name=\"ref-card-title\" :document=\"document\" :title=\"locals.title\" @selected=\"$emit('selected', $event)\"></ae-design> ","css":"","controller":"class Controller {\n  async init() {\n    locals.title = ''\n\n    const categories = await Aeppic.getAll(data.kategorie)\n\n    const parts = [`${data.name}`]\n\n    for (const category of categories) {\n      if (!category) {\n        continue\n      }\n\n      parts.push(`Kategorie: ${category.data.name}`)\n    }\n\n    locals.title = parts.join('\\n')\n  }\n}\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2019-08-06T13:38:20+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2021-06-29T13:22:45+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1624972965025,"ct":1565098700568,"a_depth":4,"a":["apps","bc036ad0-6dbc-415b-b506-325fb0a44046","8ffb21f4-3d63-4824-a633-10a19d7aa7d8","f8fd3176-4995-455f-a8a8-d2742a836816"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"b9ad735c-7304-4aa0-9821-226a086a79d0","v":"cb1a0b57588f5ffc","previous":{"v":"c80d1913bc1163e3"},"p":"b12cba63-8003-4f84-a235-d67fd506b155","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"tag-title","template":"<ae-design name=\"colored-pill\" :document=\"document\" :params=\"{ fieldName: 'farbe', expand: true }\"></ae-design>\n<!-- <ae-design name=\"title\" :document=\"document\"></ae-design> --> ","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-10-01T10:28:42+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-10-01T12:05:48+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1633089948344,"ct":1633084122065,"a_depth":4,"a":["apps","9d6ee173-26fe-4472-a271-7667f717094e","53b70eca-0cef-448b-9674-22a70a937eb1","b12cba63-8003-4f84-a235-d67fd506b155"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"c6a1ef32-7eb8-4576-9285-86d1f53491fd","v":"73a07b3280153aca","cloneOf":{"id":"c514499f-ccb7-43f5-8d8e-63d7cea14dd4","v":"initial","text":"ref-card-title"},"originalCloneOf":{"id":"c514499f-ccb7-43f5-8d8e-63d7cea14dd4","v":"initial","text":"ref-card-title"},"previous":{"v":"initial"},"p":"674d8994-c7b4-4f40-aaea-ca361e8490de","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"tag-title","applies":"","template":"<ae-design class=\"_CSS-color\" name=\"color\" :document=\"document\"></ae-design>\n<ae-design name=\"title\" :document=\"document\"></ae-design>","css":"._CSS {\n  display: flex;\n}\n\n._CSS-color {\n  display: inline-block;\n  min-height: 100%;\n  margin-right: 1ch;\n  width: 1ch;\n  display: flex;\n}\n ","controller":"","packages":[]},"locks":[],"created":{"at":"2019-08-22T12:29:01+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2019-08-22T12:29:06+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1566476946713,"ct":1566476941737,"a_depth":4,"a":["apps","f93ac233-7aa7-4561-a3b3-d8ebda0ee514","fc09d59c-bdef-4b1e-854e-d907bc11b295","674d8994-c7b4-4f40-aaea-ca361e8490de"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"cb05b457-30b8-47b1-8d06-93ac3dcd234a","v":"initial","p":"0b6a2b21-9425-466e-9e8d-57ec39cc95e1","f":{"id":"design-form","v":"e7284adf8f42da65","text":"Design"},"data":{"name":"tag-title","template":"<ae-design style=\"display:inline-block;\" name=\"icon\" :document=\"document\"></ae-design>\n<ae-design style=\"display:inline-flex;\" name=\"title\" :document=\"document\"></ae-design>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-09-01T09:49:31+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2020-09-01T09:49:31+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1598953771729,"ct":1598953771728,"a_depth":4,"a":["apps","59edbdbc-2cab-426a-bb42-6e57c5158e4f","3be7e887-1bcd-4c3c-979f-b20a986c4c48","0b6a2b21-9425-466e-9e8d-57ec39cc95e1"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"d1380260-c388-41c1-8724-887b779414ec","v":"f68120c79b9737fc","cloneOf":{"id":"a8d94a32-cf55-4285-b39d-f4501b55fee6","v":"c1ccd48bb79b4f5e","text":"ref-card-title"},"originalCloneOf":{"id":"a8d94a32-cf55-4285-b39d-f4501b55fee6","v":"c1ccd48bb79b4f5e","text":"ref-card-title"},"previous":{"v":"initial"},"p":"093b2f65-2a18-4639-9a6a-59b9006d52ee","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"tag-title","applies":"","template":"<ae-design class=\"_CSS-color\" name=\"color\" :document=\"document\"></ae-design>\n<ae-design name=\"title\" :document=\"document\"></ae-design>","css":"._CSS {\n  display: flex;\n}\n\n._CSS-color {\n  display: inline-block;\n  min-height: 100%;\n  margin-right: 1ch;\n  width: 1ch;\n  display: flex;\n}\n ","controller":"","packages":[]},"locks":[],"created":{"at":"2019-08-22T12:36:43+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2019-08-22T12:36:47+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1566477407359,"ct":1566477403443,"a_depth":5,"a":["apps","83c76376-420e-4231-9275-d0fe2ab47c32","5f76a5c6-0ebc-4a08-b5ae-84fd3176f9c9","351909be-5fd2-4c27-834d-3c094a8bade3","093b2f65-2a18-4639-9a6a-59b9006d52ee"],"a_forms":["folder","application-form","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"de082a6b-df7b-41e3-a3d0-4f70045ff435","v":"9991556fed861711","previous":{"v":"initial"},"p":"8fc08287-dbcc-4e41-9d5d-28e4cd828943","f":{"id":"design-form","v":"e7284adf8f42da65","text":"Design"},"data":{"name":"tag-title","template":"<ae-design style=\"display:inline-block;\" name=\"icon\" :document=\"document\"></ae-design>\n<ae-design style=\"display:inline-flex;\" name=\"title\" :document=\"document\"></ae-design>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-08-31T14:59:30+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2020-09-01T09:49:42+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1598953782295,"ct":1598885970628,"a_depth":4,"a":["apps","9d6ee173-26fe-4472-a271-7667f717094e","53b70eca-0cef-448b-9674-22a70a937eb1","8fc08287-dbcc-4e41-9d5d-28e4cd828943"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"5a19df7e-994e-4256-9069-5e2d1521de9b","v":"f5a4312dc28b4dc0","previous":{"v":"9557ec0f34afdf32"},"p":"ea3fb00c-4b3e-44ed-8bfb-7dce7f8a8f4c","f":{"id":"design-form","v":"0061789efb5c5c29","text":"Design"},"data":{"name":"tag-title-with-copy-commands","template":"<ae-design name=\"title\" :document=\"document\"></ae-design>\n\n<ae-list  list-id=\"2dab232c-2c8a-4aa4-b3f9-6023a7116161\"\n          :documents=\"data.positionen\"\n          param-gap=\"small\"\n          param-design=\"command-card,card\"\n          :param-design-params=\"params\"\n          @selected=\"Aeppic.drillInto($event)\"\n></ae-list>\n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-10-02T12:56:50+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2020-10-07T13:49:43+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1602078583301,"ct":1601643410816,"a_depth":4,"a":["apps","0924db0f-7095-4b51-8966-bad1e45d68ec","a3b935e7-60bc-4996-9b18-668e4361067f","ea3fb00c-4b3e-44ed-8bfb-7dce7f8a8f4c"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"b3f1c5ba-a1d8-4ed9-b542-16eb34c17ca1","v":"aab317469e4a5929","previous":{"v":"56719dbcb1a67f45"},"p":"ea3fb00c-4b3e-44ed-8bfb-7dce7f8a8f4c","f":{"id":"design-form","v":"0061789efb5c5c29","text":"Design"},"data":{"name":"tag-with-copy-commands","template":"<ae-design name=\"tag\" :document=\"document\" :params=\"params\" param-title-design=\"tag-title-with-copy-commands\" v-on=\"$listeners\"></ae-design>\n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-10-07T13:40:50+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2020-10-07T13:50:30+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1602078630006,"ct":1602078050143,"a_depth":4,"a":["apps","0924db0f-7095-4b51-8966-bad1e45d68ec","a3b935e7-60bc-4996-9b18-668e4361067f","ea3fb00c-4b3e-44ed-8bfb-7dce7f8a8f4c"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"f":{"id":"design-form","v":"e3fe9ece11aabc5e","text":"Design"},"p":"34175cf3-8f6f-4eaf-ab75-b4dbd1c0b509","data":{"name":"tagesuebersicht","applies":"","template":"<style>\n     @media print {\n  /* style sheet for print goes here */\n\n  \n.noprint {\n     display:none;\n}\n\n.rs-toolbar-page-content{\n  overflow:hidden !important;\n}\n.rs-page-content{\n    height:auto !important;\n}\n\nbody {\n    /*text-align:justify;*/\n    counter-reset: chapter;\n    -webkit-print-color-adjust: exact; \n     \n}\nli { page-break-inside:avoid; page-break-after:auto }\n\n.md-ink-ripple{\n    -webkit-print-color-adjust: exact; \n}\n\nmd-card{\n    border:solid 1px #000 !important;\n    box-shadow:none;\n    page-break-inside:avoid; \n    page-break-after:auto\n}\n\n  /* Default left, right, top, bottom margin is 2cm */\n@page { margin: 2cm }\n \n  /* Left pages, a wider margin on the left */\n  /*\n@page :left {\n  margin-left: 3cm;\n  margin-right: 2cm;\n}\n \n@page :right {\n  margin-left: 2cm;\n  margin-right: 3cm;\n}\n*/\n\nrs-development-sidebar{\n    display:none;\n}\n\n.calendar-div{\n    display:none;\n}\n\n.odd{\n    \n}\n\n.even{\n  background-color: #EEE;\n}\n    \n} \n\n.odd{\n    \n}\n\n.even{\n  background-color: #EEE;\n}\n</style>\n\n<div style=\"margin:15px\">\n    <h2 style=\"margin-bottom:20px\">Tagesübersicht für den {{moment().format('D. MMMM YYYY')}}</h2>\n    <document-query result=\"termine\" sort=\"data.start!\" query-id=\"1dc2ab62-32df-4698-9cee-f9b5d33ba0e8\" filter=\"data.start:  [now/d TO now/d]\"></document-query>\n    \n    <div ng-repeat=\"termin in termine\" layout=\"row\" flex style=\"min-height:40px\" class=\"{{$index % 2 == 0? 'even' : 'odd'}}\">\n      <div flex=\"15\"><strong>{{termin.data.start | date:'HH:mm'}} <span ng-if=\"termin.data.end\">- {{termin.data.end | date:'HH:mm'}}</span></strong></div>\n      <div flex=\"30\"><strong>{{termin.data.name}}</strong></div> \n      <div flex=\"30\">{{termin.data.description}}</div>\n      <div flex=\"15\">{{termin.data.tierarzt.text}}</div>\n      <div flex=\"10\">{{termin.data.aufnahme}}</div>\n    </div>\n</div>\n    \n"},"id":"83c0c1e7-0e3e-4c67-b2f7-17a2d50e5886","v":"2b9901f9196daa59","t":1467644306137,"ct":1467644305390,"previous":{"v":"0ef2118d362c461b"},"modified":{"at":"2017-09-15T10:29:32+02:00","by":"","from":"","client":"import"},"created":{"at":"2017-09-15T10:29:32+02:00","by":"","from":"","client":"import"},"locks":[],"lockRefs":[],"inheritedLocks":[null,null,null,null,null],"a":["apps","21ba9d78-2545-4495-a24b-129f934de2f1","252f693f-4fdd-4aa4-8185-95c2e0539c62","34175cf3-8f6f-4eaf-ab75-b4dbd1c0b509"],"a_forms":["folder","application-form","form-folder","form"],"a_depth":4,"stamps":[]},{"id":"8e46f12a-54af-4b1e-b426-df27be82ca26","v":"12168367f6570014","previous":{"v":"e55df41d8869aa7e"},"p":"fallback-designs","f":{"id":"design-form","v":"22a757f630104010","text":"Design"},"data":{"name":"tags-mini","template":"<span :title=\"controller.tags.join(',')\">\n  <ae-icon v-if=\"controller.tags?.length\" class=\"fa fa-tag opacity-50 scale-75\" ></ae-icon> \n</span>","css":"","controller":"get tags() {\n  return document.data[params.tagField ?? 'tags']\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-07-18T16:51:28+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-07-18T17:02:36+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1721314956170,"ct":1721314288707,"a_depth":2,"a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"],"inheritedLocks":[null,null,null],"stamps":[]},{"id":"906391ce-7014-47a9-a96b-680ce647c5b9","v":"initial","p":"62b0cd19-3103-4de3-a64e-b4bbfda6156a","f":{"id":"design-form","v":"0061789efb5c5c29","text":"Design"},"data":{"name":"teamviewer","template":"<ae-control name=\"teamviewer\" param-password=\"not4all\" :document=\"document\" field-name=\"teamviewerId\" :readonly=\"true\"></ae-control>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-11-02T09:38:59+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-11-02T09:38:59+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1635845939265,"ct":1635845939265,"a_depth":4,"a":["apps","6a2e3a55-42ca-4f04-ae62-0a2447c5f759","d73c1511-5bc0-4e4f-9e3b-b7ae22cd349b","62b0cd19-3103-4de3-a64e-b4bbfda6156a"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"520dabaf-14ff-476f-b075-5ac1c4949a22","v":"0c93f3aaedfaf936","previous":{"v":"9dd430a7ea0c9b95"},"p":"b4b13fc6-7d06-4832-93b0-cd27405e269d","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"tenant-phone-buttons","template":"<ae-design name=\"tenants\" :document=\"document\"\n  @click.native.stop=\"controller.show($event)\"\n  :param-no-wrap=\"params.noWrap\"\n  class=\"cursor-pointer\t\"\n></ae-design>\n<!-- \n<button class=\"ae-button ae-button--secondary\" @click.stop=\"controller.show($event)\">\n  <ae-icon class=\"fa fa-phone\"></ae-icon> Mieter\n</button> -->\n\n<ae-popup ref=\"popup\">\n  <div class=\"bg-white p-2 flex flex-col gap-4\" @click.stop>\n    <template v-if=\"locals.tenants.length\">\n      <div v-for=\"tenant of locals.tenants\">\n        <ae-design name=\"title\" :document=\"tenant\" class=\"italic\"></ae-design>\n        <ae-control name=\"phone\" :document=\"tenant\" field-name=\"telefon1\" :readonly=\"true\"></ae-control>\n        <ae-control name=\"phone\" :document=\"tenant\" field-name=\"telefon2\" :readonly=\"true\"></ae-control>\n        <ae-control name=\"phone\" :document=\"tenant\" field-name=\"telefon3\" :readonly=\"true\"></ae-control>\n      </div>\n    </template>\n    <div v-else class=\"italic\">\n      Keine Mieter eingetragen.\n    </div>\n  </div>\n</ae-popup>","css":"","controller":"class Controller {\n  async init() {\n    locals.tenants = []\n    locals.tenants = (await Aeppic.getAll(data.mieter)).filter(d => !!d)\n  }\n\n  async show(clickEvent) {\n    $refs.popup.show(clickEvent)\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-11-18T13:18:29+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-02-06T15:00:43+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1675695643885,"ct":1668777509269,"a_depth":4,"a":["apps","86189c5a-b9f4-445a-879f-d94574960df0","15292d56-6806-4263-b6d0-9194687203e1","b4b13fc6-7d06-4832-93b0-cd27405e269d"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"9a25a4a9-543a-4e9a-a170-391f5301336e","v":"68877b0f483d96d1","previous":{"v":"4101eb681cd987be"},"p":"b4b13fc6-7d06-4832-93b0-cd27405e269d","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"tenants","template":"<div class=\"flex gap-x-2\" :class=\"[!params.noWrap && 'flex-wrap']\">\n  <div v-for=\"mieter of data.mieter\" class=\"flex gap-1 items-baseline\">\n    <ae-icon class=\"far fa-user\"></ae-icon>\n    <ae-design name=\"title\" :document-id=\"mieter.id\" class=\"py-1\"></ae-design>\n  </div>\n</div>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-12-02T12:34:40+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-01-25T13:14:46+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1674652486186,"ct":1669984480193,"a_depth":4,"a":["apps","86189c5a-b9f4-445a-879f-d94574960df0","15292d56-6806-4263-b6d0-9194687203e1","b4b13fc6-7d06-4832-93b0-cd27405e269d"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"292b21d1-c859-4a9a-8dc7-e884f1aabf74","v":"06efbf7a5d8a9d50","previous":{"v":"2d02ac2b6f72e9c9"},"p":"530cb8ec-47ef-4d15-9257-1d548798f5fe","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"thumbnail","template":"<ae-design :document=\"data.image\" name=\"thumbnail\"></ae-design>\n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-07-08T08:15:24+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-07-08T08:21:27+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720419687338,"ct":1720419324779,"a_depth":4,"a":["apps","deeef973-ce03-4557-bf75-75a059001767","e7de598c-6f5a-4ab4-a33b-213ca86e489d","530cb8ec-47ef-4d15-9257-1d548798f5fe"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","77ee8815-2c3a-4bb5-abd9-90541a545a24","1cc4b977-c14d-4587-af47-d6ac230f60b3"],"a_depth":3,"a_forms":["folder","application-form","design-folder"],"cloneOf":{"id":"cdeab632-622e-4fe4-9446-772266ba91fc","text":"thumbnail","v":"70592d2998816e73"},"created":{"at":"2025-12-19T13:09:20+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"ct":1766149760317,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    // this._oldResponse = null\n    this.videoThumbnail = ''\n    this.form = null\n    this.convertableTypes = [\n      'application/pdf'\n    ]\n    this.covertableTypesStartingWith = [\n      'image/',\n      'video/',\n      'application/vnd.oasis.opendocument'\n    ]\n    this.convertableTypesIncluding = [\n      'word',\n      'spreadsheet',\n      'powerpoint',\n      'presentation',\n      'mspublisher',\n    ]\n\n    locals.upload = null \n    locals.over = false\n    locals.fieldName = this._findFieldName()\n    locals.isVideo = this._isVideo()\n    locals.justUploaded = false\n\n    this.checkConvertablity()\n\n    Aeppic.watchQuery(`p:${document.id}`, async ()=> {\n      await this.retrieveVideoThumbnailAndGif()\n      this.checkConvertablity()\n    })\n    Aeppic.watch(document, () => this.checkConvertablity())\n\n    await this.retrieveVideoThumbnailAndGif()\n    // locals.over=true;this.playGif();\n  }\n\n  _isVideo() {\n    if (!locals.fieldName) {\n      return false\n    }\n\n    const type = document.data[locals.fieldName].type || ''\n    return type.startsWith('video/')\n  }\n\n  _findFieldName() {\n    if (params.fieldName) {\n      return params.fieldName\n    }\n\n    const fileFields = []\n  \n    for (const fieldName of Object.keys(document.data)) {\n      const value = document.data[fieldName]\n\n      if (this._isFileField(value)) {\n        fileFields.push({ name: fieldName, value })\n      }\n    }\n\n    if (fileFields.length > 1) {\n      console.warn(`fallback design '${design.data.name}' found more than 1 file fields for form '${document.f.text}'. Provide parameter 'fieldName' to render`)\n    }\n\n    return fileFields[0]?.name\n  }\n\n  _isFileField(fieldValue) {\n    return (typeof fieldValue === 'object' && 'dataUrl' in fieldValue)\n    //return (fieldInfo.type === 'object' && (fieldInfo.subType === 'file' || fieldInfo.subType === 'image'))\n  }\n\n  checkConvertablity() {\n    const canConvert = this._isDocumentConvertable\n\n    if (!this.thumbnailSrc || !canConvert) {\n      $emit('cannot-convert')\n    }\n  \n    return canConvert\n  }\n\n  get _isDocumentConvertable() {\n    const type = document.data[locals.fieldName]?.type\n\n    if (type == null || typeof type !== 'string') {\n      return false\n    }\n\n    for (const t of this.convertableTypes) {\n      if (t === type) {\n        return true\n      }\n    }\n\n    for (const t of this.covertableTypesStartingWith) {\n      if (type.startsWith(t)) {\n        return true\n      }\n    }\n\n    for (const t of this.convertableTypesIncluding) {\n      if (type.includes(t)) {\n        return true\n      }\n    }\n\n    return false\n  }\n\n  async retrieveVideoThumbnailAndGif() {\n    locals.isVideo = this._isVideo()\n\n    if (!locals.isVideo) {\n      locals.videoThumbnail = null\n      locals.backedGif = null\n      return\n    }\n\n    const [ thumbnail, gif ] = await Promise.all([\n      Aeppic.findOne(`p:\"${document.id}\" f.id:8bf0fb31-716d-4b76-98d8-b7349f1d7529 data.name:thumbnail`),\n      Aeppic.findOne(`p:\"${document.id}\" f.id:8bf0fb31-716d-4b76-98d8-b7349f1d7529 data.name:gif`)\n    ])\n    this.videoThumbnail = thumbnail\n    locals.backedGif = gif\n  }   \n\n\n  playGif() {\n    if (!locals.gif && locals.backedGif) {\n      const image = new Image()\n      image.src = Aeppic.Content.getSrc(locals.backedGif,'file')\n      image.onload = () => locals.gif = locals.backedGif\n    }\n  }\n\n  get videoThumbnailSrc() {\n    return Aeppic.Content.getSrc(this.videoThumbnail, 'file')\n  }\n\n  get thumbnailSrc() {\n    if (locals.isVideo || this.videoThumbnail) {\n      return this.videoThumbnailSrc\n    }\n\n    // FIXME: thumbnail changes only after saving the document\n    if (Aeppic.isEditableDocument(document)) {\n      const baseDocumentField = document.__base.data[locals.fieldName]\n      const currentDocumentField = document.data[locals.fieldName]\n\n      if (baseDocumentField.dataUrl !== currentDocumentField.dataUrl) {\n        return 'api/404'\n      }\n    }\n\n    const { width, height } = this.dimensions\n\n    if (params.usePreview || (width && width.replace(/[^\\d]/g, '') > 256 || height && height.replace(/[^\\d]/g, '') > 256)) {\n      return Aeppic.Content.getPreviewSrc(document, locals.fieldName, { format: 'jpg' }) \n    }\n\n    return Aeppic.Content.getThumbnailSrc(document, locals.fieldName) \n  }\n \n  get isUploading() {\n    let status = null\n\n    if (locals.fieldName) {\n      status = Aeppic.Uploads.getUploadStatusForField(document, locals.fieldName)\n    } else {\n      const uploads = Aeppic.Uploads.getUploadStatusForDocument(document) \n      status = uploads ? uploads[0] : null\n    }\n\n    if (status) {\n      locals.justUploaded = true\n      locals.upload = status\n    } else {\n      locals.upload = null\n    }\n\n    return !!locals.upload\n  }\n\n  get strokeDashoffset() {\n    // https://glennmccomb.com/articles/building-a-pure-css-animated-svg-spinner/\n    const radius = 45\n    const circumference = 2 * Math.PI * radius\n    const rounded = Number(circumference.toFixed(0)) // with radius 45 = 283\n\n    if (!locals.upload) {\n      return rounded\n    }\n    \n    const asNumber = rounded + (locals.upload.progressPercent * rounded)\n    return asNumber\n  }\n  // async toObjectUrl(event) {\n  //   if (event.error || event.loading) {\n  //     this._removeObjectUrl()\n  //     return\n  //   }\n\n  //   const response = event.response\n  //   if (response === this._oldResponse)  {\n  //     return\n  //   }\n\n  //   this._oldResponse = response\n\n  //   locals.objectUrl = ''\n  //   const blob = await response.blob()\n  //   locals.objectUrl = URL.createObjectURL(blob)\n  // }\n\n  // _removeObjectUrl() {\n  //   if (locals.objectUrl) {\n  //     URL.revokeObjectURL(locals.objectUrl)\n  //     locals.objectUrl = null\n  //   }\n  // }\n\n  destroy() {\n    // this._removeObjectUrl()\n  }\n\n  get dimensions() {\n    const width = params.minSize // @deprecated\n                  || params.size \n                  || params.width \n    \n    const height = params.minSize // @deprecated\n                  ||params.size \n                  || params.height \n\n    // null is a valid value\n    return {\n      width: typeof width === 'undefined' ? '128px' : width,\n      height: typeof height === 'undefined' ? '128px' : height,\n    }\n  }\n\n  get dimensionsStyle() {\n    const { width, height } = this.dimensions\n\n    return {\n      minWidth: width, \n      minHeight: height, \n      maxWidth: width, \n      maxHeight: height, \n    }\n  }\n}\n","css":"._CSS {\n  display: flex;\n}\n\n._CSS-thumbnail {\n  max-width:512px;\n\n  flex:1;\n  object-fit: cover;\n  background-repeat: no-repeat;\n  background-size: cover;\n  background-position: top center;\n}\n\n._CSS-fade-enter-active, ._CSS-fade-leave-active {\n  transition: opacity 0.25s; \n}\n._CSS-fade-enter, ._CSS-fade-leave-to /* .fade-leave-active below version 2.1.8 */ {\n  opacity: 0;\n}\n\n._CSS-document-thumbnail {\n  height: 100%;\n  width: 100%;\n\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  justify-content: center;\n  flex:1;\n  background: var(--ae-background-200);\n}\n\n._CSS-document-thumbnail > ._CSS-thumbnail {\n  flex:1;\n  background-size: cover;\n  background-position: top center;\n}\n\n._CSS-ae-fetch {\n  width: 100%;\n  height: 100%;\n} \n\n\n._CSS-placeholder {\n  width: 100%;\n  height: 100%;\n\n  display: flex;\n  justify-content: center;\n  align-items: center;\n}\n\n._CSS-uploading {\n  position: relative;\n  width: 100%;\n  height: 100%;\n\n  display: flex;\n  justify-content: center;\n  align-items: center;\n}\n\n._CSS-uploading__percent {\n  position: absolute;\n  top: 0;\n  left: 0;\n  right: 0;\n  bottom: 0;\n\n  display: flex;\n  justify-content: center;\n  align-items: center;\n\n  font-size: var(--ae-font-size-3);\n}\n\n// ._CSS-uploading__filling {\n//   background: var(--ae-primary-300);\n//   position: absolute;\n//   left: 0;\n//   right: 0;\n//   bottom: 0;\n//   transition: top 1s ease-in-out 0s;\n// }\n\n._CSS-progress-circle__percentage {\n  position: absolute;\n  top: 0;\n  left: 0;\n  right: 0;\n  bottom: 0;\n  background: var(--ae-ui-background);\n  border-radius: 50%;\n\n  display: flex;\n  justify-content: center;\n  align-items: center;\n}\n\n\n._CSS-progress-circle {\n  width: 100%;\n  height: 100%;\n  position: relative;\n\n  display: flex;\n  justify-content: center;\n  align-items: center;\n}\n\n._CSS-circle-container {\n  position: absolute;\n  top: 22px;\n  left: 22px;\n  right: 22px;\n  bottom: 22px;\n}\n\n._CSS-circle {\n  transform: rotateZ(270deg) rotateX(180deg);\n  fill: var(--ae-ui-background);\n  stroke: var(--ae-primary-900);\n  stroke-width: 10;\n  stroke-linecap: round;\n  stroke-dasharray: 283; /* 2 * 3.1415927 * $radius; */\n  transform-origin: 50% 50%;\n  stroke-dashoffset: 283; /* no fill at the beginning */\n} \n\n._CSS-circle-progress {\n  position: absolute;\n  top: 0;\n  left: 0;\n  right: 0;\n  bottom: 0;\n\n  display: flex;\n  justify-content: center;\n  align-items: center;\n}\n\n._CSS-justuploaded {\n  overflow: hidden;\n  font-size: var(--ae-font-size-2);\n  padding: var(--ae-space-1);\n\n  display: flex;\n  align-items: center;\n  flex-flow: column;\n}\n\n._CSS-justuploaded__filename {\n  min-width:0;\n  overflow:hidden;\n  white-space:nowrap;\n  text-overflow:ellipsis;\n  width:100%;\n  display: inline-block;\n}","description":"","name":"thumbnail","packages":[],"parameters":["hideName"],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":["Hides the name below the icon"],"parametersTypes":["boolean"],"template":"<pre class=\"fixed\" v-if=\"params.debug\">\nisUploading  {{controller.isUploading }}\nupload  {{locals.upload}}\nthmbnlSrc  {{controller.thumbnailSrc}}\n</pre>\n<!-- {{controller.dimensionsStyle}} -->\n<div \n  class=\"width-full bg-secondary-200 flex-1 bg-cover bg-no-repeat bg-center flex overflow-hidden\" \n  :style=\"controller.dimensionsStyle\"\n>\n  <div \n    class=\"w-full flex-1 bg-[var(--ae-background-200)] flex justify-center items-center\" \n    @mouseenter=\"locals.over=true;controller.playGif();\" \n    @mouseleave=\"locals.over=false\"\n  >\n    <transition name=\"ae-transition__fade\" mode=\"out-in\">\n      <div v-if=\"locals.gif && locals.over\"  class=\"_CSS-thumbnail\" style=\"align-self: stretch;\" :style=\"{'background-image': 'url(' + Aeppic.Content.getSrc(locals.gif,'file')  + ')' }\">\n      </div> \n      <!-- <div v-else-if=\"controller.videoThumbnailSrc\" class=\"_CSS-thumbnail\" :style=\"{'background-image': 'url(' + controller.videoThumbnailSrc  + ')' }\">\n      </div> --> \n      <template v-else-if=\"controller.thumbnailSrc\">\n        <ae-fetch class=\"_CSS-ae-fetch\" :url=\"controller.thumbnailSrc\" :document-id=\"document.id\" :retry-status-codes=\"[404,429]\" @xresponse=\"controller.toObjectUrl($event)\"> \n          <template #loading>\n            <!-- LOADING -->\n            <div v-if=\"controller.isUploading && locals.upload\" class=\"_CSS-uploading\">\n                <div class=\"_CSS-circle-container\">\n                  <svg class=\"_CSS-circle\" viewBox=\"0 0 100 100\" xmlns=\"http://www.w3.org/2000/svg\">\n                    <circle cx=\"50\" cy=\"50\" r=\"45\" :style=\"{ 'stroke-dashoffset': controller.strokeDashoffset }\"></circle>\n                  </svg>\n                  <div class=\"_CSS-circle-progress\">\n                    <ae-icon class=\"far fa-spinner-third fa-spin\" v-if=\"locals.upload.status === 'pending'\"></ae-icon>\n                    <ae-icon class=\"far fa-check\" v-else-if=\"(locals.upload.progressPercent * 100).toFixed(0) === '100'\"></ae-icon>\n                    <template v-else>\n                        {{ (locals.upload.progressPercent * 100).toFixed(0) }}%\n                    </template>\n                  </div>\n                </div>\n\n            </div>\n            <div v-else class=\"_CSS-placeholder\" title=\"Vorschau-Bild wird geladen\">\n             <ae-icon class=\"far fa-spinner-third fa-spin fa-2x\"></ae-icon> \n            </div>\n          </template> \n          <template #error>\n            <!-- ERROR -->\n            <div class=\"_CSS-placeholder\" title=\"Vorschau-Bild konnte nicht geladen werden\">\n              <ae-icon class=\"far fa-file-alt fa-2x\"></ae-icon>\n            </div>\n          </template> \n\n          <div class=\"_CSS-document-thumbnail\" :style=\"controller.dimensionsStyle\">\n            <!-- NORMAL -->\n            <img class=\"_CSS-thumbnail\" :src=\"controller.thumbnailSrc\" loading=\"lazy\" :style=\"controller.dimensionsStyle\">\n            <!-- <div class=\"_CSS-thumbnail\" :style=\"{'background-image': 'url(' + controller.thumbnailSrc  + ')' }\">\n            </div> -->\n            <!-- <div class=\"_CSS-thumbnail\" v-if=\"locals.objectUrl\" :style=\"{ 'background-image': 'url(' + locals.objectUrl  + ')' }\"> </div> -->\n          </div>\n        </ae-fetch>\n\n      </template>\n      <template v-else>\n        <div v-if=\"controller.isUploading && locals.upload\" class=\"_CSS-uploading\">\n          <div class=\"_CSS-circle-container\">\n            <svg class=\"_CSS-circle\" viewBox=\"0 0 100 100\" xmlns=\"http://www.w3.org/2000/svg\">\n              <circle cx=\"50\" cy=\"50\" r=\"45\" :style=\"{ 'stroke-dashoffset': controller.strokeDashoffset }\"></circle>\n            </svg>\n            <div class=\"_CSS-circle-progress\">\n              <ae-icon class=\"far fa-spinner-third fa-spin\" v-if=\"locals.upload.status === 'pending'\"></ae-icon>\n              <ae-icon class=\"far fa-check\" v-else-if=\"(locals.upload.progressPercent * 100).toFixed(0) === '100'\"></ae-icon>\n              <template v-else>\n                  {{ (locals.upload.progressPercent * 100).toFixed(0) }}%\n              </template>\n            </div>\n          </div>\n        </div>\n        <div v-else class=\"_CSS-justuploaded\">\n          <ae-design style=\"font-size: 2em\" name=\"icon\" :document=\"document\"></ae-design>\n          <span v-if=\"!params.hideName\" class=\"_CSS-justuploaded__filename\"> {{ data.name }}</span>\n          <ae-icon v-if=\"locals.justUploaded\" class=\"far fa-check\"></ae-icon> \n        </div>\n        <!-- <ae-design v-else style=\"font-size: 2em\" name=\"icon\" :document=\"document\"></ae-design> -->\n      </template>\n    </transition>\n  </div>\n</div>\n\n\n<!-- just {{ locals.justUploaded }},\nis {{ controller.isUploading }},\nup {{ !!locals.upload }},\nisV {{locals.isVideo}},\nthumbSrc {{controller.thumbnailSrc}}, -->"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"35e67448-9c9b-4185-9445-c5e57e9391f6","inheritedLocks":[null,null,null,null],"locks":[],"modified":{"at":"2025-12-19T13:09:20+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"cdeab632-622e-4fe4-9446-772266ba91fc","text":"thumbnail","v":"70592d2998816e73"},"p":"1cc4b977-c14d-4587-af47-d6ac230f60b3","stamps":[],"t":1766149760340,"v":"initial"},{"id":"6e9d5d3a-e501-4283-af98-ffd097856a0b","v":"561a346f4c13fd42","p":"9ae84206-e0bb-4d39-9200-066c2eaf0fe3","f":{"id":"design-form","v":"22a757f630104010","text":"Design"},"data":{"name":"thumbnail","template":"<ae-design name=\"thumbnail\" :document=\"data.arbeitsvorbereitung\"></ae-design>","css":"","controller":"init() {\n  \n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-07-08T08:12:28+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-07-08T08:18:53+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1721206352386,"ct":1721206352386,"a_depth":4,"a":["apps","deeef973-ce03-4557-bf75-75a059001767","e7de598c-6f5a-4ab4-a33b-213ca86e489d","9ae84206-e0bb-4d39-9200-066c2eaf0fe3"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[],"previous":{"v":"574c48b9b0d43f82","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"}},"meta":{"modified":{"at":"2024-07-17T08:52:32+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"aeae80a3-fff4-4b97-94b2-1ae535cdd471","v":"bd52e24fe429edfe","previous":{"v":"357c876671491285"},"p":"aabed4ee-20ca-4df4-9a78-75a05e97dce9","f":{"id":"design-form","v":"3a761d06f59c46c1","text":"Design"},"data":{"name":"thumbnail","template":"<div  class=\"_CSS-card\"\n      :key=\"locals.thumbnailCounter\"\n      @mouseenter=\"controller.load(); locals.hover = true\"\n      @mouseleave=\"locals.hover = false\"\n      @click=\"controller.clicked($event)\"\n      :style=\"{ '--height': params.height, '--width': params.width }\"\n      :class=\"{ '_CSS-card--responsive': params.responsive }\"\n      >\n  <div v-if=\"controller.isUploading && locals.upload != null\" class=\"_CSS-thumbnail-container\">\n    <div class=\"_CSS-thumbnail__progress\" :style=\"{ top: 100 - locals.upload.progressPercent * 100 + '%' }\">\n    </div>\n    <img v-if=\"locals.fallbackImageSrc\" :src=\"locals.fallbackImageSrc\" class=\"_CSS-thumbnail\">\n  </div>\n  <!-- <div v-else-if=\"locals.upload && locals.upload.progressPercent != 0\" class=\"_CSS-thumbnail-container\">\n    <img v-if=\"locals.fallbackImageSrc\" :src=\"locals.fallbackImageSrc\" class=\"_CSS-thumbnail\">\n  </div> -->\n  <template v-else>\n    <transition name=\"dbps-fade\" mode=\"out-in\">\n      <div class=\"_CSS-thumbnail-container\">\n        <ae-fetch v-if=\"controller.thumbnailSrc\" :url=\"controller.thumbnailSrc\" :document-id=\"document.id\" class=\"_CSS-thumbnail-container\"> \n          <template #loading>\n            <img  v-if=\"locals.fallbackImageSrc\" :src=\"locals.fallbackImageSrc\" class=\"_CSS-thumbnail\" >\n          </template>\n\n          <template #error>\n            <img  v-if=\"locals.fallbackImageSrc\" :src=\"locals.fallbackImageSrc\" class=\"_CSS-thumbnail\" >\n          </template>\n          <img  :src=\"locals.thumbnailSrc || locals.fallbackImageSrc\" \n                v-if=\"locals.thumbnailSrc || locals.fallbackImageSrc\"\n                class=\"_CSS-thumbnail\"\n          >\n        </ae-fetch>\n      </div>\n    </transition>\n    <transition name=\"dbps-fade\" mode=\"out-in\" v-if=\"params.clickToPreview || params.showPreviewButton || params.showRemoveButton\">\n      <div class=\"_CSS-container--hovered\" v-show=\"locals.hover\" @click.stop>\n        <div class=\"_CSS-container--hovered__primary\">\n          <button  v-if=\"params.clickToPreview\" class=\"dbps-button\" @click.stop=\"$refs.preview.$emit('show-index', 0)\" title=\"Show\">\n            <ae-icon class=\"fa fa-eye fa-3x\" ></ae-icon>\n          </button>\n          <button  v-if=\"params.showPreviewButton\" class=\"dbps-button\" @click.stop=\"$emit('selected', document)\" title=\"Show\">\n            <ae-icon class=\"fa fa-eye fa-3x\" ></ae-icon>\n          </button>\n          <button  v-if=\"params.showRemoveButton\" class=\"dbps-button\" @click.stop=\"$emit('remove', document)\" title=\"Delete\">\n            <ae-icon class=\"fa fa-trash fa-3x\" ></ae-icon>\n          </button>\n        </div>\n      </div>\n    </transition>\n  </template>\n\n</div>\n\n<ae-layout v-if=\"params.clickToPreview\" layout-id=\"8a0cffef-ae8c-4090-a071-05c1a6f87804\" ref=\"preview\" :param-documents=\"[document]\" :param-preview-format=\"params.previewFormat\"></ae-layout>","css":"._CSS {\n  position: relative;\n}\n\n\n._CSS-card {\n  --card-width: var(--width, var(--dbps-thumbnail-width)); /* --width can be set via params passed into this component */\n  --card-height: var(--height, var(--dbps-thumbnail-height)); /* --height can be set via params passed into this component */\n  min-width: var(--card-width);\n  width: var(--card-width);\n  min-height: var(--card-height);\n  height: var(--card-height);\n  background: black;\n  position: relative;\n}\n\n._CSS-card._CSS-card--responsive ._CSS-thumbnail-container,\n._CSS-card._CSS-card--responsive {\n  min-width: auto;\n  width: auto;\n}\n\n._CSS-thumbnail-container {\n  height: var(--card-height);\n  width: var(--card-width);\n  position: relative;\n  overflow: hidden;\n  transform: translateY(0px); /* move the subpixel rounding issue to bottom. See below for more info */\n}\n\n._CSS-thumbnail__progress {\n  position: absolute;\n  left: 0;\n  right: 0;\n  bottom: 0;\n  z-index: 1;\n\n  background: var(--dbps-theme-text-icon-highlight-on-primary);\n  opacity: 0.5;\n}\n\n._CSS-thumbnail {\n  display: block;\n  page-break-inside: avoid;\n  xmin-width: 100%; \n  width: 100%;\n\n  /* center vertically for non-portrait mode images */\n  /* FIXME: this will result in a subpixel rounding issue (419.53 instead of 420px for full size images) */\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%);\n}\n\n._CSS-thumbnail--placeholder {\n  color: white;\n  width: 100%;\n  height: 100%;\n\n  display: flex;\n  align-items: center;\n  justify-content: center;\n}\n\n._CSS-document-thumbnail {\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  justify-content: center;\n  flex: 1;\n  background-color: rgb(247, 247, 247);\n}\n\n._CSS-document-thumbnail > ._CSS-thumbnail {\n  flex: 1;\n  margin-top: 4px;\n  border-width: 1px 1px 0 1px;\n  border-style: solid;\n  border-color: rgb(160, 160, 160);\n  box-shadow: 0px 10px 10px rgb(175, 175, 175); \n  background-size: cover; \n}\n\n/* HOVER */\n\n._CSS-container--hovered {\n  position: absolute;\n  top: 0;\n  bottom: 0;\n  left: 0;\n  right: 0;\n\n  background: rgba(255,255,255,0.6);\n\n  display: flex;\n  justify-content: center;\n  flex-flow: column;\n\n  color: black;\n}\n\n._CSS-container--hovered__primary {\n  flex: 1;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n}","controller":"class Controller {\n  async init() {\n    locals.upload = null //{progressPercent:0.3,status:'started'}\n    locals.fallbackImageSrc = '' \n\n    locals.thumbnailSrc = this.thumbnailSrc\n    // locals.hover = false\n    locals.hover = false\n\n    this._loadFallbackImage()\n    \n    this.renderVideoThumbnail()\n\n    Aeppic.watchMatchingDocuments(`p:${document.id}`, () => this.renderVideoThumbnail())\n\n    this.load()\n\n    Aeppic.Uploads.on('uploaded', async (uploadedDocument) => {\n      if (uploadedDocument.id !== document.id) {\n        return\n      }\n\n      locals.thumbnailSrc = this.thumbnailSrc\n    })  \n  }\n\n  async _loadFallbackImage() {\n    const fallbackImage = await Aeppic.get('be3d0b0b-cf9a-40a2-822b-7d93a7427701')\n    locals.fallbackImageSrc = Aeppic.Content.getSrc(fallbackImage, 'file')\n  }\n \n  async renderVideoThumbnail() {\n    locals.videoThumbnail = (await Aeppic.find(`p:\"${document.id}\" f.id:8bf0fb31-716d-4b76-98d8-b7349f1d7529 data.name:thumbnail`))[0]\n    locals.backedGif = (await Aeppic.find(`p:\"${document.id}\" f.id:8bf0fb31-716d-4b76-98d8-b7349f1d7529 data.name:gif`))[0]\n\n    locals.thumbnailSrc = this.thumbnailSrc\n  }\n\n  get canConvertToPreview() {\n   const notConvertableTypes = ['application/gzip', 'application/zip']\n\n    return document.data.datei.type && !document.data.datei.type.startsWith('video/') && !notConvertableTypes.includes(document.data.datei.type)\n  }\n\n  load() {\n    if (!locals.gif && locals.backedGif) {\n      const image = new Image()\n      image.src = Aeppic.Content.getSrc(locals.backedGif,'file')\n      image.onload = () => locals.gif = locals.backedGif\n    }\n  }\n\n  get thumbnailSrc() {\n    if (document.data.datei.type.startsWith('video/')) {\n      if (locals.videoThumbnail) {\n        return Aeppic.Content.getSrc(locals.videoThumbnail, 'file')\n      }\n\n      return ''\n    }\n\n    // TODO: keepAspectRatio based on width or height \n    return `${Aeppic.Content.getThumbnailSrc(document, 'datei')}&keepAspectRatio=height`\n  }\n\n  clicked(event) {\n    if (params.clickToPreview && Aeppic.Device === 'Phone') {\n      event.stopPropagation()\n      event.preventDefault()\n\n      this.showPreview()\n    } \n  }\n\n  showPreview() {\n    $refs.preview && $refs.preview.$emit('show')\n  }\n\n\n  get isUploading() {\n    const status = Aeppic.Uploads.getUploadStatusForDocument(document)\n\n    if (status) {\n      locals.upload = status[0]\n    } else {\n      locals.upload = null\n    }\n  \n    return !!locals.upload\n  }\n\n} ","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2018-10-30T12:49:28+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2020-10-13T10:11:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1602583892085,"ct":1602583892085,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","aabed4ee-20ca-4df4-9a78-75a05e97dce9"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["system","fallback-designs"],"a_depth":2,"a_forms":["system-folder-form","folder"],"created":{"at":"2018-10-08T07:57:53+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","client":"server","from":""},"ct":1758535277027,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    // this._oldResponse = null\n    this.videoThumbnail = ''\n    this.form = null\n    this.convertableTypes = [\n      'application/pdf'\n    ]\n    this.covertableTypesStartingWith = [\n      'image/',\n      'video/',\n      'application/vnd.oasis.opendocument'\n    ]\n    this.convertableTypesIncluding = [\n      'word',\n      'spreadsheet',\n      'powerpoint',\n      'presentation',\n      'mspublisher',\n    ]\n\n    locals.upload = null \n    locals.over = false\n    locals.fieldName = this._findFieldName()\n    locals.isVideo = this._isVideo()\n    locals.justUploaded = false\n\n    this.checkConvertablity()\n\n    Aeppic.watchQuery(`p:${document.id}`, async ()=> {\n      await this.retrieveVideoThumbnailAndGif()\n      this.checkConvertablity()\n    })\n    Aeppic.watch(document, () => this.checkConvertablity())\n\n    await this.retrieveVideoThumbnailAndGif()\n    // locals.over=true;this.playGif();\n  }\n\n  _isVideo() {\n    if (!locals.fieldName) {\n      return false\n    }\n\n    const type = document.data[locals.fieldName].type || ''\n    return type.startsWith('video/')\n  }\n\n  _findFieldName() {\n    if (params.fieldName) {\n      return params.fieldName\n    }\n\n    const fileFields = []\n  \n    for (const fieldName of Object.keys(document.data)) {\n      const value = document.data[fieldName]\n\n      if (this._isFileField(value)) {\n        fileFields.push({ name: fieldName, value })\n      }\n    }\n\n    if (fileFields.length > 1) {\n      console.warn(`fallback design '${design.data.name}' found more than 1 file fields for form '${document.f.text}'. Provide parameter 'fieldName' to render`)\n    }\n\n    return fileFields[0]?.name\n  }\n\n  _isFileField(fieldValue) {\n    return (typeof fieldValue === 'object' && 'dataUrl' in fieldValue)\n    //return (fieldInfo.type === 'object' && (fieldInfo.subType === 'file' || fieldInfo.subType === 'image'))\n  }\n\n  checkConvertablity() {\n    const canConvert = this._isDocumentConvertable\n\n    if (!this.thumbnailSrc || !canConvert) {\n      $emit('cannot-convert')\n    }\n  \n    return canConvert\n  }\n\n  get _isDocumentConvertable() {\n    const type = document.data[locals.fieldName]?.type\n\n    if (type == null || typeof type !== 'string') {\n      return false\n    }\n\n    for (const t of this.convertableTypes) {\n      if (t === type) {\n        return true\n      }\n    }\n\n    for (const t of this.covertableTypesStartingWith) {\n      if (type.startsWith(t)) {\n        return true\n      }\n    }\n\n    for (const t of this.convertableTypesIncluding) {\n      if (type.includes(t)) {\n        return true\n      }\n    }\n\n    return false\n  }\n\n  async retrieveVideoThumbnailAndGif() {\n    locals.isVideo = this._isVideo()\n\n    if (!locals.isVideo) {\n      locals.videoThumbnail = null\n      locals.backedGif = null\n      return\n    }\n\n    const [ thumbnail, gif ] = await Promise.all([\n      Aeppic.findOne(`p:\"${document.id}\" f.id:8bf0fb31-716d-4b76-98d8-b7349f1d7529 data.name:thumbnail`),\n      Aeppic.findOne(`p:\"${document.id}\" f.id:8bf0fb31-716d-4b76-98d8-b7349f1d7529 data.name:gif`)\n    ])\n    this.videoThumbnail = thumbnail\n    locals.backedGif = gif\n  }   \n\n\n  playGif() {\n    if (!locals.gif && locals.backedGif) {\n      const image = new Image()\n      image.src = Aeppic.Content.getSrc(locals.backedGif,'file')\n      image.onload = () => locals.gif = locals.backedGif\n    }\n  }\n\n  get videoThumbnailSrc() {\n    return Aeppic.Content.getSrc(this.videoThumbnail, 'file')\n  }\n\n  get thumbnailSrc() {\n    if (locals.isVideo || this.videoThumbnail) {\n      return this.videoThumbnailSrc\n    }\n\n    // FIXME: thumbnail changes only after saving the document\n    if (Aeppic.isEditableDocument(document)) {\n      const baseDocumentField = document.__base.data[locals.fieldName]\n      const currentDocumentField = document.data[locals.fieldName]\n\n      if (baseDocumentField.dataUrl !== currentDocumentField.dataUrl) {\n        return 'api/404'\n      }\n    }\n\n    const { width, height } = this.dimensions\n\n    if (params.usePreview || (width && width.replace(/[^\\d]/g, '') > 256 || height && height.replace(/[^\\d]/g, '') > 256)) {\n      return Aeppic.Content.getPreviewSrc(document, locals.fieldName, { format: 'jpg' }) \n    }\n\n    return Aeppic.Content.getThumbnailSrc(document, locals.fieldName) \n  }\n \n  get isUploading() {\n    let status = null\n\n    if (locals.fieldName) {\n      status = Aeppic.Uploads.getUploadStatusForField(document, locals.fieldName)\n    } else {\n      const uploads = Aeppic.Uploads.getUploadStatusForDocument(document) \n      status = uploads ? uploads[0] : null\n    }\n\n    if (status) {\n      locals.justUploaded = true\n      locals.upload = status\n    } else {\n      locals.upload = null\n    }\n\n    return !!locals.upload\n  }\n\n  get strokeDashoffset() {\n    // https://glennmccomb.com/articles/building-a-pure-css-animated-svg-spinner/\n    const radius = 45\n    const circumference = 2 * Math.PI * radius\n    const rounded = Number(circumference.toFixed(0)) // with radius 45 = 283\n\n    if (!locals.upload) {\n      return rounded\n    }\n    \n    const asNumber = rounded + (locals.upload.progressPercent * rounded)\n    return asNumber\n  }\n  // async toObjectUrl(event) {\n  //   if (event.error || event.loading) {\n  //     this._removeObjectUrl()\n  //     return\n  //   }\n\n  //   const response = event.response\n  //   if (response === this._oldResponse)  {\n  //     return\n  //   }\n\n  //   this._oldResponse = response\n\n  //   locals.objectUrl = ''\n  //   const blob = await response.blob()\n  //   locals.objectUrl = URL.createObjectURL(blob)\n  // }\n\n  // _removeObjectUrl() {\n  //   if (locals.objectUrl) {\n  //     URL.revokeObjectURL(locals.objectUrl)\n  //     locals.objectUrl = null\n  //   }\n  // }\n\n  destroy() {\n    // this._removeObjectUrl()\n  }\n\n  get dimensions() {\n    const width = params.minSize // @deprecated\n                  || params.size \n                  || params.width \n    \n    const height = params.minSize // @deprecated\n                  ||params.size \n                  || params.height \n\n    // null is a valid value\n    return {\n      width: typeof width === 'undefined' ? '128px' : width,\n      height: typeof height === 'undefined' ? '128px' : height,\n    }\n  }\n\n  get dimensionsStyle() {\n    const { width, height } = this.dimensions\n\n    return {\n      minWidth: width, \n      minHeight: height, \n      maxWidth: width, \n      maxHeight: height, \n    }\n  }\n}\n","css":"._CSS {\n  display: flex;\n}\n\n._CSS-thumbnail {\n  max-width:512px;\n\n  flex:1;\n  object-fit: cover;\n  background-repeat: no-repeat;\n  background-size: cover;\n  background-position: top center;\n}\n\n._CSS-fade-enter-active, ._CSS-fade-leave-active {\n  transition: opacity 0.25s; \n}\n._CSS-fade-enter, ._CSS-fade-leave-to /* .fade-leave-active below version 2.1.8 */ {\n  opacity: 0;\n}\n\n._CSS-document-thumbnail {\n  height: 100%;\n  width: 100%;\n\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  justify-content: center;\n  flex:1;\n  background: var(--ae-background-200);\n}\n\n._CSS-document-thumbnail > ._CSS-thumbnail {\n  flex:1;\n  background-size: cover;\n  background-position: top center;\n}\n\n._CSS-ae-fetch {\n  width: 100%;\n  height: 100%;\n} \n\n\n._CSS-placeholder {\n  width: 100%;\n  height: 100%;\n\n  display: flex;\n  justify-content: center;\n  align-items: center;\n}\n\n._CSS-uploading {\n  position: relative;\n  width: 100%;\n  height: 100%;\n\n  display: flex;\n  justify-content: center;\n  align-items: center;\n}\n\n._CSS-uploading__percent {\n  position: absolute;\n  top: 0;\n  left: 0;\n  right: 0;\n  bottom: 0;\n\n  display: flex;\n  justify-content: center;\n  align-items: center;\n\n  font-size: var(--ae-font-size-3);\n}\n\n// ._CSS-uploading__filling {\n//   background: var(--ae-primary-300);\n//   position: absolute;\n//   left: 0;\n//   right: 0;\n//   bottom: 0;\n//   transition: top 1s ease-in-out 0s;\n// }\n\n._CSS-progress-circle__percentage {\n  position: absolute;\n  top: 0;\n  left: 0;\n  right: 0;\n  bottom: 0;\n  background: var(--ae-ui-background);\n  border-radius: 50%;\n\n  display: flex;\n  justify-content: center;\n  align-items: center;\n}\n\n\n._CSS-progress-circle {\n  width: 100%;\n  height: 100%;\n  position: relative;\n\n  display: flex;\n  justify-content: center;\n  align-items: center;\n}\n\n._CSS-circle-container {\n  position: absolute;\n  top: 22px;\n  left: 22px;\n  right: 22px;\n  bottom: 22px;\n}\n\n._CSS-circle {\n  transform: rotateZ(270deg) rotateX(180deg);\n  fill: var(--ae-ui-background);\n  stroke: var(--ae-primary-900);\n  stroke-width: 10;\n  stroke-linecap: round;\n  stroke-dasharray: 283; /* 2 * 3.1415927 * $radius; */\n  transform-origin: 50% 50%;\n  stroke-dashoffset: 283; /* no fill at the beginning */\n} \n\n._CSS-circle-progress {\n  position: absolute;\n  top: 0;\n  left: 0;\n  right: 0;\n  bottom: 0;\n\n  display: flex;\n  justify-content: center;\n  align-items: center;\n}\n\n._CSS-justuploaded {\n  overflow: hidden;\n  font-size: var(--ae-font-size-2);\n  padding: var(--ae-space-1);\n\n  display: flex;\n  align-items: center;\n  flex-flow: column;\n}\n\n._CSS-justuploaded__filename {\n  min-width:0;\n  overflow:hidden;\n  white-space:nowrap;\n  text-overflow:ellipsis;\n  width:100%;\n  display: inline-block;\n}","description":"","name":"thumbnail","packages":[],"parameters":["hideName"],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":["Hides the name below the icon"],"parametersTypes":["boolean"],"template":"<pre class=\"fixed\" v-if=\"params.debug\">\nisUploading  {{controller.isUploading }}\nupload  {{locals.upload}}\nthmbnlSrc  {{controller.thumbnailSrc}}\n</pre>\n<!-- {{controller.dimensionsStyle}} -->\n<div \n  class=\"width-full bg-secondary-200 flex-1 bg-cover bg-no-repeat bg-center flex overflow-hidden\" \n  :style=\"controller.dimensionsStyle\"\n>\n  <div \n    class=\"w-full flex-1 bg-[var(--ae-background-200)] flex justify-center items-center\" \n    @mouseenter=\"locals.over=true;controller.playGif();\" \n    @mouseleave=\"locals.over=false\"\n  >\n    <transition name=\"ae-transition__fade\" mode=\"out-in\">\n      <div v-if=\"locals.gif && locals.over\"  class=\"_CSS-thumbnail\" style=\"align-self: stretch;\" :style=\"{'background-image': 'url(' + Aeppic.Content.getSrc(locals.gif,'file')  + ')' }\">\n      </div> \n      <!-- <div v-else-if=\"controller.videoThumbnailSrc\" class=\"_CSS-thumbnail\" :style=\"{'background-image': 'url(' + controller.videoThumbnailSrc  + ')' }\">\n      </div> --> \n      <template v-else-if=\"controller.thumbnailSrc\">\n        <ae-fetch class=\"_CSS-ae-fetch\" :url=\"controller.thumbnailSrc\" :document-id=\"document.id\" :retry-status-codes=\"[404,429]\" @xresponse=\"controller.toObjectUrl($event)\"> \n          <template #loading>\n            <!-- LOADING -->\n            <div v-if=\"controller.isUploading && locals.upload\" class=\"_CSS-uploading\">\n                <div class=\"_CSS-circle-container\">\n                  <svg class=\"_CSS-circle\" viewBox=\"0 0 100 100\" xmlns=\"http://www.w3.org/2000/svg\">\n                    <circle cx=\"50\" cy=\"50\" r=\"45\" :style=\"{ 'stroke-dashoffset': controller.strokeDashoffset }\"></circle>\n                  </svg>\n                  <div class=\"_CSS-circle-progress\">\n                    <ae-icon class=\"far fa-spinner-third fa-spin\" v-if=\"locals.upload.status === 'pending'\"></ae-icon>\n                    <ae-icon class=\"far fa-check\" v-else-if=\"(locals.upload.progressPercent * 100).toFixed(0) === '100'\"></ae-icon>\n                    <template v-else>\n                        {{ (locals.upload.progressPercent * 100).toFixed(0) }}%\n                    </template>\n                  </div>\n                </div>\n\n            </div>\n            <div v-else class=\"_CSS-placeholder\" title=\"Vorschau-Bild wird geladen\">\n             <ae-icon class=\"far fa-spinner-third fa-spin fa-2x\"></ae-icon> \n            </div>\n          </template> \n          <template #error>\n            <!-- ERROR -->\n            <div class=\"_CSS-placeholder\" title=\"Vorschau-Bild konnte nicht geladen werden\">\n              <ae-icon class=\"far fa-file-alt fa-2x\"></ae-icon>\n            </div>\n          </template> \n\n          <div class=\"_CSS-document-thumbnail\" :style=\"controller.dimensionsStyle\">\n            <!-- NORMAL -->\n            <img class=\"_CSS-thumbnail\" :src=\"controller.thumbnailSrc\" loading=\"lazy\" :style=\"controller.dimensionsStyle\">\n            <!-- <div class=\"_CSS-thumbnail\" :style=\"{'background-image': 'url(' + controller.thumbnailSrc  + ')' }\">\n            </div> -->\n            <!-- <div class=\"_CSS-thumbnail\" v-if=\"locals.objectUrl\" :style=\"{ 'background-image': 'url(' + locals.objectUrl  + ')' }\"> </div> -->\n          </div>\n        </ae-fetch>\n\n      </template>\n      <template v-else>\n        <div v-if=\"controller.isUploading && locals.upload\" class=\"_CSS-uploading\">\n          <div class=\"_CSS-circle-container\">\n            <svg class=\"_CSS-circle\" viewBox=\"0 0 100 100\" xmlns=\"http://www.w3.org/2000/svg\">\n              <circle cx=\"50\" cy=\"50\" r=\"45\" :style=\"{ 'stroke-dashoffset': controller.strokeDashoffset }\"></circle>\n            </svg>\n            <div class=\"_CSS-circle-progress\">\n              <ae-icon class=\"far fa-spinner-third fa-spin\" v-if=\"locals.upload.status === 'pending'\"></ae-icon>\n              <ae-icon class=\"far fa-check\" v-else-if=\"(locals.upload.progressPercent * 100).toFixed(0) === '100'\"></ae-icon>\n              <template v-else>\n                  {{ (locals.upload.progressPercent * 100).toFixed(0) }}%\n              </template>\n            </div>\n          </div>\n        </div>\n        <div v-else class=\"_CSS-justuploaded\">\n          <ae-design style=\"font-size: 2em\" name=\"icon\" :document=\"document\"></ae-design>\n          <span v-if=\"!params.hideName\" class=\"_CSS-justuploaded__filename\"> {{ data.name }}</span>\n          <ae-icon v-if=\"locals.justUploaded\" class=\"far fa-check\"></ae-icon> \n        </div>\n        <!-- <ae-design v-else style=\"font-size: 2em\" name=\"icon\" :document=\"document\"></ae-design> -->\n      </template>\n    </transition>\n  </div>\n</div>\n\n\n<!-- just {{ locals.justUploaded }},\nis {{ controller.isUploading }},\nup {{ !!locals.upload }},\nisV {{locals.isVideo}},\nthumbSrc {{controller.thumbnailSrc}}, -->"},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"cdeab632-622e-4fe4-9446-772266ba91fc","inheritedLocks":[null,null,null],"locks":[],"modified":{"at":"2025-12-12T13:00:24+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"p":"fallback-designs","previous":{"v":"026fef89c3b910c2"},"stamps":[],"t":1765544424683,"v":"70592d2998816e73"},{"id":"9fd761bd-5d0c-45fd-93d0-d8ef1d98fd32","v":"188878d81adfa1a5","previous":{"v":"e9167fc89df8f64c"},"p":"d2ac3563-3c3f-4f02-b923-9b67abf98d10","f":{"id":"design-form","v":"e3fe9ece11aabc5e","text":"Design"},"data":{"name":"tile","applies":"","template":"<div  ref=\"box\"\n      class=\"_CSS-box\"\n      :class=\"{ 'ae-navigatable': !params.readonly || (params.readonly && params.handleSelectedReadonly) }\"\n      >\n  <ae-design :name=\"params.design || 'icon'\" :document=\"document\"></ae-design> \n</div>\n\n<div class=\"_CSS-popup\" ref=\"popup\" v-show=\"locals.ready\">\n  <ae-design name=\"title\" :document=\"document\"></ae-design>\n  <button v-if=\"params.showRemove\" class=\"ae-button ae-button--small ae-button--secondary\" @click.stop=\"$emit('remove', document)\">\n    <ae-icon class=\"fal fa-times\"></ae-icon>\n  </button>\n</div> \n ","css":"._CSS .tippy-box {\n  background: white;\n  color: black;\n  box-shadow: var(--ae-shadow-1);\n}\n\n._CSS-box {\n  position: relative;\n  display: flex;\n}\n\n\n._CSS-popup {\n  display: flex;\n  flex-flow: column;\n  align-items: center;\n}\n","controller":"class Controller {\n  async init() {\n    locals.ready = false\n\n    await Aeppic.nextRenderPass()\n    this.tippy = Aeppic.Modules.Tippy.default($refs.box, {\n      content: $refs.popup,\n      interactive: true,\n      delay: [50, 100],\n    })\n\n    locals.ready = true\n  }\n \n  destroy() {\n    if (this.tippy) {\n      this.tippy.destroy()\n    }\n  }\n}","packages":[]},"locks":[],"created":{"at":"2018-01-02T23:15:04+01:00","by":"","from":"","client":"87c11590-1c4f-4920-8b7c-dbb0b44fe845"},"modified":{"at":"2021-07-08T12:19:24+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1625746764951,"ct":1514931302111,"a_depth":4,"a":["apps","144e85c0-d7f9-4b20-8928-be30f0c78bda","8e6ee7d3-9122-4a2e-8aaf-9fb3bd204b23","d2ac3563-3c3f-4f02-b923-9b67abf98d10"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"1659f2ab-21a2-47a9-a881-34ac61dff0ee","v":"fb963a596ca186a9","previous":{"v":"95b34eee2f3ef0d9"},"p":"53eecc66-c1a1-47da-b9df-67cc2b8b60f5","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"time","template":"<template v-if=\"data.date\">\n  {{ Aeppic.DateTime.fromISO(data.date).toLocaleString(Aeppic.DateTime.DATE_SHORT) }}\n</template>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-01-27T08:47:54+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-01-27T08:49:01+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1643273341855,"ct":1643273274015,"a_depth":4,"a":["apps","8884dd6d-4320-4de2-91fe-6777ecfebec9","b9b17d13-b861-425a-9c17-d27d18d5be06","53eecc66-c1a1-47da-b9df-67cc2b8b60f5"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"22f397d9-61e6-4236-9dec-c0f8bac304c5","v":"6d8aa2ab2816fbb6","cloneOf":{"id":"c363eb49-84be-4629-8fc1-53a1192cd46d","v":"b2b66a2926a9f6ee","text":"time"},"originalCloneOf":{"id":"c363eb49-84be-4629-8fc1-53a1192cd46d","v":"b2b66a2926a9f6ee","text":"time"},"previous":{"v":"0c1164394501480c"},"p":"e6b7aced-aaa0-49a4-b573-cfa307595402","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"time","template":"\n\n<template v-if=\"!data.allday\">\n  <span v-if=\"controller.isSingleDayTime\">\n    <template v-if=\"data.start\">\n      {{ Aeppic.DateTime.fromISO(data.start).toLocaleString(Aeppic.DateTime.TIME_24_SIMPLE) }} \n    </template>\n      <template v-if=\"data.end\">\n        bis\n      {{ Aeppic.DateTime.fromISO(data.end).toLocaleString(Aeppic.DateTime.TIME_24_SIMPLE) }}\n    </template>\n  </span>\n  <span v-else :title=\"'Zeitblock von ' + Aeppic.DateTime.fromISO(data.start).toLocaleString(Aeppic.DateTime.DATETIME_SHORT) + ' bis ' + Aeppic.DateTime.fromISO(data.end).toLocaleString(Aeppic.DateTime.DATETIME_SHORT) \">\n    Ganztätig <ae-icon class=\"far fa-th-large\"></ae-icon>\n  </span>\n</template> \n <span v-else>\n   Ganztätig\n </span>\n\n\n\n\n\n","css":"","controller":"get isSingleDayTime() {\n  if (data.start && data.end) {\n    const start = Aeppic.DateTime.fromISO(data.start)\n    const end = Aeppic.DateTime.fromISO(data.end)\n\n    return start.day === end.day &&\n           start.month === end.month &&\n           start.year === end.year\n  }\n\n  return true\n}\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-10-11T13:45:24+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-10-11T13:48:08+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1633960088700,"ct":1633959924559,"a_depth":4,"a":["apps","d8c9a42b-e289-4c9a-97ea-801de8ab480a","db8e20d1-732c-4c6b-9cfc-b323f83fa378","e6b7aced-aaa0-49a4-b573-cfa307595402"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"4835cc0b-7976-4aba-bf01-ab748fb8d56e","v":"94d00aa2675c9b6d","cloneOf":{"id":"c363eb49-84be-4629-8fc1-53a1192cd46d","v":"b2b66a2926a9f6ee","text":"time"},"originalCloneOf":{"id":"c363eb49-84be-4629-8fc1-53a1192cd46d","v":"b2b66a2926a9f6ee","text":"time"},"previous":{"v":"0efdd7a9229a5171"},"p":"84ede5f8-c5af-4113-8235-4b7fa528e265","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"time","template":"<template v-if=\"data.datum\">\n  {{ Aeppic.DateTime.fromISO(data.datum).toLocaleString(Aeppic.DateTime.TIME_24_SIMPLE) }} \n</template>\n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-10-11T13:18:51+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-10-11T13:27:59+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1633958879638,"ct":1633958331084,"a_depth":4,"a":["apps","9d6ee173-26fe-4472-a271-7667f717094e","53b70eca-0cef-448b-9674-22a70a937eb1","84ede5f8-c5af-4113-8235-4b7fa528e265"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"c363eb49-84be-4629-8fc1-53a1192cd46d","v":"b2b66a2926a9f6ee","previous":{"v":"241e4d515398d39a"},"p":"0deb4864-cbb6-420c-99ee-337c7444ab24","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"time","template":"\n\n<template v-if=\"data.bisDateTime\">\n  <span v-if=\"controller.isSingleDayTime\">\n    <template v-if=\"data.bisStart\">\n      {{ Aeppic.DateTime.fromISO(data.bisStart).toLocaleString(Aeppic.DateTime.TIME_24_SIMPLE) }} \n    </template>\n      <template v-if=\"data.bisEnde\">\n        bis\n      {{ Aeppic.DateTime.fromISO(data.bisEnde).toLocaleString(Aeppic.DateTime.TIME_24_SIMPLE) }}\n    </template>\n  </span>\n  <span v-else :title=\"'Zeitblock von ' + Aeppic.DateTime.fromISO(data.bisStart).toLocaleString(Aeppic.DateTime.DATETIME_SHORT) + ' bis ' + Aeppic.DateTime.fromISO(data.bisEnde).toLocaleString(Aeppic.DateTime.DATETIME_SHORT) \">\n    Ganztätig <ae-icon class=\"far fa-th-large\"></ae-icon>\n  </span>\n</template> \n <span v-else>\n   Ganztätig\n </span>\n\n\n\n\n\n","css":"","controller":"get isSingleDayTime() {\n  if (data.bisStart && data.bisEnde) {\n    const start = Aeppic.DateTime.fromISO(data.bisStart)\n    const end = Aeppic.DateTime.fromISO(data.bisEnde)\n\n    return start.day === end.day &&\n           start.month === end.month &&\n           start.year === end.year\n  }\n\n  return true\n}\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-10-08T13:39:21+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-10-08T15:41:12+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1633707672121,"ct":1633700361661,"a_depth":4,"a":["apps","59edbdbc-2cab-426a-bb42-6e57c5158e4f","3be7e887-1bcd-4c3c-979f-b20a986c4c48","0deb4864-cbb6-420c-99ee-337c7444ab24"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"d38d1743-89d3-41f5-8671-69ff92228ac1","v":"fb4d901d9b6bbcaa","previous":{"v":"49abea0a949f0557"},"p":"stamp","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"timeline-entry","template":"<div class=\"flex flex-row gap-1 items-center \">\n  <ae-design :document-id=\"document.created.by\" name=\"avatar--tiny,title\"></ae-design>\n  <div class=\"flex flex-col\">\n    <ae-design class=\"grow text-ellipsis overflow-hidden\" :document=\"document\" name=\"title\"></ae-design>  \n    <time class=\"text-black/40 text-xxs\"\n      :datetime=\"document.created.at\"\n      :title=\"Aeppic.DateTime.fromISO(document.created.at).toLocaleString(Aeppic.DateTime.DATETIME_HUGE_WITH_SECONDS)\"\n      >\n      {{ locals.modifiedDisplay }}\n    </time>\n  </div>\n</div>","css":"","controller":"init() {\n  locals.modifiedDisplay = Aeppic.Formatting.formatPastDateTime(document.created.at)\n} ","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-06-27T18:03:59+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-07-05T09:48:57+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720165737569,"ct":1719504239063,"a_depth":3,"a":["system","system-forms","stamp"],"a_forms":["system-folder-form","repository-folder-form","form"],"inheritedLocks":[null,null,null,null],"stamps":[]},{"id":"42a71083-666a-44d4-99c1-100940ee3ef0","v":"c2cdf05ba0023412","p":"fallback-designs","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"timetracking:progress","template":"<div v-if=\"params.edit\" v-show=\"locals.showTippyPopup\" ref=\"popup\" class=\"_CSS-popup\">\n  <ae-layout layout-id=\"cf3b721d-9825-40ba-8076-4e6cbaf164d1\" :param-document=\"document\"></ae-layout>\n</div>\n\n<div ref=\"box\" v-if=\"locals.duration || locals.estimate\">\n\t<!-- <div class=\"ae-form-cell__label\">\n\t\t\tGesamte erfasste Zeiten (\n\t\t\t<span title=\"Summe aller erfassten Zeiten\" v-if=\"locals.duration\">\n        <ae-icon class=\"fa fa-sigma\"></ae-icon>{{ locals.duration.toFormat(\"h'h' m'm'\") }}\n      </span>\n\t\t\t<span v-if=\"locals.progress.estimateAbsolute > 0\" title=\"Schätzung der zu erwartenden Zeit\">\n        <template v-if=\"locals.duration\">,</template>\n        Schätzung: {{ locals.estimate.toFormat(\"h'h' m'm'\") }}\n      </span>)\n\t\t</div> -->\n\t<div class=\"_CSS-progress\" :style=\"{ 'min-width': params.minWidth }\"\n        v-if=\"locals.progress.overdone || locals.progress.remaining || locals.progress.estimate || locals.progress.duration\"\n  >\n    <div class=\"_CSS-progress__totals\" v-if=\"!params.hideTotals\">\n      <template v-if=\"locals.duration\">\n        <ae-icon class=\"fa fa-sigma\"></ae-icon>\n        {{ controller.readableDuration(locals.duration) }}\n      </template>\n      <span v-if=\"locals.progress.estimateAbsolute > 0\" title=\"Schätzung der zu erwartenden Zeit\" style=\"margin-left:var(--ae-space-3);\">\n        <ae-icon class=\"fa fa-clock\"></ae-icon>\n        {{ controller.readableDuration(locals.estimate) }}\n      </span>\n    </div>\n    <template v-if=\"locals.progress.isOverdone\">\n      <div title=\"Erfasst\" class=\"_CSS-progress__value _CSS-progress__value--left _CSS-progress__closed\" :style=\"{ width: locals.progress.estimate + '%' }\">\n        <span class=\"_CSS-progress__title\">\n          {{ controller.readableDuration(locals.estimate) }}\n        </span>\n      </div>\n      <div title=\"Überzogen\" class=\"_CSS-progress__value _CSS-progress__value--right _CSS-progress__overdone\" :style=\"{ width: locals.progress.overdone + '%' }\">\n        <span class=\"_CSS-progress__title\">\n        {{ controller.readableDuration(Aeppic.DateTimeDuration.fromMillis(locals.progress.overdoneAbsolute)) }}\n\n        </span>\n      </div>\n    </template> \n    <template v-else>\n      <div v-if=\"locals.duration && locals.duration.as('milliseconds') > 0\" title=\"Erfasst\" class=\"_CSS-progress__value _CSS-progress__value--left _CSS-progress__closed\" :class=\"{ '_CSS-progress__value--right': !locals.progress.remainingAbsolute }\"\n        :style=\"{ width: locals.progress.duration + '%' }\">\n        <span class=\"_CSS-progress__title\">\n          {{ controller.readableDuration(locals.duration) }}\n        </span>\n      </div>\n      <div v-if=\"locals.progress.remainingAbsolute > 0\" title=\"Verbleibend\" class=\"_CSS-progress__value _CSS-progress__value--right _CSS-progress__open\" \n        :style=\"{ width: locals.progress.remaining + '%' }\" :class=\"{ '_CSS-progress__value--left': !locals.duration || !locals.duration.as('milliseconds') }\">\n        <span class=\"_CSS-progress__title\">\n          {{ controller.readableDuration(Aeppic.DateTimeDuration.fromMillis(locals.progress.remainingAbsolute)) }}\n        </span>\n      </div>\n    </template>\n\t\t</div>\n</div>\n<div v-else ref=\"box\" class=\"_CSS-progress _CSS-progress--empty\" :style=\"{ 'min-width': params.minWidth }\">\n  <div class=\"_CSS-progress__value _CSS-progress__value--right _CSS-progress__open\" \n        :style=\"{ width: '100%' }\" :class=\"{ '_CSS-progress__value--left': !locals.duration || !locals.duration.as('milliseconds') }\">\n        <span class=\"_CSS-progress__title\">\n          {{ controller.readableDuration(Aeppic.DateTimeDuration.fromMillis(locals.progress.remainingAbsolute)) }} \n        </span>\n    </div>\n</div>\n ","css":"._CSS .tippy-box {\n  background: white;\n  color: black;\n  box-shadow: var(--ae-shadow-1);\n}\n\n._CSS-progress {\n  display: flex;\n  position: relative;\n  border-radius: var(--ae-border-radius);\n  margin: 16px 0 16px 0; /* margin to include the absolute positioned numbers. this also increases hover capture area */\n}\n\n._CSS-progress--empty {\n  opacity: var(--ae-opacity-1);\n}\n\n._CSS-progress__title {\n  display: flex;\n  justify-content: center;\n  font-size: var(--ae-font-size-2);\n  height: 20px;\n  position: absolute;\n  top: 8px;\n  white-space: nowrap;\n  overflow: hidden;\n}\n\n._CSS-progress__totals {\n  position: absolute;\n  top: -20px;\n  left: 0;\n  right: 0;\n\n  display: flex;\n  justify-content: center;\n  align-items: center;\n\n  font-size: var(--ae-font-size-2);\n  color: var(--ae-background-700);\n}\n\n._CSS-progress__value {\n  height: 8px;\n\n  display: flex;\n  justify-content: center;\n}\n\n._CSS-progress__value--left {\n  border-top-left-radius: var(--ae-border-radius);\n  border-bottom-left-radius: var(--ae-border-radius);\n}\n._CSS-progress__value--right {\n  border-top-right-radius: var(--ae-border-radius);\n  border-bottom-right-radius: var(--ae-border-radius);\n}\n\n// ._CSS-progress__value > * {\n//   padding: 7px;\n// }\n\n._CSS-progress__overdone {\n  background: var(--ae-accent-red-400) !important;\n}\n\n\n._CSS-progress__open {\n  background: var(--ae-background-300);\n  xbackground: transparent;\n}\n\n._CSS-progress__closed {\n  background: var(--ae-primary-500);\n  xbackground: var(--ae-accent-green-700);\n} ","controller":"class TimeTrackingController {\n  async init() {\n    locals.showTippyPopup = false\n    \n    locals.estimate = null\n    locals.duration = null\n    locals.progress = this._getProgress()\n  \n    Aeppic.subscribeQuery('dd148098-bd15-4baa-a4ce-df14e495c629', document.id, async (documents) => {\n      locals.duration = this.totalDuration(documents)\n\n      locals.progress = this._getProgress()\n    })\n\n    Aeppic.subscribeQuery('8ef18931-8716-4582-bbec-ee8b40aec7de', document.id, (documents) => {\n      if (!documents.length) {\n        locals.estimate = null\n      } else {\n        locals.estimate = Aeppic.DateTimeDuration.fromObject(documents[0].data.dauer)\n      }\n\n      locals.progress = this._getProgress()\n    })\n \n    await Aeppic.nextRenderPass()\n\n    watchParam('edit', (edit) => this._updatePopup(edit))\n \n    this._updatePopup(params.edit)\n  }\n\n  _updatePopup(isEditingDocument) {\n    console.log('_updatePopup')\n    if (isEditingDocument) {\n      this.tippy = Aeppic.Modules.Tippy.default($refs.box, {\n        content: $refs.popup,\n        interactive: true,\n        delay: [50, 100],\n      })\n    } else {\n      if (this.tippy) {\n        this.tippy.destroy()\n      }\n    }\n\n    locals.showTippyPopup = !!isEditingDocument\n  }\n\n  _getProgress() {\n    const absolutes = {\n      estimate: locals.estimate ? locals.estimate.as('milliseconds') : 0,\n      duration: locals.duration ? locals.duration.as('milliseconds') : 0,\n      overdone: 0,\n      remaining: 0\n    }\n\n    if (absolutes.estimate > 0) {\n      absolutes.remaining = absolutes.estimate - absolutes.duration\n    } else {\n      absolutes.remaining = 0\n    }\n\n\n    if (absolutes.remaining < 0) {\n      absolutes.overdone = -absolutes.remaining\n    }\n\n    params.debug && console.log('abs',absolutes) \n\n    let all = 0\n\n    if (absolutes.remaining >= 0) {\n      all = absolutes.duration + absolutes.remaining\n    } else {\n      all = absolutes.estimate + absolutes.overdone\n    }\n\n    if (all === 0) {\n      return {}\n    }\n\n    const percentile = 100 / all\n\n    const percentiles = {\n      duration: absolutes.duration * percentile,\n      remaining: absolutes.remaining * percentile,\n      overdone: absolutes.overdone * percentile,\n      estimate: absolutes.estimate * percentile,\n    }\n\n \n    return {\n      remaining: percentiles.remaining,\n      remainingAbsolute: absolutes.remaining,\n      duration: percentiles.duration,\n      overdone: percentiles.overdone,\n      isOverdone: absolutes.overdone > 0,\n      overdoneAbsolute: absolutes.overdone,\n      estimate: percentiles.estimate,\n      estimateAbsolute: absolutes.estimate\n    }\n  }\n\n  totalDuration(trackings) {\n    if (!trackings.length) {\n      return null\n    }\n\n    const duration = trackings.reduce((prev, cur) => {\n      return Aeppic.DateTimeDuration.fromObject(cur.data.dauer).plus(prev)\n    }, Aeppic.DateTimeDuration.fromMillis(0))\n\n    return duration\n  }\n\n  readableDuration(duration) {\n    const { hours, minutes } = duration.shiftTo('hours', 'minutes', 'seconds') // shift seconds/millis out to prevent 4m 41s to look sth like 4.666666666666m.\n\n    if (hours && minutes) {\n      return `${hours}h ${minutes}m`\n    }\n\n    if (hours) {\n      return `${hours}h`\n    }\n\n    if (minutes) {\n      return `${minutes}m`\n    }\n\n    return '--'\n  }\n\n  destroy() {\n    if (this.tippy) {\n      this.tippy.destroy()\n    }\n  }\n}  \n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-06-01T14:59:39+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-02-25T16:00:10+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720684627140,"ct":1720684627140,"a_depth":2,"a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"],"inheritedLocks":[null,null,null],"stamps":[],"previous":{"v":"e8a62ff7668bad8a","f":{"id":"design-form","v":"e37099c040ec46e9","text":"Design"}},"meta":{"modified":{"at":"2024-07-11T09:57:07+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"e5672703-3c7b-4b3a-b786-388413c27e31","v":"initial","previous":{"v":""},"p":"0a46aebe-e1fd-4f0e-bf20-4974cec7b03c","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"tiny","applies":"","template":"<a ng-href=\"tel:{{data.telefonnummer}}\">{{data.telefonnummer}}</a>","css":"","controller":"","packages":[]},"locks":[],"lockRefs":[],"created":{"at":"2018-02-06T09:47:54+01:00","by":"","from":"","client":"server"},"modified":{"at":"2018-02-06T09:47:54+01:00","by":"","from":"","client":"server"},"t":1517906874502,"ct":1517906874502,"a_depth":4,"a":["apps","b791df37-6eef-4a3e-9066-1b79e0bdad31","35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f","0a46aebe-e1fd-4f0e-bf20-4974cec7b03c"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"af35ec72-33b0-4ba8-9b5b-c2b90e96ad9d","v":"2c05c10b1e324120","previous":{"v":"390c1bcca75e4ac7"},"p":"d2ac3563-3c3f-4f02-b923-9b67abf98d10","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"tiptap-embed","template":"<div class=\"bg-sky-100 text-sky-900 rounded-lg px-1 mx-1\">\n  <ae-icon class=\"fal fa-at\"></ae-icon> {{ data.name }}\n</div>","css":"._CSS {\n  display: inline-block;\n}","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-07-05T14:34:36+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-09-07T12:23:18+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1662553398118,"ct":1657031676273,"a_depth":4,"a":["apps","144e85c0-d7f9-4b20-8928-be30f0c78bda","8e6ee7d3-9122-4a2e-8aaf-9fb3bd204b23","d2ac3563-3c3f-4f02-b923-9b67abf98d10"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"dd693f9b-e301-401d-b1e5-2166866e3409","v":"707d6115d46956d1","p":"fallback-designs","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"tiptap-embed","template":"<!-- <span style=\"background:green;\">foo</span> -->\n<div class=\"_CSS-name ae-navigatable\" @click.stop=\"Aeppic.drillInto(document.id)\">\n  <ae-design  name=\"icon\" :document=\"document\" style=\"margin-right: var(--ae-size-1)\"></ae-design>\n  <ae-design  name=\"title\" :document=\"document\"></ae-design>\n</div>\n","css":"._CSS {\n  display:flex;\n}\n\n._CSS-name {\n  flex: 1;\n  display: flex;\n  align-items: center;\n  background: var(--ae-ui-background);\n  border: var(--ae-border-width) solid var(--ae-primary-900);\n  color: var(--ae-background-900);\n  border-radius: var(--ae-border-radius);\n  margin: 0 var(--ae-size-1); \n  padding: var(--ae-size-1) var(--ae-size-2);\n}\n\n","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-05-08T09:00:44+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2020-11-26T15:59:34+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720684627140,"ct":1720684627140,"a_depth":2,"a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"],"inheritedLocks":[null,null,null],"stamps":[],"previous":{"v":"263a91368126426b","f":{"id":"design-form","v":"9bfe8e0cd909c1f0","text":"Design"}},"meta":{"modified":{"at":"2024-07-11T09:57:07+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"04c43b25-96af-47a3-b661-2538062c0ae4","v":"initial","previous":{"v":""},"p":"3e8f2e25-3e2a-4559-befb-3c65a630f4b2","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"title","applies":"","template":"{{data.name || 'Unbenannt'}} <template v-if=\"data.anmerkung\">({{ data.anmerkung }})</template>","css":"","controller":"","packages":[]},"locks":[],"created":{"at":"2018-05-24T16:28:36+02:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","backedBy":null,"from":"","client":"server"},"modified":{"at":"2018-05-24T16:28:36+02:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","backedBy":null,"from":"","client":"server"},"t":1527172116682,"ct":1527172116682,"a_depth":5,"a":["apps","83c76376-420e-4231-9275-d0fe2ab47c32","ba440134-1703-495e-b869-0f0c8d447f75","91352b74-c5e5-4c05-aa68-f13b0b723f35","3e8f2e25-3e2a-4559-befb-3c65a630f4b2"],"a_forms":["folder","application-form","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"0a1710ba-bf28-4ab9-bf7e-c2af91b8d417","v":"initial","p":"2cb914fb-782c-4311-9b34-1734e523816f","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"title","template":"<pre style=\"min-width:6em\">{{data.type}}</pre>\r\n<pre style=\"font-weight:bold\">{{data.code}}</pre>\r\n<small style=\"margin-left:1em\" :title=\"DateTime.fromISO(document.created.at).toLocaleString(DateTime.DATETIME_FULL)\">{{DateTime.fromISO(document.created.at).toLocaleString(DateTime.DATETIME_FULL)}}</small>","css":"._CSS {\r\n  display: flex;\r\n  flex-direction: row;\r\n  align-items: center;\r\n}","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-11-02T09:38:39+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-11-02T09:38:39+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1635845919518,"ct":1635845919518,"a_depth":4,"a":["apps","781ff5de-69db-49dc-99f0-f328b308cd7d","dbd0bd68-3479-4032-9303-9d51615c27a7","2cb914fb-782c-4311-9b34-1734e523816f"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"10fa3ad5-1439-461e-95da-aee822694f4c","v":"dbf8acd4f21ad27b","previous":{"v":"initial"},"p":"d7f0c56d-8e0e-4607-911b-b0789c557d40","f":{"id":"design-form","v":"3385ac6766f32638","text":"Design"},"data":{"name":"title","template":"<div class=\"flex gap-2\">\n  <ae-design name=\"entry-number\" :document-id=\"data.eintrag.id\"></ae-design>\n  <ae-design name=\"entry-description\" :document-id=\"data.eintrag.id\"></ae-design> \n</div>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-03-10T10:25:40+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-03-10T10:26:10+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1646907970834,"ct":1646907940569,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","d7f0c56d-8e0e-4607-911b-b0789c557d40"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"161abdff-b36d-40cf-8d72-38609be84aee","v":"769dfc90cdd5542e","previous":{"v":"1d2c2050c41bc129"},"p":"816b2d0e-5158-4f0c-a5cf-6069bb76de69","f":{"id":"design-form","v":"3385ac6766f32638","text":"Design"},"data":{"name":"title","template":"<div class=\"flex gap-2\">\n  <ae-design name=\"title\" :document-id=\"data.eintrag.id\"></ae-design>\n</div>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-03-10T10:20:21+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-03-31T14:11:55+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1648735915007,"ct":1646907621197,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","816b2d0e-5158-4f0c-a5cf-6069bb76de69"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["system","b2533f7b-ea85-4680-99ed-d8e11be641b9","0e6939d6-9b93-4165-b6bd-977e4da881f3","627f5b74-3baf-45f8-a1d3-a5936839b844","lock-form"],"a_depth":5,"a_forms":["system-folder-form","folder","application-form","form-folder","form"],"created":{"at":"2018-05-23T11:44:43+02:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","client":"server","from":""},"ct":1593509380297,"data":{"aliases":[],"controller":"","css":"","description":"","name":"title","packages":[],"template":"<!-- <ae-icon class=\"fa fa-lock\" style=\"opacity:0.5\"></ae-icon> -->\r\n\r\n<span v-if=\"data.shared\">{{data.name}}</span> \r\n<span v-else>Individuelles Schloss <small v-if=\"data.name\">: {{data.name}}</small> </span>\r\n<ae-design v-if=\"data.name.startsWith('ACCOUNT_')\"\r\n  name=\"title\" :document-id=\"document.p\" style=\"opacity:0.5\"\r\n></ae-design>"},"f":{"id":"design-form","text":"Design","v":"9bfe8e0cd909c1f0"},"id":"16c14866-7191-40be-9cbc-9e37e95d8c20","inheritedLocks":[null,null,null,null,null,null],"locks":[],"modified":{"at":"2025-10-17T09:56:23+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"lock-form","previous":{"v":"0ec0fbddd7d4781e"},"stamps":[],"t":1760694983133,"v":"350ea75ce86d1355"},{"id":"17acd1e0-1878-4fcf-9afa-204835b7a85b","v":"38c5ceb67e108bc8","previous":{"v":"4700c0a92cfcf695"},"p":"account","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"title","applies":"","template":"<template v-if=\"locals.profile && locals.profile.data\">\r\n  <ae-design class=\"_CSS-ae-design\" name=\"title\" :document=\"locals.profile\"></ae-design> (<span v-if=\"!data.name\" style=\"opacity: 0.5;\">Unbenannt</span><span v-else :title=\"data.name\">{{ data.name || document.id }}</span>)\r\n</template>\r\n<span v-else-if=\"!data.name\" style=\"opacity: 0.5;\">\r\n  Unbenannt\r\n</span> \r\n<span v-else :title=\"data.name\">\r\n  {{ data.name || document.id }}\r\n</span>","css":"._CSS {\r\n  white-space: nowrap;\r\n}\r\n\r\n._CSS > * {\r\n  vertical-align: top;\r\n}\r\n\r\n._CSS-ae-design {\r\n  display: inline-block;\r\n}","controller":"init() {\r\n  locals.profile = document.data.parentIsProfile\r\n                    ? Aeppic.get(document.p)\r\n                    : Aeppic.get(document.data.profilePage)\r\n} ","packages":[]},"locks":[],"created":{"at":"2018-10-19T15:26:53+00:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","from":"","client":"server"},"modified":{"at":"2018-12-07T16:08:39+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1544198919305,"ct":1539962813165,"a_depth":5,"a":["system","b2533f7b-ea85-4680-99ed-d8e11be641b9","0e6939d6-9b93-4165-b6bd-977e4da881f3","627f5b74-3baf-45f8-a1d3-a5936839b844","account"],"a_forms":["system-folder-form","folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"17d5dd01-ed59-42fe-9897-f24d0d05677c","v":"initial","p":"573a7cb1-789b-4600-94a1-95edc76fc34c","f":{"id":"design-form","v":"49954170df6a253b","text":"Design"},"data":{"name":"title","template":"<div style=\"display:flex\">\n  <ae-design v-if=\"data.rootDocument && data.rootDocument.id\" name=\"title\" :document-id=\"data.rootDocument.id\"></ae-design>\n  <div v-else>No Document Specified</div>\n  <div v-if=\"data.includeBinaryContent\" style=\"margin-left:5px;\">with Files</div>\n</div>","css":"","controller":"","packages":[],"description":""},"locks":[],"created":{"at":"2019-03-12T14:39:32+00:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2019-03-12T14:39:32+00:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1552401572497,"ct":1552401572485,"a_depth":4,"a":["apps","e4a62254-c6ab-4d0d-a9ae-81934093f6e2","f6d2a869-980d-4654-ad06-0564b9aa747c","573a7cb1-789b-4600-94a1-95edc76fc34c"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"24155cdc-be12-4cf6-b5dd-fcda7f320e91","v":"initial","p":"b2e28e17-ca96-4b86-b471-3468390c37af","f":{"id":"design-form","v":"3385ac6766f32638","text":"Design"},"data":{"name":"title","template":"<span style=\"font-weight:bold\">{{data.price}}  EUR</span>\r\n&nbsp;\r\n<span >{{data.distributor.text}}</span>\r\n&nbsp;\r\n<span style=\"font-size:smaller\">\r\n{{Aeppic.DateTime.fromISO(document.modified.at).toLocaleString(Aeppic.DateTime.DATE_SHORT)}}\r\n</span>","css":"._CSS {\r\n  white-space:nowrap;\r\n  display:flex;\r\n  align-items: center;\r\n}","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-11-02T09:38:35+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-11-02T09:38:35+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1635845915448,"ct":1635845915447,"a_depth":4,"a":["apps","781ff5de-69db-49dc-99f0-f328b308cd7d","dbd0bd68-3479-4032-9303-9d51615c27a7","b2e28e17-ca96-4b86-b471-3468390c37af"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","bafa23ba-a0dc-406d-8854-77ea31b4ea4b","ee59298b-ba97-4f92-9c29-c7db3d4dd7b7","4b32ce35-8fe8-44b5-90b8-4da80a9475d1"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"ac906688-a8e5-42b4-b972-2d059b4e034e","text":"title","v":"48253c08b7b03ad4"},"created":{"at":"2025-04-07T10:41:01+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1744022461152,"data":{"aliases":[],"controller":"","css":"._CSS-row {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 2px;\n}","description":"","name":"title","packages":[],"template":"<div class=\"_CSS-row\">\n  Matches Ancestor forms: \n  \n  <ae-design v-if=\"data.form\" :document-id=\"data.form.id\" name=\"title\"></ae-design>\n  <template v-if=\"data.forms\">\n  <ae-design v-for=\"form of data.forms\" :document-id=\"form.id\" name=\"title\"></ae-design>\n  </template>\n</div>"},"f":{"id":"design-form","text":"Design","v":"5dbbefb312ab61e2"},"id":"295c0308-10a6-4ed7-a470-8a7f0767306d","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-04-07T10:41:19+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"ac906688-a8e5-42b4-b972-2d059b4e034e","text":"title","v":"48253c08b7b03ad4"},"p":"4b32ce35-8fe8-44b5-90b8-4da80a9475d1","previous":{"v":"7a46a541d4ea67fd"},"stamps":[],"t":1744022479539,"v":"611d63714ef68085"},{"id":"3648dd43-c067-4c56-9f5c-12f5b1963e49","v":"initial","previous":{"v":""},"p":"6770bab9-4e15-45ae-bf22-7fe4ef2a0848","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"title","applies":"","template":"<span class=\"_CSS-title\">{{data.name || 'Unbenannt' }}</span>\n<div class=\"_CSS-sprint\" v-if=\"data.activateSprints && locals.currentSprint\">\n  &nbsp;(<span>Sprint \"{{locals.currentSprint.data.name}}\" {{ controller.formattedDate(locals.currentSprint.data.start) }} - {{ controller.formattedDate(locals.currentSprint.data.end) }}</span>)\n</div>\n<div class=\"_CSS-sprint\" v-else-if=\"data.activateSprints && !locals.currentSprint\">\n  (kein aktiver Sprint)\n</div>","css":"._CSS {\n  white-space: nowrap;\n  text-overflow: ellipsis;\n  overflow: hidden;\n}\n\n._CSS * {\n  display: inline;\n}","controller":"class Controller {\n  async init () {\n    const currentSprint = data.activateSprints && await Aeppic.find(`f.id:fee1d6a3-fd7b-416c-a42a-e11c9585bcf5 p:${document.id} data.start: [* TO now] data.end: [now TO *]`)\n    if (!currentSprint) {\n      return\n    }\n    locals.currentSprint = currentSprint[0]\n  }\n\n  formattedDate(dateString) {\n    return DateTime.fromISO(dateString).toLocaleString(DateTime.DATE_MED)\n  }\n}\n","packages":[]},"locks":[],"created":{"at":"2018-04-18T15:46:47+02:00","by":"","backedBy":"","from":"","client":"server"},"modified":{"at":"2018-04-18T15:46:47+02:00","by":"","backedBy":"","from":"","client":"server"},"t":1524059207959,"ct":1524059207959,"a_depth":4,"a":["apps","aed1ba1c-9095-4aca-8176-74a37325f0e5","58cc45fb-3fb3-45e8-b61d-4b89899e357a","6770bab9-4e15-45ae-bf22-7fe4ef2a0848"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"3894f8d1-e01a-4582-8590-30faff77bc55","v":"initial","previous":{"v":""},"p":"b42192cd-f547-4531-8fd2-1ecd7ecff581","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"title","applies":"","template":"<span v-if=\"!data.name\" style=\"opacity: 0.5;\">\n  Unbenannt\n</span>\n<span :title=\"data.name\" v-else>\n  {{ data.name }}\n</span>","css":"","controller":"","packages":[]},"locks":[],"created":{"at":"2018-04-20T12:30:42+02:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"from":"","client":"f8312258-bdc9-438a-a510-de77a69e61e9"},"modified":{"at":"2018-04-20T12:30:42+02:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"from":"","client":"f8312258-bdc9-438a-a510-de77a69e61e9"},"t":null,"ct":null,"a_depth":4,"a":["apps","b791df37-6eef-4a3e-9066-1b79e0bdad31","35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f","b42192cd-f547-4531-8fd2-1ecd7ecff581"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"435ca305-3857-49f3-9320-7098b5a5817b","v":"f2a7bfc9704684d2","previous":{"v":"initial"},"p":"f59fae1a-c2f0-4bf6-b896-1caa8cf950ed","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"title","applies":"","template":"Objekte","css":"","controller":"","packages":[]},"locks":[],"created":{"at":"2018-02-06T09:47:15+01:00","by":"","from":"","client":"server"},"modified":{"at":"2018-02-21T09:39:27+01:00","by":"","from":"","client":"server"},"t":1519202367197,"ct":1517906835165,"a_depth":4,"a":["apps","b791df37-6eef-4a3e-9066-1b79e0bdad31","35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f","f59fae1a-c2f0-4bf6-b896-1caa8cf950ed"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"440b5300-c848-4cec-b5d2-6241c84ad472","v":"initial","previous":{"v":""},"p":"c186a5aa-6a83-4ed4-894a-c0c312925058","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"title","applies":"","template":"Messpunkt","css":"","controller":"","packages":[]},"locks":[],"created":{"at":"2018-02-23T08:29:39+01:00","by":"","from":"","client":"server"},"modified":{"at":"2018-02-23T08:29:39+01:00","by":"","from":"","client":"server"},"t":1519370979897,"ct":1519370979897,"a_depth":4,"a":["apps","b791df37-6eef-4a3e-9066-1b79e0bdad31","35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f","c186a5aa-6a83-4ed4-894a-c0c312925058"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"456c850a-6795-4375-96f9-cc43a1dd9ce7","v":"0146b2b8047c5e8d","previous":{"v":"5eea089f415098b5"},"p":"stamp","f":{"id":"design-form","v":"dc80c4f66c6eb776","text":"Design"},"data":{"name":"title","template":"<div :title=\"controller.getTooltip()\" class=\"truncate\" v-if=\"locals.type\">\n  {{locals.type.data.name && (locals.type.data.label || locals.type.data.name)}} \n</div> \n<div v-if=\"locals.type?.data.requiresComment\" class=\"cursor-help truncate text-sm max-w-xs flex flex-row items-center \" :title=\"'Comment: ' + document.data.comment\"> \n  <span class=\"text-gray-500\">{{document.data.comment}}</span>\n</div>","css":"._CSS {\r\n  white-space: nowrap;\r\n  text-overflow: ellipsis;\r\n  display: grid;\r\n  grid-template-columns: min-content;\r\n}","controller":"async init() {\r\n  locals.type = await Aeppic.get(document.data.type)\r\n  locals.workflow = await Aeppic.get(document.data.workflow)\r\n}\r\n\r\ngetTooltip() {\r\n  const stampType = locals.type?.data.name ?? '<untyped>'\r\n  const workflow = locals.workflow?.data.name\r\n\r\n  const main = (stampType + (workflow ? ' ('+workflow+')' : '')).trim()\r\n  return main\r\n}\r\n\r\ngetComment() {\r\n  const stampType = locals.type\r\n  \r\n  if (stampType.data.requiresComment) {\r\n    return document.data.comment \r\n  }\r\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-07-07T15:09:59+00:00","by":"8e6c22aa-8c69-4ff8-919a-7032841cf636","from":"","client":"server"},"modified":{"at":"2024-07-18T09:16:42+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1721287002133,"ct":1594134599236,"a_depth":3,"a":["system","system-forms","stamp"],"a_forms":["system-folder-form","repository-folder-form","form"],"inheritedLocks":[null,null,null,null],"stamps":[]},{"id":"502c7c11-f366-419e-9512-759f9a89cf20","v":"bfb7a4d8e6b938a2","previous":{"v":"070e40ea25c51e2f"},"p":"3cf04f76-f463-4b98-9c73-78df68374ede","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"title","applies":"","template":"{{ data.displayName || data.name || document.id || 'unknown' }}","css":"","controller":"","packages":[]},"locks":[],"created":{"at":"2018-01-09T09:26:03+01:00","by":"","from":"","client":"b20f0848-a55a-497f-a396-111e8029fc15"},"modified":{"at":"2018-02-27T18:06:48+01:00","by":"","from":"","client":"server"},"t":1519751208038,"ct":1515486361601,"a_depth":4,"a":["apps","77ee8815-2c3a-4bb5-abd9-90541a545a24","b42e5a69-6cf0-4b55-928a-755011005b5a","3cf04f76-f463-4b98-9c73-78df68374ede"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","0924db0f-7095-4b51-8966-bad1e45d68ec","a3b935e7-60bc-4996-9b18-668e4361067f","651d8603-6d29-4534-be59-4449387e857c"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2020-10-27T14:26:19+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1603808779715,"data":{"aliases":[],"controller":"class Controller {\n  init() {\n    locals.titleParts = this._buildPositionString()\n  }\n\n  _buildPositionString() {\n    // const date = data.datum ? Aeppic.DateTime.fromISO(data.datum).setLocale('de-de').toLocaleString(Aeppic.DateTime.DATE_SHORT) : ''\n    // const title = `${date} - ${data.name}`\n    const title = `${data.name}`\n    const type = data.typ\n    const duration = data.dauer ? `${Aeppic.DateTimeDuration.fromObject(data.dauer).as('hours') * data.menge} h` : ''\n    const amount = data.menge !== 1 ? `${data.menge}x` : ''\n\n    if (type === 'ZEIT') {\n      return [\n        title,\n        `${duration}`,\n      ]\n    }\n\n    if (type === 'ENTFERNUNG') {\n      return [\n        title,\n        `${data.menge} km`,\n      ]\n    }\n\n    return [\n      title,\n      `${amount}`,\n    ]\n  }\n}","css":"._CSS-details {\n  color: var(--ae-background-600);\n  font-size: var(--ae-font-size-3);\n}","description":"","name":"title","packages":[],"template":"<span class=\"_CSS-title\">\n  {{ locals.titleParts[0] }}\n</span>\n<span class=\"_CSS-details\" v-if=\"locals.titleParts[1]\">\n  ({{ locals.titleParts[1] }})\n</span>\n"},"f":{"id":"design-form","text":"Design","v":"0061789efb5c5c29"},"id":"590e4f16-1067-4432-9243-15cfd24b1733","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-03-04T16:35:47+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"651d8603-6d29-4534-be59-4449387e857c","previous":{"v":"44fcd0588ca6f616"},"stamps":[],"t":1741106147528,"v":"e3f929bdc03f69b6"},{"id":"8160622a-30e5-4640-917a-fff00d133433","v":"a82b61bb5fb1a19a","previous":{"v":"initial"},"p":"13866932-346a-448d-9560-8a7e7e26be37","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"title","applies":"","template":"<span>Projektbezogene Daten:</span><ae-design name=\"title\" :document-id=\"document.p\"></ae-design>\n","css":"._CSS > * {\n  display: inline;\n}","controller":"","packages":[]},"locks":[],"created":{"at":"2018-05-25T10:48:12+00:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","from":"","client":"server"},"modified":{"at":"2018-10-30T12:51:29+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1540903889196,"ct":1527245292358,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","13866932-346a-448d-9560-8a7e7e26be37"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","089481c4-a42f-4a98-9bc9-12e9f1131f4b","5fa71c32-0186-4007-92a9-f03a32b0ff33","43420696-8097-4fc1-88e5-c69df9821470"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2023-08-31T14:28:31+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1693492111241,"data":{"aliases":[],"controller":"","css":"","description":"","name":"title","packages":[],"template":"<div :class=\"{ 'italic': !data.name, 'pr-1': !data.name }\">\n{{ data.name || 'Unbenanntes Board'}} \n</div>"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"82836097-6b14-4d7d-a32f-2eeeadf067c3","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-04-11T07:42:24+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"43420696-8097-4fc1-88e5-c69df9821470","previous":{"v":"40760d0d699ad0a3"},"stamps":[],"t":1744357344580,"v":"c5116b6f14f9ee1c"},{"id":"84f689bf-21cc-4dc3-951e-3daef6aa094c","v":"initial","previous":{"v":""},"p":"f6bf4a0b-0f20-4295-b082-b8a106128f69","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"title","applies":"","template":"<span>[{{ DateTime.fromISO(document.modified.at).toLocaleString(DateTime.DATETIME_MED) }}]</span>\n<span>{{ data.wert }}</span>\n<span>Digits</span>","css":"","controller":"","packages":[]},"locks":[],"created":{"at":"2018-02-23T08:29:08+01:00","by":"","from":"","client":"server"},"modified":{"at":"2018-02-23T08:29:08+01:00","by":"","from":"","client":"server"},"t":1519370948447,"ct":1519370948446,"a_depth":4,"a":["apps","b791df37-6eef-4a3e-9066-1b79e0bdad31","35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f","f6bf4a0b-0f20-4295-b082-b8a106128f69"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"8bd0dca7-41c1-4169-8070-105494d1e8a5","v":"initial","p":"59b7188e-1296-4466-a9c2-d6255496e7d6","f":{"id":"design-form","v":"65801907e0c30697","text":"Design"},"data":{"name":"title","template":"{{data.name}}","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2019-08-22T12:20:29+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2019-08-22T12:20:29+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1566476429882,"ct":1566476429882,"a_depth":4,"a":["apps","b9df606f-b33a-48ad-ba91-a82fa7868fa4","f0010376-2737-42c5-aaf8-f8b8e1cd0449","59b7188e-1296-4466-a9c2-d6255496e7d6"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"8bd65fa5-580a-4051-be63-35c48507bb9e","v":"aecfb5bc5bace9aa","previous":{"v":"initial"},"p":"3b171b7f-ea90-4a19-84a0-ae25428717a0","f":{"id":"design-form","v":"24435d748c76f819","text":"Design"},"data":{"name":"title","template":"[{{ Aeppic.DateTime.fromISO(document.created.at).toLocaleString(Aeppic.DateTime.DATETIME_SHORT) }}]\n<template v-if=\"data.toAccount.length\">\n  <ae-design v-for=\"account of data.toAccount\" name=\"title\" :document=\"account\"></ae-design>\n</template>\n<template v-else-if=\"data.to\">{{ data.to }}</template>:\n{{ data.name }}\n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2019-03-18T12:26:59+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2019-03-18T12:27:03+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1552912023872,"ct":1552912019590,"a_depth":4,"a":["system","a9cb5a02-4c8f-4f0e-a29a-dfa9a977cecd","d5af4a55-e134-47cc-a10c-da22b8645ffb","3b171b7f-ea90-4a19-84a0-ae25428717a0"],"a_forms":["system-folder-form","folder","c0d56b6e-a7f6-4eaf-9e3b-cfc592ade3be","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"942cc7b0-fb90-484e-89d2-3f25ba2d86aa","v":"0bf4425baa5312b9","previous":{"v":"51fa16fe48a3d2a8"},"p":"d4d31804-1519-4866-8808-52a4f656a041","f":{"id":"design-form","v":"9bfe8e0cd909c1f0","text":"Design"},"data":{"name":"title","template":"<template v-if=\"!data.workflow || !data.workflow.id\">\r\nNo workflow chosen yet\r\n</template>\r\n<template v-else>\r\n  <template v-for=\"(a,index) of data.actors\">\r\n    <span v-if=\"index > 0\">&nbsp;&amp;&nbsp;</span>\r\n    <strong><ae-design name=\"title\" :document=\"a\"></ae-design></strong>\r\n  </template>\r\n  <span>&nbsp;-&nbsp;</span>\r\n  <ae-design name=\"title\" :document=\"data.workflow\"></ae-design> \r\n</template>","css":"._CSS {\r\n  white-space: nowrap;\r\n  display:flex!important;\r\n  align-items: center;\r\n  \r\n}\r\n\r\n._CSS > * {\r\n  display: inline-block;\r\n}\r\n","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-06-24T08:25:09+00:00","by":"8e6c22aa-8c69-4ff8-919a-7032841cf636","from":"","client":"server"},"modified":{"at":"2020-09-17T10:10:55+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1600337455193,"ct":1593593207142,"a_depth":4,"a":["apps","47dd3677-407a-42ac-8542-20d8ecf10e4f","d646d88a-6eea-424b-81a1-2df3c44993c4","d4d31804-1519-4866-8808-52a4f656a041"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"9a352e15-d3b1-48a6-afbe-b1a73c099a1e","v":"660e122c5b2b9c2c","previous":{"v":"6c2768a01d12e33a"},"p":"6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"title","template":"<span class=\"_CSS-text _CSS-text--fallback\"  :style=\"{ 'white-space': params.whiteSpace }\" v-if=\"!controller.calculatedTitle\" :class=\"[params.classForUnnamed]\" :title=\"document.id\">\n  <ae-design style=\"font-style:italic;display:inline;\" name=\"title\" :document-id=\"document.f.id\" :param-whitespace=\"params.whiteSpace\"></ae-design>\n</span>\n<span class=\"_CSS-text\" :class=\"{ '_CSS-text--fit': params.fit}\" :style=\"{ 'white-space': params.whiteSpace }\" v-else :title=\"controller.calculatedTitle\">\n  {{ controller.calculatedTitle }}\n  <ae-design style=\"display:inline-flex;\" name=\"additional-toolbar-informations\" :document=\"document\" :param-readonly=\"true\"></ae-design>\n</span>","css":"._CSS,\n._CSS-text {\n  overflow: hidden; \n  text-overflow: ellipsis;\n  white-space: nowrap;\n}\n\n._CSS-text--fallback {\n  font-style: italic;\n}\n\n._CSS-text--fit {\n  display: block;\n  white-space: normal;\n  word-break: break-all;\n}","controller":"class Controller{\n  get calculatedTitle() {\n    const name = document.data.namespace ? `${document.data.namespace}:${document.data.name}` : document.data.name\n    const label = document.data.label\n\n    const title = params.preferLabel ? label || name : name || label\n\n    return title && title.trim() || ''\n  } \n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-09-20T09:18:24+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-09-20T09:30:51+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1632130251923,"ct":1632129504249,"a_depth":4,"a":["apps","3d43a3f5-fea4-488d-9fc1-9dee5e694623","7c30f282-2b84-4976-8735-ba78662ea5e6","6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"9df61cb5-5c36-4313-a5f3-85a8f4373c11","v":"initial","p":"6d164aff-df9b-470d-9632-cfb6f5892509","f":{"id":"design-form","v":"49954170df6a253b","text":"Design"},"data":{"name":"title","template":"<span v-if=\"!data.name\" style=\"opacity: 0.5;\">\n  Unbenannt\n</span>\n<span :title=\"data.name\" v-else>\n  {{ Aeppic.translate(data.name) || document.id }}\n</span>","css":"","controller":"","packages":[],"description":""},"locks":[],"created":{"at":"2019-01-28T15:51:32+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2019-01-28T15:51:32+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1548690692951,"ct":1548690692951,"a_depth":4,"a":["apps","c9b12874-99d0-40e8-86cc-c3fe0477a15a","9b5518e5-c3ea-4446-9dc8-8628d8e8fabe","6d164aff-df9b-470d-9632-cfb6f5892509"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"ac906688-a8e5-42b4-b972-2d059b4e034e","v":"48253c08b7b03ad4","previous":{"v":"03c9871ff1392021"},"p":"bb044165-bc50-4a7f-a231-a58e6c48b5c1","f":{"id":"design-form","v":"5dbbefb312ab61e2","text":"Design"},"data":{"name":"title","template":"<div class=\"_CSS-row\">\n  Matches forms: \n  \n  <ae-design v-if=\"data.form\" :document-id=\"data.form.id\" name=\"title\"></ae-design>\n  <template v-if=\"data.forms\">\n  <ae-design v-for=\"form of data.forms\" :document-id=\"form.id\" name=\"title\"></ae-design>\n  </template>\n</div>","css":"._CSS-row {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 2px;\n}","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-01-24T13:00:08+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-04-27T13:24:46+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1682601886027,"ct":1674565208981,"a_depth":4,"a":["apps","bafa23ba-a0dc-406d-8854-77ea31b4ea4b","ee59298b-ba97-4f92-9c29-c7db3d4dd7b7","bb044165-bc50-4a7f-a231-a58e6c48b5c1"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"b637248b-d662-46e6-9228-1342f06fc12a","v":"initial","previous":{"v":""},"p":"e6f256c2-35de-4026-89f1-8641b6995290","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"title","applies":"","template":"<span v-if=\"data.einheit && data.name\">{{data.einheit}} ({{data.name}})</span>\n<span v-else>Unbekannte Leistung</span>","css":"","controller":"","packages":[]},"locks":[],"created":{"at":"2018-02-23T08:30:30+01:00","by":"","from":"","client":"server"},"modified":{"at":"2018-02-23T08:30:30+01:00","by":"","from":"","client":"server"},"t":1519371030443,"ct":1519371030443,"a_depth":4,"a":["apps","b791df37-6eef-4a3e-9066-1b79e0bdad31","35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f","e6f256c2-35de-4026-89f1-8641b6995290"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"c419556a-5c9a-4db8-8d7c-3a0822730ce8","v":"30105e99f60cee06","previous":{"v":"initial"},"p":"fc3d1b75-fb96-469b-b92c-c51358404252","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"title","applies":"","template":"Gerätezählerstand <template v-if=\"data.geraet.id\">(<ae-design class=\"_CSS-device-title\" name=\"title\" :document-id=\"data.geraet.id\"></ae-design>)</template>","css":"._CSS-device-title {\n  display: initial;\n}","controller":"","packages":[]},"locks":[],"created":{"at":"2018-02-06T09:45:59+01:00","by":"","from":"","client":"server"},"modified":{"at":"2018-02-23T08:30:07+01:00","by":"","from":"","client":"server"},"t":1519371007775,"ct":1517906759530,"a_depth":4,"a":["apps","b791df37-6eef-4a3e-9066-1b79e0bdad31","35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f","fc3d1b75-fb96-469b-b92c-c51358404252"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"cc43a6eb-45d6-41d7-840a-fbbf93e964bf","v":"initial","previous":{"v":""},"p":"669c29f7-4732-4c54-92ac-e3aaf93c66fe","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"title","applies":"","template":"<span v-if=\"data.menge || data.leistung.id\" class=\"_CSS-title\">{{data.menge}} <ae-design name=\"title\" :document-id=\"data.leistung.id\"></ae-design></span>\n<span v-else>Unbekannte Leistung</span>\n","css":"._CSS-title > * {\n  display: initial;\n}","controller":"","packages":[]},"locks":[],"created":{"at":"2018-02-23T08:35:48+01:00","by":"","from":"","client":"server"},"modified":{"at":"2018-02-23T08:35:48+01:00","by":"","from":"","client":"server"},"t":1519371348353,"ct":1519371348353,"a_depth":4,"a":["apps","b791df37-6eef-4a3e-9066-1b79e0bdad31","35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f","669c29f7-4732-4c54-92ac-e3aaf93c66fe"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"cdb706b2-0498-4559-a12b-1dde76c1e998","v":"0ef9a74ac91c4866","previous":{"v":"e029b4b9ce915789"},"p":"fallback-designs","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"title","template":"<!-- Params\n  - whiteSpace            controls whether spaces break lines. E.g. nowrap for no line breaks\n  - fit                   boolean. True tries to fit the text in its constraints\n  - classForUnnamed       custom classes for when no calculated text can be found. E.g. thin lines and italic\n  - preferName            When choosing between name and label, chooses name.\n  - title                 optional opt-in override for the hover tooltip (native title attribute). Falls back to the calculated title (or the document id, when unnamed) when not passed. Does not affect the displayed text.\n-->\n<!-- Classes\n  - Text Size              this controls the text size\n  - text color             text color in hex format\n-->\n\n<span v-if=\"!controller.calculatedTitle\" \n      class=\"overflow-hidden text-ellipsis whitespace-nowrap italic pr-1\" \n      :style=\"{ 'white-space': params.whiteSpace }\" \n      :class=\"[params.classForUnnamed]\" \n      :title=\"params.title || document.id\">\n  <ae-design class=\"italic inline\"\n             name=\"title\"\n             :document-id=\"document.f.id\" \n             :param-whitespace=\"params.whiteSpace\" \n             :param-prefer-name=\"params.preferName\">\n  </ae-design>\n</span>\n<span v-else \n      class=\"overflow-hidden text-ellipsis whitespace-nowrap\" \n      :class=\"{ 'block whitespace-normal break-all': params.fit}\" \n      :style=\"{ 'white-space': params.whiteSpace }\" \n      :title=\"params.title || controller.calculatedTitle\">\n  {{ controller.calculatedTitle }}\n  <ae-design name=\"title-extension\" \n             :document=\"document\" \n             class=\"inline-flex\">\n  </ae-design>\n</span>\n\n","css":"._CSS,\n._CSS-text {\n  overflow: hidden; \n  text-overflow: ellipsis;\n  white-space: nowrap;\n}\n\n._CSS-text--fallback {\n  font-style: italic;\n}\n\n._CSS-text--fit {\n  display: block;\n  white-space: normal;\n  word-break: break-all;\n}","controller":"class Controller{\n  get calculatedTitle() { \n    if (params.text || params.text === '') {\n      return params.text\n    }\n\n    const name = document.data.namespace ? `${document.data.namespace}:${document.data.name}` : document.data.name\n    const label = document.data.label\n\n    const title = params.preferName ? name || label : label || name\n\n    return title && title.trim() || ''\n  } \n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2019-03-13T14:40:54+00:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","client":"server","from":""},"modified":{"at":"2026-08-06T13:41:38+00:00","by":"e24f1d78-6fbd-4f97-9fb0-b1af9bd6bd13","backedBy":"","impersonatedBy":"","from":"","client":"server"},"t":1786023698196,"ct":1720684627140,"a_depth":2,"a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"],"inheritedLocks":[null,null,null],"stamps":[]},{"id":"d65decbc-0ed5-4651-9c9b-bf23e3287017","v":"initial","cloneOf":{"id":"82836097-6b14-4d7d-a32f-2eeeadf067c3","v":"c5116b6f14f9ee1c","text":"title"},"originalCloneOf":{"id":"82836097-6b14-4d7d-a32f-2eeeadf067c3","v":"c5116b6f14f9ee1c","text":"title"},"p":"4ef9e83e-1aa5-4709-bbd5-24e98ea0148c","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"title","template":"<div :class=\"{ 'italic': !data.name, 'pr-1': !data.name }\">\n{{ data.name || 'Unbenanntes Board'}} \n</div>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2026-03-23T13:30:09+00:00","by":"729fa027-7e7e-4b06-9602-f535c43824f0","backedBy":"","impersonatedBy":"","from":"","client":"server"},"modified":{"at":"2026-03-23T13:30:09+00:00","by":"729fa027-7e7e-4b06-9602-f535c43824f0","backedBy":"","impersonatedBy":"","from":"","client":"server"},"t":1774272609736,"ct":1774272609736,"a_depth":4,"a":["apps","e1bc93d1-b6c6-4711-a98f-675371c40326","1aaeb13c-eaeb-41f4-b07e-af972bef35bc","4ef9e83e-1aa5-4709-bbd5-24e98ea0148c"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"dd01ffcb-4211-4fcf-ae61-47b9da5f5357","v":"07d21ceb7f8097e5","previous":{"v":"9afecc607767622f"},"p":"key-form","f":{"id":"design-form","v":"927bf22562d7b1b6","text":"Design"},"data":{"name":"title","applies":"","template":"<div>  \n  <ae-icon class=\"fa fa-key\" style=\"opacity:0.5\"></ae-icon> \n  <span class=\"centerv label label-link document-label\">{{document.label}}</span>\n  <span v-if=\"data.rights.length == 0\" class=\"line-height centerv document-name\" :title=\"data.description\">view {{data.lock.text}}</span>\n  <span v-if=\"data.rights.length == 1\" class=\"line-height centerv document-name\" :title=\"data.description\">{{data.rights[0].text}} on {{data.lock.text}}</span>\n  <span popup=\"tooltip\" v-show=\"data.rights.length > 1\"><span v-if=\"data.rights.length > 1\" class=\"line-height centerv document-name\" :title=\"data.description\">{{data.rights.length}} rights on {{data.lock.text}}</span></span>\n  \n  <span v-if=\"data.roles.length == 1\" class=\"line-height centerv document-name\" :title=\"data.description\">as {{data.roles[0].text}}</span>\n  <span popup=\"tooltip\" v-show=\"data.roles.length > 1\"><span v-if=\"data.roles.length > 1\" class=\"line-height centerv document-name\" :title=\"data.description\">{{data.roles.length}} roles</span></span>\n  <!-- <popup name=\"tooltip\">\n    <document-design document=\"document\" design=\"tooltip\"></document-design>\n  </popup> -->\n</div>"},"locks":[],"created":{"at":"2017-08-23T08:24:50+02:00","by":"","from":"","client":"import"},"modified":{"at":"2023-08-01T11:23:36+00:00","by":"anonymous","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1690889016092,"ct":1447333456699,"a_depth":4,"a":["system","b2533f7b-ea85-4680-99ed-d8e11be641b9","0e6939d6-9b93-4165-b6bd-977e4da881f3","key-form"],"a_forms":["system-folder-form","folder","application-form","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"e799fead-1a66-4cd2-a4b9-44c15f115fb8","v":"bf12cec09e033ae1","p":"command-form","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"title","template":"{{ data.label || data.name }}","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2019-05-06T13:59:26+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2019-07-08T09:32:00+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1719473826919,"ct":1719473826919,"a_depth":3,"a":["system","system-forms","command-form"],"a_forms":["system-folder-form","repository-folder-form","form"],"inheritedLocks":[null,null,null,null],"stamps":[],"previous":{"v":"6190ec73dcd89f27","f":{"id":"design-form","v":"24435d748c76f819","text":"Design"}},"meta":{"modified":{"at":"2024-06-27T07:37:06+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"fbb921dc-8f78-4251-b51f-d23ed3d1eafe","v":"initial","p":"ee4b6777-b620-43a9-9cde-7261dfc5c616","f":{"id":"design-form","v":"3385ac6766f32638","text":"Design"},"data":{"name":"title","template":"<span class=\"_CSS-date\" title=\"Bestellt am\">{{data.orderedAt && DateTime.fromISO(data.orderedAt).toLocaleString(DateTime.DATE_MED)}}</span>\r\n<div class=\"_CSS-line\">\r\n  <ae-design class=\"_CSS-merchant\" name=\"title\" :document=\"data.distributor\"></ae-design>\r\n  <span class=\"_CSS-merchantOrderId\">{{data.merchantOrderId}}</span>\r\n</div>","css":"._CSS {\r\n  display: flex;\r\n  align-items: center;\r\n}\r\n\r\n._CSS-date {\r\n  font-size: smaller;\r\n  padding: 4px;\r\n  color: var(--ae-background-600);\r\n}\r\n\r\n._CSS-line {\r\n  display: flex;\r\n  align-items: center;\r\n}\r\n\r\n._CSS-line > * {\r\n  padding: 4px;\r\n}\r\n\r\n._CSS-merchant {\r\n  font-weight: bolder;\r\n}\r\n\r\n._CSS-merchantOrderId {\r\n  font-size:smaller;\r\n}","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-11-02T09:38:36+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-11-02T09:38:36+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1635845916321,"ct":1635845916321,"a_depth":4,"a":["apps","781ff5de-69db-49dc-99f0-f328b308cd7d","dbd0bd68-3479-4032-9303-9d51615c27a7","ee4b6777-b620-43a9-9cde-7261dfc5c616"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"fc209844-69d4-4018-9ca6-3b61becce553","v":"initial","previous":{"v":""},"p":"3c8d23b1-8721-46f8-9baa-15ee91d2a750","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"title","applies":"","template":"<div class=\"_CSS-title\">\n  Aufgabe \"<ae-design name=\"title\" :document=\"locals.task\"></ae-design>\"&nbsp;wurde&nbsp;\n  <!-- <span>wurde am {{ Aeppic.DateTime.fromISO(data.date).toLocaleString(Aeppic.DateTime.DATE_MED) }}</span>&nbsp; -->\n  <span v-if=\"data.finished\">erledigt</span>\n  <span v-else-if=\"data.removed\">entfernt</span>\n  <span v-else>hinzugefügt</span>\n</div>","css":"._CSS-title {\n  display: flex;\n}","controller":"class Controller {\n  async init() {\n    const workItem = await Aeppic.get(data.workItem)\n    locals.task = await Aeppic.get(workItem.data.referencedDocument)\n  }\n}","packages":[]},"locks":[],"created":{"at":"2018-04-18T15:41:55+02:00","by":"","backedBy":"","from":"","client":"server"},"modified":{"at":"2018-04-18T15:41:55+02:00","by":"","backedBy":"","from":"","client":"server"},"t":1524058915198,"ct":1524058915198,"a_depth":4,"a":["apps","aed1ba1c-9095-4aca-8176-74a37325f0e5","58cc45fb-3fb3-45e8-b61d-4b89899e357a","3c8d23b1-8721-46f8-9baa-15ee91d2a750"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"fe583031-9074-4d4a-ab5e-b732e963c1e6","v":"2587441eb317bb6b","previous":{"v":"initial"},"p":"694aee80-d85e-479b-b7ec-8fe36906fcac","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"title","applies":"","template":"<template v-if=\"!data.anschrift.street && !data.anschrift.streetNumber && !data.anschrift.postalCode && !data.anschrift.city\">\n  Keine Adresse eingegeben\n</template>\n<template v-else>\n  {{data.anschrift.street}} {{data.anschrift.streetNumber}}, {{data.anschrift.postalCode}} {{data.anschrift.city}}\n</template>","css":"","controller":"","packages":[]},"locks":[],"created":{"at":"2018-02-06T09:47:42+01:00","by":"","from":"","client":"server"},"modified":{"at":"2018-02-23T08:30:58+01:00","by":"","from":"","client":"server"},"t":1519371058865,"ct":1517906862576,"a_depth":4,"a":["apps","b791df37-6eef-4a3e-9066-1b79e0bdad31","35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f","694aee80-d85e-479b-b7ec-8fe36906fcac"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"2fb9390a-24d9-4e1a-9de0-972cdaaf78c3","v":"789bd3a7fde8cede","p":"fallback-designs","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"title-as-link","template":"<!-- <ae-link :href=\"document.id\">\n  <ae-design name=\"title\" :params=\"params\" v-on=\"$listeners\" :document=\"document\"></ae-design>\n</ae-link> -->\n\n<a v-if=\"locals.allowLinkNavigation\" class=\"ae-link\" :href=\"document.id\" @click.stop.prevent=\"$emit('selected', document)\" @click.right.stop>\n  <ae-design name=\"title\" :params=\"params\" v-on=\"$listeners\" :document=\"document\"></ae-design>\n</a>\n<ae-design v-else name=\"title\" :params=\"params\" v-on=\"$listeners\" :document=\"document\"></ae-design>\n\n","css":"","controller":"init() {\n  this.FORMS = {\n    Unternehmen: 'c69a0c1c-6c53-40c2-87e8-5ace866bf1df'\n  }\n  locals.allowLinkNavigation = document.a_forms[0] === this.FORMS.Unternehmen\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-05-08T09:00:44+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2021-07-06T14:01:15+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720684627140,"ct":1720684627140,"a_depth":2,"a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"],"inheritedLocks":[null,null,null],"stamps":[],"previous":{"v":"a78a800b9f5def47","f":{"id":"design-form","v":"9bfe8e0cd909c1f0","text":"Design"}},"meta":{"modified":{"at":"2024-07-11T09:57:07+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"ba1a0250-6226-4c15-ae75-e927befc04ad","v":"initial","previous":{"v":""},"p":"d2ac3563-3c3f-4f02-b923-9b67abf98d10","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"title-with-position","applies":"","template":"<ae-design name=\"title\" :document=\"document\"></ae-design><template v-if=\"data.position\"> ({{ data.position }})</template>","css":"","controller":"","packages":[]},"locks":[],"created":{"at":"2018-09-05T12:44:30+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2018-09-05T12:44:30+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1536151470385,"ct":1536151470384,"a_depth":4,"a":["apps","144e85c0-d7f9-4b20-8928-be30f0c78bda","8e6ee7d3-9122-4a2e-8aaf-9fb3bd204b23","d2ac3563-3c3f-4f02-b923-9b67abf98d10"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"4d4a70c6-f434-4d69-8b78-0f73b617c326","v":"8b58a745a5683959","p":"fallback-designs","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"toast","template":"<div class=\"_CSS-toast\">\n  <div class=\"_CSS-toast__top\">\n    <ae-icon v-if=\"!params.toast.data.icon\" class=\"fa fa-info-circle\"></ae-icon>\n    <ae-icon v-else :class=\"['fa', params.toast.data.icon]\"></ae-icon>\n    <span>{{ params.toast.data.title || 'Benachrichtigung'}}</span>\n    <div v-if=\"params.toast.created && params.toast.created.at\" class=\"_CSS-time\">\n      {{ Aeppic.DateTime.fromISO(params.toast.created.at).toLocaleString(Aeppic.DateTime.TIME_24_SIMPLE) }}\n    </div>\n    <div v-else class=\"_CSS-time\">\n      {{ Aeppic.DateTime.local().toLocaleString(Aeppic.DateTime.TIME_24_SIMPLE) }}\n    </div>\n    <button class=\"dbps-button\" @click.stop=\"$emit('remove')\">\n      <ae-icon class=\"fa fa-times\"></ae-icon>\n    </button>\n  </div>\n  <div class=\"_CSS-toast__bottom\" v-if=\"params.toast.data.text\">\n    {{ params.toast.data.text }}\n    <!-- <ae-design name=\"title\" :document=\"document\"></ae-design> -->\n  </div>\n</div>\n","css":"._CSS-toast {\n  background: white;\n}\n\n._CSS-toast__top {\n  padding: 3px;\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n  border-bottom: 1px solid hsl(0, 0%, 85%);\n}\n\n._CSS-time {\n  font-size: smaller;\n}\n\n._CSS-toast__bottom {\n  padding: 3px;\n  display: flex;\n}","controller":"class Controller {\n  init() {\n    this.timeout = null\n\n    if (params.toast.data.timeout) {\n      this.removeAfterTimeout(params.toast.data.timeout)\n    }\n  }\n\n  removeAfterTimeout(millis) {\n    this.timeout = setTimeout(() => {\n      clearTimeout(this.timeout)\n      this.timeout = null\n      $emit('remove')\n    }, millis)\n  }\n\n\n  destroy() {\n    if (this.timeout) {\n      clearTimeout(this.timeout)\n      this.timeout = null\n    }\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-05-13T07:57:31+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2020-06-30T09:30:13+00:00","by":"8e6c22aa-8c69-4ff8-919a-7032841cf636","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720684627140,"ct":1720684627140,"a_depth":2,"a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"],"inheritedLocks":[null,null,null],"stamps":[],"previous":{"v":"2b666f2668de1f34","f":{"id":"design-form","v":"9bfe8e0cd909c1f0","text":"Design"}},"meta":{"modified":{"at":"2024-07-11T09:57:07+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"f":{"id":"design-form","v":"927bf22562d7b1b6","text":"Design"},"p":"key-form","data":{"name":"tooltip","applies":"","template":"Assigned Rights:\n<ul class=\"list-unstyled document-group\">\n  <li ng-repeat=\"r in data.rights\">\n    <a click-navigates-to=\"{{r.id}}\">\n      <document-design design=\"list\" document-id=\"{{r.id}}\"></document-design>\n    </a>\n  </li>\n</ul>"},"id":"0f97d25c-1e14-485a-84b5-9557cc6aa16d","v":"b8f8df027b1d8d4f","t":1447333457837,"ct":1447333456740,"previous":{"v":"4157d6a588a1bc93"},"modified":{"at":"2017-08-23T08:24:50+02:00","by":"","from":"","client":"import"},"created":{"at":"2017-08-23T08:24:50+02:00","by":"","from":"","client":"import"},"locks":[],"lockRefs":[],"inheritedLocks":[null,null,null,null,null],"a":["system","b2533f7b-ea85-4680-99ed-d8e11be641b9","0e6939d6-9b93-4165-b6bd-977e4da881f3","key-form"],"a_forms":["system-folder-form","folder","application-form","form"],"a_depth":4,"stamps":[]},{"f":{"id":"design-form","v":"e3fe9ece11aabc5e","text":"Design"},"p":"dcf7ec7a-fde9-4dd2-b861-90a3a81ab01c","data":{"name":"tooltip","applies":"","template":"<div style=\"max-width:500px\">\n    <h4>{{document.data.name}}</h4>\n    <h5>\n        <span ng-if=\"!document.data.allday\">\n            {{document.data.start | date:'d. MMM HH:mm'}} \n            <span ng-if=\"document.data.end\">- {{document.data.end | date:'d. MMM HH:mm'}}</span>\n        </span>\n        <span ng-if=\"document.data.allday\">\n            {{document.data.start | date:'d. MMM'}} \n            <span ng-if=\"document.data.end\">- {{document.data.end | date:'d. MMM'}}</span>\n        </span>\n    </h5>\n    <p>{{document.data.description}}</p>\n</div>"},"id":"949de640-e11f-11e5-ae7c-17c819231cb4","v":"8d3c6eb5c18ea548","t":1467644306525,"ct":1467644304129,"previous":{"v":"1f8159759e27d8e3"},"modified":{"at":"2017-09-15T10:29:32+02:00","by":"","from":"","client":"import"},"created":{"at":"2017-09-15T10:29:32+02:00","by":"","from":"","client":"import"},"locks":[],"lockRefs":[],"inheritedLocks":[null,null,null,null,null],"a":["apps","21ba9d78-2545-4495-a24b-129f934de2f1","252f693f-4fdd-4aa4-8185-95c2e0539c62","dcf7ec7a-fde9-4dd2-b861-90a3a81ab01c"],"a_forms":["folder","application-form","form-folder","form"],"a_depth":4,"stamps":[]},{"id":"08571fa3-9c90-4e87-94aa-054725984608","v":"initial","p":"686d22ba-414e-452f-9795-f6f7bcab37d5","f":{"id":"design-form","v":"2d98bf27c3108340","text":"Design"},"data":{"name":"trash-title","applies":"","description":"","template":"<ae-design class=\"_CSS-search-title\" name=\"search-title\" :document=\"document\" :params=\"params.designParams\"></ae-design>\n<ae-layout class=\"_CSS-remove-button\" layout-id=\"0ded34c5-1221-4511-af93-d897a79f1369\" :param-document=\"document\"></ae-layout>","css":"._CSS {\n  display: flex;\n  align-items: center;\n}\n\n._CSS-search-title {\n  flex: 1;\n  margin-right: 2rem;\n}","controller":"","packages":[]},"locks":[],"created":{"at":"2019-04-12T14:13:54+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2019-04-12T14:13:54+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1555078434505,"ct":1555078434505,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","686d22ba-414e-452f-9795-f6f7bcab37d5"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"55838f22-6872-447e-8bf8-4bdf125cd6a4","v":"initial","p":"33b4d43f-ca46-46f7-98b6-0a077372188c","f":{"id":"design-form","v":"3385ac6766f32638","text":"Design"},"data":{"name":"tree-children","template":"<h4 v-if=\"document.data.items.length\">Items</h4>\r\n<ae-design class=\"_CSS-child\" v-for=\"ref of document.data.items\" name=\"tree-line\" :document-id=\"ref.id\"  @selected=\"(d) => { $emit('selected',d) }\"></ae-design>\r\n<h4 v-if=\"document.data.components.length\">Components</h4>\r\n<ae-design class=\"_CSS-child\" v-for=\"ref of document.data.components\" name=\"tree-line\" :document-id=\"ref.id\" @selected=\"(d) => { $emit('selected',d) }\"></ae-design>","css":"._CSS h4 {\r\n  margin:  4px 0;\r\n  font-weight: normal;\r\n  color: var(--ae-background-600);\r\n} \r\n\r\n._CSS-child {\r\n  margin-bottom: 4px;\r\n}","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-11-02T09:38:40+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-11-02T09:38:40+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1635845920092,"ct":1635845920092,"a_depth":4,"a":["apps","781ff5de-69db-49dc-99f0-f328b308cd7d","dbd0bd68-3479-4032-9303-9d51615c27a7","33b4d43f-ca46-46f7-98b6-0a077372188c"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"4ebd45a2-9494-43ae-80ed-af93ad8e2cea","v":"initial","p":"33b4d43f-ca46-46f7-98b6-0a077372188c","f":{"id":"design-form","v":"3385ac6766f32638","text":"Design"},"data":{"name":"tree-line","template":"<div :class=\"{ '_CSS-card--open': locals.open}\">\r\n  <div class=\"_CSS-line\">\r\n    <button v-if=\"controller.hasChildren()\" class=\"ae-button _CSS-openclose\" :class=\"{ '_CSS-only-items': document.data.components.length === 0 }\" @click=\"controller.toggleOpen()\">\r\n      <ae-icon v-show=\"locals.open\" class=\"fa fa-chevron-down\" :key=\"id('closed')\"></ae-icon>\r\n      <ae-icon v-show=\"!locals.open\" class=\"fa fa-chevron-right\" :key=\"id('opened')\"></ae-icon>\r\n    </button> \r\n    <button v-else class=\"ae-button _CSS-leaf\">\r\n      <ae-icon class=\"fal fa-chevron-right\" style=\"opacity:0.2\"></ae-icon>\r\n    </button>\r\n    <ae-design :document=\"document\" name=\"tree-icon,icon\" @click.native=\"d => $emit('selected',d)\" style=\"padding-right:1em\"></ae-design>\r\n    <ae-design :document=\"document\" name=\"tree-title,title\" @selected=\"d => $emit('selected',d)\"></ae-design>\r\n  </div>\r\n  <div v-if=\"locals.open\" class=\"_CSS-children\">\r\n    <div class=\"_CSS-sideline\"></div>\r\n    <ae-design style=\"display:inline-block;\"  :document=\"document\" :name=\"params.childrenDesign || 'tree-children'\" :param-tree-design=\"params.treeLineDesign\" @selected=\"d => {  $emit('selected',d) }\"></ae-design>\r\n  </div>\r\n</div>","css":"\r\n._CSS-line {\r\n  display:flex;\r\n  align-items: center;\r\n  white-space: nowrap;\r\n}\r\n\r\n._CSS-line > *:first-child {\r\n  margin-right: 8px;\r\n}\r\n\r\n._CSS-only-items {\r\n  opacity:0.3;\r\n}\r\n\r\n\r\n._CSS button._CSS-leaf {\r\n  padding: var(--ae-size-1);\r\n}\r\n\r\n\r\n._CSS button._CSS-openclose {\r\n  padding: var(--ae-size-1);\r\n}\r\n\r\n._CSS button._CSS-openclose:disabled {\r\n  opacity: 0.4;\r\n}\r\n\r\n._CSS-icon {\r\n  margin-right: var(--ae-size-3);\r\n}\r\n\r\n._CSS-children {\r\n  // display:flex;\r\n  white-space: nowrap;\r\n  overflow:hidden;\r\n}\r\n \r\n\r\n._CSS-sideline {\r\n  min-width: var(--ae-tree-indent, 8px);\r\n  position:relative;\r\n  display:inline-block;\r\n\r\n}\r\n\r\n.x_CSS-sideline::after {\r\n  content:'';\r\n  position:absolute;\r\n  width:1px;\r\n  top:0;\r\n  bottom:0;\r\n  margin: 0 50%;\r\n  display:block;\r\n  background:var(--ae-background-300);\r\n}\r\n\r\n._CSS-card--open {\r\n  border: 1px solid var(--ae-background-300);\r\n  background: var(--ae-ui-background);\r\n  border-radius: 4px;\r\n}","controller":"init() {\r\n  locals.open = false // document.data.components.length > 0\r\n}\r\n\r\ntoggleOpen() {\r\n  locals.open = !locals.open\r\n}\r\n\r\nhasChildren() {\r\n  return document.data.components.length > 0 || document.data.items.length > 0\r\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-11-02T09:38:40+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-11-02T09:38:40+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1635845920145,"ct":1635845920145,"a_depth":4,"a":["apps","781ff5de-69db-49dc-99f0-f328b308cd7d","dbd0bd68-3479-4032-9303-9d51615c27a7","33b4d43f-ca46-46f7-98b6-0a077372188c"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"80502ec7-9ed8-4722-818d-3db785c14dcd","v":"initial","p":"85095086-2b96-40d0-bc27-4281f954bb9b","f":{"id":"design-form","v":"3385ac6766f32638","text":"Design"},"data":{"name":"tree-line","template":"<div class=\"_CSS-prefix\">\r\n  <pre>{{document.data.count}}</pre>\r\n  <ae-icon class=\"fa fa-times\" style=\"opacity:0.5\"></ae-icon>\r\n</div>\r\n<ae-design style=\"margin-left:8px\" :document-id=\"document.data.component.id\" name=\"tree-line\" @selected=\"d => $emit('selected',d)\"></ae-design>","css":"._CSS {\r\n  display:flex;\r\n  align-items: center;\r\n}\r\n\r\n._CSS-prefix {\r\n  display:flex;\r\n  align-items: center;\r\n  align-self: flex-start;\r\n  padding: 4px;\r\n  border: 1px solid var(--ae-background-400);\r\n  background: var(--ae-background-200);\r\n  margin: 4px;\r\n  border-radius: 4px;\r\n  max-height:2em;\r\n}","controller":"init() {\r\n  locals.open = false\r\n}\r\n\r\ntoggleOpen() {\r\n  locals.open = !locals.open\r\n  \r\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-11-02T09:38:38+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-11-02T09:38:38+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1635845918079,"ct":1635845918079,"a_depth":4,"a":["apps","781ff5de-69db-49dc-99f0-f328b308cd7d","dbd0bd68-3479-4032-9303-9d51615c27a7","85095086-2b96-40d0-bc27-4281f954bb9b"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"0041a12d-36e5-418c-bd5f-2596460962d1","v":"32260370792f0cd2","p":"control-form","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"tree-title","template":"<span class=\"bg-slate-400 text-slate-100 rounded pl-1 pr-1 mr-1\" v-if=\"data.namespace\">{{ data.namespace }}</span>{{data.name}}","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2018-06-21T12:06:52+00:00","by":"791dde52-ff31-42ab-98e3-734ba2f75e24","from":"","client":"server"},"modified":{"at":"2023-05-16T19:10:54+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1719473826920,"ct":1719473826920,"a_depth":3,"a":["system","system-forms","control-form"],"a_forms":["system-folder-form","repository-folder-form","form"],"inheritedLocks":[null,null,null,null],"stamps":[],"previous":{"v":"9d9738741bb07be9","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"}},"meta":{"modified":{"at":"2024-06-27T07:37:06+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"25264fd9-2280-4cbf-b2a5-9780175f99a9","v":"109bede487cf3ce6","previous":{"v":"0775caf02b361844"},"p":"lock-form","f":{"id":"design-form","v":"9bfe8e0cd909c1f0","text":"Design"},"data":{"name":"tree-title","template":"<div class=\"_CSS-title\" @click.stop.prevent=\"($event.metaKey || $event.ctrlKey) ? controller.navigateTo(document.id) : $emit('selected', document.id)\">\r\n  <div  class=\"_CSS-form-name\"\r\n        @click.stop=\"$emit('selected', document.f.id)\"\r\n        v-if=\"params.showForm\"\r\n    >\r\n    <ae-design name=\"title\" :document-id=\"document.f.id\"></ae-design>\r\n    </div>\r\n  <ae-design v-if=\"params.showFormIcon\" class=\"_CSS-icon\" name=\"icon\" :document=\"document\"></ae-design>\r\n  <ae-design name=\"title\" :document=\"document\" param-class-for-unnamed=\"_CSS-unnamed-item\"></ae-design>\r\n  <span style=\"font-size:0.8em;opacity:0.5;\" :title=\"document.id + ' @ ' + document.v \" @click.prevent.stop=\"Aeppic.copyToClipboard(document.id)\">{{ document.id.slice(0,5) }}<template v-if=\"document.id.length > 5\">...</template></span>\r\n</div>","css":"._CSS-title > *~* {\r\n  margin-left: 1ch;\r\n}\r\n\r\n._CSS-title {\r\n  display: flex;\r\n  align-items: center;\r\n}\r\n\r\n._CSS-icon {\r\n  color: hsl(0, 0%, 60%);\r\n}\r\n\r\n._CSS-form-name {\r\n  color:hsl(0, 0%, 50%);\r\n  font-size: 0.8em;\r\n  padding: 0 2px;\r\n  border: 1px solid gray;\r\n  background: transparent;\r\n  border-radius: 2px;\r\n  width: 100px;\r\n  display:inline-block;\r\n  text-align: center;\r\n  overflow: hidden;\r\n  text-overflow: ellipsis; \r\n}\r\n\r\n._CSS-unnamed-item {\r\n  font-style: italic;\r\n}","controller":"class Controller {\r\n  log(e){console.log(e)}\r\n\r\n  navigateTo(id) {\r\n    Aeppic.Developer.navigateTo(id)\r\n  }\r\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-06-30T09:56:34+00:00","by":"8e6c22aa-8c69-4ff8-919a-7032841cf636","from":"","client":"server"},"modified":{"at":"2020-06-30T09:57:17+00:00","by":"8e6c22aa-8c69-4ff8-919a-7032841cf636","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1593511037486,"ct":1593510994604,"a_depth":5,"a":["system","b2533f7b-ea85-4680-99ed-d8e11be641b9","0e6939d6-9b93-4165-b6bd-977e4da881f3","627f5b74-3baf-45f8-a1d3-a5936839b844","lock-form"],"a_forms":["system-folder-form","folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"4dbcf82c-231e-4405-be68-2e0051409b5a","v":"9caac8c18ea6e0a9","previous":{"v":"initial","p":"6d164aff-df9b-470d-9632-cfb6f5892509"},"p":"ddaa6921-770e-4a73-b8a4-b4a99abed24b","f":{"id":"design-form","v":"24435d748c76f819","text":"Design"},"data":{"name":"tree-title","template":"<div class=\"_CSS-container\">\n<ae-design name=\"title\" :document=\"document\"></ae-design>\n<span style=\"margin-left: 1ch;\">({{ Aeppic.DateTime.fromISO(document.created.at).toLocaleString(Aeppic.DateTime.DATETIME_SHORT)}})</span>\n</div>","css":"._CSS-container {\n  min-width: 0;\n\n  display: flex;\n  overflow: hidden;\n}","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-05-08T08:50:47+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2020-08-28T08:12:27+00:00","by":null,"backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1598602347756,"ct":1588927847074,"a_depth":4,"a":["apps","c9b12874-99d0-40e8-86cc-c3fe0477a15a","9b5518e5-c3ea-4446-9dc8-8628d8e8fabe","ddaa6921-770e-4a73-b8a4-b4a99abed24b"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"9e395ebe-a9c1-4e6a-b166-fb93cd155151","v":"5a5453a97aafd053","previous":{"v":"54230c5e8cb15b2c"},"p":"key-form","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"tree-title","applies":"","template":"<div class=\"_CSS-form-name\" @click.stop=\"$emit('selected', locals.form.document.id)\" v-if=\"locals.form?.data.name && params.showForm\" :title=\"locals.form.data.name\">{{locals.form.data.name}}</div><ae-design name=\"title\" :document=\"document\"></ae-design>\r\n","css":"._CSS {\r\n  display: flex;\r\n  justify-content:flex-start;\r\n  align-items:center;\r\n  flex-direction:row;\r\n  white-space:nowrap;\r\n}\r\n\r\n._CSS-form-name {\r\n  color:#555;\r\n  font-size: 0.8em;\r\n  padding: 0 2px;\r\n  border: 1px solid gray;\r\n  background: transparent;\r\n  border-radius: 2px;\r\n  width: 100px;\r\n  display:inline-block;\r\n  text-align: center;\r\n  overflow: hidden;\r\n  text-overflow: ellipsis; \r\n  margin-right: 4px;\r\n}","controller":"class Controller {\n  async init() {\n    locals.form = null\n    locals.form = await Aeppic.getFormForDocument(document)\n  }\n}","packages":[]},"locks":[],"created":{"at":"2018-05-23T11:44:26+02:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","from":"","client":"server"},"modified":{"at":"2023-08-14T11:36:22+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1692012982014,"ct":1527068666932,"a_depth":4,"a":["system","b2533f7b-ea85-4680-99ed-d8e11be641b9","0e6939d6-9b93-4165-b6bd-977e4da881f3","key-form"],"a_forms":["system-folder-form","folder","application-form","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","c9739936-bf7b-4c09-a0d7-cd3454e1fc53"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2023-05-25T15:11:16+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1685027476637,"data":{"aliases":[],"controller":"","css":"","description":"","name":"tree-title","packages":[],"template":"<div class=\"flex gap-4\">\n  <div class=\"flex gap-2\">\n    <ae-icon class=\"far fa-stamp\"></ae-icon>\n    <ae-design v-if=\"data.stamp.id\" name=\"title\" :document-id=\"data.stamp.id\"></ae-design>\n    <div v-else class=\"italic\">\n      no stamp configured\n    </div>\n  </div>\n\n  <div>\n    <ae-icon class=\"far fa-screwdriver\"></ae-icon>\n    {{ data.forms.length }} Documents\n  </div>\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"a685ea39-c5e4-4be9-8af5-7ca7e52574f2","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-01-22T13:56:46+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"p":"c9739936-bf7b-4c09-a0d7-cd3454e1fc53","previous":{"v":"3396260bdc7777b2"},"stamps":[],"t":1769090206570,"v":"5c54ff6cf440b26a"},{"id":"c0208938-e712-4a52-95d7-d81168bf294c","v":"bdedbe26e1e3b33e","previous":{"v":"570f365821a5b553"},"p":"fallback-designs","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"tree-title","template":"<div class=\"_CSS-title\"  @click.stop.prevent=\"controller.onClick($event)\">\n  <div  class=\"_CSS-form-name\"\n        @click.stop=\"$emit('selected', document.f.id)\"\n        v-if=\"params.showForm\"\n    >\n    <ae-design name=\"title\" :document-id=\"document.f.id\"></ae-design>\n    </div>\n  <ae-design v-if=\"params.showFormIcon\" class=\"_CSS-icon\" name=\"icon\" :document=\"document\"></ae-design>\n  <ae-design name=\"title\" :document=\"document\" param-class-for-unnamed=\"_CSS-unnamed-item\" :param-prefer-name=\"true\"></ae-design>\n  <span style=\"font-size:0.8em;opacity:0.5;\" :title=\"document.id + ' @ ' + document.v \" @click.prevent.stop=\"Aeppic.copyToClipboard(document.id)\">{{ document.id.slice(0,5) }}<template v-if=\"document.id.length > 5\">...</template></span>\n  <span style=\"font-size:0.8em;opacity:0.5;\" v-if=\"document.hidden\">hidden!</span>\n  <span style=\"font-size:0.8em;opacity:0.5;\" v-if=\"document.readonly\">readonly!</span>\n</div>","css":"._CSS-title > *~* {\n  margin-left: 1ch;\n}\n\n._CSS-title {\n  display: flex;\n  align-items: center;\n}\n\n._CSS-icon {\n  color: hsl(0, 0%, 60%);\n}\n\n._CSS-form-name {\n  color:hsl(0, 0%, 50%);\n  font-size: 0.8em;\n  padding: 0 2px;\n  border: 1px solid gray;\n  background: transparent;\n  border-radius: 2px;\n  width: 100px;\n  display:inline-block;\n  text-align: center;\n  overflow: hidden;\n  text-overflow: ellipsis; \n}\n\n._CSS-unnamed-item {\n  font-style: italic;\n}","controller":"class Controller {\n  onClick(event) {\n    if (event.altKey) {\n      $emit('selected-alt', document.id)\n      return\n    }\n\n    if (event.metaKey || event.ctrlKey) {\n      this.navigateTo(document.id)\n      return\n    }\n\n    $emit('selected', document.id)\n  }\n\n  navigateTo(id) {\n    Aeppic.Developer.navigateTo(id)\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2018-04-18T15:45:54+02:00","by":"","from":"","client":"server"},"modified":{"at":"2025-01-28T13:57:01+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1738072621340,"ct":1720684627141,"a_depth":2,"a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"],"inheritedLocks":[null,null,null],"stamps":[]},{"id":"9c262556-9259-4386-9444-7601ae2a6cd1","v":"b372bc9d97d4cd8a","previous":{"v":"a184b76953890b6d"},"p":"b4b13fc6-7d06-4832-93b0-cd27405e269d","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"unit","template":"<div class=\"flex flex-col gap-1\">\n  <!-- <div class=\"flex gap-1\">\n    <ae-icon class=\"far fa-building\"></ae-icon>\n    <ae-design name=\"title\" :document-id=\"document.p\"></ae-design>\n  </div> -->\n\n  <div class=\"\">\n    <!-- <ae-icon class=\"far fa-kaaba\"></ae-icon> -->\n    <div class=\"flex flex-col gap-1\">\n      <ae-design  v-for=\"einheit of data.einheit\"name=\"title\" :document-id=\"einheit.id\"></ae-design>\n    </div>\n  </div>\n</div>\n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-11-18T12:35:20+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-01-25T10:40:00+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1674643200240,"ct":1668774920229,"a_depth":4,"a":["apps","86189c5a-b9f4-445a-879f-d94574960df0","15292d56-6806-4263-b6d0-9194687203e1","b4b13fc6-7d06-4832-93b0-cd27405e269d"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"8364007e-e5d1-4d19-ad54-6267b5d75cd3","v":"initial","p":"584e3569-9dc2-45e8-b89e-7afbbf3d0fe2","f":{"id":"design-form","v":"49954170df6a253b","text":"Design"},"data":{"name":"url","template":"<ae-control name=\"url\" :document=\"document\" field-name=\"url\" :readonly=\"true\"></ae-control>","css":"","controller":"","packages":[],"description":""},"locks":[],"created":{"at":"2019-01-30T16:07:26+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2019-01-30T16:07:26+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1548864446150,"ct":1548864446150,"a_depth":4,"a":["apps","7ba1fc90-8094-44ce-8f5a-54a0da3999ed","710a1fcc-d225-4fb3-a1aa-64684f397ee6","584e3569-9dc2-45e8-b89e-7afbbf3d0fe2"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"bd7faf2f-7c69-4fa0-88c7-0eaae6de792c","v":"b38387d0e8a37a7f","p":"form","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"version","template":"{{document.data.semver}} (v.{{document.v}})","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2017-08-23T08:24:50+02:00","by":"","from":"","client":"import"},"modified":{"at":"2017-08-23T08:24:50+02:00","by":"","from":"","client":"import"},"t":1719473826920,"ct":1719473826920,"a_depth":3,"a":["system","system-forms","form"],"a_forms":["system-folder-form","repository-folder-form","form"],"inheritedLocks":[null,null,null,null],"stamps":[],"previous":{"v":"047aa4464fb0b2d1","f":{"id":"design-form","v":"59e0fc1c35995ea8","text":"Design"}},"meta":{"modified":{"at":"2024-06-27T07:37:06+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"cd366f29-4b76-4e9d-aef2-b0370e7a1ce6","v":"0c3b531523e3804e","previous":{"v":"3f6bc1bd6fb034f7"},"p":"d7f0c56d-8e0e-4607-911b-b0789c557d40","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"wartung","template":"<ae-design v-if=\"locals.wartung\" :name=\"params.design || 'title'\" :document=\"locals.wartung\"></ae-design>","css":"","controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Wartung: 'c211ffaa-14f8-4439-9126-f42f65ac4424'\n    }\n\n    locals.wartung = null\n    locals.wartung = await Aeppic.get(document.a[document.a_forms.findIndex(aForm => aForm === this.FORMS.Wartung)])\n  }\n} ","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-09-05T13:13:26+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-09-05T13:39:56+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1662385196126,"ct":1662383606283,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","d7f0c56d-8e0e-4607-911b-b0789c557d40"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"294edd4b-b46c-40f5-afd4-075d38b0b664","v":"a1ffc4f0ac9105e2","cloneOf":{"id":"eafabdcf-6d68-4beb-93d7-1adcb28db4c4","v":"93c43195ef280ec8","text":"rd:editable-title:input"},"originalCloneOf":{"id":"eafabdcf-6d68-4beb-93d7-1adcb28db4c4","v":"93c43195ef280ec8","text":"rd:editable-title:input"},"previous":{"v":"ac4fcf2e6a20d8e1"},"p":"3090c06d-faea-41f6-a6ea-846b900faad5","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"WIP-rd:editable-title:input","template":"<input  class=\"outline-offset-2 bg-transparent \" \n        :value=\"data.vorname\"\n        @blur=\"controller.update('vorname', $event.target.value)\"\n        @keydown.tab.prevent=\"controller.update('vorname', $event.target.value)\"\n        @keydown.enter.prevent=\"controller.update('vorname', $event.target.value)\"\n        @keydown.esc.prevent=\"controller.exitEditing()\"\n        spellcheck=\"false\"\n        :disabled=\"!('vorname' in data)\"\n        v-focus\n        placeholder=\"Vorname\"\n\n>\n<input  class=\"outline-offset-2 bg-transparent \" \n        :value=\"data.nachname\"\n        @blur=\"controller.update('nachname', $event.target.value)\"\n        @keydown.tab.prevent=\"controller.update('nachname', $event.target.value)\"\n        @keydown.enter.prevent=\"controller.update('nachname', $event.target.value)\"\n        @keydown.esc.prevent=\"controller.exitEditing()\"\n        spellcheck=\"false\"\n        :disabled=\"!('nachname' in data)\"\n        placeholder=\"Nachname\"\n> ","css":"","controller":"class Controller{\n  init() {\n    locals.blurred = []\n  }\n\n  async update(fieldName, value) {\n    if (locals.skipUpdateOnce) {\n      locals.skipUpdateOnce = false\n\n      return\n    }\n\n    if (document.data[fieldName] !== value) {\n      const editable = Aeppic.isEditableDocument(document) ? document : await Aeppic.edit(document) \n\n      editable.data[fieldName] = value\n\n      Aeppic.save(editable)\n    }\n\n\n    const blurredIndex = locals.blurred.findIndex(b => b === fieldName)\n\n    if (blurredIndex !== -1) {\n      locals.blurred.splice(blurredIndex, 1)\n    } else {\n      locals.blurred.push(fieldName)\n    }\n\n    if (locals.blurred.length === 2) {\n      this.exitEditing()\n    }\n  }\n\n  exitEditing() {\n    console.log('exitEditing')\n    $emit('end')\n\n    locals.skipUpdateOnce = true\n  }\n}\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-11-03T12:26:20+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2024-03-28T15:25:00+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1711639500299,"ct":1667478380194,"a_depth":4,"a":["apps","a590ce5b-28fc-4f85-9049-d006e1b8f880","169e87e0-0379-48e1-8c94-8fadac5969bb","3090c06d-faea-41f6-a6ea-846b900faad5"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"860498ac-3123-448d-9691-a91630d626e0","v":"b9de98fd998b8105","cloneOf":{"id":"294edd4b-b46c-40f5-afd4-075d38b0b664","v":"6568a658baeda82a","text":"rd:editable-title:input"},"originalCloneOf":{"id":"294edd4b-b46c-40f5-afd4-075d38b0b664","v":"6568a658baeda82a","text":"rd:editable-title:input"},"previous":{"v":"7811fa36272fe6cb"},"p":"764f746e-a836-4e9d-a770-1d8d5ccad49b","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"WIP-rd:editable-title:input","template":"<input  class=\"outline-offset-2 bg-transparent \" \n        :value=\"data.vorname\"\n        @blur=\"controller.update('vorname', $event.target.value)\"\n        @keydown.tab.prevent=\"controller.update('vorname', $event.target.value)\"\n        @keydown.enter.prevent=\"controller.update('vorname', $event.target.value)\"\n        @keydown.esc.prevent=\"controller.exitEditing()\"\n        spellcheck=\"false\"\n        :disabled=\"!('vorname' in data)\"\n        v-focus\n        placeholder=\"Vorname\"\n>\n<input  class=\"outline-offset-2 bg-transparent \" \n        :value=\"data.nachname\"\n        @blur=\"controller.update('nachname', $event.target.value)\"\n        @keydown.tab.prevent=\"controller.update('nachname', $event.target.value)\"\n        @keydown.enter.prevent=\"controller.update('nachname', $event.target.value)\"\n        @keydown.esc.prevent=\"controller.exitEditing()\"\n        spellcheck=\"false\"\n        :disabled=\"!('nachname' in data)\"\n        placeholder=\"Nachname\"\n> ","css":"","controller":"class Controller{\n  init() {\n    locals.blurred = []\n  }\n\n  async update(fieldName, value) {\n    if (locals.skipUpdateOnce) {\n      locals.skipUpdateOnce = false\n\n      return\n    }\n\n    if (document.data[fieldName] !== value) {\n      const editable = Aeppic.isEditableDocument(document) ? document : await Aeppic.edit(document) \n\n      editable.data[fieldName] = value\n\n      Aeppic.save(editable)\n    }\n\n\n    const blurredIndex = locals.blurred.findIndex(b => b === fieldName)\n\n    if (blurredIndex !== -1) {\n      locals.blurred.splice(blurredIndex, 1)\n    } else {\n      locals.blurred.push(fieldName)\n    }\n\n    if (locals.blurred.length === 2) {\n      this.exitEditing()\n    }\n  }\n\n  exitEditing() {\n    $emit('end')\n\n    locals.skipUpdateOnce = true\n  }\n}\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-11-03T12:36:09+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2024-03-28T15:25:10+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1711639510266,"ct":1667478969049,"a_depth":4,"a":["apps","a590ce5b-28fc-4f85-9049-d006e1b8f880","169e87e0-0379-48e1-8c94-8fadac5969bb","764f746e-a836-4e9d-a770-1d8d5ccad49b"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"910bee35-3b48-403a-ab10-434d5becb506","v":"2426cda8bff1e0c9","previous":{"v":"f4996aa6b480f71b"},"p":"d7f0c56d-8e0e-4607-911b-b0789c557d40","f":{"id":"design-form","v":"3385ac6766f32638","text":"Design"},"data":{"name":"work","template":"<div class=\"border-t border-theme-500 mt-2 mb-3 pt-2 flex flex-col gap-4\">\n  <div class=\"flex flex-col sm:flex-row gap-4 \">\n    <div class=\"flex-1 flex\">\n      <section class=\"min-w-[50px]\">\n        <ae-design name=\"entry-number\" :document-id=\"data.eintrag.id\"></ae-design>\n      </section>\n      \n      <section class=\"flex-1\">\n        <ae-design name=\"entry-description\" :document-id=\"data.eintrag.id\"></ae-design> \n      </section>\n    </div>\n  \n    <section class=\"flex\">\n      <section class=\"min-w-[110px] -mb-3 -mt-2 border border-dashed\"\n                :class=\"[data.io === 1 && 'bg-error', data.io === 2 && 'bg-success']\"\n      >\n        <button class=\"h-full w-full\" :disabled=\"params.readonly\" v-if=\"!data.io || data.io === 0\" @click.stop=\"controller.setData('io', 2)\">\n          <ae-icon class=\"far fa-square text-lg\"></ae-icon>\n          Zu prüfen\n        </button>\n        <button class=\"h-full w-full\" :disabled=\"params.readonly\" v-else-if=\"data.io === 1\" @click.stop=\"controller.setData('io', 0)\">\n          <ae-icon class=\"far fa-times text-lg\"></ae-icon>\n          Mangel\n        </button>\n        <button class=\"h-full w-full\" :disabled=\"params.readonly\" v-else-if=\"data.io === 2\" @click.stop=\"controller.setData('io', 1)\">\n          <ae-icon class=\"far fa-check text-lg\"></ae-icon>\n          In Ordnung\n        </button>\n      </section>\n\n      <section class=\"flex-1 -mb-3 -mt-2 flex gap-1\">\n        <textarea class=\"w-full h-full min-h-[70px] bg-transparent rounded-lg placeholder:p-2 p-2\" \n                  @blur=\"controller.setData('bemerkungen', locals.bemerkungen)\" \n                  :disabled=\"params.readonly\" \n                  :class=\"{ '_CSS-annotation--missing': controller.bemerkungFehlt }\" \n                  type=\"text\" \n                  v-model=\"locals.bemerkungen\"\n                  placeholder=\"Bemerkung\"\n        ></textarea>\n\n        <button class=\"ae-button\" @click.stop=\"locals.image = true\" :disabled=\"params.readonly\">\n          <ae-icon class=\"fa fa-image\"></ae-icon>\n        </button>\n      </section>\n\n    </section>\n\n\n  </div>\n    <section class=\"flex-1\" v-if=\"locals.image || (data.fotos && data.fotos.length)\">\n      <ae-form layout-id=\"6c39f2cc-6059-42b2-8796-5c803899367c\"\n              :document=\"document\"\n              :view=\"{ only: { fields: ['fotos']}}\"  \n              :auto-save=\"true\"\n      ></ae-form>\n    </section>\n\n  <section v-if=\"locals.documentOfErfassungsForm\" class=\"mt-8 flex flex-col bg-white rounded-lg border\">\n    <ae-design name=\"erfassungen\" :document=\"locals.documentOfErfassungsForm\" :params=\"{ readonly: params.readonly }\"></ae-design> \n    <div class=\"flex\">\n      <ae-design class=\"bg-white \"  name=\"erfassung\" :document=\"locals.documentOfErfassungsForm\" :params=\"{ readonly: params.readonly }\"></ae-design> \n    </div>\n  </section>\n  \n</div>\n  ","css":"._CSS-annotation--missing {\n  border: var(--ae-border-width) solid var(--ae-accent-red) !important;\n}","controller":"class Controller {\n  async init() {\n    locals.image = false\n    locals.bemerkungen = data.bemerkungen\n    locals.documentOfErfassungsForm = data.erfassungsForm?.id && await Aeppic.new(data.erfassungsForm.id, document)\n  }\n\n  async setData(fieldName, value) {\n    if (params.readonly) {\n      return\n    }\n\n    const editable = await Aeppic.edit(document)\n    editable.data[fieldName] = value\n    Aeppic.save(editable) \n  }\n\n  get bemerkungNoetig() {\n    return document.data.io == 1 || (document.data.io !== 0 && document.data.bemerkungenPflicht)\n  }\n\n  get hatBemerkung() {\n    if (!document.data.bemerkungen || document.data.bemerkungen.trim() === '') {\n      return false\n    }\n\n    return true\n  }\n\n  get bemerkungFehlt() {\n    return this.bemerkungNoetig && !this.hatBemerkung\n  }\n} ","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-03-04T11:18:13+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-07-05T10:18:28+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1657016308128,"ct":1646392693516,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","d7f0c56d-8e0e-4607-911b-b0789c557d40"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"a632ebb5-dc87-4258-b186-d0b9fc27f76c","v":"abc4fb3fdd40d351","previous":{"v":"initial"},"p":"d7f0c56d-8e0e-4607-911b-b0789c557d40","f":{"id":"design-form","v":"3385ac6766f32638","text":"Design"},"data":{"name":"work-completed","template":"{design: work-completed}","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-03-04T11:17:58+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-03-04T11:18:05+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1646392685639,"ct":1646392678389,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","d7f0c56d-8e0e-4607-911b-b0789c557d40"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"dd6ce29a-6629-4376-b71d-642802ae3887","v":"f2647d5ceb9f51ff","previous":{"v":"40a9991feed4f4a7"},"p":"522ca40d-810b-4021-835f-beeace3af7fa","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"work-status","template":"<div v-if=\"locals.statistics\" class=\"flex gap-4\">\n  <div v-if=\"locals.statistics.problem\" title=\"Anzahl fehlerhafter Zustand\" class=\"text-red-500\">\n    <ae-icon class=\"fa fa-times\"></ae-icon>\n    {{ locals.statistics.problem }}\n  </div>\n  \n  <div v-if=\"locals.statistics.ok\" title=\"Anzahl Zustand In Ordnung\" class=\"text-green-500\">\n    <ae-icon class=\"fa fa-check\"></ae-icon>\n    {{ locals.statistics.ok }}\n  </div>\n\n  <div v-if=\"locals.statistics.todo\" title=\"Offene Zustandsprüfungen\">\n    <ae-icon class=\"far fa-circle\"></ae-icon>\n    {{ locals.statistics.todo }}\n  </div>\n\n  <div v-if=\"locals.statistics.all\" title=\"Gesamtzahl Zustandsprüfungen\">\n    <ae-icon class=\"fa fa-sigma\"></ae-icon>\n    {{ locals.statistics.all }}\n  </div>\n</div> ","css":"","controller":"class Controller {\n  async init() {\n    locals.statistics = {\n      all: 0,\n      problem: 0,\n      ok: 0,\n      todo: 0\n    }\n\n    Aeppic.watch(document, (doc) => this.update(doc))\n\n    await this.update(document)\n  }\n\n  async update(wartungsplan) {\n    const statistics = {\n      all: 0,\n      problem: 0,\n      ok: 0,\n      todo: 0\n    }\n\n    const anlagen = (await Aeppic.getAll(wartungsplan.data.anlagen)).filter(d => !!d)\n    const anlagenteile = (await Promise.all(anlagen.map(anlage => Aeppic.getAll(anlage.data.anlagenteile)))).filter(d => !!d).flat()\n    const arbeiten = (await Promise.all(anlagenteile.map(teil => Aeppic.getAll(teil.data.arbeiten)))).filter(d => !!d).flat()\n \n    for (const arbeit of arbeiten) { \n      statistics.all += 1\n      \n      if (arbeit.data.io === 0) {\n        statistics.todo +=1 \n      } else if (arbeit.data.io === 1) {\n        statistics.problem +=1 \n      } else if (arbeit.data.io === 2) {\n        statistics.ok +=1 \n      }\n    }\n\n    locals.statistics = statistics\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-09-02T13:22:24+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-09-05T08:56:41+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1662368201420,"ct":1662124944800,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","522ca40d-810b-4021-835f-beeace3af7fa"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"fc02714c-2ddb-4cd4-8c3b-d31bafb954b9","v":"018ca3a3ac563e56","previous":{"v":"9d2e5bd02459d828"},"p":"5150f703-e93a-4e54-a998-a06c0e962e71","f":{"id":"design-form","v":"3385ac6766f32638","text":"Design"},"data":{"name":"work-status","template":"<div class=\"flex flex-col\">\n  <section class=\"flex gap-2\">\n    <span class=\"italic\">Anlage:</span>\n    <ae-design  name=\"title\" :document=\"document\"></ae-design>\n  </section>\n\n  <section class=\" flex align-center gap-2\">\n    <span>\n      <ae-icon class=\"far fa-clipboard-list\"></ae-icon>\n      \n      <span class=\"font-semibold\">\n      #{{ locals.anlagenteile.all.length }}\n      \n      </span>\n      <span>insgesamt</span>\n    </span>\n    <span class=\"flex align-center \">\n      (\n      <span class=\"mr-2\">\n        <ae-icon class=\"far fa-clipboard-list text-success\"></ae-icon>\n        <span class=\"font-semibold\">\n        #{{ locals.anlagenteile.done.length }}\n        </span>\n      </span>\n\n      <span>\n        <ae-icon class=\"far fa-clipboard-list text-error\"></ae-icon>\n        <span class=\"font-semibold\">\n           #{{ locals.anlagenteile.doneError.length }}\n        </span>\n      </span>\n      )\n    </span>\n  </section>\n</div>","css":"","controller":"class Controller {\n  async init() {\n    locals.anlagenteile = {\n      all: [],\n      done: [],\n      doneError: [],\n    }\n\n    this._update(await Aeppic.getAll(data.anlagenteile))\n  }\n\n  _update(docs) {\n    const anlagenteile = {\n      all: [],\n      done: [],\n      doneError: [],\n    }\n\n    anlagenteile.all = docs\n\n    for (const doc of docs) {\n      const ergebnis = doc.data.ergebnis\n      \n      if (ergebnis === 2) {\n        anlagenteile.done.push(doc)\n      } else if (ergebnis === 3) {\n        anlagenteile.doneError.push(doc)\n      }\n    } \n\n    locals.anlagenteile = anlagenteile\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-03-08T10:33:28+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-03-10T09:48:43+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1646905723969,"ct":1646735608214,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","5150f703-e93a-4e54-a998-a06c0e962e71"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"6e6f9eaa-58d1-436a-893c-d09cbb74adb3","v":"fb8101c278c5342b","p":"fallback-designs","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"xabstract","template":"<div class=\"_CSS-generic-informations\">\n  <span :title=\"document.created.at !== document.modified.at ? 'Geändert am' : 'Erstellt am'\">\n    <ae-icon class=\"fa fa-clock\"></ae-icon>\n    <template v-if=\"document.created.at !== document.modified.at\">\n      <ae-icon class=\"fa fa-edit\"></ae-icon>\n    </template>\n    {{ Aeppic.DateTime.fromISO(document.modified.at).toLocaleString(Aeppic.DateTime.DATETIME_SHORT) }}\n  </span>\n</div>  \n","css":"._CSS {\n  width: 100%;\n}\n\n._CSS-generic-informations {\n  display: flex;\n  flex-flow: column;\n  color: var(--ae-background-600);\n}","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-08-05T14:31:40+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2021-03-23T13:53:02+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720684627141,"ct":1720684627141,"a_depth":2,"a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"],"inheritedLocks":[null,null,null],"stamps":[],"previous":{"v":"7ea49418e828e69a","f":{"id":"design-form","v":"0061789efb5c5c29","text":"Design"}},"meta":{"modified":{"at":"2024-07-11T09:57:07+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"8c9a5da1-c819-4760-95c0-36b51277e066","v":"96db28a62ce8767c","p":"c211ffaa-14f8-4439-9126-f42f65ac4424","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"xactive-card","template":"<style>\n    .our-button * {\n        background-color:#64748e!important\n    }\n</style>\n\n<document-query result=\"anlagen\" query-id=\"children-query\" root-document-id=\"{{document.id}}\" >\n    <div layout=\"column\" style=\"margin:0 auto\">\n     <md-card style=\"border-left: 16px solid  #64748e;margin-left:-8px;background-color:#c1c8d3;color:#3a3a39\">\n            <md-card-content layout=\"column\" layout-align=\"space-between\" style=\"cursor:default\">\n                <rs-get-document id=\"{{document.data.plan.id}}\" as=\"plan\"></rs-get-document>\n          <!--<div class=\"md-media-xl card-media\"></div>-->\n                 <h1>{{plan.data.name}}</h1>\n                 <div>\n                     <span style=\"opacity:0.7\">Begonnen</span>\n                     <span> {{document.created.at | date:'dd.MMM.yyyy HH:mm' }}</span>\n                </div>\n                <div ng-show=\"false\" style=\"background:#555;xmin-height:200px;position:relative\" layout=\"row\">\n                    <div layout=\"column\" flex ng-repeat=\"anlage in anlagen\" class=\"wartungsplan-hero\" style=\"background: url('api/docs/{{anlage.id}}/content'); background-position: center; background-size:cover; background-color: grey; color:black; font-size: 20px; padding:15px\">\n                        <span style=\"text-shadow: 1px 1px 1px rgba(0, 0, 0, 1);\">{{anlage.data.name}}</span>\n                        <span style=\"text-shadow: 1px 1px 1px rgba(0, 0, 0, 1);\">{{anlage.data.nummer}}</span>\n                        <span flex></span>\n                        <span style=\"text-shadow: 1px 1px 1px rgba(0, 0, 0, 1);font-size:16px\">{{anlage.data.raum}}</span>\n                    </div>\n                    <div style=\"color:white;position:absolute;right:0;margin:16px;text-shadow: 1px 1px 1px rgba(0, 0, 0, 1);font-size:16px\">\n                        <span title=\"Beginn der Wartung\">{{document.created.at | date:'dd.MMM.yyyy HH:mm'}}</span>\n                    </div>\n                </div>\n            <md-card-actions layout=\"row\" layout-align=\"start center\"  >\n              <!--  <md-button ng-disabled=\"true\">Protokolle</md-button> -->\n              <span ng-show=\"data.status==2\" style=\"font-weight:bolder\">Abgeschlossen</span>\n              <span flex></span>\n              <document-command class=\"md-primary md-raised our-button\" command-id=\"c9de7eba-0e7e-4573-abf7-6aa432b61793\" style=\"background-color:#64748e!important\" target-document=\"document\"></document-command>\n            </md-card-actions>\n    </md-card-content>\n     </md-card>\n</div>\n</document-query>\n ","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-02-28T15:27:51+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-04-06T08:20:15+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1649233215575,"ct":1649233215575,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","c211ffaa-14f8-4439-9126-f42f65ac4424"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[],"previous":{"v":"02fa932856131fbf","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"}}},{"id":"837d17b8-0140-4c76-b537-c360c9bb6e8a","v":"24d9f48e48b4aad4","cloneOf":{"id":"4717333d-c165-4227-acaf-36b5cd3505a9","v":"5a9cd20a98773420","text":"additional-toolbar-actions"},"originalCloneOf":{"id":"4717333d-c165-4227-acaf-36b5cd3505a9","v":"5a9cd20a98773420","text":"additional-toolbar-actions"},"previous":{"v":"2d248954d354c483"},"p":"0b6a2b21-9425-466e-9e8d-57ec39cc95e1","f":{"id":"design-form","v":"74db9b6ed94b41d9","text":"Design"},"data":{"name":"xadditional-toolbar-actions","template":"<button v-if=\"data.client && data.client.id\" class=\"ae-button ae-button--secondary\" @click.stop=\"Aeppic.drillInto(data.client.id)\">\n  Kunde\n</button>\n<button v-if=\"data.order && data.order.id\" class=\"ae-button ae-button--secondary\" @click.stop=\"Aeppic.drillInto(data.order.id)\">\n  Auftrag\n</button>\n","css":"._CSS  {\n  display: flex;\n  align-items: center;\n}\n\n._CSS > *:last-child {\n  margin-right: var(--ae-size-3);\n}","controller":"// class Controller {\n//   async init() {\n//     this.FORMS = {\n//       ProjekteOrdner: '0b4fe19c-a550-46b7-ada0-6813a60e14bc'\n//     }\n//     locals.client = data.linkedClient && data.linkedClient.id ? data.linkedClient : null\n//     locals.contract = data.linkedContract && data.linkedContract.id ? data.linkedContract : null\n\n//     if (locals.client || locals.contract) {\n//       return\n//     }\n\n\n//     const projectFolderIndex = document.a_forms.findIndex(a_form => a_form === this.FORMS.ProjekteOrdner)\n//     if (projectFolderIndex === -1) {\n//       return\n//     }\n\n//     const topTwoProjects = await Aeppic.getAll([document.a[projectFolderIndex + 1], document.a[projectFolderIndex + 1]])\n//     const [ client, contract ] = topTwoProjects.filter(p => p && ((p.data.linkedClient && p.data.linkedClient.id) || (p.data.linkedContract && p.data.linkedContract.id)))\n\n//     locals.client = client\n//     locals.contract = contract\n//   }\n// }\n\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-07-03T11:53:52+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2021-06-10T13:59:53+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1623333593393,"ct":1593777232521,"a_depth":4,"a":["apps","59edbdbc-2cab-426a-bb42-6e57c5158e4f","3be7e887-1bcd-4c3c-979f-b20a986c4c48","0b6a2b21-9425-466e-9e8d-57ec39cc95e1"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"5a2658e2-f683-4d7d-9b2f-d7c246466f6a","v":"43700d64c0d07393","cloneOf":{"id":"12737a56-f568-4d19-b7c8-4822285eddf9","v":"cafbffeef219a9d9","text":"additional-toolbar-buttons"},"originalCloneOf":{"id":"12737a56-f568-4d19-b7c8-4822285eddf9","v":"cafbffeef219a9d9","text":"additional-toolbar-buttons"},"previous":{"v":"d967a25c7bc0f83f"},"p":"0b6a2b21-9425-466e-9e8d-57ec39cc95e1","f":{"id":"design-form","v":"65801907e0c30697","text":"Design"},"data":{"name":"xadditional-toolbar-buttons","template":"<button class=\"ae-button\" @click=\"controller.switchToNextView()\">\n  <ae-icon class=\"fad\" :class=\"controller.nextView.icon\"></ae-icon>&nbsp;<span :title=\"controller.nextView.title\">{{controller.nextView.label}}</span>\n</button>\n\n<button class=\"ae-button\" :disabled=\"!locals.view === 'projects'\" @click=\"controller.toggleDone()\">\n  <span v-show=\"locals.showDone\" title=\"Erledigte Projekte ausblenden\"><ae-icon class=\"fad fa-clipboard-check\"></ae-icon> Erledigte ausblenden</span> \n  <span v-show=\"!locals.showDone\"  title=\"Erledigte Projekte anzeigen\"><ae-icon class=\"fad fa-clipboard\"></ae-icon> Erledigte anzeigen</span>\n</button>\n","css":"._CSS {\n  display: flex;\n}","controller":"class Controller {\n  init() {\n    locals.showDone = false\n    locals.views = [\n      {\n        id: 'projects',\n        title: 'Aufgaben',\n        icon: { 'fa-list': true },\n        label: 'Aufgaben',\n      },\n      {\n        id: 'milestones',\n        title: 'Roadmap',\n        icon: { 'fa-ballot-check': true },\n        label: 'Roadmap',\n      },\n    ]\n\n    locals.currentViewIndex = 0\n\n    const storedViewId = Aeppic.LocalStorage.getValue('bp-pref-tasks-view-id')\n    if (storedViewId) {\n      locals.currentViewIndex = locals.views.findIndex(v => v.id === storedViewId) || 0\n    }\n  }\n\n  get view() {\n    return locals.views[locals.currentViewIndex]\n  }\n\n  get nextViewIndex() {\n    return (locals.currentViewIndex + 1) % locals.views.length\n  }\n\n  get nextView() {\n    return locals.views[ this.nextViewIndex ]\n  }\n  \n  switchToNextView() {\n    locals.currentViewIndex = this.nextViewIndex\n    Aeppic.LocalStorage.setValue('bp-pref-tasks-view-id', this.view.id)\n\n    $emit('toolbar', `view_${this.view.id}`)\n  }\n  \n  toggleDone() {\n    locals.showDone = !locals.showDone\n    $emit('toolbar', `view_done_${locals.showDone}`)\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-07-01T14:40:04+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2021-06-10T13:59:56+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1623333596770,"ct":1593614404673,"a_depth":4,"a":["apps","59edbdbc-2cab-426a-bb42-6e57c5158e4f","3be7e887-1bcd-4c3c-979f-b20a986c4c48","0b6a2b21-9425-466e-9e8d-57ec39cc95e1"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"f69d816a-a875-4b0a-8bf6-6a9ae59c4188","v":"0ea4689012544372","previous":{"v":"8bd176d9d2e0bc4e"},"p":"7da8412c-01e9-4a42-a527-6339e2c25488","f":{"id":"design-form","v":"3385ac6766f32638","text":"Design"},"data":{"name":"xadditional-toolbar-buttons","template":"<button class=\"ae-button ae-button--secondary\" :disabled=\"!locals.companiesFolder\" @click.stop=\"Aeppic.drillInto(locals.companiesFolder)\">\n  Wartungsfirmen verwalten\n</button>\n\n<button class=\"ae-button ae-button--secondary\" :disabled=\"!locals.plansFolder\" @click.stop=\"Aeppic.drillInto(locals.plansFolder)\">\n  Wartungspläne verwalten\n</button>","css":"","controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Wartungsfirmen: '096cfb8f-bb8e-4a6e-87c2-2d1fac5e822a',\n      Wartungsplaene: 'd60a5613-e046-4341-9bc9-34a241e8a28a',\n      Objekt: '3d678f2a-65f5-4dc1-a643-c5998fa33f32',\n    }\n\n    locals.companiesFolder = null\n    locals.plansFolder = null\n\n    const mostNearObjekt = await Aeppic.get(document.a[document.a_forms.findIndex(aForm => aForm === this.FORMS.Objekt)])\n\n    locals.companiesFolder = await Aeppic.findOne(`p:${mostNearObjekt.id} f.id:${this.FORMS.Wartungsfirmen}`)\n    locals.plansFolder = await Aeppic.findOne(`p:${mostNearObjekt.id} f.id:${this.FORMS.Wartungsplaene}`)\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-03-08T08:49:01+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-04-05T14:03:56+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1649167436697,"ct":1646729341304,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","7da8412c-01e9-4a42-a527-6339e2c25488"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"b6cc954c-0a7b-489a-b267-38e2236faf05","v":"initial","cloneOf":{"id":"ac49bf33-6ab2-4feb-a721-50c81d9752a0","v":"15146a4db317d750","text":"Xage-toolbar"},"originalCloneOf":{"id":"ac49bf33-6ab2-4feb-a721-50c81d9752a0","v":"15146a4db317d750","text":"Xage-toolbar"},"p":"3e134a66-4611-456c-88e9-be8ae3d75dff","f":{"id":"design-form","v":"74db9b6ed94b41d9","text":"Design"},"data":{"name":"Xage-toolbar","template":"","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-01-27T11:02:53+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-01-27T11:02:53+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1611745373622,"ct":1611745373622,"a_depth":4,"a":["apps","d91078cc-874b-4410-b837-b81f47687fe9","6b513a0c-498f-4eac-804d-aa8e0e99caac","3e134a66-4611-456c-88e9-be8ae3d75dff"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"6f0a1cff-a963-457c-954b-2639447ff73f","v":"0dfa835e1280c018","previous":{"v":"initial"},"p":"a37b2d75-d9d3-495a-a31c-52094d82e7bb","f":{"id":"design-form","v":"e3fe9ece11aabc5e","text":"Design"},"data":{"name":"xattachment-card","applies":"","template":"<!-- <ae-design class=\"_CSS-design\" \nname=\"ref-card\" \n@selected=\"controller.preview()\" \n@remove=\"$emit('remove', $event)\" :document=\"document\" :params=\"params\"></ae-design> -->\n<div class=\"bp-card bp-card--bordered\" style=\"padding: 0\" @click.stop=\"controller.preview()\">\n  <ae-design  class=\"_CSS-design\" \n              name=\"thumbnail\" \n              @selected=\"controller.preview()\" \n              @remove=\"$emit('remove', $event)\" \n              :document=\"document\" \n              :params=\"params\" \n              param-field-name=\"generated\"\n  ></ae-design>\n</div>\n\n<ae-layout\n  v-if=\"locals.preview\"\n  ref=\"preview\"\n  layout-id=\"bbd6d99f-571d-422f-a2bc-15d3f8ecfae8\"\n  :param-file-name=\"controller.name\"\n  param-field-name=\"generated\"\n  :param-document=\"document\"\n  :param-download-pdf=\"true\"\n  @close=\"locals.preview = false\"\n></ae-layout>\n","css":"._CSS-design {\n  width: 128px;\n  height: 100%;\n  // flex: 1;\n  // display: flex;\n\n  // ._CSS-thumbnail {\n// }\n}","controller":"async init() {\r\n  locals.preview = false\r\n}\r\n\r\nasync preview() {\r\n  console.log('preview')\r\n  locals.preview = true\r\n\r\n  await Aeppic.nextRenderPass()\r\n  await Aeppic.nextRenderPass()\r\n  await Aeppic.nextRenderPass()\r\n\r\n  $refs.preview.$emit('show')\r\n}\r\n\r\nget name() {\r\n  return `${data.generated.name}`.replace('.docx', '.pdf')\r\n}","packages":[]},"locks":[],"created":{"at":"2020-05-08T08:52:47+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2021-07-06T14:02:14+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1625580134194,"ct":1588927967127,"a_depth":4,"a":["apps","fb62ad28-07b0-4a99-91bd-43c297656f12","4e988078-8eed-4c34-9cc2-9b6c3e2cdb2a","a37b2d75-d9d3-495a-a31c-52094d82e7bb"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"0f643b04-cb2c-4603-b78c-adc552a483e1","v":"0a3ccbf397dc6c72","previous":{"v":"initial"},"p":"204787ca-59c2-4b11-b866-aa05fa9c9891","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"xbeschreibung","template":"<span click-navigates-to=\"{{document.id}}\">{{data.beschreibung}}</span>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-02-28T15:27:02+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-02-28T15:27:18+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1646062038480,"ct":1646062022142,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","204787ca-59c2-4b11-b866-aa05fa9c9891"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"4516c155-f263-4d62-9654-f1276d667485","v":"initial","cloneOf":{"id":"0f643b04-cb2c-4603-b78c-adc552a483e1","v":"0a3ccbf397dc6c72","text":"xbeschreibung"},"originalCloneOf":{"id":"0f643b04-cb2c-4603-b78c-adc552a483e1","v":"0a3ccbf397dc6c72","text":"xbeschreibung"},"p":"0dfd4afd-f2ec-4ff0-9a79-811badf4fed5","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"xbeschreibung","template":"<span click-navigates-to=\"{{document.id}}\">{{data.beschreibung}}</span>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-03-02T15:28:29+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2022-03-02T15:28:29+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1646234909051,"ct":1646234909050,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","0dfd4afd-f2ec-4ff0-9a79-811badf4fed5"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"852b468f-86a3-4324-b4e1-9aa826d89bd9","v":"1330a4209d0bce26","previous":{"v":"initial"},"p":"3592ceee-ae9a-47a9-8488-7bad5b0d9ff5","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"xcard","template":"<md-card style=\"background-color:#dedacd;color:#3a3a39\">\n    <md-card-content layout=\"column\" layout-align=\"end start\">\n        <span class=\"md-headline\"> <md-icon>business</md-icon> <span class=\"line-height centerv document-name\">{{(data.name || '[Kein Name]') + '    (Tel: '+data.tel+')' }}</span></span>\n        <span class=\"md-subhead\"> <md-icon>person</md-icon>Ansprechpartner: {{data.ansprechpartner}} </span>\n    </md-card-content>\n</md-card>\n    ","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-02-28T15:30:03+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-02-28T15:30:16+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1646062216629,"ct":1646062203665,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","3592ceee-ae9a-47a9-8488-7bad5b0d9ff5"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"afb04213-7b61-4cc4-8c67-86fe5effe21d","v":"b83fb0d19f7c5a1d","previous":{"v":"46caa5f7d959e321"},"p":"522ca40d-810b-4021-835f-beeace3af7fa","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"xcard","template":"<document-query result=\"anlagen\" query-id=\"children-query\" root-document-id=\"{{document.id}}\" >\n    <div layout=\"column\" style=\"margin:0 auto\">\n     <md-card style=\"background-color:#dedacd;color:#3a3a39\">\n       \n            <md-card-content layout=\"row\" layout-align=\"center center\"  style=\"cursor:default\">\n          <!--<div class=\"md-media-xl card-media\"></div>-->\n                <span class=\"md-headline\" layout=\"row\">{{document.data.name}}</span>\n                <span flex></span>\n                <document-command  class=\"md-primary md-raised\" command-id=\"8e89d2e7-a092-41cd-b831-9318c826e6f4\" target-document=\"document\" on-result=\"ctrl.wartungBegonnen(result)\"></document-command>\n                <div  ng-if=\"false\" style=\"background:#555;min-height:200px\" layout=\"row\">\n                    <div layout=\"column\" flex ng-repeat=\"anlage in anlagen\" class=\"wartungsplan-hero\" style=\"background: url('api/docs/{{anlage.id}}/content'); background-position: center; background-size:cover; background-color: grey; color:white; font-size: 20px; padding:15px\">\n                        <span style=\"text-shadow: 1px 1px 1px rgba(0, 0, 0, 1);\">{{anlage.data.name}}</span>\n                        <span style=\"text-shadow: 1px 1px 1px rgba(0, 0, 0, 1);\">{{anlage.data.nummer}}</span>\n                        <span flex></span>\n                        <span style=\"text-shadow: 1px 1px 1px rgba(0, 0, 0, 1);font-size:16px\">{{anlage.data.raum}}</span>\n                    </div>\n                    \n                </div>\n        \n     </md-card-content>\n     </md-card>\n</div>\n</document-query>\n ","css":"","controller":"wartungBegonnen(result){\n    log(result);\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-02-28T15:31:27+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-02-28T15:31:48+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1646062308170,"ct":1646062287488,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","522ca40d-810b-4021-835f-beeace3af7fa"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"caea7623-8b2d-44f6-9e83-12a24aa377a4","v":"47cf86f0a6e12675","previous":{"v":"initial"},"p":"5150f703-e93a-4e54-a998-a06c0e962e71","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"xcard","template":"<div class=\"wartungsplan-hero\" style=\"text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.6);min-width: 400px;height:380px; background: url('api/docs/{{document.id}}/content'); background-position: center; background-size:cover; background-color: grey; color:white; font-size: 25px; position:relative\" layout=\"row\" click-navigates-to=\"{{document.id}}\">\n    <div layout=\"column\" style=\"padding:15px; background: linear-gradient(to right, rgba(0,0,0,0.65) 0%,rgba(0,0,0,0) 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */\">\n        <h2>{{document.data.name}}</h2>\n        <span>{{document.data.nummer}}</span> \n        <span style=\"xfont-size:smaller\">{{document.data.fabrikat}}</span>\n        <span flex></span>\n        <h4>{{document.data.raum}}</h4>\n    </div>\n    <span flex></span>\n    <div layout=\"column\" layout-align=\"end center\">\n        <md-button class=\"md-primary md-raised\" style=\"margin:20px;min-width:200px;min-height:60px;background-color:#929eb2\">Öffnen</md-button>\n    </div>\n    <div ng-if=\"data.unterschrift.dataUrl\" style=\"xcolor:#929eb2;background-color:rgba(255,255,255,0.8);padding:15px\" layout=\"column\" xlayout-align=\"end end\">\n        <span>Unterschrift</span>\n        <rs-get-document id=\"{{document.modified.by.id}}\" as=\"user\"></rs-get-document>\n        <img flex style=\"max-height: 150px;\" ng-if=\"data.unterschrift.dataUrl.substr(0,6) === 'store:'\" ng-src=\"{{'api/docs/'+document.id+'/content?field=unterschrift'}}\" class=\"\">\n        <span style=\"color:#929eb2\">{{user.data.displayName}}</span> \n        {{document.modified.at|date:'dd.MMM.yy HH:mm'}}\n    </div>\n</div>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-02-28T15:21:52+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-02-28T15:22:20+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1646061740185,"ct":1646061712540,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","5150f703-e93a-4e54-a998-a06c0e962e71"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"d2dee6a5-3379-4ebe-b9de-414d5c034b2b","v":"273ca878ffee2f70","p":"c211ffaa-14f8-4439-9126-f42f65ac4424","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"xcard","template":"<div layout=\"column\">\n    <md-card style=\"background-color:#dedacd;color:#3a3a39\">\n        <md-card-title>\n          <md-card-title-text>\n            <span class=\"md-headline\">{{document.created.at|date:'medium'}}</span>\n            <span class=\"md-subhead\"></span>\n          </md-card-title-text>\n        </md-card-title>\n        <md-card-content layout=\"column\" layout-align=\"space-between\" style=\"cursor:default\">\n            <!--<div class=\"md-media-xl card-media\"></div>-->\n            <document-query result=\"anlagen\" query-id=\"children-query\" root-document-id=\"{{document.id}}\" >\n                <div  style=\"background:#555;min-height:200px\" layout=\"row\">\n                    \n              <!--<div class=\"md-media-xl card-media\"></div>-->\n                    <div layout=\"column\" flex ng-repeat=\"anlage in anlagen\" class=\"wartungsplan-hero\" style=\"background: url('api/docs/{{anlage.id}}/content'); background-position: center; background-size:cover; background-color: grey; color:white; font-size: 20px; padding:15px\">\n                        <span style=\"text-shadow: 1px 1px 1px rgba(0, 0, 0, 1);\">{{anlage.data.name}}</span>\n                        <span style=\"text-shadow: 1px 1px 1px rgba(0, 0, 0, 1);\">{{anlage.data.nummer}}</span>\n                        <span flex></span>\n                        <span style=\"text-shadow: 1px 1px 1px rgba(0, 0, 0, 1);font-size:16px\">{{anlage.data.raum}}</span>\n                    </div>\n                    \n                </div>\n            </document-query>\n \n            <md-card-actions layout=\"row\" layout-align=\"end center\">\n              <!--  <md-button ng-disabled=\"true\">Protokolle</md-button> -->\n              <document-command class=\"md-primary md-raised\" command-id=\"c9de7eba-0e7e-4573-abf7-6aa432b61793\" target-document=\"document\"></document-command>\n            </md-card-actions>\n        </md-card-content>\n    </md-card>\n</div>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-02-28T15:27:54+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-04-06T08:20:15+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1649233215575,"ct":1649233215575,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","c211ffaa-14f8-4439-9126-f42f65ac4424"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[],"previous":{"v":"21015433d59e52a4","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"}}},{"id":"d49a503f-66fb-4c17-8e60-7b3198c419d5","v":"134bca97ae350d4e","cloneOf":{"id":"75ce5993-4bce-43cd-b6ed-17fcf0782875","v":"a2b0c8ea2d2b5eac","text":"card"},"originalCloneOf":{"id":"75ce5993-4bce-43cd-b6ed-17fcf0782875","v":"a2b0c8ea2d2b5eac","text":"card"},"previous":{"v":"23f78364d4b156f1"},"p":"17c3a5d3-90ba-4592-961b-0800873ef9c1","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"xcard--vertical","applies":"","template":"<div class=\"_CSS-card\" @click=\"Aeppic.navigateTo(document.id)\" :class=\"{ '_CSS-card--finished': data.erledigt }\">\n  <section>\n    <div class=\"_CSS-card-title\">\n      {{data.name}}\n    </div>\n    <ae-design v-if=\"params.showPath\" class=\"_CSS-card-title-path\" name=\"path\" :document=\"document\"></ae-design>\n  </section>\n\n  <section class=\"_CSS-row\">\n    <div class=\"_CSS-card-assignees\" v-if=\"data.verantwortlich && data.verantwortlich.length\">\n\t\t\t<ae-design name=\"avatar--tiny\" :document-id=\"data.verantwortlich[0].id\"></ae-design>\n\t\t\t<ae-design v-if=\"data.verantwortlich.length === 2\" name=\"avatar--tiny\" :document-id=\"data.verantwortlich[1].id\"></ae-design>\n\t\t\t<ae-design v-if=\"data.verantwortlich.length > 2\" name=\"avatar--tiny\" :document-id=\"data.verantwortlich[1].id\" :param-overwrite-display-with=\"'+' + (data.verantwortlich.length - 1)\" :title=\"locals.tooltipWeitereVerantwortliche\"></ae-design>\n\t\t</div>\n    <span class=\"_CSS-to\" :class=\"{ '_CSS--overdue': controller.isOverdue }\" v-if=\"data.bis\">{{ Aeppic.DateTime.fromISO(data.bis).toLocaleString(Aeppic.DateTime.DATE_SHORT) }}</span>\n  </section>\n\n  <section class=\"_CSS-statistics\" v-if=\"locals.allProjects.length\">\n    <div class=\"_CSS-statistics__header\">Projekte</div>\n    <div class=\"_CSS-statistics__columns\">\n      <div class=\"_CSS-statistics__count\" :class=\"{ '_CSS--overdue': locals.overdueProjects.length > 0 }\">\n        <ae-icon class=\"fa fa-calendar-exclamation\"></ae-icon>\n        <div>{{ locals.overdueProjects.length }} </div>\n      </div>\n      <div class=\"_CSS-statistics__count\">\n        <ae-icon class=\"fa fa-square\"></ae-icon>\n        <div>{{ locals.openProjects.length }} </div>\n      </div>\n      <div class=\"_CSS-statistics__count\">\n        <ae-icon class=\"fa fa-check-square\"></ae-icon>\n        <div>{{ locals.allProjects.length - locals.openProjects.length }} </div>\n      </div>\n    </div>\n  </section>\n\n  <section class=\"_CSS-statistics\" v-if=\"locals.allTasks.length\">\n    <div class=\"_CSS-statistics__header\">Aufgaben</div>\n      <div class=\"_CSS-statistics__columns\">\n        <div class=\"_CSS-statistics__count\" :class=\"{ '_CSS--overdue': locals.overdueTasks.length > 0 }\">\n          <ae-icon class=\"fa fa-calendar-exclamation\"></ae-icon>\n          <div>{{ locals.overdueTasks.length }} </div>\n        </div>\n        <div class=\"_CSS-statistics__count\">\n          <ae-icon class=\"fa fa-square\"></ae-icon>\n          <div>{{ locals.openTasks.length }} </div>\n        </div>\n        <div class=\"_CSS-statistics__count\">\n          <ae-icon class=\"fa fa-check-square\"></ae-icon>\n          <div>{{ locals.allTasks.length - locals.openTasks.length }} </div>\n        </div>\n      </div>\n  </section>\n  \n  <section class=\"_CSS-footer\"> \n    <div  v-if=\"data.beschreibung.length > 25\"\n          ref=\"descriptionIcon\"\n          @mouseleave=\"$refs.popup.close()\"\n          @mouseover=\"$refs.popup.show({ target: $refs.descriptionIcon })\"\n          class=\"_CSS-card-intro__description\">\n      <ae-icon class=\"fal fa-file-alt\"></ae-icon>\n    </div>\n  </section>\n\n  <div class=\"_CSS-progress-container\">\n    <div v-if=\"controller.progressOverall != null\" :title=\"controller.progressOverall.toFixed() + '%' \" class=\"ae-progress \" :style=\"{ 'padding-left': (controller.progressOverall).toString() + '%' }\" ></div>\n  </div>\n</div>\n\n\n<!-- \n<div class=\"_CSS-card\" @click=\"Aeppic.navigateTo(document.id)\" :class=\"{ '_CSS-card--finished': data.erledigt, '_CSS-card--overdue': controller.isOverdue }\">\n\t<div class=\"_CSS-card__primary\">\n    <div class=\"_CSS-card-intro\">\n      <div class=\"_CSS-card-title\">\n        {{data.name}}\n      </div>\n\t\t</div>\n    <div class=\"_CSS-card-assignees\" v-if=\"data.verantwortlich && data.verantwortlich.length\">\n\t\t\t<ae-design name=\"avatar--tiny\" :document-id=\"data.verantwortlich[0].id\"></ae-design>\n\t\t\t<ae-design v-if=\"data.verantwortlich.length === 2\" name=\"avatar--tiny\" :document-id=\"data.verantwortlich[1].id\"></ae-design>\n\t\t\t<ae-design v-if=\"data.verantwortlich.length > 2\" name=\"avatar--tiny\" :document-id=\"data.verantwortlich[1].id\" :param-overwrite-display-with=\"'+' + (data.verantwortlich.length - 1)\" :title=\"locals.tooltipWeitereVerantwortliche\"></ae-design>\n\t\t</div>\n\t</div>\n\t<div class=\"_CSS-card__tertiary\" xv-if=\"locals.allProjects.length || locals.allTasks.length\">\n    <div class=\"_CSS-statistics\">\n      <div>\n        <span v-if=\"locals.allTasks.length\" style=\"padding-right: 1ch;\" title=\"Aufgaben (erledigt / gesamt)\" :class=\"{ '_CSS-text--finished': locals.allTasks.length && !locals.openTasks.length }\">\n          <ae-icon class=\"far fa-tasks\"></ae-icon> (<span class=\"_CSS-count\">{{ locals.allTasks.length - locals.openTasks.length }}</span>/<span class=\"_CSS-count\">{{ locals.allTasks.length }}</span>)\n        </span>\n        <span v-if=\"locals.allProjects.length\" title=\"Teilprojekte (erledigt / gesamt)\" :class=\"{ '_CSS-text--finished': locals.allProjects.length && !locals.openProjects.length }\">\n          <ae-icon class=\"far fa-clipboard\"></ae-icon> (<span class=\"_CSS-count\">{{ locals.allProjects.length - locals.openProjects.length  }}</span>/<span class=\"_CSS-count\">{{ locals.allProjects.length }}</span>)\n        </span>\n      </div>\n        <div \n           v-if=\"data.beschreibung.length > 25\"\n           ref=\"descriptionIcon\"\n           @mouseleave=\"$refs.popup.close()\"\n           @mouseover=\"$refs.popup.show({ target: $refs.descriptionIcon })\"\n           class=\"_CSS-card-intro__description\"\n           xtitle=\"Beschreibung vorhanden\"\n           >\n        <ae-icon class=\"fal fa-file-alt\"></ae-icon>\n      </div>\n      <span v-if=\"data.bis\">{{ Aeppic.DateTime.fromISO(data.bis).toLocaleString(Aeppic.DateTime.DATE_SHORT) }}</span>\n    </div>\n\n\t\n\t</div>\n\n    <div class=\"_CSS-progress-container\">\n      <div v-if=\"controller.progressOverall != null\" :title=\"controller.progressOverall.toFixed() + '%' \" class=\"ae-progress \" :style=\"{ 'padding-left': (controller.progressOverall).toString() + '%' }\" ></div>\n    </div>\n</div> -->\n\n<ae-popup ref=\"popup\" base-attachment=\"top left\" popup-attachment=\"bottom left\" :close-delay=\"200\" target-offset=\"5 0\">\n  <div class=\"_CSS-popup\" slot=\"popup\" @mouseenter=\"$refs.popup.cancelClose()\" @mouseleave=\"$refs.popup.closeImmediatly()\">\n    <ae-control :readonly=\"true\" name=\"editor-light\" :document=\"document\" field-name=\"beschreibung\"></ae-control>\n  </div>\n</ae-popup> \n\n\t<!-- <div class=\"_CSS-card-categories\">\n\t\t\t<ae-design class=\"_CSS-card-category\" name=\"icon\" v-for=\"category in data.kategorie\" :document-id=\"category.id\" :key=\"category.id\"></ae-design>\n\t\t</div>\n\t\t<ae-design v-if=\"data.anhaenge && data.anhaenge.length\" name=\"paperclip--small\" :document=\"document\"></ae-design> -->","css":"._CSS-card {\n  height: 100%;\n  display: flex;\n  flex-flow: column;\n  \n  background-color: white;\n\n  border-radius: 2px;\n  box-shadow: 0 2px 6px 0 rgba(0, 0, 0, 0.2);\n  padding: 3px;\n}\n\n._CSS--overdue {\n  color: red;\n}\n\n._CSS-row {\n  display: flex;\n  justify-content: space-between;\n}\n\n._CSS-card > section~section {\n  padding: 10px 4px;\n}\n\n._CSS-card-assignees {\n  display: flex;\n  flex-flow: row;\n  justify-content: flex-end;\n}\n\n._CSS-card-title {\n  overflow: hidden;\n  display: -webkit-box;\n  -webkit-line-clamp: 2;\n  -webkit-box-orient: vertical;\n\n  font-weight: 700;\n}\n\n._CSS-card-title-path {\n  font-size: 0.8em;\n  padding-top: 4px;\n  color:var(--ae-foreground-l2);\n}\n\n._CSS-footer {\n  flex: 1;\n}\n\n._CSS-statistics {\n  color: var(--ae-foreground-l2);\n}\n\n._CSS-statistics__columns {\n  display: grid;\n  grid-auto-flow: column;\n  grid-auto-columns: 30px 30px 30px;\n  grid-column-gap: 10px;\n}\n\n._CSS-statistics__count {\n  display: flex;\n  align-items: center;\n  flex-flow: column;\n}\n\n._CSS .ae-progress, ._CSS .ae-progress:before {\n  height: 8px;\n}\n\n._CSS-popup {\n  position: relative;\n  background: white;\n  padding: 10px;\n  box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.16), 0 0 1px 0 rgba(0, 0, 0, 0.16);\n\n  max-width: 500px;\n  max-height: 200px;\n  overflow: hidden;\n}\n\n\n._CSS-popup:after {\n  position: absolute;\n  bottom: 0;\n  left: 0;\n  width: 100%;\n  height: 60%;\n  content: \"\";\n  background-image: linear-gradient(180deg,hsla(0,0%,100%,.1) 0,white);\n  pointer-events: none;\n}\n\n\n/* \n._CSS {\n  --padding: 0.25rem 1rem 0.1rem 0.5rem;\n}\n\n._CSS-card {\n  display: flex;\n  height: 8rem;\n  \n\n  background-color: white;\n\n  border-left-style: solid;\n  border-left-width: 3px;\n  border-left-color: rgb(235, 235, 235);\n\n  border-radius: 2px;\n  box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.16), 0 0 1px 0 rgba(0, 0, 0, 0.16);\n\n  flex: 1;\n  margin:0;\n  flex-flow: column;\n  cursor: pointer;\n  overflow: hidden;\n}\n\n._CSS-card._CSS-card--overdue {\n  border-left-color: #ff5722 ;\n}\n\n._CSS-card--finished {\n  color: #4e4e4e\n}\n\n._CSS-card__primary {\n  display: flex;\n  justify-content: space-between;\n  align-items: flex-start;\n\n  flex: 1;\n\n  padding: var(--padding);\n}\n\n\n._CSS-card-intro {\n  margin: 2px;\n\n  display:flex;\n  flex-direction:row;\n\n  overflow: hidden;\n  word-break: break-all;\n}\n\n._CSS-card-title {\n  overflow: hidden;\n  display: -webkit-box;\n  -webkit-line-clamp: 4;\n  -webkit-box-orient: vertical;\n}\n\n._CSS-card__secondary {\n  padding: var(--padding);\n  font-size: 0.8em;\n  font-style: italic;\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n}\n._CSS-card__tertiary {\n  display: flex;\n  font-size: 0.9em;\n  align-items: center;\n  justify-content: space-between;\n\n  background: #EEE;\n\n  padding: var(--padding);\n\n  color: #4e4e4e;\n}\n\n._CSS-card-assignees {\n  display: flex;\n  flex-flow: row;\n}\n\n._CSS-statistics {\n  display: flex;\n  justify-content: space-between;\n  flex: 1;\n}\n\n\n._CSS-count {\n  padding-left: 0.2em;\n}\n\n\n._CSS .ae-progress, .ae-progress:before {\n  height: 8px;\n}\n\n._CSS-text--finished {\n  text-decoration: line-through;\n  opacity: 0.6;\n}\n\n\n._CSS-popup {\n  position: relative;\n  background: white;\n  padding: 10px;\n  box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.16), 0 0 1px 0 rgba(0, 0, 0, 0.16);\n\n  max-width: 500px;\n  max-height: 200px;\n  overflow: hidden;\n}\n\n\n._CSS-popup:after {\n  position: absolute;\n  bottom: 0;\n  left: 0;\n  width: 100%;\n  height: 60%;\n  content: \"\";\n  background-image: linear-gradient(180deg,hsla(0,0%,100%,.1) 0,white);\n  pointer-events: none;\n} */\n","controller":"class Controller {\n  async init() {\n    locals.allTasks = []\n    locals.openTasks = []\n    locals.overdueTasks = []\n    locals.allProjects = []\n    locals.openProjects = []\n    locals.overdueProjects = []\n\n    // TASKS\n    Aeppic.subscribeQuery('b059850b-d100-4d61-9568-8b5469968b98', document.id, documents => locals.allTasks = documents)\n    Aeppic.subscribeQuery('c40f11de-15ec-40f3-a16c-b55d9346ea81', document.id, documents => locals.openTasks = documents)\n    Aeppic.subscribeQuery('cf8ad575-98d6-47f5-a4ae-8f27b258cb74', document.id, documents => locals.overdueTasks = documents)\n\n    // PROJECTS\n    Aeppic.subscribeQuery('4d4d84b0-02ac-4ab8-a921-c832910d8c37', document.id, documents => locals.allProjects = documents)\n    Aeppic.subscribeQuery('cb73486b-3c55-4cc7-b0d8-343045721940', document.id, documents => locals.openProjects = documents)\n    Aeppic.subscribeQuery('cb3b5949-67be-4cf0-9c4b-649630f366ff', document.id, documents => locals.overdueProjects = documents)\n\n\n    locals.tooltipWeitereVerantwortliche = ''\n    locals.tooltipWeitereVerantwortliche = await this.updateWeitereVerantwortliche()\n  }\n\n  get isOverdue() {\n    if (!data.erledigt && data.bis) {\n      return Aeppic.DateTime.local().diff(Aeppic.DateTime.fromISO(data.bis)).as('days') > 0\n    }\n    return false\n  }\n\n  get progressOverall() {\n    let progress = 0\n    if (locals.allTasks.length > 0) {\n      progress = 100 * ((locals.allTasks.length - locals.openTasks.length) / locals.allTasks.length)\n    } \n    return progress\n  }\n  \n  async updateWeitereVerantwortliche() {\n    if (!data || !data.verantwortlich || data.verantwortlich.length <= 1) {\n      // console.log(data) \n      return ''\n    }\n\n    const others = data.verantwortlich.slice(1)\n    let title = '' \n     \n    for (const other of others) {\n      const va = await Aeppic.get(other)\n      if (va && va.data.name) {\n        if (title.length > 0) {\n          title += '\\n'\n        }\n        title += `${va.data.name}`\n      }  \n    }\n \n    return title\n  }\n}","packages":[]},"locks":[],"created":{"at":"2018-11-22T14:17:24+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2019-05-28T09:54:15+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1559037255975,"ct":1542896244372,"a_depth":4,"a":["apps","5acfd7a2-33e4-498a-9150-71e1ab772bfc","20c92864-6a81-4006-96f9-b78f473cd129","17c3a5d3-90ba-4592-961b-0800873ef9c1"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"9e6702dc-5f9f-4a8d-a8da-65095accf769","v":"114a5f2d306760c7","p":"c211ffaa-14f8-4439-9126-f42f65ac4424","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"xdashboard-ansicht","template":"<style>\n    .anlage {\n        margin-top:50px;\n        background: #f1f1f1;\n        padding:8px;\n    }\n    .anlage:first-of-type {\n       margin-top:12px; \n    }\n    .arbeit:nth-of-type(even){\n        background: rgba(0,0,0,0.05);\n    }\n    .zuKurz {\n        background:orange !important;\n    }\n    @page {\n        margin: 25mm 25mm 25mm 25mm;  \n    }\n    @media print {\n        .anlage {\n            x-page-break-after:always;\n            x-page-break-inside:avoid;\n            margin-top:0;\n            display:block;\n        }\n        \n        html, body {\n            width: 297mm;\n            height: 210mm;\n          \n         }\n         \n         body {\n             margin: 0cm;\n         }\n         \n         body {\n             font-size:8pt;\n         }\n         \n         .dashboard-detail-page {\n            xmargin:1cm;\n         }\n         \n         .avoid-break {\n            page-break-inside:avoid;\n         }\n         \n         .zuKurz {\n            text-decoration:underline;\n        }\n    }\n</style>\n<md-content class=\"dashboard-detail-page\">\n    <div class=\"db-item\" style=\"background:white\" ng-class=\"{'xdb-item-orange': ((data.status==='supervision' && data.supervisionStatus==='withIssues') || (data.nachfassenDatum && moment(data.nachfassenDatum).diff(moment(), 'days')< -3 )), 'xdb-item-stripes': (data.berater.id !== $root.account.id && !(data.status==='supervision' && data.supervisionStatus==='open'))}\">\n      <div class=\"db-item-small\" layout=\"row\">\n        <div flex>\n          <rs-get-document id=\"{{data.firma.id}}\" as=\"firma\"></rs-get-document>\n          <span>Firma: {{firma.data.name}}</span>\n          <br>\n          <span>Ansprechpartner: {{firma.data.ansprechpartner}}</span>\n        </div>\n        <div layout=\"column\" style=\"text-align:right\">\n            <rs-get-document id=\"{{document.created.by.id}}\" as=\"mitarbeiter\" ></rs-get-document>\n            <span>{{mitarbeiter.data.displayName || '[Admin]'}}</span>\n            <br>\n            <span title=\"Mobilnummer\">{{mitarbeiter.data.mobilePhone}}</span>\n        </div>\n      </div>\n      <div class=\"db-item-big\" style=\"text-align:left;padding:16px\">\n        <rs-get-document id=\"{{data.plan.id}}\" as=\"wartungsplan\"></rs-get-document>\n        <span  class=\"rs-nowrap\">{{wartungsplan.data.name}}</span>\n        <br>\n        <document-query query-id=\"children-query\" root-document-id=\"{{document.id}}\" result=\"anlagen\" sort=\"data.lfndr!\"></document-query>\n        <div ng-repeat=\"anlage in anlagen\" class=\"anlage \">\n            <div style=\"font-weight:normal\" >Anlage: {{anlage.data.lfndr}}.{{anlage.data.name}} <md-icon ng-if=\"anlage.data.status==2\" title=\"Wurde gewartet\">done</md-icon></div>\n            <document-query query-id=\"children-query\" root-document-id=\"{{anlage.id}}\" limit=\"10000\" xfilter=\"data.ergebnis:>0\" sort=\"data.LfNr\" result=\"anlagenteile\"></document-query>\n            <div class=\"avoid-break\" style=\"min-width:200px;text-align:left;margin:10px;cursor:pointer\" ng-repeat=\"teil in anlagenteile\" ng-click=\"open=!open\">\n                <document-design ng-init=\"open=false\" design=\"dashboard-list,list\" document=\"teil\" ></document-design>\n                <div ng-if=\"open\" style=\"border-left:4px solid #d1d1d1;background:#f4;margin-bottom:26px; margin-left:16px; margin-top:6px; padding:5px\">\n                    <document-query query-id=\"children-query\" root-document-id=\"{{teil.id}}\" limit=\"10000\"  result=\"arbeiten\" sort=\"data.lfNr!\"></document-query>\n                    <document-design ng-repeat=\"arbeit in arbeiten\" design=\"work-completed\" document=\"arbeit\" class=\"arbeit\"></document-design>\n                    <rs-form ng-if=\"teil.data.unterschrift.dataUrl\" document=\"teil\" field-id=\"unterschrift\"></rs-form>\n               \n                </div>\n            </div>\n        </div>\n      </div>\n      <div class=\"db-item-mid\" style=\"text-align:center\">\n          \n      </div>\n      <div class=\"db-item-small\"  layout=\"row\" layout-align=\"start center\">\n        <span flex></span>\n        <div layout-align=\"end center\" layout=\"column\">\n          <span title=\"Start {{document.created.at | date:'HH:mm dd.MMM.yyyy'}}\">Start &nbsp;&nbsp;&nbsp;   <span style=\"color:black\">{{document.created.at | date:'HH:mm'}}</span> {{document.created.at | date:'dd.MMM.yyyy'}}</span>\n          <span title=\"Ende {{document.modified.at | date:'HH:mm dd.MMM.yyyy'}}\">Ende &nbsp;&nbsp;&nbsp;    <span style=\"color:black\">{{document.modified.at | date:'HH:mm'}}</span> {{document.modified.at | date:'dd.MMM.yyyy'}}</span>\n        </div>\n      </div>\n    </div>\n</md-content>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-02-28T15:27:56+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-04-06T08:20:15+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1649233215575,"ct":1649233215575,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","c211ffaa-14f8-4439-9126-f42f65ac4424"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[],"previous":{"v":"04be6910b10ba34e","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"}}},{"id":"9b6340cc-3720-4dff-9058-5ab74ba850c2","v":"207857201f6a03d2","p":"c211ffaa-14f8-4439-9126-f42f65ac4424","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"xdashboard-item-wartung","template":"<div class=\"db-item\" ng-class=\"{'xdb-item-orange': ((data.status==='supervision' && data.supervisionStatus==='withIssues') || (data.nachfassenDatum && moment(data.nachfassenDatum).diff(moment(), 'days')< -3 )), 'xdb-item-stripes': (data.berater.id !== $root.account.id && !(data.status==='supervision' && data.supervisionStatus==='open'))}\">\n  <div class=\"db-item-small\" layout=\"row\">\n    <div flex>\n      <rs-get-document id=\"{{data.firma.id}}\" as=\"firma\"></rs-get-document>\n      <span>Firma: {{firma.data.name}}</span>\n      <br>\n      <span>Ansprechpartner: {{firma.data.ansprechpartner}}</span>\n    </div>\n    <div layout=\"column\" style=\"text-align:right\">\n        <rs-get-document id=\"{{document.created.by.id}}\" as=\"mitarbeiter\" ></rs-get-document>\n        <span>{{mitarbeiter.data.displayName || '[Admin]'}}</span>\n        <br>\n        <span title=\"Mobilnummer\">{{mitarbeiter.data.mobilePhone}}</span>\n    </div>\n  </div>\n  <div class=\"db-item-big\" style=\"text-align:center\">\n    <rs-get-document id=\"{{data.plan.id}}\" as=\"wartungsplan\"></rs-get-document>\n    <span  class=\"rs-nowrap\">{{wartungsplan.data.name}}</span>\n    <br>\n    <br>\n    <document-query query-id=\"children-query\" root-document-id=\"{{document.id}}\" result=\"anlagen\" sort=\"data.lfndr!\"></document-query>\n    <div ng-repeat=\"anlage in anlagen\">\n        <document-query query-id=\"children-query\" root-document-id=\"{{anlage.id}}\" limit=\"10000\" xfilter=\"data.ergebnis:>0\" sort=\"data.LfNr\" result=\"anlagenteile\"></document-query>\n        <div style=\"min-width:200px;text-align:left;margin:10px\" ng-repeat=\"teil in anlagenteile | filter:{data:{ergebnis:1 }}:true as begonnen\"></div>\n        <div style=\"min-width:200px;text-align:left;margin:10px\" ng-repeat=\"teil in anlagenteile | filter:{data:{ergebnis:2 }}:true as abgeschlossen\"></div>\n        <div style=\"min-width:200px;text-align:left;margin:10px\" ng-repeat=\"teil in anlagenteile | filter:{data:{ergebnis:3 }}:true as abgeschlossenFehler\"></div>\n        \n        <div style=\"font-weight:normal;white-space:nowrap\" layout=\"row\" layout-align=\"center center\">\n                <div title=\"{{anlage.data.status==2?'Wartung abgeschlossen':''}}\">\n                    <span>Anlage: {{anlage.data.lfndr}}.{{anlage.data.name}}</span> <div style=\"display:inline-block\"><md-tooltip>Wartung abgeschlossen</md-tooltip><md-icon class=\"done-marker\" ng-if=\"anlage.data.status==2\">done</md-icon></div>\n                </div>\n            </div>\n        <md-icon class=\"material-icons\" style=\"text-shadow: 2px 2px 2px rgba(131,128,109,0.4);margin-right:6px\" >assignment</md-icon> <span>#{{anlagenteile.length}} Insgesamt</span>\n        <span>(</span>\n        <md-icon class=\"material-icons\" style=\"xtext-shadow: 2px 2px 2px rgba(131,128,109,0.4);margin-right:6px;color:#bfcf3c\">assignment</md-icon> <span>#{{abgeschlossen.length}}</span>\n        <md-icon class=\"material-icons\" style=\"xtext-shadow: 2px 2px 2px rgba(131,128,109,0.4);margin-right:6px;color:#DA5B5B\">assignment</md-icon> <span>#{{abgeschlossenFehler.length}}</span>\n        <span>)</span>\n       <br><br>\n <!-- \n        <md-icon class=\"material-icons\" style=\"xtext-shadow: 2px 2px 2px rgba(131,128,109,0.4);margin-right:6px;color:yellow\">assignment</md-icon> <span>#{{inArbeit.length}}</span>\n -->  <!--  <document-design design=\"list\" document=\"teil\"></document-design> -->\n    </div>\n  </div>\n  <div class=\"db-item-mid\" style=\"text-align:center\">\n      \n  </div>\n  <div class=\"db-item-small\"  layout=\"row\" layout-align=\"start center\">\n    <span flex></span>\n    <div layout-align=\"end center\" layout=\"column\">\n      <span title=\"Start\">{{document.created.at | date:'HH:mm dd.M.yyyy'}}</span>\n      <span title=\"Ende\">{{document.modified.at | date:'HH:mm dd.M.yyyy'}}</span>\n    </div>\n  </div>\n\n  <document-command target-document=\"document\" command-id=\"2f08dd04-9940-4c0b-8e6d-6b757dad1732\">\n    <div style=\"position: absolute; top:0; left:0; width:100%; height:100%\">\n    </div>\n  </document-command>\n</div>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-02-28T15:27:58+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-04-06T08:20:15+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1649233215575,"ct":1649233215575,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","c211ffaa-14f8-4439-9126-f42f65ac4424"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[],"previous":{"v":"afd784b390d7ab7e","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"}}},{"id":"7c1b0079-8214-4d07-880e-b9df293497dd","v":"2ac29fa4b91a9301","cloneOf":{"id":"ad8305c1-2329-42a1-84bc-9f4dc3b63462","v":"initial","text":""},"originalCloneOf":{"id":"ad8305c1-2329-42a1-84bc-9f4dc3b63462","v":"initial","text":""},"previous":{"v":"initial"},"p":"816b2d0e-5158-4f0c-a5cf-6069bb76de69","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"xdashboard-list","template":"<div style=\"border-left:solid 3px transparent\" ng-class=\"{sctFadeInOut:document.data.ergebnis===1, done:document.data.ergebnis===2||document.data.ergebnis===3}\" layout=\"row\" layout-align=\"start center\" rs-document-autosave=\"document\">\n    <md-icon class=\"material-icons\" style=\"text-shadow: 2px 2px 2px rgba(131,128,109,0.4);margin-right:6px\" ng-style=\"{color: document.data.ergebnis === 2 ? '#bfcf3c': document.data.ergebnis === 3 ? '#DA5B5B': document.data.ergebnis === 4 ? 'yellow':''}\">assignment</md-icon>\n    <rs-get-document id=\"{{document.p}}\" as=\"anlage\"></rs-get-document>\n    <smaller style=\"min-width:0px;display:inline-block\" >{{anlage.data.lfndr}}.</smaller>\n    <smaller style=\"min-width:25px;display:inline-block\">{{data.LfNr}}</smaller>\n    <rs-get-document id=\"{{data.vdma.id}}\" as=\"vdma\"></rs-get-document>\n    <span ng-if=\"currentAccount.emergencyLogin\" style=\"font-weight:normal;color:gray\" title=\"Barcode only visible for admin\">{{data.barcode}}</span>\n    <strong style=\"min-width:45px;text-align:right;display:inline-block;padding-right:6px\">{{vdma.data.vdma}}</strong> <span>{{vdma.data.beschreibung}}</span>\n    <span flex class=\"done-marker\" style=\"border-bottom:1px solid rgba(0,0,0,0.4);margin:8px; margin-bottom:0.6em\"></span>\n    <md-icon class=\"done-marker\">done</md-icon>\n    <div layout-padding layout=\"row\" ng-click=\"$root.$rsCancelEvent($event)\">\n        <span style=\"white-space:nowrap\">Soll:&nbsp;</span>\n        <input type=\"number\" min=\"0\" ng-model=\"data.sollzeit\" style=\"width:100px;text-align:right;\"><span style=\"color:#666\">min</span>\n        <div layout=\"row\"  layout-align=\"end center\" >\n            <span>Ist:</span>\n            <span ng-show=\"ctrl.dauer\" style=\"min-width:80px;text-align:right;margin-left:5px;padding-right:5px;background:lightgray\"\n            ng-class=\"{zuKurz:ctrl.istZuKurz==true}\"\n            title=\"Von {{ data.begonnen|amDateFormat:'MM.DD.YYYY HH:mm:ss'}} - Bis {{ data.beendet|amDateFormat:'MM.DD.YYYY HH:mm:ss'}}\">{{ctrl.dauer}}</span>\n            <span ng-hide=\"ctrl.dauer\" style=\"min-width:80px;text-align:right;margin-left:5px;padding-right:5px;color:#aaa\">_____&nbsp;</span>\n            <span ng-show=\"ctrl.dauer\" style=\"min-width:50px;margin-left:5px;color:#666\">min</span>\n            <span ng-hide=\"ctrl.dauer\" style=\"min-width:50px;margin-left:5px;color:#666\">min</span>\n        </div>\n    </div>\n</div>\n\n<!--\n\n\n[ergebnis]: Select\n  - 0: \n  - 1: Begonnen\n  - 2: Abgeschlossen - Alles in Ordnung\n  - 3: Abgeschlossen - Teilweise nicht in Ordnung\n  - 4: Abgebrochen\n  \n-->","css":"","controller":"\nget dauer(){\n    if(context.document.data.begonnen && context.document.data.beendet){\n        var start = moment(context.document.data.begonnen);\n        var end =moment(context.document.data.beendet);\n        \n        var min = end.diff(start, 'minutes') ;\n        \n        if(!min){\n            return 'unter 1'\n        }\n        \n        return min;\n    } else {\n        return '';\n    }\n}\n\nget istZuKurz(){\n    var start = moment(context.document.data.begonnen);\n    var end =moment(context.document.data.beendet);\n    \n    var minuten = end.diff(start, 'minutes') ;\n    \n    var soll = context.document.data.sollzeit;\n    var LIMIT = 0.3;\n    var minSoll = soll - soll*LIMIT;\n    \n    return (minSoll > minuten);\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-02-28T15:23:05+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-02-28T15:23:30+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1646061810950,"ct":1646061785990,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","816b2d0e-5158-4f0c-a5cf-6069bb76de69"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"539ae1af-245e-4842-ade8-7dd9df7da541","v":"d403f4efba1237bb","previous":{"v":"initial"},"p":"c186a5aa-6a83-4ed4-894a-c0c312925058","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"xheader","applies":"","template":"Messpunkt","css":"","controller":"","packages":[]},"locks":[],"created":{"at":"2018-02-06T09:45:51+01:00","by":"","from":"","client":"server"},"modified":{"at":"2018-02-23T08:29:51+01:00","by":"","from":"","client":"server"},"t":1519370991218,"ct":1517906751480,"a_depth":4,"a":["apps","b791df37-6eef-4a3e-9066-1b79e0bdad31","35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f","c186a5aa-6a83-4ed4-894a-c0c312925058"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"21e709b8-a9a9-4551-af25-725c25a2de24","v":"36e8409e764eeaf1","previous":{"v":"b5ee70fed82ace8b"},"p":"6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2","f":{"id":"design-form","v":"49954170df6a253b","text":"Design"},"data":{"name":"xheader-title","template":"<div class=\"document-page-header\" style=\"padding:8px 16px\">\r\n  <h2 ng-if=\"document.data.name\" style=\"margin-top:0px;text-overflow:ellipsis\" title=\"{{document.id}}@{{document.v}}\">{{document.data.name}} <small title=\"Autor\">{{document.data.autor}}</small> <img class=\"icon\" src=\"images/iconmonstr-check-mark-5-icon.svg\" ng-if=\"document.data.freigabe\" title=\"Freigegeben\"></img></h2>\r\n  <h2 ng-if=\"!document.data.name\" style=\"margin-top:0px;color:lightgray\" title=\"{{document.id}}@{{document.v}}\">No Name</h2>\r\n  <document-breadcrumbs document=\"document\" style=\"line-height:0px\"></document-breadcrumbs>\r\n  \r\n  <!-- <document-commands class=\"pull-left header-title-commands\" style=\"position: relative; bottom: 11px;\" target-document-id=\"{{document.id}}\" lookup-for=\"{{document.f.id}}\"></document-commands> -->\r\n  <document-commands class=\"pull-left header-title-commands\" style=\"top: -11px; position: relative;\" target-document-id=\"{{document.id}}\" lookup-for=\"{{document.f.id}}\"></document-commands>\r\n  \r\n  <ul class=\"command-list nav navbar-nav\">\r\n    <li style=\"height: 56px; width: 95px; top: -11px;\">\r\n      <a type=\"submit\" class=\"command-button pull-left\" ng-href=\"api/docs/{{document.id}}/content?downloadFileName={{document.data.name}}\" target=\"_self\" download>Download</a>\r\n    </li>\r\n  </ul>\r\n  <ul class=\"command-list nav navbar-nav\">\r\n    <li style=\"height: 56px; width: 95px; top: -11px;\">\r\n      <a class=\"command-button pull-left\" href=\"openPDF:/api/docs/{{document.id}}/content?downloadFileName={{document.data.name}}\">PDF öffnen</a>\r\n    </li>\r\n  </ul>\r\n\r\n</div>","css":"","controller":"","packages":[],"description":""},"locks":[],"created":{"at":"2018-12-03T13:21:32+00:00","by":"c5ed555f-cc11-463b-960b-0a60b3118e69","from":"","client":"server"},"modified":{"at":"2018-12-03T13:21:36+00:00","by":"c5ed555f-cc11-463b-960b-0a60b3118e69","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1543843296541,"ct":1543843292517,"a_depth":4,"a":["apps","3d43a3f5-fea4-488d-9fc1-9dee5e694623","7c30f282-2b84-4976-8735-ba78662ea5e6","6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"d5339808-0d57-4bc5-ae7d-dd8eac52397a","v":"initial","cloneOf":{"id":"21e709b8-a9a9-4551-af25-725c25a2de24","v":"36e8409e764eeaf1","text":"xheader-title"},"originalCloneOf":{"id":"21e709b8-a9a9-4551-af25-725c25a2de24","v":"36e8409e764eeaf1","text":"xheader-title"},"p":"dbee6e16-d63a-493c-bba6-505f79918f9f","f":{"id":"design-form","v":"49954170df6a253b","text":"Design"},"data":{"name":"xheader-title","template":"<div class=\"document-page-header\" style=\"padding:8px 16px\">\r\n  <h2 ng-if=\"document.data.name\" style=\"margin-top:0px;text-overflow:ellipsis\" title=\"{{document.id}}@{{document.v}}\">{{document.data.name}} <small title=\"Autor\">{{document.data.autor}}</small> <img class=\"icon\" src=\"images/iconmonstr-check-mark-5-icon.svg\" ng-if=\"document.data.freigabe\" title=\"Freigegeben\"></img></h2>\r\n  <h2 ng-if=\"!document.data.name\" style=\"margin-top:0px;color:lightgray\" title=\"{{document.id}}@{{document.v}}\">No Name</h2>\r\n  <document-breadcrumbs document=\"document\" style=\"line-height:0px\"></document-breadcrumbs>\r\n  \r\n  <!-- <document-commands class=\"pull-left header-title-commands\" style=\"position: relative; bottom: 11px;\" target-document-id=\"{{document.id}}\" lookup-for=\"{{document.f.id}}\"></document-commands> -->\r\n  <document-commands class=\"pull-left header-title-commands\" style=\"top: -11px; position: relative;\" target-document-id=\"{{document.id}}\" lookup-for=\"{{document.f.id}}\"></document-commands>\r\n  \r\n  <ul class=\"command-list nav navbar-nav\">\r\n    <li style=\"height: 56px; width: 95px; top: -11px;\">\r\n      <a type=\"submit\" class=\"command-button pull-left\" ng-href=\"api/docs/{{document.id}}/content?downloadFileName={{document.data.name}}\" target=\"_self\" download>Download</a>\r\n    </li>\r\n  </ul>\r\n  <ul class=\"command-list nav navbar-nav\">\r\n    <li style=\"height: 56px; width: 95px; top: -11px;\">\r\n      <a class=\"command-button pull-left\" href=\"openPDF:/api/docs/{{document.id}}/content?downloadFileName={{document.data.name}}\">PDF öffnen</a>\r\n    </li>\r\n  </ul>\r\n\r\n</div>","css":"","controller":"","packages":[],"description":""},"locks":[],"created":{"at":"2020-06-24T12:54:35+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2020-06-24T12:54:35+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1593003275186,"ct":1593003275186,"a_depth":4,"a":["apps","45ada186-e9fd-451d-9dbd-2defc0b4f86f","4ec6a0e5-cf2d-4095-9b70-2e31a64d5679","dbee6e16-d63a-493c-bba6-505f79918f9f"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"759e0393-cbe8-405c-a64d-491efe19658f","v":"1221a4761545a766","previous":{"v":"initial"},"p":"form","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"xicon","applies":"","template":"<ae-icon v-if=\"data.iconName\" :class=\"data.iconName\"></ae-icon>\n<ae-icon v-if=\"!data.iconName\" class=\"fab fa-wpforms\"></ae-icon>","css":"._CSS {\n  color: #444;\n}","controller":"","packages":[]},"locks":[],"created":{"at":"2018-04-18T15:36:17+02:00","by":"","from":"","client":"server"},"modified":{"at":"2019-07-17T12:47:39+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1563367659711,"ct":1524058577239,"a_depth":3,"a":["system","system-forms","form"],"a_forms":["system-folder-form","repository-folder-form","form"],"inheritedLocks":[null,null,null,null],"stamps":[]},{"id":"1072ad26-8f3f-46bb-9966-049836b89910","v":"d5ab8ca4affddb30","previous":{"v":"db8dfb4c3bfca388"},"p":"6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2","f":{"id":"design-form","v":"49954170df6a253b","text":"Design"},"data":{"name":"ximage","template":"<div>\n  <img iris-src=\"api/docs/{{document.id}}/content\"></img>\n</div>","css":"","controller":"","packages":[],"description":""},"locks":[],"created":{"at":"2018-12-03T13:21:22+00:00","by":"c5ed555f-cc11-463b-960b-0a60b3118e69","from":"","client":"server"},"modified":{"at":"2018-12-03T13:21:26+00:00","by":"c5ed555f-cc11-463b-960b-0a60b3118e69","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1543843286206,"ct":1543843282589,"a_depth":4,"a":["apps","3d43a3f5-fea4-488d-9fc1-9dee5e694623","7c30f282-2b84-4976-8735-ba78662ea5e6","6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"9570904b-22b3-4f61-b535-2388d5e460c0","v":"initial","cloneOf":{"id":"1072ad26-8f3f-46bb-9966-049836b89910","v":"d5ab8ca4affddb30","text":"ximage"},"originalCloneOf":{"id":"1072ad26-8f3f-46bb-9966-049836b89910","v":"d5ab8ca4affddb30","text":"ximage"},"p":"dbee6e16-d63a-493c-bba6-505f79918f9f","f":{"id":"design-form","v":"49954170df6a253b","text":"Design"},"data":{"name":"ximage","template":"<div>\n  <img iris-src=\"api/docs/{{document.id}}/content\"></img>\n</div>","css":"","controller":"","packages":[],"description":""},"locks":[],"created":{"at":"2020-06-24T12:54:35+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2020-06-24T12:54:35+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1593003275189,"ct":1593003275189,"a_depth":4,"a":["apps","45ada186-e9fd-451d-9dbd-2defc0b4f86f","4ec6a0e5-cf2d-4095-9b70-2e31a64d5679","dbee6e16-d63a-493c-bba6-505f79918f9f"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"2191eb4e-cd41-43cf-a0a7-7a59b6b679bb","v":"853f45b1c804f11f","cloneOf":{"id":"1aee3c6b-d97e-4d18-b03e-3f65864f767e","v":"6b859f58518b1be4","text":"info"},"originalCloneOf":{"id":"1aee3c6b-d97e-4d18-b03e-3f65864f767e","v":"6b859f58518b1be4","text":"info"},"previous":{"v":"initial"},"p":"dbee6e16-d63a-493c-bba6-505f79918f9f","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"xinfo","applies":"","template":"<dl class=\"ae-dl\">\n  <dd>Name</dd>\n  <dt>{{data.name}}</dt>\n\n  <dd>Typ</dd>\n  <dt style=\"display: flex;\">\n    <ae-design name=\"icon\" :document=\"document\"></ae-design>\n    <ae-design name=\"readable-type\" :document=\"document\"></ae-design>\n  </dt>\n\n  <dd class=\"ae-dl--gap\">Freigabe</dd>\n  <dt>{{data.freigabe ? 'Ja' : 'Nein' }}</dt>\n\n  <template v-if=\"data.gueltigab\">\n    <dd>Gültig ab</dd>\n    <dt>\n      {{Aeppic.DateTime.fromISO(data.gueltigab).toLocaleString(Aeppic.DateTime.DATETIME_SHORT)}}\n    </dt>\n  </template>\n\n\n\n\n  <template v-if=\"document.modified.at\">\n    <dd class=\"ae-dl--gap\">Geändert von</dd>\n    <dt>\n      <ae-design  name=\"avatar--small\" \n                v-if=\"document.created.by\"\n                :document=\"locals.modifiedProfile\">\n      </ae-design>\n      <span v-else>Admin</span>\n    </dt>\n\n    <dd>Geändert am</dd>\n    <dt>\n      {{Aeppic.DateTime.fromISO(document.modified.at).toLocaleString(Aeppic.DateTime.DATETIME_SHORT)}}\n    </dt>\n  </template>\n\n\n  <dd class=\"ae-dl--gap\">Erstellt von</dd>\n  <dt>\n    <ae-design  name=\"avatar--small\" \n                v-if=\"document.created.by\"\n                :document=\"locals.createdProfile\">\n    </ae-design>\n    <span v-else>Admin</span>\n  </dt>\n\n  <dd>Erstellt am</dd>\n  <dt>\n    {{Aeppic.DateTime.fromISO(document.created.at).toLocaleString(Aeppic.DateTime.DATE_SHORT)}}\n  </dt>\n</dl>","css":"","controller":"class Controller {\n  async init() {\n    locals.createdProfile = await Aeppic.getProfilePageForAccount(document.created.by)\n\n    if (document.modified.by) {\n      locals.modifiedProfile = await Aeppic.getProfilePageForAccount(document.modified.by)\n    }\n  }\n}","packages":[]},"locks":[],"created":{"at":"2020-06-24T12:54:35+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2021-12-21T13:40:07+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1640094007730,"ct":1593003275148,"a_depth":4,"a":["apps","45ada186-e9fd-451d-9dbd-2defc0b4f86f","4ec6a0e5-cf2d-4095-9b70-2e31a64d5679","dbee6e16-d63a-493c-bba6-505f79918f9f"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"2c07582d-9d2b-4991-b8fd-17975b385273","v":"23d4c07825818afb","p":"fallback-designs","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"xinfo","template":"<dl>\r\n  <dd>Created By</dd>\r\n  <dt>{{document.created.by||'Anonymous'}}</dt>\r\n  <dd>Created At</dd>\r\n  <dt>{{document.created.at}}</dt>\r\n  <dd>Last Modified By</dd>\r\n  <dt>{{document.created.by||'Anonymous'}}</dt>\r\n  <dd>Last Modified At</dd>\r\n  <dt>{{document.modified.at}}</dt>\r\n  <dd class=\"_CSS--gap\">Form</dd>\r\n  <dt class=\"_CSS--gap\">{{form.name}}</dt>\r\n  <dd>Id</dd>\r\n  <dt>{{document.id}}</dt>\r\n  <dd>Version</dd>\r\n  <dt>{{document.v}}</dt>\r\n</dl>\r\n","css":"._CSS dl {\r\n  display: grid;\r\n  grid-template-columns:min-content 100px;\r\n  grid-gap: 6px;\r\n  font-size: 0.8em;\r\n}\r\n\r\n._CSS dd {\r\n  margin:0;\r\n  padding-left: 8px;\r\n  text-align: right;\r\n  white-space: nowrap;\r\n  color: var(--ae-foreground-l2);\r\n}\r\n\r\n._CSS dd._CSS--gap{\r\n  margin-top: 16px;\r\n}\r\n\r\n._CSS dt._CSS--gap{\r\n  margin-top: 16px;\r\n}\r\n\r\n._CSS dt {\r\n  color: var(--ae-foreground-l1);\r\n  font-weight: bold;\r\n  overflow: hidden;\r\n  text-overflow: ellipsis;\r\n  white-space: nowrap;\r\n}\r\n","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2017-12-06T11:17:27+01:00","by":"","from":"","client":"fa3853bb-e08e-4a69-91cc-ca56bbfd010d"},"modified":{"at":"2020-06-30T09:30:13+00:00","by":"8e6c22aa-8c69-4ff8-919a-7032841cf636","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720684627141,"ct":1720684627141,"a_depth":2,"a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"],"inheritedLocks":[null,null,null],"stamps":[],"previous":{"v":"edd7338ca2f3d00d","f":{"id":"design-form","v":"9bfe8e0cd909c1f0","text":"Design"}},"meta":{"modified":{"at":"2024-07-11T09:57:07+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"007c0f29-e34a-4611-ba81-52b0d30b2eff","v":"cdeb681bba826d78","cloneOf":{"id":"ad8305c1-2329-42a1-84bc-9f4dc3b63462","v":"initial","text":""},"originalCloneOf":{"id":"ad8305c1-2329-42a1-84bc-9f4dc3b63462","v":"initial","text":""},"previous":{"v":"initial"},"p":"816b2d0e-5158-4f0c-a5cf-6069bb76de69","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"xlist","template":"<div style=\"border-left:solid 3px transparent\" ng-class=\"{sctFadeInOut:document.data.ergebnis===1, done:document.data.ergebnis===2||document.data.ergebnis===3}\" layout=\"row\">\n    <md-icon class=\"material-icons\" style=\"text-shadow: 2px 2px 2px rgba(131,128,109,0.4);margin-right:6px\" ng-style=\"{color: document.data.ergebnis === 2 ? '#00C853': document.data.ergebnis === 3 ? '#DA5B5B': document.data.ergebnis === 4 ? 'yellow':''}\">assignment</md-icon>\n    <rs-get-document id=\"{{document.p}}\" as=\"anlage\"></rs-get-document>\n    <smaller style=\"min-width:0px;display:inline-block\" >{{anlage.data.lfndr}}.</smaller>\n    <smaller style=\"min-width:25px;display:inline-block\">{{data.LfNr}}</smaller>\n    <rs-get-document id=\"{{data.vdma.id}}\" as=\"vdma\"></rs-get-document>\n    <span ng-if=\"currentAccount.emergencyLogin\" style=\"font-weight:normal;color:gray\" title=\"Barcode only visible for admin\">{{data.barcode}}</span>\n    <strong style=\"min-width:45px;text-align:right;display:inline-block;padding-right:6px\">{{vdma.data.vdma}}</strong> <span>{{vdma.data.beschreibung}}</span>\n    <span flex class=\"done-marker\" style=\"border-bottom:1px solid rgba(0,0,0,0.4);margin:8px; margin-bottom:0.6em\"></span>\n    <md-icon class=\"done-marker\">done</md-icon>\n  </div>\n<!--\n\n\n[ergebnis]: Select\n  - 0: \n  - 1: Begonnen\n  - 2: Abgeschlossen - Alles in Ordnung\n  - 3: Abgeschlossen - Teilweise nicht in Ordnung\n  - 4: Abgebrochen\n  \n-->","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-02-28T15:23:07+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-02-28T15:23:41+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1646061821716,"ct":1646061787468,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","816b2d0e-5158-4f0c-a5cf-6069bb76de69"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"0b52ecb4-1f92-46eb-9b90-b18468dd3c30","v":"9953145230da4012","previous":{"v":"initial"},"p":"e6f256c2-35de-4026-89f1-8641b6995290","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"xlist","applies":"","template":"<span>{{data.anzahl}} {{data.einheit}}</span>\n          <span class=\"line-height centerv document-name\" title=\"{{data.description}}\">{{data.name || ('Untitled ' + document.f.text)}}</span>\n        ","css":"","controller":"","packages":[]},"locks":[],"created":{"at":"2018-02-06T09:46:53+01:00","by":"","from":"","client":"server"},"modified":{"at":"2018-02-23T08:30:33+01:00","by":"","from":"","client":"server"},"t":1519371033065,"ct":1517906813129,"a_depth":4,"a":["apps","b791df37-6eef-4a3e-9066-1b79e0bdad31","35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f","e6f256c2-35de-4026-89f1-8641b6995290"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"6943eb92-0e40-406a-898b-886e5824bab8","v":"00c68522ebb53804","cloneOf":{"id":"afb04213-7b61-4cc4-8c67-86fe5effe21d","v":"initial","text":""},"originalCloneOf":{"id":"afb04213-7b61-4cc4-8c67-86fe5effe21d","v":"initial","text":""},"previous":{"v":"initial"},"p":"522ca40d-810b-4021-835f-beeace3af7fa","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"xlist","template":"<strong>Wartungsplan {{data.name}}</strong>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-02-28T15:31:30+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-02-28T15:31:55+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1646062315347,"ct":1646062290450,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","522ca40d-810b-4021-835f-beeace3af7fa"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"760028d8-a487-43b5-8b65-1868d6648876","v":"199a61587d9dd970","previous":{"v":"initial"},"p":"f59fae1a-c2f0-4bf6-b896-1caa8cf950ed","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"xlist","applies":"","template":"<md-button layout=\"row\" class=\"md-flat\" style=\"border-bottom:0px solid gray\">\n  <md-icon>location_city</md-icon>\n  <strong>Objekte</strong>\n </md-button>","css":"","controller":"","packages":[]},"locks":[],"created":{"at":"2018-02-06T09:47:21+01:00","by":"","from":"","client":"server"},"modified":{"at":"2018-02-21T09:40:23+01:00","by":"","from":"","client":"server"},"t":1519202423225,"ct":1517906841211,"a_depth":4,"a":["apps","b791df37-6eef-4a3e-9066-1b79e0bdad31","35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f","f59fae1a-c2f0-4bf6-b896-1caa8cf950ed"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"7c4e74ac-41dc-4924-b54f-cfd5425bd3f8","v":"1055e58cd5f0a4d3","cloneOf":{"id":"ad8305c1-2329-42a1-84bc-9f4dc3b63462","v":"fcb4294872833004","text":""},"originalCloneOf":{"id":"ad8305c1-2329-42a1-84bc-9f4dc3b63462","v":"fcb4294872833004","text":""},"previous":{"v":"ee934df982c221bc"},"p":"d7f0c56d-8e0e-4607-911b-b0789c557d40","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"xlist","template":"<div layout=\"row\" >\n    <div>\n        <md-icon style=\"min-width:32px\" class=\"material-icons\" ng-if=\"document.data.io === 0\">check_box_outline_blank</md-icon>\n        <md-icon style=\"min-width:32px\" class=\"material-icons\" ng-if=\"document.data.io === 1\">indeterminate_check_box</md-icon>\n        <md-icon style=\"min-width:32px\" class=\"material-icons\" ng-if=\"document.data.io === 2\">check_box</md-icon>\n    </div>\n        \n    <div layout=\"column\" flex>\n        <div style=\"opacity:0.5\">\n            <rs-get-document id=\"{{document.p}}\" as=\"parent\"></rs-get-document>\n            <rs-get-document id=\"{{parent.data.vdma.id}}\" as=\"parentVdma\"></rs-get-document>\n            \n            <strong>{{parent.data.LfNr}}</strong>&nbsp;<span>{{parentVdma.data.beschreibung}}</span>\n        </div>\n        <div layout=\"row\">\n            <rs-get-document id=\"{{data.vdmaRef.id}}\" as=\"vdma\"></rs-get-document>\n            {{data.lfNr}} - {{vdma.data.vdma}} {{vdma.data.beschreibung}}\n        </div>\n    </div>\n</div>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-02-28T15:24:53+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-02-28T15:25:10+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1646061910084,"ct":1646061893280,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","d7f0c56d-8e0e-4607-911b-b0789c557d40"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"82b934ab-8824-4f48-ad24-39fe855d2a53","v":"5dc0e8722d452ac3","previous":{"v":"initial"},"p":"fc3d1b75-fb96-469b-b92c-c51358404252","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"xlist","applies":"","template":"<div layout=\"column\" click-navigates-to=\"{{document.id}}\">\r\n    <div layout=\"row\" layout-align=\"start center\">\r\n        <md-icon>data_usage</md-icon>\r\n        <div flex layout=\"column\" layout-padding>\r\n            <document-design  flex document-id=\"{{data.geraet.id}}\" design=\"list\"></document-design>\r\n        </div>\r\n         <span show-xs>Letzter Stand: \r\n         <document-design style=\"display:inline-block\" document-id=\"{{data.zaehlerstaende[data.zaehlerstaende.length-1].id}}\" design=\"short\"></document-design></span>\r\n    </div>\r\n\r\n</div>","css":"","controller":"","packages":[]},"locks":[],"created":{"at":"2018-02-06T09:46:01+01:00","by":"","from":"","client":"server"},"modified":{"at":"2018-02-23T08:30:14+01:00","by":"","from":"","client":"server"},"t":1519371014153,"ct":1517906761099,"a_depth":4,"a":["apps","b791df37-6eef-4a3e-9066-1b79e0bdad31","35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f","fc3d1b75-fb96-469b-b92c-c51358404252"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"978e43f2-c8d6-4814-aa16-556d2df5275a","v":"initial","cloneOf":{"id":"cc301fbc-f8c8-4c82-b702-aa2ee5c98ae1","v":"f2963de3f3048a21","text":"xlist"},"originalCloneOf":{"id":"cc301fbc-f8c8-4c82-b702-aa2ee5c98ae1","v":"f2963de3f3048a21","text":"xlist"},"p":"dbee6e16-d63a-493c-bba6-505f79918f9f","f":{"id":"design-form","v":"49954170df6a253b","text":"Design"},"data":{"name":"xlist","template":"<img src=\"{{document.icon}}\" class=\"document-icon-small\"> {{d.datei.name}} \n\n<span class=\"line-item\">\n<img alt=\"Embedded Image\" ng-show=\"{{d.freigabe}}\" src=\"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCg0KPCEtLSBMaWNlbnNlIEFncmVlbWVudCBhdCBodHRwOi8vaWNvbm1vbnN0ci5jb20vbGljZW5zZS8gLS0+DQoNCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiDQoJIHdpZHRoPSI1MTJweCIgaGVpZ2h0PSI1MTJweCIgdmlld0JveD0iMCAwIDUxMiA1MTIiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDUxMiA1MTIiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPHBhdGggaWQ9ImNoZWNrYm94LTItaWNvbiIgZD0iTTEyNC43NTMsMjI0LjA5OWwyOC43NTgtMjYuNTg2YzMzLjYzOSwxNi4yNzgsNTQuOTc1LDI4LjY2Myw5Mi43ODQsNTUuNjE0DQoJYzcxLjA3OC04MC42NjMsMTE4LjA0NS0xMjEuNTg1LDIwNS4zNDgtMTc1LjkwMkw0NjEsOTguNzVjLTcxLjk5NCw2Mi44MjgtMTI0LjcyNCwxMzIuODA3LTIwMC42NSwyNjguOTY4DQoJQzIxMy41MjIsMzEyLjU2NCwxODIuMjY4LDI3Ny40MDksMTI0Ljc1MywyMjQuMDk5eiBNMzYxLDI1OS4xOTF2MTM1LjU4NEg5MXYtMjcwaDI0MS41MzRjMTYuNjQ5LTEzLjgzMywzMy45MjEtMjYuODc3LDUyLjgwOS00MEg1MQ0KCXYzNTBoMzUwVjIwNC41MzdDMzg3LjcxOCwyMjEuMTM3LDM3NC41MjUsMjM5LjE2NSwzNjEsMjU5LjE5MXoiLz4NCjwvc3ZnPg0K\"/>\n</span>\n<span ng-hide=\"{{d.freigabe}}\">Freigabe nicht erteilt</span>\n\n{{d.autor}} {{d.gueltigab}}","css":"","controller":"","packages":[],"description":""},"locks":[],"created":{"at":"2020-06-24T12:54:35+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2020-06-24T12:54:35+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1593003275193,"ct":1593003275193,"a_depth":4,"a":["apps","45ada186-e9fd-451d-9dbd-2defc0b4f86f","4ec6a0e5-cf2d-4095-9b70-2e31a64d5679","dbee6e16-d63a-493c-bba6-505f79918f9f"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"98ec1bbf-4af2-4584-8bf0-921e2d62e37e","v":"63c7ac1cb8dc90a1","cloneOf":{"id":"0f643b04-cb2c-4603-b78c-adc552a483e1","v":"initial","text":""},"originalCloneOf":{"id":"0f643b04-cb2c-4603-b78c-adc552a483e1","v":"initial","text":""},"previous":{"v":"initial"},"p":"204787ca-59c2-4b11-b866-aa05fa9c9891","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"xlist","template":"<strong>{{data.vdma}}</strong> {{data.beschreibung}}","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-02-28T15:27:04+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-02-28T15:27:25+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1646062045633,"ct":1646062024968,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","204787ca-59c2-4b11-b866-aa05fa9c9891"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"999ee407-7369-436c-a179-77beb4d788ec","v":"7c0b5bcf58d7c1f9","previous":{"v":"initial"},"p":"c186a5aa-6a83-4ed4-894a-c0c312925058","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"xlist","applies":"","template":"<div click-navigates-to=\"{{document.id}}\" style=\"position:relative\">\n    <div flex ng-style=\"{backgroundImage: 'url(api/docs/' + document.id + '/content?thumbnail)' }\" style=\"background-position:center;background-size:cover;height:200px;\"></div> <br>\n    <document-design document-id=\"{{messung.id}}\" design=\"list\" ng-repeat=\"messung in data.messungen\"></document-design>\n    <span style=\"position:absolute;left:10px;top:10px;color:white;font-size:18px;text-shadow:0px 0px 10px black\">{{data.kommentar}}</span>\n</div>","css":"","controller":"","packages":[]},"locks":[],"created":{"at":"2018-02-06T09:45:54+01:00","by":"","from":"","client":"server"},"modified":{"at":"2018-02-23T08:29:55+01:00","by":"","from":"","client":"server"},"t":1519370995196,"ct":1517906754082,"a_depth":4,"a":["apps","b791df37-6eef-4a3e-9066-1b79e0bdad31","35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f","c186a5aa-6a83-4ed4-894a-c0c312925058"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"a5c69834-8a96-4582-a40f-ac49a4a7d43c","v":"initial","cloneOf":{"id":"98ec1bbf-4af2-4584-8bf0-921e2d62e37e","v":"63c7ac1cb8dc90a1","text":"xlist"},"originalCloneOf":{"id":"98ec1bbf-4af2-4584-8bf0-921e2d62e37e","v":"63c7ac1cb8dc90a1","text":"xlist"},"p":"0dfd4afd-f2ec-4ff0-9a79-811badf4fed5","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"xlist","template":"<strong>{{data.vdma}}</strong> {{data.beschreibung}}","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-03-02T15:28:29+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2022-03-02T15:28:29+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1646234909054,"ct":1646234909053,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","0dfd4afd-f2ec-4ff0-9a79-811badf4fed5"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"cc301fbc-f8c8-4c82-b702-aa2ee5c98ae1","v":"f2963de3f3048a21","previous":{"v":"4451cbac232fa01f"},"p":"6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2","f":{"id":"design-form","v":"49954170df6a253b","text":"Design"},"data":{"name":"xlist","template":"<img src=\"{{document.icon}}\" class=\"document-icon-small\"> {{d.datei.name}} \n\n<span class=\"line-item\">\n<img alt=\"Embedded Image\" ng-show=\"{{d.freigabe}}\" src=\"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCg0KPCEtLSBMaWNlbnNlIEFncmVlbWVudCBhdCBodHRwOi8vaWNvbm1vbnN0ci5jb20vbGljZW5zZS8gLS0+DQoNCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiDQoJIHdpZHRoPSI1MTJweCIgaGVpZ2h0PSI1MTJweCIgdmlld0JveD0iMCAwIDUxMiA1MTIiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDUxMiA1MTIiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPHBhdGggaWQ9ImNoZWNrYm94LTItaWNvbiIgZD0iTTEyNC43NTMsMjI0LjA5OWwyOC43NTgtMjYuNTg2YzMzLjYzOSwxNi4yNzgsNTQuOTc1LDI4LjY2Myw5Mi43ODQsNTUuNjE0DQoJYzcxLjA3OC04MC42NjMsMTE4LjA0NS0xMjEuNTg1LDIwNS4zNDgtMTc1LjkwMkw0NjEsOTguNzVjLTcxLjk5NCw2Mi44MjgtMTI0LjcyNCwxMzIuODA3LTIwMC42NSwyNjguOTY4DQoJQzIxMy41MjIsMzEyLjU2NCwxODIuMjY4LDI3Ny40MDksMTI0Ljc1MywyMjQuMDk5eiBNMzYxLDI1OS4xOTF2MTM1LjU4NEg5MXYtMjcwaDI0MS41MzRjMTYuNjQ5LTEzLjgzMywzMy45MjEtMjYuODc3LDUyLjgwOS00MEg1MQ0KCXYzNTBoMzUwVjIwNC41MzdDMzg3LjcxOCwyMjEuMTM3LDM3NC41MjUsMjM5LjE2NSwzNjEsMjU5LjE5MXoiLz4NCjwvc3ZnPg0K\"/>\n</span>\n<span ng-hide=\"{{d.freigabe}}\">Freigabe nicht erteilt</span>\n\n{{d.autor}} {{d.gueltigab}}","css":"","controller":"","packages":[],"description":""},"locks":[],"created":{"at":"2018-12-03T13:20:53+00:00","by":"c5ed555f-cc11-463b-960b-0a60b3118e69","from":"","client":"server"},"modified":{"at":"2018-12-03T13:20:57+00:00","by":"c5ed555f-cc11-463b-960b-0a60b3118e69","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1543843257144,"ct":1543843253287,"a_depth":4,"a":["apps","3d43a3f5-fea4-488d-9fc1-9dee5e694623","7c30f282-2b84-4976-8735-ba78662ea5e6","6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"cc9d332a-8f60-4ddf-b78a-1ff6b37e7633","v":"3649477abef3e5de","cloneOf":{"id":"852b468f-86a3-4324-b4e1-9aa826d89bd9","v":"initial","text":"xcard"},"originalCloneOf":{"id":"852b468f-86a3-4324-b4e1-9aa826d89bd9","v":"initial","text":"xcard"},"previous":{"v":"initial"},"p":"3592ceee-ae9a-47a9-8488-7bad5b0d9ff5","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"xlist","template":"","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-02-28T15:30:09+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-02-28T15:30:28+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1646062228950,"ct":1646062209219,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","3592ceee-ae9a-47a9-8488-7bad5b0d9ff5"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"f889ab79-97be-4198-bc0f-53397c84bd8a","v":"132b76e662d903bc","p":"c211ffaa-14f8-4439-9126-f42f65ac4424","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"xlist","template":"<div layout=\"column\">\n    <md-card>\n        <md-card-title>\n            <md-card-title-text>\n            <div class=\"md-title\" layout=\"row\" layout-align=\"start center\"><md-icon >person_pin</md-icon> &nbsp;&nbsp;<document-design flex document-id=\"{{data.firma.id}}\" design=\"text\"></document-design><span style=\"font-size:12px\">{{document.created.at | amUtc | amDateFormat:\"DD.MM.YYYY hh:mm\" }}</span></div>\n            <div class=\"md-subhead\" title=\" {{document.modified.at | amUtc | amTimeAgo}}\" layout=\"column\">\n                <div layout=\"row\" title=\"Techniker\">\n                   <md-icon>person</md-icon>\n                   <span flex layout-padding>{{document.modified.by.id}}</span>\n                </div>\n            </div>\n        </md-card-title-text>\n        </md-card-title>\n    </md-card> \n</div>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-02-28T15:27:59+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-04-06T08:20:15+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1649233215575,"ct":1649233215575,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","c211ffaa-14f8-4439-9126-f42f65ac4424"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[],"previous":{"v":"1ed06d5cab48a545","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"}}},{"id":"d959d5e0-f62e-46b5-9b0c-290538e5dc15","v":"ff61e02b1029d0d3","cloneOf":{"id":"852b468f-86a3-4324-b4e1-9aa826d89bd9","v":"initial","text":"xcard"},"originalCloneOf":{"id":"852b468f-86a3-4324-b4e1-9aa826d89bd9","v":"initial","text":"xcard"},"previous":{"v":"initial"},"p":"3592ceee-ae9a-47a9-8488-7bad5b0d9ff5","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"xlist:custom","template":"<div ng-click=\"$root.$rsCancelEvent($event)\">\n    <md-card  style=\"min-height:150px\">\n       <md-card-title>\n          <md-card-title-text>\n            <span class=\"md-headline\">{{data.name}}</span>\n            <span class=\"md-subhead\">{{data.anschrift.street}} {{data.anschrift.streetNumber}}, {{data.anschrift.postalCode}} {{data.anschrift.city}}</span>\n          </md-card-title-text>\n          <md-button ng-click=\"document.executeCommand('start-edit-dialog-command')\">Bearbeiten</md-button>\n      </md-card-title>\n      <md-card-content style=\"border-top:1px solid #d0d0d0\">\n          <document-query query=\"f.id:bda81764-aee4-4be5-b3a6-8dfcf6ed7852 a:113bb701-a30f-43c8-871f-95cb0bb13b95\"  result=\"wartungsplaene\"></document-query>\n          <small>Zugewiesene Wartungen</small>\n          <div ng-repeat=\"wartungsplan in wartungsplaene\" rs-document-autosave=\"wartungsplan\" style=\"padding-top:10px\">\n              <strong>{{wartungsplan.data.name}}</strong>\n              <md-switch class=\"md-primary\"  ng-model=\"wartungsplan.data.wartungsfirma.id\" ng-true-value=\"'{{document.id}}'\" ng-false-value=\"''\">Zugewiesen</md-switch>\n          </div>\n      </md-card-content>\n    </md-card>\n</div>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-02-28T15:30:14+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-02-28T15:30:41+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1646062241623,"ct":1646062214215,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","3592ceee-ae9a-47a9-8488-7bad5b0d9ff5"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"00b0a909-dae6-489a-8ce7-a31508d1d01d","v":"79e29bdf27f7ae49","previous":{"v":"0e90d80dc5f15587"},"p":"c69a0c1c-6c53-40c2-87e8-5ace866bf1df","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"xnavigation-horizontal","applies":"","template":"<!-- <div class=\"_CSS__tile-current\"></div> -->\r\n<!-- &nbsp; -->\r\n<div class=\"_CSS-nav-bar\" v-if=\"locals.showNavbar\">\r\n  <div  v-for=\"item of locals.menuItems\"\r\n        v-if=\"item\"\r\n        class=\"_CSS-nav-item\"\r\n        :class=\"{ '_CSS-nav-item--active': item.data.target.id === params.currentDocumentId }\"\r\n        @click=\"controller.navigateTo(item)\"\r\n        :key=\"item.id + locals.refresh\">\r\n    <ae-design name=\"icon\" :document-id=\"item.id\"></ae-design>\r\n    <ae-design name=\"title\" :document-id=\"item.id\" v-show=\"!params.hideTitles\"></ae-design>\r\n  </div>\r\n</div>\r\n\r\n","css":"._CSS-nav-bar {\r\n  display: flex;\r\n  flex-direction:row;\r\n  align-items:center;\r\n  justify-content:space-between;\r\n  height:56px;\r\n  color: var(--ae-foreground-l2); \r\n  background-color: var(--ae-background-d1);\r\n  overflow-x: scroll;\r\n  -webkit-overflow-scrolling: touch;\r\n  overflow-y: hidden;\r\n  white-space:nowrap;\r\n  border-bottom: 1px solid var(--ae-foreground-l2); \r\n}\r\n\r\n._CSS-nav-item  {\r\n  /* min-width: auto; */\r\n  /* width:auto; */\r\n  height: 48px;\r\n  padding: 16px;\r\n  transition: transform 0.1s ease-in;\r\n  white-space: nowrap;\r\n  display: flex;\r\n  align-items:center;\r\n}\r\n\r\n._CSS-nav-item svg > *, ._CSS-nav-item use {\r\n  fill: #777 !important;\r\n}\r\n\r\n._CSS-nav-item > * + *{\r\n  margin-left: 8px;\r\n}\r\n\r\n/* TODO: refactor into ae-design 'icon' */\r\n._CSS-nav-item:hover,\r\n._CSS-nav-item--active,\r\n._CSS-nav-item:hover svg > *,\r\n._CSS-nav-item--active svg > *,\r\n._CSS-nav-item:hover use,\r\n._CSS-nav-item--active use {\r\n  background: var(--ae-primary-l1);\r\n  color: var(--ae-theme-text-primary-on-primary);\r\n  fill: white !important;\r\n}\r\n\r\n/* ._CSS-nav-item img {\r\n  filter: invert();\r\n  opacity: 0.5;\r\n} */\r\n\r\n/* ._CSS-nav-item:hover img {\r\n  filter: none;\r\n  opacity: 1;\r\n  transform: scale(1.05);\r\n}\r\n */\r\n","controller":"class Controller {\r\n  async init() {\r\n    locals.refresh = 0\r\n    locals.showNavbar = true\r\n    locals.menuItems = []\r\n\r\n    this.updateItems()\r\n\r\n    this.updateLocalsShowNavbar(params.currentDocumentId)\r\n    watchParam('currentDocumentId', (newCurrentDocumentId) => {\r\n      this.updateLocalsShowNavbar(newCurrentDocumentId)\r\n    })\r\n    \r\n    Aeppic.on('login', async () => {\r\n      this.updateItems()\r\n    })\r\n\r\n    Aeppic.on('logout', async () => {\r\n      this.updateItems()\r\n    })\r\n  }\r\n\r\n  async updateItems() {\r\n    const items = await Aeppic.getAll(data.menuItems)\r\n\r\n    const targetPromises = items.map(async (item) => {\r\n      if (item === null) {\r\n        return null\r\n      }\r\n\r\n      if (item.data.target && item.data.target.id) {\r\n        return Aeppic.get(item.data.target)\r\n      }\r\n\r\n      if (item.data.url) {\r\n        return item.data.url\r\n      }\r\n\r\n      return null\r\n    })\r\n\r\n    const targets = await Promise.all(targetPromises)\r\n\r\n    const visibleTargetsPromises = targets.map(async (target) => {\r\n      if (!target) {\r\n        return false\r\n      }\r\n\r\n      const targetIsUrl = typeof target === 'string'\r\n\r\n      if (targetIsUrl) {\r\n        return true\r\n      }\r\n\r\n      if (target.f.id === '81939b86-a48e-480e-afd1-cb2907568550') {\r\n        if (!Aeppic.Account || !Aeppic.Account.data.groups) {\r\n          return false\r\n        }\r\n\r\n        if (Aeppic.Account.data.isAdmin) {\r\n          return true\r\n        }\r\n\r\n        const securityAdministrators = await this._getSecurityAdministratorsGroups()\r\n\r\n        if (!securityAdministrators) {\r\n          return false\r\n        }\r\n\r\n        const isSecurityAdmin = securityAdministrators.find(group => Aeppic.Account.data.groups.find(accountGroup => accountGroup.id === group.id))\r\n\r\n        if (!isSecurityAdmin) {\r\n          return false\r\n        }\r\n      }\r\n\r\n      if (target.f.id === 'c818d93b-446d-494f-8120-a39db2bdf484') {\r\n        return Aeppic.Account && !Aeppic.Account.data.isGroupAccount\r\n      }\r\n\r\n      return true\r\n    })\r\n\r\n    const visibleTargets = await Promise.all(visibleTargetsPromises)\r\n\r\n    const visibileEntries = []\r\n\r\n    for (let i = 0; i < visibleTargets.length; i++) {\r\n      const visible = visibleTargets[i]\r\n\r\n      if (visible) {\r\n        visibileEntries.push(items[i])\r\n      }\r\n    }\r\n\r\n    locals.menuItems = visibileEntries\r\n\r\n    this.updateLocalsShowNavbar(params.currentDocumentId)\r\n    locals.refresh++\r\n  }\r\n  \r\n  async _getSecurityAdministratorsGroups() {\r\n    if (!document.a) {\r\n      return null\r\n    }\r\n\r\n    const securityFolders = (await Aeppic.find(`a:${document.id} AND f.id:81939b86-a48e-480e-afd1-cb2907568550`))\r\n\r\n    if (!securityFolders.length) {\r\n      return null\r\n    }\r\n\r\n    return Promise.all(securityFolders.map(s => Aeppic.get(s.data.securityGroup.id)))\r\n  }\r\n\r\n  updateLocalsShowNavbar(currentDocumentId) {\r\n    if (document.id === currentDocumentId) {\r\n      locals.showNavbar = true\r\n      return\r\n    }\r\n    locals.showNavbar = locals.menuItems.findIndex((item) => {\r\n      if (item.data.target.id === currentDocumentId) {\r\n        return true\r\n      }\r\n      return false\r\n    }) !== -1\r\n  }\r\n  \r\n  navigateTo(item) {\r\n    Aeppic.navigateTo(item.data.target.id)\r\n  }\r\n}","packages":[]},"locks":[],"created":{"at":"2018-02-23T08:47:30+01:00","by":"","from":"","client":"server"},"modified":{"at":"2022-02-23T13:17:41+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1645622261282,"ct":1519372050895,"a_depth":4,"a":["apps","8f8c9ed7-a7ed-4150-b162-92d6f19a05b0","526d9710-b2bd-4fa7-9341-d780ead102c1","c69a0c1c-6c53-40c2-87e8-5ace866bf1df"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"c9ee8b68-3124-486d-94d9-84fee0a4770f","v":"8e386eab617d1c33","cloneOf":{"id":"007c0f29-e34a-4611-ba81-52b0d30b2eff","v":"initial","text":""},"originalCloneOf":{"id":"007c0f29-e34a-4611-ba81-52b0d30b2eff","v":"initial","text":""},"previous":{"v":"initial"},"p":"816b2d0e-5158-4f0c-a5cf-6069bb76de69","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"xnext","template":"\n<md-card style=\"margin:0px\">\n    <rs-get-document id=\"{{data.vdma.id}}\" as=\"vdma\"></rs-get-document>\n    <rs-get-document id=\"{{document.p}}\" as=\"anlage\"></rs-get-document>\n    \n    <md-card-title>\n        <md-card-title-text layout=\"row\" layout-align=\"start center\">\n            <span class=\"md-headline\"><span style=\"opacity:0.65\">{{vdma.data.vdma}}</span> {{vdma.data.beschreibung}}</span>\n            <span flex></span>\n            <span style=\"font-weight:bold;padding-left:12px\">{{data.arbeiten.length}}&nbsp;</span> Arbeitsschritte\n        </md-card-title-text>\n    </md-card-title>\n    <md-card-content layout=\"column\"  ng-init=\"barcode=''\">\n        \n        <div layout=\"row\" layout-align=\"center center\">\n            <img width=\"300px\" ng-src=\"{{'api/docs/'+document.id+'/content?field=zeichnungLupe'}}\" class=\"md-card-image\" alt=\"Zoom\">\n            <span style=\"min-width:48px\"></span>\n            <div flex ng-style=\"{'background-image':'url('+'api/docs/'+document.id+'/content?field=zeichnung)', 'background-position':'center', 'background-size':'contain', 'background-repeat':'no-repeat', 'min-width':'200px', 'min-height':'200px' }\"></div>\n        </div>\n        <span flex style=\"width:15px;\"></span>\n        <div layout=\"row\" layout-align=\"center start\">\n            <rs-barcode-scanner as=\"scanner\" hide-close=\"true\"  on-scanned=\"anlage.executeCommand('2acb618f-2989-4f47-b0ed-61f301b44366', { barcode:code } )\" allow-native=\"true\"></rs-barcode-scanner>\n            <svg ng-click=\"scanner.scan()\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" style=\"width:100px; height: 80px; cursor: pointer; margin: 2px;fill:black\"><path d=\"M4 16v-8h2v8h-2zm12 0v-8h2v8h-2zm-9 0v-8h1v8h-1zm2 0v-8h2v8h-2zm3 0v-8h1v8h-1zm2 0v-8h1v8h-1zm5 0v-8h1v8h-1zm-1-10h4v4h2v-6h-6v2zm-16 4v-4h4v-2h-6v6h2zm4 8h-4v-4h-2v6h6v-2zm16-4v4h-4v2h6v-6h-2z\"></svg>\n            <span style=\"min-width:10px\"></span>\n            <md-input-container class=\"bigger md-block\" style=\"max-width:300px\">\n                <label class=\"bigger\">Barcode</label>\n                <input rs-scrollintoview-offset=\"150\" ng-model=\"barcode\" type=\"tel\" pattern=\"\\d*\" style=\"background:lightgray;font-size:32px;line-height:32px;height:46px;padding-left:5px\" ng-model-options=\"{ updateOn:'default blur', debounce: {default:250,blur:0} }\" ng-change=\"anlage.executeCommand('2acb618f-2989-4f47-b0ed-61f301b44366', { barcode:barcode } )\"/>\n                <span class=\"hint\" style=\"opacity:0.9;xfont-size:smaller\">Barcode des Wartungspunktes <strong>einscannen</strong> oder manuell eingeben. Ziffern sind ausreichend.</span>\n            </md-input-container>\n        </div>\n    </md-card-content>\n</md-card>\n\n<style>\n    md-input-container.bigger label.bigger {\n       transform:translate3d(0,36px,0)\n    }\n    md-input-container.bigger.md-input-has-value label.bigger {\n       transform:translate3d(0,0px,0)\n    }\n    md-input-container.bigger.md-input-focused label.bigger {\n       transform:translate3d(0,0px,0)\n    }\n</style>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-02-28T15:23:11+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-02-28T15:23:49+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1646061829552,"ct":1646061791357,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","816b2d0e-5158-4f0c-a5cf-6069bb76de69"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"02087e3d-ba22-461c-97a0-4a812a6b45a1","v":"83946ff631929d78","p":"c211ffaa-14f8-4439-9126-f42f65ac4424","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"xpage","template":"<div  rs-background-color=\"#F5F5F5\">\n    <div layout=\"column\" ng-init=\"scan=false\">\n        <rs-form document=\"document\" field-id=\"anlage\" style=\"margin-top:10px;display:block\"></rs-form>\n        \n        <document-list style=\"margin-top:10px\" flex list-id=\"2dab232c-2c8a-4aa4-b3f9-6023a7116161\" query-id=\"children-query\" filter=\"NOT data.status:2\" root-document-id=\"{{document.id}}\" option-empty=\"Keine Anlagen mehr zu warten\"></document-list>\n    <!--<rs-tabbed-form flex document=\"document\"></rs-tabbed-form>-->\n    </div>\n    <div ng-show=\"scan\" style=\"z-index:9999;position:fixed;top:0;left:0;right:0;bottom:0;background-color:#444;color:white;display:block;\" ng-click=\"scan=false;\">\n       <input type=\"text\" value=\"\" />\n    </div>\n    <br>\n   <!--  <rs-form document=\"document\" field-id=\"unterschrift\"></rs-form> -->\n</div>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-02-28T15:28:06+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-04-06T08:20:15+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1649233215576,"ct":1649233215576,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","c211ffaa-14f8-4439-9126-f42f65ac4424"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[],"previous":{"v":"d04ee987e0220f1a","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"}}},{"id":"05683e88-d823-4c07-b7de-546da8fe440f","v":"b736a979c4157e4c","cloneOf":{"id":"7c1b0079-8214-4d07-880e-b9df293497dd","v":"initial","text":""},"originalCloneOf":{"id":"7c1b0079-8214-4d07-880e-b9df293497dd","v":"initial","text":""},"previous":{"v":"initial"},"p":"816b2d0e-5158-4f0c-a5cf-6069bb76de69","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"xpage","template":"<div rs-background-color=\"#F5F5F5\" style=\"margin-bottom:300px\">\n    \n    <div layout=\"row\">\n        <div flex>\n            <rs-get-document id=\"{{data.vdma.id}}\" as=\"vdma\"></rs-get-document>\n            <h1 style=\"color:black;font-size:40px;text-shadow:1px 1px 2px rgba(0,0,0,0.3);\">{{vdma.data.beschreibung}}</h1>\n            <rs-get-document id=\"{{document.p}}\" as=\"parent\"></rs-get-document>\n            <h2 style=\"color:black;font-weight:normal\">Anlage: {{parent.data.nummer}} {{parent.data.name}} <smaller style=\"font-size:small\">{{parent.data.fabrikat}}</smaller></h2>\n        </div>\n       \n    </div>\n    <document-design ng-class=\"{'disable-clicks':ctrl.isSigned}\" ng-repeat=\"arbeit in document.data.arbeiten\" document-id=\"{{arbeit.id}}\" design=\"{{ parent.data.unterschrift.dataUrl ? 'work-completed':'work'}}\"></document-design>\n   <!-- <document-list flex query-id=\"children-query\" root-document-id=\"{{document.id}}\" list-id=\"4273dba1-12be-4ac1-87df-0120ce7d10ce\" sort=\"data.lfNr!\" option-design=\"{{ parent.data.unterschrift.dataUrl ? 'work-completed':'work'}}\" ></document-list> -->\n    <document-query query-id=\"children-query\" root-document-id=\"{{document.id}}\" result=\"aufgaben\"></document-query>\n    \n    {{ctrl.setAufgaben(aufgaben)}}\n    <br>\n    <br>\n    \n    <rs-form ng-show=\"ctrl.canSign(aufgaben)\" document=\"document\" field-id=\"unterschrift\"></rs-form>\n    <span ng-show=\"!ctrl.lastCanSign && !ctrl.isSigned\">Es müssen <strong>alle</strong> Arbeiten durchgeführt werden.<br><br> \n    Sollte ein <strong>Mangel</strong> festgestellt werden dann von 'In Ordnung' auf 'Mangel' stellen und diesen <strong>dokumentieren</strong>.</span>\n    <br><br>\n    <span ng-style=\"{'font-weight':ctrl.soon?'bold':'normal'}\">{{ctrl.minutesUntilTimeout}}</span> <span> werden alle Arbeitsschritte zurückgesetzt, sollten die Arbeiten nicht bis dahin durchgeführt worden sein.</span>\n    <div layout=\"row\" ng-show=\"ctrl.isSigned\">\n              \n        <md-button ng-if=\"data.unterschrift.dataUrl\" flex class=\"md-primary md-raised\" style=\"background-color:rgb(131, 128, 109);min-height:80px\" click-navigates-to=\"{{document.p}}\">\n            Zurück\n        </md-button>\n    \n        <md-button  flex class=\"md-primary md-raised\" style=\"display:none;background-color:rgb(131, 128, 109);min-height:80px\" ng-click=\"document.executeCommand('df0fb114-bd6a-43c4-a6c3-dccc3d1a2268')\">\n            Recheck\n        </md-button>\n    \n    </div>\n</div>\n","css":"","controller":"\nconstructor(){\n    this.lastCanSign = false;\n    \n    this.TIMEOUT_IN_SEC = 3*60*60;\n    \n    moment.locale('de');\n    this.timeoutAt = moment().add( this.TIMEOUT_IN_SEC, 'seconds');\n    iris.scheduleToExecute( this.TIMEOUT_IN_SEC, 'ctrl.timeout()'); \n}\n \nget timeleft(){\n   return this.timeoutAt.diff(moment(), 'seconds');\n     \n}\n\nget soon(){\n    var timeLeftInSeconds = this.timeoutAt.diff(moment(), 'seconds');\n    //log(timeLeftInSeconds); \n    return timeLeftInSeconds < 5*60;\n}\n\nget minutesUntilTimeout(){\n    var timeLeft = this.timeoutAt.fromNow();\n    return timeLeft;\n}\n\nsetAufgaben(aufgaben){\n    this._aufgaben = aufgaben;\n}\n\ntimeout(){\n    //debugger;\n    if(!this._aufgaben)\n        return;\n    \n    this._aufgaben.forEach(function(a){\n        a.data.io = 0;\n        a.save();\n    });\n     iris.navigate.back();\n}\n/*\nfinish() {\n    iris.dialog.inform('shall I finish this up ?').then( (response)=>{\n        if(response.ok){\n            iris.navigate.back();\n        }\n    })\n}\n*/\n\ncanSign(aufgaben){\n    this.lastCanSign = false;\n    \n    if(context.document.data.unterschrift.dataUrl)\n        return false;\n    \n    for(var i=0;i<aufgaben.length;i++){\n        var aufgabe = aufgaben[i];\n        \n        var performed = (aufgabe.data.io > 0);\n        \n        if(!performed){\n             log('Arbeit nicht durchgefuehrt')\n            return false;\n        }\n        \n        var hasError = aufgabe.data.io === 1;\n        \n        if(hasError){\n            if(!aufgabe.data.bemerkungen){\n                log('Arbeit mit Fehler nicht dokumentiert')\n                return false;\n            }\n        }\n    }\n        \n    this.lastCanSign = true;\n    return true;\n}\n\nget isSigned(){\n    if(context.document.data.unterschrift)\n        return !!context.document.data.unterschrift.dataUrl;\n    else\n        return false;\n}\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-02-28T15:23:09+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-02-28T15:24:06+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1646061846772,"ct":1646061789791,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","816b2d0e-5158-4f0c-a5cf-6069bb76de69"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"196416f3-1b44-47d4-905d-7c6fd9572d99","v":"4e0ffd5f17d921a5","cloneOf":{"id":"afb04213-7b61-4cc4-8c67-86fe5effe21d","v":"initial","text":""},"originalCloneOf":{"id":"afb04213-7b61-4cc4-8c67-86fe5effe21d","v":"initial","text":""},"previous":{"v":"initial"},"p":"522ca40d-810b-4021-835f-beeace3af7fa","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"xpage","template":"<style>\n   .wp-list:nth-child(odd) {\n       background: rgba(0,0,0,0.1);\n   } \n   \n   @media print {\n       .wp-list {\n           page-break-inside:avoid;\n       }\n   }\n   \n   .wartungsplan * {\n       -webkit-user-select:auto !important;\n   }\n</style>\n<div layout-padding layout=\"column\" class=\"wartungsplan\">\n    <document-query root-document-id=\"{{document.id}}\" query-id=\"children-query\" filter=\"f.id:aba45b20-cee3-4ddc-ad24-0043c19e6ff5\" result=\"anlagen\"></document-query>\n    <div ng-repeat=\"anlage in anlagen\" style=\"margin-top:32px\">\n        <h2>{{anlage.data.name}}</h2>\n        <document-query root-document-id=\"{{anlage.id}}\" query-id=\"children-query\" filter=\"f.id:3d68b0ae-4bd6-4de7-aa33-c69b82a5f27a\" result=\"wartungspunkte\" sort=\"data.LfNr\"></document-query>\n        <div class=\"wp-list\" ng-repeat=\"wp in wartungspunkte\" layout=\"row\" layout-padding>\n            <span>{{wp.data.LfNr}}</span>\n            <rs-get-document id=\"{{wp.data.vdma.id}}\" as=\"vdma\"></rs-get-document>\n            <strong style=\"white-space:nowrap\">{{wp.data.barcode}}</strong>\n            <span>{{vdma.data.vdma}} {{vdma.data.beschreibung}}</span>\n            <span flex></span>\n            <img iris-src=\"{{wp.data.zeichnung.thumbnailUrl}}\" style=\"min-width:96px;max-height:96px\">\n            <img iris-src=\"{{wp.data.zeichnungLupe.thumbnailUrl}}\" style=\"min-width:96px;max-height:96px\">\n        </div>\n    </div>\n</div>\n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-02-28T15:31:33+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-02-28T15:32:03+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1646062323855,"ct":1646062293018,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","522ca40d-810b-4021-835f-beeace3af7fa"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"21cb0016-ce51-4af9-a532-4b188a11078a","v":"597aa3b120174dc3","previous":{"v":"initial"},"p":"3d678f2a-65f5-4dc1-a643-c5998fa33f32","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"xpage","template":"<div layout=\"column\" rs-background-color=\"#F5F5F5\" style=\"color:white\">\n    <md-card style=\"background-color:#F5F5F5;box-shadow:none;border:none;margin:0px 0px\">\n        <md-card-header>\n          <md-card-avatar>\n            <div style=\"background: url('api/docs/{{document.id}}/thumbnail?field=bild');min-height:40px; background-position: center; background-size:cover;border-radius:20px;\">\n            </div>\n          </md-card-avatar>\n          <md-card-header-text>\n            <span class=\"md-title\">{{document.data.name}}</span>\n            <span class=\"md-subhead\">{{document.data.adresse.street}} {{document.data.adresse.streetNumber}}, {{document.data.adresse.postalCode}} {{document.data.adresse.city}}</span>\n          </md-card-header-text>\n        </md-card-header>\n        <div layout=\"row\" layout-align=\"end start\" style=\"background: url('api/docs/{{document.id}}/content?field=kartenbild');min-height:200px; background-position: center; background-size:cover\">\n          <!--   <md-button class=\"md-fab md-mini md-primary\" title=\"Navigieren\" aria-label=\"Karte\" target=\"_blank\" ng-href=\"http://maps.google.de?q={{document.data.adresse.street}} {{document.data.adresse.streetNumber}}, {{document.data.adresse.postalCode}} {{document.data.adresse.city}}\">\n              <md-icon md-font-set=\"mi\">navigation</md-icon>\n          </md-button> -->\n        </div>\n    <!-- <md-card-title>\n      <md-card-title-text>\n        <span class=\"md-headline\">3In-card actions</span>\n        <span class=\"md-subhead\">Description</span>\n      </md-card-title-text>\n    </md-card-title> -->\n        <md-card-content>\n          <p>\n            {{document.data.beschreibung}}\n          </p>\n        </md-card-content>\n    <!--<md-card-actions layout=\"row\" layout-align=\"end center\">-->\n    <!--   <md-button ng-disabled=\"true\">Protokolle</md-button>-->\n    <!--   <md-button class=\"md-primary md-raised\">Wartung</md-button>-->\n    <!--</md-card-actions>-->\n    </md-card>\n    <br>\n    <br>\n    \n    <div ng-if=\"ctrl.shouldShowCompanyList\">\n    <h1 style=\"color:black\">Wartungsfirmen<br><span style=\"font-size:14px;color:#222;text-shadow:none\">Wählen Sie Ihre Firma aus, für die Sie Wartungen anschauen oder vornehmen wollen</span></h1>\n    </div>\n    <document-list ng-if=\"ctrl.shouldShowCompanyList\" list-id=\"2dab232c-2c8a-4aa4-b3f9-6023a7116161\" query-id=\"children-query\" root-document-id=\"a4d1aadf-3555-4367-8995-a8b95aedab01\" style=\"margin:0px -8px\" ></document-list>\n    <rs-login as=\"login\"></rs-login>\n    <md-button ng-show=\"ctrl.shouldShowLoginButton\" class=\"md-raised md-primary\" style=\"background-color:#64748e;min-height:100px\" ng-click=\"login.adhocLogin($event,{accountTemplateId:'78257fe3-2e53-4893-8900-8e5113d1b49c'})\">\n        Anmelden\n    </md-button>\n    <md-button ng-show=\"ctrl.shouldShowGotoHomeButton\" class=\"md-raised md-primary\" style=\"background-color:#64748e;min-height:100px\" ng-click=\"ctrl.goHome()\">\n        Anmelden\n    </md-button>\n</div>","css":"","controller":"get shouldShowCompanyList(){\n    if( iris.security.isGroupAccount )\n        return false;\n    \n    if( this._isAdhocLogin(iris.security.account) )\n        return false;\n        \n    if( iris.security.isAdmin )\n        return true;\n        \n    return true;\n}\n\ngoHome(){\n    iris.security.navigateHome();\n}\n\nget shouldShowLoginButton(){\n    return !this.shouldShowCompanyList && !this._isAdhocLogin(iris.security.account);\n}\n\nget shouldShowGotoHomeButton(){\n    return !this.shouldShowCompanyList && this._isAdhocLogin(iris.security.account);\n}\n\n_isAdhocLogin(account){\n    return account.data.name.match( /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/gi ) !== null;\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-02-28T15:26:01+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-02-28T15:26:10+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1646061970939,"ct":1646061961728,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","3d678f2a-65f5-4dc1-a643-c5998fa33f32"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"368906ce-6be6-4f25-ab1f-def4e59264f3","v":"initial","cloneOf":{"id":"bcc46b4b-e902-4483-8cb9-4107ba2658e5","v":"0b68fb6ca1e45c88","text":"xpage"},"originalCloneOf":{"id":"bcc46b4b-e902-4483-8cb9-4107ba2658e5","v":"0b68fb6ca1e45c88","text":"xpage"},"p":"b8604959-a785-48cd-8ff4-e886afb38d1d","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"xpage","applies":"","template":"\n<md-content flex layout-padding>\n    <h1>Abnahmeprotokoll</h1>\n    <rs-get-document id=\"{{document.data.geschaedigter.id}}\" as=\"geschaedigter\" layout=\"column\">\n        \n        <rs-load-form-info document=\"geschaedigter\" form-info=\"formInfo1\">\n            <h2>Geschädigter</h2>\n            <rs-form document=\"geschaedigter\" form-info=\"formInfo1\" section=\"formInfo1.sections[0]\" with-subsections=\"false\" readonly=\"true\"></rs-form>\n            <!-- rs-form document=\"geschaedigter\" form-info=\"formInfo1\" section-id=\"Details\" readonly=\"true\"></rs-form -->\n        </rs-load-form-info>\n        \n        <h2 style=\"margin-top:30px\">Zählerstände </h2>\n        <div class=\"rs-form-cell-readonly\">\n            <strong layout=\"row\">\n                <div flex=\"40\" layout=\"row\" layout-align=\"start end\">Gerät:</div>\n                <div flex=\"60\" layout=\"column\">\n                    <div layout=\"row\" layout-align=\"start\">Betriebstunden:</div>\n                    <div layout=\"row\">\n                        <div flex=\"33\">Aufbau</div>\n                        <div flex=\"33\">Abbau</div>\n                        <div flex=\"33\">Diff</div>\n                    </div>\n                </div>\n            </strong>\n        </div>\n        <div>\n            <div ng-repeat=\"stand in geschaedigter.data.geraetezaehlerstaende\" layout=\"row\" style=\"margin-bottom:4px\" class=\"rs-form-cell-readonly\">\n                <rs-get-document id=\"{{stand.id}}\" as=\"stand\" layout=\"row\" flex>\n                    <div flex=\"40\" layout=\"column\">\n                        <rs-get-document id=\"{{stand.data.geraet.id}}\" as=\"geraet\" layout=\"column\">\n                            <div>{{geraet.data.seriennummer}}</div>\n                            <div layout=\"row\" flex>\n                                <div flex=\"45\">von:</div>\n                                <div flex>{{stand.data.aufbaudatum | date:'dd.MM.yy'}}</div>\n                            </div>\n                            <div layout=\"row\" flex>\n                                <div flex=\"45\">bis:</div>\n                                <div flex>{{stand.data.abbaudatum | date:'dd.MM.yy'}}</div>\n                            </div>\n                            <div layout=\"row\" flex>\n                                <div flex=\"45\">Leistung:</div>\n                                <div flex>{{geraet.data.verbrauchswert}} kw/h</div>\n                            </div>\n                            <div layout=\"row\" flex>\n                                <div flex=\"45\">Verbr.:</div>\n                                <div flex>{{stand.data.verbrauch}} kw</div>\n                            </div>\n                        </rs-get-document>\n                    </div>\n                    <div flex=\"20\">{{stand.data.aufbauzaehlerstand}}</div>\n                    <div flex=\"20\">{{stand.data.abbauzaehlerstand}}</div>\n                    <div flex=\"20\">{{stand.data.betriebsstunden}}</div>\n                </rs-get-document>\n            </div>\n        </div>\n        \n        <h2 style=\"margin-top:30px\">Messprotokoll</h2>\n        <div layout=\"column\" flex>\n            <div ng-repeat=\"raumRef in geschaedigter.data.raeume\">\n                <rs-get-document id=\"{{raumRef.id}}\" as=\"raum\">\n                    <div ng-repeat=\"stelleRef in raum.data.feuchtigkeitsstellen\" style=\"margin-bottom:4px\" class=\"rs-form-cell-readonly\">\n                        <rs-get-document id=\"{{stelleRef.id}}\" as=\"stelle\">\n                            <h3>{{raum.data.name}} Punkt {{($index+1)}} <small ng-if=\"stelle.data.kommentar\">({{stelle.data.kommentar}})</small></h3>\n                            <rs-get-document ng-repeat=\"messungRef in stelle.data.messungen\" id=\"{{messungRef.id}}\" as=\"messung\"  layout=\"row\">\n                                <div flex=\"40\" layout=\"row\">{{messung.created.at | date : 'dd.MM.yyyy - HH:mm'}}</div>\n                                <div flex>{{messung.data.wert}}</div>\n                            </rs-get-document>\n                        </rs-get-document>\n                    </div>\n                </rs-get-document>\n            </div>\n        </div>\n    </rs-get-document>\n    \n    <rs-load-form-info document=\"document\" form-info=\"formInfo2\">\n        <rs-form document=\"document\" form-info=\"formInfo2\" section=\"formInfo2.sections[1]\" readonly=\"{{document.data.unterschrift.size !== 0? 'true' : 'false'}}\"></rs-form>\n    </rs-load-form-info>\n</md-content>","css":"","controller":"","packages":[]},"locks":[],"created":{"at":"2019-04-11T08:43:39+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2019-04-11T08:43:39+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1554972219796,"ct":1554972219796,"a_depth":4,"a":["apps","b791df37-6eef-4a3e-9066-1b79e0bdad31","35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f","b8604959-a785-48cd-8ff4-e886afb38d1d"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"630e3469-84ae-4516-b804-7a13a691bf53","v":"a330ad281ee28f56","previous":{"v":"initial"},"p":"7da8412c-01e9-4a42-a527-6339e2c25488","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"xpage","template":"<document-list flex layout=\"row\" list-id=\"c4f3b95c-0f80-469c-ba13-b064f9bbecfd\" query-id=\"a679a6bb-b528-44eb-b4fd-f6f32ef45064\" root-document-id=\"{{document.id}}\" ></document-list>\n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-02-28T15:26:27+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-02-28T15:26:31+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1646061991577,"ct":1646061987737,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","7da8412c-01e9-4a42-a527-6339e2c25488"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"9b044021-4575-4fc7-bcbd-e1ba9000d25e","v":"047c314653bec72c","previous":{"v":"4554e5a15bf8d599"},"p":"b8604959-a785-48cd-8ff4-e886afb38d1d","f":{"id":"design-form","v":"24435d748c76f819","text":"Design"},"data":{"name":"xpage","template":"<template v-if=\"locals.geschaedigter\">\n<h1>Abnahmeprotokoll</h1>\n\n\n<h2>Geschädigter</h2>\n<ae-layout layout-id=\"a34ed21c-7246-45ae-9f9c-9e6148ad92cf\" :param-document=\"locals.geschaedigter\" :param-no-subsections=\"true\" :param-readonly=\"true\"></ae-layout>\n\n<h2 style=\"margin-top:30px\">Zählerstände</h2>\n\n<div v-for=\"stand of locals.geschaedigter.data.geraetezaehlerstaende\">\n  <ae-query :search=\"'id:' + stand.id\" v-slot=\"geraeteScope\">\n    <ae-design name=\"title\" :document=\"geraeteScope.documents[0]\"></ae-design>\n    <ae-query :search=\"'id:' + geraeteScope.documents[0].id\" v-slot=\"standScope\">\n      <ae-design name=\"title\" :document=\"standScope.documents[0].data.geraet\"></ae-design>\n    </ae-query>\n  </ae-query>\n</div> \n\n</template>\n\n<!-- <md-content flex layout-padding>\n    <rs-get-document id=\"{{document.data.geschaedigter.id}}\" as=\"geschaedigter\" layout=\"column\">\n        \n        <rs-load-form-info document=\"geschaedigter\" form-info=\"formInfo1\">\n            <rs-form document=\"geschaedigter\" form-info=\"formInfo1\" section=\"formInfo1.sections[0]\" with-subsections=\"false\" readonly=\"true\"></rs-form>\n        </rs-load-form-info>\n        \n        <h2 style=\"margin-top:30px\">Zählerstände </h2>\n        <div class=\"rs-form-cell-readonly\">\n            <strong layout=\"row\">\n                <div flex=\"40\" layout=\"row\" layout-align=\"start end\">Gerät:</div>\n                <div flex=\"60\" layout=\"column\">\n                    <div layout=\"row\" layout-align=\"start\">Betriebstunden:</div>\n                    <div layout=\"row\">\n                        <div flex=\"33\">Aufbau</div>\n                        <div flex=\"33\">Abbau</div>\n                        <div flex=\"33\">Diff</div>\n                    </div>\n                </div>\n            </strong>\n        </div>\n        <div>\n            <div ng-repeat=\"stand in geschaedigter.data.geraetezaehlerstaende\" layout=\"row\" style=\"margin-bottom:4px\" class=\"rs-form-cell-readonly\">\n                <rs-get-document id=\"{{stand.id}}\" as=\"stand\" layout=\"row\" flex>\n                    <div flex=\"40\" layout=\"column\">\n                        <rs-get-document id=\"{{stand.data.geraet.id}}\" as=\"geraet\" layout=\"column\">\n                            <div>{{geraet.data.seriennummer}}</div>\n                            <div layout=\"row\" flex>\n                                <div flex=\"45\">von:</div>\n                                <div flex>{{stand.data.aufbaudatum | date:'dd.MM.yy'}}</div>\n                            </div>\n                            <div layout=\"row\" flex>\n                                <div flex=\"45\">bis:</div>\n                                <div flex>{{stand.data.abbaudatum | date:'dd.MM.yy'}}</div>\n                            </div>\n                            <div layout=\"row\" flex>\n                                <div flex=\"45\">Leistung:</div>\n                                <div flex>{{geraet.data.verbrauchswert}} kw/h</div>\n                            </div>\n                            <div layout=\"row\" flex>\n                                <div flex=\"45\">Verbr.:</div>\n                                <div flex>{{stand.data.verbrauch}} kw</div>\n                            </div>\n                        </rs-get-document>\n                    </div>\n                    <div flex=\"20\">{{stand.data.aufbauzaehlerstand}}</div>\n                    <div flex=\"20\">{{stand.data.abbauzaehlerstand}}</div>\n                    <div flex=\"20\">{{stand.data.betriebsstunden}}</div>\n                </rs-get-document>\n            </div>\n        </div>\n        \n        <h2 style=\"margin-top:30px\">Messprotokoll</h2>\n        <div layout=\"column\" flex>\n            <div ng-repeat=\"raumRef in geschaedigter.data.raeume\">\n                <rs-get-document id=\"{{raumRef.id}}\" as=\"raum\">\n                    <div ng-repeat=\"stelleRef in raum.data.feuchtigkeitsstellen\" style=\"margin-bottom:4px\" class=\"rs-form-cell-readonly\">\n                        <rs-get-document id=\"{{stelleRef.id}}\" as=\"stelle\">\n                            <h3>{{raum.data.name}} Punkt {{($index+1)}} <small ng-if=\"stelle.data.kommentar\">({{stelle.data.kommentar}})</small></h3>\n                            <rs-get-document ng-repeat=\"messungRef in stelle.data.messungen\" id=\"{{messungRef.id}}\" as=\"messung\"  layout=\"row\">\n                                <div flex=\"40\" layout=\"row\">{{messung.created.at | date : 'dd.MM.yyyy - HH:mm'}}</div>\n                                <div flex>{{messung.data.wert}}</div>\n                            </rs-get-document>\n                        </rs-get-document>\n                    </div>\n                </rs-get-document>\n            </div>\n        </div>\n    </rs-get-document>\n    \n    <rs-load-form-info document=\"document\" form-info=\"formInfo2\">\n        <rs-form document=\"document\" form-info=\"formInfo2\" section=\"formInfo2.sections[1]\" readonly=\"{{document.data.unterschrift.size !== 0? 'true' : 'false'}}\"></rs-form>\n    </rs-load-form-info>\n</md-content> -->","css":"","controller":"async init() {\n  locals.geschaedigter = await Aeppic.get(document.p)\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2019-04-11T08:45:16+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2019-04-11T09:32:54+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1554975174825,"ct":1554972316690,"a_depth":4,"a":["apps","b791df37-6eef-4a3e-9066-1b79e0bdad31","35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f","b8604959-a785-48cd-8ff4-e886afb38d1d"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"a2b30285-c577-4b89-97a2-a02e6951e234","v":"59af2a84b479c0c7","previous":{"v":"f74468f91f731475"},"p":"d2ac3563-3c3f-4f02-b923-9b67abf98d10","f":{"id":"design-form","v":"24435d748c76f819","text":"Design"},"data":{"name":"xpage","template":"<div class=\"_CSS-container\" @toolbar=\"controller.toolbarEvent($event.detail)\">\n  <ae-form  ref=\"form\"\n            :document=\"document\" \n            :readonly=\"controller.isReadonly\"\n            :auto-save=\"params.autoSave || false\"\n            class=\"_CSS-form\"\n  ></ae-form>\n</div>\n\n<ae-design name=\"history-card\" :document=\"document\"></ae-design>\n\n<!-- <ae-form v-if=\"Aeppic.Device === 'Desktop'\"\n  ref=\"form\"\n  :document=\"document\" \n  :readonly=\"controller.isReadonly\"\n  :auto-save=\"params.autoSave || false\"\n  @toolbar.native=\"controller.toolbarEvent($event.detail)\"></ae-form>\n<ae-form v-else\n  ref=\"form\"\n  layout-id=\"acd83791-970f-4b6e-bebd-d7f3bca52014\"\n  :auto-save=\"true\"\n  :document=\"document\"\n  :readonly=\"controller.isReadonly\"\n  @toolbar.native=\"controller.toolbarEvent($event.detail)\"></ae-form> -->\n","css":"._CSS-container {\n  max-width: var(--ae-page-max-width);\n  margin: auto;\n  // height: 100%;\n}\n\n._CSS-form {\n  height: 100%;\n}","controller":"class Controller {\n  init() {\n    setTimeout(() => {\n     startEditing()\n    })\n\n    // this.getHistory()\n  }\n\n  async getHistory() {\n    const history = await Aeppic.fetch(`/api/docs/${document.id}/history`) \n    const documents = (await history.text()).trim().split('\\n')\n    console.log(documents)\n  }\n\n  toolbarEvent(eventType) {\n    if (eventType === 'save') {\n      save()\n      return\n    }\n    if (eventType === 'reset') {\n      resetEdits()\n      return\n    }\n  }\n\n  get isReadonly() {\n    if (typeof params.readonly === 'boolean') {\n      return params.readonly\n    }\n\n    return false\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2019-03-14T11:22:29+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2019-05-13T13:59:36+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1557755976716,"ct":1552562549797,"a_depth":4,"a":["apps","144e85c0-d7f9-4b20-8928-be30f0c78bda","8e6ee7d3-9122-4a2e-8aaf-9fb3bd204b23","d2ac3563-3c3f-4f02-b923-9b67abf98d10"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"a38e01d7-00af-497e-bea5-aea87c69c5c3","v":"08023a1111f8b6e7","previous":{"v":"initial"},"p":"096cfb8f-bb8e-4a6e-87c2-2d1fac5e822a","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"xpage","template":"<div rs-background-color=\"#f1f1f1\">\n    <document-list flex query-id=\"children-query\" list-id=\"simple-list\" root-document=\"document\" option-design=\"list:custom,list\"></document-list>\n</div>            ","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-02-28T15:31:10+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-02-28T15:31:15+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1646062275316,"ct":1646062270790,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","096cfb8f-bb8e-4a6e-87c2-2d1fac5e822a"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","59edbdbc-2cab-426a-bb42-6e57c5158e4f","3be7e887-1bcd-4c3c-979f-b20a986c4c48","0b4fe19c-a550-46b7-ada0-6813a60e14bc"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"dc62be1b-5866-479e-96e0-494651211779","text":"xpage","v":"6df4a313414b1dbf"},"created":{"at":"2020-07-01T14:40:04+00:00","backedBy":null,"by":"870fac1f-b0d7-4925-b191-a43166960419","client":"server","from":"","impersonatedBy":null},"ct":1593614404653,"data":{"applies":"","controller":"class Controller {\n  init() {\n    locals.filter = ''\n  }\n}","css":"._CSS {\n  padding: var(--bp-page-content-padding)\n}\n\n._CSS--filtered {\n    color: darkorange;\n    font-size: 14px;\n}\n\n._CSS-list {\n  list-style-type: none;\n}","name":"xpage","packages":[],"template":"<div class=\"ae-col\">\n\t<!-- <div class=\"ae-row\">\n\t\t<div class=\"mdc-textfield mdc-textfield--box mdc-textfield--with-leading-icon\" style=\"width:100%\">\n\t\t\t<i class=\"material-icons mdc-textfield__icon\">search</i></label>\n\t\t\t<input type=\"text\" id=\"id('search')\" class=\"mdc-textfield__input\" placeholder=\"Suchen\" v-model=\"locals.filter\">\n\t\t</div>\n\t</div> -->\n\n\t<div class=\"ae-row\">\n\t\t<h1 v-if=\"locals.filter\">Projekte <span class=\"_CSS--filtered\" :title=\"'Gefiltert nach' + locals.filter\">Gefiltert</span>\n\t\t</h1>\n\t\t<ae-list apply-global-filter flex list-id=\"2e798091-303f-406b-a42a-93aa1cd8425c\" query-id=\"f812861f-68c8-4818-9972-be7b5474c9b1\"\n\t\t page-size=\"100\" :root-document-id=\"document.id\" :filter=\"locals.filter + '*'\" sort=\"data.bis! ASC, data.name.sort ASC\"\n\t\t :params=\"{ emptyText: 'keine passende Projekte gefunden', design: 'card,list' }\"></ae-list>\n\t</div>\n\n\t<div class=\"ae-row\" v-if=\"locals.filter\">\n\t\t<h1>Aufgaben <span class=\"_CSS--filtered\" :title=\"'Gefiltert nach' + locals.filter\">Gefiltert</span></h1>\n\t\t\t<ae-list apply-global-filter list-id=\"2e798091-303f-406b-a42a-93aa1cd8425c\" query-id=\"b83046c8-9616-4287-b518-38992f3562ef\"\n\t\t\t page-size=\"100\" :root-document-id=\"document.id\" :filter=\"locals.filter\" sort=\"data.bis! ASC, data.name.sort ASC\"\n\t\t\t :params=\"{ emptyText: 'keine passenden Aufgaben gefunden', limit: 10, design: 'search-card,card,list' }\"></ae-list>\n\t\t</h1>\n\t</div>\n\n\t<div class=\"ae-row\" v-if=\"locals.filter\">\n\t\t<h1>Verantwortliche <span class=\"_CSS--filtered\" :title=\"'Gefiltert nach' + locals.filter\">Gefiltert</span></h1>\n\t\t<ae-query :root-document-id=\"document.id\" query-id=\"7c7c140a-74fd-4449-b798-1ac5c247c202\" sort=\"data.bis asc, created.at! desc\">\n\t\t\t<template slot-scope=\"verantwortlicheResult\">\n          <!-- TODO: limit  -->\n\t\t\t\t<!-- <ul class=\"list-unstyled\" ng-init=\"mitarbeiterLimit=3\"> -->\n\t\t\t\t<ul class=\"_CSS-list\">\n          <!-- TODO: limit  -->\n\t\t\t\t\t<!-- <li v-for=\"verantwortlicher in verantwortliche | limitTo:mitarbeiterLimit\" style=\"margin-top:8px\"> -->\n\t\t\t\t\t<li v-for=\"verantwortlicher in verantwortlicheResult.documents\">\n\t\t\t\t\t\t<ae-design class=\"hide-document-label\" :document=\"verantwortlicher\" name=\"title,inline\"></ae-design>\n\t\t\t\t\t\t<ae-list list-id=\"2e798091-303f-406b-a42a-93aa1cd8425c\" params=\"{ design: 'search-card,card,list', limit: 10 }\" query-id=\"descendants\"\n\t\t\t\t\t\t page-size=\"1000\" :root-document-id=\"document.id\" sort=\"f.id, data.bis! ASC, data.name.sort ASC\" :filter=\"'data.verantwortlich.id:' + verantwortlicher.id\"></ae-list>\n\t\t\t\t\t</li>\n\t\t\t\t</ul>\n\n          <!-- TODO: limit  -->\n        <!-- <button class=\"mdc-button\" v-if=\"verantwortlicheResult.documents.length > verantwortlicheLimit\" @click=\"verantwortlicheLimit = verantwortlicheLimit + 5\">Weitere Verantwortliche anzeigen</button> -->\n\t\t\t\t<span v-if=\"verantwortlicheResult.documents.length===0\">keine Person unter diesem Namen</span>\n\t\t\t</template>\n\t\t</ae-query>\n\t</div>\n</div>"},"f":{"id":"design-form","text":"Design","v":"e3fe9ece11aabc5e"},"id":"aa08df04-c14b-450d-ba66-151ae9bc5192","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-07-03T11:59:51+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"dc62be1b-5866-479e-96e0-494651211779","text":"xpage","v":"6df4a313414b1dbf"},"p":"0b4fe19c-a550-46b7-ada0-6813a60e14bc","previous":{"v":"initial"},"stamps":[],"t":1751543991138,"v":"1b9ea0771e707e0b"},{"id":"b2a9d060-db38-4b03-a766-8baf36b0760a","v":"6c6b2fb9f6d46b32","cloneOf":{"id":"caea7623-8b2d-44f6-9e83-12a24aa377a4","v":"initial","text":""},"originalCloneOf":{"id":"caea7623-8b2d-44f6-9e83-12a24aa377a4","v":"initial","text":""},"previous":{"v":"initial"},"p":"5150f703-e93a-4e54-a998-a06c0e962e71","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"xpage","template":"<style>\n  .sctFadeInOut {\n    border-left: 3px solid #c1c8d3 !important;\n    animation: sctFadeInOut 2s infinite;\n  }\n  @keyframes sctFadeInOut {\n    0% {opacity: 0.5;}\n    50% {opacity: 1;}\n    100% {opacity: 0.5;}\n  } \n  .done smaller {\n    opacity: 0.5;\n  }\n  .done strong {\n    opacity: 0.5;\n  \n  }\n  .done span {\n    opacity: 0.5;\n    xtext-decoration:line-through;\n  }\n  .done-marker {\n      visibility:hidden;\n  }\n  .done .done-marker {\n      visibility:visible;\n  }\n</style>\n<div xlayout=\"column\" rs-background-color=\"#F5F5F5\" rs-document-autosave=\"document\" style=\"margin-bottom:50px;\">\n    <div layout=\"row\" layout-align=\"start center\">\n        <span style=\"color:black;black-space:nowrap;font-size:40px;text-shadow:1px 1px 1px black\">{{document.data.name}}</span>\n        <span flex></span>\n        <div style=\"xbackground:rgba(255,255,255,0.7);color:black;xtext-shadow:1px 1px 1px black\" layout-align=\"center end\" layout=\"column\">\n            <div style=\"xcolor:#c1c8d3\">\n                <span style=\"xbackground:rgba(255,255,255,0.7)\">{{document.data.nummer}}</span> <span style=\"font-size:16px;xbackground:rgba(255,255,255,0.7)\">{{document.data.raum}}</span>\n            </div>\n            <span style=\"xcolor:#c1c8d3;font-size:16px\">{{document.data.fabrikat}}</span>\n        </div>\n    \n    </div>\n    \n    <h3 ng-if=\"offeneAnlagenteile.length>0\" style=\"margin:30px 0 10px 0;border-bottom: 3px solid #bdbdbd;\">Nächster Wartungspunkt</h3>\n    \n    <document-query query-id=\"f54efca9-5f18-41b5-9d2e-d200f6f8b50d\" result=\"offeneAnlagenteile\" root-document-id=\"{{document.id}}\"></document-query>\n    <document-design ng-if=\"offeneAnlagenteile.length>0\" document=\"offeneAnlagenteile[0]\" design=\"next,list\"></document-design>\n  <!--<rs-tabbed-form document=\"document\"></rs-tabbed-form>-->\n  <!--<h2>Anlagenteile</h2>-->\n    \n    <h3 style=\"margin-top:30px;margin-bottom:14px;border-bottom: 3px solid #bdbdbd;padding:0\">Übersicht aller Wartungspunkte</h3>\n    <document-design ng-if=\"!document.data.unterschrift.dataUrl\" ng-repeat=\"anlagenteil in document.data.anlagenteile\" document-id=\"{{anlagenteil.id}}\" design=\"list\"></document-design>\n    <document-design ng-if=\"document.data.unterschrift.dataUrl\" click-navigates-to=\"{{at.id}}\" ng-repeat=\"at in document.data.anlagenteile\" document-id=\"{{at.id}}\" design=\"list\"></document-design>\n   <!--  <document-list flex style=\"margin:16px 0;\" xlayout-padding list-id=\"ebd8e341-f44e-4ef1-9a5a-66c0ad8a8153\" query-id=\"children-query\" sort=\"data.LfNr\" root-document=\"document\"></document-list> -->\n\n    <!-- <h3 style=\"margin:30px 0 10px 0;border-bottom: 3px solid #bdbdbd;\">Abschluss</h3> -->\n    <!--<rs-form document=\"document\" field-id=\"unterschrift\" style=\"margin-top:10px;display:block\"></rs-form> -->\n    <div layout=\"row\" style=\"margin-top:30px\">\n        <md-button class=\"md-raised md-primary\" style=\"background:#929eb2;min-height:80px;margin:0\" flex click-navigates-to=\"{{document.p}}\">Zurück zur Anlagenübersicht</md-button>\n    </div>\n</div>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-02-28T15:21:57+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-02-28T15:22:12+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1646061732789,"ct":1646061717476,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","5150f703-e93a-4e54-a998-a06c0e962e71"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"b352732f-0075-416a-98e6-3078ca56d404","v":"8ee773e24a2dbe7c","previous":{"v":"0066a1faded50fe4"},"p":"f8bb1979-c159-4464-97e6-ae3145caf0c5","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"xpage","applies":"","template":"<ae-form v-if=\"Aeppic.Device === 'Desktop'\"\n  ref=\"form\"\n  :document=\"document\"\n  :readonly=\"false\"\n  @toolbar.native=\"controller.toolbarEvent($event.detail)\"></ae-form>\n<ae-form v-else\n  ref=\"form\"\n  layout-id=\"acd83791-970f-4b6e-bebd-d7f3bca52014\"\n  :auto-save=\"true\"\n  :document=\"document\"\n  :readonly=\"false\"\n  @toolbar.native=\"controller.toolbarEvent($event.detail)\"></ae-form>\n\n<div style=\"padding: var(--bp-page-content-padding)\">\n  <h3>Objekte</h3>\n  <ae-list\n    list-id=\"2dab232c-2c8a-4aa4-b3f9-6023a7116161\"\n    :search=\"'p:' + document.id + ' AND f.id:6d777b4e-0f5f-4dbf-a642-31e2a3ef4dbc'\"\n    @selected=\"Aeppic.navigateTo($event.id)\"\n  ></ae-list>\n</div>","css":"","controller":"","packages":[]},"locks":[],"created":{"at":"2018-02-06T09:46:41+01:00","by":"","from":"","client":"server"},"modified":{"at":"2018-02-27T18:06:28+01:00","by":"","from":"","client":"server"},"t":1519751188001,"ct":1517906801849,"a_depth":4,"a":["apps","b791df37-6eef-4a3e-9066-1b79e0bdad31","35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f","f8bb1979-c159-4464-97e6-ae3145caf0c5"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"b43c4d4b-9fa0-4399-9508-04247cae38f4","v":"81f7d1647d117696","cloneOf":{"id":"852b468f-86a3-4324-b4e1-9aa826d89bd9","v":"initial","text":"xcard"},"originalCloneOf":{"id":"852b468f-86a3-4324-b4e1-9aa826d89bd9","v":"initial","text":"xcard"},"previous":{"v":"initial"},"p":"3592ceee-ae9a-47a9-8488-7bad5b0d9ff5","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"xpage","template":"<div rs-background-color=\"#F5F5F5\" style=\"color:black\" xlayout=\"column\">\n    <h1 layout=\"row\" layout-align=\"start end\" style=\"black-space:nowrap;width:100%\">{{data.name}} <span style=\"width:100%;padding-left:10px;padding-bottom:6px;black-space:nowrap;text-overflow:ellipsis;overflow:hidden;font-size:14px;color:#000000\">{{data.anschrift.street}} {{data.anschrift.streetNumber}}, {{data.anschrift.postalCode}} {{data.anschrift.city}}</span></h1>\n    <br>\n    <!--<rs-tabbed-form flex document=\"document\"></rs-tabbed-form>-->\n    <document-list list-id=\"2dab232c-2c8a-4aa4-b3f9-6023a7116161\" query=\"p:f1c3f211-34fb-4c1d-9bb6-e93487bd87b3 AND data.firma.id:{{document.id}} AND created.at:[now/d-7d TO *] AND NOT data.status:3\" sort=\"created.at! DESC\" option-design=\"active-card\" option-title=\"Wartungen\" option-subtitle=\"In Bearbeitung\" option-empty=\"\" ></document-list>\n\n    <document-query query=\"p:f1c3f211-34fb-4c1d-9bb6-e93487bd87b3 AND data.firma.id:{{document.id}} AND created.at:[now/d-7d TO *] AND NOT data.status:3\" result=\"active\"></document-query>\n    <!--<rs-tabbed-form flex document=\"document\"></rs-tabbed-form>-->\n\n    <!-- TODO: Filter out only those that are active instead.  --> \n    <document-list ng-if=\"active.length == 0\" list-id=\"2dab232c-2c8a-4aa4-b3f9-6023a7116161\" query=\"f.id:bda81764-aee4-4be5-b3a6-8dfcf6ed7852 AND data.wartungsfirma.id:{{document.id}}\" option-design=\"card\" option-title=\"Wartungen\" option-subtitle=\"Neu beginnen\"></document-list>\n</div>\n        ","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-02-28T15:30:12+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-02-28T15:30:50+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1646062250534,"ct":1646062212689,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","3592ceee-ae9a-47a9-8488-7bad5b0d9ff5"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"cd323c1c-4f99-446f-bf59-29adf94eb067","v":"b8ee37f5d158e196","previous":{"v":"initial"},"p":"b32fed0d-d54f-47ac-9174-cc42cfa585e5","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"xpage","template":"<div >\n    <document-children  parent=\"{{document.id}}\" title=\"\" subTitle=\"\" style=\"padding-left:16px\"></document-children>\n<!--<rs-tabbed-form flex document=\"document\"></rs-tabbed-form>-->\n</div>\n","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-02-28T15:29:41+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-02-28T15:29:46+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1646062186247,"ct":1646062181940,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","b32fed0d-d54f-47ac-9174-cc42cfa585e5"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"d7eb8bd1-80c7-41e4-acf3-02843266381b","v":"initial","cloneOf":{"id":"eb0e0a03-031a-48f1-8352-db6f529b6388","v":"b5f683f623c53a6f","text":"xpage"},"originalCloneOf":{"id":"eb0e0a03-031a-48f1-8352-db6f529b6388","v":"b5f683f623c53a6f","text":"xpage"},"p":"3e134a66-4611-456c-88e9-be8ae3d75dff","f":{"id":"design-form","v":"74db9b6ed94b41d9","text":"Design"},"data":{"name":"xpage","template":"<div class=\"_CSS-page\">\n  <section class=\"_CSS-navigation\">\n    <button v-for=\"entry of locals.navigation\"\n            class=\"ae-button\"\n            :class=\"{ 'ae-button--secondary': locals.activeNavigationEntry === entry.key  }\"\n            @click.stop=\"locals.activeNavigationEntry = entry.key\"\n    >\n            <!-- @click.stop=\"Aeppic.drillInto(document.data.dmsFolder)\" -->\n      {{ entry.label }}\n    </button>\n  </section>\n\n  <section class=\"_CSS-body\">\n    <template v-if=\"locals.activeNavigationEntry === 'contact'\">\n      <ae-design name=\"page-toolbar\" :document=\"document\" ></ae-design>\n      <ae-design name=\"page--left\" :document=\"document\" ></ae-design>\n      <!-- <ae-design name=\"form\" :document=\"document\" :edit=\"true\"></ae-design> -->\n      <!-- <ae-control name=\"ref\" :document=\"document\" field-name=\"aktivitaeten\"></ae-control> -->\n    </template>\n    <!-- <ae-design v-if=\"locals.activeNavigationEntry === 'contact'\" name=\"page--left\" :document=\"document\"></ae-design> -->\n    <template v-else-if=\"locals.activeNavigationEntry === 'dmsFolder'\">\n      <ae-design class=\"_CSS-body__toolbar\" name=\"page-toolbar\" :document=\"document.data.dmsFolder\" @toolbar=\"controller.dispatchEventChildren('dmsPage', 'toolbar', $event)\"></ae-design>\n      <ae-design name=\"page\" :document=\"document.data.dmsFolder\" ref=\"dmsPage\"></ae-design>\n      <!-- <ae-design name=\"page\" :document=\"document.data.dmsFolder\" ref=\"dmsPage\" :param-project-root-id=\"document.data.project.id\"></ae-design> -->\n    </template>\n    <template v-else-if=\"locals.activeNavigationEntry === 'project'\">\n      <ae-design class=\"_CSS-body__toolbar\" name=\"page-toolbar\" :document=\"document.data.project\" @toolbar=\"controller.dispatchEventChildren('projectPage', 'toolbar', $event)\"></ae-design>\n      <ae-design  name=\"page\" :document=\"document.data.project\" ref=\"projectPage\"></ae-design>\n    </template>\n  </section>\n</div>\n\n","css":"._CSS-page {\n  display: flex;\n  flex-flow: column;\n}\n\n._CSS-body {\n  xpadding: var(--bp-page-content-padding);\n  flex: 1;\n\n  display: flex;\n  flex-flow: column;\n}\n\n._CSS-body__toolbar {\n  background: var(--ae-ui-background);\n}\n\n._CSS-navigation {\n  padding: var(--bp-page-content-padding);\n  background: var(--ae-ui-background);\n\n  xborder-bottom: var(--ae-border-width) solid var(--ae-border-color);\n}","controller":"class Controller {\n  init() {\n    locals.navigation = [\n      { key: 'contact', label: 'Kontakt', },\n      { key: 'dmsFolder', label: 'Dokumente' },\n      { key: 'project', label: 'Projekt' },\n    ]\n\n    locals.activeNavigationEntry = 'contact'\n  }\n\n  dispatchEventChildren(refName, eventName, eventValue) { \n    if (!$refs[refName] || !$refs[refName].$el || !$refs[refName].$el.children) {\n      return\n    }\n    const children = $refs[refName].$el.children\n    for (let i = 0; i < children.length; i++) {\n      children[i].dispatchEvent(new CustomEvent(eventName, {\n        detail: eventValue\n      }))\n    }\n    $refs[refName].$emit(eventName, eventValue)\n  }\n\n\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-01-27T11:02:53+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-01-27T11:02:53+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1611745373658,"ct":1611745373658,"a_depth":4,"a":["apps","d91078cc-874b-4410-b837-b81f47687fe9","6b513a0c-498f-4eac-804d-aa8e0e99caac","3e134a66-4611-456c-88e9-be8ae3d75dff"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","5acfd7a2-33e4-498a-9150-71e1ab772bfc","20c92864-6a81-4006-96f9-b78f473cd129","4df0ebf7-c439-48d3-8a57-eef59bcfa250"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2017-09-15T10:29:32+02:00","by":"","client":"import","from":""},"ct":1467644281545,"data":{"applies":"","controller":"class Controller {\n  init() {\n    locals.filter = ''\n  }\n}","css":"._CSS {\n  padding: var(--bp-page-content-padding)\n}\n\n._CSS--filtered {\n    color: darkorange;\n    font-size: 14px;\n}\n\n._CSS-list {\n  list-style-type: none;\n}","name":"xpage","packages":[],"template":"<div class=\"ae-col\">\n\t<!-- <div class=\"ae-row\">\n\t\t<div class=\"mdc-textfield mdc-textfield--box mdc-textfield--with-leading-icon\" style=\"width:100%\">\n\t\t\t<i class=\"material-icons mdc-textfield__icon\">search</i></label>\n\t\t\t<input type=\"text\" id=\"id('search')\" class=\"mdc-textfield__input\" placeholder=\"Suchen\" v-model=\"locals.filter\">\n\t\t</div>\n\t</div> -->\n\n\t<div class=\"ae-row\">\n\t\t<h1 v-if=\"locals.filter\">Projekte <span class=\"_CSS--filtered\" :title=\"'Gefiltert nach' + locals.filter\">Gefiltert</span>\n\t\t</h1>\n\t\t<ae-list apply-global-filter flex list-id=\"2e798091-303f-406b-a42a-93aa1cd8425c\" query-id=\"f812861f-68c8-4818-9972-be7b5474c9b1\"\n\t\t page-size=\"100\" :root-document-id=\"document.id\" :filter=\"locals.filter + '*'\" sort=\"data.bis! ASC, data.name.sort ASC\"\n\t\t :params=\"{ emptyText: 'keine passende Projekte gefunden', design: 'card,list' }\"></ae-list>\n\t</div>\n\n\t<div class=\"ae-row\" v-if=\"locals.filter\">\n\t\t<h1>Aufgaben <span class=\"_CSS--filtered\" :title=\"'Gefiltert nach' + locals.filter\">Gefiltert</span></h1>\n\t\t\t<ae-list apply-global-filter list-id=\"2e798091-303f-406b-a42a-93aa1cd8425c\" query-id=\"b83046c8-9616-4287-b518-38992f3562ef\"\n\t\t\t page-size=\"100\" :root-document-id=\"document.id\" :filter=\"locals.filter\" sort=\"data.bis! ASC, data.name.sort ASC\"\n\t\t\t :params=\"{ emptyText: 'keine passenden Aufgaben gefunden', limit: 10, design: 'search-card,card,list' }\"></ae-list>\n\t\t</h1>\n\t</div>\n\n\t<div class=\"ae-row\" v-if=\"locals.filter\">\n\t\t<h1>Verantwortliche <span class=\"_CSS--filtered\" :title=\"'Gefiltert nach' + locals.filter\">Gefiltert</span></h1>\n\t\t<ae-query :root-document-id=\"document.id\" query-id=\"7c7c140a-74fd-4449-b798-1ac5c247c202\" sort=\"data.bis asc, created.at! desc\">\n\t\t\t<template slot-scope=\"verantwortlicheResult\">\n          <!-- TODO: limit  -->\n\t\t\t\t<!-- <ul class=\"list-unstyled\" ng-init=\"mitarbeiterLimit=3\"> -->\n\t\t\t\t<ul class=\"_CSS-list\">\n          <!-- TODO: limit  -->\n\t\t\t\t\t<!-- <li v-for=\"verantwortlicher in verantwortliche | limitTo:mitarbeiterLimit\" style=\"margin-top:8px\"> -->\n\t\t\t\t\t<li v-for=\"verantwortlicher in verantwortlicheResult.documents\">\n\t\t\t\t\t\t<ae-design class=\"hide-document-label\" :document=\"verantwortlicher\" name=\"title,inline\"></ae-design>\n\t\t\t\t\t\t<ae-list list-id=\"2e798091-303f-406b-a42a-93aa1cd8425c\" params=\"{ design: 'search-card,card,list', limit: 10 }\" query-id=\"descendants\"\n\t\t\t\t\t\t page-size=\"1000\" :root-document-id=\"document.id\" sort=\"f.id, data.bis! ASC, data.name.sort ASC\" :filter=\"'data.verantwortlich.id:' + verantwortlicher.id\"></ae-list>\n\t\t\t\t\t</li>\n\t\t\t\t</ul>\n\n          <!-- TODO: limit  -->\n        <!-- <button class=\"mdc-button\" v-if=\"verantwortlicheResult.documents.length > verantwortlicheLimit\" @click=\"verantwortlicheLimit = verantwortlicheLimit + 5\">Weitere Verantwortliche anzeigen</button> -->\n\t\t\t\t<span v-if=\"verantwortlicheResult.documents.length===0\">keine Person unter diesem Namen</span>\n\t\t\t</template>\n\t\t</ae-query>\n\t</div>\n</div>"},"f":{"id":"design-form","text":"Design","v":"e3fe9ece11aabc5e"},"id":"dc62be1b-5866-479e-96e0-494651211779","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-07-03T11:59:14+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"p":"4df0ebf7-c439-48d3-8a57-eef59bcfa250","previous":{"v":"6df4a313414b1dbf"},"stamps":[],"t":1751543954716,"v":"76738b86d33c9126"},{"id":"e40feb2f-9485-4f0a-8c59-e733a1aa167f","v":"054ccbd3de541d43","p":"form","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"xpage","template":"<div flex layout=\"column\">\n  <div ng-if=\"$root.account.id=='emergency-account' && document.v == 0\" layout=\"row\" flex>\n    <md-input-container flex>\n      <label>Document-Id (change with care!)</label>\n      <input type=\"text\" ng-init=\"customDocumentId = document.id\" ng-model=\"customDocumentId\" aria-label=\"Document id\" ng-change=\"$rsDialog.changeDocumentId(document,customDocumentId)\" ng-model-options=\"{ updateOn: 'default blur', debounce: { default: 500, blur:0 } }\">\n    </md-input-container>\n  </div>\n  <div layout=\"row\" flex>\n    <div rs-fullscreen-container=\"definitionView\" layout=\"column\" flex class=\"leftcolumn\">\n      <h1><small>Definition</small></h1>\n      <md-content layout=\"column\" flex>\n        <rs-tabbed-form flex document=\"document\"></rs-tabbed-form>\n      </md-content>\n    </div>\n    <div layout=\"column\" flex ng-init=\"oldFormDefinition = document.data.definition; livePreview = !($rsLocalStorage.getItem('formDesignerLivePreview') === 'false')\">\n      <div layout=\"row\" layout-align=\"center center\">\n          <div flex><h1><small>Preview</small></h1></div>\n          <div ng-show=\"document.isEditable\" layout=\"row\" layout-align=\"center center\">\n              <!-- <div style=\"margin-right:20px;\"><rs-revision-type form-document=\"document\" ></rs-revision-type></div> -->\n              <div layout=\"row\" layout-align=\"center center\"><md-checkbox ng-model=\"livePreview\" style=\"margin-bottom:4px\" ng-change=\"$rsLocalStorage.setItem('formDesignerLivePreview', livePreview.toString())\">Live Preview</md-checkbox></div>\n              <div><md-button ng-hide=\"livePreview\" ng-click=\"oldFormDefinition = document.data.definition;\" class=\"md-raised md-primary\">Refresh</md-button></div>\n          </div>\n      </div>\n      <div ng-show=\"document.isEditable\" style=\"color:gray; margin-top:-22px\">(Formeln und Bedingungen werden im Preview zurzeit nicht ausgewertet)</div>\n      <md-content layout=\"column\" flex>\n        <!--rs-form form-definition=\"{{document.data.definition}}\" defaults=\"true\"></rs-form-->\n        <rs-tabbed-form layout=\"column\" flex form-definition=\"{{livePreview ? document.data.definition : oldFormDefinition}}\" defaults=\"true\" readonly=\"false\"></rs-tabbed-form>\n      </md-content>\n    </div>\n  </div>\n</div>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2017-08-23T08:24:50+02:00","by":"","from":"","client":"import"},"modified":{"at":"2018-01-08T16:40:11+01:00","by":"","from":"","client":"a284a8a1-33b6-4a09-a424-b820b6ba6384"},"t":1719473826922,"ct":1719473826922,"a_depth":3,"a":["system","system-forms","form"],"a_forms":["system-folder-form","repository-folder-form","form"],"inheritedLocks":[null,null,null,null],"stamps":[],"previous":{"v":"1e4299549948a8e8","f":{"id":"design-form","v":"a165c0cf48b0e2a5","text":"Design"}},"meta":{"modified":{"at":"2024-06-27T07:37:06+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"6e98fb37-b2c4-475c-a9a0-5742cc14d317","v":"d0232449a653ae70","previous":{"v":"1f4580ad93abcf07"},"p":"8fc08287-dbcc-4e41-9d5d-28e4cd828943","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"xpage--left","template":"<ae-layout layout-id=\"acd83791-970f-4b6e-bebd-d7f3bca52014\" \n          :param-document=\"document\"\n\n          :param-hide-empty=\"true\"\n></ae-form>   ","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-11-12T09:56:33+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-11-12T10:21:04+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1636712464973,"ct":1636710993639,"a_depth":4,"a":["apps","9d6ee173-26fe-4472-a271-7667f717094e","53b70eca-0cef-448b-9674-22a70a937eb1","8fc08287-dbcc-4e41-9d5d-28e4cd828943"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","59edbdbc-2cab-426a-bb42-6e57c5158e4f","3be7e887-1bcd-4c3c-979f-b20a986c4c48","0b6a2b21-9425-466e-9e8d-57ec39cc95e1"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"bd0d3178-e31a-4f73-8ca4-ea56605d1b30","text":"page--left","v":"2f017b66e5e16fe6"},"created":{"at":"2021-06-09T11:37:37+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1623238657442,"data":{"applies":"","controller":"class Controller {\n  async init() {\n    locals.view = 'projects'\n\n    locals.sort = {\n      field: 'data.name'\n    }\n\n    locals.showDoneProjects = false\n    locals.showDetails = false\n    locals.hasAnyChildNonTaskChild = false\n\n     Aeppic.subscribe(`p:${document.id} (f.id:766c24c5-542c-4887-bf65-43ad85e6c476 OR f.id:0b6a2b21-9425-466e-9e8d-57ec39cc95e1)`, { size: 1 }, (docs) => {\n        locals.hasAnyChildNonTaskChild = docs[0]\n    })\n  \n    await Aeppic.nextRenderPass()\n\n    const canEdit = await Aeppic.canEdit(document)\n\n    if (Aeppic.Account && Aeppic.Account.data.isGroupAccount === true) {\n      // a group account can only edit if it got rights assigned. Unsecured folders are not editable.\n      const editable = await Aeppic.edit(document)\n      const isLocked = editable.hasInheritedLock() || editable.hasLock()\n\n      if (isLocked) {\n        locals.canEdit = canEdit === true\n      } else {\n        locals.canEdit = false\n      }\n    } else {\n      locals.canEdit = canEdit\n    }\n\n    if (locals.canEdit) {\n      locals.tasksRequest = await this._newTasksRequest()\n\n      locals.newTask = this.newTask()\n    }\n  }\n\n  async _newTasksRequest() {\n    return Aeppic.new('8e49145e-2caf-4c8f-8de9-a5e367e56ba1', document.id)\n  }\n\n  async newTask(name) {\n    const task = await Aeppic.new('0deb4864-cbb6-420c-99ee-337c7444ab24', document.id)\n\n    const taskForm = await Aeppic.getFormForDocument(task)\n    const assigneesParams =  taskForm.getFieldControlParams('verantwortlich')\n\n    if (assigneesParams.defaultValueCommand) {\n      const result = await Aeppic.Commands.execute(assigneesParams.defaultValueCommand, document, { account: Aeppic.Account })\n\n      if (result.ok && result.value) {\n        task.addReference('verantwortlich', result.value)\n      }\n    }\n\n    if (name) {\n      task.data.name = name\n    }\n\n    return task\n  }\n\n  async createTasksBasedOnRequest() {\n    if (!locals.canEdit) {\n      return\n    }\n\n    const editableDocument = await Aeppic.edit(document)\n\n    const userinput = locals.tasksRequest.data.aufgaben\n    const taskNames = userinput.split(/\\n/).filter(n => n !== '')\n\n    for (const name of taskNames) {\n      const task = await this.newTask(name)\n      await this._saveTask(editableDocument, task)\n    }\n\n    Aeppic.save(editableDocument)\n\n    locals.tasksRequest = await this._newTasksRequest()\n  }\n\n  // async saveBulkTasks() {\n  //   const taskNames = locals.bulkTasks.split(/\\n/).filter(n => n !== '')\n\n  //   for (const name of taskNames) {\n  //     const task = await this.newTask(name)\n  //     this._saveTask(task)\n  //   }\n\n  //   Aeppic.save(document)\n\n  //   locals.bulkTasks = ''\n  // }\n\n  // async saveNewTask() {\n  //   this._saveTask(locals.newTask)\n  //   Aeppic.save(document)\n\n  //   locals.newTask = this.newTask()\n  // }\n\n  async _saveTask(editableDocument, task) {\n    Aeppic.save(task)\n\n    const form = await Aeppic.getFormForDocument(editableDocument)\n    const params = form.getFieldControlParams('aufgaben')\n\n    editableDocument.addReference('aufgaben', task, {\n      addToBeginning: params.addToBeginning\n    })\n  }\n\n  minColumnWidth(preferedWidth) {\n    if (locals.view === 'card--wide') { \n      return '1fr'\n    }\n\n    if (preferedWidth) {\n      return preferedWidth\n    }\n\n    return 'max-content'\n  }\n\n  get maxColumnWidth() {\n    if (Aeppic.Device === 'Phone' || locals.view === 'card--wide') {\n      return '1fr'\n    }\n\n    return '30rem'\n  }\n\n  toolbarEvent(eventType) {\n    if (eventType === 'save') {\n      $refs.form.save()\n      $refs.form.resetEdits()\n\n      return\n    }\n    if (eventType === 'reset') {\n      $refs.form.resetEdits()\n\n      return\n    }\n\n    if (eventType === 'view_done_true') {\n      locals.showDoneProjects = true\n      return\n    }\n    if (eventType === 'view_done_false') {\n      locals.showDoneProjects = false\n      return\n    }\n\n    if (eventType === 'view_calendar') {\n      locals.view = 'calendar'\n      return\n    }\n    if (eventType === 'view_projects') {\n      locals.view = 'projects'\n      return\n    }\n    if (eventType === 'view_milestones') {\n      locals.view = 'milestones'\n      return\n    }\n  }\n}\n","css":"._CSS {\n  overflow: hidden !important;\n}\n\n._CSS-body-container {\n  padding: var(--bp-page-content-padding);\n  overflow: auto;\n  height: 100%;\n}\n\n._CSS-body {\n  max-width: var(--ae-page-max-width);\n  margin: auto;\n\n  display: flex;\n  flex-flow: column;\n  flex-wrap: wrap;\n}\n\n.ae-large ._CSS-body {\n  flex-flow: row;\n}\n\n._CSS--left {\n  width: 100%;\n}\n._CSS--right {\n   width: 100%;\n}\n\n.ae-large ._CSS--left {\n  width: 66%;\n}\n.ae-large ._CSS--right {\n  width: 34%;\n}\n\n._CSS-body._CSS-body--fullwidth {\n  max-width: 100%;\n  margin: initial;\n}\n\n._CSS-header {\n  color: gray;\n  font-size: 0.9em;\n  font-weight: bold;\n}\n\n._CSS-header ~ ._CSS-header {\n  margin-top: 3em;\n}\n\n._CSS-header ~ * {\n  margin-top: 1em;\n}\n\n._CSS-new-tasks-container {\n  max-width: 600px;\n}\n\n._CSS-new-tasks {\n  display: flex;\n  flex-wrap: wrap;\n}\n\n._CSS-new-tasks__input {\n  flex: 1;\n}\n\n._CSS-button {\n  padding: 4px 8px;\n  margin: 8px 0; \n  display: flex;\n  justify-content: center;\n  align-items: center;\n  border-radius: 2px;\n  border: 1px solid hsl(0, 0%, 76%);\n  background: white;\n  color: hsl(0, 0%, 34%);\n  height: 28px;\n  cursor: pointer;\n}\n","name":"xpage--left","packages":[],"template":"<div class=\"_CSS-body-container\" @toolbar=\"controller.toolbarEvent($event.detail)\">\n  <div class=\"_CSS-body\" :class=\"{ '_CSS-body--fullwidth': true || locals.view === 'milestones' }\">\n<!-- TODO: enable again -->\n    <!-- <div style=\"display:flex;padding:0 var(--ae-size-2)\" v-if=\"Aeppic.Account && Aeppic.Account.data.allowDevMode\">\n      <div class=\"ae-button ae-button--secondary\" @click.stop=\"locals.view = 'report'\">\n        Bericht\n      </div>\n\n      <div class=\"ae-button ae-button--secondary\" @click.stop=\"locals.view = 'projects'\">\n        Projekt\n      </div>\n    </div> -->\n\n    <template v-if=\"locals.view === 'projects'\">\n      <section class=\"_CSS--left\" :style=\"{ width: !locals.hasAnyChildNonTaskChild && '100%' }\">\n\n        <ae-form\n        ref=\"form\"\n        :document=\"document\"\n        layout-id=\"8974ef10-ff5f-4584-8299-59979915d2b6\"\n        :readonly=\"!locals.canEdit\"\n        :param-no-add=\"true\"\n        :auto-save=\"true\"\n      ></ae-form>\n              <!-- <div class=\"_CSS-new-tasks-container\">\n        <div v-if=\"locals.tasksRequest\" class=\"_CSS-new-tasks\"> \n          <ae-form  :document=\"locals.tasksRequest\"\n                    :watch=\"false\"\n                    @data-changed=\"Aeppic.commit(locals.tasksRequest)\"\n                    class=\"_CSS-new-tasks__input\"\n          ></ae-form>\n          <div class=\"ae-form-cell ae-control-container\">\n            <div class=\"ae-form-cell__label\">&nbsp;</div>\n            <button class=\"ae-button ae-button--secondary\" @click=\"controller.createTasksBasedOnRequest()\">\n              <span v-if=\"locals.tasksRequest.data.containsNewlines\">\n                Mehrere Aufgaben speichern\n              </span>\n              <span v-else>\n                Aufgabe speichern\n              </span>\n            </button>\n          </div>\n        </div>\n      </div> -->\n\n      </section>\n      <section class=\"_CSS--right\" v-if=\"locals.hasAnyChildNonTaskChild\">\n\n      <ae-list \n        query-id=\"ce48ff0d-1c59-4209-8048-2c53d1e94b50\"\n        list-id=\"2dab232c-2c8a-4aa4-b3f9-6023a7116161\"\n        :param-by=\"locals.by\"\n        :param-asc=\"locals.asc\"\n        :filter=\"controller.statusToFilter\"\n        :root-document-id=\"document.id\"\n        @selected=\"Aeppic.drillInto($event.id)\"\n        :param-min-column-width=\"controller.minColumnWidth('30rem')\"\n        :param-max-column-width=\"controller.maxColumnWidth\"\n        param-title=\"Teilprojekte\"\n        :param-hide-empty=\"true\"\n        param-design=\"card--wide,card\"\n        param-gap=\"small\"\n        :sort=\"locals.sort\"\n        ></ae-list>\n\n      <ae-list \n        v-if=\"locals.showDoneProjects\"\n        query-id=\"e65ebd4e-c85a-4caf-8bf8-9b7eddb86034\"\n        list-id=\"2dab232c-2c8a-4aa4-b3f9-6023a7116161\"\n        :root-document-id=\"document.id\"\n        @selected=\"Aeppic.drillInto($event.id)\"\n        :param-min-column-width=\"controller.minColumnWidth('30rem')\"\n        :param-max-column-width=\"controller.maxColumnWidth\"\n        param-title=\"Erledigte Teilprojekte\"\n        param-design=\"card--wide,card\"\n        :param-design-params=\"{ forceShowDetails: locals.showProjectDetails }\"\n        param-gap=\"small\"\n        :sort=\"locals.sort\"\n        \n        ></ae-list>\n\n      <ae-list \n        :root-document-id=\"document.id\"\n        type=\"children\"\n        filter=\"f.id:766c24c5-542c-4887-bf65-43ad85e6c476\"\n        sort=\"data.bis\"\n        list-id=\"208b6d2d-4198-45a7-b716-b697e8e39d39\"\n        @selected=\"Aeppic.drillInto($event.id)\"\n        param-design=\"progress-circle\"\n        param-title=\"Meilensteine\"\n        :param-hide-empty=\"true\"\n        ></ae-list>\n \n       <ae-list \n        :root-document-id=\"document.id\"\n        type=\"children\"\n        filter=\"f.id:8dbe21a7-7642-4884-986b-a119c6498bd3\"\n        sort=\"created.at\"\n        list-id=\"208b6d2d-4198-45a7-b716-b697e8e39d39\"\n        @selected=\"Aeppic.drillInto($event.id)\"\n        param-design=\"ref-card,card\"\n        param-title=\"Protokolle\"\n        :param-hide-empty=\"true\"\n        ></ae-list>\n \n\n      </section>\n\n    </template>\n    <ae-layout \n              v-else-if=\"locals.view === 'report'\"\n              layout-id=\"5be16a98-bdc2-4587-8f72-57cd43ca0292\"\n              :param-document=\"document\"\n              :param-options=\"{ commandId: '08a4d3e9-c2c0-44eb-a688-45f58652d1da', formId: '0deb4864-cbb6-420c-99ee-337c7444ab24', queryString: 'data.erledigt:false' }\"\n    ></ae-layout>\n      <ae-design name=\"milestones\"\n                 :document=\"document\"\n                v-else-if=\"locals.view === 'milestones'\" class=\"_CSS-body__column\"\n      ></ae-design>\n    </div>\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"44303cec40b3e1fa"},"id":"9e40c6a3-51c7-4466-a899-1eba4842e3de","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-07-03T12:00:11+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"bd0d3178-e31a-4f73-8ca4-ea56605d1b30","text":"page--left","v":"2f017b66e5e16fe6"},"p":"0b6a2b21-9425-466e-9e8d-57ec39cc95e1","previous":{"v":"a9f3e4ccf44a34ec"},"stamps":[],"t":1751544011087,"v":"0da418d35690ba25"},{"id":"bbbf0806-4e44-43ab-b254-0953ccfee256","v":"initial","cloneOf":{"id":"e84291a1-e195-4173-87ab-6a28b5edb65f","v":"8e290a4f564ae975","text":"xpage--left"},"originalCloneOf":{"id":"e84291a1-e195-4173-87ab-6a28b5edb65f","v":"8e290a4f564ae975","text":"xpage--left"},"p":"3e134a66-4611-456c-88e9-be8ae3d75dff","f":{"id":"design-form","v":"0061789efb5c5c29","text":"Design"},"data":{"name":"xpage--left","template":"","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-01-27T11:02:53+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2021-01-27T11:02:53+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1611745373672,"ct":1611745373671,"a_depth":4,"a":["apps","d91078cc-874b-4410-b837-b81f47687fe9","6b513a0c-498f-4eac-804d-aa8e0e99caac","3e134a66-4611-456c-88e9-be8ae3d75dff"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"c46a5089-369a-42ef-83a8-8280119f3c8d","v":"c2bc67b3c1988924","cloneOf":{"id":"46969926-3c96-4d3d-a0ab-799633f6f120","v":"13d3892be92ca384","text":"page--left"},"originalCloneOf":{"id":"46969926-3c96-4d3d-a0ab-799633f6f120","v":"13d3892be92ca384","text":"page--left"},"previous":{"v":"fc5c43392903004f"},"p":"cf155969-ede1-43a4-9b10-3a697b19db91","f":{"id":"design-form","v":"9bfe8e0cd909c1f0","text":"Design"},"data":{"name":"xpage--left","template":"<div  class=\"_CSS-container\"\n      ref=\"container\"\n      @toolbar=\"controller.toolbarEvent($event.detail)\"\n      v-if=\"locals.ready\"\n>\n  <ae-form  ref=\"form\"\n            :document=\"document\" \n            :readonly=\"controller.isReadonly\"\n            :auto-save=\"params.autoSave || false\"\n            class=\"_CSS-form\"\n  ></ae-form>\n  <ae-design  name=\"page__additional-content\"\n              :document=\"document\"\n              :param-readonly=\"controller.isReadonly\"\n  ></ae-design>\n</div>","css":"._CSS-container {\n  max-width: var(--ae-page-max-width);\n  margin: auto;\n}\n\n._CSS-form {\n  height: 100%;\n}\n","controller":"class Controller {\n  async init() {\n    locals.ready = false\n\n    if (!(Aeppic.Account?.id === document.created.by)) {\n      await Aeppic.nextRenderPass()\n      await Aeppic.nextRenderPass()\n      \n      Aeppic.drillInto(document.p)\n      return\n    }\n\n    locals.ready = true\n  }\n  toolbarEvent(eventType) {\n    if (eventType === 'save') {\n      $refs.form.save()\n      $refs.form.resetEdits()\n\n      return\n    }\n    if (eventType === 'reset') {\n      $refs.form.resetEdits()\n\n      return\n    }\n  }\n\n  get isReadonly() {\n    if (document.readonly === true) {\n      return true\n    }\n\n    if (typeof params.readonly === 'boolean') {\n      return params.readonly\n    }\n\n    if (document.readonly) {\n      return document.readonly\n    }\n\n    return false\n  }\n}\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-09-17T11:44:02+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-09-17T12:00:58+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1631880058976,"ct":1631879042773,"a_depth":4,"a":["apps","14c27659-92d7-4b43-8c4f-25f4cceae591","2e759bfa-c685-48e8-81b4-cec70e93c521","cf155969-ede1-43a4-9b10-3a697b19db91"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"d1b570b7-2043-462e-8554-50a742316b6e","v":"b4bbbde7f9d2101b","previous":{"v":"befb884f7210ab6f"},"p":"c6349b48-9561-4c06-9200-fe9df9b6fb3e","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"xpage--left","template":"<div class=\"_CSS-page\"\n@toolbar=\"controller.dispatchEventChildren('page', 'toolbar', $event.detail)\"\n>\n  <ae-design v-if=\"locals.pageDesign\" ref=\"page\" :name=\"locals.pageDesign\" :document=\"document\" :params=\"params\" v-on=\"$listeners\"></ae-design>\n</div>","css":"._CSS-page {\n  padding: var(--bp-page-content-padding);\n}","controller":"class Controller {\n  async init() {\n    locals.pageDesign = ''\n\n    let allowFullAccess = false\n\n    const lock = await Aeppic.Preferences.getSettingForDocument('apps:94a64d89-d204-4918-b147-d717914fb03e:documentShareLockFullAccess', document)\n\n    if (lock) {\n      const writeKey = await Aeppic.findOne(`p:${lock.id} f.id:key-form data.rights:aa3ba2de-4b65-4152-ab1d-655e21de9efd`)\n\n      if (writeKey) {\n        allowFullAccess = writeKey.data.accounts.find(a => a.id === Aeppic.Account.id) || writeKey.data.groups.find(g => Aeppic.Account.data.groups.find(accountGroup => accountGroup.id === g.id)) \n      }\n    }\n\n    locals.pageDesign = allowFullAccess ? 'page--left' : 'page--limited-access'\n  }\n\n\n\n    dispatchEventChildren(refName, eventName, eventValue) { \n    if (!$refs[refName] || !$refs[refName].$el || !$refs[refName].$el.children) {\n      return\n    }\n    const children = $refs[refName].$el.children\n    for (let i = 0; i < children.length; i++) {\n      children[i].dispatchEvent(new CustomEvent(eventName, {\n        detail: eventValue\n      }))\n    }\n    $refs[refName].$emit(eventName, eventValue)\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-05-19T12:53:26+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-05-19T14:09:44+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1652969384072,"ct":1652964806290,"a_depth":4,"a":["apps","94a64d89-d204-4918-b147-d717914fb03e","f254ce25-42f1-4333-8ee7-23554bf746c1","c6349b48-9561-4c06-9200-fe9df9b6fb3e"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","59edbdbc-2cab-426a-bb42-6e57c5158e4f","3be7e887-1bcd-4c3c-979f-b20a986c4c48","0b6a2b21-9425-466e-9e8d-57ec39cc95e1"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"03fe10ac-a9f6-4445-8c0d-96ffef534762","text":"page--left","v":"9ecfff4da347d4d6"},"created":{"at":"2020-07-01T14:40:04+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","client":"server","from":""},"ct":1593614404699,"data":{"applies":"","controller":"class Controller {\n  async init() {\n    locals.view = 'projects' // Aeppic.LocalStorage.getValue('bp-pref-tasks-view-id')\n  \n    locals.sort = {\n      field: 'data.name'\n    }\n\n    locals.showDoneProjects = false\n    locals.showDetails = false\n\n    await Aeppic.nextRenderPass()\n\n    const canEdit = await Aeppic.canEdit(document)\n\n    if (Aeppic.Account && Aeppic.Account.data.isGroupAccount === true) {\n      // a group account can only edit if it got rights assigned. Unsecured folders are not editable.\n      const editable = await Aeppic.edit(document)\n      const isLocked = editable.hasInheritedLock() || editable.hasLock()\n\n      if (isLocked) {\n        locals.canEdit = canEdit === true\n      } else {\n        locals.canEdit = false\n      }\n    } else {\n      locals.canEdit = canEdit\n    }\n\n    if (locals.canEdit) {\n      locals.tasksRequest = await this._newTasksRequest()\n\n      locals.newTask = this.newTask()\n    }\n  }\n\n  async _newTasksRequest() {\n    return Aeppic.new('8e49145e-2caf-4c8f-8de9-a5e367e56ba1', document.id)\n  }\n\n  async newTask(name) {\n    const task = await Aeppic.new('0deb4864-cbb6-420c-99ee-337c7444ab24', document.id)\n\n    const taskForm = await Aeppic.getFormForDocument(task)\n    const assigneesParams =  taskForm.getFieldControlParams('verantwortlich')\n\n    if (assigneesParams.defaultValueCommand) {\n      const result = await Aeppic.Commands.execute(assigneesParams.defaultValueCommand, document, { account: Aeppic.Account })\n\n      if (result.ok && result.value) {\n        task.addReference('verantwortlich', result.value)\n      }\n    }\n\n    if (name) {\n      task.data.name = name\n    }\n\n    return task\n  }\n\n  async createTasksBasedOnRequest() {\n    if (!locals.canEdit) {\n      return\n    }\n\n    const editableDocument = await Aeppic.edit(document)\n\n    const userinput = locals.tasksRequest.data.aufgaben\n    const taskNames = userinput.split(/\\n/).filter(n => n !== '')\n\n    for (const name of taskNames) {\n      const task = await this.newTask(name)\n      await this._saveTask(editableDocument, task)\n    }\n\n    Aeppic.save(editableDocument)\n\n    locals.tasksRequest = await this._newTasksRequest()\n  }\n\n  // async saveBulkTasks() {\n  //   const taskNames = locals.bulkTasks.split(/\\n/).filter(n => n !== '')\n\n  //   for (const name of taskNames) {\n  //     const task = await this.newTask(name)\n  //     this._saveTask(task)\n  //   }\n\n  //   Aeppic.save(document)\n\n  //   locals.bulkTasks = ''\n  // }\n\n  // async saveNewTask() {\n  //   this._saveTask(locals.newTask)\n  //   Aeppic.save(document)\n\n  //   locals.newTask = this.newTask()\n  // }\n\n  async _saveTask(editableDocument, task) {\n    Aeppic.save(task)\n\n    const form = await Aeppic.getFormForDocument(editableDocument)\n    const params = form.getFieldControlParams('aufgaben')\n\n    editableDocument.addReference('aufgaben', task, {\n      addToBeginning: params.addToBeginning\n    })\n  }\n\n  minColumnWidth(preferedWidth) {\n    if (locals.view === 'card--wide') { \n      return '1fr'\n    }\n\n    if (preferedWidth) {\n      return preferedWidth\n    }\n\n    return 'max-content'\n  }\n\n  get maxColumnWidth() {\n    if (Aeppic.Device === 'Phone' || locals.view === 'card--wide') {\n      return '1fr'\n    }\n\n    return '30rem'\n  }\n\n  toolbarEvent(eventType) {\n    if (eventType === 'save') {\n      $refs.form.save()\n      $refs.form.resetEdits()\n\n      return\n    }\n    if (eventType === 'reset') {\n      $refs.form.resetEdits()\n\n      return\n    }\n\n    if (eventType === 'view_done_true') {\n      locals.showDoneProjects = true\n      return\n    }\n    if (eventType === 'view_done_false') {\n      locals.showDoneProjects = false\n      return\n    }\n\n    if (eventType === 'view_calendar') {\n      locals.view = 'calendar'\n      return\n    }\n    if (eventType === 'view_projects') {\n      locals.view = 'projects'\n      return\n    }\n    if (eventType === 'view_milestones') {\n      locals.view = 'milestones'\n      return\n    }\n  }\n}\n","css":"._CSS {\n  overflow: hidden !important;\n}\n\n._CSS-body-container {\n  padding: var(--bp-page-content-padding);\n  overflow: auto;\n  height: 100%;\n}\n._CSS-body {\n  max-width: var(--ae-page-max-width);\n  margin: auto;\n}\n\n._CSS-body._CSS-body--fullwidth {\n  max-width: 100%;\n  margin: initial;\n}\n\n._CSS-header {\n  color: gray;\n  font-size: 0.9em;\n  font-weight: bold;\n}\n\n._CSS-header ~ ._CSS-header {\n  margin-top: 3em;\n}\n\n._CSS-header ~ * {\n  margin-top: 1em;\n}\n\n._CSS-new-tasks-container {\n  max-width: 600px;\n}\n\n._CSS-new-tasks {\n  display: flex;\n  flex-wrap: wrap;\n}\n\n._CSS-new-tasks__input {\n  flex: 1;\n}\n\n._CSS-button {\n  padding: 4px 8px;\n  margin: 8px 0; \n  display: flex;\n  justify-content: center;\n  align-items: center;\n  border-radius: 2px;\n  border: 1px solid hsl(0, 0%, 76%);\n  background: white;\n  color: hsl(0, 0%, 34%);\n  height: 28px;\n  cursor: pointer;\n}\n","name":"xpage--left__old","packages":[],"template":"<div class=\"_CSS-body-container\" @toolbar=\"controller.toolbarEvent($event.detail)\">\n  <div class=\"_CSS-body\" :class=\"{ '_CSS-body--fullwidth': locals.view === 'milestones' }\">\n\n<!-- TODO: enable again -->\n    <!-- <div style=\"display:flex;padding:0 var(--ae-size-2)\" v-if=\"Aeppic.Account && Aeppic.Account.data.allowDevMode\">\n      <div class=\"ae-button ae-button--secondary\" @click.stop=\"locals.view = 'report'\">\n        Bericht\n      </div>\n\n      <div class=\"ae-button ae-button--secondary\" @click.stop=\"locals.view = 'projects'\">\n        Projekt\n      </div>\n    </div> -->\n\n    <template v-if=\"locals.view === 'projects'\">\n      <ae-list \n        :root-document-id=\"document.id\"\n        type=\"children\"\n        filter=\"f.id:766c24c5-542c-4887-bf65-43ad85e6c476\"\n        sort=\"data.bis\"\n        list-id=\"208b6d2d-4198-45a7-b716-b697e8e39d39\"\n        @selected=\"Aeppic.drillInto($event.id)\"\n        ></ae-list>\n \n      <ae-list \n        query-id=\"ce48ff0d-1c59-4209-8048-2c53d1e94b50\"\n        list-id=\"2dab232c-2c8a-4aa4-b3f9-6023a7116161\"\n        :param-by=\"locals.by\"\n        :param-asc=\"locals.asc\"\n        :filter=\"controller.statusToFilter\"\n        :root-document-id=\"document.id\"\n        @selected=\"Aeppic.drillInto($event.id)\"\n        :param-min-column-width=\"controller.minColumnWidth('30rem')\"\n        :param-max-column-width=\"controller.maxColumnWidth\"\n        param-title=\"Teilprojekte\"\n        :param-hide-empty=\"true\"\n        param-design=\"card--wide,card\"\n        :sort=\"locals.sort\"\n        ></ae-list>\n\n    <template v-if=\"locals.showDoneProjects\">\n      <ae-list \n        v-if=\"locals.showDoneProjects\"\n        query-id=\"e65ebd4e-c85a-4caf-8bf8-9b7eddb86034\"\n        list-id=\"2dab232c-2c8a-4aa4-b3f9-6023a7116161\"\n        :root-document-id=\"document.id\"\n        @selected=\"Aeppic.drillInto($event.id)\"\n        :param-min-column-width=\"controller.minColumnWidth('30rem')\"\n        :param-max-column-width=\"controller.maxColumnWidth\"\n        param-title=\"Erledigte Teilprojekte\"\n        param-design=\"card--wide,card\"\n        :param-design-params=\"{ forceShowDetails: locals.showProjectDetails }\"\n        :sort=\"locals.sort\"\n        \n        ></ae-list>\n    </template>\n\n      <div class=\"_CSS-new-tasks-container\">\n        <div v-if=\"locals.tasksRequest\" class=\"_CSS-new-tasks\"> \n          <ae-form  :document=\"locals.tasksRequest\"\n                    :watch=\"false\"\n                    @data-changed=\"Aeppic.commit(locals.tasksRequest)\"\n                    class=\"_CSS-new-tasks__input\"\n          ></ae-form>\n          <div class=\"ae-form-cell ae-control-container\">\n            <div class=\"ae-form-cell__label\">&nbsp;</div>\n            <button class=\"ae-button ae-button--secondary\" @click=\"controller.createTasksBasedOnRequest()\">\n              <span v-if=\"locals.tasksRequest.data.containsNewlines\">\n                Mehrere Aufgaben speichern\n              </span>\n              <span v-else>\n                Aufgabe speichern\n              </span>\n            </button>\n          </div>\n        </div>\n      </div>\n      <ae-form\n        ref=\"form\"\n        :document=\"document\"\n        layout-id=\"8974ef10-ff5f-4584-8299-59979915d2b6\"\n        :readonly=\"!locals.canEdit\"\n        :param-no-add=\"true\"\n        :auto-save=\"true\"\n      ></ae-form>\n    </template>\n    <ae-layout \n              v-else-if=\"locals.view === 'report'\"\n              layout-id=\"5be16a98-bdc2-4587-8f72-57cd43ca0292\"\n              :param-document=\"document\"\n              :param-options=\"{ commandId: '08a4d3e9-c2c0-44eb-a688-45f58652d1da', formId: '0deb4864-cbb6-420c-99ee-337c7444ab24', queryString: 'data.erledigt:false' }\"\n    ></ae-layout>\n      <ae-design name=\"milestones\"\n                 :document=\"document\"\n                v-else-if=\"locals.view === 'milestones'\" class=\"_CSS-body__column\"\n      ></ae-design>\n    </div>\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"44303cec40b3e1fa"},"id":"bd0d3178-e31a-4f73-8ca4-ea56605d1b30","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-07-03T12:00:35+00:00","backedBy":null,"by":"729fa027-7e7e-4b06-9602-f535c43824f0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"03fe10ac-a9f6-4445-8c0d-96ffef534762","text":"page--left","v":"9ecfff4da347d4d6"},"p":"0b6a2b21-9425-466e-9e8d-57ec39cc95e1","previous":{"v":"cda38facc11c5482"},"stamps":[],"t":1751544035103,"v":"b53cd6bb6c5e4658"},{"id":"836ff19c-5588-42ed-8086-d3fadd9cad2e","v":"a825cd495e7db24d","previous":{"v":"a8f48e7f360b4106"},"p":"275b807f-7dbb-4351-b731-669e275fa97d","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"xpage--shared","applies":"","template":"<div class=\"dbps-body-with-actions\" style=\"padding: 8px;\">\n  <div class=\"_CSS-actions\">\n    <ae-layout  layout-id=\"7be86ea7-1897-4343-8dd3-56ba86e8f14e\"\n                :param-model-id=\"document.id\"\n                :param-project-id=\"document.a.slice(-3)[0]\"\n                :param-zip-name=\"data.name\"\n                class=\"dbps-button\" \n    ></ae-layout>\n    <ae-layout  class=\"dbps-button\" layout-id=\"56533270-2bac-44c0-a4bc-f91c0ec0279a\" @rate=\"controller.setRating($event)\"></ae-layout>\n\n  </div>\n  \n  <div>\n    <ae-design name=\"hero\" :document=\"document\"></ae-design>\n\n    <ae-list  list-id=\"2dab232c-2c8a-4aa4-b3f9-6023a7116161\"\n              class=\"_CSS-list\" \n              :documents=\"data.files\"\n    ></ae-list>\n\n    <ae-layout layout-id=\"acd83791-970f-4b6e-bebd-d7f3bca52014\" :param-hide-empty=\"true\" :param-document=\"document\" :param-form=\"form\" :param-readonly=\"true\"></ae-layout>\n  </div>\n\n</div>","css":"._CSS-actions {\n  font-size: 2rem;\n}\n\n._CSS-subtitle {\n  font-size: 3rem;\n  font-weight: bold;\n  text-transform: uppercase;\n}\n\n._CSS-list {\n  margin-bottom: 2rem;\n}","controller":"class Controller {\n  async init() {\n    await Aeppic.nextRenderPass()\n\n    startEditing()\n  }\n\n\n  setRating(value) {\n    data.rating = value\n    save()\n  }\n}\n","packages":[]},"locks":[],"created":{"at":"2018-05-25T10:47:53+00:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","from":"","client":"server"},"modified":{"at":"2020-10-13T10:11:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1602583892850,"ct":1527245273866,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","275b807f-7dbb-4351-b731-669e275fa97d"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"7e0a7422-7810-4045-9ebd-0f9c6a28bb55","v":"53dd2fe66f91788d","cloneOf":{"id":"e62c834d-d635-4303-90dd-d2c857e97db9","v":"bf553be9d652537a","text":"page--worker"},"originalCloneOf":{"id":"e62c834d-d635-4303-90dd-d2c857e97db9","v":"bf553be9d652537a","text":"page--worker"},"previous":{"v":"a281f637a1ffc2e0"},"p":"3d678f2a-65f5-4dc1-a643-c5998fa33f32","f":{"id":"design-form","v":"3385ac6766f32638","text":"Design"},"data":{"name":"xpage--worker","template":"<template v-if=\"locals.ready\">\n    <section class=\"p-4 flex items-center gap-4\">\n      <img class=\"rounded-full h-10 w-10\" v-if=\"data.bild.dataUrl\" :src=\"Aeppic.Content.getSrc(document, 'bild')\">\n\n      <div class=\"flex flex-col\">\n        <span>\n          {{data.name}}\n        </span>\n        <span class=\"text-theme-500\">\n          {{data.adresse.street}} {{data.adresse.streetNumber}}, {{data.adresse.postalCode}} {{data.adresse.city}}\n        </span>\n      </div>\n    </section>\n\n    <section>\n      <div v-if=\"data.kartenbild.dataUrl\" \n          :style=\"{ 'background-image': 'url(' + Aeppic.Content.getSrc(document, 'kartenbild') + ')' }\"\n          style=\"min-height:200px;background-position:center;background-size:cover\"\n      ></div>\n    </section>\n\n     \n    <section v-if=\"locals.active.length\">\n        <ae-list list-id=\"2e798091-303f-406b-a42a-93aa1cd8425c\"\n                :documents=\"locals.active\"\n                param-design=\"active-card\"\n                param-title=\"Wartungen (In Bearbeitung)\"\n                xparam-subtitle=\"In Bearbeitung\"\n        ></ae-list>\n    </section>\n\n    <section v-if=\"locals.active.length === 0 && locals.plans.length\">\n      <ae-list    list-id=\"2e798091-303f-406b-a42a-93aa1cd8425c\"\n                  :documents=\"locals.plans\"\n                  param-design=\"card\"\n                  param-title=\"Wartungen (Neu beginnen)\"\n                  xoption-subtitle=\"Neu beginnen\"\n      ></ae-list>\n    </section>\n\n</template>\n ","css":"","controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Objekt: '3d678f2a-65f5-4dc1-a643-c5998fa33f32',\n      Wartungsplan: '522ca40d-810b-4021-835f-beeace3af7fa',\n      Wartung: 'c211ffaa-14f8-4439-9126-f42f65ac4424',\n    }\n\n    locals.ready = false\n    \n    locals.isVerwalter = false\n    locals.isVerwalter = (await Aeppic.Commands.execute('950f35d3-95ba-4d5a-a164-0074c767d600', document, { Account: Aeppic.Account })).value\n    \n\n    locals.active = []\n    locals.plans = []\n\n    // const location = await Aeppic.get(document.a[document.a_forms.findIndex(aForm => aForm === this.FORMS.Objekt)])\n\n    // const [servicesFolders, plansFolders] = await Promise.all([\n    //   Aeppic.query('b41dd25d-922e-4e07-a14e-75245d846707', location),\n    //   Aeppic.query('72117ae9-9c31-402b-abd2-1f5ee2a7519a', location)\n    // ])\n \n    // Aeppic.subscribe(\n    //   `p:${servicesFolders[0].id} f.id:${this.FORMS.Wartung} data.firma.id:${document.id} created.at:[now/d-7d TO *] AND NOT data.status:3`,\n    //   {\n    //     sort: {\n    //       field: 'created.at',\n    //       descending: true\n    //     }\n    //   },\n    //   docs => locals.active = docs\n    // )\n\n    // Aeppic.subscribe(\n    //   `p:${plansFolders[0].id} f.id:${this.FORMS.Wartungsplan} data.wartungsfirma.id:${document.id}`,\n    //   {\n    //     sort: {\n    //       field: 'data.name',\n    //     }\n    //   },\n    //   docs => locals.plans = docs\n    // )\n\n    locals.ready = true\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-04-01T11:58:44+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-04-05T13:02:30+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1649163750115,"ct":1648814324506,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","3d678f2a-65f5-4dc1-a643-c5998fa33f32"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"fc9abc72-a01c-4e61-86e4-86ee75a5c554","v":"e8ad202fb2d94609","previous":{"v":"a5e68943a1d68d34"},"p":"c0574720-6967-4293-94a8-e7b32a40fc6f","f":{"id":"design-form","v":"e3fe9ece11aabc5e","text":"Design"},"data":{"name":"xpage-header","applies":"","template":"<style>\n    .headar-edit-command:hover md-icon {\n        opacity:1;\n    }\n</style>\n<document-command class=\"headar-edit-command\" command-id=\"21eb85a1-9189-4641-8165-bd39e354a22a\" target-document=\"document\">\n    {{data.name}}\n    <md-icon style=\"opacity:0\">edit</md-icon>\n</document-command>","css":"","packages":[]},"locks":[],"lockRefs":[],"created":{"at":"2017-09-15T10:29:32+02:00","by":"","from":"","client":"import"},"modified":{"at":"2017-11-08T16:48:09+01:00","by":"","from":"","client":"62a19d68-ea5e-4285-8f62-f7880571a09c"},"t":1467644301578,"ct":1467644300154,"a_depth":4,"a":["apps","3d43a3f5-fea4-488d-9fc1-9dee5e694623","7c30f282-2b84-4976-8735-ba78662ea5e6","c0574720-6967-4293-94a8-e7b32a40fc6f"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"0c5995c7-d8b2-4024-9804-7a65280e7373","v":"404458d88e6d7740","previous":{"v":"initial"},"p":"2b4d7b0d-1b7c-49b7-956c-ab1b701fbe3d","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"xpage-toolbar","applies":"","template":"","css":"","controller":"","packages":[]},"locks":[],"created":{"at":"2018-05-24T16:28:36+02:00","by":"8b6a59dd-6a77-47af-a0e5-8c725dc92fa1","from":"","client":"server"},"modified":{"at":"2019-05-31T09:33:21+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1559295201785,"ct":1527172116246,"a_depth":5,"a":["apps","83c76376-420e-4231-9275-d0fe2ab47c32","ba440134-1703-495e-b869-0f0c8d447f75","91352b74-c5e5-4c05-aa68-f13b0b723f35","2b4d7b0d-1b7c-49b7-956c-ab1b701fbe3d"],"a_forms":["folder","application-form","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"1dd88d84-4b45-483e-96db-749226407c76","v":"initial","cloneOf":{"id":"ce4f19fd-e389-433d-ae51-f1f552e47e7d","v":"a8625b3b55471f1c","text":"xpage-toolbar"},"originalCloneOf":{"id":"ce4f19fd-e389-433d-ae51-f1f552e47e7d","v":"a8625b3b55471f1c","text":"xpage-toolbar"},"p":"dbee6e16-d63a-493c-bba6-505f79918f9f","f":{"id":"design-form","v":"e3fe9ece11aabc5e","text":"Design"},"data":{"name":"xpage-toolbar","applies":"","template":"<div class=\"_CSS-actions\">\n  <button v-if=\"locals.canEdit && controller.isElectron()\" class=\"_CSS-actions__action ae-button _CSS-actions__action\" @click=\"controller.editFile()\">\n    Datei bearbeiten\n  </button>\n  <ae-layout  layout-id=\"99d33d30-e81e-4ff5-a79f-407fc564d2f0\"\n              :param-document=\"document\"\n              :param-form=\"form\"\n              xclass=\"_CSS-actions__action\">\n  </ae-layout>\n  <ae-design :document=\"document\" name=\"security-access\"></ae-design>\n  <ae-design :document=\"document\" name=\"modifying-profile\"></ae-design>\n\n  <template v-if=\"locals.converted && locals.original\">\n    <a :href=\"Aeppic.Content.getSrc(locals.original, 'file')\" target=\"_blank\" :download=\"document.data.name\">\n      <button class=\"_CSS-actions__action ae-button\" title=\"Dokument (Original) herunterladen\">\n        <ae-icon class=\"fa fa-download\"></ae-icon>\n      </button>  \n    </a>\n    <!-- FIXME: extract extension from converted doc -->\n    <a :href=\"Aeppic.Content.getSrc(document, 'datei')\" target=\"_blank\" :download=\"document.data.name + '.mp4'\">\n      <button class=\"_CSS-actions__action ae-button\" title=\"Dokument (Vorschau) herunterladen\">\n        <ae-icon class=\"fa fa-file-image\"></ae-icon>\n      </button>  \n    </a>\n  </template>\n  <a v-else :href=\"Aeppic.Content.getSrc(document, 'datei')\" target=\"_blank\" :download=\"document.data.name\">\n    <button class=\"_CSS-actions__action ae-button\" title=\"Dokument herunterladen\">\n      <ae-icon class=\"fa fa-download\"></ae-icon>\n    </button>  \n  </a>\n  <button v-if=\"controller.canPrint\" class=\"_CSS-actions__action ae-button\" title=\"Dokument drucken\" @click=\"$emit('toolbar', 'print')\">\n    <ae-icon class=\"fa fa-print\"></ae-icon>\n  </button>  \n  <a v-if=\"controller.hasPreview\" :href=\"Aeppic.Content.getPdfUrl(document, 'datei')\" target=\"_blank\" :download=\"document.data.name + '.pdf'\">\n    <button class=\"_CSS-actions__action ae-button\" title=\"Aktuelle Vorschau als PDF herunterladen\">\n      <ae-icon class=\"fa fa-file-pdf\"></ae-icon>\n    </button>  \n  </a>\n</div>\n\n<ae-layout v-if=\"locals.canEdit\"\n          layout-id=\"0ded34c5-1221-4511-af93-d897a79f1369\"\n            :param-document=\"document\"\n            :param-form=\"form\"\n            class=\"_CSS-actions__action\">\n</ae-layout>\n\n","css":"// ._CSS-actions {\n//   height: 100%;\n//   display: flex;\n//   align-items: center;\n//   padding: 4px;\n// }\n\n._CSS {\n  display: flex;\n  justify-content: space-between;\n  border-bottom: var(--ae-border-width) solid var(--ae-border-color);\n}\n\n._CSS-actions {\n  display: grid;\n  grid-gap: var(--ae-size-3);\n  grid-auto-columns: auto;\n  grid-auto-flow:column;\n}\n\n","controller":"class Controller {\n  async init() {\n    locals.original = null\n    locals.converted = null\n\n    this.displayableTypes = [\n      'application/pdf'\n    ]\n\n    this.displayableTypesStartingWith = [\n      'image/',\n      'video/',\n      'application/vnd.oasis.opendocument'\n    ]\n\n    this.displayableTypesIncluding = [\n      'word',\n      'spreadsheet',\n      'powerpoint',\n      'presentation',\n      'mspublisher',\n    ]\n\n    const canEdit = await Aeppic.canEdit(document)\n    locals.canEdit = Aeppic.Account && Aeppic.Account.data.isGroupAccount === false && canEdit === true\n\n    this.subscribeConverted()\n    this.subscribeOriginal()\n  }\n\n  isElectron() {\n    return typeof navigator === 'object' && typeof navigator.userAgent === 'string' && navigator.userAgent.indexOf('Electron') >= 0\n  }\n\n\n  editFile() {\n    Aeppic.editFile(Aeppic.Content.getSrc(document, 'datei'), data.datei.name, {\n      id: document.id,\n      v: document.v,\n      fieldName: 'datei',\n      mimeType: data.datei.type\n    })\n  }\n\n  get canPrint() {\n    const field = data.datei\n    return !field.type.startsWith('video/') && !field.type.startsWith('image/') && this.isDocumentDisplayable\n  }\n\n  get hasPreview() {\n    const field = data.datei\n    return !field.type.startsWith('video/') && !field.type.startsWith('image/') && !field.type.startsWith('application/pdf') && this.isDocumentDisplayable\n  }\n\n  get isDocumentDisplayable() {\n    const type = document.data.datei.type\n\n    if (type == null || typeof type !== 'string') {\n      return false\n    }\n\n    for (const t of this.displayableTypes) {\n      if (t === type) {\n        return true\n      }\n    }\n\n    for (const t of this.displayableTypesStartingWith) {\n      if (type.startsWith(t)) {\n        return true\n      }\n    }\n\n    for (const t of this.displayableTypesIncluding) {\n      if (type.includes(t)) {\n        return true\n      }\n    }\n\n    return false\n  }\n\n  subscribeOriginal() {\n    Aeppic.subscribe(`p:${document.id} f.id:8bf0fb31-716d-4b76-98d8-b7349f1d7529 data.name:original`, (documents) => {\n      locals.original = documents[0]\n    })\n  }\n  subscribeConverted() {\n    Aeppic.subscribe(`p:${document.id} f.id:8bf0fb31-716d-4b76-98d8-b7349f1d7529 data.name:converted`, (documents) => {\n      locals.converted = documents[0]\n    })\n  }\n}\n","packages":[]},"locks":[],"created":{"at":"2020-06-24T12:54:35+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2020-06-24T12:54:35+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1593003275196,"ct":1593003275196,"a_depth":4,"a":["apps","45ada186-e9fd-451d-9dbd-2defc0b4f86f","4ec6a0e5-cf2d-4095-9b70-2e31a64d5679","dbee6e16-d63a-493c-bba6-505f79918f9f"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"7cc7c990-a22e-4dee-b4e0-57ae6acd3150","v":"0fa4b17c8e5d46c6","previous":{"v":"initial"},"p":"cfd3ce74-9fa5-46c8-a9e9-cba33a3b8e70","f":{"id":"design-form","v":"24435d748c76f819","text":"Design"},"data":{"name":"xpage-toolbar","template":"","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2019-04-16T14:04:15+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2019-08-22T12:20:33+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1566476433118,"ct":1555423455384,"a_depth":4,"a":["apps","94a64d89-d204-4918-b147-d717914fb03e","f254ce25-42f1-4333-8ee7-23554bf746c1","cfd3ce74-9fa5-46c8-a9e9-cba33a3b8e70"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"8c8dac16-fae6-41dd-b6ba-45568981d626","v":"bad4aba5281a1e92","previous":{"v":"c1a1ee7eeea46240"},"p":"c0574720-6967-4293-94a8-e7b32a40fc6f","f":{"id":"design-form","v":"e3fe9ece11aabc5e","text":"Design"},"data":{"name":"xpage-toolbar","applies":"","template":"<div class=\"_CSS__actions\">\n  <button class=\"mdc-button _CSS__actions-button\" @click=\"controller.showNewDocumentDialog('folder')\">\n  Neuer Ordner\n  </button>\n  <button class=\"mdc-button _CSS__actions-button\" @click=\"controller.showNewDocumentDialog('file')\">\n  Neue Datei\n  </button>\n  <button class=\"mdc-button _CSS__actions-button\" @click=\"$refs.propertiesDialog.show()\">\n  Bearbeiten\n  </button>\n</div>\n\n<ae-dialog ref=\"propertiesDialog\" title=\"Eigenschaften\">\n  <div slot=\"header\" class=\"_CSS__header\" slot-scope=\"headerScope\">\n    <h2>Bearbeiten</h2>\n    <button class=\"mdc-button\" @click=\"headerScope.close()\">\n      <i class=\"material-icons mdc-button__icon\">close</i>\n    </button>\n  </div>\n  <ae-form slot=\"body\" :document=\"document\" ref=\"propertiesForm\"></ae-form>\n  <div slot=\"commands\" slot-scope=\"dialogScope\">\n    <div class=\"_CSS__dialog-footer\">\n      <button class=\"_CSS__button-save mdc-button\" @click=\"dialogScope.close(); $refs.propertiesForm.save();\">Save</button>\n    </div>\n  </div>\n</ae-dialog>\n\n<ae-dialog ref=\"newDocumentDialog\">\n  <div slot=\"header\" class=\"_CSS__header\" slot-scope=\"headerScope\">\n    <h2></h2>\n    <button class=\"mdc-button\" @click=\"headerScope.close()\">\n      <i class=\"material-icons mdc-button__icon\">close</i>\n    </button>\n  </div>\n  <ae-form slot=\"body\" :document=\"locals.newDocument\" ref=\"newDocumentForm\"></ae-form>\n  <div slot=\"commands\" slot-scope=\"dialogScope\">\n    <div class=\"_CSS__dialog-footer\">\n      <button class=\"_CSS__button-save mdc-button\" @click=\"controller.saveNewDocumentDialog();\">Save</button>\n    </div>\n  </div>\n</ae-dialog>","css":"._CSS__actions {\n  height: 100%;\n  display: flex;\n  align-items: center;\n  justify-content: flex-start;\n  color: var(--mdc-theme-text-primary-on-primary);\n}\n\n._CSS__actions ._CSS__actions-button {\n  color: var(--mdc-theme-text-primary-on-primary-dark);\n}\n\n._CSS__actions-button--delete {\n  color: red;\n}\n\n._CSS__header {\n  display: flex;\n  justify-content: space-between;\n  color: var(--mdc-theme-text-primary-on-primary);\n  background-color: var(--mdc-theme-primary);\n  padding-left: 1em;\n}\n\n._CSS__header .mdc-button {\n  color: var(--mdc-theme-text-primary-on-primary-dark);\n}\n\n._CSS__dialog-footer {\n  display: flex;\n  justify-content: flex-end;\n}\n","controller":"class Controller {\n  init() {\n    locals.newDocument = null\n  }\n\n  async showNewDocumentDialog(fileOrFolder) {\n    let formId = ''\n    if (fileOrFolder === 'folder') {\n      formId = 'c0574720-6967-4293-94a8-e7b32a40fc6f'\n    } else if (fileOrFolder === 'file') {\n      formId = '6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2'\n    } else {  \n      console.warn('[WARN]: unknown document type')\n      return\n    }\n\n    locals.newDocument = await Aeppic.new(formId, document.id)\n    $refs.newDocumentDialog.show()\n  }\n\n  saveNewDocumentDialog() {\n    if ($refs.newDocumentDialog) {\n      $refs.newDocumentDialog.close()\n    }\n    Aeppic.save(locals.newDocument)\n  }\n}","packages":[]},"locks":[],"lockRefs":[],"created":{"at":"2017-11-14T16:48:49+01:00","by":"","from":"","client":"b7fa000b-bf05-4ded-9bb4-bba4d8d66033"},"modified":{"at":"2017-11-28T17:35:26+01:00","by":"","from":"","client":"2d10490a-46c9-46dc-a584-14fa8b5654bf"},"t":1511886926405,"ct":1510674529911,"a_depth":4,"a":["apps","3d43a3f5-fea4-488d-9fc1-9dee5e694623","7c30f282-2b84-4976-8735-ba78662ea5e6","c0574720-6967-4293-94a8-e7b32a40fc6f"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"bb304138-cd9d-49e0-8a70-b8b1f6c76175","v":"a4f3f110c14e4870","previous":{"v":"b0e5e7377d3ff365"},"p":"d2ac3563-3c3f-4f02-b923-9b67abf98d10","f":{"id":"design-form","v":"49954170df6a253b","text":"Design"},"data":{"name":"xpage-toolbar","template":"<div v-if=\"locals.canEdit\" class=\"_CSS-commands-bar\" :class=\"{ '_CSS-commands-bar--edit': locals.documentChanged, 'ae-light': locals.documentChanged, 'ae-theme': locals.documentChanged }\">\n  <ae-layout  layout-id=\"73fd81e5-c901-4c56-9b38-cd04a7d17f8a\"\n              :param-pause=\"locals.dialogOpen\"\n              :param-document-id=\"document.id\"\n              @update=\"() => locals.documentChanged = true\"\n              @save=\"$emit('toolbar', 'save')\"\n              @reset=\"() => { locals.documentChanged = false; $emit('toolbar', 'reset') }\"\n  ></ae-layout>\n\n  <div class=\"_CSS-commands _CSS-commands--space-between\"  v-show=\"!locals.documentChanged\">\n    <div class=\"_CSS-commands\">\n    <ae-layout  layout-id=\"99d33d30-e81e-4ff5-a79f-407fc564d2f0\"\n                :param-document=\"document\"\n                @show=\"() => locals.dialogOpen = true\"\n                @close=\"() => locals.dialogOpen = false\"\n                :param-form=\"form\"></ae-layout>\n      <ae-layout  layout-id=\"aea9f60c-e5c4-4d96-8f81-8f0dda80e442\"\n                  :param-document-id=\"document.id\"></ae-layout>\n      <ae-design :document=\"document\" name=\"security-access\"></ae-design>\n      <ae-design :document=\"document\" name=\"modifying-profile\"></ae-design>\n      <ae-design name=\"additional-toolbar-buttons\" :document=\"document\"></ae-design>\n    </div>                \n      <ae-layout  layout-id=\"0ded34c5-1221-4511-af93-d897a79f1369\"\n                  @show=\"() => locals.dialogOpen = true\"\n                  @close=\"() => locals.dialogOpen = false\"\n                  :param-document=\"document\"\n                  :param-form=\"form\"\n                  v-if=\"!locals.isOwnProfile\"\n      ></ae-layout>\n  </div>\n</div>","css":"._CSS {\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n}\n\n._CSS-commands-bar {\n  flex: 1;\n  margin: 0;\n  padding-left: var(--bp-page-content-padding, 8px); \n  padding-right: var(--bp-page-content-padding, 8px); \n  display: flex;\n  justify-content: space-between;\n  border-bottom: var(--ae-border-width) solid var(--ae-border-color);\n}\n\n._CSS-commands-bar--edit {\n  background: var(--ae-primary-100);\n}\n\n._CSS-commands {\n  display: flex;\n  flex: 1;\n}\n\n._CSS-commands--space-between {\n  justify-content: space-between;\n}\n","controller":"async init() {\n  locals.isOwnProfile = Aeppic.ProfilePage && Aeppic.ProfilePage.id === document.id\n\n  const canEdit = await Aeppic.canEdit(document)\n  locals.canEdit = Aeppic.Account && Aeppic.Account.data.isGroupAccount === false && canEdit === true\n}\n","packages":[],"description":""},"locks":[],"created":{"at":"2019-05-03T13:06:33+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2019-05-03T13:06:33+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1556888793761,"ct":1556888793761,"a_depth":4,"a":["apps","144e85c0-d7f9-4b20-8928-be30f0c78bda","8e6ee7d3-9122-4a2e-8aaf-9fb3bd204b23","d2ac3563-3c3f-4f02-b923-9b67abf98d10"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"be4fec8f-d3f4-4d22-a881-4650e0318fb8","v":"1b5bc52be9f7aa97","previous":{"v":"e75f10704589b33e"},"p":"320bbded-2e47-4772-b662-c54254627ac3","f":{"id":"design-form","v":"e3fe9ece11aabc5e","text":"Design"},"data":{"name":"xpage-toolbar","applies":"","template":"<div class=\"_CSS-commands-bar\">\r\n  <div class=\"_CSS-commands\">\r\n  <button class=\"bp-button bp-button--raised\" @click=\"controller.newPost()\">Neu</button>\r\n  <span style=\"flex:1\"></span>\r\n  <!-- <button class=\"bp-button bp-button--transparent bp-button--icon _CSS-button--danger\" title=\"Dokument löschen\" @click=\"$refs.dialogDelete.show()\">\r\n    <ae-icon class=\"fa fa-trash \"></ae-icon>\r\n  </button> -->\r\n  </div>\r\n</div>\r\n<!-- <div v-if=\"document.p !== 'b61adbaf-b51b-46b5-9358-587ef518075b' && document.p !== 'root'\"> -->\r\n<!-- </div> -->\r\n\r\n<ae-popup ref=\"popupNew\" :key=\"document.id\">\r\n\t<template slot=\"popup\" slot-scope=\"popup\">\r\n\t\t<div class=\"_CSS-popup\" :style=\"{ 'min-width': popup.baseWidth * 2 +'px' }\" @click.stop>\r\n\t\t\t<template v-for=\"child in controller.children\">\r\n\t\t\t\t<div class=\"_CSS-popup-entry\" :key=\"child.id\" @click=\"controller.showNewDocument(child)\">\r\n\t\t\t\t\t<ae-design :document-id=\"child.id\" name=\"icon\"></ae-design>&nbsp;\r\n\t\t\t\t\t<ae-design :document-id=\"child.id\" name=\"title\"></ae-design>\r\n\t\t\t\t</div>\r\n\t\t\t</template>\r\n\t\t</div>\r\n\t</template>\r\n</ae-popup>\r\n\r\n<ae-dialog ref=\"dialogNewDocument\" :title=\"locals.newDocument && locals.newDocument.f.text || ''\">\r\n  <div slot=\"body\" class=\"_CSS-new-post__body\">\r\n    <h3>Newsgroup</h3>\r\n    <select style=\"margin:8px\">\r\n      <option>Sommerfest</option>\r\n    </select>\r\n    <h3>Post</h3>\r\n    <ae-design name=\"new-document\" :document=\"locals.newDocument\" :edit=\"false\" :watch=\"false\"></ae-design>\r\n\t</div>\r\n  <div slot=\"commands\" slot-scope=\"dialogScope\">\r\n\t\t<button class=\"mdc-button mdc-button--raised\" @click=\"dialogScope.close(); controller.saveNewDocument()\">Speichern</button>\r\n\t</div>\r\n</ae-dialog>\r\n\r\n<ae-dialog ref=\"dialogEdit\" title=\"Eigenschaften\">\r\n\t<ae-design name=\"editable-document\" slot=\"body\" :document=\"locals.editableDocument\" :edit=\"false\" :watch=\"false\" ref=\"editDesign\" class=\"ae-stacking-context\"></ae-design>\r\n\t<div slot=\"commands\" slot-scope=\"dialogScope\">\r\n\t\t<button class=\"mdc-button mdc-button--raised\" @click=\"controller.saveEditedDocument()\">Speichern</button>\r\n\t</div>\r\n</ae-dialog>\r\n\r\n<ae-dialog ref=\"dialogDelete\" title=\"Dokument löschen\">\r\n\t<div slot=\"body\">\r\n\t\t<h3>Would you like to delete \"{{ document.data.name || 'this' }}\"?</h3>\r\n\t\t<p>\r\n\t\t\tIt will be permanently deleted. The data will be retained in the archive's history but is no longer user restorable.\r\n\t\t</p>\r\n\t</div>\r\n\t<div slot=\"commands\" slot-scope=\"dialogScope\">\r\n\t\t<div class=\"_CSS-dialog-footer\">\r\n\t\t\t<button class=\"mdc-button\" @click=\"dialogScope.close()\" style=\"margin-right: 1rem;\">Keep it</button>\r\n\t\t\t<button class=\"mdc-button mdc-button--raised _CSS_button _CSS_button--delete\" @click=\"dialogScope.close();Aeppic.delete(document.id);Aeppic.navigateTo(document.p)\">Delete it</button>\r\n\t\t</div>\r\n\t</div>\r\n</ae-dialog>","css":"._CSS {\r\n  display:none;// flex;\r\n  align-items: center;\r\n  justify-content: space-between;\r\n  color: var(--mdc-theme-text-primary-on-primary);\r\n}\r\n\r\n._CSS::after {\r\n  content:'';\r\n  position:absolute;\r\n  height:4px;\r\n  left:0;\r\n  bottom:-0px;\r\n  right:0;\r\n  border-top: 1px solid rgba(0,0,0,0.2);\r\n  background: linear-gradient(to bottom, rgba(0,0,0,0.1) 0%,rgba(0,0,0,0) 100%);\r\n  display:block;\r\n}\r\n\r\n._CSS-commands-bar {\r\n  flex: 1;\r\n  margin: 0;\r\n  padding: 4px 0 8px 0;\r\n  padding-left: var(--bp-page-content-padding, 8px); \r\n  padding-right: var(--bp-page-content-padding, 8px); \r\n  display: flex;\r\n  justify-content: space-between;\r\n  xborder: 1px solid lightgray;\r\n  xbackground: #f0f0f0;\r\n  border-top: 1px solid transparent;\r\n  \r\n}\r\n\r\n._CSS-commands {\r\n  display: flex;\r\n}\r\n\r\n._CSS-commands > .bp-button._CSS-command--primary {\r\n  padding: 8px 16px; \r\n}\r\n\r\n._CSS-commands .bp-button {\r\n  padding: 8px;\r\n}\r\n\r\n._CSS-button--danger:hover > * {\r\n  color: var(--ae-theme-warning);\r\n}\r\n\r\n/* .mdc-button:not(:disabled):before{\r\n  background-color: red;\r\n} */\r\n \r\n._CSS-popup {\r\n  background-color: white;\r\n  padding: 1rem 0 1rem 0;\r\n  border: 1px solid gray;\r\n  box-shadow: 4px 2px 16px 3px #00000012;\r\n}\r\n\r\n._CSS-popup-entry {\r\n  display: flex;\r\n  flex-flow: row;\r\n  align-items: center;\r\n  cursor: pointer;\r\n  padding: 0 1rem 0 1rem\r\n}\r\n\r\n._CSS-popup-entry:hover {\r\n  background: rgba(0,0,0,0.15)\r\n}\r\n\r\n._CSS_button._CSS_button--delete {\r\n  color: red;\r\n}\r\n\r\n._CSS-new-post__body h3 {\r\n  color: var(--ae-foreground-l2);\r\n  padding: 0 8px;\r\n}\r\n\r\n.mdc-button--raised._CSS_button._CSS_button--delete {\r\n  color: var(--mdc-theme-text-primary-on-light, rgba(0, 0, 0, 0.87));\r\n  background-color: #ff2e2e;\r\n}","controller":"class Controller {\r\n  log(e) {\r\n    console.log(e)\r\n  }\r\n\r\n  init() {\r\n    locals.newDocument = null\r\n    locals.latestChanges = null\r\n    locals.editableDocument = null\r\n\r\n    Aeppic.watchRevisions(document.id, (_, changes) => {\r\n      if ($refs.dialogEdit && $refs.dialogEdit.isOpen) {\r\n        return\r\n      }\r\n      locals.latestChanges = changes\r\n    })\r\n    Aeppic.watch(document.id, (_, changes) => {\r\n      const changeHappend = Object.keys(changes).some(key => changes[key] === true)\r\n      if (!changeHappend) {\r\n        this.resetLatestChanges()\r\n      }\r\n    })\r\n  }\r\n\r\n  resetLatestChanges() {\r\n    locals.latestChanges = null\r\n  }\r\n\r\n  get children() {\r\n     if (form.allowedChildrenForms && form.allowedChildrenForms.length) {\r\n      return form.allowedChildrenForms\r\n    }\r\n    // handle form 'repository-folder' different\r\n    if (document.data.contentsForm && document.data.contentsForm.id) {\r\n      return [document.data.contentsForm]\r\n    }\r\n  }\r\n\r\n  openNew(event) {\r\n    $refs.popupNew.toggle(event)\r\n  }\r\n\r\n  async openEditDocument() {\r\n    const editableDocument = await Aeppic.edit(document.id)\r\n    locals.editableDocument = editableDocument\r\n    $refs.dialogEdit.show()\r\n  }\r\n\r\n  saveEditedDocument() {\r\n    Aeppic.save(locals.editableDocument)\r\n    locals.editableDocument = null\r\n    $refs.dialogEdit.close()\r\n  }\r\n\r\n  async newPost() {\r\n    const POST_FORM_ID = '86966584-6ee3-4351-8e6e-ff6e695b970a'\r\n    locals.newDocument = await Aeppic.new(POST_FORM_ID, document.id, { force: true })\r\n    \r\n    //$refs.popupNew.close()\r\n    //$refs.dialogNewDocument.show()\r\n  }\r\n\r\n  saveNewDocument() {\r\n    $refs.dialogNewDocument.close()\r\n    Aeppic.save(locals.newDocument)\r\n    locals.newDocument = null\r\n  }\r\n\r\n  destroy() {\r\n    $refs.popupNew.close()\r\n    this.resetLatestChanges()\r\n  }\r\n}","packages":[]},"locks":[],"created":{"at":"2017-12-12T15:40:31+01:00","by":"","from":"","client":"403c659e-8014-4e8c-aa03-84e288126751"},"modified":{"at":"2019-01-30T09:22:18+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1548840138165,"ct":1513089628845,"a_depth":4,"a":["apps","b91e3079-75ae-49cd-981b-3053bf47208c","e7a0be94-cd94-4210-875e-0cceb7e8bc6c","320bbded-2e47-4772-b662-c54254627ac3"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"c7308e7a-40d0-419c-ad8b-dee1edbf5df3","v":"979cefd3c8fd4a94","previous":{"v":"5a6f40fb60beb640"},"p":"fb822f2f-880c-4676-be8b-cc557e822bc4","f":{"id":"design-form","v":"65801907e0c30697","text":"Design"},"data":{"name":"xpage-toolbar","template":"","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2019-07-17T17:17:48+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","from":"","client":"server"},"modified":{"at":"2021-10-25T14:09:09+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1635170949359,"ct":1563383868515,"a_depth":4,"a":["apps","94a64d89-d204-4918-b147-d717914fb03e","f254ce25-42f1-4333-8ee7-23554bf746c1","fb822f2f-880c-4676-be8b-cc557e822bc4"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"ce4f19fd-e389-433d-ae51-f1f552e47e7d","v":"a8625b3b55471f1c","previous":{"v":"849dc0e05727633f"},"p":"6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2","f":{"id":"design-form","v":"e3fe9ece11aabc5e","text":"Design"},"data":{"name":"xpage-toolbar","applies":"","template":"<div class=\"_CSS-actions\">\n  <button v-if=\"locals.canEdit && controller.isElectron()\" class=\"_CSS-actions__action ae-button _CSS-actions__action\" @click=\"controller.editFile()\">\n    Datei bearbeiten\n  </button>\n  <ae-layout  layout-id=\"99d33d30-e81e-4ff5-a79f-407fc564d2f0\"\n              :param-document=\"document\"\n              :param-form=\"form\"\n              xclass=\"_CSS-actions__action\">\n  </ae-layout>\n  <ae-design :document=\"document\" name=\"security-access\"></ae-design>\n  <ae-design :document=\"document\" name=\"modifying-profile\"></ae-design>\n\n  <template v-if=\"locals.converted && locals.original\">\n    <a :href=\"Aeppic.Content.getSrc(locals.original, 'file')\" target=\"_blank\" :download=\"document.data.name\">\n      <button class=\"_CSS-actions__action ae-button\" title=\"Dokument (Original) herunterladen\">\n        <ae-icon class=\"fa fa-download\"></ae-icon>\n      </button>  \n    </a>\n    <!-- FIXME: extract extension from converted doc -->\n    <a :href=\"Aeppic.Content.getSrc(document, 'datei')\" target=\"_blank\" :download=\"document.data.name + '.mp4'\">\n      <button class=\"_CSS-actions__action ae-button\" title=\"Dokument (Vorschau) herunterladen\">\n        <ae-icon class=\"fa fa-file-image\"></ae-icon>\n      </button>  \n    </a>\n  </template>\n  <a v-else :href=\"Aeppic.Content.getSrc(document, 'datei')\" target=\"_blank\" :download=\"document.data.name\">\n    <button class=\"_CSS-actions__action ae-button\" title=\"Dokument herunterladen\">\n      <ae-icon class=\"fa fa-download\"></ae-icon>\n    </button>  \n  </a>\n  <button v-if=\"controller.canPrint\" class=\"_CSS-actions__action ae-button\" title=\"Dokument drucken\" @click=\"$emit('toolbar', 'print')\">\n    <ae-icon class=\"fa fa-print\"></ae-icon>\n  </button>  \n  <a v-if=\"controller.hasPreview\" :href=\"Aeppic.Content.getPdfUrl(document, 'datei')\" target=\"_blank\" :download=\"document.data.name + '.pdf'\">\n    <button class=\"_CSS-actions__action ae-button\" title=\"Aktuelle Vorschau als PDF herunterladen\">\n      <ae-icon class=\"fa fa-file-pdf\"></ae-icon>\n    </button>  \n  </a>\n</div>\n\n<ae-layout v-if=\"locals.canEdit\"\n          layout-id=\"0ded34c5-1221-4511-af93-d897a79f1369\"\n            :param-document=\"document\"\n            :param-form=\"form\"\n            class=\"_CSS-actions__action\">\n</ae-layout>\n\n","css":"// ._CSS-actions {\n//   height: 100%;\n//   display: flex;\n//   align-items: center;\n//   padding: 4px;\n// }\n\n._CSS {\n  display: flex;\n  justify-content: space-between;\n  border-bottom: var(--ae-border-width) solid var(--ae-border-color);\n}\n\n._CSS-actions {\n  display: grid;\n  grid-gap: var(--ae-size-3);\n  grid-auto-columns: auto;\n  grid-auto-flow:column;\n}\n\n","controller":"class Controller {\n  async init() {\n    locals.original = null\n    locals.converted = null\n\n    this.displayableTypes = [\n      'application/pdf'\n    ]\n\n    this.displayableTypesStartingWith = [\n      'image/',\n      'video/',\n      'application/vnd.oasis.opendocument'\n    ]\n\n    this.displayableTypesIncluding = [\n      'word',\n      'spreadsheet',\n      'powerpoint',\n      'presentation',\n      'mspublisher',\n    ]\n\n    const canEdit = await Aeppic.canEdit(document)\n    locals.canEdit = Aeppic.Account && Aeppic.Account.data.isGroupAccount === false && canEdit === true\n\n    this.subscribeConverted()\n    this.subscribeOriginal()\n  }\n\n  isElectron() {\n    return typeof navigator === 'object' && typeof navigator.userAgent === 'string' && navigator.userAgent.indexOf('Electron') >= 0\n  }\n\n\n  editFile() {\n    Aeppic.editFile(Aeppic.Content.getSrc(document, 'datei'), data.datei.name, {\n      id: document.id,\n      v: document.v,\n      fieldName: 'datei',\n      mimeType: data.datei.type\n    })\n  }\n\n  get canPrint() {\n    const field = data.datei\n    return !field.type.startsWith('video/') && !field.type.startsWith('image/') && this.isDocumentDisplayable\n  }\n\n  get hasPreview() {\n    const field = data.datei\n    return !field.type.startsWith('video/') && !field.type.startsWith('image/') && !field.type.startsWith('application/pdf') && this.isDocumentDisplayable\n  }\n\n  get isDocumentDisplayable() {\n    const type = document.data.datei.type\n\n    if (type == null || typeof type !== 'string') {\n      return false\n    }\n\n    for (const t of this.displayableTypes) {\n      if (t === type) {\n        return true\n      }\n    }\n\n    for (const t of this.displayableTypesStartingWith) {\n      if (type.startsWith(t)) {\n        return true\n      }\n    }\n\n    for (const t of this.displayableTypesIncluding) {\n      if (type.includes(t)) {\n        return true\n      }\n    }\n\n    return false\n  }\n\n  subscribeOriginal() {\n    Aeppic.subscribe(`p:${document.id} f.id:8bf0fb31-716d-4b76-98d8-b7349f1d7529 data.name:original`, (documents) => {\n      locals.original = documents[0]\n    })\n  }\n  subscribeConverted() {\n    Aeppic.subscribe(`p:${document.id} f.id:8bf0fb31-716d-4b76-98d8-b7349f1d7529 data.name:converted`, (documents) => {\n      locals.converted = documents[0]\n    })\n  }\n}\n","packages":[]},"locks":[],"created":{"at":"2017-11-14T10:44:10+01:00","by":"","from":"","client":"5f34b1d0-aa01-4a26-b343-d62cd11f072b"},"modified":{"at":"2019-05-03T13:06:33+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1556888793705,"ct":1510652650524,"a_depth":4,"a":["apps","3d43a3f5-fea4-488d-9fc1-9dee5e694623","7c30f282-2b84-4976-8735-ba78662ea5e6","6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"ec9710e4-b64e-4bca-8d3d-25afae387b3f","v":"initial","previous":{"v":""},"p":"381e2c4e-9eed-42a5-b65c-ad72e25369f0","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"xpage-toolbar","applies":"","template":"<div class=\"_CSS-commands-bar\" :class=\"{ '_CSS-commands-bar--edit': locals.documentChanged}\">\r\n  <div class=\"_CSS-commands\" v-if=\"locals.documentChanged\">\r\n    <!-- <button class=\"bp-button bp-button--raised\" @click=\"$emit('toolbar', 'save')\">\r\n      <div>\r\n        <ae-icon class=\"fa fa-save\"></ae-icon>\r\n        Speichern\r\n      </div>\r\n    </button>\r\n    <button class=\"bp-button bp-button--transparent\" @click=\"$emit('toolbar', 'reset'); controller.resetDocumentChanged()\">\r\n      <div>\r\n        <ae-icon class=\"fa fa-times\"></ae-icon>\r\n        Abbrechen\r\n      </div>\r\n    </button> -->\r\n  </div>\r\n\r\n  <template v-else >\r\n    <div class=\"_CSS-commands\">\r\n      <button class=\"bp-button bp-button--raised\" @click=\"controller.newPost($event)\" xv-if=\"controller.children\">Neu</button>\r\n      <!-- FIXME: use some setting to hide this command -->\r\n      <!-- <button v-if=\"locals.noEditForms.indexOf(document.f.id) === -1\" class=\"bp-button bp-button--transparent\" @click=\"controller.openEditDocument()\">Bearbeiten</button> -->\r\n    </div>\r\n    <!-- FIXME: use some setting to hide this command -->\r\n    <!-- <div class=\"_CSS-commands\" v-if=\"locals.noEditForms.indexOf(document.f.id) === -1\">\r\n      <button class=\"bp-button bp-button--transparent bp-button--icon _CSS-button--danger\" title=\"Dokument löschen\" @click=\"$refs.dialogDelete.show()\">\r\n        <ae-icon class=\"fa fa-trash \"></ae-icon>\r\n      </button>\r\n    </div> -->\r\n  </template>\r\n</div>\r\n<!-- <div v-if=\"document.p !== 'b61adbaf-b51b-46b5-9358-587ef518075b' && document.p !== 'root'\"> -->\r\n<!-- </div> -->\r\n\r\n<ae-popup ref=\"popupNew\" :key=\"document.id\">\r\n\t<template slot=\"popup\" slot-scope=\"popup\">\r\n\t\t<div class=\"_CSS__popup\" :style=\"{ 'min-width': popup.baseWidth * 2 +'px' }\" @click.stop>\r\n\t\t\t<template v-for=\"child in controller.children\">\r\n\t\t\t\t<div class=\"_CSS__popup-entry\" :key=\"child.id\" @click=\"controller.showNewDocument(child)\">\r\n\t\t\t\t\t<ae-design :document-id=\"child.id\" name=\"icon\"></ae-design>&nbsp;\r\n\t\t\t\t\t<ae-design :document-id=\"child.id\" name=\"title\"></ae-design>\r\n\t\t\t\t</div>\r\n\t\t\t</template>\r\n\t\t</div>\r\n\t</template>\r\n</ae-popup>\r\n\r\n<ae-dialog ref=\"dialogNewDocument\" :title=\"locals.newDocument && locals.newDocument.f.text || ''\">\r\n\t<ae-design slot=\"body\" name=\"new-document\" :document=\"locals.newDocument\" :edit=\"false\" :watch=\"false\" class=\"ae-stacking-context\"></ae-design>\r\n\t<div slot=\"commands\" slot-scope=\"dialogScope\">\r\n\t\t<button class=\"mdc-button mdc-button--raised\" @click=\"dialogScope.close(); controller.saveNewDocument()\">Speichern</button>\r\n\t</div>\r\n</ae-dialog>\r\n\r\n<ae-dialog ref=\"dialogEdit\" title=\"Eigenschaften\" :full-screen=\"Aeppic.Device !== 'Desktop'\">\r\n\t<ae-design name=\"editable-document\" slot=\"body\" :document=\"locals.editableDocument\" :edit=\"false\" :watch=\"false\" ref=\"editDesign\" class=\"ae-stacking-context\"></ae-design>\r\n\t<div slot=\"commands\" slot-scope=\"dialogScope\" class=\"_CSS-dialog-edit_commands\">\r\n\t\t<button class=\"mdc-button\" @click=\"dialogScope.close()\">Abbrechen</button>\r\n\t\t<button class=\"mdc-button mdc-button--raised\" @click=\"controller.saveEditedDocument()\">Speichern</button>\r\n\t</div>\r\n</ae-dialog>\r\n\r\n<ae-dialog ref=\"dialogDelete\" title=\"Dokument löschen\">\r\n\t<div slot=\"body\">\r\n\t\t<h3>Would you like to delete \"{{ document.data.name || 'this' }}\"?</h3>\r\n\t\t<p>\r\n\t\t\tIt will be permanently deleted. The data will be retained in the archive's history but is no longer user restorable.\r\n\t\t</p>\r\n\t</div>\r\n\t<div slot=\"commands\" slot-scope=\"dialogScope\">\r\n\t\t<div class=\"_CSS__dialog-footer\">\r\n\t\t\t<button class=\"mdc-button\" @click=\"dialogScope.close()\" style=\"margin-right: 1rem;\">Keep it</button>\r\n\t\t\t<button class=\"mdc-button mdc-button--raised _CSS_button _CSS_button--delete\" @click=\"dialogScope.close();Aeppic.delete(document.id);Aeppic.navigateTo(document.p)\">Delete it</button>\r\n\t\t</div>\r\n\t</div>\r\n</ae-dialog>\r\n\r\n","css":"._CSS {\r\n  display: flex;\r\n  align-items: center;\r\n  justify-content: space-between;\r\n  color: var(--mdc-theme-text-primary-on-primary);\r\n}\r\n\r\n._CSS-commands-bar {\r\n  flex: 1;\r\n  margin: 0;\r\n  padding: 4px 0 8px 0;\r\n  padding-left: var(--bp-page-content-padding, 8px); \r\n  padding-right: var(--bp-page-content-padding, 8px); \r\n  display: flex;\r\n  justify-content: space-between;\r\n  xborder: 1px solid lightgray;\r\n  xbackground: #f0f0f0;\r\n  border-top: 1px solid transparent;\r\n  \r\n}\r\n\r\n._CSS-commands-bar--edit {\r\n  border-top: 1px solid rgba(0,0,0,0.1);\r\n  background: lightyellow;\r\n}\r\n\r\n._CSS-commands-bar::after {\r\n  content:'';\r\n  position:absolute;\r\n  height:4px;\r\n  left:0;\r\n  bottom:-0px;\r\n  right:0;\r\n  border-top: 1px solid rgba(0,0,0,0.2);\r\n  background: linear-gradient(to bottom, rgba(0,0,0,0.1) 0%,rgba(0,0,0,0) 100%);\r\n  display:block;\r\n}\r\n\r\n._CSS-button--danger:hover > * {\r\n  color: var(--ae-theme-warning);\r\n}\r\n\r\n._CSS-commands {\r\n  display: flex;\r\n}\r\n\r\n._CSS-commands > .bp-button._CSS-command--primary {\r\n  padding: 8px 16px; \r\n}\r\n\r\n._CSS-commands .bp-button {\r\n  padding: 8px;\r\n}\r\n\r\n/* .mdc-button:not(:disabled):before{\r\n  background-color: red;\r\n} */\r\n \r\n._CSS__popup {\r\n  background-color: white;\r\n  padding: 1rem 0 1rem 0;\r\n  border: 1px solid gray;\r\n  box-shadow: 4px 2px 16px 3px #00000012;\r\n}\r\n\r\n._CSS__popup-entry {\r\n  display: flex;\r\n  flex-flow: row;\r\n  align-items: center;\r\n  cursor: pointer;\r\n  padding: 0 1rem 0 1rem\r\n}\r\n\r\n._CSS__popup-entry:hover {\r\n  background: rgba(0,0,0,0.15)\r\n}\r\n\r\n._CSS_button._CSS_button--delete {\r\n  color: red;\r\n}\r\n\r\n.mdc-button--raised._CSS_button._CSS_button--delete {\r\n  color: var(--mdc-theme-text-primary-on-light, rgba(0, 0, 0, 0.87));\r\n  background-color: #ff2e2e;\r\n}\r\n\r\n._CSS-dialog-edit_commands {\r\n  flex: 1;\r\n  display: flex;\r\n  justify-content: space-between;\r\n}","controller":"class Controller {\r\n  init() {\r\n    locals.noEditForms = [\r\n      // generic\r\n      'c69a0c1c-6c53-40c2-87e8-5ace866bf1df',\r\n      'repository-folder-form',\r\n      'root-folder-form',\r\n    ]\r\n\r\n    locals.newDocument = null\r\n    locals.documentChanged = null\r\n    locals.editableDocument = null\r\n\r\n    Aeppic.watchRevisions(document.id, (_, notificationReason) => {\r\n      if ($refs.dialogEdit && $refs.dialogEdit.isOpen) {\r\n        return\r\n      }\r\n\r\n      locals.documentChanged = notificationReason\r\n    })\r\n    Aeppic.watch(document.id, (_, notificationReason) => {\r\n      if (notificationReason.updated) {\r\n        this.resetDocumentChanged()\r\n        return\r\n      }\r\n    })\r\n  }\r\n\r\n  resetDocumentChanged() {\r\n    locals.documentChanged = null\r\n  }\r\n\r\n  get children() {\r\n     if (form.allowedChildrenForms && form.allowedChildrenForms.length) {\r\n      return form.allowedChildrenForms\r\n    }\r\n    // handle form 'repository-folder' different\r\n    if (document.data.contentsForm && document.data.contentsForm.id) {\r\n      return [document.data.contentsForm]\r\n    }\r\n  }\r\n\r\n  openNew(event) {\r\n    $refs.popupNew.toggle(event)\r\n  }\r\n\r\n  async openEditDocument() {\r\n    const editableDocument = await Aeppic.edit(document.id)\r\n    locals.editableDocument = editableDocument\r\n    $refs.dialogEdit.show()\r\n  }\r\n\r\n  saveEditedDocument() {\r\n    Aeppic.save(locals.editableDocument)\r\n    locals.editableDocument = null\r\n    $refs.dialogEdit.close()\r\n  }\r\n\r\n  async showNewDocument(formRef) {\r\n    locals.newDocument = await Aeppic.new(formRef.id, document.id)\r\n    $refs.popupNew.close()\r\n    $refs.dialogNewDocument.show()\r\n  }\r\n\r\n  saveNewDocument() {\r\n    $refs.dialogNewDocument.close()\r\n    Aeppic.save(locals.newDocument)\r\n    locals.newDocument = null\r\n  }\r\n\r\n  destroy() {\r\n    $refs.popupNew.close()\r\n    this.resetDocumentChanged()\r\n  }\r\n\r\n  newPost() {\r\n    \r\n  }\r\n}","packages":[]},"locks":[],"created":{"at":"2018-04-19T14:06:22+02:00","by":"","backedBy":"","from":"","client":"server"},"modified":{"at":"2018-04-19T14:06:22+02:00","by":"","backedBy":"","from":"","client":"server"},"t":1524139582523,"ct":1524139582523,"a_depth":4,"a":["apps","b91e3079-75ae-49cd-981b-3053bf47208c","e7a0be94-cd94-4210-875e-0cceb7e8bc6c","381e2c4e-9eed-42a5-b65c-ad72e25369f0"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"aa55fc4d-eb83-4b3c-b5b7-5ead3b9cae09","v":"244cf4f81d0f071c","previous":{"v":"5ed27649b4f0e47d"},"p":"c69a0c1c-6c53-40c2-87e8-5ace866bf1df","f":{"id":"design-form","v":"e3fe9ece11aabc5e","text":"Design"},"data":{"name":"xpath","applies":"","template":"{{data.anschrift.street}} {{data.anschrift.streetNumber}}, {{data.anschrift.postalCode}} {{data.anschrift.city}}","css":"._CSS {\r\n  margin:0;\r\n  padding:0;\r\n}","controller":"","packages":[]},"locks":[],"created":{"at":"2017-12-06T08:16:55+01:00","by":"","from":"","client":"f1da9ff5-73a7-45d1-9262-947a3c86e205"},"modified":{"at":"2019-08-12T14:45:06+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1565621106600,"ct":1512544613469,"a_depth":4,"a":["apps","8f8c9ed7-a7ed-4150-b162-92d6f19a05b0","526d9710-b2bd-4fa7-9341-d780ead102c1","c69a0c1c-6c53-40c2-87e8-5ace866bf1df"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"4fc9c591-f50d-4c6c-b538-34b33325d94e","v":"8bd07feb2ecc7160","previous":{"v":"6a28a57895e5a648"},"p":"e24202d4-aa6f-4ea9-933c-5c1be7e38556","f":{"id":"design-form","v":"0061789efb5c5c29","text":"Design"},"data":{"name":"xpdf","template":"<template v-if=\"locals.ready\">\n  <embed class=\"_CSS-embed\" v-if=\"locals.url\" :src=\"locals.url\" type=\"application/pdf\"></embed>\n  <div v-else class=\"_CSS-placeholder\">\n    <div class=\"_CSS-placeholder__icon\">\n      <ae-icon class=\"fa fa-exclamation-triangle\"></ae-icon>\n    </div>\n    <div>\n      Aktuell kann noch keine Rechnung anzeigt werden. Bitte vervollständigen Sie zuerst das Formular\n    </div>\n  </div>\n</template>","css":"._CSS {\n  display: flex;\n}\n\n._CSS-embed {\n  flex: 1;\n}\n\n._CSS-placeholder {\n  flex: 1;\n  display: flex;\n  flex-flow: column;\n  align-items: center;\n  padding-top: var(--ae-size-10);\n}\n\n._CSS-placeholder__icon {\n  font-size: var(--ae-font-size-8);\n}","controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Textblock: 'd48baecb-5aa1-4165-bb40-4e4a57e0cb12',\n      Position: '8d1804b0-c5c6-4acf-a15f-1b02872e792e',\n      Einstellungen: '7d3b585c-8446-4e4c-937c-98afcac1be00',\n      Kunde: '8fc08287-dbcc-4e41-9d5d-28e4cd828943'\n    }\n\n    this.fonts = {\n      Roboto: {\n        normal: 'https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.66/fonts/Roboto/Roboto-Regular.ttf',\n        bold: 'https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.66/fonts/Roboto/Roboto-Medium.ttf',\n        italics: 'https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.66/fonts/Roboto/Roboto-Italic.ttf',\n        bolditalics: 'https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.66/fonts/Roboto/Roboto-MediumItalic.ttf'\n      },\n    }\n    this.baseUrl = packages.window.location.origin\n    this.pdfMake = packages.pdfMake\n\n    locals.ready = false\n    locals.url = ''\n\n    this.settings = await this.getSettings()\n\n    try { await this.generate(document) } catch (e) { }\n\n    // Aeppic.watchRevisions(document.id, async (doc) => { await this.generate(doc) })\n    // Aeppic.watchMatchingDocuments(`a:${document.id}`, async () => { await this.generate(document) })\n\n    locals.ready = true\n  }   \n\n  async getSettings() {\n    const customer = (await Aeppic.Commands.execute('48686167-8ada-4964-bab1-370e377c9a71', document)).value\n    const settings = await Aeppic.findOne(`a:${customer.a[1]} f.id:${this.FORMS.Einstellungen}`)\n    const {\n      kopfzeile, \n      unternehmensLogo, \n      begruessungRechnung, \n      fusszeileLinks,\n      fusszeileMitte,\n      fusszeileRechts,\n    } = settings.data \n\n \n    const logoUrl = `${this.baseUrl}${Aeppic.Content.getSrc(settings, 'unternehmensLogo')}`\n\n    return {\n      kopfzeile, \n      unternehmensLogoUrl: logoUrl || '', \n      begruessungRechnung: begruessungRechnung || '',\n      fusszeileLinks,\n      fusszeileMitte,\n      fusszeileRechts,\n      customer\n    }\n  }\n\n  async generate(doc) { \n    const detailsTableActionResults = await Aeppic.Actions.run(['5b254189-7c57-4b51-a13b-7bf0301e8f55'], { document: doc, params: { showSums: true, showDate: true, showIndex: true, customer: this.settings.customer } })\n    const detailsTable = detailsTableActionResults[0].value\n    const details = [ { margin: [0, 10], table: detailsTable }]\n    const sums = []\n    const schlusstext = (await Aeppic.Actions.run(['390aee8b-3390-42f8-bf47-942c3cdc835d'], { params: { texts: doc.data.schlusstext } }))[0].value\n\n    if (doc.data.zusammenfassungAnzeigen) {\n      const sumsTableActionResults = await Aeppic.Actions.run(['9b842e43-093c-420a-8dd9-da2346e3b37c'], { document: doc, params: { customer: this.settings.customer } })\n      sums.push({ table: sumsTableActionResults[0].value })\n      sums.push({\n          margin: [0, 10],\n          text: schlusstext,\n          pageBreak: 'after'\n        })\n    } else {\n      details.push({\n        margin: [0, 10],\n        text: schlusstext,\n      })\n    }\n \n    const title =  `Rechnung ${doc.data.name} ${doc.data.nummer ? `Nr. ${doc.data.nummer}` : ''}` \n    // within the old form, the customer itself was the kontakt. Fallback to that\n    const to = this.settings.customer.data.kontakt ? await Aeppic.get(this.settings.customer.data.kontakt) : this.settings.customer\n    const date = doc.data.datum ? Aeppic.DateTime.fromISO(doc.data.datum).toLocaleString(Aeppic.DateTime.DATE_SHORT) : ''\n\n    const pdfTitle = `${title} ${date}`\n\n    const einleitung = (await Aeppic.Actions.run(['390aee8b-3390-42f8-bf47-942c3cdc835d'], { params: { texts: doc.data.einleitung } }))[0].value\n\n    const docDefinition = {\n      info: {\n        title: pdfTitle\n      },\n      pageSize: 'A4',\n      pageOrientation: 'portrait',\n      pageMargins: [40, 150, 40, 60],\n      header: [\n        {\n          margin: [10, 20],\n          image: 'companyLogo',\n          fit: [200, 40],\n          alignment: 'right',\n        },\n        {\n          fontSize: 10,\n          text: this.settings.kopfzeile,\n          margin: [40, 30],\n          alignment: 'left', \n        }\n      ],\n      footer: {\n        margin: [0, 10],\n        style: 'footer',\n        alignment: 'center',\n        columns: [this.settings.fusszeileLinks, this.settings.fusszeileMitte, this.settings.fusszeileRechts]\n      },\n      content: [\n        {\n          text: `${to.data.unternehmen || to.data.ansprechpartner || to.data.name}\\n\\n${this._buildAddressStrings(to.data.adresse).street}\\n${this._buildAddressStrings(to.data.adresse).city}`\n        },\n        {\n          margin: [0, 10],\n          alignment: 'right',\n          layout: 'noBorders',\n          table: {\n            widths: ['*', 'auto', 'auto'],\n              body: [\n                ['', to.data.kundennummer ? 'Kunden Nr.:' : '', to.data.kundennummer || ''],\n                ['', doc.data.nummer ? 'Rechnungs Nr.:' : '', doc.data.nummer || ''],\n                ['', 'Datum:', date],\n              ]\n          }\n        },\n        {\n          margin: [0, 15, 0, 0],\n          style: 'header',\n          text: title,\n        },\n        {\n          margin: [0, 15, 5, 0],\n          text: this.settings.begruessungRechnung,\n        },\n        {\n          margin: [0, 10],\n          text: einleitung\n        },\n        ...sums,\n        ...details\n      ],\n      defaultStyle: {\n        font: 'Roboto',\n        fontSize: 10,\n      },\n      styles: {\n        header: {\n          fontSize: 13,\n          bold: true,\n        },\n        tableHeader: {\n          bold: true,\n          fillColor: '#ededed'\n        },\n        footer: {\n          fontSize: 8,\n        },\n      },\n      images: {\n        companyLogo: this.settings.unternehmensLogoUrl\n      }\n    }\n\n    await this.createPdf(docDefinition, { title: pdfTitle })\n  }\n\n  _buildAddressStrings(addressField) {\n    const street = `${addressField.street} ${addressField.streetNumber} ${addressField.supplement}`\n    const city = `${addressField.postalCode} ${addressField.city}`\n    const address = `${street}, ${city}`\n\n    return {\n      street,\n      city,\n      address\n    }\n  }\n\n  async createPdf(docDefinition, options) {\n    let resolve\n    let reject\n    const promise = new Promise((res, rej) => { resolve = res; reject = rej })\n\n    try {\n      const pdf = await this.pdfMake.createPdf(docDefinition, null, this.fonts)\n\n      const blob = pdf.getBlob((blob) => {\n        const objectUrl = URL.createObjectURL(blob)\n        locals.url = objectUrl\n        resolve()\n\n        $emit('file-blob', { blob, title: options.title })\n      })\n    } catch (e) {\n      return reject()\n    }\n    return promise\n  }\n}\n","packages":[{"id":"10843fbf-4f0c-416b-be7d-42d6bbd0ae68","v":"dc4529325d5a5c20","text":"Window"},{"id":"6d4d5df8-bc1e-42ae-aa48-f0cfdc009ff7","v":"b0c5aef3a774d0f1","text":"pdfmake"}],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-10-05T10:23:34+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-06-08T11:37:57+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1623152277592,"ct":1601893414613,"a_depth":4,"a":["apps","0924db0f-7095-4b51-8966-bad1e45d68ec","a3b935e7-60bc-4996-9b18-668e4361067f","e24202d4-aa6f-4ea9-933c-5c1be7e38556"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"e8ba5677-6dd8-4ecb-b985-31825d752e72","v":"995b93e04f015296","previous":{"v":"40eb917b1a23aa3a"},"p":"ea3fb00c-4b3e-44ed-8bfb-7dce7f8a8f4c","f":{"id":"design-form","v":"0061789efb5c5c29","text":"Design"},"data":{"name":"xpdf","template":"<embed  class=\"_CSS-embed\" v-if=\"locals.url\" :src=\"locals.url\" type=\"application/pdf\"></a>\n<div v-if=\"locals.ready && !locals.url\" class=\"_CSS-placeholder\">\n<div class=\"_CSS-placeholder__icon\">\n<ae-icon class=\"fa fa-exclamation-triangle\"></ae-icon>\n</div>\n<div>\n  Aktuell kann noch kein Angebot angezeigt werden. Bitte vervollständigen Sie zuerst das Formular\n</div>\n</div>\n","css":"._CSS {\n  display: flex;\n}\n\n._CSS-embed {\n  flex: 1;\n}\n\n._CSS-placeholder {\n  flex: 1;\n  display: flex;\n  flex-flow: column;\n  align-items: center;\n  padding-top: var(--ae-size-10);\n}\n\n._CSS-placeholder__icon {\n  font-size: var(--ae-font-size-8);\n}","controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Textblock: 'd48baecb-5aa1-4165-bb40-4e4a57e0cb12',\n      Position: '8d1804b0-c5c6-4acf-a15f-1b02872e792e',\n      Einstellungen: '7d3b585c-8446-4e4c-937c-98afcac1be00',\n    }\n\n    this.fonts = {\n      Roboto: {\n        normal: 'https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.66/fonts/Roboto/Roboto-Regular.ttf',\n        bold: 'https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.66/fonts/Roboto/Roboto-Medium.ttf',\n        italics: 'https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.66/fonts/Roboto/Roboto-Italic.ttf',\n        bolditalics: 'https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.66/fonts/Roboto/Roboto-MediumItalic.ttf'\n      },\n    }\n    this.baseUrl = packages.window.location.origin\n    this.pdfMake = packages.pdfMake\n\n    locals.ready = false\n    locals.url = ''\n\n    this.settings = await this.getSettings()\n\n    try { await this.generate(document) } catch (e) { }\n\n    // Aeppic.watchRevisions(document.id, async (doc) => { await this.generate(doc) })\n    Aeppic.watchMatchingDocuments(`a:${document.id}`, async () => { await this.generate(document) })\n\n    locals.ready = true\n  }   \n\n  async getSettings() {\n    const customer = (await Aeppic.Commands.execute('48686167-8ada-4964-bab1-370e377c9a71', document)).value\n    const settings = await Aeppic.findOne(`a:${customer.a[1]} f.id:${this.FORMS.Einstellungen}`)\n    const {\n      kopfzeile, \n      unternehmensLogo, \n      begruessungAngebot, \n      fusszeileLinks,\n      fusszeileMitte,\n      fusszeileRechts,\n    } = settings.data \n\n\n    const logoUrl = `${this.baseUrl}${Aeppic.Content.getSrc(settings, 'unternehmensLogo')}`\n\n    return {\n      kopfzeile, \n      unternehmensLogoUrl: logoUrl || '', \n      begruessungAngebot: begruessungAngebot || 'Sehr geehrte Damen und Herren,\\n\\ngerne unterbreiten wir Ihnen folgendes Angebot.',\n      fusszeileLinks,\n      fusszeileMitte,\n      fusszeileRechts,\n      customer\n    }\n  }\n \n  async generate(doc) { \n    const tableActionResults = await Aeppic.Actions.run(['5b254189-7c57-4b51-a13b-7bf0301e8f55'], { document: doc, params: { showSums: doc.data.summeAnzeigen, customer: this.settings.customer } })\n    const table = tableActionResults[0].value\n\n    const title = `Angebot ${doc.data.name} ${doc.data.nummer ? `Nr. ${doc.data.nummer}` : ''}` \n    // within the old form, the customer itself was the kontakt. Fallback to that\n    const to = this.settings.customer.data.kontakt ? await Aeppic.get(this.settings.customer.data.kontakt) : this.settings.customer\n    const date = doc.data.datum ? Aeppic.DateTime.fromISO(doc.data.datum).toLocaleString(Aeppic.DateTime.DATE_SHORT) : ''\n    const pdfTitle = `${title} ${date}`\n\n    const einleitung = (await Aeppic.Actions.run(['390aee8b-3390-42f8-bf47-942c3cdc835d'], { params: { texts: doc.data.einleitung } }))[0].value\n    const schlusstext = (await Aeppic.Actions.run(['390aee8b-3390-42f8-bf47-942c3cdc835d'], { params: { texts: doc.data.schlusstext } }))[0].value\n\n    const docDefinition = {\n      info: {\n        title: pdfTitle\n      },\n      pageSize: 'A4',\n      pageOrientation: 'portrait',\n      pageMargins: [40, 150, 40, 60],\n      header: [\n        {\n          margin: [10, 20],\n          image: 'companyLogo',\n          fit: [200, 40],\n          alignment: 'right',\n        },\n        {\n          fontSize: 10,\n          text: this.settings.kopfzeile,\n          margin: [40, 30],\n          alignment: 'left',\n        }\n      ],\n      footer: {\n        margin: [0, 10],\n        style: 'footer',\n        alignment: 'center',\n        columns: [this.settings.fusszeileLinks, this.settings.fusszeileMitte, this.settings.fusszeileRechts]\n      },\n      content: [\n        {\n          text: `${to.data.unternehmen || to.data.ansprechpartner || to.data.name}\\n\\n${this._buildAddressStrings(to.data.adresse).street}\\n${this._buildAddressStrings(to.data.adresse).city}`\n        },\n        {\n          margin: [0, 10],\n          alignment: 'right',\n          layout: 'noBorders',\n          table: {\n            widths: ['*', 'auto', 'auto'],\n              body: [\n                ['', to.data.kundennummer ? 'Kunden Nr.:' : '', to.data.kundennummer || ''],\n                ['', 'Datum:', date],\n              ]\n          }\n        },\n        {\n          margin: [0, 15, 0, 0],\n          style: 'header',\n          text: title,\n        },\n        {\n          margin: [0, 15, 5, 0],\n          text: this.settings.begruessungAngebot,\n        },\n        {\n          margin: [0, 10],\n          text: einleitung\n        },\n        {\n          table,\n        },\n        {\n          margin: [0, 10],\n          text: schlusstext\n        },\n      ],\n      defaultStyle: {\n        font: 'Roboto',\n        fontSize: 10,\n      },\n      styles: {\n        header: {\n          fontSize: 13,\n          bold: true,\n        },\n        tableHeader: {\n          bold: true,\n          fillColor: '#ededed'\n        },\n        footer: {\n          fontSize: 8,\n        },\n      },\n      images: {\n        companyLogo: this.settings.unternehmensLogoUrl\n      }\n    }\n\n    await this.createPdf(docDefinition, { title: pdfTitle })\n  }\n\n  _buildAddressStrings(addressField) {\n    const street = `${addressField.street} ${addressField.streetNumber} ${addressField.supplement}`\n    const city = `${addressField.postalCode} ${addressField.city}`\n    const address = `${street}, ${city}`\n\n    return {\n      street,\n      city,\n      address\n    }\n  }\n\n  async createPdf(docDefinition, options) {\n    let resolve\n    let reject\n    const promise = new Promise((res, rej) => { resolve = res; reject = rej })\n\n    try {\n      const pdf = await this.pdfMake.createPdf(docDefinition, null, this.fonts)\n\n      const blob = pdf.getBlob((blob) => {\n        const objectUrl = URL.createObjectURL(blob)\n        locals.url = objectUrl\n        resolve()\n\n        $emit('file-blob', { blob, title: options.title })\n      })\n    } catch (e) {\n      return reject()\n    }\n    return promise\n  }\n}\n","packages":[{"id":"6d4d5df8-bc1e-42ae-aa48-f0cfdc009ff7","v":"209a9bdb90a0c176","text":"pdfmake"},{"id":"10843fbf-4f0c-416b-be7d-42d6bbd0ae68","v":"dc4529325d5a5c20","text":"Window"}],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-09-30T12:25:40+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-06-08T11:37:50+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1623152270640,"ct":1601468740063,"a_depth":4,"a":["apps","0924db0f-7095-4b51-8966-bad1e45d68ec","a3b935e7-60bc-4996-9b18-668e4361067f","ea3fb00c-4b3e-44ed-8bfb-7dce7f8a8f4c"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"41f14003-62c4-4196-b096-3c3bbb474953","v":"054f4e3ccaa1dc4a","previous":{"v":"9710d6eea4859254"},"p":"0b6a2b21-9425-466e-9e8d-57ec39cc95e1","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"xrd:board","template":"<div class=\"flex gap-4 h-full\">\n  <ae-design name=\"rd:child-projects\" :document=\"document\"></ae-design>\n  \n  <ae-list v-if=\"locals.settings\"\n            list-id=\"bace3889-c006-47c5-9c57-7f4bbe9dfe02\"\n            :params=\"{ ...locals.settings.data, disableFilters: true }\"\n            class=\"flex-1\"\n            :root-document-id=\"document.id\"\n            :param-board-id=\"document.id\"\n            :param-debug=\"false\"\n            query-id=\"f812861f-68c8-4818-9972-be7b5474c9b1\"\n            :filter=\"'f.id:' + locals.settings.data.form[0].id + ' ' + (params.filter || '')\"\n  ></ae-list> \n \n</div>\n \n","css":"","controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Column: '5e068709-4c20-43ed-ba7e-88c52c39754d',\n      BoardSettings: '43420696-8097-4fc1-88e5-c69df9821470',\n      Aufgabe: '0deb4864-cbb6-420c-99ee-337c7444ab24',\n    }\n\n    locals.settings = null\n\n    const query = `p:${document.id} f.id:${this.FORMS.BoardSettings}`\n\n    locals.settings = await Aeppic.findOne(query)\n\n    console.log(locals.settings)\n\n    if (!locals.settings) {  \n      const settings = await Aeppic.new(this.FORMS.BoardSettings, document)\n\n      const form = await Aeppic.get(this.FORMS.Aufgabe)\n      settings.addReference('form', form)\n\n      settings.data.useStamps = true\n      settings.addReference('locations', document)\n\n      Aeppic.save(settings)\n    }\n\n    // if (!locals.settings) {\n    //   const todo = await Aeppic.new(this.FORMS.Column, document)\n    //   todo.data.name = 'To do'\n\n    //   const inProgress = await Aeppic.new(this.FORMS.Column, document)\n    //   inProgress.data.name = 'In Bearbeitung'\n      \n    //   const done = await Aeppic.new(this.FORMS.Column, document)\n    //   done.data.name = 'Fertig'\n\n    //   const settings = await Aeppic.new(this.FORMS.BoardSettings, document)\n    //   settings.data.fieldName = 'column'\n    //   settings.addReference('columnsByRef', todo)\n    //   settings.addReference('columnsByRef', inProgress)\n    //   settings.addReference('columnsByRef', done)\n\n    //   const form = await Aeppic.get(this.FORMS.Aufgabe)\n    //   settings.addReference('form', form)\n\n    //   const columnForm = await Aeppic.get(this.FORMS.Column)\n    //   settings.addReference('columnsByRefForm', columnForm)\n\n    //   Aeppic.saveAll([\n    //     todo,\n    //     inProgress,\n    //     done,\n    //     settings\n    //   ])\n    // }\n\n    Aeppic.subscribe(query, { size: 1 }, (docs) => {\n      locals.settings = docs[0]\n    })\n\n    locals.params = locals.settings.data\n  } \n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-05-09T08:25:40+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-02-27T15:30:48+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1677511848548,"ct":1652084740883,"a_depth":4,"a":["apps","59edbdbc-2cab-426a-bb42-6e57c5158e4f","3be7e887-1bcd-4c3c-979f-b20a986c4c48","0b6a2b21-9425-466e-9e8d-57ec39cc95e1"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","1451a42c-e8f9-430e-8fd0-b2209f389e84"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2026-01-19T15:17:41+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"ct":1768835861002,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Areale: '1a0affea-08fc-467f-8a09-0e170f5ea96e',\n      Areal: '5f4a87a7-5557-4004-bfdc-2fb26c71e0c9',\n      Anlage: '33e3b54d-6b4b-4aa3-8f70-2b834b27bf66',\n    }\n\n    locals.toggled = []\n\n\n    const [arealeFolder, facilities ] = await Promise.all([\n      Aeppic.findOne(`a:${document.a[0]} f.id:${this.FORMS.Areale}`),\n      Aeppic.find(`p:${document.id} f.id:${this.FORMS.Anlage}`),\n    ])\n\n    // const [ areale, ] = await Promise.all([\n    //    Aeppic.find(`p:${arealeFolder.id} f.id:${this.FORMS.Areal}`),\n    // ])\n    const technicalLocations =  await Aeppic.getAll(facilities.map(areal => areal.data.location.id))\n    // const technicalLocations =  await Aeppic.getAll(areale.map(areal => areal.data.object.id))\n    const areale = await Aeppic.getAll(technicalLocations.map(technicalLocation => technicalLocation?.data.object.id))\n\n    locals.facilitiesByArealId = facilities.reduce((res, facility) => {\n      const technicalLocationIndex = technicalLocations.findIndex(locaton => locaton?.id === facility.data.location.id)\n      const areal = areale[technicalLocationIndex]  \n\n      if (!areal) {\n        return res \n      }\n\n      if (!res[areal.id]) {\n        res[areal.id] = [] \n      }\n\n      res[areal.id].push(facility)\n      return res\n    }, {})\n\n    console.log(locals.facilitiesByArealId)\n  }\n\n  onClick(arealId) {\n    const index = locals.toggled.findIndex(a => a ===arealId)\n    if (index === -1) {\n    locals.toggled.push(arealId)\n    } else {\n    locals.toggled.splice(index, 1)\n\n    }\n  }\n}","css":"","description":"","name":"xrd:by-objects","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"\n<div class=\"flex flex-col\">\n  <div v-for=\"(facilities, arealindex) in locals.facilitiesByArealId\" @click.stop=\"controller.onClick(arealindex)\">\n    <ae-design name=\"rd:card\" :document-id=\"arealindex\" ></ae-design>\n\n    <div v-if=\"locals.toggled.includes(arealindex)\"> \n      <ae-list list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\"\n                :documents=\"facilities\"\n                @selected=\"Aeppic.drillInto($event, arguments[1])\"\n                :params=\"{\n                  design: 'rd:card',\n                }\"\n      ></ae-list>\n    </div>\n  </div>\n</div> "},"f":{"id":"design-form","text":"Design","v":"4b1c7a4912f80103"},"id":"7a7c6ef4-a30b-48a4-9d36-0fa3b035c40f","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2026-01-20T12:44:57+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"p":"1451a42c-e8f9-430e-8fd0-b2209f389e84","previous":{"v":"6da9326e5a592cc3"},"stamps":[],"t":1768913097054,"v":"f22b59083af3d1e2"},{"id":"7acfcce0-1b66-4c02-b65f-778503d8bd04","v":"651945604d446762","cloneOf":{"id":"93ecc118-8c15-4302-ab3a-203e67498b44","v":"9107fc19c8ea8fe8","text":"child-projects"},"originalCloneOf":{"id":"93ecc118-8c15-4302-ab3a-203e67498b44","v":"9107fc19c8ea8fe8","text":"child-projects"},"previous":{"v":"ff4aa417c35f44a3"},"p":"0b6a2b21-9425-466e-9e8d-57ec39cc95e1","f":{"id":"design-form","v":"e37099c040ec46e9","text":"Design"},"data":{"name":"xrd:child-projects","template":"<div v-if=\"locals.openProjects.length || locals.closedProjects.length\"\n      class=\"flex flex-col relative min-w-[300px] w-[300px] border-l pl-4 h-full\"\n>\n  <template v-if=\"locals.openProjects.length\">\n    <div class=\"flex justify-between items-center text-sm mb-4\">\n      <div>\n        Teilprojekte\n      </div>\n\n      <button class=\"ae-button ae-button--small\" @click.stop=\"locals.showDone = !locals.showDone\">\n        <span v-show=\"locals.showDone\" title=\"Erledigte Projekte ausblenden\"><ae-icon class=\"fad fa-clipboard-check\"></ae-icon></span> \n        <span v-show=\"!locals.showDone\"  title=\"Erledigte Projekte anzeigen\"><ae-icon class=\"fad fa-clipboard\"></ae-icon></span>\n      </button>\n    </div>\n    <ae-list \n      :documents=\"locals.openProjects\"\n      list-id=\"2dab232c-2c8a-4aa4-b3f9-6023a7116161\"\n      :param-by=\"locals.by\"\n      :param-asc=\"locals.asc\"\n      @selected=\"Aeppic.drillInto($event.id)\"\n      param-design=\"selectable\"\n      :param-design-params=\"{ name: 'card--wide,card' }\"\n      param-gap=\"small\"\n      param-empty-text=\" \"\n      ></ae-list>\n  </template>\n\n  <template v-if=\"locals.showDone\">\n    <div class=\"text-lg mb-4\">\n      Teilprojekte\n    </div>\n  \n    <ae-list  \n      :documents=\"locals.closedProjects\"\n      list-id=\"2dab232c-2c8a-4aa4-b3f9-6023a7116161\"\n      @selected=\"Aeppic.drillInto($event.id)\"\n      param-design=\"selectable\"\n      :param-design-params=\"{ name: 'card--wide,card', forceShowDetails: locals.showProjectDetails }\"\n      param-gap=\"small\"\n      param-empty-text=\"Keine erledigten Teilprojekte vorhanden\"\n      ></ae-list>\n  </template>\n\n\n</div>","css":"","controller":"class Controller {\n  init() {\n    locals.showDone = false\n    locals.projects = []\n    locals.closedProjects = []\n    locals.openProjects = []\n\n    const options = {\n      sort: ['data.name', 'id']\n    }\n   Aeppic.subscribe(`p:${document.id} f.id:0b6a2b21-9425-466e-9e8d-57ec39cc95e1`, options, (projects) => {\n     const { open, closed } = projects.reduce((result, project) => {\n       if (project.data.erledigt) {\n         result.closed.push(project)\n       } else {\n         result.open.push(project)\n       }\n       return result\n     }, { open: [], closed: [] })\n\n     locals.projects = projects\n     locals.openProjects = open\n     locals.closedProjects = closed\n\n     if (projects.length) {\n       $emit('show')\n     } else {\n       $emit('hide')\n     }\n   })\n\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-05-09T09:22:18+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-02-27T15:30:28+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1677511828878,"ct":1652088138746,"a_depth":4,"a":["apps","59edbdbc-2cab-426a-bb42-6e57c5158e4f","3be7e887-1bcd-4c3c-979f-b20a986c4c48","0b6a2b21-9425-466e-9e8d-57ec39cc95e1"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","599db2de-4e07-4722-98bd-7f42d498b352","79718664-ed22-4b52-9c10-037881df3578","7be5f2c5-206b-4ab6-9d4d-c4834baf8e32"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2023-09-11T09:59:33+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1694426373223,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    this.handler = (clickEvent) => {\n      if (!locals.show) {\n        return\n      }\n\n      const clickIsInContainer = clickEvent.composedPath().find(p => p === $refs.container)\n\n      if (!clickIsInContainer) {\n        this.close()\n      }\n    } \n\n    locals.show = false\n\n    // if (params.highlightComment && params.windowWidth < 1280) {\n    //   this.openComments()\n    // }  \n \n    // watchParam('windowWidth', (windowWidth) => {\n    //   if (!params.highlightComment) {\n    //     return\n    //   } \n\n    //   if (windowWidth < 1280) {\n    //     this.openComments()\n    //   } else {\n    //     this.close()\n    //   }\n    // })\n\n  }\n\n  _setupClick() {\n    packages.window.addEventListener('click', this.handler)\n  }\n\n  _tearDownClick() {\n    packages.window.removeEventListener('click', this.handler)\n\n  }\n\n  async openComments() {\n    if (locals.show) {\n      return\n    }\n    \n    this._setupClick()\n\n    locals.show = true\n \n    Aeppic.setTimeout(() => {\n      locals.showList = true\n    }, 450)\n\n    // const pingsQuery = `p:${Aeppic.Account.id} (((f.id:${this.FORMS.Notification} OR f.id:${this.FORMS.NotificationRequest}) data.category:${this.FORMS.PingAsNotificationCategory}) OR f.id:${this.FORMS.Ping}) data.document.id:${params.document.id}`\n    // const commentQuery = `p:${params.document.id} f.id:${this.FORMS.Comment}`\n    // const query = `(${pingsQuery}) OR (${commentQuery})`\n\n    // const searchOptions = { size: 500, sort: { field: 'created.at', descending: true } }\n    \n    // await this._prefetchComments()\n \n    // Aeppic.subscribe(query, searchOptions, docs => locals.comments = docs)\n  }\n\n  close() {\n    this._tearDownClick()\n    locals.show = false\n\n    locals.showList = false\n  }\n\n  destroy() {\n    this._tearDownClick()\n  }\n}           ","css":"","description":"","name":"xrd:context-actions","packages":[{"id":"10843fbf-4f0c-416b-be7d-42d6bbd0ae68","text":"Window","v":"d4ce6dec568c3dc1"}],"template":"<template v-if=\"data.type === 'BIZPIN_CORE' || data.type === 'ENERGIE'\">\n  <div class=\"relative\"> \n    <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n              param-icon=\"far fa-calendar\"\n              @selected=\"controller.openComments()\"\n              param-border=\"border-slate-200\"\n    ></ae-layout> \n  </div>\n\n  <div class=\"fixed top-0 bottom-0 h-screen right-0 z-50 ease-in-out duration-500  max-w-[90%] border-l shadow-lg overflow-hidden bg-white dark:bg-slate-700 flex flex-col\"\n      :class=\"[locals.show ?  'w-[500px] opacity-1' : 'w-0 opacity-0' ]\"\n      ref=\"container\"\n  >\n    <div class=\"flex justify-between px-4 pt-2\">\n      <div class=\"flex gap-2 items-center\">\n        <div class=\"py-1 text-lg \">\n          Agenda\n        </div>\n      </div>\n\n      <ae-layout  layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n                  param-icon=\"fal fa-times\"\n                  @selected=\"controller.close()\"\n                  class=\"self-end text-neutral-500 text-lg\"\n      ></ae-layout>\n    </div>\n\n    <ae-layout  v-if=\"locals.show\"\n                v-show=\"locals.showList\"\n                layout-id=\"e86fc805-7f28-49f1-a13a-f4faa7b71adc\"\n                class=\"shadow flex-1 w-full overflow-hidden\"\n                :param-document=\"document\"\n                @close=\"controller.close()\"\n    ></ae-layout>\n  </div>  \n   \n\n</template>"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"3c67183b-2875-4e40-93ca-35d200b40cfe","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-10-31T14:49:42+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"7be5f2c5-206b-4ab6-9d4d-c4834baf8e32","previous":{"v":"5f2dad76e948b61a"},"stamps":[],"t":1761922182831,"v":"ad2dbfee98a3d538"},{"a":["apps","9d6ee173-26fe-4472-a271-7667f717094e","53b70eca-0cef-448b-9674-22a70a937eb1","8fc08287-dbcc-4e41-9d5d-28e4cd828943"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"ccce8921-a28f-4d2b-b68d-572069236714","text":"rd:more-actions","v":"37b0836d38582f1c"},"created":{"at":"2022-09-21T13:17:13+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1663766233400,"data":{"aliases":[],"controller":"","css":"","description":"","name":"Xrd:context-actions","packages":[],"template":"<div class=\"flex gap-2\">\n  <ae-design name=\"rd:context-actions\" :document=\"document\" :params=\"params\"></ae-design>\n  \n  <ae-layout    layout-id=\"2ad0619d-792e-40ea-9e76-f7801593f6f8\"\n                :param-document=\"document\"\n                :params=\"params\"\n                xxxv-if=\"params.windowWidth <= 1280\"\n  ></ae-layout> \n\n  <!-- <ae-layout  layout-id=\"fc349b35-90c8-43c6-a13d-e4bf52dfc28a\"\n              :param-document=\"document\"\n  ></ae-layout> -->\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"c2d9ae57c7a46896"},"id":"c7a37c06-22c7-4077-a395-6cb3788b38a6","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2024-11-11T12:51:31+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"ccce8921-a28f-4d2b-b68d-572069236714","text":"rd:more-actions","v":"37b0836d38582f1c"},"p":"8fc08287-dbcc-4e41-9d5d-28e4cd828943","previous":{"v":"a47209eefa13e39a"},"stamps":[],"t":1731329491890,"v":"bb726d47eaceeb0f"},{"id":"2eb485ec-7676-4588-8a5b-11fc0a4de254","v":"671fb0a7944a7e0d","previous":{"v":"0910e8a5c9ed324c"},"p":"84ede5f8-c5af-4113-8235-4b7fa528e265","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"xrd:editable-title:input","template":"<input  v-if=\"data.typ === 'RUECKRUF'\"\n        class=\"w-full outline-none\"\n        :value=\"data.titel\"\n        @blur=\"controller.update($event.target.value)\"\n        @keydown.enter.prevent=\"controller.update($event.target.value)\"\n        @keydown.esc.prevent=\"controller.exitEditing()\"\n        spellcheck=\"false\"\n        :disabled=\"!('titel' in data)\"\n        v-focus\n        ref=\"input\"\n>\n<input  v-else\n        class=\"w-full outline-none\"\n        :value=\"data.text\"\n        @blur=\"controller.update($event.target.value)\"\n        @keydown.enter.prevent=\"controller.update($event.target.value)\"\n        @keydown.esc.prevent=\"controller.exitEditing()\"\n        spellcheck=\"false\"\n        :disabled=\"!('text' in data)\"\n        v-focus\n        ref=\"input\"\n>\n ","css":"","controller":"class Controller{\n  init() {\n    locals.skipUpdateOnce = false\n\n    $on('focus', () => {\n      $refs.input.focus()\n    })\n  }\n\n  exitEditing() {\n    $emit('done')\n\n    locals.skipUpdateOnce = true\n  }\n\n  async update(value) {\n    if (locals.skipUpdateOnce) {\n      locals.skipUpdateOnce = false\n\n      return\n    }\n\n    const fieldName = data.typ === 'RUECKRUF' ? 'titel' : 'text'\n\n    if (document.data[fieldName] !== value) {\n      const editable = Aeppic.isEditableDocument(document) ? document : await Aeppic.edit(document) \n\n      editable.data[fieldName] = value\n\n      Aeppic.save(editable)\n    }\n\n    $emit('done')\n  }\n}\n ","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-04-03T14:47:03+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-12-19T14:14:21+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1702995261153,"ct":1680533223189,"a_depth":4,"a":["apps","9d6ee173-26fe-4472-a271-7667f717094e","53b70eca-0cef-448b-9674-22a70a937eb1","84ede5f8-c5af-4113-8235-4b7fa528e265"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"7459e07e-0697-4d5f-8826-bb2534770469","v":"5f502ab51b78273e","cloneOf":{"id":"eafabdcf-6d68-4beb-93d7-1adcb28db4c4","v":"0b2bf1cc134a9691","text":"rd:editable-title:input"},"originalCloneOf":{"id":"eafabdcf-6d68-4beb-93d7-1adcb28db4c4","v":"0b2bf1cc134a9691","text":"rd:editable-title:input"},"previous":{"v":"0ac4a72688b0bfbd"},"p":"6f641574-7cb6-424a-9657-4b8d652a2cf7","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"xrd:editable-title:input","template":"<input  class=\"w-full outline-none\"\n        :value=\"data.nachname\"\n        @blur=\"controller.update($event.target.value)\"\n        @keydown.enter.prevent=\"controller.update($event.target.value)\"\n        @keydown.esc.prevent=\"controller.exitEditing()\"\n        spellcheck=\"false\"\n        :disabled=\"!('nachname' in data)\"\n        v-focus\n        ref=\"input\"\n>\n \n","css":"","controller":"class Controller{\n  init() {\n    locals.skipUpdateOnce = false\n\n    $on('focus', () => {\n      $refs.input.focus()\n    })\n  }\n\n  exitEditing() {\n    $emit('done')\n\n    locals.skipUpdateOnce = true\n  }\n\n  async update(value) {\n    if (locals.skipUpdateOnce) {\n      locals.skipUpdateOnce = false\n\n      return\n    }\n\n    if (document.data.nachname !== value) {\n      const editable = Aeppic.isEditableDocument(document) ? document : await Aeppic.edit(document) \n\n      editable.data.nachname = value\n\n      Aeppic.save(editable)\n    }\n      \n    $emit('done')\n  }\n}\n ","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-03-03T13:57:09+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-12-19T13:48:13+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1702993693451,"ct":1677851829450,"a_depth":4,"a":["apps","37fafb3d-18da-4182-af74-082971d50956","c27d5f5f-22ff-4341-935c-02bfdc3e1ee0","6f641574-7cb6-424a-9657-4b8d652a2cf7"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"b834fd7b-0fe0-487c-b6da-fa3c50714945","v":"e2b91d7723720576","previous":{"v":"e36c1673292145fc"},"p":"0bb3d600-faf0-4a5c-b49f-7994d234ae76","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"xrd:editable-title:input","template":"<!-- <input  class=\"w-full outline-none\"\n      :value=\"data.applicationTitle\"\n      @blur=\"controller.update($event.target.value)\"\n      @keydown.enter.prevent=\"controller.update($event.target.value)\"\n      @keydown.esc.prevent=\"controller.exitEditing()\"\n      spellcheck=\"false\"\n      :disabled=\"!('applicationTitle' in data)\"\n      v-focus\n      ref=\"input\"\n> -->\n\n<input  v-model=\"locals.applicationTitle\"\n        class=\"w-full outline-none bg-transparent\" \n        @focus=\"controller.onFocus()\"\n        @blur=\"controller.exitEditing()\"\n        @keydown.enter.prevent=\"controller.update($event.target.value, true)\"\n        @keydown.esc.prevent=\"controller.exitEditing()\"\n        spellcheck=\"false\"\n        :disabled=\"!('applicationTitle' in data)\"\n        v-focus\n        ref=\"input\"\n>","css":"","controller":"class Controller{\n  async init() {\n    locals.edit = false\n    locals.hasInputDesign = null\n    locals.skipUpdateOnce = false\n    locals.inputValue = data.name\n \n    if (params.editImmediately) {\n      this.showInput()\n    }\n \n    $on('focus', async () => {\n      await this.showInput()\n\n      await Aeppic.nextRenderPass()\n\n      if (locals.hasInputDesign) {\n        $refs.inputDesign.$emit('focus')\n      } else {\n        $refs.input.focus()\n      }\n    })\n  }\n\n  exitEditing(skipAbort = false) {\n    console.log('exitEditing', { skipAbort, listeners: $listeners, name: document.data.name, id: document.id, skipExitingOnce: locals.skipExitingOnce })\n\n    if (locals.skipExitingOnce) {\n      locals.skipExitingOnce = false\n      return\n    }\n\n    if (skipAbort) {\n      $emit('end')\n    } else {\n      $emit('abort')\n    }\n\n    locals.edit = false\n  }\n\n  async update(value, exitEditing = false) {\n    console.log('update', { exitEditing })\n\n    if (document.data.applicationTitle !== value) {\n      const editable = Aeppic.isEditableDocument(document) ? document : await Aeppic.edit(document) \n\n      editable.data.applicationTitle = value\n\n      Aeppic.save(editable)\n    }\n\n    if (exitEditing) {\n      this.exitEditing(true)\n      // @blur will call exiteditng again\n      locals.skipExitingOnce = true\n    }\n  }\n\n  onDesignSave() {\n    console.log('onDesignSave')\n    locals.edit = false\n    \n    $emit('end')\n  }\n\n  onFocus() {\n    console.log('onFocus')\n    locals.inputValue = data.name\n    locals.skipExitingOnce = false\n  }\n}\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-11-08T11:45:14+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-12-19T13:50:58+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1702993858668,"ct":1699443914052,"a_depth":4,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","0bb3d600-faf0-4a5c-b49f-7994d234ae76"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"cace5dc5-401b-427b-88f7-5e0772c7f08e","v":"1b096056bc1f693c","cloneOf":{"id":"d779e3a9-a468-4a3f-b690-f0844917cf93","v":"2dac8083c88e3bac","text":"rd:editable-title:input"},"originalCloneOf":{"id":"d779e3a9-a468-4a3f-b690-f0844917cf93","v":"2dac8083c88e3bac","text":"rd:editable-title:input"},"previous":{"v":"edaabaa44a07c7c9"},"p":"e9f42b0b-50dd-4e21-9152-02c89b73c6d7","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"xrd:editable-title:input","template":"<input  class=\"w-full outline-none\"\n        :value=\"data.titel\"\n        @blur=\"controller.update($event.target.value)\"\n        @keydown.enter.prevent=\"controller.update($event.target.value)\"\n        @keydown.esc.prevent=\"controller.exitEditing()\"\n        spellcheck=\"false\"\n        :disabled=\"!('titel' in data)\"\n        v-focus\n        ref=\"input\"\n>\n \n ","css":"","controller":"class Controller{\n  init() {\n    locals.skipUpdateOnce = false\n\n    $on('focus', () => {\n      $refs.input.focus()\n    })\n  }\n\n  exitEditing() {\n    $emit('done')\n\n    locals.skipUpdateOnce = true\n  }\n\n  async update(value) {\n    if (locals.skipUpdateOnce) {\n      locals.skipUpdateOnce = false\n\n      return\n    }\n\n    if (document.data.titel !== value) {\n      const editable = Aeppic.isEditableDocument(document) ? document : await Aeppic.edit(document) \n\n      editable.data.titel = value\n\n      Aeppic.save(editable)\n    }\n    \n    $emit('done')\n  }\n}\n ","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-03-09T13:16:08+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-12-19T13:42:19+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1702993339702,"ct":1678367768666,"a_depth":4,"a":["apps","0924db0f-7095-4b51-8966-bad1e45d68ec","a3b935e7-60bc-4996-9b18-668e4361067f","e9f42b0b-50dd-4e21-9152-02c89b73c6d7"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"d779e3a9-a468-4a3f-b690-f0844917cf93","v":"65662f875864fbd4","previous":{"v":"e7c71acfe3b0d089"},"p":"54da686f-3f74-441b-b686-ed2b71dd35cc","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"xrd:editable-title:input","template":"<input  class=\"w-full outline-none\"\n        :value=\"data.titel\"\n        @blur=\"controller.update($event.target.value)\"\n        @keydown.enter.prevent=\"controller.update($event.target.value)\"\n        @keydown.esc.prevent=\"$emit('done')\"\n        spellcheck=\"false\"\n        :disabled=\"!('titel' in data)\"\n        v-focus\n        ref=\"input\"\n>\n \n ","css":"","controller":"class Controller{\n  init() {\n    $on('focus', () => {\n      $refs.input.focus()\n    })\n  }\n\n  async update(value) {\n    if (document.data.titel !== value) {\n      const editable = Aeppic.isEditableDocument(document) ? document : await Aeppic.edit(document) \n\n      editable.data.titel = value\n\n      Aeppic.save(editable)\n    }\n\n    $emit('done')\n  }\n}\n ","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-03-08T09:37:53+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-12-19T13:41:52+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1702993312057,"ct":1678268273110,"a_depth":4,"a":["apps","0924db0f-7095-4b51-8966-bad1e45d68ec","a3b935e7-60bc-4996-9b18-668e4361067f","54da686f-3f74-441b-b686-ed2b71dd35cc"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"eafabdcf-6d68-4beb-93d7-1adcb28db4c4","v":"0b5b12df808a0040","previous":{"v":"3dfb3342a3bf5029"},"p":"8fc08287-dbcc-4e41-9d5d-28e4cd828943","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"xrd:editable-title:input","template":"<input  class=\"w-full outline-none\"\n        :value=\"data.unternehmen\"\n        @blur=\"controller.update($event.target.value)\"\n        @keydown.enter.prevent=\"controller.update($event.target.value)\"\n        @keydown.esc.prevent=\"controller.exitEditing()\"\n        spellcheck=\"false\"\n        :disabled=\"!('unternehmen' in data)\"\n        v-focus\n        ref=\"input\"\n>\n \n  ","css":"","controller":"class Controller{\n  init() {\n    locals.skipUpdateOnce = false\n \n    $on('focus', () => {\n      $refs.input.focus()\n    })\n  }\n\n\n  exitEditing() {\n    $emit('abort')\n\n    locals.skipUpdateOnce = true\n  }\n\n  async update(value) {\n    if (locals.skipUpdateOnce) {\n      locals.skipUpdateOnce = false\n\n      return\n    }\n\n    if (document.data.unternehmen !== value) {\n      const editable = Aeppic.isEditableDocument(document) ? document : await Aeppic.edit(document) \n\n      editable.data.unternehmen = value\n\n      Aeppic.save(editable)\n    }\n\n    $emit('end')\n  }\n}\n  ","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-09-21T11:43:19+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-12-19T13:37:30+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1702993050594,"ct":1663760599283,"a_depth":4,"a":["apps","9d6ee173-26fe-4472-a271-7667f717094e","53b70eca-0cef-448b-9674-22a70a937eb1","8fc08287-dbcc-4e41-9d5d-28e4cd828943"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"d426752b-9cc1-4875-84cf-e5cc0708bc29","v":"bcf574ba49c9df99","previous":{"v":"add4801669585e9c"},"p":"8fc08287-dbcc-4e41-9d5d-28e4cd828943","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"xrd:files","template":"<div class=\"px-4 pt-2 h-full \">\n<ae-design name=\"rd:page-embedded\" class=\"h-full shadow\" :document-id=\"data.dmsFolder.id\"></ae-design> \n</div>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-05-05T07:56:43+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2025-01-14T10:34:34+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1736850874395,"ct":1651737403481,"a_depth":4,"a":["apps","9d6ee173-26fe-4472-a271-7667f717094e","53b70eca-0cef-448b-9674-22a70a937eb1","8fc08287-dbcc-4e41-9d5d-28e4cd828943"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["system","b2533f7b-ea85-4680-99ed-d8e11be641b9","0e6939d6-9b93-4165-b6bd-977e4da881f3","627f5b74-3baf-45f8-a1d3-a5936839b844","group"],"a_depth":5,"a_forms":["system-folder-form","folder","application-form","form-folder","form"],"created":{"at":"2023-01-06T14:59:19+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1673017159591,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    locals.accounts = []\n\n    Aeppic.subscribe(`f.id:account data.groups:${document.id}`, { size: 500 }, accounts => locals.accounts = accounts )\n  }\n}\n","css":"","description":"","name":"xrd:form-extra","packages":[],"template":"\n<div class=\"py-4 flex flex-col gap-1\">\n  <div class=\"font-medium flex-1 text-neutral-600\">\n    Benutzer\n  </div>\n\n  <ae-list list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\"\n            :documents=\"locals.accounts\"\n            param-design=\"rd:employee-table-card\"\n            :param-design-params=\"{ groupId: document.id }\"\n            param-empty-text=\"Keine Benutzer dieser Gruppe zugeordnet\"\n  ></ae-list>\n</div>    "},"f":{"id":"design-form","text":"Design","v":"c2d9ae57c7a46896"},"id":"e0d91f81-6c60-453a-a5f2-67e9d29af0a5","inheritedLocks":[null,null,null,null,null,null],"locks":[],"modified":{"at":"2024-11-08T14:38:03+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"group","previous":{"v":"20429c65df749404"},"stamps":[],"t":1731076683007,"v":"81ed13b75dfcb073"},{"id":"ba57f71e-3de9-4a0f-b97a-839997b1347a","v":"953d3daab83a5a05","previous":{"v":"6fd687f94c8a4dae"},"p":"8fc08287-dbcc-4e41-9d5d-28e4cd828943","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"xrd:header-actions","template":"<div class=\"flex gap-2 pl-6\">\n  <div v-for=\"verantwortlich of data.verantwortlich\">\n    <ae-design class=\"text-3xl -ml-4\" name=\"avatar--resizes-with-font\" :document-id=\"verantwortlich.id\" ></ae-design> \n  </div>\n\n    <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n              param-icon=\"fa fa-user-plus\"\n              param-text=\"Verantwortliche\"\n              @selected=\"controller.show()\"\n              v-if=\"!locals.show\"\n              class=\"text-sm\"\n    ></ae-layout>\n \n \n  <ae-form  v-if=\"locals.show\" ref=\"form\" :document=\"document\" layout-id=\"58a24ea3-5dcd-486f-a76f-d86a9c0c74a8\" :auto-save=\"true\"></ae-form>\n</div>       ","css":"","controller":"class C {\n  init() {\n    locals.show = false\n  }\n\n  async show() {\n    locals.show = true\n\n    // FIXME: do not do this ;)\n\n      Aeppic.setTimeout(() => {\n    $refs.form.$el.querySelector('button').click()\n\n      }, 500)\n\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-05-18T13:08:25+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-01-17T14:13:55+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1673964835809,"ct":1652879305079,"a_depth":4,"a":["apps","9d6ee173-26fe-4472-a271-7667f717094e","53b70eca-0cef-448b-9674-22a70a937eb1","8fc08287-dbcc-4e41-9d5d-28e4cd828943"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"d3451802-477a-409d-8c1a-8d2b9a2c2a26","v":"ceee7e5369ca7701","cloneOf":{"id":"ba57f71e-3de9-4a0f-b97a-839997b1347a","v":"5373724ec2308040","text":"rd:header-actions"},"originalCloneOf":{"id":"ba57f71e-3de9-4a0f-b97a-839997b1347a","v":"5373724ec2308040","text":"rd:header-actions"},"previous":{"v":"425e9d03a197ba5b"},"p":"0b6a2b21-9425-466e-9e8d-57ec39cc95e1","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"xrd:header-actions","template":"<div class=\"flex gap-2\">\n  <div v-for=\"verantwortlich of data.verantwortlich\">\n    <ae-design class=\"text-3xl -ml-4\" name=\"avatar--resizes-with-font\" :document-id=\"verantwortlich.id\" ></ae-design> \n  </div>\n\n    <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n              param-icon=\"fa fa-user-plus\"\n              param-text=\"Verantwortliche\"\n              @selected=\"controller.show()\"\n              v-if=\"!locals.show\"\n              class=\"text-sm\"\n    ></ae-layout>\n \n \n  <ae-form  v-if=\"locals.show\" ref=\"form\" :document=\"document\" layout-id=\"58a24ea3-5dcd-486f-a76f-d86a9c0c74a8\" :auto-save=\"true\"></ae-form>\n</div>       \n\n ","css":"","controller":"class C {\n  init() {\n    locals.show = false\n  }\n\n  async show() {\n    locals.show = true\n\n    // FIXME: do not do this ;)\n\n      Aeppic.setTimeout(() => {\n    $refs.form.$el.querySelector('button').click()\n\n      }, 500)\n\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-06-02T08:59:03+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-01-17T14:14:06+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1673964846017,"ct":1654160343876,"a_depth":4,"a":["apps","59edbdbc-2cab-426a-bb42-6e57c5158e4f","3be7e887-1bcd-4c3c-979f-b20a986c4c48","0b6a2b21-9425-466e-9e8d-57ec39cc95e1"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"446abb4b-3ed5-4dda-92f1-c70279444832","v":"2ff8cbf3b73c86c0","previous":{"v":"a65c3bee552f21a8"},"p":"0b6a2b21-9425-466e-9e8d-57ec39cc95e1","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"xrd:list","template":"<div class=\"flex gap-4 h-full\">\n  <ae-form layout-id=\"6c39f2cc-6059-42b2-8796-5c803899367c\"\n            :document=\"document\"\n          :view=\"locals.view\"\n          class=\"flex-1\"\n  ></ae-form>\n\n  <ae-design name=\"rd:child-projects\" :document=\"document\"></ae-design>\n</div> ","css":"","controller":"class Controller {\n  init() {\n    locals.view = {\n      only: {\n        fields: ['aufgaben']\n      }\n    }\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-05-09T08:26:16+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-02-27T15:30:38+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1677511838830,"ct":1652084776043,"a_depth":4,"a":["apps","59edbdbc-2cab-426a-bb42-6e57c5158e4f","3be7e887-1bcd-4c3c-979f-b20a986c4c48","0b6a2b21-9425-466e-9e8d-57ec39cc95e1"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","0af4f8a7-729e-4318-8f82-7e976555004e","0ae4ef2a-62fc-4042-b07e-e93a134fe055","38b0b6a1-46f6-41ed-ac20-4144aee4d57f"],"a_depth":4,"a_forms":["folder","application-form","folder","form"],"created":{"at":"2025-08-21T08:26:40+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1755764800509,"data":{"aliases":[],"controller":"","css":"","description":"","name":"xrd:page-inner","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<div class=\"flex gap-2 w-full h-full\">\n  <div class=\"w-[200px] overflow-x-hidden overflow-y-scroll\">\n    <ae-design name=\"rd:page-inner\" document-id=\"88a42318-5cd6-429b-bc43-1eefeeb5e76f\" :param-active-document-id=\"document.p\"></ae-design>\n  </div>\n\n  <ae-design name=\"rd:epic-page\" :document-id=\"document.data.design.id\" class=\"flex-1 overflow-x-hidden overflow-y-scroll\"\n            :param-new-state-location=\"document.id\" :param-placeholder-document-form=\"document.a.slice(-1)[0]\"\n  ></ae-design>\n</div> "},"f":{"id":"design-form","text":"Design","v":"a6b987f8c80dc07f"},"id":"0c89ce34-8ece-4a79-885e-379fe3bb64c8","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-08-21T14:14:39+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"38b0b6a1-46f6-41ed-ac20-4144aee4d57f","previous":{"v":"2d4d5abdd9432f1f"},"stamps":[],"t":1755785679773,"v":"efa7ec4179a53f29"},{"a":["apps","5093ea32-8d03-430d-afce-fd4f6c34675e","6f523f5c-5db0-4071-b16b-132f4cf642ac","b91dfd60-9bad-478b-92cb-c9abde2c8d36"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"22f41440-500a-4135-8ca0-7e787768b090","text":"rd:page-inner","v":"89d9ec53d6f3b184"},"created":{"at":"2023-10-10T12:08:27+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1696939707169,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      RepositoryFolder: 'repository-folder-form',\n      Schmiedekalender: '43f2603c-e6b0-4a91-9087-4f103c96a2b4'\n    }\n\n    locals.document = null\n\n    const documentsByView = {\n      smith: null,\n    }\n\n    const documents = await Aeppic.find(`p:${document.id}`)\n\n    for (const doc of documents) {\n      const identifier = doc.data.identifier?.trim()\n\n      if (identifier && identifier !== '') {\n        if (documentsByView[identifier]) {\n          throw new Error(`Identifier ${identifier} already used`)\n        }\n \n        documentsByView[identifier] = doc\n        continue\n      }\n\n      // ignore elsewise (could be locks or whatnot)\n    }\n\n    locals.document = documentsByView[params.view]\n\n    watchParam('view', (newView) => locals.document = documentsByView[newView])\n  }\n}","css":"","description":"","name":"xrd:page-inner","packages":[],"template":"<ae-design class=\"h-full w-full\" name=\"rd:calendar\" :document=\"locals.document\" :params=\"params\"></ae-design>"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"21916a88-9d10-44b6-95b5-2bf4720a17c5","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-12-09T11:32:16+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"originalCloneOf":{"id":"22f41440-500a-4135-8ca0-7e787768b090","text":"rd:page-inner","v":"89d9ec53d6f3b184"},"p":"b91dfd60-9bad-478b-92cb-c9abde2c8d36","previous":{"v":"02c70056134e2e81"},"stamps":[],"t":1765279936690,"v":"3d447ab6f9079501"},{"id":"22f41440-500a-4135-8ca0-7e787768b090","v":"e2f861f52ffc53d2","previous":{"v":"b39cf9245ebcc019"},"p":"c9210f72-f48e-47f5-92b8-c2d7a34eecfb","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"xrd:page-inner","template":"<!-- <ae-design class=\"h-full w-full\" name=\"rd:page-inner\" :document=\"locals.document\" :params=\"params\"></ae-design> -->","css":"","controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      DSGVO: '2b4d7b0d-1b7c-49b7-956c-ab1b701fbe3d',\n      RepositoryFolder: 'repository-folder-form',\n      MedikamentTierklinik: '38aab2e1-ee5c-4fc2-90e9-962b4161ac22',\n      MedikamentPferdeklinik: 'e4af0e46-8a46-4741-935d-13e29befd300',\n      Desinfektionsmittel: '08c34da9-1d5d-4b91-a9e9-a9147d7dec6b',\n      FuttermittelTierklinik: 'da7fd443-da96-4fa3-83d9-bdbb188f09f1',\n      FuttermittelPferdeklinik: '90bcd87b-ca52-4533-9a9e-dff73b31c2fc',\n      InternerTelefoneintrag: '219525e1-3d7e-4e00-93df-7a751c36195a',\n      ExternerTelefoneintrag: '69e7c51e-ba71-4a0e-9134-15a020100648',\n      Medizinprodukt: '6845a5ba-141b-4b6b-a14a-7b9854c5bb0e',\n      Vertrag: 'e90e5e3c-3eac-4544-8be0-57dea64e6f56',\n    }\n\n    locals.document = null\n\n    this.documentsByView = {\n      disinfection: null,\n      gdpr: null,\n      feed: null,\n      drugs: null,\n      'phone-internal': null,\n      'phone-internal': null,\n      devicebook: null,\n      contract: null,\n      stable: null,\n    }\n\n    const documents = await Aeppic.find(`p:${document.id}`)   \n\n    for (const doc of documents) {\n      if (doc.f.id === this.FORMS.RepositoryFolder) {\n        if (doc.data.contentsForm?.id === this.FORMS.MedikamentTierklinik || doc.data.contentsForm?.id === this.FORMS.MedikamentPferdeklinik) {\n          this.documentsByView.drugs = doc\n        } else if (doc.data.contentsForm?.id === this.FORMS.Desinfektionsmittel) {\n          this.documentsByView.disinfection = doc\n        } else if (doc.data.contentsForm?.id === this.FORMS.FuttermittelTierklinik || doc.data.contentsForm?.id === this.FORMS.FuttermittelPferdeklinik) {\n          this.documentsByView.feed = doc\n        } else if (doc.data.contentsForm?.id === this.FORMS.InternerTelefoneintrag) {\n          this.documentsByView['phone-internal'] = doc\n        } else if (doc.data.contentsForm?.id === this.FORMS.ExternerTelefoneintrag) {\n          this.documentsByView['phone-external'] = doc\n          this.documentsByView.stable = doc\n        } else if (doc.data.contentsForm?.id === this.FORMS.Medizinprodukt) {\n          this.documentsByView.devicebook = doc\n        } else if (doc.data.contentsForm?.id === this.FORMS.Vertrag) {\n          this.documentsByView.contract = doc\n        }\n\n        continue\n      }\n\n      if (doc.f.id === this.FORMS.DSGVO) {\n        this.documentsByView.gdpr = doc \n        continue\n      }\n\n      // ignore elsewise (could be locks or whatnot)\n    }\n\n    this._setDocument(params.view)\n\n    watchParam('view', (newView) => this._setDocument(newView))\n  }\n\n  _setDocument(view) {\n    locals.document = this.documentsByView[view]\n\n    if (locals.document) {\n      Aeppic.navigateTo(locals.document, { view: view })\n    }\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-10-10T07:55:33+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2024-01-15T15:49:59+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1705333799085,"ct":1696924533643,"a_depth":4,"a":["apps","83c76376-420e-4231-9275-d0fe2ab47c32","247b574c-24bd-4cf1-88e6-69944b56e161","c9210f72-f48e-47f5-92b8-c2d7a34eecfb"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","af6c380d-2ab5-409a-802f-46dba2b426e3","05787127-986a-494f-a69e-8733c1176596","46a28dfa-7518-4867-9519-a5f4cd9b9967"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"cloneOf":{"id":"82d89b11-5939-4742-9c92-36d49f3b5ea2","text":"rd:page-inner","v":"c642f35d587589aa"},"created":{"at":"2025-10-21T11:36:23+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1761046583358,"data":{"aliases":[],"controller":"class Controller {\n   dispatchEventChildren(refName, eventName, eventValue) { \n    if (!$refs[refName] || !$refs[refName].$el || !$refs[refName].$el.children) {\n      return\n    }\n    const children = $refs[refName].$el.children\n    for (let i = 0; i < children.length; i++) {\n      children[i].dispatchEvent(new CustomEvent(eventName, {\n        detail: eventValue\n      }))\n    }\n    $refs[refName].$emit(eventName, eventValue)\n  }\n}","css":"","description":"","name":"xrd:page-inner","packages":[],"template":"<template>\n  <ae-design\n    ref=\"page\"\n    @toolbar.native=\"controller.dispatchEventChildren('page', 'toolbar', $event.detail)\"\n    name=\"rd:page--administator\"\n    :document=\"document\"\n    :params=\"params\"\n    v-on=\"$listeners\"\n    :watch=\"false\"\n  ></ae-design>\n</template>\n"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"4406e0ba-d1c0-498e-af7c-2135b34032f8","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-10-24T15:03:42+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"originalCloneOf":{"id":"82d89b11-5939-4742-9c92-36d49f3b5ea2","text":"rd:page-inner","v":"c642f35d587589aa"},"p":"46a28dfa-7518-4867-9519-a5f4cd9b9967","previous":{"v":"initial"},"stamps":[],"t":1761318222832,"v":"8ab38711c3e4d15c"},{"id":"638ce1c1-5645-4cbe-918e-d7b385f30cdd","v":"initial","cloneOf":{"id":"db3b82f6-a500-47aa-8e85-9f270d71138e","v":"89040425cd3fce11","text":"xrd:page-inner"},"originalCloneOf":{"id":"db3b82f6-a500-47aa-8e85-9f270d71138e","v":"89040425cd3fce11","text":"xrd:page-inner"},"p":"6c649473-bbea-4eb8-82fd-714a97b185cd","f":{"id":"design-form","v":"22a757f630104010","text":"Design"},"data":{"name":"xrd:page-inner","template":"<div class=\"h-full\">\n  <ae-form :document=\"document\"\n          :auto-save=\"true\"\n          :view=\"locals.view\"\n          layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\"\n  ></ae-form>\n  \n  \n  <ae-design name=\"rd:page-inner_default\" :document=\"document\"\n  :params=\"params\" v-on=\"$listeners\"\n  class=\"flex-1 overflow-hidden\"\n  ></ae-design>\n</div>","css":"","controller":"class Controller {\n  init() {\n    locals.view = {\n      only: {\n        fields: [\n          'applicantSupervisorSignature',\n          'applicantSupervisorSignatureAttachments'\n        ]\n      }\n    }\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2025-05-19T11:54:11+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2025-05-19T11:54:11+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1747655651956,"ct":1747655651956,"a_depth":5,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f","6c649473-bbea-4eb8-82fd-714a97b185cd"],"a_forms":["folder","application-form","form-folder","form","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"67bd1763-030d-4d4f-b27c-cf6ef6212cb0","v":"88798f936773cd53","previous":{"v":"7b7b04533ac6cb25"},"p":"e6b7aced-aaa0-49a4-b573-cfa307595402","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"xrd:page-inner","template":"","css":"","controller":"init() {\n  if (document.data.linkedDocument) {\n    Aeppic.navigateTo(document.data.linkedDocument)\n  }\n} \n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-08-14T13:59:11+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-08-14T14:37:38+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1692023858414,"ct":1692021551833,"a_depth":4,"a":["apps","d8c9a42b-e289-4c9a-97ea-801de8ab480a","db8e20d1-732c-4c6b-9cfc-b323f83fa378","e6b7aced-aaa0-49a4-b573-cfa307595402"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"ce11f649-39da-4820-b3a8-8375455d328b","v":"c828d7eb21211c4a","cloneOf":{"id":"59ddb402-a53a-4355-85f9-3faff192435d","v":"6c7a7f65d0695815","text":"rd:page-inner"},"originalCloneOf":{"id":"59ddb402-a53a-4355-85f9-3faff192435d","v":"6c7a7f65d0695815","text":"rd:page-inner"},"previous":{"v":"initial"},"p":"ffa650cf-e351-462e-baef-29f7c8f22d1b","f":{"id":"design-form","v":"0061789efb5c5c29","text":"Design"},"data":{"name":"xrd:page-inner","template":"<ae-expandable class=\"_CSS-expandable h-full flex\"  ref=\"expander\">\r\n  <!-- NOTE: display:flex must be applied, because ae-expandable default styles superseeds tailwinds flex-class -->\r\n  <div class=\"flex-1 flex flex-col h-full w-full relative bg-white\"\r\n      :key=\"locals.rerender\"\r\n      v-if=\"locals.selected\" \r\n      style=\"display:flex\" \r\n  > \r\n    <div class=\"flex justify-between items-center h-[50px] px-4 border-b\">\r\n      <ae-design class=\"w-full\" \r\n                name=\"rd:toolbar\" \r\n                :document=\"document\" \r\n                @toolbar=\"controller.handleToolbarEvent($event)\"\r\n                 :param-readonly=\"!locals.canEdit\"\r\n      ></ae-design> \r\n    </div>\r\n    \r\n    <ae-design\r\n      ref=\"page\"\r\n      style=\"flex:1\"\r\n      :document=\"locals.selected\"\r\n      :key=\"'_CSS-editor'+ locals.selected.v + locals.rerenderKey\"\r\n      name=\"editor\"\r\n      :param-kb-root=\"params.kbRoot\"\r\n      :param-child-types=\"locals.childTypes\"\r\n      :param-readonly=\"!locals.canEdit\" \r\n      @toggle-expand=\"$refs.expander.toggle()\"\r\n      >\r\n    </ae-design>\r\n  </div>\r\n</ae-expandable>","css":"\r\n._CSS-expandable > .ae-expandable__header {\r\n  display: none !important;\r\n} ","controller":"class Controller {\r\n  async init() {\r\n    locals.rerenderKey = 1\r\n    locals.canEdit = false\r\n    locals.childTypes = params.childTypes\r\n    locals.selected = null\r\n\r\n    if (!locals.childTypes) {\r\n      const childTypes = await Aeppic.Preferences.getSettingForDocument('apps:cf914a7f-ff5f-4598-80f1-63c9129e0a71:childTypes', document)\r\n      const parsedChildTypes = childTypes && JSON.parse(childTypes)\r\n\r\n      if (parsedChildTypes?.length) {\r\n        locals.childTypes = parsedChildTypes\r\n      }\r\n    }\r\n\r\n    watchParam('childTypes', newParam => locals.childTypes = newParam)\r\n\r\n    const [ editable, canEdit ] = await Promise.all([\r\n      Aeppic.edit(document),\r\n      Aeppic.canEdit(document)\r\n    ])\r\n\r\n    locals.canEdit = Aeppic.Account?.data.isGroupAccount === false && canEdit === true\r\n    locals.selected = editable\r\n  }\r\n\r\n  handleToolbarEvent(event) {\r\n    const pageElement = $refs.page.$el.children[0]\r\n    pageElement.dispatchEvent(new CustomEvent('toolbar', {\r\n      detail: event\r\n    }))\r\n\r\n    if (event === 'reset') {\r\n      this.reset()\r\n    }\r\n  }\r\n\r\n  async reset() {\r\n    await Aeppic.nextRenderPass()\r\n    locals.selected = await Aeppic.edit(document)\r\n\r\n    locals.rerenderKey += 1\r\n  }\r\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-12-14T11:19:48+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-12-14T11:20:27+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1702552827741,"ct":1702552788695,"a_depth":4,"a":["apps","45ada186-e9fd-451d-9dbd-2defc0b4f86f","4ec6a0e5-cf2d-4095-9b70-2e31a64d5679","ffa650cf-e351-462e-baef-29f7c8f22d1b"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"d2aac46d-5364-46f2-8350-4fba599f6856","v":"9b0f0f9a63523b7b","previous":{"v":"cb7810453c7178fa"},"p":"6f641574-7cb6-424a-9657-4b8d652a2cf7","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"xrd:page-inner","template":"<div class=\"p-2 flex flex-col\">\n\n  <template v-if=\"locals.ready\">\n    <div v-if=\"locals.linkedCustomers.length\">\n      <label class=\"\">\n        Verknüpfte Kunden\n      </label>\n      <div class=\"flex gap-2 mb-4 items-center\">\n        <ae-design name=\"board-card\" :document=\"customer\" v-for=\"customer of locals.linkedCustomers\"\n          @selected=\"Aeppic.navigateTo($event)\"></ae-design>\n      </div>\n    </div>\n\n    <ae-form :document=\"document\" :auto-save=\"true\"></ae-form>\n  </template>\n</div>","css":"","controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      Kunde: '8fc08287-dbcc-4e41-9d5d-28e4cd828943'\n    }\n\n    locals.ready = false\n\n    locals.linkedCustomers = []\n    locals.linkedCustomers = await Aeppic.find(`a:${document.a[0]} f.id:${this.FORMS.Kunde} (data.kontakt:${document.id} OR data.ansprechpartner:${document.id})`)\n\n    locals.ready = true\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-05-25T12:17:22+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-01-19T15:33:06+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1674142386225,"ct":1653481042435,"a_depth":4,"a":["apps","37fafb3d-18da-4182-af74-082971d50956","c27d5f5f-22ff-4341-935c-02bfdc3e1ee0","6f641574-7cb6-424a-9657-4b8d652a2cf7"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"db3b82f6-a500-47aa-8e85-9f270d71138e","v":"89040425cd3fce11","previous":{"v":"c8adaa0f3dab980c"},"p":"e5da9f31-b1bc-4562-ba5d-b165c1d017b4","f":{"id":"design-form","v":"22a757f630104010","text":"Design"},"data":{"name":"xrd:page-inner","template":"<div class=\"h-full\">\n  <ae-form :document=\"document\"\n          :auto-save=\"true\"\n          :view=\"locals.view\"\n          layout-id=\"efdb156e-9350-4cb3-8e00-4a69adec691b\"\n  ></ae-form>\n  \n  \n  <ae-design name=\"rd:page-inner_default\" :document=\"document\"\n  :params=\"params\" v-on=\"$listeners\"\n  class=\"flex-1 overflow-hidden\"\n  ></ae-design>\n</div>","css":"","controller":"class Controller {\n  init() {\n    locals.view = {\n      only: {\n        fields: [\n          'applicantSupervisorSignature',\n          'applicantSupervisorSignatureAttachments'\n        ]\n      }\n    }\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2024-10-25T12:27:05+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2024-10-25T12:45:23+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1729860323815,"ct":1729859225216,"a_depth":5,"a":["apps","009b3a60-72d5-46f6-8dc6-7f9001e03283","cd0dc80e-74a7-44b2-ac65-972cbf47562e","03d08db0-f873-48cd-a5b5-c34937bddc2f","e5da9f31-b1bc-4562-ba5d-b165c1d017b4"],"a_forms":["folder","application-form","form-folder","form","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"a":["apps","0af4f8a7-729e-4318-8f82-7e976555004e","0ae4ef2a-62fc-4042-b07e-e93a134fe055","f62598b6-1cbf-433c-ad71-aca731261f42"],"a_depth":4,"a_forms":["folder","application-form","folder","form"],"created":{"at":"2025-08-18T14:53:28+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1755528808715,"data":{"aliases":[],"controller":"class Controller {\n   async init() {\n    this.FORMS = {\n      Design: 'design-form',\n      EpicPagesDesignFormFallbackDesign: '38b0b6a1-46f6-41ed-ac20-4144aee4d57f',\n    }\n\n    locals.designId = ''\n\n    if (document.a_forms.includes(this.FORMS.EpicPagesDesignFormFallbackDesign)) {\n      const parent = await Aeppic.get(document.p)\n      locals.designId = parent.data.design.id\n    } else {\n      locals.designId = document.p\n    }\n  }\n\n  onMenuDrill(event) {\n    console.log(123, event)\n  }\n} ","css":"","description":"","name":"xrd:page-inner","packages":[],"parameters":[],"parametersCardinalities":[],"parametersControls":[],"parametersDescriptions":[],"parametersTypes":[],"template":"<div class=\"flex gap-2 w-full h-full\">\n  <div class=\"w-[200px] overflow-x-hidden overflow-y-scroll\">\n    <ae-design name=\"rd:page-inner\" document-id=\"88a42318-5cd6-429b-bc43-1eefeeb5e76f\" :param-active-document-id=\"document.p\"\n                @selected=\"controller.onMenuDrill($event)\"\n    ></ae-design>\n  </div>\n\n  <ae-design name=\"rd:epic-page\" :document-id=\"locals.designId\" class=\"flex-1 overflow-x-hidden overflow-y-scroll\" :param-state=\"document\"></ae-design>\n</div> "},"f":{"id":"design-form","text":"Design","v":"a6b987f8c80dc07f"},"id":"ff3baddf-0235-49e4-8afe-9233f449bcb5","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-08-21T14:14:47+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"f62598b6-1cbf-433c-ad71-aca731261f42","previous":{"v":"1841afc6e1c2adc9"},"stamps":[],"t":1755785687458,"v":"ba6313957baef38b"},{"id":"fff51567-488e-42c6-a432-fe5f81aafc6b","v":"cba9df64c51dc2d5","previous":{"v":"25e45c8b2131ee1d"},"p":"7be5f2c5-206b-4ab6-9d4d-c4834baf8e32","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"xrd:page-inner [with day&week buttons, not finished]","template":"<!-- <ae-design name=\"page\" :document=\"document\"></ae-design> -->\n\n\n<div class=\"flex flex-col items-center p-2 w-full h-full\">\n  <section class=\"flex gap-12\"> \n    <div v-for=\"button of locals.buttons\" \n        class=\"min-h-[100px] min-w-[180px] bg-white border border rounded-lg p-2 flex flex-col justify-between items-center\">\n      <div class=\"text-gray-500\">\n        {{ button.text }}\n      </div>\n      \n      <div class=\"text-3xl\">\n        {{ locals.stats[button.key] }}\n      </div>\n\n      <div class=\"w-full bg-gray-100 h-3 relative rounded-lg\">\n        <div class=\"rounded-lg h-full absolute left-0\" :class=\"[ button.color, 'right-[' + (100 - locals.stats[button.key + 'Percent']) + '%]']\"></div>\n      </div>\n    </div>\n  </section>\n\n  <section class=\"mt-3 flex items-center gap-2\">\n      <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n                param-icon=\"far fa-angle-left\"\n                @selected=\"controller.changeBaseDateBy({ weeks: -1 })\"\n      ></ae-layout>\n    \n      <button class=\"ae-button\"\n              :class=\"[ locals.activeSelector && locals.activeSelector.key === selector.key ? 'ae-button--secondary' : '' ]\"\n              v-for=\"selector of locals.selectors\"\n              @click.stop=\"locals.activeSelector = selector\"\n      > \n        <div class=\"\"> \n          {{ selector.label }}\n        </div>\n\n        <div class=\"text-xs text-neutral-500\">\n        {{ selector.start.toLocaleString({ day:'2-digit', weekday: 'short', month: 'short' }) }}\n          <template v-if=\"controller.isWeeklySelector(selector)\">\n          - {{ selector.end.toLocaleString({ day:'2-digit', weekday: 'short', month: 'short' }) }}\n          </template>\n        </div>\n      </button>\n\n      <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n                param-icon=\"far fa-angle-right\"\n                @selected=\"controller.changeBaseDateBy({ weeks: +1 })\"\n      ></ae-layout>\n  </section>\n\n  <section class=\"h-full mt-2 flex-1 w-full flex flex-col gap-4\">\n        <!-- <ae-layout  layout-id=\"978892c9-4757-4f01-926a-697961a1ce1e\"\n                :param-date=\"{ start: locals.activeSelector.start, end: locals.activeSelector.end }\"\n                :param-dashboard-type=\"data.type\"\n                param-filter=\"data.read:false\"\n                param-label=\"Benachrichtigungen (ungelesen)\"\n                class=\"_CSS-list\"\n                :key=\"'notificationsunread' + locals.activeSelector.key\"\n    ></ae-layout> -->\n\n    <ae-layout  layout-id=\"3675ffcc-f19a-4d72-907c-c0b09bf31da7\"\n                :param-date=\"{ start: locals.activeSelector.start, end: locals.activeSelector.end }\"\n                :param-dashboard-type=\"data.type\"\n                :param-debug=\"false\"\n                class=\"_CSS-list\"\n                :key=\"'overdues' + locals.activeSelector.key\"\n    ></ae-layout> \n\n\n    <template v-if=\"data.type === 'BIZPIN' || data.type === 'BIZPIN_CORE' || !data.type\">\n        <ae-layout  layout-id=\"9f48b6a6-ded4-4543-b70a-4bd21a58f117\"\n                  :param-date=\"{ start: locals.activeSelector.start, end: locals.activeSelector.end }\"\n                  :param-dashboard-type=\"data.type\"\n                  :param-debug=\"true\"\n                :param-view=\"controller.isWeeklySelector(locals.activeSelector) ? 'calendar' : 'list'\"\n                  class=\"flex-1\"\n                  :key=\"'mytasksCore' + locals.activeSelector.key\"\n      ></ae-layout>\n    </template>\n    <template v-else>\n      <ae-layout  layout-id=\"54f86044-ce0f-4295-af1c-5bd7a5a2fbe2\"\n                  :param-date=\"{ start: locals.activeSelector.start, end: locals.activeSelector.end }\"\n                  :param-dashboard-type=\"data.type\"\n                  class=\"_CSS-list\"\n                  :key=\"'callbacks' + locals.activeSelector.key\"\n      ></ae-layout>\n      <ae-layout  layout-id=\"683d9180-5b53-432a-bb31-674569cb922c\"\n                  :param-date=\"{ start: locals.activeSelector.start, end: locals.activeSelector.end }\"\n                  :param-dashboard-type=\"data.type\"\n                  class=\"_CSS-list\"\n                  :key=\"'mytasks' + locals.activeSelector.key\"\n      ></ae-layout>\n    </template>\n    \n    <!-- <ae-layout  layout-id=\"978892c9-4757-4f01-926a-697961a1ce1e\"\n                :param-date=\"{ start: locals.activeSelector.start, end: locals.activeSelector.end }\"\n                :param-dashboard-type=\"data.type\"\n                param-filter=\"data.read:true\"\n                param-label=\"Benachrichtigungen (gelesen)\"\n                class=\"_CSS-list\"\n                :key=\"'notificationsread' + locals.activeSelector.key\"\n    ></ae-layout> -->\n  </section>\n</div>","css":"","controller":"class Controller {\n  init() {\n    this.FORMS = {\n      CoreAufgabe: '0deb4864-cbb6-420c-99ee-337c7444ab24'\n    }\n    this.subscription = null\n    this.baseDate = Aeppic.DateTime.local()\n\n    locals.selectors = []\n    locals.buttons = [{\n      key: 'total',\n      text: 'Alle Aufgaben',\n      color: 'bg-sky-300',\n    },\n    {\n      key: 'inProgress',\n      text: 'In Bearbeitung',\n      color: 'bg-orange-300',\n    },\n    {\n      key: 'closed',\n      text: 'Erledigt',\n      color: 'bg-green-300',\n    },\n    ]\n\n    locals.stats = {\n      total: 0,\n      totalPercent: 0,\n      closed: 0,\n      closedPercent: 0,\n      inProgress: 0,\n      inProgressPercent: 0,\n    }\n  \n \n    this.updateSelectors()\n\n    this._updateTasks() \n  }\n\n  _updateTasks() {\n    const start = this.baseDate.startOf('week').toFormat('yyyy-MM-dd')\n    const end = this.baseDate.endOf('week').toFormat('yyyy-MM-dd')\n\n    this.subscription = Aeppic.updateSubscription(this.subscription, `a:${document.a[0]} f.id:${this.FORMS.CoreAufgabe} data.verantwortlich:${Aeppic.ProfilePage.id} (data.bisStart:[${start} TO ${end}] OR data.bisStart:[${start} TO ${end}])`, { size: 999 }, (tasks) => {\n      this.update(tasks)\n    }) \n\n  }\n\n  updateSelectors() {\n    const today = Aeppic.DateTime.local()\n    const todayWeekDay = today.weekday\n\n    const monday = this.baseDate.startOf('week')\n    const isCurrentWorkWeek = today.weekNumber === monday.weekNumber\n\n    const selectors = []\n\n    for(let i = 0; i <= 6; i+=1) {\n      selectors.push(this.buildSelector({ \n        label: isCurrentWorkWeek && i === todayWeekDay - 1 ? 'Heute' : monday.plus({ days: i }).weekdayLong,\n        start: monday.plus({ days: i }),\n        end: monday.plus({ days: i }),\n      }))\n    }\n\n    const workWeekSelector = {\n      label: `KW ${monday.weekNumber}`,\n      start: monday,\n      end: monday.endOf('week')\n    }\n\n    selectors.push(workWeekSelector)\n\n\n    locals.selectors = selectors \n    locals.activeSelector = isCurrentWorkWeek ? locals.selectors[today.weekday - 1] : workWeekSelector\n  }\n\n  changeBaseDateBy(duration) {\n    this.baseDate = this.baseDate.plus(duration)\n\n    this.updateSelectors()\n    this._updateTasks()\n  }\n\n\n  buildSelector(options) {\n    const { label, icon, start, end } = options\n    \n    const selector = {\n      key: Aeppic.uuid(),\n      label: label || '',\n      icon: icon || '',\n      start: start || null,\n      end: end || null\n    } \n\n    return selector\n  }\n\n  update(tasks) {\n    const stats = {\n      total: tasks.length,\n      totalPercent: 100,\n      closed: 0,\n      closedPercent: 0,\n      inProgress: 0,\n      inProgressPercent: 0,\n    }\n\n    for (const task of tasks) {\n      if (task.data.erledigt) {\n        stats.closed += 1\n      } else {\n        stats.open += 1\n      }\n    }\n\n    const percentilePerTask = 100 / stats.total\n    stats.closedPercent = percentilePerTask * stats.closed\n    stats.inProgressPercent = percentilePerTask * stats.inProgress\n\n    locals.stats = stats\n  }\n\n  isWeeklySelector(selector) {\n    return selector.end && selector.end.valueOf() !== selector.start.valueOf()\n  }\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-05-09T14:52:20+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-03-10T14:19:03+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1678457943575,"ct":1652107940210,"a_depth":4,"a":["apps","599db2de-4e07-4722-98bd-7f42d498b352","79718664-ed22-4b52-9c10-037881df3578","7be5f2c5-206b-4ab6-9d4d-c4834baf8e32"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","5093ea32-8d03-430d-afce-fd4f6c34675e","6f523f5c-5db0-4071-b16b-132f4cf642ac","b91dfd60-9bad-478b-92cb-c9abde2c8d36"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2023-10-10T12:18:42+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":""},"ct":1696940322383,"data":{"aliases":[],"controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      RepositoryFolder: 'repository-folder-form',\n      Schmiedekalender: '43f2603c-e6b0-4a91-9087-4f103c96a2b4'\n    }\n\n    locals.document = null\n\n    const documentsByView = {\n      smith: null,\n    }\n\n    const documents = await Aeppic.find(`p:${document.id}`)   \n\n    for (const doc of documents) {\n      // if (doc.f.id === this.FORMS.RepositoryFolder) {\n      //   if (doc.data.contentsForm?.id === this.FORMS.MedikamentTierklinik || doc.data.contentsForm?.id === this.FORMS.MedikamentPferdeklinik) {\n      //     documentsByView.drugs = doc\n      //   } else if (doc.data.contentsForm?.id === this.FORMS.Desinfektionsmittel) {\n      //     documentsByView.disinfection = doc\n      //   } else if (doc.data.contentsForm?.id === this.FORMS.FuttermittelTierklinik || doc.data.contentsForm?.id === this.FORMS.FuttermittelPferdeklinik) {\n      //     documentsByView.feed = doc\n      //   } else if (doc.data.contentsForm?.id === this.FORMS.InternerTelefoneintrag) {\n      //     documentsByView['phone-internal'] = doc\n      //   } else if (doc.data.contentsForm?.id === this.FORMS.ExternerTelefoneintrag) {\n      //     documentsByView['phone-external'] = doc\n      //   }\n\n      //   continue\n      // }\n\n      if (doc.f.id === this.FORMS.Schmiedekalender) {\n        documentsByView.smith = doc \n        continue\n      }\n\n      // ignore elsewise (could be locks or whatnot)\n    }\n\n    console.warn(documentsByView)\n\n    locals.document = documentsByView[params.view]\n\n    watchParam('view', (newView) => locals.document = documentsByView[newView])\n  }\n}","css":"","description":"","name":"xrd:page-toolbar","packages":[],"template":"<ae-design class=\"h-full w-full\" name=\"rd:page-toolbar\" :document=\"locals.document\" :params=\"params\"></ae-design>\n"},"f":{"id":"design-form","text":"Design","v":"987bdf93c60aaa52"},"id":"5fe6c3e8-30f5-47bd-bb08-32cc65e1c890","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2025-12-09T11:32:13+00:00","backedBy":"","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":""},"p":"b91dfd60-9bad-478b-92cb-c9abde2c8d36","previous":{"v":"bba8d37326da8ba5"},"stamps":[],"t":1765279933309,"v":"5374e96f1d3ad539"},{"id":"fb9d8a87-dbec-4082-917d-553e2c127c33","v":"07b071181f680b98","p":"fallback-designs","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"xrd:page-toolbar","template":"<div class=\"flex items-center gap-4\">\n  <ae-layout layout-id=\"262e95e6-f1f8-477c-834b-89d533027e1e\"\n            :param-document=\"document\"\n  ></ae-layout>\n</div>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-11-04T10:15:10+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-11-04T12:49:38+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1720684627142,"ct":1720684627142,"a_depth":2,"a":["system","fallback-designs"],"a_forms":["system-folder-form","folder"],"inheritedLocks":[null,null,null],"stamps":[],"previous":{"v":"47388b2f45a36c7e","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"}},"meta":{"modified":{"at":"2024-07-11T09:57:07+02:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"8b4e808d-c094-45e5-bb17-523e18ef3484","v":"be19f9759f9967ed","previous":{"v":"bc8b70faf5658d3c"},"p":"8fc08287-dbcc-4e41-9d5d-28e4cd828943","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"xrd:projects","template":"<div class=\"flex flex-col h-full overflow-hidden px-4 pt-2\">\n\n \n  <ae-design name=\"rd:page-embedded\"\n            :document-id=\"data.project.id\"\n            class=\"h-full overflow-auto shadow\"\n            :params=\"params\" \n  ></ae-design>\n</div>  \n ","css":"","controller":"init() {\n  locals.view = ''\n  locals.filter = ''\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-05-05T08:02:09+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2025-01-14T10:34:42+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1736850882476,"ct":1651737729907,"a_depth":4,"a":["apps","9d6ee173-26fe-4472-a271-7667f717094e","53b70eca-0cef-448b-9674-22a70a937eb1","8fc08287-dbcc-4e41-9d5d-28e4cd828943"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"a":["apps","94a64d89-d204-4918-b147-d717914fb03e","f254ce25-42f1-4333-8ee7-23554bf746c1","98c77209-1245-43d6-90b5-8625183f470c"],"a_depth":4,"a_forms":["folder","application-form","form-folder","form"],"created":{"at":"2024-12-04T09:03:58+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"ct":1733303038713,"data":{"aliases":[],"controller":"","css":"","description":"","name":"xrd:tasks","packages":[],"template":"<div class=\"h-full flex flex-col gap-4\" ref=\"container\">\n  <!-- FIXME: missing ADD new task -->\n  <div class=\"bg-white dark:bg-slate-800 rounded-md p-4 xl:shadow flex flex-col gap-6\">\n    <ae-list list-id=\"922e8251-6e60-45a4-9df6-3d434363ac01\"\n              :documents=\"data.aufgaben\"\n              param-design=\"rd:card\"\n              @selected=\"Aeppic.drillInto($event)\"\n    ></ae-list>\n  </div>\n</div>\n"},"f":{"id":"design-form","text":"Design","v":"22a757f630104010"},"id":"06e9b3b0-9269-496b-b767-88e75904e0ff","inheritedLocks":[null,null,null,null,null],"locks":[],"modified":{"at":"2024-12-04T09:15:40+00:00","backedBy":null,"by":"02409da3-1795-4f78-a2df-be417ea3d6c0","client":"server","from":"","impersonatedBy":null},"p":"98c77209-1245-43d6-90b5-8625183f470c","previous":{"v":"6c30f96a74b567d9"},"stamps":[],"t":1733303740891,"v":"69d67d5cd69e87ae"},{"id":"30af151f-903d-4666-994c-c8aae3b69b57","v":"acf41c8475eca537","cloneOf":{"id":"8694d17e-f518-4ddd-89d6-3b22b18686c2","v":"ddcca6c22845772f","text":"rd:toolbar"},"originalCloneOf":{"id":"8694d17e-f518-4ddd-89d6-3b22b18686c2","v":"ddcca6c22845772f","text":"rd:toolbar"},"previous":{"v":"initial"},"p":"ffa650cf-e351-462e-baef-29f7c8f22d1b","f":{"id":"design-form","v":"c2d9ae57c7a46896","text":"Design"},"data":{"name":"xrd:toolbar","template":"<div class=\"flex items-center gap-2\">\n    <!-- <ae-layout layout-id=\"80e59dec-29b1-45f1-8391-f5621cf9f0b2\"\n                param-icon=\"fa fa-info\"\n                param-text=\"Details\"\n                @selected=\"$emit('show-details')\"\n                :param-primary=\"true\"\n    ></ae-layout> -->\n\n    <ae-layout \n      vx-show=\"locals.documentChanged\"\n      layout-id=\"73fd81e5-c901-4c56-9b38-cd04a7d17f8a\"\n      :param-document-id=\"document.id\"\n      @save=\"$emit('toolbar', 'save')\"\n      @document-revision=\"controller.revision()\"\n      @document-save=\"controller.save()\"\n      @reset=\"controller.reset()\"\n      :param-show-always=\"true\"\n    >\n    </ae-layout>\n</div> \n","css":"","controller":"init() {\n  locals.documentChanged = false\n}\n\nrevision() {\n  locals.documentChanged = true\n  $emit('document-revision')\n}\n\nsave() {\n  locals.documentChanged = false\n  $emit('document-save')\n}\n\nreset() {\n  locals.documentChanged = false\n  $emit('toolbar', 'reset')\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2023-12-14T11:19:51+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2023-12-14T11:20:22+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1702552822826,"ct":1702552791454,"a_depth":4,"a":["apps","45ada186-e9fd-451d-9dbd-2defc0b4f86f","4ec6a0e5-cf2d-4095-9b70-2e31a64d5679","ffa650cf-e351-462e-baef-29f7c8f22d1b"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"3289573a-8b80-40de-b650-111eae66672e","v":"8cd4abeb436096c4","previous":{"v":"f6e2574ccac4f392"},"p":"88b1f60e-71f6-46f5-94ea-3d7bbe972950","f":{"id":"design-form","v":"24435d748c76f819","text":"Design"},"data":{"name":"xref-card","template":"<div class=\"_CSS-card\" :class=\"{ '_CSS-card--finished': data.erledigt, '_CSS-card--inactive': data.inaktiv }\" @click.stop=\"$emit('selected', document)\">\n  <div class=\"_CSS-card__primary\">\n    <div class=\"_CSS-card-intro\">\n        <button class=\"ae-button\" :disabled=\"params.readonly\" @click.stop=\"data.erledigt = !data.erledigt;save()\">\n          <ae-icon v-if=\"data.erledigt\" class=\"far fa-check-square\"></ae-icon>\n          <ae-icon v-else class=\"far fa-square\"></ae-icon>\n        </button>\n    \n      <ae-design class=\"_CSS-card-title\" name=\"title-as-link\" :document=\"document\" @selected=\"$emit('selected', $event)\"></ae-design>\n    </div>\n  </div>\n  <div class=\"_CSS-card__tertiary\">\n    <div class=\"_CSS-statistics\">\n      <span v-if=\"!data.erledigt && data.bis\" class=\"_CSS_to__date\" title=\"Zu erledigen bis\" :title=\"Aeppic.DateTime.fromISO(data.bis).toLocaleString()\">\n          <div class=\"_CSS-to__title\">Tage übrig</div>\n          <div class=\"_CSS-to__value\" :class=\"{ '_CSS-to__value--overdue': controller.isOverdue, '_CSS-to__value--warning': controller.daysLeft <= 5 && controller.daysLeft >= 0 }\">{{ controller.daysLeft === 0 ? 'Heute' : controller.daysLeft }}</div>\n      </span>\n      <!-- <ae-layout layout-id=\"8c425dba-2523-40f0-947f-f9ccb50718d7\"\n                  class=\"_CSS_to__date\"\n                :params=\"{ document: document, fieldName: 'bis', control: 'date', placeholderIcon: 'fal fa-calendar' }\"\n      ></ae-layout> -->\n      <!-- <ae-design  class=\"_CSS-card__timerecording\"\n                  name=\"timetracking:progress\"\n                  :document=\"document\"\n                  :param-hide-totals=\"true\"\n                  param-min-width=\"190px\"\n      ></ae-design> -->\n      <ae-layout layout-id=\"8c425dba-2523-40f0-947f-f9ccb50718d7\"\n                :params=\"{ document: document, fieldName: 'verantwortlich', control: 'ref', placeholderIcon: 'fal fa-user-circle' }\"\n      ></ae-layout>\n      <!-- <div v-if=\"data.verantwortlich && data.verantwortlich.id\">\n        <ae-design name=\"avatar--tiny\" :document-id=\"data.verantwortlich.id\"></ae-design>\n      </div> -->\n      <div v-if=\"locals.duration\">\n        {{ locals.readableDuration }}\n        <ae-icon class=\"fa fa-hourglass-end\"></ae-icon>\n      </div>\n    </div>\n    <button v-if=\"locals.canDeactivate\" class=\"ae-button\" :title=\"data.inaktiv ? 'Aktivieren' : 'Deaktivieren'\" @click.stop=\"data.inaktiv = !data.inaktiv;save()\">\n      <ae-icon v-if=\"!data.inaktiv\" class=\"fa fa-trash\"></ae-icon>\n      <ae-icon v-else class=\"fa fa-trash-restore\"></ae-icon>\n    </button>\n  </div>\n</div>\n","css":"._CSS {\n  --padding: 0.25rem 1rem 0.2rem 0.5rem;\n  display: flex;\n  flex-flow: column;\n}\n\n._CSS-card {\n  cursor: pointer;\n  display: flex;\n\n  height: 45px;\n\n  border-radius: var(--ae-border-radius);\n  background-color: var(--ae-ui-background);\n\n  border: solid var(--ae-border-width) var(--ae-border-color);\n\n  /* flex: 1; */\n  margin:0;\n  flex-flow: row;\n}\n\n._CSS-card--finished ._CSS-card__primary {\n  text-decoration: line-through;\n  opacity: 0.6;\n}\n\n._CSS-card--inactive {\n  text-decoration: line-through;\n}\n\n._CSS-card--inactive ._CSS-card__primary,\n._CSS-card--inactive ._CSS-card__tertiary {\n  opacity: 0.3;\n}\n\n._CSS-card__flex-container {\n  display: flex;\n}\n\n._CSS-card__flex-container > * ~ * {\n  margin-left: 2ch;\n}\n\n._CSS-card__primary {\n  position: relative;\n\n  display: flex;\n  justify-content: space-between;\n  /* align-items: flex-start; */\n\n  flex: 1;\n  width: 100%;\n  /* padding: var(--padding); */\n  overflow: hidden;\n}\n\n._CSS-card-intro {\n  margin-top: 2px;\n\n  display:flex;\n  flex-direction:row;\n  align-items: center;\n\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n}\n\n._CSS-card-intro > * {\n  margin-right: 1ch;\n}\n\n._CSS-card-title {\n  white-space: normal;\n}\n\n._CSS-card__secondary {\n  flex: 1;\n  padding: var(--padding);\n  font-size: 0.8em;\n  overflow: auto;\n}\n\n._CSS-card__tertiary {\n  position: relative;\n  display: flex;\n  font-size: 0.9em;\n  align-items: center;\n  justify-content: space-between;\n\n  padding: var(--padding);\n\n  color: var(--ae-background-700);\n}\n\n._CSS-card-intro__description {\n  display: flex;\n  font-size: 0.9em;\n  align-items: center;\n  justify-content: space-between;\n}\n\n\n._CSS-statistics {\n  display: flex;\n  align-items: center;\n}\n\n._CSS-statistics > * {\n  margin-right: 2ch;\n}\n\n._CSS .ae-progress, ._CSS .ae-progress:before {\n  height: 2px;\n}\n\n._CSS_to__date {\n  font-size: 0.9em;\n  width: 120px;\n}\n\n._CSS-to__value {\n  color: var(--ae-foreground-l2);\n}\n\n._CSS-to__value--overdue {\n  color: #FF7A6D;\n  font-weight: 500;\n}\n\n._CSS-to__value--warning {\n  color: orange;\n  font-weight: 500;\n}","controller":"class Controller {\n  async init() {\n    locals.readableDuration = ''\n    locals.duration = 0\n    this.form = await Aeppic.getFormForDocument(document)\n\n    Aeppic.subscribeQuery('dd148098-bd15-4baa-a4ce-df14e495c629', document.id, (documents) => {\n      const { readable, millis } = this.totalDuration(documents)\n      locals.readableDuration = readable\n      locals.duration = millis\n    })\n\n    await Aeppic.nextRenderPass()\n    startEditing()\n\n    locals.canDeactivate = await this.accountCanDeactivate()\n  }\n\n  async accountCanDeactivate() {\n    if (params.readonly) {\n      return false\n    }\n\n    const fieldParams = this.form.getFieldControlParams('inaktiv')\n    \n    if (!fieldParams) {\n      return true\n    }\n\n    const enabledCommandId = fieldParams.enabledCommand\n\n    if (!enabledCommandId) {\n      return true\n    }\n\n    try {\n      const enabledCommandResult = await Aeppic.Commands.execute(enabledCommandId, document, {\n        Account: Aeppic.Account\n      })\n\n      return enabledCommandResult.ok && enabledCommandResult.value && enabledCommandResult.value.ok === true\n    } catch(e) {\n      return false\n    }\n  }\n\n  totalDuration(trackings) {\n    const duration = trackings.reduce((prev, cur) => {\n      if (prev) {\n        return Aeppic.DateTimeDuration.fromObject(cur.data.dauer).plus(prev)\n      }\n\n      return Aeppic.DateTimeDuration.fromObject(cur.data.dauer)\n    }, null)\n\n    if (duration) {\n      return { readable: duration.toFormat(\"hh'h' mm'm'\"), millis: duration.valueOf() }\n    }\n\n    return {}\n  }\n\n  get daysLeft() {\n    return -Aeppic.DateTime.local().diff(Aeppic.DateTime.fromISO(data.bis)).toFormat('d')\n  }\n\n  get isOverdue() {\n    if (params.hideOverdue) {\n      return null\n    }\n\n    if (!data.erledigt && data.bis) {\n      return this.daysLeft <= 0\n    }\n \n    return false\n  }\n}\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2019-08-22T12:20:27+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2021-07-08T12:24:26+00:00","by":"47325375-27fb-4303-8bf5-9438a0524219","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1625747066299,"ct":1566476427814,"a_depth":4,"a":["apps","94a64d89-d204-4918-b147-d717914fb03e","f254ce25-42f1-4333-8ee7-23554bf746c1","88b1f60e-71f6-46f5-94ea-3d7bbe972950"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"a7fcf1a9-4eda-4ea9-869e-e4d166691ac3","v":"initial","p":"5152f88f-3006-46f9-959a-423139accf79","f":{"id":"design-form","v":"65801907e0c30697","text":"Design"},"data":{"name":"xref-card-title","template":"<div class=\"_CSS-email-addresses\">\r\n  <span v-if=\"locals.date\"  class=\"_CSS-received\" :title=\"DateTime.fromISO(data.empfangen).toLocaleString(DateTime.DATETIME_FULL)\">{{locals.date}}</span>\r\n  <ae-design name=\"title\" :document-id=\"data.absender.id\" class=\"_CSS-from\"></ae-design>\r\n  <ae-icon style=\"margin: 0 8px\" class=\"fa fa-arrow-right\"></ae-icon>\r\n  <ae-design v-for=\"e of data.empfaenger\" name=\"title\" :document-id=\"e.id\" class=\"_CSS-to\"></ae-design>\r\n</div>\r\n<div v-if=\"data.cc.length > 0\" class=\"_CSS-cc\">\r\n  <div>CC:&nbsp;</div>  \r\n  <ae-design v-for=\"cc of data.cc\" name=\"title\" :document-id=\"cc.id\"></ae-design>\r\n</div>\r\n<div class=\"_CSS-subject\">{{data.name}}</div>\r\n<div class=\"_CSS-body\">{{data.text}}</div>\r\n\r\n<div class=\"_CSS-attachments\" @click.stop.prevent>\r\n  <ae-design v-for=\"a of data.anhaenge\" @selected=\"controller.attachmentSelected($event)\" name=\"ref-card\" :document=\"a\" :param-no-remove=\"true\"></ae-design>\r\n</div>\r\n\r\n\r\n<ae-layout\r\n  v-if=\"locals.previewDocument\"\r\n  ref=\"preview\"\r\n  layout-id=\"bbd6d99f-571d-422f-a2bc-15d3f8ecfae8\"\r\n  :param-file-name=\"locals.previewDocument.data.datei.name\"\r\n  param-field-name=\"datei\"\r\n  :param-document=\"locals.previewDocument\"></ae-layout>\r\n    ","css":"._CSS-received {\r\n  font-size:smaller;\r\n  margin: 0px 8px 0 0;\r\n  white-space: nowrap;\r\n  opacity: 0.5;\r\n  xbackground: var(--ae-background-100);\r\n  text-align: center;\r\n  xborder: 1px solid var(--ae-background-200);\r\n}\r\n\r\n._CSS-email-addresses {\r\n  display:flex;\r\n  align-items: center;\r\n}\r\n\r\n._CSS-to {\r\n  padding: 4px;\r\n  border: 1px solid lightgray;\r\n  border-width: 0 0 1px 0;\r\n  margin: 4px;\r\n}\r\n\r\n._CSS-cc {\r\n  opacity: 0.8;\r\n  font-size:smaller;\r\n  border-width: 0 0 1px 0;\r\n  display:flex;\r\n  flex-direction: row;\r\n  align-items: center;\r\n}\r\n\r\n._CSS-subject {\r\n  font-weight: bolder;\r\n}\r\n\r\n._CSS-body {\r\n  opacity: 0.8; \r\n  -webkit-line-clamp: 2;\r\n  white-space:nowrap;\r\n  max-height:4em;\r\n}\r\n\r\n._CSS-attachments {\r\n  margin-top: 1em;\r\n  display:flex;\r\n  flex-wrap: wrap;\r\n}\r\n\r\n._CSS-attachments > * {\r\n  margin: 0 8px 8px 0;\r\n}","controller":"init() {\r\n  locals.previewDocument = null\r\n\r\n  if (data.empfangen) {\r\n    const received = Aeppic.DateTime.fromISO(data.empfangen)\r\n    const diffNow = received.diffNow()\r\n    const daysAway = Math.round(Math.abs(diffNow.as('days')))\r\n    \r\n    if (daysAway === 0) {\r\n      locals.date = received.toLocaleString(DateTime.TIME_SIMPLE)\r\n    } else {\r\n      locals.date = received.toLocaleString(DateTime.DATE_MED)\r\n    }\r\n  }\r\n}\r\n\r\nasync attachmentSelected(event) {\r\n  debugger\r\n  const doc = await Aeppic.get(event)\r\n  locals.previewDocument = doc\r\n\r\n  await Aeppic.nextRenderPass()\r\n  await Aeppic.nextRenderPass()\r\n  $refs.preview.$emit('show')\r\n}\r\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2019-08-22T12:20:33+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2019-08-22T12:20:33+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1566476433664,"ct":1566476433664,"a_depth":4,"a":["apps","94a64d89-d204-4918-b147-d717914fb03e","f254ce25-42f1-4333-8ee7-23554bf746c1","5152f88f-3006-46f9-959a-423139accf79"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"6a49e494-5888-4fcc-810e-ee235d9a2951","v":"95dcc08c63167440","previous":{"v":"initial"},"p":"232fd875-45c5-4ed8-9e8e-0120bcba31c5","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"xreturn","template":"<div style=\"min-height:600px;min-width:600px\" flex layout=\"column\" layout-align=\"center center\">\n    <div>\n        <rs-form document=\"document\" field-id=\"unterschrift\" style=\"min-width:500px\"></rs-form>\n        <blockquote>\n            Hinweis: Angefangene Anlagewartungen werden gelöscht, falls nicht innerhalb von 5 Arbeitstagen abgeschlossen.<br>\n        </blockquote>\n    </div>\n</div>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-02-28T15:26:43+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-02-28T15:26:49+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1646062009361,"ct":1646062003349,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","232fd875-45c5-4ed8-9e8e-0120bcba31c5"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"0f3c60e2-921f-4af9-af9c-2a5a67a680f1","v":"initial","cloneOf":{"id":"825a7ecd-f3e0-453c-a6b5-0ef00ec09365","v":"25d20c54131186d0","text":"xsearch"},"originalCloneOf":{"id":"825a7ecd-f3e0-453c-a6b5-0ef00ec09365","v":"25d20c54131186d0","text":"xsearch"},"p":"dbee6e16-d63a-493c-bba6-505f79918f9f","f":{"id":"design-form","v":"49954170df6a253b","text":"Design"},"data":{"name":"xsearch","template":"<div class=\"mdc-card mdc-card--theme-dark _CSS\" :class=\"{'new-document':document.v===0, 'modified-document':document.v!==0}\"\n @click=\"Aeppic.navigateTo(document.id)\" :style=\"{'background-image': 'url(' + data.datei.thumbnailUrl + ')', 'background-size': 'cover', 'background-repeat': 'no-repeat' }\"\n :title=\"'Autor:' + data.autor + ' Typ: ' + document.data.datei.type.replace('application/','').replace('image/','')\">\n\t<!--TODO: url? {{'api/docs/'+document.id+'/content?convert=jpg&field=datei&downloadFileName=preview.jpg&v='+document.v}}  -->\n\t<section class=\"mdc-card__primary\">\n\t\t<h1 class=\"mdc-card__title mdc-card__title--large\" :title=\"data.name + ' - ' + document.path\">{{data.name}}</span>\n\t\t</h1>\n\t\t<!-- TODO: path {{document.path.replace('/Muster GmbH/','')}} -->\n\t\t<h2 class=\"mdc-card__subtitle\" title=\"Ordner\" @click=\"Aeppic.navigateTo(document.p)\">{{document.path}}\n\t\t\t<span :title=\"document.v===1 ? 'Erstellungsdatum' : 'Änderungsdatum'\">{{Aeppic.Date.format(document.modified.at, 'DD. MMMM YYYY HH:mm:ss')}}</span>\n\t\t</h2>\n\n\t</section>\n\t<section class=\"mdc-card__supporting-text\">\n\t\t<span class=\"md-subhead\" title=\"Autor\"></span>\n\t\t<span class=\"md-subhead\" title=\"Gültig ab\">{{Aeppic.Date.format(data.gueltigab, 'DD. MMMM YYYY')}}</span>\n\t</section>\n</div>\n","css":" ._CSS {\n  cursor: pointer;\n  height:10rem;\n  width: 15rem;\n }\n\n._CSS>.mdc-card__primary,\n._CSS>.mdc-card__actions,\n._CSS>.mdc-card__supporting-text {\n   background: rgba(0, 0, 0, .65);\n }\n\n ._CSS>.mdc-card__primary+.mdc-card__supporting-text {\n   margin-top: 0px;\n }\n \n .new-document {\n        border-left: 3px solid rgb(222, 247, 60);\n    }\n    .modified-document {\n        border-left: 3px solid rgb(174, 174, 255);\n        \n    }\n    .md-headline {\n        text-overflow:ellipsis;\n        white-space:nowrap;\n        width:100%;\n        overflow:hidden;\n    }\n    .md-subhead {\n        text-overflow:ellipsis;\n        white-space:nowrap;\n        width:100%;\n        overflow:hidden;\n    }","controller":"","packages":[],"description":""},"locks":[],"created":{"at":"2020-06-24T12:54:35+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2020-06-24T12:54:35+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1593003275200,"ct":1593003275200,"a_depth":4,"a":["apps","45ada186-e9fd-451d-9dbd-2defc0b4f86f","4ec6a0e5-cf2d-4095-9b70-2e31a64d5679","dbee6e16-d63a-493c-bba6-505f79918f9f"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"32c594b4-c23b-43e3-a121-0fc799612bc5","v":"87f0aeeeadd34897","cloneOf":{"id":"7c4e74ac-41dc-4924-b54f-cfd5425bd3f8","v":"ee934df982c221bc","text":""},"originalCloneOf":{"id":"7c4e74ac-41dc-4924-b54f-cfd5425bd3f8","v":"ee934df982c221bc","text":""},"previous":{"v":"initial"},"p":"d7f0c56d-8e0e-4607-911b-b0789c557d40","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"xsearch","template":"<!-- <div layout=\"row\" >\n    <div>\n        <md-icon style=\"min-width:32px\" class=\"material-icons\" ng-if=\"document.data.io === 0\">check_box_outline_blank</md-icon>\n        <md-icon style=\"min-width:32px\" class=\"material-icons\" ng-if=\"document.data.io === 1\">indeterminate_check_box</md-icon>\n        <md-icon style=\"min-width:32px\" class=\"material-icons\" ng-if=\"document.data.io === 2\">check_box</md-icon>\n    </div>\n        \n    <div layout=\"column\" flex>\n        <div style=\"opacity:0.5\">\n            <rs-get-document id=\"{{document.p}}\" as=\"parent\"></rs-get-document>\n            <rs-get-document id=\"{{parent.data.vdma.id}}\" as=\"parentVdma\"></rs-get-document>\n            \n            <strong>{{parent.data.LfNr}}</strong>&nbsp;<span>{{parentVdma.data.beschreibung}}</span>\n        </div>\n        <div layout=\"row\">\n            <rs-get-document id=\"{{data.vdmaRef.id}}\" as=\"vdma\"></rs-get-document>\n            {{data.lfNr}} - {{vdma.data.vdma}} {{vdma.data.beschreibung}}\n        </div>\n    </div>\n</div> -->\n\n<div layout=\"row\">\n    <rs-get-document id=\"{{data.vdmaRef.id}}\" as=\"vdma\"></rs-get-document>\n    {{data.lfNr}} - {{vdma.data.vdma}} {{vdma.data.beschreibung}}\n</div>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-02-28T15:25:02+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-02-28T15:25:18+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1646061918183,"ct":1646061902087,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","d7f0c56d-8e0e-4607-911b-b0789c557d40"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"65f73cce-9d17-481a-8b08-4a94fa773eca","v":"initial","cloneOf":{"id":"772a0403-326f-4b58-8c0a-d534f42ad0d3","v":"9dbc84cc540024c0","text":"xsearch"},"originalCloneOf":{"id":"772a0403-326f-4b58-8c0a-d534f42ad0d3","v":"9dbc84cc540024c0","text":"xsearch"},"p":"0dfd4afd-f2ec-4ff0-9a79-811badf4fed5","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"xsearch","template":"<strong>{{data.vdma}}</strong> <span>{{data.beschreibung}}</span> - <small class=\"centerv very-light\">{{document.path}}</small>\n        ","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-03-02T15:28:29+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2022-03-02T15:28:29+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1646234909057,"ct":1646234909056,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","0dfd4afd-f2ec-4ff0-9a79-811badf4fed5"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"76991ad8-f797-4506-ba87-f625fa981acc","v":"902f5f335a35470d","previous":{"v":"initial"},"p":"e6f256c2-35de-4026-89f1-8641b6995290","f":{"id":"design-form","v":"44303cec40b3e1fa","text":"Design"},"data":{"name":"xsearch","applies":"","template":"\n          <div class=\"document-marker centerv\">\n            <svg class=\"centerv\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\">\n              <rect x=\"0\" y=\"0\" width=\"100%\" height=\"100%\" ng-style=\"{'fill':document.color}\"/>\n            </svg>\n          </div>   \n          <span class=\"centerv label label-link document-label\">{{document.label}}</span>\n          <span class=\"line-height centerv document-name\" title=\"{{data.description}}\">{{data.name || ('Untitled ' + document.f.text)}}</span>\n        ","css":"","controller":"","packages":[]},"locks":[],"created":{"at":"2018-02-06T09:46:54+01:00","by":"","from":"","client":"server"},"modified":{"at":"2018-02-23T08:30:36+01:00","by":"","from":"","client":"server"},"t":1519371036077,"ct":1517906814812,"a_depth":4,"a":["apps","b791df37-6eef-4a3e-9066-1b79e0bdad31","35dd7aed-cc6e-4d47-b4ee-b42c2e70af4f","e6f256c2-35de-4026-89f1-8641b6995290"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"772a0403-326f-4b58-8c0a-d534f42ad0d3","v":"9dbc84cc540024c0","cloneOf":{"id":"0f643b04-cb2c-4603-b78c-adc552a483e1","v":"initial","text":""},"originalCloneOf":{"id":"0f643b04-cb2c-4603-b78c-adc552a483e1","v":"initial","text":""},"previous":{"v":"initial"},"p":"204787ca-59c2-4b11-b866-aa05fa9c9891","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"xsearch","template":"<strong>{{data.vdma}}</strong> <span>{{data.beschreibung}}</span> - <small class=\"centerv very-light\">{{document.path}}</small>\n        ","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-02-28T15:27:08+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-02-28T15:27:34+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1646062054546,"ct":1646062028930,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","204787ca-59c2-4b11-b866-aa05fa9c9891"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"825a7ecd-f3e0-453c-a6b5-0ef00ec09365","v":"25d20c54131186d0","previous":{"v":"2fdc4f76295d14ac"},"p":"6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2","f":{"id":"design-form","v":"49954170df6a253b","text":"Design"},"data":{"name":"xsearch","template":"<div class=\"mdc-card mdc-card--theme-dark _CSS\" :class=\"{'new-document':document.v===0, 'modified-document':document.v!==0}\"\n @click=\"Aeppic.navigateTo(document.id)\" :style=\"{'background-image': 'url(' + data.datei.thumbnailUrl + ')', 'background-size': 'cover', 'background-repeat': 'no-repeat' }\"\n :title=\"'Autor:' + data.autor + ' Typ: ' + document.data.datei.type.replace('application/','').replace('image/','')\">\n\t<!--TODO: url? {{'api/docs/'+document.id+'/content?convert=jpg&field=datei&downloadFileName=preview.jpg&v='+document.v}}  -->\n\t<section class=\"mdc-card__primary\">\n\t\t<h1 class=\"mdc-card__title mdc-card__title--large\" :title=\"data.name + ' - ' + document.path\">{{data.name}}</span>\n\t\t</h1>\n\t\t<!-- TODO: path {{document.path.replace('/Muster GmbH/','')}} -->\n\t\t<h2 class=\"mdc-card__subtitle\" title=\"Ordner\" @click=\"Aeppic.navigateTo(document.p)\">{{document.path}}\n\t\t\t<span :title=\"document.v===1 ? 'Erstellungsdatum' : 'Änderungsdatum'\">{{Aeppic.Date.format(document.modified.at, 'DD. MMMM YYYY HH:mm:ss')}}</span>\n\t\t</h2>\n\n\t</section>\n\t<section class=\"mdc-card__supporting-text\">\n\t\t<span class=\"md-subhead\" title=\"Autor\"></span>\n\t\t<span class=\"md-subhead\" title=\"Gültig ab\">{{Aeppic.Date.format(data.gueltigab, 'DD. MMMM YYYY')}}</span>\n\t</section>\n</div>\n","css":" ._CSS {\n  cursor: pointer;\n  height:10rem;\n  width: 15rem;\n }\n\n._CSS>.mdc-card__primary,\n._CSS>.mdc-card__actions,\n._CSS>.mdc-card__supporting-text {\n   background: rgba(0, 0, 0, .65);\n }\n\n ._CSS>.mdc-card__primary+.mdc-card__supporting-text {\n   margin-top: 0px;\n }\n \n .new-document {\n        border-left: 3px solid rgb(222, 247, 60);\n    }\n    .modified-document {\n        border-left: 3px solid rgb(174, 174, 255);\n        \n    }\n    .md-headline {\n        text-overflow:ellipsis;\n        white-space:nowrap;\n        width:100%;\n        overflow:hidden;\n    }\n    .md-subhead {\n        text-overflow:ellipsis;\n        white-space:nowrap;\n        width:100%;\n        overflow:hidden;\n    }","controller":"","packages":[],"description":""},"locks":[],"created":{"at":"2018-12-03T13:21:02+00:00","by":"c5ed555f-cc11-463b-960b-0a60b3118e69","from":"","client":"server"},"modified":{"at":"2018-12-03T13:21:10+00:00","by":"c5ed555f-cc11-463b-960b-0a60b3118e69","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1543843270028,"ct":1543843262806,"a_depth":4,"a":["apps","3d43a3f5-fea4-488d-9fc1-9dee5e694623","7c30f282-2b84-4976-8735-ba78662ea5e6","6d3f6460-c6d2-4df1-8c05-e8bb66c5b8d2"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"86838bc7-4dff-49e3-9dc0-e581f25f5d32","v":"9543cd92934d86ac","cloneOf":{"id":"05683e88-d823-4c07-b7de-546da8fe440f","v":"initial","text":""},"originalCloneOf":{"id":"05683e88-d823-4c07-b7de-546da8fe440f","v":"initial","text":""},"previous":{"v":"initial"},"p":"816b2d0e-5158-4f0c-a5cf-6069bb76de69","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"xsearch","template":"{{data.LfNr}} {{data.barcode}}","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-02-28T15:23:57+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-02-28T15:24:21+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1646061861220,"ct":1646061837397,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","816b2d0e-5158-4f0c-a5cf-6069bb76de69"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"20463edf-ff2c-43c4-80b7-b2e78f549dde","v":"38263c766f9c394c","p":"d2ac3563-3c3f-4f02-b923-9b67abf98d10","f":{"id":"design-form","v":"24435d748c76f819","text":"Design","client":"server"},"data":{"name":"xsidebar-tasks","template":"\r\n<template v-if=\"locals.tasks.length\">\r\n  <h3 class=\"_CSS_header\"><ae-icon class=\"fa fa-tasks _CSS-icon\"></ae-icon>&nbsp;<span style=\"flex:1\">Aufgaben</span></h3>\r\n  <ae-design v-for=\"task of locals.tasks\" :key=\"task.id\" v-if=\"!task.data.erledigt\" class=\"_CSS-task\" name=\"card--sidebar,title\" :document=\"task\"  @click.native=\"Aeppic.navigateTo(task.id)\"></ae-design>\r\n  <ae-design v-for=\"task of locals.tasks\" :key=\"task.id\" v-if=\"task.data.erledigt\"  class=\"_CSS-task\" name=\"card--sidebar,title\" :document=\"task\"  @click.native=\"Aeppic.navigateTo(task.id)\"></ae-design>\r\n</template>\r\n\r\n<template v-if=\"locals.boardTasks.length\">\r\n  <h3 class=\"_CSS_header\"><ae-icon class=\"fa fa-tasks _CSS-icon\"></ae-icon>&nbsp;<span style=\"flex:1\">Scrum Board Aufgaben</span></h3>\r\n  <ae-design v-for=\"task of locals.boardTasks\" :key=\"task.id\" v-if=\"!task.data.erledigt\" class=\"_CSS-task\" name=\"card--sidebar,title\" :document=\"task\"  @click.native=\"Aeppic.navigateTo(task.id)\"></ae-design>\r\n  <ae-design v-for=\"task of locals.boardTasks\" :key=\"task.id\" v-if=\"task.data.erledigt\"  class=\"_CSS-task\" name=\"card--sidebar,title\" :document=\"task\"  @click.native=\"Aeppic.navigateTo(task.id)\"></ae-design>\r\n</template>\r\n","css":"._CSS {\r\n  display:flex;\r\n  flex-direction: column;\r\n}\r\n\r\n._CSS_header {\r\n  display: flex;\r\n  align-items:center;\r\n  color: var(--ae-primary);\r\n  font-weight: 600;\r\n}\r\n\r\n._CSS-icon {\r\n  min-width: 24px;\r\n  opacity: 1;\r\n  color: var(--ae-primary);\r\n}\r\n\r\n._CSS-task {\r\n  cursor: pointer;\r\n}","controller":"class Controller {\r\n  async init() {\r\n    locals.tasks = []\r\n    locals.boardTasks = []\r\n\r\n    Aeppic.subscribe('f.id:3d456c38-6282-416e-8c5e-7d20b0517a6e', (documents) => {\r\n      locals.tasks = documents.filter((doc) => this.isIncluded(doc.data.verantwortlich))\r\n    })\r\n    Aeppic.subscribe('f.id:6157a32a-a989-4798-94d5-2674b1675919', (documents) => {\r\n      locals.boardTasks = documents.filter((doc) => this.isIncluded(doc.data.verantwortlich))\r\n    })\r\n  }\r\n\r\n\r\n  isIncluded(refs) {\r\n    for (const ref of refs) {\r\n      if (ref.id === document.id) {\r\n        return true\r\n      }\r\n    }\r\n    return false\r\n  }\r\n}\r\n","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2019-03-14T11:22:34+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2019-03-14T11:22:34+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1552562554764,"ct":1552562554764,"a_depth":4,"a":["apps","144e85c0-d7f9-4b20-8928-be30f0c78bda","8e6ee7d3-9122-4a2e-8aaf-9fb3bd204b23","d2ac3563-3c3f-4f02-b923-9b67abf98d10"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[],"previous":{"v":"28365c4693454d07","f":{"id":"design-form","v":"e3fe9ece11aabc5e","text":"Design"}}},{"id":"7ca49fbe-12ae-42b8-8d42-86b7492952c1","v":"initial","p":"275b807f-7dbb-4351-b731-669e275fa97d","f":{"id":"design-form","v":"0736f6b8ec393e5e","text":"Design"},"data":{"name":"xtable:question-title","applies":"","template":"<ae-design name=\"title\" :document-id=\"locals.questionId\"></ae-design>","css":"","controller":"async init () {\n  locals.questionId = ''\n\n  if (!params.fieldName) {\n    return\n  }\n\n  const match = /question\\.id:(.*)/.exec(params.fieldName)\n  locals.questionId = match && match[1]\n}\n\n","packages":[]},"locks":[],"created":{"at":"2020-10-13T10:11:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2020-10-13T10:11:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1602583892855,"ct":1602583892855,"a_depth":4,"a":["apps","b090141a-949d-4b35-a5c2-d8f1dd937dcf","e89b29a9-6ab9-47dc-a6fe-91ebda92871d","275b807f-7dbb-4351-b731-669e275fa97d"],"a_forms":["folder","application-form","folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"09ab5988-a86d-4abe-b434-1fc74582f75a","v":"d833852e68e3c1bd","previous":{"v":"26a764bb8ce4d94c"},"p":"d60a5613-e046-4341-9bc9-34a241e8a28a","f":{"id":"design-form","v":"3385ac6766f32638","text":"Design"},"data":{"name":"xtitle","template":"<div class=\"flex gap-1\">\n  <ae-design name=\"form-title\" :document=\"document\"></ae-design>\n  <ae-design name=\"title\" :document-id=\"document.p\"></ae-design>\n</div>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-03-30T13:56:23+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-04-01T10:47:43+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1648810063922,"ct":1648648583346,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","d60a5613-e046-4341-9bc9-34a241e8a28a"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"46aead27-f8df-4934-9d7a-b3e9ead7ed67","v":"initial","p":"5152f88f-3006-46f9-959a-423139accf79","f":{"id":"design-form","v":"65801907e0c30697","text":"Design"},"data":{"name":"xtitle","template":"{{data.name}}","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2019-08-22T12:20:33+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"modified":{"at":"2019-08-22T12:20:33+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1566476433861,"ct":1566476433861,"a_depth":4,"a":["apps","94a64d89-d204-4918-b147-d717914fb03e","f254ce25-42f1-4333-8ee7-23554bf746c1","5152f88f-3006-46f9-959a-423139accf79"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"b1a1d82d-3f52-4d7c-90ae-1aa2977815ec","v":"c0efc1debc92da0d","cloneOf":{"id":"a3344edd-9f89-45f6-98c3-b417235868e9","v":"573b5c2689895f7f","text":"title"},"originalCloneOf":{"id":"a3344edd-9f89-45f6-98c3-b417235868e9","v":"573b5c2689895f7f","text":"title"},"previous":{"v":"39c1c261f1a7777a"},"p":"0b6a2b21-9425-466e-9e8d-57ec39cc95e1","f":{"id":"design-form","v":"0061789efb5c5c29","text":"Design"},"data":{"name":"xtitle","template":"<template v-if=\"data.client && data.client.id\">\n  <!-- <ae-design class=\"_CSS-text\" name=\"form-title\" :document-id=\"data.client.id\"></ae-design>\n  <span>:</span> -->\n  <ae-design class=\"_CSS-text\" name=\"title\" :document-id=\"data.client.id\"></ae-design>\n</template>\n<span v-else-if=\"data.name\" class=\"_CSS-text\">\n  {{ data.name }}\n</span>\n<ae-design v-else style=\"font-style:italic;\" class=\"_CSS-text\" v-else :document-if=\"document.f.id\" name=\"title\"></ae-design>","css":"._CSS {\n   display: flex;\n   align-items: center;\n   min-width: 0;\n }\n\n._CSS-text {\n  display: inline-block;\n  overflow: hidden; \n  text-overflow: ellipsis;\n  white-space: nowrap;\n}\n","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-07-10T14:09:56+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2021-06-15T09:32:11+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1623749531144,"ct":1594390196286,"a_depth":4,"a":["apps","59edbdbc-2cab-426a-bb42-6e57c5158e4f","3be7e887-1bcd-4c3c-979f-b20a986c4c48","0b6a2b21-9425-466e-9e8d-57ec39cc95e1"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"e9360365-9f7a-47ec-ab82-1a6190a5f961","v":"5e68a3a0ef546822","cloneOf":{"id":"09ab5988-a86d-4abe-b434-1fc74582f75a","v":"26a764bb8ce4d94c","text":"title"},"originalCloneOf":{"id":"09ab5988-a86d-4abe-b434-1fc74582f75a","v":"26a764bb8ce4d94c","text":"title"},"previous":{"v":"fd6fcb1e9f4e4891"},"p":"096cfb8f-bb8e-4a6e-87c2-2d1fac5e822a","f":{"id":"design-form","v":"3385ac6766f32638","text":"Design"},"data":{"name":"xtitle","template":"<div class=\"flex gap-1\">\n  <ae-design name=\"form-title\" :document=\"document\"></ae-design>\n  <ae-design name=\"title\" :document-id=\"document.p\"></ae-design>\n</div>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-03-30T15:02:21+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-04-01T10:48:04+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1648810084363,"ct":1648652541767,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","096cfb8f-bb8e-4a6e-87c2-2d1fac5e822a"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"ecb976b2-ca35-4088-a518-6e4b3938d3e2","v":"d609ea2420845866","previous":{"v":"109c8aeae3a623bb"},"p":"83d025fd-16d4-472d-bbd2-36db20e832ee","f":{"id":"design-form","v":"0061789efb5c5c29","text":"Design"},"data":{"name":"xtitle","template":"<ae-control name=\"editor\" fieldName=\"frage\" :document=\"document\" :readonly=\"true\" :param-no-expand=\"true\"></ae-control>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2021-05-11T08:41:09+00:00","by":"8e6c22aa-8c69-4ff8-919a-7032841cf636","from":"","client":"server"},"modified":{"at":"2021-05-27T10:44:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1622112272925,"ct":1620722469634,"a_depth":4,"a":["apps","f416e371-07cc-4987-a6de-5934ef5ff3e4","1096c5df-2773-4914-9455-dc54e0f3e0e5","83d025fd-16d4-472d-bbd2-36db20e832ee"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"9a63b64e-ea41-4ad8-975a-9864030c3b41","v":"f63394e51e86c54c","p":"command-form","f":{"id":"design-form","v":"987bdf93c60aaa52","text":"Design"},"data":{"name":"xtree-title","template":"<div @click.stop=\"$emit('selected', document)\">\n  <ae-design name=\"icon\" :document=\"document\"></ae-design>\n  <ae-design name=\"title\" :document=\"document\"></ae-design>\n</div>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2019-05-09T13:36:53+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2022-10-24T09:42:02+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1719473826922,"ct":1719473826922,"a_depth":3,"a":["system","system-forms","command-form"],"a_forms":["system-folder-form","repository-folder-form","form"],"inheritedLocks":[null,null,null,null],"stamps":[],"previous":{"v":"d7301d97e60c4f37","f":{"id":"design-form","v":"24435d748c76f819","text":"Design"}},"meta":{"modified":{"at":"2024-06-27T07:37:06+00:00","by":"ee99a373-33b1-4c97-8d61-e4a8f53200ba","backedBy":null,"impersonatedBy":null,"from":"","client":"server"}}},{"id":"78fe472f-37db-4eb1-aeaa-4a8084c61793","v":"ddca183225fee786","previous":{"v":"281c5896b2087f86","p":"e5c233c9-5425-48d7-a785-d962897bc6f8"},"p":"group","f":{"id":"design-form","v":"49954170df6a253b","text":"Design"},"data":{"name":"xusers","template":"<div v-for=\"(account, index) of locals.accounts\" v-if=\"index <= 2\" @click.stop=\"$emit('selected', account)\">\n  <ae-design v-if=\"index === 0\" name=\"avatar--tiny\" :document=\"account\"></ae-design>\n  <ae-design v-if=\"index === 1 && locals.accounts.length <= 2\" name=\"avatar--tiny\" :document=\"account\"></ae-design>\n  <ae-design  v-if=\"index === 2\"\n              name=\"avatar--tiny\"\n              :document=\"account\"\n              :param-overwrite-display-with=\"'+' + (locals.accounts.length - 1)\"\n              :title=\"locals.tooltip\"\n              @click.native.stop=\"controller.showAccounts()\"\n  ></ae-design>\n</div>\n\n<ae-layout layout-id=\"ed2cc4c2-d2a0-4969-8da7-49fb3d539cc9\"\n  ref=\"popup\"\n  :params=\"{ items: locals.dialogItems, hidePath: true, nofilter: true }\"\n  @selected=\"Aeppic.navigateTo($event)\"\n></ae-layout>\n\n<ae-layout layout-id=\"32dbb3b6-f883-4647-8d21-6f1e0fb83b90\"\n  ref=\"dialog\"\n  :params=\"{ items: locals.dialogItems, label: 'translate:Users|Benutzer', hidePath: true, nofilter: true }\"\n  @selected=\"Aeppic.navigateTo($event)\"\n></ae-layout>\n","css":"._CSS {\n  display: flex;\n}","controller":"class Controller {\n  showAccounts() {\n    locals.dialogItems = locals.accounts.slice(1)\n\n    if (Aeppic.Device === 'Phone') {\n      $refs.dialog.$emit('show')\n      return\n    }\n\n    $refs.popup.$emit('show', {\n      target: $refs.buttonAdd\n    })\n  }\n}\n\n","packages":[],"description":""},"locks":[],"created":{"at":"2018-12-04T09:39:13+00:00","by":"870fac1f-b0d7-4925-b191-a43166960419","from":"","client":"server"},"modified":{"at":"2019-01-28T11:16:49+00:00","by":null,"backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1548674209887,"ct":1543916353570,"a_depth":5,"a":["system","b2533f7b-ea85-4680-99ed-d8e11be641b9","0e6939d6-9b93-4165-b6bd-977e4da881f3","627f5b74-3baf-45f8-a1d3-a5936839b844","group"],"a_forms":["system-folder-form","folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null,null],"stamps":[]},{"id":"7340f799-6042-4e98-bd9c-55dc9c6fa1d7","v":"702fe50998e3787a","cloneOf":{"id":"05683e88-d823-4c07-b7de-546da8fe440f","v":"initial","text":""},"originalCloneOf":{"id":"05683e88-d823-4c07-b7de-546da8fe440f","v":"initial","text":""},"previous":{"v":"initial"},"p":"816b2d0e-5158-4f0c-a5cf-6069bb76de69","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"xwartungbeenden-dialog","template":"<div layout=\"column\" layout-padding>\n    <div ng-if=\"document.data.ergebnis === 2\">\n        <!-- OK -->\n        <h2>Vielen Dank!</h2>\n        <p>Hiermit wird die Wartung dieses Anlagenteils abgeschlossen.</p>\n        <p>Alle Arbeiten sind in Ordnung.</p>\n    </div>\n    <div ng-if=\"document.data.ergebnis === 3\">\n        <!-- NOK -->\n        <h2>Vielen Dank!</h2>\n        <p>Hiermit wird die Wartung dieses Anlagenteils abgeschlossen.</p>\n        <p>Ein Teil der Arbeiten ist in Ordnung.</p>\n    </div>\n    <div ng-if=\"document.data.ergebnis === 4\">\n        <!-- INCOMPLETE -->\n        <h2>Wartung unterbrechen</h2>\n        <p>Es wurden nicht alle Arbeiten durchgeführt. \n        Die Wartung dieses Anlagenteils ist damit nicht abgeschlossen.</p>\n        <p>Sind Sie sicher, dass Sie die Wartung dieses Anlagenteils unterbrechen wollen?</p>\n    </div>\n</div>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-02-28T15:23:55+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-02-28T15:24:33+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1646061873910,"ct":1646061835828,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","816b2d0e-5158-4f0c-a5cf-6069bb76de69"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"831afef7-898b-4b43-affc-39ec0e50b4d0","v":"968bb3201de87658","cloneOf":{"id":"7c4e74ac-41dc-4924-b54f-cfd5425bd3f8","v":"ee934df982c221bc","text":""},"originalCloneOf":{"id":"7c4e74ac-41dc-4924-b54f-cfd5425bd3f8","v":"ee934df982c221bc","text":""},"previous":{"v":"initial"},"p":"d7f0c56d-8e0e-4607-911b-b0789c557d40","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"xwork","template":"<rs-get-document id=\"{{data.vdmaRef.id}}\" as=\"vdma\"></rs-get-document>\n\n<div rs-document-autosave=\"document\" flex layout=\"row\" style=\"color:#3a3a39; border-width: 1px 0 0px 0; border-color: #3a3a39; border-style: solid;min-height:40px;overflow:hidden\" onclick=\"event.stopPropagation();return false;\">\n    <span style=\"border-style:solid;border-width:0 0px 0 0;padding:5px;min-width:50px;text-align:left;white-space:nowrap\">{{vdma.data.vdma}}</span>\n    <span flex style=\"border-style:solid;border-width:0 0px 0 0;padding:5px 0;text-overflow:ellipsis;overflow:hidden;\">{{vdma.data.beschreibung}}</span>\n    <!--\n    <span ng-if=\"data.interval==1\" style=\"padding:5px;min-width:120px;text-align:center\">monatlich</span>\n    <span ng-if=\"data.interval==3\" style=\"padding:5px;min-width:120px;text-align:center\">vierteljährlich</span>\n    <span ng-if=\"data.interval==6\" style=\"padding:5px;min-width:120px;text-align:center\">halbjährlich</span>\n    <span ng-if=\"data.interval==12\" style=\"padding:5px;min-width:120px;text-align:center\">jährlich</span>\n    <span ng-if=\"!data.interval\" style=\"padding:5px;min-width:120px;text-align:center\"></span>\n    -->\n    <div style=\"border-style:solid;border-width:0 0px 0 0px;min-width:110px;line-height:32px\" layout=\"column\">\n        <div flex class=\"no-animate\" ng-show=\"!data.io || data.io=='0'\"  ng-click=\"data.io=2\"><md-icon>check_box_outline_blank</md-icon> Zu prüfen</div>\n        <!--div flex ng-show=\"data.io==0\" ng-click=\"data.io=2\"><md-icon>check_box_outline_blank</md-icon> Zu pruefen</div -->\n        <div flex class=\"no-animate\" ng-show=\"data.io==1 || data.io=='1'\" ng-click=\"data.io=0\" style=\"background:#F44336\"><md-icon >clear</md-icon> Mangel</div>\n        <div flex class=\"no-animate\" ng-show=\"data.io==2 || data.io=='2'\" ng-click=\"data.io=1\" style=\"background:#8bc34a\"><md-icon >check</md-icon> In Ordnung</div>\n    </div\n    <div class=\"wartungsarbeitenliste\" style=\"padding:5px;border-style:solid;border-width:0 0px 0 0px;padding:4px;width:250px\" layout=\"column\">\n        \n        <textarea ng-class=\"{ missing: ctrl.bemerkungFehlt }\" type=\"text\" rows=\"2\" flex ng-model=\"data.bemerkungen\" ng-model-options=\"{updateOn: 'default blur', debounce: {'default':1000, 'blur':0}}\" style=\"overflow:hidden;border:none;line-height:20px;height:auto;background:transparent\" placeholder=\"Bemerkung\"></textarea>\n    </div>\n</div>\n<style>\n    .wartungsarbeitenliste{\n        border-width: 0px 0px 0px 0px;\n        border-style: solid;\n        border-color: black;\n    }\n    .wartungsarbeitenliste *:hover {\n        text-decoration:none;\n        background-color:#eeeeee;\n    }\n    .wartungsarbeitenliste .missing {\n        border-bottom: 8px solid red !important;\n    }\n</style>","css":"","controller":"get bemerkungNoetig() {\n    return context.document.data.io == 1;\n}\n\nget hatBemerkung(){\n   if(!context.document.data.bemerkungen)\n    return false;\n    \n   if(context.document.data.bemerkungen.trim() === '')\n    return false;\n\n    return true;\n}\n\nget bemerkungFehlt() {\n    return this.bemerkungNoetig && !this.hatBemerkung;\n}","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-02-28T15:25:00+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-02-28T15:25:32+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1646061932902,"ct":1646061900488,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","d7f0c56d-8e0e-4607-911b-b0789c557d40"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"85e49487-4a85-4598-8fc5-def557424e88","v":"fe4a0b10f8ac6d97","cloneOf":{"id":"831afef7-898b-4b43-affc-39ec0e50b4d0","v":"initial","text":""},"originalCloneOf":{"id":"831afef7-898b-4b43-affc-39ec0e50b4d0","v":"initial","text":""},"previous":{"v":"2e23135fa7cf2663"},"p":"d7f0c56d-8e0e-4607-911b-b0789c557d40","f":{"id":"design-form","v":"0a6757fa85895d29","text":"Design"},"data":{"name":"xwork-completed","template":"<rs-get-document id=\"{{document.p}}\" as=\"wartungspunkt\"></rs-get-document>\n<rs-get-document id=\"{{wartungspunkt.p}}\" as=\"anlage\"></rs-get-document>\n<rs-get-document id=\"{{data.vdmaRef.id}}\" as=\"vdma\"></rs-get-document>\n\n<div xxrs-document-autosave=\"document\" flex layout=\"row\" style=\"color:#3a3a3a; border-width: 0px 0 0px 0; border-color: #3a3a39; border-style: solid;min-height:40px\" onclick=\"event.stopPropagation();return false;\" class=\"arbeitschritt\">\n    <span style=\"border-style:solid;border-width:0 0px 0 0;padding:5px;min-width:70px;text-align:left\">{{anlage.data.lfndr}}.{{wartungspunkt.data.LfNr}}.{{data.lfNr}}</span>\n    <span style=\"border-style:solid;border-width:0 0px 0 0;padding:5px;min-width:50px;text-align:right;opacity:0.8\">{{vdma.data.vdma}}</span>\n    <span flex style=\"border-style:solid;border-width:0 0px 0 0;padding:5px\">{{vdma.data.beschreibung}}</span>\n    <span ng-if=\"data.interval==1\" style=\"padding:5px;min-width:120px;text-align:center\">monatlich</span>\n    <span ng-if=\"data.interval==3\" style=\"padding:5px;min-width:120px;text-align:center\">vierteljährlich</span>\n    <span ng-if=\"data.interval==6\" style=\"padding:5px;min-width:120px;text-align:center\">halbjährlich</span>\n    <span ng-if=\"data.interval==12\" style=\"padding:5px;min-width:120px;text-align:center\">jährlich</span>\n    <span ng-if=\"!data.interval\" style=\"padding:5px;min-width:120px;text-align:center\"></span>\n    \n    <div style=\"border-style:solid;border-width:0 0px 0 0px;min-width:130px;line-height:32px\" layout=\"column\">\n        <div flex ng-show=\"!data.io || data.io=='0'\" xng-click=\"data.io=2\"><md-icon>check_box_outline_blank</md-icon> Zu pruefen</div>\n        <!--div flex ng-show=\"data.io==0\" ng-click=\"data.io=2\"><md-icon>check_box_outline_blank</md-icon> Zu pruefen</div -->\n        <div flex ng-show=\"data.io==1 || data.io=='1'\" xng-click=\"data.io=0\" style=\"background:rgba(255,0,0,0.3);padding:2px;\"><md-icon >clear</md-icon> Fehlerhaft</div>\n        <div flex ng-show=\"data.io==2 || data.io=='2'\" xng-click=\"data.io=1\" style=\"background:rgba(0,255,0,0.3);padding:2px;\"><md-icon >check</md-icon> In Ordnung</div>\n    </div>\n    <div style=\"padding:5px;border-style:solid;border-width:0 0px 0 0px;padding:4px;width:250px\" layout=\"column\">\n        <p flex style=\"overflow:hidden;border:none;line-height:20px;height:auto;background:transparent\" placeholder=\"Bemerkung\">{{data.bemerkungen}}         <span ng-hide=\"data.bemerkungen\" style=\"opacity:0.5\">Keine Bermerkungen</span></p>\n\n    </div>\n</div>\n<style>\n    .wartungsarbeitenliste{\n        border-width: 0px 0px 0px 0px;\n        border-style: solid;\n        border-color: black;\n    }\n    .wartungsarbeitenliste *:hover {\n        text-decoration:none;\n        background-color:#eeeeee;\n    }\n</style>","css":"","controller":"","packages":[],"aliases":[],"description":""},"locks":[],"created":{"at":"2022-02-28T15:25:24+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2022-03-04T11:17:52+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1646392672445,"ct":1646061924312,"a_depth":4,"a":["apps","d4581623-f542-4ade-86be-8b3ecec56f0e","9b024049-2573-4921-acaa-3e172e9332d7","d7f0c56d-8e0e-4607-911b-b0789c557d40"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]},{"id":"65bed61b-c837-450f-84e0-cbcc89f1ae69","v":"0e2bceed1aa3b127","previous":{"v":"d4700d734c5d27ae"},"p":"e170bb6c-f326-446d-870a-ada9d9f67230","f":{"id":"design-form","v":"e37099c040ec46e9","text":"Design"},"data":{"name":"zip-download-and-statistics","template":"<template v-if=\"!locals.statistics.changed\">\n  <button disabled class=\"ae-button ae-button--primary\" :title=\"locals.downloadInfo ? 'seit ' + Aeppic.DateTime.fromISO(locals.downloadInfo.data.lastDownloadDate).toLocaleString(Aeppic.DateTime.DATETIME_SHORT_WITH_SECONDS)  : '' \">\n    <ae-icon class=\"fa fa-download\"></ae-icon> \n    Neue\n    ({{ locals.statistics.changed }})\n  </button>\n</template>\n<a v-else :href=\"locals.zipDownloadUrlNew\" target=\"_blank\"> \n  <button class=\"ae-button ae-button--primary\" :title=\"locals.downloadInfo ? 'seit ' + Aeppic.DateTime.fromISO(locals.downloadInfo.data.lastDownloadDate).toLocaleString(Aeppic.DateTime.DATETIME_SHORT_WITH_SECONDS)  : '' \">\n    <ae-icon class=\"fa fa-download\"></ae-icon> \n    Neue\n    ({{ locals.statistics.changed }})\n  </button>\n</a>\n\n<a :href=\"locals.zipDownloadUrl\" target=\"_blank\"> \n  <button class=\"ae-button ae-button--secondary\">\n    <ae-icon class=\"fa fa-download\"></ae-icon> Alle ({{ locals.statistics.all }})\n  </button>\n</a> \n\n<div class=\"bp-card _CSS-statistics\">\n  <div class=\"_CSS-statistics__label\">\n    Statistiken\n  </div>\n  <div v-if=\"locals.statistics.started\" class=\"_CSS-value\" title=\"Gestartete, aber nicht beendete, Bewerbungen\">\n    <ae-icon class=\"fa fa-user-times\" style=\"margin-right: var(--ae-space-1);\"></ae-icon> {{ locals.statistics.started }}\n  </div>\n  <ae-icon class=\"fal fa-angle-double-right\"></ae-icon>\n  <div v-if=\"locals.statistics.all\" class=\"_CSS-value\" title=\"Beendete Bewerbungen\">\n    <ae-icon class=\"fa fa-user-check\" style=\"margin-right: var(--ae-space-1);\"></ae-icon> {{ locals.statistics.all }}\n  </div>\n</div>","css":"._CSS {\n  display: flex;\n  align-items: center;\n}\n\n._CSS-value {\n  margin: 0 var(--ae-space-2);\n}\n\n._CSS-statistics {\n  background: var(--ae-background-100);\n  margin-left: var(--ae-space-6);\n}\n._CSS-statistics__label {\n  font-size: var(--ae-font-size-3);\n  margin-right: var(--ae-space-2);\n}","controller":"class Controller {\n  async init() {\n    this.FORMS = {\n      DownloadInfo: '81265a15-9225-4401-8ccf-c041b8502537',\n      Application: '009c0da4-718f-43d0-964a-647e30074d94',\n    }\n\n    this.applicationsSub = null\n\n    locals.zipDownloadUrl = `/api/services/18047369-674f-4ba5-bf5d-bba493f4f9bb/v2/zip?projectId=${document.id}`\n    locals.zipDownloadUrlNew = `/api/services/18047369-674f-4ba5-bf5d-bba493f4f9bb/v2/zip?projectId=${document.id}&onlyNew=true`\n    locals.downloadInfo = null\n    locals.statistics = {\n      all: 0,\n      changed: 0,\n      started: 0,\n    }\n\n    Aeppic.subscribe(`p:${document.id} f.id:${this.FORMS.DownloadInfo} data.account.id:${Aeppic.Account.id}`, async (docs) => {\n      const info = docs[0]\n\n      // FIXME: subscribe is broken!!! got an event with the correct info, then an empty docs array. so try to guard against that behaviour\n      if (!info && locals.downloadInfo) {\n        console.warn('FIXME: broken subscription')\n        return\n      }\n    \n      locals.downloadInfo = info\n      await this.subscribeApplication()\n    })\n\n    await this.subscribeApplication()\n  }\n\n  async subscribeApplication() {\n    const queryString = `p:${document.id} f.id:${this.FORMS.Application}`\n    const findOptions = {\n      size: 9999,\n    }\n\n    this.applicationsSub = Aeppic.updateSubscription(this.applicationsSub, queryString, findOptions, async (all) => {\n      const done = all.filter(application => application.data.done)\n      const notFinished = all.length - done.length\n\n      locals.statistics.all = done.length\n      locals.statistics.started = notFinished\n\n      if (!locals.downloadInfo) {\n        locals.statistics.changed = done.length\n        return\n      }\n\n      const intervalOptions = {\n        start: locals.downloadInfo.data.lastDownloadDate,\n        fieldName: 'modified.at',\n      }\n\n      const changed = packages.SearchHelpers.filterDocumentsToInterval(Aeppic, intervalOptions, done)\n      // const changed = await packages.SearchHelpers.findInterval(Aeppic, intervalOptions, `${queryString} data.done:true`, findOptions)\n      locals.statistics.changed = changed.length\n    })\n  }\n}\n","packages":[{"id":"9fbc0645-b97a-4b98-8520-02670f21ac0b","v":"262622e3b5ee4583","text":"Aeppic Search Helpers"}],"aliases":[],"description":""},"locks":[],"created":{"at":"2020-12-10T13:06:52+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","from":"","client":"server"},"modified":{"at":"2021-06-16T13:55:34+00:00","by":"02409da3-1795-4f78-a2df-be417ea3d6c0","backedBy":null,"impersonatedBy":null,"from":"","client":"server"},"t":1623851734775,"ct":1607605612650,"a_depth":4,"a":["apps","3fbe0efd-713a-457a-a34c-3a12aa19d6bb","0fb162f4-0f78-4c1e-aad2-43c27e6d98cb","e170bb6c-f326-446d-870a-ada9d9f67230"],"a_forms":["folder","application-form","form-folder","form"],"inheritedLocks":[null,null,null,null,null],"stamps":[]}]}